[PATCH] osmo-bts[master]: rsl: Fix dropping of LAPDm UA message.

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/.

dexter gerrit-no-reply at lists.osmocom.org
Wed Jan 25 11:56:44 UTC 2017


Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/1626

to look at the new patch set (#4).

rsl: Fix dropping of LAPDm UA message.

In some cases, when successive mobile originated calls are made, the LAPDm UA
message gets lost because the channel is relased to early. Too overcome the
problem we do not send relase indications immediately. Instead a flag will be
set and the message stored and sent on the next TCH-RTS-IND.

This commit adds the functionality to store the release indication msg, to
rsl.c. It also addes the mechanism to forward the release indication to l1sap.c
See also coresponding change in openbsc.git:
Change-Id I15fc1ef8e9e83f009bde96de9a8e95702cffbce6

This patch is is a slightly improved/reformatted version of:
https://gitlab.com/nrw_noa/osmo-bts/commit/95d1f15ad108c1c1869c1965144acd64c1395d8c

Change-Id: Ie4f70c75f0137b4bd72d579b3a32575bac2fca38
---
M src/common/l1sap.c
M src/common/rsl.c
2 files changed, 28 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/26/1626/4

diff --git a/src/common/l1sap.c b/src/common/l1sap.c
index 9116e23..8105312 100644
--- a/src/common/l1sap.c
+++ b/src/common/l1sap.c
@@ -714,6 +714,7 @@
 	uint8_t chan_nr, marker = 0;
 	uint16_t seq;
 	uint32_t fn, timestamp;
+	int rc;
 
 	chan_nr = rts_ind->chan_nr;
 	fn = rts_ind->fn;
@@ -757,6 +758,16 @@
 		resp_l1sap = msgb_l1sap_prim(resp_msg);
 	}
 
+	/* check for pending REL_IND */
+	if (lchan->pending_rel_ind_msg) {
+		LOGP(DRSL, LOGL_INFO, "%s Forward REL_IND to L3\n", gsm_lchan_name(lchan));
+		/* Forward it to L3 */
+		rc = abis_bts_rsl_sendmsg(lchan->pending_rel_ind_msg);
+		lchan->pending_rel_ind_msg = NULL;
+		if (rc < 0)
+			return rc;
+	}
+
 	memset(resp_l1sap, 0, sizeof(*resp_l1sap));
 	osmo_prim_init(&resp_l1sap->oph, SAP_GSM_PH, PRIM_TCH, PRIM_OP_REQUEST,
 		resp_msg);
diff --git a/src/common/rsl.c b/src/common/rsl.c
index a34c455..a908fb5 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -2278,6 +2278,7 @@
 	}
 
 	msg->trx = lchan->ts->trx;
+	msg->lchan = lchan;
 
 	/* check if this is a measurement report from SACCH which needs special
 	 * processing before forwarding */
@@ -2286,6 +2287,22 @@
 
 		LOGP(DRSL, LOGL_INFO, "%s Handing RLL msg %s from LAPDm to MEAS REP\n",
 			gsm_lchan_name(lchan), rsl_msg_name(rh->msg_type));
+
+		/* REL_IND handling */
+		if (rh->msg_type == RSL_MT_REL_IND) {
+			LOGP(DRSL, LOGL_INFO, "%s Scheduling %s to L3 in next associated TCH-RTS.ind\n",
+				gsm_lchan_name(lchan),
+				rsl_msg_name(rh->msg_type));
+
+			if(lchan->pending_rel_ind_msg) {
+				LOGP(DRSL, LOGL_INFO, "Dropping pending release indication message\n");
+					msgb_free(lchan->pending_rel_ind_msg);
+			}
+
+			lchan->pending_rel_ind_msg = msg;
+			return 0;
+		}
+
 		rc = rsl_tx_meas_res(lchan, msgb_l3(msg), msgb_l3len(msg));
 		msgb_free(msg);
 		return rc;

-- 
To view, visit https://gerrit.osmocom.org/1626
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ie4f70c75f0137b4bd72d579b3a32575bac2fca38
Gerrit-PatchSet: 4
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: dexter <pmaier at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Holger Freyther <holger at freyther.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Minh-Quang Nguyen <minh-quang.nguyen at nutaq.com>



More information about the gerrit-log mailing list