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