Change in osmo-mgw[master]: legacy-mgcp: switch to new osmux output APIs

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Pau Espin Pedrol gerrit-no-reply at lists.osmocom.org
Thu May 17 11:38:00 UTC 2018


Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9213


Change subject: legacy-mgcp: switch to new osmux output APIs
......................................................................

legacy-mgcp: switch to new osmux output APIs

Older ones are being deprecated as they may generate interleaved
packets.

This commit is a forward-port of openbsc.git Change-Id
I189564fc63139c15314db8975afd423c7153ea32.

Change-Id: I9b8a19e5b8d62deaa9bbb92d49d99e8c33b7e345
---
M src/libosmo-legacy-mgcp/mgcp_osmux.c
1 file changed, 11 insertions(+), 6 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/13/9213/1

diff --git a/src/libosmo-legacy-mgcp/mgcp_osmux.c b/src/libosmo-legacy-mgcp/mgcp_osmux.c
index 743d3f9..b53e2b5 100644
--- a/src/libosmo-legacy-mgcp/mgcp_osmux.c
+++ b/src/libosmo-legacy-mgcp/mgcp_osmux.c
@@ -267,7 +267,6 @@
 {
 	struct msgb *msg;
 	struct osmux_hdr *osmuxh;
-	struct llist_head list;
 	struct sockaddr_in addr;
 	struct mgcp_config *cfg = ofd->data;
 	uint32_t rem;
@@ -297,8 +296,7 @@
 		endp->osmux.stats.chunks++;
 		rem = msg->len;
 
-		osmux_xfrm_output(osmuxh, &endp->osmux.out, &list);
-		osmux_tx_sched(&list, scheduled_tx_bts_cb, endp);
+		osmux_xfrm_output_sched(&endp->osmux.out, osmuxh);
 	}
 out:
 	msgb_free(msg);
@@ -359,7 +357,6 @@
 {
 	struct msgb *msg;
 	struct osmux_hdr *osmuxh;
-	struct llist_head list;
 	struct sockaddr_in addr;
 	struct mgcp_config *cfg = ofd->data;
 	uint32_t rem;
@@ -389,8 +386,7 @@
 		endp->osmux.stats.chunks++;
 		rem = msg->len;
 
-		osmux_xfrm_output(osmuxh, &endp->osmux.out, &list);
-		osmux_tx_sched(&list, scheduled_tx_net_cb, endp);
+		osmux_xfrm_output_sched(&endp->osmux.out, osmuxh);
 	}
 out:
 	msgb_free(msg);
@@ -470,9 +466,13 @@
 	switch (endp->cfg->role) {
 		case MGCP_BSC_NAT:
 			endp->type = MGCP_OSMUX_BSC_NAT;
+			osmux_xfrm_output_set_tx_cb(&endp->osmux.out,
+							scheduled_tx_net_cb, endp);
 			break;
 		case MGCP_BSC:
 			endp->type = MGCP_OSMUX_BSC;
+			osmux_xfrm_output_set_tx_cb(&endp->osmux.out,
+							scheduled_tx_bts_cb, endp);
 			break;
 	}
 	endp->osmux.state = OSMUX_STATE_ENABLED;
@@ -484,6 +484,11 @@
 {
 	LOGP(DLMGCP, LOGL_INFO, "Releasing endpoint %u using Osmux CID %u\n",
 	     ENDPOINT_NUMBER(endp), endp->osmux.cid);
+
+	/* We are closing, we don't need pending RTP packets to be transmitted */
+	osmux_xfrm_output_set_tx_cb(&endp->osmux.out, NULL, NULL);
+	osmux_xfrm_output_flush(&endp->osmux.out);
+
 	osmux_xfrm_input_close_circuit(endp->osmux.in, endp->osmux.cid);
 	endp->osmux.state = OSMUX_STATE_DISABLED;
 	endp->osmux.cid = -1;

-- 
To view, visit https://gerrit.osmocom.org/9213
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9b8a19e5b8d62deaa9bbb92d49d99e8c33b7e345
Gerrit-Change-Number: 9213
Gerrit-PatchSet: 1
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180517/7a150c5f/attachment.htm>


More information about the gerrit-log mailing list