Change in osmo-ttcn3-hacks[master]: GBProxy_Tests: fix TC_rim_* tests

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

dexter gerrit-no-reply at lists.osmocom.org
Thu Jan 28 21:20:15 UTC 2021


dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525 )


Change subject: GBProxy_Tests: fix TC_rim_* tests
......................................................................

GBProxy_Tests: fix TC_rim_* tests

The TC_rim tests do not use the RIM templates from Osmocom_Gb_Types as
intended.

Change-Id: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587
Related: SYS#5103
---
M gbproxy/GBProxy_Tests.ttcn
M library/Osmocom_Gb_Types.ttcn
2 files changed, 248 insertions(+), 68 deletions(-)



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

diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index df27a3d..e3231e2 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -2914,20 +2914,35 @@
 runs on GlobalTest_CT
 {
 	var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id;
-	var template (value) RIM_Routing_Information ri_pcu;
-	var template (value) RIM_Routing_Information ri_sgsn;
-	var template (value) RAN_Information_Request_RIM_Container cont;
+	var template (value) RAN_Information_Request_RIM_Container cont_tx;
+	var template RAN_Information_Request_RIM_Container cont_rx;
+	var template RIM_Routing_Address ra_pcu;
+	var template RIM_Routing_Address ra_sgsn;
 
-	ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn));
-	ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id));
-	cont := ts_RAN_Information_Request_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC),
-							 ts_RIM_Sequence_Number(0),
-							 ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP));
-	f_rim_pcu2sgsn(ts_RAN_INFORMATION_REQUEST(dst := ri_sgsn, src := ri_pcu, cont := cont),
-			tr_RAN_INFORMATION_REQUEST(dst := ri_sgsn, src := ri_pcu, cont := cont),
-			pcu_idx);
-	f_rim_sgsn2pcu(ts_RAN_INFORMATION_REQUEST(dst := ri_pcu, src := ri_sgsn, cont := cont),
-			tr_RAN_INFORMATION_REQUEST(dst := ri_pcu, src := ri_sgsn, cont := cont),
+	ra_pcu := t_RIM_Routing_Address_cid(cell_id);
+	ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn);
+
+	cont_tx := ts_RAN_Information_Request_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC),
+							    ts_RIM_Sequence_Number(0),
+							    ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP));
+	cont_rx := tr_RAN_Information_Request_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC),
+							    tr_RIM_Sequence_Number(0),
+							    tr_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP));
+
+	f_rim_pcu2sgsn(ts_RAN_INFORMATION_REQUEST(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+						  src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+						  cont := cont_tx),
+		       tr_RAN_INFORMATION_REQUEST(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+						  src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+						  cont := cont_rx),
+		       pcu_idx);
+
+	f_rim_sgsn2pcu(ts_RAN_INFORMATION_REQUEST(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+					          src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+						  cont := cont_tx),
+		       tr_RAN_INFORMATION_REQUEST(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+					          src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+						  cont := cont_rx),
 			sgsn_idx, pcu_idx);
 }
 testcase TC_rim_info_req() runs on GlobalTest_CT
@@ -2943,20 +2958,36 @@
 runs on GlobalTest_CT
 {
 	var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id;
-	var template (value) RIM_Routing_Information ri_pcu;
-	var template (value) RIM_Routing_Information ri_sgsn;
-	var template (value) RAN_Information_RIM_Container cont;
+	var template (value) RAN_Information_RIM_Container cont_tx;
+	var template RAN_Information_RIM_Container cont_rx;
+	var template RIM_Routing_Address ra_pcu;
+	var template RIM_Routing_Address ra_sgsn;
 
-	ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn));
-	ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id));
-	cont := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC),
-						 ts_RIM_Sequence_Number(0),
-						 ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP));
-	f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_sgsn, src := ri_pcu, cont := cont),
-			tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_sgsn, src := ri_pcu, cont := cont),
-			pcu_idx);
-	f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu, src := ri_sgsn, cont := cont),
-			tr_PDU_BSSGP_RAN_INFORMATION(dst := ri_pcu, src := ri_sgsn, cont := cont),
+	ra_pcu := t_RIM_Routing_Address_cid(cell_id);
+	ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn);
+
+	cont_tx := ts_RAN_Information_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC),
+						    ts_RIM_Sequence_Number(0),
+						    ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP));
+
+	cont_rx := tr_RAN_Information_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC),
+						    tr_RIM_Sequence_Number(0),
+						    tr_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP));
+
+	f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+						    src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+						    cont := cont_tx),
+		       tr_PDU_BSSGP_RAN_INFORMATION(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+						    src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+						    cont := cont_rx),
+		       pcu_idx);
+
+	f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+						    src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+						    cont := cont_tx),
+		       tr_PDU_BSSGP_RAN_INFORMATION(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+						    src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+						    cont := cont_rx),
 			sgsn_idx, pcu_idx);
 }
 testcase TC_rim_info() runs on GlobalTest_CT
@@ -2972,19 +3003,34 @@
 runs on GlobalTest_CT
 {
 	var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id;
-	var template (value) RIM_Routing_Information ri_pcu;
-	var template (value) RIM_Routing_Information ri_sgsn;
-	var template (value) RAN_Information_Ack_RIM_Container cont;
+	var template (value) RAN_Information_Ack_RIM_Container cont_tx;
+	var template RAN_Information_Ack_RIM_Container cont_rx;
+	var template RIM_Routing_Address ra_pcu;
+	var template RIM_Routing_Address ra_sgsn;
 
-	ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn));
-	ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id));
-	cont := ts_RAN_Information_Ack_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC),
-						     ts_RIM_Sequence_Number(0));
-	f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_sgsn, src := ri_pcu, cont := cont),
-			tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_sgsn, src := ri_pcu, cont := cont),
-			pcu_idx);
-	f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_pcu, src := ri_sgsn, cont := cont),
-			tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ri_pcu, src := ri_sgsn, cont := cont),
+	ra_pcu := t_RIM_Routing_Address_cid(cell_id);
+	ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn);
+
+	cont_tx := ts_RAN_Information_Ack_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC),
+							ts_RIM_Sequence_Number(0));
+
+	cont_rx := tr_RAN_Information_Ack_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC),
+							tr_RIM_Sequence_Number(0));
+
+	f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+							src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+							cont := cont_tx),
+		       tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+							src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+							cont := cont_rx),
+		       pcu_idx);
+
+	f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ACK(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+							src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+							cont := cont_tx),
+		       tr_PDU_BSSGP_RAN_INFORMATION_ACK(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+							src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+							cont := cont_rx),
 			sgsn_idx, pcu_idx);
 }
 testcase TC_rim_info_ack() runs on GlobalTest_CT
@@ -3000,20 +3046,36 @@
 runs on GlobalTest_CT
 {
 	var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id;
-	var template (value) RIM_Routing_Information ri_pcu;
-	var template (value) RIM_Routing_Information ri_sgsn;
-	var template (value) RAN_Information_Error_RIM_Container cont;
+	var template (value) RAN_Information_Error_RIM_Container cont_tx;
+	var template RAN_Information_Error_RIM_Container cont_rx;
+	var template RIM_Routing_Address ra_pcu;
+	var template RIM_Routing_Address ra_sgsn;
 
-	ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn));
-	ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id));
-	cont := ts_RAN_Information_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC),
-						       ts_BSSGP_CAUSE(BSSGP_CAUSE_EQUIMENT_FAILURE),
-						       omit, valueof(t_BVC_UNBLOCK(23)));
-	f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont),
-			tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont),
-			pcu_idx);
-	f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont),
-			tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont),
+	ra_pcu := t_RIM_Routing_Address_cid(cell_id);
+	ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn);
+
+	cont_tx := ts_RAN_Information_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC),
+							  ts_BSSGP_CAUSE(BSSGP_CAUSE_EQUIMENT_FAILURE),
+							  omit, valueof(t_BVC_UNBLOCK(23)));
+
+	cont_rx := tr_RAN_Information_Error_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC),
+							  t_BSSGP_CAUSE(BSSGP_CAUSE_EQUIMENT_FAILURE),
+							  omit, enc_PDU_BSSGP(valueof(t_BVC_UNBLOCK(23))));
+
+	f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+							  src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+							  cont := cont_tx),
+		       tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+							  src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+							  cont := cont_rx),
+		       pcu_idx);
+
+	f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+							  src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+							  cont := cont_tx),
+		       tr_PDU_BSSGP_RAN_INFORMATION_ERROR(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+							  src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+							  cont := cont_rx),
 			sgsn_idx, pcu_idx);
 }
 testcase TC_rim_info_error() runs on GlobalTest_CT
@@ -3024,29 +3086,51 @@
 	f_cleanup();
 }
 
+//////////////////
 /* RAN-INFORMATION-APPLICATION-ERROR */
 private function f_TC_rim_info_app_error(integer sgsn_idx, integer pcu_idx, integer bvc_idx := 0)
 runs on GlobalTest_CT
 {
 	var BssgpCellId cell_id := g_pcu[pcu_idx].cfg.bvc[bvc_idx].cell_id;
-	var template (value) RIM_Routing_Information ri_pcu;
-	var template (value) RIM_Routing_Information ri_sgsn;
-	var template (value) Application_Error_Container app_cont;
-	var template (value) RAN_Information_Application_Error_RIM_Container cont;
+	var template (value) Application_Error_Container app_cont_tx;
+	var template Application_Error_Container app_cont_rx;
+	var template (value) RAN_Information_Application_Error_RIM_Container cont_tx;
+	var template RAN_Information_Application_Error_RIM_Container cont_rx;
+	var template RIM_Routing_Address ra_pcu;
+	var template RIM_Routing_Address ra_sgsn;
 
-	ri_sgsn := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id_sgsn));
-	ri_pcu := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, t_RIM_Routing_Address_cid(cell_id));
-	app_cont := tsu_Application_Error_Container_NACC(cell_id, 23,
-							 tsu_Application_Container_IE_NACC_req(cell_id));
-	cont := ts_RAN_Information_Application_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC),
-								   ts_RIM_Sequence_Number(0),
-								   ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP),
-								   omit, app_cont);
-	f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont),
-			tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_sgsn, src := ri_pcu, cont := cont),
-			pcu_idx);
-	f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont),
-			tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ri_pcu, src := ri_sgsn, cont := cont),
+	ra_pcu := t_RIM_Routing_Address_cid(cell_id);
+	ra_sgsn := t_RIM_Routing_Address_cid(cell_id_sgsn);
+
+	app_cont_tx := tsu_Application_Error_Container_NACC(cell_id, 23,
+							    tsu_Application_Container_IE_NACC_req(cell_id));
+
+	app_cont_rx := rsu_Application_Error_Container_NACC(cell_id, 23,
+							    rsu_Application_Container_IE_NACC_req(cell_id));
+
+	cont_tx := ts_RAN_Information_Application_Error_RIM_Container(ts_RIM_Application_Identity(RIM_APP_ID_NACC),
+								      ts_RIM_Sequence_Number(0),
+								      ts_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP),
+								      omit, app_cont_tx);
+	cont_rx := tr_RAN_Information_Application_Error_RIM_Container(tr_RIM_Application_Identity(RIM_APP_ID_NACC),
+								      tr_RIM_Sequence_Number(0),
+								      tr_RIM_PDU_Indications(false, RIM_PDU_TYPE_STOP),
+								      omit, app_cont_rx);
+
+	f_rim_pcu2sgsn(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+								      src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+								      cont := cont_tx),
+		       tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+								      src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+								      cont := cont_rx),
+		       pcu_idx);
+
+	f_rim_sgsn2pcu(ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+								      src := ts_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+								      cont := cont_tx),
+		       tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(dst := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_pcu),
+								      src := tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, ra_sgsn),
+								      cont := cont_rx),
 			sgsn_idx, pcu_idx);
 }
 testcase TC_rim_info_app_error() runs on GlobalTest_CT
diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index 97412b8..cbaeb72 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -2693,6 +2693,21 @@
 		 rIM_Protocol_Version_Number := ver,
 		 sON_Transfer_Application_Identity := son_app_id
 	}
+	template RAN_Information_Ack_RIM_Container
+	tr_RAN_Information_Ack_RIM_Container(template RIM_Application_Identity app_id := ?,
+					     template RIM_Sequence_Number seq := ?,
+					     template RIM_Protocol_Version_Number ver := omit,
+					     template SON_Transfer_Application_Identity_TLV son_app_id := omit) := {
+		 iEI := '5A'O,
+		 ext := '1'B,
+		 lengthIndicator := {
+			length1 := ?
+		 },
+		 rIM_Application_Identity := app_id,
+		 rIM_Sequence_Number := seq,
+		 rIM_Protocol_Version_Number := ver,
+		 sON_Transfer_Application_Identity := son_app_id
+	}
 
 	/* 3GPP TS 48.018 11.3.62a.4 */
 	template (value) RAN_Information_Error_RIM_Container
@@ -2719,6 +2734,30 @@
 		 },
 		 sON_Transfer_Application_Identity := son_app_id
 	}
+	template RAN_Information_Error_RIM_Container
+	tr_RAN_Information_Error_RIM_Container(template RIM_Application_Identity app_id := ?,
+					       template Cause_BSSGP cause := ?,
+					       template RIM_Protocol_Version_Number ver := omit,
+					       template octetstring pdu := ?,
+					       template SON_Transfer_Application_Identity_TLV son_app_id := omit) := {
+		 iEI := '5B'O,
+		 ext := '1'B,
+		 lengthIndicator := {
+			length1 := ?
+		 },
+		 rIM_Application_Identity := app_id,
+		 rIM_cause := cause,
+		 rIM_Protocol_Version_Number := ver,
+		 pDU_in_Error:= {
+			iEI := '15'O,
+			ext := '1'B,
+			lengthIndicator := {
+				length1 := ?
+			},
+			erroneous_BSSGP_PDU := pdu
+		 },
+		 sON_Transfer_Application_Identity := son_app_id
+	}
 
 	/* 3GPP TS 48.018 11.3.62a.5 */
 	template (value) RAN_Information_Application_Error_RIM_Container
@@ -2740,6 +2779,25 @@
 		 application_Error_Container := cont,
 		 sON_Transfer_Application_Identity := son_app_id
 	}
+	template RAN_Information_Application_Error_RIM_Container
+	tr_RAN_Information_Application_Error_RIM_Container(template RIM_Application_Identity app_id := ?,
+							   template RIM_Sequence_Number seq := ?,
+							   template RIM_PDU_Indications ind := ?,
+							   template RIM_Protocol_Version_Number ver := omit,
+							   template Application_Error_Container cont := ?,
+							   template SON_Transfer_Application_Identity_TLV son_app_id := omit) := {
+		 iEI := '59'O,
+		 ext := '1'B,
+		 lengthIndicator := {
+			length1 := ?
+		 },
+		 rIM_Application_Identity := app_id,
+		 rIM_Sequence_Number := seq,
+		 rIM_PDU_Indications := ind,
+		 rIM_Protocol_Version_Number := ver,
+		 application_Error_Container := cont,
+		 sON_Transfer_Application_Identity := son_app_id
+	}
 
 
 	/* 3GPP TS 48.018 11.3.63.1 */
@@ -2775,6 +2833,15 @@
 		 },
 		 reporting_Cell_Identifier := t_Cell_Identifier_V(cid)
 	}
+	template RAN_Information_Request_Application_Container_NACC
+	tr_RAN_Information_Request_Application_Container_NACC(template BssgpCellId cid := ?) := {
+		 iEI := '4D'O,
+		 ext := '1'B,
+		 lengthIndicator := {
+			length1 := ?
+		 },
+		 reporting_Cell_Identifier := t_Cell_Identifier_V(cid)
+	}
 
 	/* 3GPP TS 48.018 11.3.63.1.2 */
 	template (value) RAN_Information_Request_Application_Container_SI3
@@ -2869,6 +2936,12 @@
 					     template (value) Application_Container_IE_NACC app_cont) := {
 		nacc := ts_Application_Error_Container_NACC(cid, cause, app_cont)
 	}
+	template Application_Error_Container
+	rsu_Application_Error_Container_NACC(template BssgpCellId cid := ?,
+					     template integer cause := ?,
+					     template Application_Container_IE_NACC app_cont := ?) := {
+		nacc := tr_Application_Error_Container_NACC(cid, cause, app_cont)
+	}
 	template (value) Application_Error_Container
 	tsu_Application_Error_Container_SI3(template (value) BssgpCellId cid,
 					    integer cause,
@@ -2895,10 +2968,33 @@
 		 nACC_cause := int2oct(cause, 1),
 		 erroneousApplicationContainer := app_cont
 	}
+	function tr_Application_Error_Container_NACC(template BssgpCellId cid := ?,
+						     template integer cause := ?,
+						     template Application_Container_IE_NACC app_cont := ?)
+						     return template Application_Error_Container_NACC {
+		 var template Application_Error_Container_NACC ret;
+		 ret.iEI := '56'O;
+		 ret.ext := '1'B;
+		 ret.lengthIndicator := { length1 := ? };
+		 ret.erroneousApplicationContainer := app_cont;
+		 if (istemplatekind(cause, "*")) {
+			ret.nACC_cause := *;
+		 } else if (istemplatekind(cause, "?")) {
+			ret.nACC_cause := ?;
+		 } else {
+			ret.nACC_cause := int2oct(valueof(cause), 1);
+		 }
+		 return ret;
+	}
+
 	template (value) Application_Container_IE_NACC
 	tsu_Application_Container_IE_NACC_req(template (value) BssgpCellId cid) := {
 		rAN_Information_Request_Application_Container := ts_RAN_Information_Request_Application_Container_NACC(cid)
 	}
+	template Application_Container_IE_NACC
+	rsu_Application_Container_IE_NACC_req(template BssgpCellId cid := ?) := {
+		rAN_Information_Request_Application_Container := tr_RAN_Information_Request_Application_Container_NACC(cid)
+	}
 	template (value) Application_Container_IE_NACC
 	tsu_Application_Container_IE_NACC(template (value) BssgpCellId cid, boolean psi_type, integer si_psi_num, octetstring si_psi) := {
 		rAN_Information_Application_Container := ts_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi)

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22525
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: Ie484f288aa0515ef4df4a3cf7f8a347a3f3cf587
Gerrit-Change-Number: 22525
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210128/20db2e82/attachment.htm>


More information about the gerrit-log mailing list