Change in osmo-ttcn3-hacks[master]: library/RSL_Types: use MobileIdentityLV for MS Identity IE

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

fixeria gerrit-no-reply at lists.osmocom.org
Sun Mar 29 18:18:09 UTC 2020


fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/17646 )

Change subject: library/RSL_Types: use MobileIdentityLV for MS Identity IE
......................................................................

library/RSL_Types: use MobileIdentityLV for MS Identity IE

Change-Id: I5436dcbbc961d5b572e10e4f1a3f806d252d7818
---
M bsc/BSC_Tests.ttcn
M bts/BTS_Tests.ttcn
M library/L3_Templates.ttcn
M library/RSL_Types.ttcn
4 files changed, 39 insertions(+), 31 deletions(-)

Approvals:
  Jenkins Builder: Verified
  fixeria: Verified
  laforge: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved



diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index de7102e..353ab16 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1298,11 +1298,10 @@
 				  template BSSMAP_FIELD_CellIdentificationList cid_list,
 				  BtsIdList bts_ids := { 0 },
 				  template RSL_ChanNeeded rsl_chneed := omit,
-				  template OCT4 tmsi := omit) runs on test_CT
+				  template (omit) OCT4 tmsi := omit) runs on test_CT
 {
 	var template BSSMAP_IE_ChannelNeeded bssmap_chneed;
-	/* FIXME (unused): var MobileIdentity mi; */
-	var template octetstring id_enc; /* FIXME */
+	var template MobileIdentityV mi;
 	var RSL_Message rx_rsl;
 	var integer paging_group := hex2int(imsi[lengthof(imsi)-1]);
 	var integer i;
@@ -1323,17 +1322,14 @@
 
 	f_bssap_tx_ud(ts_BSSMAP_Paging(imsi, cid_list, tmsi, bssmap_chneed));
 
-/* FIXME: Disabled due to bugs in both GSM_RR_Types and MobileL3_CommonIE_Types IMSI encoder
-	if (isvalue(tmsi)) {
-		mi := valueof(t_Osmo_MI_TMSI(oct2int(valueof(tmsi))));
+	if (not istemplatekind(tmsi, "omit")) {
+		mi := t_MI_TMSI(tmsi);
 	} else {
-		mi := valueof(ts_Osmo_MI_IMSI(imsi));
+		mi := tr_MI_IMSI(imsi);
 	}
-	id_enc := enc_MobileIdentity(mi);
-*/
-	id_enc := ?;
+
 	for (i := 0; i < sizeof(bts_ids); i := i + 1) {
-		rx_rsl := f_exp_ipa_rx(bts_ids[i], tr_RSL_PAGING_CMD(id_enc));
+		rx_rsl := f_exp_ipa_rx(bts_ids[i], tr_RSL_PAGING_CMD(mi));
 		/* check channel type, paging group */
 		if (rx_rsl.ies[1].body.paging_group != paging_group) {
 			setverdict(fail, "Paging for wrong paging group");
@@ -1352,7 +1348,7 @@
 		}
 		T.start;
 		alt {
-		[] IPA_RSL[i].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_PAGING_CMD(id_enc))) {
+		[] IPA_RSL[i].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_PAGING_CMD(mi))) {
 			setverdict(fail, "Paging on BTS ", i, " which is not part of ", bts_ids);
 			}
 		[] IPA_RSL[i].receive { repeat; }
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 3018bca..9534a8b 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -2978,18 +2978,17 @@
 			/* Send paging cmds based on elapsed time */
 			var integer new_sent := f_min(pkt_total, float2int(T_total.read * pch_blocks_per_sec) + 1);
 			while (st.num_paging_sent < new_sent) {
+				var MobileIdentityV mi;
+
 				/* build mobile Identity */
-				var MobileIdentityLV mi;
 				if (cfg.use_tmsi) {
-					mi := valueof(ts_MI_TMSI_LV(f_rnd_octstring(4)));
+					mi := valueof(t_MI_TMSI(f_rnd_octstring(4)));
 				} else {
-					mi := valueof(ts_MI_IMSI_LV(f_gen_imsi(st.num_paging_sent)));
+					mi := valueof(ts_MI_IMSI(f_gen_imsi(st.num_paging_sent)));
 				}
-				var octetstring mi_enc_lv := enc_MobileIdentityLV(mi);
-				var octetstring mi_enc := substr(mi_enc_lv, 1, lengthof(mi_enc_lv)-1);
 
 				/* Send RSL PAGING COMMAND */
-				RSL_CCHAN.send(ts_RSL_UD(ts_RSL_PAGING_CMD(mi_enc, st.num_paging_sent mod 4)));
+				RSL_CCHAN.send(ts_RSL_UD(ts_RSL_PAGING_CMD(mi, st.num_paging_sent mod 4)));
 
 				st.num_paging_sent := st.num_paging_sent + 1;
 			}
@@ -4570,22 +4569,27 @@
 	f_init_pcu_test();
 
 	for (var integer i := 0; i < 100; i := i+1) {
-		var MobileIdentityLV mi;
+		var MobileIdentityLV mi_lv;
+		var octetstring mi_lv_enc;
+		var MobileIdentityV mi;
 		timer T := 3.0;
+
 		if (i < 50) {
-			mi := valueof(ts_MI_TMSI_LV(f_rnd_octstring(4)));
+			mi := valueof(t_MI_TMSI(f_rnd_octstring(4)));
 		} else {
-			mi := valueof(ts_MI_IMSI_LV(f_gen_imsi(i)));
+			mi := valueof(ts_MI_IMSI(f_gen_imsi(i)));
 		}
-		var octetstring mi_enc_lv := enc_MobileIdentityLV(mi);
-		var octetstring mi_enc := substr(mi_enc_lv, 1, lengthof(mi_enc_lv)-1);
-		var octetstring t_mi_lv := f_pad_oct(mi_enc_lv, 9, '00'O);
+
+		/* Fancy encoding for PCUIF */
+		mi_lv := valueof(ts_MI_LV(mi));
+		mi_lv_enc := enc_MobileIdentityLV(mi_lv);
+		mi_lv_enc := f_pad_oct(mi_lv_enc, 9, '00'O);
 
 		/* Send RSL PAGING COMMAND */
-		RSL_CCHAN.send(ts_RSL_UD(ts_RSL_PAGING_CMD(mi_enc, i mod 4)));
+		RSL_CCHAN.send(ts_RSL_UD(ts_RSL_PAGING_CMD(mi, i mod 4)));
 		T.start;
 		alt {
-		[] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_PAG_REQ(0, t_mi_lv))) {
+		[] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_PAG_REQ(0, mi_lv_enc))) {
 			}
 		[] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_PAG_REQ)) {
 			Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Unexpected PAGING REQ");
diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index 7e53709..092026e 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -122,6 +122,12 @@
 		imsi := f_tr_MI_IMSI(imsi)
 	}
 };
+template (value) MobileIdentityV ts_MI_IMSI(hexstring imsi) := {
+	typeOfIdentity := '001'B,
+	oddEvenInd_identity := {
+		imsi := f_enc_IMSI_L3(imsi)
+	}
+};
 
 
 /* send template for Mobile Identity (TMSI) */
diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn
index f905973..ff0e2e5 100644
--- a/library/RSL_Types.ttcn
+++ b/library/RSL_Types.ttcn
@@ -16,6 +16,8 @@
 	import from General_Types all;
 	import from Osmocom_Types all;
 	import from GSM_Types all;
+	import from MobileL3_CommonIE_Types all;
+	import from L3_Templates all;
 
 	/* Section 9.1 */
 	type enumerated RSL_MessageGroup {
@@ -819,7 +821,7 @@
 		uint8_t			smscb_chan_ind,
 		RSL_IE_RequestRef	req_ref,
 		RSL_LV			full_imm_ass_info,
-		RSL_LV			ms_identity,
+		MobileIdentityLV	ms_identity,
 
 		uint16_t		ipa_conn_id,
 		uint16_t		ipa_local_port,
@@ -1677,23 +1679,23 @@
 	}
 
 	/* 8.5.5 BSC -> BTS */
-	template RSL_Message tr_RSL_PAGING_CMD(template octetstring identity, template uint3_t tn := ?) := {
+	template RSL_Message tr_RSL_PAGING_CMD(template MobileIdentityV mi, template uint3_t tn := ?) := {
 		msg_disc := tr_RSL_MsgDisc(RSL_MDISC_CCHAN, false),
 		msg_type := RSL_MT_PAGING_CMD,
 		ies := {
 			tr_RSL_IE(RSL_IE_Body:{chan_nr := t_RslChanNr_PCH_AGCH(tn)}),
 			tr_RSL_IE(RSL_IE_Body:{paging_group := ?}),
-			tr_RSL_IE(RSL_IE_Body:{ms_identity := tr_RSL_LV(identity)}),
+			tr_RSL_IE(RSL_IE_Body:{ms_identity := tr_MI_LV(mi)}),
 			* /* opt: channel needed, eMLPP prio */
 		}
 	}
-	template (value) RSL_Message ts_RSL_PAGING_CMD(octetstring identity, uint8_t pg, uint3_t tn := 0) := {
+	template (value) RSL_Message ts_RSL_PAGING_CMD(MobileIdentityV mi, uint8_t pg, uint3_t tn := 0) := {
 		msg_disc := ts_RSL_MsgDisc(RSL_MDISC_CCHAN, false),
 		msg_type := RSL_MT_PAGING_CMD,
 		ies := {
 			t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := ts_RslChanNr_PCH_AGCH(tn)}),
 			t_RSL_IE(RSL_IE_PAGING_GROUP, RSL_IE_Body:{paging_group := pg}),
-			t_RSL_IE(RSL_IE_MS_IDENTITY, RSL_IE_Body:{ms_identity := ts_RSL_LV(identity)})
+			t_RSL_IE(RSL_IE_MS_IDENTITY, RSL_IE_Body:{ms_identity := ts_MI_LV(mi)})
 		}
 	}
 

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/17646
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I5436dcbbc961d5b572e10e4f1a3f806d252d7818
Gerrit-Change-Number: 17646
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <axilirator at gmail.com>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <axilirator at gmail.com>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200329/f561c0f3/attachment.htm>


More information about the gerrit-log mailing list