[PATCH] osmo-ttcn3-hacks[master]: bts: Type Definition + Template for SI3; Send SI3 at start o...

Harald Welte gerrit-no-reply at lists.osmocom.org
Sun Feb 25 00:35:26 UTC 2018


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

bts: Type Definition + Template for SI3; Send SI3 at start of test

The BTS needs some of the SI3 parameters like BS_AG_BLKS_RES for
internal computations, so make sure we send it after the connection
has been established.

Change-Id: I5dc3724f79e669f52593cd776806d84b4dd4bf5c
---
M bts/BTS_Tests.ttcn
M library/GSM_RR_Types.ttcn
M library/General_Types.ttcn
M library/L3_Templates.ttcn
4 files changed, 130 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/85/6885/1

diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 58c7118..3bf412e 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -20,6 +20,9 @@
 import from TRXC_CodecPort all;
 import from TRXC_CodecPort_CtrlFunct all;
 
+import from L3_Templates all;
+import from MobileL3_CommonIE_Types all;
+
 /* The tests assume a BTS with the following timeslot configuration:
  * TS0 : Combined CCCH + SDCCH/4
  * TS1 .. TS 4: TCH/F
@@ -75,11 +78,62 @@
 	ConnL1Pars l1_pars
 }
 
+/* Default SYSTEM INFORMATION 3 */
+template (value) GsmRrMessage ts_SI3_default := {
+	header := t_RrHeader(SYSTEM_INFORMATION_TYPE_3, 0),
+	payload := {
+		si3 := {
+			cell_id := 23,
+			lai := {
+				mcc_mnc := '262F42'H,
+				lac := 42
+			},
+			ctrl_chan_desc := {
+				msc_r99 := true,
+				att := true,
+				bs_ag_blks_res := 1,
+				ccch_conf := CCHAN_DESC_1CCCH_COMBINED,
+				si22_ind := false,
+				cbq3 := CBQ3_IU_MODE_NOT_SUPPORTED,
+				spare := '00'B,
+				bs_pa_mfrms := 0, /* 2 multiframes */
+				t3212 := 1 /* 6 minutes */
+			},
+			cell_opts := {
+				dn_ind := false,
+				pwrc := false,
+				dtx := MS_MAY_USE_UL_DTX,
+				radio_link_tout_div4 := 4/4
+			},
+			cell_sel_pars := {
+				cell_resel_hyst_2dB := 0,
+				ms_txpwr_max_cch := 0,
+				acs := '0'B,
+				neci := true,
+				rxlev_access_min := 0
+			},
+			rach_ctrl_pars := {
+				max_retrans := RACH_MAX_RETRANS_1,
+				tx_integer := '0000'B, /* 3 slots */
+				cell_bar_access := false,
+				re_not_allowed := true,
+				acc := '1111111111111111'B
+			},
+			rest_octets := ''O
+		}
+	}
+}
 
 /* global init function */
 function f_init(charstring id) runs on test_CT {
 	f_init_rsl(id);
 	RSL_CCHAN.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP});
+
+	/* Send SI3 to the BTS, it is needed for various computations */
+	var GsmRrMessage si3 := valueof(ts_SI3_default);
+	log("Sending SI3 ", si3);
+	var octetstring si3_enc := enc_GsmRrMessage(si3);
+	RSL_CCHAN.send(ts_RSL(ts_RSL_BCCH_INFO(RSL_SYSTEM_INFO_3, si3_enc)));
 }
 
 type function void_fn(charstring id) runs on ConnHdlr;
diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn
index 4d1efd7..a8b6db2 100644
--- a/library/GSM_RR_Types.ttcn
+++ b/library/GSM_RR_Types.ttcn
@@ -366,6 +366,68 @@
 		uint3_t		non_drx_timer
 	} with { variant "" };
 
+	/* 44.018 10.5.2.3 */
+	type enumerated CellOptions_DTX {
+		MS_MAY_USE_UL_DTX	('00'B),
+		MS_SHALL_USE_UL_DTX	('01'B),
+		MS_SHALL_NOT_USE_UL_DTX	('10'B)
+	} with { variant "FIELDLENGTH(2)" };
+	type record CellOptions {
+		boolean		dn_ind,
+		boolean		pwrc,
+		CellOptions_DTX	dtx,
+		uint4_t		radio_link_tout_div4
+	} with { variant "" };
+
+	/* 44.018 10.5.2.4 */
+	type record CellSelectionPars {
+		uint3_t		cell_resel_hyst_2dB,
+		uint5_t		ms_txpwr_max_cch,
+		BIT1		acs,
+		boolean		neci,
+		uint6_t		rxlev_access_min
+	} with { variant "" };
+
+	/* 44.018 10.5.2.29 */
+	type enumerated RachCtrlPar_MR {
+		RACH_MAX_RETRANS_1	('00'B),
+		RACH_MAX_RETRANS_2	('01'B),
+		RACH_MAX_RETRANS_4	('10'B),
+		RACH_MAX_RETRANS_7	('11'B)
+	} with { variant "FIELDLENGTH(2)" };
+	type record RachControlPars {
+		RachCtrlPar_MR	max_retrans,
+		BIT4		tx_integer,
+		boolean		cell_bar_access,
+		boolean		re_not_allowed,
+		BIT16		acc
+	} with { variant "" };
+
+	/* 44.018 10.5.2.11 */
+	type enumerated CtrlChanDesc_CC {
+		CCHAN_DESC_1CCCH_NOT_COMBINED	('000'B),
+		CCHAN_DESC_1CCCH_COMBINED	('001'B),
+		CCHAN_DESC_2CCCH_NOT_COMBINED	('010'B),
+		CCHAN_DESC_3CCCH_NOT_COMBINED	('100'B),
+		CCHAN_DESC_4CCCH_NOT_COMBINED	('110'B)
+	} with { variant "FIELDLENGTH(3)" };
+	type enumerated CBQ3 {
+		CBQ3_IU_MODE_NOT_SUPPORTED	('00'B),
+		CBQ3_IU_MODE_MS_BARRED		('01'B),
+		CBQ3_IU_MODE_NOT_BARRED		('10'B)
+	} with { variant "FIELDLENGTH(2)" };
+	type record CtrlChanDesc {
+		boolean		msc_r99,
+		boolean		att,
+		uint3_t		bs_ag_blks_res,
+		CtrlChanDesc_CC	ccch_conf,
+		boolean		si22_ind,
+		CBQ3		cbq3,
+		BIT2		spare,
+		uint3_t		bs_pa_mfrms, /* off by 2 */
+		uint8_t		t3212
+	} with { variant "" };
+
 	/* 24.008 10.5.5.15 */
 	type record RoutingAreaIdentification {
 		LocationAreaIdentification	lai,
@@ -577,6 +639,16 @@
 		RestOctets			rest_octets
 	} with { variant "" };
 
+	/* 9.1.35 */
+	type record SystemInformationType3 {
+		CellIdentity			cell_id,
+		LocationAreaIdentification	lai,
+		CtrlChanDesc			ctrl_chan_desc,
+		CellOptions			cell_opts,
+		CellSelectionPars		cell_sel_pars,
+		RachControlPars			rach_ctrl_pars,
+		RestOctets			rest_octets
+	} with { variant (rest_octets) "FIELDLENGTH(4)" };
 
 	type union RrUnion {
 /*
@@ -584,13 +656,13 @@
 		SystemInformationType2		si2,
 		SystemInformationType2bis	si2bis,
 		SystemInformationType2ter	si2ter,
-		SystemInformationType3		si3,
 		SystemInformationType4		si4,
 		SystemInformationType5		si5,
 		SystemInformationType5bis	si5bis,
 		SystemInformationType5ter	si5ter,
 		SystemInformationType6		si6,
 */
+		SystemInformationType3		si3,
 		ImmediateAssignment		imm_ass,
 		ImmediateAssignmentReject	imm_ass_rej,
 		PagingRequestType1		pag_req_1,
diff --git a/library/General_Types.ttcn b/library/General_Types.ttcn
index b404fe1..83b2a42 100644
--- a/library/General_Types.ttcn
+++ b/library/General_Types.ttcn
@@ -75,6 +75,7 @@
   type bitstring BIT16 length(16) with { variant "FIELDLENGTH(16)" };
   type bitstring BIT24 length(24) with { variant "FIELDLENGTH(24)" };
   type bitstring BIT31 length(31) with { variant "FIELDLENGTH(31)" };
+  type bitstring BIT32 length(32) with { variant "FIELDLENGTH(32)" };
   type bitstring BIT56 length(56) with { variant "FIELDLENGTH(56)" };
 
   //****************************************************
diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index d3e021d..a614122 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -2093,6 +2093,8 @@
 	return f_concat_pad(12, '49123'H, suffix);
 }
 
+external function enc_MobileIdentityLV(in MobileIdentityLV si) return octetstring
+	with { extension "prototype(convert) encode(RAW)" };
 
 
 }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5dc3724f79e669f52593cd776806d84b4dd4bf5c
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>


More information about the gerrit-log mailing list