Attention is currently required from: jolly, dexter.
Hello Jenkins Builder, dexter,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-mgw/+/33548
to look at the new patch set (#2).
Change subject: ASCI: Support conference briding with 1..n connections
......................................................................
ASCI: Support conference briding with 1..n connections
An RTP bridge may have 1 or many endpoints. Each endpoint may receive,
send or echo audio back. Because transcoding is not supported, it must
be assumed that only connection receives RTP in a conference with more
than 2 connections.
A connection that receives RTP into the endpont will have "send" pointer
set to (one of) the other connection that shall send out RTP.
All connection that send RTP have "send_next" pointer set to the next
or first connection that sends RTP. They are linked in a ring.
Regular bridge with two connections: Each connection forwards audio
towards the other connection and only towards the other connection.
The "send_next" pointers are set to NULL or pointing to the other
endpoint.
connection A connection B
("sendrecv") ("sendrecv")
conn->send --------------------------->
<------------------------------------- conn->send
conn->send_next ---------------------->
<------------------------------------- conn->send_next
Conference bridge with three connections: Each connection forwards
audio to itself and also towards all other connection.
connection A connection B connection C
("confecho") ("confecho") ("confecho");
conn->send --\ conn->send --\ conn->send --\
<-----------/ <-----------/ <-----------/
conn->send_next -->
conn->send_next -->
<------------------------------------- conn->send_next
The same conference bridge but without echo: Each connection forwards
auto to all other connection but not to itself.
connection A connection B connection C
("confecho") ("confecho") ("confecho");
conn->send -------> conn->send ------->
<------------------------------------- conn->send
conn->send_next -->
conn->send_next -->
<------------------------------------- conn->send_next
Change-Id: Ic99a55ab5a3a6170e940403fadd52697e99f2f3a
---
M include/osmocom/mgcp/mgcp_trunk.h
M src/libosmo-mgcp/mgcp_endp.c
M src/libosmo-mgcp/mgcp_network.c
M src/libosmo-mgcp/mgcp_protocol.c
M src/libosmo-mgcp/mgcp_trunk.c
5 files changed, 190 insertions(+), 60 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/48/33548/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/33548
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: Ic99a55ab5a3a6170e940403fadd52697e99f2f3a
Gerrit-Change-Number: 33548
Gerrit-PatchSet: 2
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: laforge, pespin, keith.
Jenkins Builder has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/32374 )
Change subject: e1d: reconnect to osmo-e1d after connection loss
......................................................................
Patch Set 13:
(1 comment)
File src/input/e1d.c:
Robot Comment from checkpatch (run ID jenkins-gerrit-lint-8892):
https://gerrit.osmocom.org/c/libosmo-abis/+/32374/comment/0a4ce102_07637430
PS13, Line 342: * D_TSX_ALLOC_SIZE even though the connection is still fine. Since data is continously written (in
'continously' may be misspelled - perhaps 'continuously'?
--
To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/32374
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: Iaf4d42c2f009b1d7666e319fabdeb2598aa0b338
Gerrit-Change-Number: 32374
Gerrit-PatchSet: 13
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: keith <keith(a)rhizomatica.org>
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-CC: tnt <tnt(a)246tNt.com>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: keith <keith(a)rhizomatica.org>
Gerrit-Comment-Date: Tue, 04 Jul 2023 11:40:45 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
Attention is currently required from: laforge, pespin, keith.
dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/32374 )
Change subject: e1d: reconnect to osmo-e1d after connection loss
......................................................................
Patch Set 13:
(2 comments)
File src/input/e1d.c:
https://gerrit.osmocom.org/c/libosmo-abis/+/32374/comment/55de0a3a_9384d756
PS11, Line 340: osmo_fsm
> you would normally need to buffer any partial-read and wait until the remainder of the data is recei […]
Done
https://gerrit.osmocom.org/c/libosmo-abis/+/32374/comment/e1a22b5f_bd0d5be0
PS11, Line 391: osmo_fsm
> well, now you are dropping the data. […]
Thanks for the detailed explanation. I have now added a FIXME note. As far as I understand this problem already existed before this patch as well.
--
To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/32374
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: Iaf4d42c2f009b1d7666e319fabdeb2598aa0b338
Gerrit-Change-Number: 32374
Gerrit-PatchSet: 13
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: keith <keith(a)rhizomatica.org>
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-CC: tnt <tnt(a)246tNt.com>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: keith <keith(a)rhizomatica.org>
Gerrit-Comment-Date: Tue, 04 Jul 2023 11:40:18 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: laforge <laforge(a)osmocom.org>
Comment-In-Reply-To: dexter <pmaier(a)sysmocom.de>
Gerrit-MessageType: comment
Attention is currently required from: laforge, pespin, keith.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-abis/+/32374
to look at the new patch set (#13).
Change subject: e1d: reconnect to osmo-e1d after connection loss
......................................................................
e1d: reconnect to osmo-e1d after connection loss
When osmo-e1d crashes while a line is in use the client process may
experience not only a lost connection, it may also hang up in an endless
loop that would also spam the logfile. The reason for this is that the
e1d driver in libosmo-abis lacks mechanisms to detect when the
connection to osmo-e1d gets lost.
When osmo-e1d goes down the effects should be similar to those of a
normal connection loss of an e1 line (cable pulled). So let's add an FSM
that takes care of the recovery of the connection when it is lost. Also
make sure that no havoc happens when the connection gets lost.
Related: OS#5983
Change-Id: Iaf4d42c2f009b1d7666e319fabdeb2598aa0b338
---
M src/input/e1d.c
1 file changed, 271 insertions(+), 15 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/74/32374/13
--
To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/32374
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: Iaf4d42c2f009b1d7666e319fabdeb2598aa0b338
Gerrit-Change-Number: 32374
Gerrit-PatchSet: 13
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: keith <keith(a)rhizomatica.org>
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-CC: tnt <tnt(a)246tNt.com>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: keith <keith(a)rhizomatica.org>
Gerrit-MessageType: newpatchset
Jenkins Builder has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/33548 )
Change subject: ASCI: Support conference briding with 1..n connections
......................................................................
Patch Set 1:
(1 comment)
File src/libosmo-mgcp/mgcp_network.c:
Robot Comment from checkpatch (run ID jenkins-gerrit-lint-8889):
https://gerrit.osmocom.org/c/osmo-mgw/+/33548/comment/717b1a70_04773b85
PS1, Line 1342: conn_dst = conn_dst->send_next;
code indent should use tabs where possible
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/33548
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: Ic99a55ab5a3a6170e940403fadd52697e99f2f3a
Gerrit-Change-Number: 33548
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-CC: Jenkins Builder
Gerrit-Comment-Date: Tue, 04 Jul 2023 11:12:43 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/33547 )
Change subject: ASCI: Replace "priv" pointer of connection instance
......................................................................
ASCI: Replace "priv" pointer of connection instance
The pointer is preplaced by "send" pointer and "send_next" pointer.
The "send" pointer points to the connection the received data is
forwarded to for transmission. This is what the "priv" pointer was used
for. The "send_next" pointer can be used to send RTP to multiple
connections that are in a conference. This will be used by later patch.
(see Chg-Id: Ic99a55ab5a3a6170e940403fadd52697e99f2f3a)
Change-Id: Icefacf0f91ae068e4f0cd65244d92735045b7c26
---
M include/osmocom/mgcp/mgcp_conn.h
M src/libosmo-mgcp/mgcp_iuup.c
M src/libosmo-mgcp/mgcp_network.c
3 files changed, 29 insertions(+), 10 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/47/33547/1
diff --git a/include/osmocom/mgcp/mgcp_conn.h b/include/osmocom/mgcp/mgcp_conn.h
index 7ac40ab..eaf4663 100644
--- a/include/osmocom/mgcp/mgcp_conn.h
+++ b/include/osmocom/mgcp/mgcp_conn.h
@@ -137,8 +137,11 @@
struct mgcp_conn_rtp rtp;
} u;
- /*! pointer to optional private data */
- void *priv;
+ /*! pointer to (optional) destination of received payload */
+ struct mgcp_conn *send;
+
+ /*! pointer to (optional) next destination of payload */
+ struct mgcp_conn *send_next;
};
/* RTP connection related counters */
diff --git a/src/libosmo-mgcp/mgcp_iuup.c b/src/libosmo-mgcp/mgcp_iuup.c
index 6ad62c8..36a8cae 100644
--- a/src/libosmo-mgcp/mgcp_iuup.c
+++ b/src/libosmo-mgcp/mgcp_iuup.c
@@ -51,11 +51,11 @@
* the connection to cache the destination connection pointer. */
struct mgcp_conn *conn_dst;
- if (!conn->priv) {
+ if (!conn->send) {
conn_dst = mgcp_find_dst_conn(conn);
- conn->priv = conn_dst;
+ conn->send = conn_dst;
} else {
- conn_dst = (struct mgcp_conn *)conn->priv;
+ conn_dst = conn->send;
}
return conn_dst;
}
diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c
index 33cd8af..8850670 100644
--- a/src/libosmo-mgcp/mgcp_network.c
+++ b/src/libosmo-mgcp/mgcp_network.c
@@ -1330,11 +1330,11 @@
* Since list iterations are quite costly, we will figure out the
* destination only once and use the optional private data pointer of
* the connection to cache the destination connection pointer. */
- if (!conn->priv) {
+ if (!conn->send) {
conn_dst = mgcp_find_dst_conn(conn);
- conn->priv = conn_dst;
+ conn->send = conn_dst;
} else {
- conn_dst = (struct mgcp_conn *)conn->priv;
+ conn_dst = conn->send;
}
/* There is no destination conn, stop here */
@@ -1406,8 +1406,8 @@
* connections present when one connection is removed from the
* endpoint. */
llist_for_each_entry(conn_cleanup, &endp->conns, entry) {
- if (conn_cleanup->priv == conn)
- conn_cleanup->priv = NULL;
+ if (conn_cleanup->send == conn)
+ conn_cleanup->send = NULL;
}
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/33547
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: Icefacf0f91ae068e4f0cd65244d92735045b7c26
Gerrit-Change-Number: 33547
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-MessageType: newchange
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/33546 )
Change subject: ASCI: Add new mode for voice group/broadcast call
......................................................................
ASCI: Add new mode for voice group/broadcast call
The new mode "confecho" is similar to "sendrecv", except that it also
echoes back RTP towards the sender. This is required for voice group or
broadcast calls. Talker and listeners use the same timeslot, so that
audio must be echoed from the talker to the listeners.
It is different from "loopback", because a loopback only echoes back RTP
towards the sender, but does not forward audio through the endpoint to
the other connections. Also it does not forward RTP from senders of
other connections.
Because there is no transcoding within the endpoint, only one connection
in the mode "confecho" shall receive RTP from the sender.
The flags to send and receive RTP are removed from the mode "loopback",
because a connection in loopback mode does not send to, nor receive from
the endpoint. I just echoes RTP without any forwarding.
Change-Id: I0639c663e119d85bef1010c7aa45e2f133a9daf0
---
M include/osmocom/mgcp/mgcp_common.h
M src/libosmo-mgcp-client/mgcp_client.c
M src/libosmo-mgcp/mgcp_msg.c
M src/libosmo-mgcp/mgcp_protocol.c
M tests/mgcp/mgcp_test.c
5 files changed, 36 insertions(+), 7 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/46/33546/1
diff --git a/include/osmocom/mgcp/mgcp_common.h b/include/osmocom/mgcp/mgcp_common.h
index 07d8d37..6f0775d 100644
--- a/include/osmocom/mgcp/mgcp_common.h
+++ b/include/osmocom/mgcp/mgcp_common.h
@@ -46,7 +46,8 @@
MGCP_CONN_RECV_ONLY = 1,
MGCP_CONN_SEND_ONLY = 2,
MGCP_CONN_RECV_SEND = MGCP_CONN_RECV_ONLY | MGCP_CONN_SEND_ONLY,
- MGCP_CONN_LOOPBACK = 4 | MGCP_CONN_RECV_SEND,
+ MGCP_CONN_LOOPBACK = 4,
+ MGCP_CONN_CONFECHO = MGCP_CONN_LOOPBACK | MGCP_CONN_RECV_SEND,
};
#define MGCP_X_OSMO_IGN_HEADER "X-Osmo-IGN:"
diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c
index 78652a1..5df4560 100644
--- a/src/libosmo-mgcp-client/mgcp_client.c
+++ b/src/libosmo-mgcp-client/mgcp_client.c
@@ -1548,6 +1548,7 @@
{ MGCP_CONN_RECV_SEND, "sendrecv" },
{ MGCP_CONN_SEND_ONLY, "sendonly" },
{ MGCP_CONN_RECV_ONLY, "recvonly" },
+ { MGCP_CONN_CONFECHO, "confecho" },
{ MGCP_CONN_LOOPBACK, "loopback" },
{ 0, NULL }
};
diff --git a/src/libosmo-mgcp/mgcp_msg.c b/src/libosmo-mgcp/mgcp_msg.c
index 26a44c6..a46ffc2 100644
--- a/src/libosmo-mgcp/mgcp_msg.c
+++ b/src/libosmo-mgcp/mgcp_msg.c
@@ -75,7 +75,7 @@
}
/*! Parse connection mode.
- * \param[in] mode as string (recvonly, sendrecv, sendonly or loopback)
+ * \param[in] mode as string (recvonly, sendrecv, sendonly confecho or loopback)
* \param[in] endp pointer to endpoint (only used for log output)
* \param[out] associated connection to be modified accordingly
* \returns 0 on success, -1 on error */
@@ -100,6 +100,8 @@
conn->mode = MGCP_CONN_RECV_SEND;
else if (strcasecmp(mode, "sendonly") == 0)
conn->mode = MGCP_CONN_SEND_ONLY;
+ else if (strcasecmp(mode, "confecho") == 0)
+ conn->mode = MGCP_CONN_CONFECHO;
else if (strcasecmp(mode, "loopback") == 0)
conn->mode = MGCP_CONN_LOOPBACK;
else {
diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c
index 978af42..6223ffa 100644
--- a/src/libosmo-mgcp/mgcp_protocol.c
+++ b/src/libosmo-mgcp/mgcp_protocol.c
@@ -1088,7 +1088,7 @@
/* check connection mode setting */
if (conn->conn->mode != MGCP_CONN_LOOPBACK
- && conn->conn->mode != MGCP_CONN_RECV_ONLY
+ && (conn->conn->mode & MGCP_CONN_SEND_ONLY)
&& osmo_sockaddr_port(&conn->end.addr.u.sa) == 0) {
LOGPCONN(_conn, DLMGCP, LOGL_ERROR,
"CRCX: selected connection mode type requires an opposite end!\n");
@@ -1296,7 +1296,7 @@
/* check connection mode setting */
if (conn->conn->mode != MGCP_CONN_LOOPBACK
- && conn->conn->mode != MGCP_CONN_RECV_ONLY
+ && (conn->conn->mode & MGCP_CONN_SEND_ONLY)
&& !mgcp_rtp_end_remote_addr_available(&conn->end)) {
LOGPCONN(conn->conn, DLMGCP, LOGL_ERROR,
"MDCX: selected connection mode type requires an opposite end!\n");
diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c
index e37bb57..1caa879 100644
--- a/tests/mgcp/mgcp_test.c
+++ b/tests/mgcp/mgcp_test.c
@@ -712,9 +712,8 @@
/* Check that NONE disables all output */
OSMO_ASSERT((MGCP_CONN_NONE & MGCP_CONN_RECV_SEND) == 0);
- /* Check that LOOPBACK enables all output */
- OSMO_ASSERT((MGCP_CONN_LOOPBACK & MGCP_CONN_RECV_SEND) ==
- MGCP_CONN_RECV_SEND);
+ /* Check that LOOPBACK disables all output */
+ OSMO_ASSERT((MGCP_CONN_LOOPBACK & MGCP_CONN_RECV_SEND) == 0);
}
/* Extract a connection ID from a response and return in conn_id;
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/33546
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I0639c663e119d85bef1010c7aa45e2f133a9daf0
Gerrit-Change-Number: 33546
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-MessageType: newchange
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/33548 )
Change subject: ASCI: Support conference briding with 1..n connections
......................................................................
ASCI: Support conference briding with 1..n connections
An RTP bridge may have 1 or many endpoints. Each endpoint may receive,
send or echo audio back. Because transcoding is not supported, it must
be assumed that only connection receives RTP in a conference with more
than 2 connections.
A connection that receives RTP into the endpont will have "send" pointer
set to (one of) the other connection that shall send out RTP.
All connection that send RTP have "send_next" pointer set to the next
or first connection that sends RTP. They are linked in a ring.
Regular bridge with two connections: Each connection forwards audio
towards the other connection and only towards the other connection.
The "send_next" pointers are set to NULL or pointing to the other
endpoint.
connection A connection B
("sendrecv") ("sendrecv")
conn->send --------------------------->
<------------------------------------- conn->send
conn->send_next ---------------------->
<------------------------------------- conn->send_next
Conference bridge with three connections: Each connection forwards
audio to itself and also towards all other connection.
connection A connection B connection C
("confecho") ("confecho") ("confecho");
conn->send --\ conn->send --\ conn->send --\
<-----------/ <-----------/ <-----------/
conn->send_next -->
conn->send_next -->
<------------------------------------- conn->send_next
The same conference bridge but without echo: Each connection forwards
auto to all other connection but not to itself.
connection A connection B connection C
("confecho") ("confecho") ("confecho");
conn->send -------> conn->send ------->
<------------------------------------- conn->send
conn->send_next -->
conn->send_next -->
<------------------------------------- conn->send_next
Change-Id: Ic99a55ab5a3a6170e940403fadd52697e99f2f3a
---
M include/osmocom/mgcp/mgcp_trunk.h
M src/libosmo-mgcp/mgcp_endp.c
M src/libosmo-mgcp/mgcp_network.c
M src/libosmo-mgcp/mgcp_protocol.c
M src/libosmo-mgcp/mgcp_trunk.c
5 files changed, 190 insertions(+), 60 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/48/33548/1
diff --git a/include/osmocom/mgcp/mgcp_trunk.h b/include/osmocom/mgcp/mgcp_trunk.h
index e608161..7dff2b5 100644
--- a/include/osmocom/mgcp/mgcp_trunk.h
+++ b/include/osmocom/mgcp/mgcp_trunk.h
@@ -79,6 +79,8 @@
struct mgcp_trunk *mgcp_trunk_by_name(const struct mgcp_config *cfg, const char *epname);
int e1_trunk_nr_from_epname(unsigned int *trunk_nr, const char *epname);
struct mgcp_trunk *mgcp_trunk_by_line_num(const struct mgcp_config *cfg, unsigned int num);
+int mgcp_trunk_connect(struct mgcp_endpoint *endp, struct mgcp_conn *exclude_conn);
+void mgcp_trunk_endp_update(struct mgcp_endpoint *endp);
/* The virtual trunk is always created on trunk id 0 for historical reasons,
* use this define constant as ID when allocating a virtual trunk. Other
diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c
index 20088b7..4114cf9 100644
--- a/src/libosmo-mgcp/mgcp_endp.c
+++ b/src/libosmo-mgcp/mgcp_endp.c
@@ -629,7 +629,7 @@
/* Allocate resources */
switch (endp->trunk->trunk_type) {
case MGCP_TRUNK_VIRTUAL:
- /* No updating initaliziation required for virtual endpoints. */
+ mgcp_trunk_endp_update(endp);
break;
case MGCP_TRUNK_E1:
mgcp_e1_endp_update(endp);
diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c
index 8850670..a03f697 100644
--- a/src/libosmo-mgcp/mgcp_network.c
+++ b/src/libosmo-mgcp/mgcp_network.c
@@ -1292,6 +1292,7 @@
struct mgcp_conn *conn_dst;
struct osmo_sockaddr *from_addr = mc->from_addr;
char ipbuf[INET6_ADDRSTRLEN];
+ int rc = 0;
/*! NOTE: This callback function implements the endpoint specific
* dispatch behaviour of an rtp bridge/proxy endpoint. It is assumed
@@ -1323,36 +1324,25 @@
return mgcp_conn_rtp_dispatch_rtp(conn_src, msg);
}
- /* Find a destination connection. */
- /* NOTE: This code path runs every time an RTP packet is received. The
- * function mgcp_find_dst_conn() we use to determine the detination
- * connection will iterate the connection list inside the endpoint.
- * Since list iterations are quite costly, we will figure out the
- * destination only once and use the optional private data pointer of
- * the connection to cache the destination connection pointer. */
- if (!conn->send) {
- conn_dst = mgcp_find_dst_conn(conn);
- conn->send = conn_dst;
- } else {
- conn_dst = conn->send;
+ /* Dispatch RTP packet to destination RTP connection(s).
+ * Only if reception is enabled and there is at least one destination,
+ * conn->send is set to that destination. TRP is forwarded to that
+ * destination. If there are multiple destinations (conference),
+ * conn->send_next points to the next destination. The loop is executed
+ * until data is sent to all destinations. If conn->send points to the
+ * receiving conn (this conn), data is also echoed back to the sender.
+ *
+ * The loop terminates if there is no other destination (conn_dst == NULL)
+ * or if it reaches the originating connection (conn_dst == conn)
+ * or if it reaches the destination where it started (conn_dst == conn->send).
+ */
+ if ((conn_dst = conn->send)) {
+ do {
+ rc = mgcp_conn_rtp_dispatch_rtp(&conn_dst->u.rtp, msg);
+ conn_dst = conn_dst->send_next;
+ } while (conn_dst && conn_dst != conn && conn_dst != conn->send);
}
-
- /* There is no destination conn, stop here */
- if (!conn_dst) {
- LOGPCONN(conn, DRTP, LOGL_DEBUG,
- "no connection to forward an incoming RTP packet to\n");
- return -1;
- }
-
- /* The destination conn is not an RTP connection */
- if (conn_dst->type != MGCP_CONN_TYPE_RTP) {
- LOGPCONN(conn, DRTP, LOGL_ERROR,
- "unable to find suitable destination conn\n");
- return -1;
- }
-
- /* Dispatch RTP packet to destination RTP connection */
- return mgcp_conn_rtp_dispatch_rtp(&conn_dst->u.rtp, msg);
+ return rc;
}
/*! dispatch incoming RTP packet to E1 subslot, handle RTCP packets locally.
@@ -1397,18 +1387,8 @@
* \param[in] conn Connection that is about to be removed (ignored). */
void mgcp_cleanup_rtp_bridge_cb(struct mgcp_endpoint *endp, struct mgcp_conn *conn)
{
- struct mgcp_conn *conn_cleanup;
-
- /* In mgcp_dispatch_rtp_bridge_cb() we use conn->priv to cache the
- * pointer to the destination connection, so that we do not have
- * to go through the list every time an RTP packet arrives. To prevent
- * a use-after-free situation we invalidate this information for all
- * connections present when one connection is removed from the
- * endpoint. */
- llist_for_each_entry(conn_cleanup, &endp->conns, entry) {
- if (conn_cleanup->send == conn)
- conn_cleanup->send = NULL;
- }
+ /* Restructure connections with this connection excluded. */
+ mgcp_trunk_connect(endp, conn);
}
/*! cleanup an endpoint when a connection on an E1 endpoint is removed.
diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c
index 6223ffa..c4149ab 100644
--- a/src/libosmo-mgcp/mgcp_protocol.c
+++ b/src/libosmo-mgcp/mgcp_protocol.c
@@ -966,24 +966,6 @@
return create_err_response(endp, endp, 517, "CRCX", pdata->trans);
}
- /* Check if we are able to accept the creation of another connection */
- if (llist_count(&endp->conns) >= endp->type->max_conns) {
- LOGPENDP(endp, DLMGCP, LOGL_ERROR,
- "CRCX: endpoint full, max. %i connections allowed!\n",
- endp->type->max_conns);
- if (trunk->force_realloc) {
- /* There is no more room for a connection, make some
- * room by blindly tossing the oldest of the two two
- * connections */
- mgcp_conn_free_oldest(endp);
- } else {
- /* There is no more room for a connection, leave
- * everything as it is and return with an error */
- rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_LIMIT_EXCEEDED));
- return create_err_response(endp, endp, 540, "CRCX", pdata->trans);
- }
- }
-
/* Check if this endpoint already serves a call, if so, check if the
* callids match up so that we are sure that this is our call */
if (endp->callid && mgcp_verify_call_id(endp, callid)) {
diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c
index 69750f8..da685e1 100644
--- a/src/libosmo-mgcp/mgcp_trunk.c
+++ b/src/libosmo-mgcp/mgcp_trunk.c
@@ -24,6 +24,7 @@
#include <osmocom/mgcp/mgcp.h>
#include <osmocom/mgcp/mgcp_protocol.h>
#include <osmocom/mgcp/mgcp_endp.h>
+#include <osmocom/mgcp/mgcp_conn.h>
#include <osmocom/mgcp/mgcp_trunk.h>
#include <osmocom/mgcp/mgcp_e1.h>
#include <osmocom/abis/e1_input.h>
@@ -306,3 +307,115 @@
return NULL;
}
+
+/* Interconnect payload of connections depending on their mode.
+ * Optionally exclude a connection that shall be removed from the endpoint.
+ *
+ * A connection that receives RTP into the endpont will have "send" pointer
+ * set to (one of) the other connection that shall send out RTP.
+ *
+ * All connection that send RTP have "send_next" pointer set to the next
+ * or first connection that sends RTP. They are linked in a ring.
+ *
+ * Regular bridge with two connections: Each connection forwards audio
+ * towards the other connection and only towards the other connection.
+ * The "send_next" pointers are pointing to the other endpoint.
+
+ * connection A connection B
+ * ("sendrecv") ("sendrecv")
+ * conn->send --------------------------->
+ * <------------------------------------- conn->send
+ * conn->send_next ---------------------->
+ * <------------------------------------- conn->send_next
+ *
+ * Conference bridge with three connections: Each connection forwards
+ * audio to itself and also towards all other connection.
+ *
+ * connection A connection B connection C
+ * ("confecho") ("confecho") ("confecho");
+ * conn->send --\ conn->send --\ conn->send --\
+ * <-----------/ <-----------/ <-----------/
+ * conn->send_next -->
+ * conn->send_next -->
+ * <------------------------------------- conn->send_next
+ *
+ * The same conference bridge but without echo: Each connection forwards
+ * auto to all other connection but not to itself.
+ *
+ * connection A connection B connection C
+ * ("confecho") ("confecho") ("confecho");
+ * conn->send -------> conn->send ------->
+ * <------------------------------------- conn->send
+ * conn->send_next -->
+ * conn->send_next -->
+ * <------------------------------------- conn->send_next
+ *
+ */
+int mgcp_trunk_connect(struct mgcp_endpoint *endp, struct mgcp_conn *exclude_conn)
+{
+ struct mgcp_conn *conn = NULL, *first_conn = NULL, *previous_conn, *send_conn;
+
+ /* Link all _sending_ connection in a circular linked list, if there is
+ * more than one sending endpoint. */
+ llist_for_each_entry(conn, &endp->conns, entry) {
+ if (conn == exclude_conn)
+ continue;
+ if (conn->type != MGCP_CONN_TYPE_RTP)
+ continue;
+ if (!(conn->mode & MGCP_CONN_SEND_ONLY))
+ continue;
+ if (!first_conn)
+ first_conn = conn;
+ else
+ previous_conn->send_next = conn;
+ previous_conn = conn;
+ }
+ if (first_conn && previous_conn != first_conn)
+ previous_conn->send_next = first_conn;
+
+ /* Link all _receiving_ connections to a sending connection, if any.
+ * If the receiving connection also gets looped back what it receives, it is linked to itsef, so that the
+ * payload is also forwarded to itself. */
+ llist_for_each_entry(conn, &endp->conns, entry) {
+ if (conn == exclude_conn)
+ continue;
+ if (conn->type != MGCP_CONN_TYPE_RTP)
+ continue;
+ if (!(conn->mode & MGCP_CONN_RECV_ONLY))
+ continue;
+ /* If we are also sending to ourself, our connection is the first sending endpoint. */
+ if ((conn->mode & MGCP_CONN_LOOPBACK) && (conn->mode & MGCP_CONN_SEND_ONLY))
+ conn->send = conn;
+ /* If we are not sending to ourself, select the next sending connection in the circular list. */
+ else if (conn->send_next)
+ conn->send = conn->send_next;
+ /* I case we are not in the ciruclar list, search for the first node in that list. */
+ else {
+ llist_for_each_entry(send_conn, &endp->conns, entry) {
+ if ((send_conn->mode & MGCP_CONN_SEND_ONLY))
+ conn->send = send_conn;
+ }
+ }
+ }
+
+ /* Debug the result. */
+ LOGP(DLMGCP, LOGL_DEBUG, "Endpoint %s has the following interconnections:\n", endp->name);
+ llist_for_each_entry(conn, &endp->conns, entry) {
+ LOGP(DLMGCP, LOGL_DEBUG, " -> Connection ID %s %s incoming payload.\n", conn->id,
+ (conn->mode & MGCP_CONN_RECV_ONLY) ? "receives" : "ignores");
+ send_conn = conn->send;
+ while (send_conn) {
+ LOGP(DLMGCP, LOGL_DEBUG, " Payload is forwarded to ID %s\n", send_conn->id);
+ send_conn = send_conn->send_next;
+ if (send_conn == conn || send_conn == conn->send)
+ break;
+ }
+ }
+
+ return 0;
+}
+
+void mgcp_trunk_endp_update(struct mgcp_endpoint *endp)
+{
+ mgcp_trunk_connect(endp, NULL);
+}
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/33548
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: Ic99a55ab5a3a6170e940403fadd52697e99f2f3a
Gerrit-Change-Number: 33548
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Gerrit-MessageType: newchange
Attention is currently required from: arehbein.
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/33206 )
Change subject: stream (cosmetic): Fix osmo_panic log fmts
......................................................................
Patch Set 6:
(1 comment)
File src/stream.c:
https://gerrit.osmocom.org/c/libosmo-netif/+/33206/comment/7ba191aa_2f81a7c3
PS6, Line 615: cli->state);
there's also the __func__ or __FUNCTION__ macro that could be used here. This makes the compiler insert the function name. So something like
osmo_panic("%s called with unexpected state %d\n", __func__, cli->state);
This way it will work even if the code is refactored, functions are renamed etc. in the future.
--
To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/33206
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: Id082a9473b788f8de20cdc2ba4430b3289f4ce5a
Gerrit-Change-Number: 33206
Gerrit-PatchSet: 6
Gerrit-Owner: arehbein <arehbein(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: arehbein <arehbein(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Jul 2023 10:42:41 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/33545 )
Change subject: Increase PCUIF wqueue size
......................................................................
Increase PCUIF wqueue size
The default of 10 messages introduced recently is too small, specially
when using osmo-bts-trx, where clock drifting and CPU scheduling can
cause skewing and hence generation of 2-3 FNs (* up to 8 TS) at once,
hence filling the PCUIF queue with more than 10 messages in a given
moment.
Fixes: c938a95e255262f38aae9d4242cc86a87c46d172
Change-Id: I7ababfc6cdf20196889fb542a8040128b3c118b5
---
M include/osmo-bts/bts.h
1 file changed, 17 insertions(+), 1 deletion(-)
Approvals:
Jenkins Builder: Verified
arehbein: Looks good to me, but someone else must approve
laforge: Looks good to me, approved
diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h
index dcd8459..296aa0d 100644
--- a/include/osmo-bts/bts.h
+++ b/include/osmo-bts/bts.h
@@ -137,7 +137,7 @@
char *addr;
};
-#define BTS_PCU_SOCK_WQUEUE_LEN_DEFAULT 10
+#define BTS_PCU_SOCK_WQUEUE_LEN_DEFAULT 100
/* One BTS */
struct gsm_bts {
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/33545
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I7ababfc6cdf20196889fb542a8040128b3c118b5
Gerrit-Change-Number: 33545
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: arehbein <arehbein(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-MessageType: merged
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/33545 )
Change subject: Increase PCUIF wqueue size
......................................................................
Increase PCUIF wqueue size
The default of 10 messages introduced recently is too small, specially
when using osmo-bts-trx, where clock drifting and CPU scheduling can
cause skewing and hence generation of 2-3 FNs (* up to 8 TS) at once,
hence filling the PCUIF queue with more than 10 messages in a given
moment.
Fixes: c938a95e255262f38aae9d4242cc86a87c46d172
Change-Id: I7ababfc6cdf20196889fb542a8040128b3c118b5
---
M include/osmo-bts/bts.h
1 file changed, 17 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/45/33545/1
diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h
index dcd8459..296aa0d 100644
--- a/include/osmo-bts/bts.h
+++ b/include/osmo-bts/bts.h
@@ -137,7 +137,7 @@
char *addr;
};
-#define BTS_PCU_SOCK_WQUEUE_LEN_DEFAULT 10
+#define BTS_PCU_SOCK_WQUEUE_LEN_DEFAULT 100
/* One BTS */
struct gsm_bts {
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/33545
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I7ababfc6cdf20196889fb542a8040128b3c118b5
Gerrit-Change-Number: 33545
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange
Attention is currently required from: neels, pespin.
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33480 )
Change subject: hnbgw: prepare cn pool: add multiple MSCs and SGSNs
......................................................................
Patch Set 2:
(1 comment)
Patchset:
PS2:
> Is there really a benefit in having both SGSNs and MSCs mixed in the same array and then having to u […]
it is how we have handled things so far, also in other places AFAICT. In the end, those are all the same type of Iu connections, and there is (probably) code that just iterates over the array and does the same operation over the entire array. The only difference between MSC and SGSN facing Iu links is the domain (cs vs ps) but apart from that they are identical.
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33480
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ia29565cabc072de9aa46565b57232e1eda65874f
Gerrit-Change-Number: 33480
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Jul 2023 10:09:47 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: comment
Attention is currently required from: neels.
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33473 )
Change subject: hnbgw: drop dead code from MSC_UnitdataCallback
......................................................................
Patch Set 1:
(1 comment)
Patchset:
PS1:
> > Also on RANAP, the HNBGW_Tests.ttcn so far conveniently ignored RANAP RESET handling. […]
Please update commit description explaining all that.
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33473
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ie7b9022e991b63b945c7ec6e5c9f7c4eb5da4d7e
Gerrit-Change-Number: 33473
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Jul 2023 09:51:32 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: neels <nhofmeyr(a)sysmocom.de>
Gerrit-MessageType: comment
Attention is currently required from: neels.
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33486 )
Change subject: hnbgw: add CN pool tests
......................................................................
Patch Set 2:
(1 comment)
File hnbgw/osmo-stp.cfg:
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33486/comment/eab4350f_30bf…
PS2, Line 41: asp virt-msc1-0 23907 2905 m3ua
> you are missing now mandatory "role" and "sctp role" fields in all ASPs defined in VTY.
https://gerrit.osmocom.org/c/docker-playground/+/33544 */osmo-stp.cfg: Explicitly define role & sctp-role
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33486
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I027a059faed3f140f8801f84338956cd004043b5
Gerrit-Change-Number: 33486
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Jul 2023 09:47:52 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: comment
Attention is currently required from: neels.
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33486 )
Change subject: hnbgw: add CN pool tests
......................................................................
Patch Set 2:
(1 comment)
File hnbgw/osmo-stp.cfg:
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33486/comment/f20c1036_3675…
PS2, Line 41: asp virt-msc1-0 23907 2905 m3ua
you are missing now mandatory "role" and "sctp role" fields in all ASPs defined in VTY.
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33486
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I027a059faed3f140f8801f84338956cd004043b5
Gerrit-Change-Number: 33486
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Jul 2023 09:37:33 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
Attention is currently required from: neels.
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33482 )
Change subject: hnbgw: call f_start_hnbs() by default
......................................................................
Patch Set 2: Code-Review+1
(1 comment)
Commit Message:
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33482/comment/da12410c_26b2…
PS2, Line 12: The three tests that don't whant f_start_hnbs() to run now pass a new
want
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33482
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I2b29ce66aee0b2d57fa26e6110f06292c481ab6b
Gerrit-Change-Number: 33482
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Jul 2023 09:29:03 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
Attention is currently required from: neels.
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33480 )
Change subject: hnbgw: prepare cn pool: add multiple MSCs and SGSNs
......................................................................
Patch Set 2: -Code-Review
(2 comments)
Patchset:
PS2:
Is there really a benefit in having both SGSNs and MSCs mixed in the same array and then having to use to use offsets depending on the type? Doesn't look like to me.
File hnbgw/HNBGW_Tests.ttcn:
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33480/comment/66a8297a_7602…
PS2, Line 261: /* array index in g_cn[] (in which SGSNs follow MSCs) */
I don't really understand this comment.
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33480
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ia29565cabc072de9aa46565b57232e1eda65874f
Gerrit-Change-Number: 33480
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Jul 2023 09:26:59 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
Attention is currently required from: laforge.
neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33490 )
Change subject: rua: also match on RUA Disconnect without RANAP payload
......................................................................
Patch Set 1:
(1 comment)
Patchset:
PS1:
> as this is going in between layers and potential cause for non-subtle behavior changes, I think it's […]
This patch exists for the line
RUA.receive(RUA_Disc_Ind:?);
in the TC_apply_sccp patch
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33491/
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33490
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ia0b89e9198794d196a88040ee89bdf24f3b08ae0
Gerrit-Change-Number: 33490
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Comment-Date: Tue, 04 Jul 2023 02:56:57 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: laforge <laforge(a)osmocom.org>
Gerrit-MessageType: comment
Attention is currently required from: laforge.
neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33488 )
Change subject: hnbgw: add mscpool paging tests
......................................................................
Patch Set 1:
(1 comment)
File hnbgw/HNBGW_Tests.ttcn:
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33488/comment/50ad76d1_91ff…
PS1, Line 2296: RUA Emulation forwards those RUA Unitdata only to the ranap_unitdata_cb
> As far as I can see, RUA_Emulation calls whatever unitdata callback was registered by the user of RU […]
this meaning is intended: we could handle the Paging with some effort,
but since we do not really care about the Paging message in this test, just leave it.
What sounds like a "missing feature" is an inconvenience: there is only one Unitdata callback, and communicating a call of this callback into the f_tc_foo() test case component isn't so trivial. It could be changed, but that comment shouldn't be there i guess.
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33488
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: If4bbd5c970108b01e8556fa7744ff627db75fb13
Gerrit-Change-Number: 33488
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Comment-Date: Tue, 04 Jul 2023 02:54:03 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: laforge <laforge(a)osmocom.org>
Gerrit-MessageType: comment
Attention is currently required from: neels.
Hello Jenkins Builder, laforge,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33486
to look at the new patch set (#2).
Change subject: hnbgw: add CN pool tests
......................................................................
hnbgw: add CN pool tests
Change-Id: I027a059faed3f140f8801f84338956cd004043b5
---
M hnbgw/HNBGW_Tests.ttcn
M hnbgw/gen_links.sh
M hnbgw/osmo-hnbgw-with-pfcp.cfg
M hnbgw/osmo-hnbgw.cfg
M hnbgw/osmo-stp.cfg
M library/L3_Templates.ttcn
M library/Osmocom_Types.ttcn
7 files changed, 947 insertions(+), 22 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/86/33486/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33486
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I027a059faed3f140f8801f84338956cd004043b5
Gerrit-Change-Number: 33486
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: neels.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33488
to look at the new patch set (#2).
Change subject: hnbgw: add mscpool paging tests
......................................................................
hnbgw: add mscpool paging tests
Change-Id: If4bbd5c970108b01e8556fa7744ff627db75fb13
---
M hnbgw/HNBGW_Tests.ttcn
M library/RAN_Emulation.ttcnpp
M library/ranap/RANAP_Templates.ttcn
3 files changed, 172 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/88/33488/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33488
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: If4bbd5c970108b01e8556fa7744ff627db75fb13
Gerrit-Change-Number: 33488
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: neels.
Hello Jenkins Builder, laforge,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33475
to look at the new patch set (#2).
Change subject: f_verify_talloc_count: mtc.stop
......................................................................
f_verify_talloc_count: mtc.stop
If the talloc count matching failed, immediately stop the failed test.
It is currently used by BSC_Tests.ttcn, and will soon also be used by
HNBGW_Tests.ttcn. These tests were used to uncover memory leaks, and
can now remain to guard against new leaks being introduced.
Change-Id: Id2b29beecf1c0652fb8d75e031e5c0dc9aa27975
---
M library/Osmocom_VTY_Functions.ttcn
1 file changed, 16 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/75/33475/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33475
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Id2b29beecf1c0652fb8d75e031e5c0dc9aa27975
Gerrit-Change-Number: 33475
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: neels <nhofmeyr(a)sysmocom.de>
Gerrit-MessageType: newpatchset
neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33473 )
Change subject: hnbgw: drop dead code from MSC_UnitdataCallback
......................................................................
Patch Set 1:
(1 comment)
Patchset:
PS1:
> Also on RANAP, the HNBGW_Tests.ttcn so far conveniently ignored RANAP RESET handling.
Apologies, that is inaccurate, actually the point is that RAN_Emulation handles RESET and hence the UnitdataCallback never had Unitdata messages left to handle.
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33473
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ie7b9022e991b63b945c7ec6e5c9f7c4eb5da4d7e
Gerrit-Change-Number: 33473
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Comment-Date: Tue, 04 Jul 2023 02:29:10 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: neels <nhofmeyr(a)sysmocom.de>
Gerrit-MessageType: comment
neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33473 )
Change subject: hnbgw: drop dead code from MSC_UnitdataCallback
......................................................................
Patch Set 1:
(1 comment)
Patchset:
PS1:
OK, I remember now.
a) not used:
osmo-hnbgw has only recently started sending RANAP UnitData by its own initiative.
Until very recently, osmo-hnbgw has only responded to receiving a RESET, with an ACK.
It has never sent a RESET message to the peer, here titan.
Also on RANAP, the HNBGW_Tests.ttcn so far conveniently ignored RANAP RESET handling.
In short, this UnitDataCallback so far never happened.
b) makes no sense:
The UnitDataCallback happens when osmo-hnbgw sends a RANAP UnitData to titan:
so currently, in response to receiving any UnitData message, the code responds with a RESET. That is not logical at all.
(What would make sense: when receiving a RESET, respond with RESET ACK. But:
Proper handling of RANAP RESET in ttcn actually happens in RAN_Emulation.ttcnpp)
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33473
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ie7b9022e991b63b945c7ec6e5c9f7c4eb5da4d7e
Gerrit-Change-Number: 33473
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Comment-Date: Tue, 04 Jul 2023 02:24:28 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33473 )
Change subject: hnbgw: drop dead code from MSC_UnitdataCallback
......................................................................
Patch Set 1:
(1 comment)
Patchset:
PS1:
i was sure the return value was not used, but clearly i was wrong...
checking now what's up with this patch.
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33473
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ie7b9022e991b63b945c7ec6e5c9f7c4eb5da4d7e
Gerrit-Change-Number: 33473
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Comment-Date: Tue, 04 Jul 2023 00:51:57 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment