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

dexter gerrit-no-reply at lists.osmocom.org
Wed Jan 18 16:57:54 UTC 2017


Review at  https://gerrit.osmocom.org/1626

LC15: 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. To 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 commit message in openbsc.git:
ee336527baf13a6e2c1040c0993a224c8191683e

This patch is based on:
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, 24 insertions(+), 0 deletions(-)


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

diff --git a/src/common/l1sap.c b/src/common/l1sap.c
index 9116e23..ceea95b 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.marker) {
+		LOGP(DRSL, LOGL_INFO, "%s Forward REL_IND to L3\n", gsm_lchan_name(lchan));
+		lchan->pending_rel_ind.marker = 0;
+		/* Forward it to L3 */
+		rc = abis_bts_rsl_sendmsg(lchan->pending_rel_ind.msg);
+		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..4509567 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,18 @@
 
 		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));
+
+			lchan->pending_rel_ind.marker = 1;
+			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: newchange
Gerrit-Change-Id: Ie4f70c75f0137b4bd72d579b3a32575bac2fca38
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: dexter <pmaier at sysmocom.de>


More information about the gerrit-log mailing list