laforge has submitted this change. ( 
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(-)

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



diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 4879521..506ed38 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -2901,20 +2901,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
@@ -2930,20 +2945,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
@@ -2959,19 +2990,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
@@ -2987,20 +3033,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
@@ -3011,29 +3073,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: 4
Gerrit-Owner: dexter <pma...@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillm...@sysmocom.de>
Gerrit-Reviewer: laforge <lafo...@osmocom.org>
Gerrit-MessageType: merged

Reply via email to