[PATCH] osmo-bsc[master]: abis_rsl: permit first EstablishInd only on SAPI=0

dexter gerrit-no-reply at lists.osmocom.org
Tue Feb 6 16:37:11 UTC 2018


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

abis_rsl: permit first EstablishInd only on SAPI=0

When the first EstablishInd (DCCH) is made by the MS, then it must by
definition happen on SAPI=0. The MS may establish multiple connection
on other SAPIs afterwards. At the moment osmo-bsc does not check the
SAPI when an EstablishInd message is received.

- For SAPIs other than 0, check if SAPI=0 has already been
  established

See also TTCN3 testcases:
BSC_Tests.TC_rll_est_ind_inval_sapi1
BSC_Tests.TC_rll_est_ind_inval_sapi3

Change-Id: Ibf4fca0bd42dfe5bc63e8b08754ebbe0a5e252c3
Closes: OS#2750
---
M src/libbsc/abis_rsl.c
1 file changed, 10 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/03/6303/1

diff --git a/src/libbsc/abis_rsl.c b/src/libbsc/abis_rsl.c
index 3f8bbc9..ff8b980 100644
--- a/src/libbsc/abis_rsl.c
+++ b/src/libbsc/abis_rsl.c
@@ -2180,6 +2180,16 @@
 	case RSL_MT_EST_IND:
 		DEBUGPC(DRLL, "ESTABLISH INDICATION\n");
 		/* lchan is established, stop T3101 */
+
+		/* Note: By definition the first Establish Indication must
+		 * happen first on SAPI 0, once the connection on SAPI 0 is
+		 * made, parallel connections on other SAPIs are permitted */
+		if (sapi != 0 && msg->lchan->sapis[0] != LCHAN_SAPI_MS) {
+			DEBUGPC(DRLL, "MS attempted to establish DCCH on SAPI=%d (expected SAPI=0)\n",
+				rllh->link_id & 0x7);
+			break;
+		}
+
 		msg->lchan->sapis[rllh->link_id & 0x7] = LCHAN_SAPI_MS;
 		osmo_timer_del(&msg->lchan->T3101);
 		if (msgb_l2len(msg) >

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibf4fca0bd42dfe5bc63e8b08754ebbe0a5e252c3
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: dexter <pmaier at sysmocom.de>


More information about the gerrit-log mailing list