[MERGED] osmo-ttcn3-hacks[master]: BSSGP_Emulation: Add SNDCP decoding support

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

Harald Welte gerrit-no-reply at lists.osmocom.org
Sun Feb 18 19:24:23 UTC 2018


Harald Welte has submitted this change and it was merged.

Change subject: BSSGP_Emulation: Add SNDCP decoding support
......................................................................


BSSGP_Emulation: Add SNDCP decoding support

Change-Id: Icd2e8feed9173b0a2729b7ee1cfac37a86eca6cf
---
M gprs_gb/gen_links.sh
M library/BSSGP_Emulation.ttcn
M library/LLC_Templates.ttcn
M sgsn/SGSN_Tests.ttcn
M sgsn/gen_links.sh
5 files changed, 47 insertions(+), 5 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/gprs_gb/gen_links.sh b/gprs_gb/gen_links.sh
index 85a35ab..5cbaaae 100755
--- a/gprs_gb/gen_links.sh
+++ b/gprs_gb/gen_links.sh
@@ -47,6 +47,11 @@
 FILES="LLC_EncDec.cc LLC_Types.ttcn"
 gen_links $DIR $FILES
 
+DIR=$BASEDIR/titan.ProtocolModules.SNDCP_v7.0.0/src
+FILES="SNDCP_Types.ttcn"
+gen_links $DIR $FILES
+
+
 DIR=../library
 FILES="General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc L1CTL_Types.ttcn L1CTL_PortType.ttcn LAPDm_RAW_PT.ttcn LAPDm_Types.ttcn "
 FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc "
diff --git a/library/BSSGP_Emulation.ttcn b/library/BSSGP_Emulation.ttcn
index 0be12e8..a26e01f 100644
--- a/library/BSSGP_Emulation.ttcn
+++ b/library/BSSGP_Emulation.ttcn
@@ -14,6 +14,8 @@
 import from LLC_Types all;
 import from LLC_Templates all;
 
+import from SNDCP_Types all;
+
 /***********************************************************************
  * Communication between Client Components and Main Component
  ***********************************************************************/
@@ -601,7 +603,8 @@
 	PDU_BSSGP bssgp,
 	PDU_LLC llc optional,
 	PDU_L3_MS_SGSN l3_mo optional,
-	PDU_L3_SGSN_MS l3_mt optional
+	PDU_L3_SGSN_MS l3_mt optional,
+	PDU_SN sndcp optional
 }
 
 /* Decode a PDU_BSSGP into a BssgpDecoded (i.e. with LLC/L3 decoded, as applicable) */
@@ -610,7 +613,8 @@
 		bssgp := bssgp,
 		llc := omit,
 		l3_mo := omit,
-		l3_mt := omit
+		l3_mt := omit,
+		sndcp := omit
 	};
 
 	/* Decode LLC, if it is a PDU that contains LLC */
@@ -627,6 +631,11 @@
 		} else {
 			dec.l3_mt := dec_PDU_L3_SGSN_MS(dec.llc.pDU_LLC_UI.information_field_UI);
 		}
+	}
+
+	/* Decode SNDCP, if it is a LLC PDU containing user plane data */
+	if (isvalue(dec.llc) and match(dec.llc, tr_LLC_UI_USER)) {
+		dec.sndcp := dec_PDU_SN(dec.llc.pDU_LLC_UI.information_field_UI);
 	}
 	return dec;
 }
@@ -657,21 +666,32 @@
 	bssgp := bg,
 	llc := *,
 	l3_mo := *,
-	l3_mt := *
+	l3_mt := *,
+	sndcp := *
+}
+
+template BssgpDecoded tr_BD_LLC(template PDU_LLC llc) := {
+	bssgp := ?,
+	llc := llc,
+	l3_mo := *,
+	l3_mt := *,
+	sndcp := *
 }
 
 template BssgpDecoded tr_BD_L3_MT(template PDU_L3_SGSN_MS mt) := {
 	bssgp := ?,
 	llc := ?,
 	l3_mo := omit,
-	l3_mt := mt
+	l3_mt := mt,
+	sndcp := omit
 }
 
 template BssgpDecoded tr_BD_L3_MO(template PDU_L3_MS_SGSN mo) := {
 	bssgp := ?,
 	llc := ?,
 	l3_mo := mo,
-	l3_mt := omit
+	l3_mt := omit,
+	sndcp := omit
 }
 
 
diff --git a/library/LLC_Templates.ttcn b/library/LLC_Templates.ttcn
index cfe97f8..7bc4088 100644
--- a/library/LLC_Templates.ttcn
+++ b/library/LLC_Templates.ttcn
@@ -68,5 +68,12 @@
 /* LLC UI frame with SAPI for L3 payload */
 template PDU_LLC tr_LLC_UI_L3 := ( tr_LLC_UI(?, c_LLC_SAPI_LLGMM) );
 
+/* LLC UI frame with SAPI for User payload */
+template PDU_LLC tr_LLC_UI_USER := tr_LLC_UI(?, (c_LLC_SAPI_LL3,
+						 c_LLC_SAPI_LL5,
+						 c_LLC_SAPI_LL9,
+						 c_LLC_SAPI_LL11)
+						);
+
 
 }
diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index 6dd56ae..a381692 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -24,6 +24,11 @@
 import from GTPC_Types all;
 import from GTPU_Types all;
 
+import from LLC_Types all;
+import from LLC_Templates all;
+
+import from SNDCP_Types all;
+
 import from TELNETasp_PortType all;
 import from Osmocom_VTY_Functions all;
 
diff --git a/sgsn/gen_links.sh b/sgsn/gen_links.sh
index b450288..c398779 100755
--- a/sgsn/gen_links.sh
+++ b/sgsn/gen_links.sh
@@ -59,6 +59,11 @@
 FILES="LLC_EncDec.cc LLC_Types.ttcn"
 gen_links $DIR $FILES
 
+DIR=$BASEDIR/titan.ProtocolModules.SNDCP_v7.0.0/src
+FILES="SNDCP_Types.ttcn"
+gen_links $DIR $FILES
+
+
 DIR=$BASEDIR/titan.ProtocolModules.MobileL3_v13.4.0/src
 FILES="MobileL3_CC_Types.ttcn MobileL3_CommonIE_Types.ttcn MobileL3_GMM_SM_Types.ttcn MobileL3_MM_Types.ttcn MobileL3_RRM_Types.ttcn MobileL3_SMS_Types.ttcn MobileL3_SS_Types.ttcn MobileL3_Types.ttcn"
 gen_links $DIR $FILES

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Icd2e8feed9173b0a2729b7ee1cfac37a86eca6cf
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list