<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Osmocom_Gb_types: add RIM templates<br><br>The template set we use for testing the GB (BSSGB) interface on<br>osmo-sgsn and osmo-pcu lacks templates to generate RIM (ran information<br>management) messages. The records and unions are already specified in<br>BSSGP_Types.ttcn, we just need to form templates in order to be able to<br>use them.<br><br>Change-Id: Ic495e0bb6ceb2b65cbc7c3da7ee519a013aede55<br>Related: SYS#5103<br>---<br>M library/Osmocom_Gb_Types.ttcn<br>1 file changed, 806 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn</span><br><span>index c532772..b83131d 100644</span><br><span>--- a/library/Osmocom_Gb_Types.ttcn</span><br><span>+++ b/library/Osmocom_Gb_Types.ttcn</span><br><span>@@ -2211,6 +2211,812 @@</span><br><span>           }</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ /* 3GPP TS 48.018 11.3.61 */</span><br><span style="color: hsl(120, 100%, 40%);">+  const OCT1 RIM_APP_ID_NACC := '01'O;</span><br><span style="color: hsl(120, 100%, 40%);">+  const OCT1 RIM_APP_ID_SI3 := '02'O;</span><br><span style="color: hsl(120, 100%, 40%);">+   const OCT1 RIM_APP_ID_MBMS_DATA_CH := '03'O;</span><br><span style="color: hsl(120, 100%, 40%);">+  const OCT1 RIM_APP_ID_SON_TRANSF := '04'O;</span><br><span style="color: hsl(120, 100%, 40%);">+    const OCT1 RIM_APP_ID_UTRA_SI := '05'O;</span><br><span style="color: hsl(120, 100%, 40%);">+       template (value) RIM_Application_Identity ts_RIM_Application_Identity(OCT1 app_id) := {</span><br><span style="color: hsl(120, 100%, 40%);">+                iEI := '4B'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 1</span><br><span style="color: hsl(120, 100%, 40%);">+           },</span><br><span style="color: hsl(120, 100%, 40%);">+            rIMApplicationIdentity := app_id</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* 3GPP TS 48.018 11.3.62 */</span><br><span style="color: hsl(120, 100%, 40%);">+  template (value) RIM_Sequence_Number ts_RIM_Sequence_Number(integer seq) := {</span><br><span style="color: hsl(120, 100%, 40%);">+          iEI := '4C'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 4</span><br><span style="color: hsl(120, 100%, 40%);">+           },</span><br><span style="color: hsl(120, 100%, 40%);">+            rIMSequenceNumber := int2oct(seq, 4)</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.62a.1 */</span><br><span style="color: hsl(120, 100%, 40%);">+       template (value) RAN_Information_Request_RIM_Container</span><br><span style="color: hsl(120, 100%, 40%);">+        ts_RAN_Information_Request_RIM_Container(template (value) RIM_Application_Identity app_id,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             template (value) RIM_Sequence_Number seq,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             template (value) RIM_PDU_Indications ind,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             template (omit) RIM_Protocol_Version_Number ver := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                                              template (omit) RAN_Information_Request_Application_Container app_cont := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                                               template (omit) SON_Transfer_Application_Identity_TLV son_app_id := omit) := {</span><br><span style="color: hsl(120, 100%, 40%);">+                iEI := '57'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            rIM_Application_Identity := app_id,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_Sequence_Number := seq,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_PDU_Indications := ind,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_Protocol_Version_Number := ver,</span><br><span style="color: hsl(120, 100%, 40%);">+           application_Container := app_cont,</span><br><span style="color: hsl(120, 100%, 40%);">+            sON_Transfer_Application_Identity_TLV := son_app_id</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+     template RAN_Information_Request_RIM_Container</span><br><span style="color: hsl(120, 100%, 40%);">+        tr_RAN_Information_Request_RIM_Container(template RIM_Application_Identity app_id := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                template RIM_Sequence_Number seq := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                template RIM_PDU_Indications ind := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                template RIM_Protocol_Version_Number ver := *,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                template RAN_Information_Request_Application_Container app_cont := *,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                 template SON_Transfer_Application_Identity_TLV son_app_id := *) := {</span><br><span style="color: hsl(120, 100%, 40%);">+          iEI := '57'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := ?</span><br><span style="color: hsl(120, 100%, 40%);">+           },</span><br><span style="color: hsl(120, 100%, 40%);">+            rIM_Application_Identity := app_id,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_Sequence_Number := seq,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_PDU_Indications := ind,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_Protocol_Version_Number := ver,</span><br><span style="color: hsl(120, 100%, 40%);">+           application_Container := app_cont,</span><br><span style="color: hsl(120, 100%, 40%);">+            sON_Transfer_Application_Identity_TLV := son_app_id</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* 3GPP TS 48.018 11.3.62a.2 */</span><br><span style="color: hsl(120, 100%, 40%);">+       template (value) RAN_Information_RIM_Container</span><br><span style="color: hsl(120, 100%, 40%);">+        ts_RAN_Information_RIM_Container(template (value) RIM_Application_Identity app_id,</span><br><span style="color: hsl(120, 100%, 40%);">+                                     template (value) RIM_Sequence_Number seq,</span><br><span style="color: hsl(120, 100%, 40%);">+                                     template (value) RIM_PDU_Indications ind,</span><br><span style="color: hsl(120, 100%, 40%);">+                                     template (omit) RIM_Protocol_Version_Number ver := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                                      template (omit) ApplContainer_or_ApplErrContainer app_cont_or_app_err := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        template (omit) SON_Transfer_Application_Identity_TLV son_app_id := omit) := {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+              iEI := '58'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            rIM_Application_Identity := app_id,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_Sequence_Number := seq,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_PDU_Indications := ind,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_Protocol_Version_Number := ver,</span><br><span style="color: hsl(120, 100%, 40%);">+           applContainer_or_ApplErrContainer := app_cont_or_app_err,</span><br><span style="color: hsl(120, 100%, 40%);">+             sON_Transfer_Application_Identity := son_app_id</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) ApplContainer_or_ApplErrContainer</span><br><span style="color: hsl(120, 100%, 40%);">+    tsu_ApplContainer_or_ApplErrContainer_NACC(template (value) ApplContainer_or_ApplErrContainer_NACC cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+         nacc := cont</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) ApplContainer_or_ApplErrContainer</span><br><span style="color: hsl(120, 100%, 40%);">+    tsu_ApplContainer_or_ApplErrContainer_SI3(template (value) ApplContainer_or_ApplErrContainer_SI3 cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+           si3 := cont</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) ApplContainer_or_ApplErrContainer</span><br><span style="color: hsl(120, 100%, 40%);">+    tsu_ApplContainer_or_ApplErrContainer_MBMS_data_channel(template (value) ApplContainer_or_ApplErrContainer_MBMS_data_channel cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+               mBMS_data_channel := cont</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) ApplContainer_or_ApplErrContainer_NACC</span><br><span style="color: hsl(120, 100%, 40%);">+       tsu_ApplContainer_NACC(template (value) BssgpCellId cid, boolean psi_type, integer si_psi_num, octetstring si_psi) := {</span><br><span style="color: hsl(120, 100%, 40%);">+               application_Container := ts_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi)</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) ApplContainer_or_ApplErrContainer_NACC</span><br><span style="color: hsl(120, 100%, 40%);">+       tsu_ApplErrContainer_NACC(template (value) BssgpCellId cid,</span><br><span style="color: hsl(120, 100%, 40%);">+                             integer cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                template (value) Application_Container_IE_NACC app_cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+               application_Error_Container := ts_Application_Error_Container_NACC(cid, cause, app_cont)</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) ApplContainer_or_ApplErrContainer_SI3</span><br><span style="color: hsl(120, 100%, 40%);">+        tsu_ApplContainer_SI3(template (value) BssgpCellId cid, template (value) SI3 si3) := {</span><br><span style="color: hsl(120, 100%, 40%);">+                application_Container := ts_RAN_Information_Application_Container_SI3(cid, si3)</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) ApplContainer_or_ApplErrContainer_SI3</span><br><span style="color: hsl(120, 100%, 40%);">+        tsu_ApplErrContainer_SI3(template (value) BssgpCellId cid,</span><br><span style="color: hsl(120, 100%, 40%);">+                             integer cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                template (value) Application_Container_IE_SI3 app_cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+         application_Error_Container := ts_Application_Error_Container_SI3(cid, cause, app_cont)</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) ApplContainer_or_ApplErrContainer_MBMS_data_channel</span><br><span style="color: hsl(120, 100%, 40%);">+  tsu_ApplContainer_MBMS_data_channel(template (value) BssgpCellId cid, octetstring data_ch_report) := {</span><br><span style="color: hsl(120, 100%, 40%);">+                application_Container := ts_RAN_Information_Application_Container_MBMS_data_channel(cid, data_ch_report)</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) ApplContainer_or_ApplErrContainer_MBMS_data_channel</span><br><span style="color: hsl(120, 100%, 40%);">+  tsu_ApplErrContainer_MBMS_data_channel(template (value) BssgpCellId cid,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             integer cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        template (value) Application_Container_IE_MBMS_data_channel app_cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+             application_Error_Container := ts_Application_Error_Container_MBMS_data_channel(cid, cause, app_cont)</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.62a.3 */</span><br><span style="color: hsl(120, 100%, 40%);">+       template (value) RAN_Information_Ack_RIM_Container</span><br><span style="color: hsl(120, 100%, 40%);">+    ts_RAN_Information_Ack_RIM_Container(template (value) RIM_Application_Identity app_id,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             template (value) RIM_Sequence_Number seq,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             template (omit) RIM_Protocol_Version_Number ver := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                                      template (omit) SON_Transfer_Application_Identity_TLV son_app_id := omit) := {</span><br><span style="color: hsl(120, 100%, 40%);">+            iEI := '5A'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            rIM_Application_Identity := app_id,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_Sequence_Number := seq,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_Protocol_Version_Number := ver,</span><br><span style="color: hsl(120, 100%, 40%);">+           sON_Transfer_Application_Identity := son_app_id</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.62a.4 */</span><br><span style="color: hsl(120, 100%, 40%);">+       template (value) RAN_Information_Error_RIM_Container</span><br><span style="color: hsl(120, 100%, 40%);">+  ts_RAN_Information_Error_RIM_Container(template (value) RIM_Application_Identity app_id,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             template (value) Cause_BSSGP cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           template (omit) RIM_Protocol_Version_Number ver := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                                              PDU_BSSGP pdu,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        template (omit) SON_Transfer_Application_Identity_TLV son_app_id := omit) := {</span><br><span style="color: hsl(120, 100%, 40%);">+          iEI := '5B'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            rIM_Application_Identity := app_id,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_cause := cause,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_Protocol_Version_Number := ver,</span><br><span style="color: hsl(120, 100%, 40%);">+           pDU_in_Error:= {</span><br><span style="color: hsl(120, 100%, 40%);">+                     iEI := '15'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+                  lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                          length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                        },</span><br><span style="color: hsl(120, 100%, 40%);">+                    erroneous_BSSGP_PDU := enc_PDU_BSSGP(pdu)</span><br><span style="color: hsl(120, 100%, 40%);">+              },</span><br><span style="color: hsl(120, 100%, 40%);">+            sON_Transfer_Application_Identity := son_app_id</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.62a.5 */</span><br><span style="color: hsl(120, 100%, 40%);">+       template (value) RAN_Information_Application_Error_RIM_Container</span><br><span style="color: hsl(120, 100%, 40%);">+      ts_RAN_Information_Application_Error_RIM_Container(template (value) RIM_Application_Identity app_id,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                     template (value) RIM_Sequence_Number seq,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                     template (value) RIM_PDU_Indications ind,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                     template (omit) RIM_Protocol_Version_Number ver := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                      template (value) Application_Error_Container cont,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    template (omit) SON_Transfer_Application_Identity_TLV son_app_id := omit) := {</span><br><span style="color: hsl(120, 100%, 40%);">+              iEI := '59'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            rIM_Application_Identity := app_id,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_Sequence_Number := seq,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_PDU_Indications := ind,</span><br><span style="color: hsl(120, 100%, 40%);">+           rIM_Protocol_Version_Number := ver,</span><br><span style="color: hsl(120, 100%, 40%);">+           application_Error_Container := cont,</span><br><span style="color: hsl(120, 100%, 40%);">+          sON_Transfer_Application_Identity := son_app_id</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* 3GPP TS 48.018 11.3.63.1 */</span><br><span style="color: hsl(120, 100%, 40%);">+        template (value) RAN_Information_Request_Application_Container</span><br><span style="color: hsl(120, 100%, 40%);">+        tsu_RAN_Information_Request_Application_Container_NACC(template (value) BssgpCellId cid) := {</span><br><span style="color: hsl(120, 100%, 40%);">+         nacc := ts_RAN_Information_Request_Application_Container_NACC(cid)</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) RAN_Information_Request_Application_Container</span><br><span style="color: hsl(120, 100%, 40%);">+        tsu_RAN_Information_Request_Application_Container_SI3(template (value) BssgpCellId cid) := {</span><br><span style="color: hsl(120, 100%, 40%);">+          si3 := ts_RAN_Information_Request_Application_Container_SI3(cid)</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) RAN_Information_Request_Application_Container</span><br><span style="color: hsl(120, 100%, 40%);">+        tsu_RAN_Information_Request_Application_Container_MBMS_data_channel(template (value) BssgpCellId cid) := {</span><br><span style="color: hsl(120, 100%, 40%);">+            mBMS_data_channel := ts_RAN_Information_Request_Application_Container_MBMS_data_channel(cid)</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* NOTE: The type description of reporting_Cell_Identifier in chapter 11.3.63.1, version V10.6.0 (2012-07) of</span><br><span style="color: hsl(120, 100%, 40%);">+  * 3GPP TS 48.018 clearly states: "Reporting Cell Identifier: This field is encoded as the Cell Identifier</span><br><span style="color: hsl(120, 100%, 40%);">+        * defined in sub-clause 11.3.9". However this seems to be an error in the specification, because the</span><br><span style="color: hsl(120, 100%, 40%);">+     * specifiction in Table 11.3.63.1.1 already has a length field an an IEI defined. Keeping the IEI and lenght</span><br><span style="color: hsl(120, 100%, 40%);">+  * of the BSSGP cell identifier in addition would no make sense. Also in the chapters below the specifiction</span><br><span style="color: hsl(120, 100%, 40%);">+   * of the IEs are similar and there it says "Reporting Cell Identifier: This field is encoded as the value</span><br><span style="color: hsl(120, 100%, 40%);">+        * part of the Cell Identifier IE defined in sub-clause 11.3.9, not including IEI and Length Indicator.",</span><br><span style="color: hsl(120, 100%, 40%);">+         * which actually makes sense. */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.63.1.1 */</span><br><span style="color: hsl(120, 100%, 40%);">+      template (value) RAN_Information_Request_Application_Container_NACC</span><br><span style="color: hsl(120, 100%, 40%);">+   ts_RAN_Information_Request_Application_Container_NACC(template (value) BssgpCellId cid) := {</span><br><span style="color: hsl(120, 100%, 40%);">+           iEI := '4D'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            reporting_Cell_Identifier := t_Cell_Identifier_V(cid)</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.63.1.2 */</span><br><span style="color: hsl(120, 100%, 40%);">+      template (value) RAN_Information_Request_Application_Container_SI3</span><br><span style="color: hsl(120, 100%, 40%);">+    ts_RAN_Information_Request_Application_Container_SI3(template (value) BssgpCellId cid) := {</span><br><span style="color: hsl(120, 100%, 40%);">+            iEI := '4D'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            reporting_Cell_Identifier := t_Cell_Identifier_V(cid)</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.63.1.3 */</span><br><span style="color: hsl(120, 100%, 40%);">+      template (value) RAN_Information_Request_Application_Container_MBMS_data_channel</span><br><span style="color: hsl(120, 100%, 40%);">+      ts_RAN_Information_Request_Application_Container_MBMS_data_channel(template (value) BssgpCellId cid) := {</span><br><span style="color: hsl(120, 100%, 40%);">+              iEI := '4D'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            reporting_Cell_Identifier := t_Cell_Identifier_V(cid)</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.63.2.1 */</span><br><span style="color: hsl(120, 100%, 40%);">+      template (value) RAN_Information_Application_Container_NACC</span><br><span style="color: hsl(120, 100%, 40%);">+   ts_RAN_Information_Application_Container_NACC(template (value) BssgpCellId cid, boolean psi_type, integer si_psi_num, octetstring si_psi) := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 iEI := '4E'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            reporting_Cell_Identifier := t_Cell_Identifier_V(cid),</span><br><span style="color: hsl(120, 100%, 40%);">+                typeBit := bool2bit(psi_type),</span><br><span style="color: hsl(120, 100%, 40%);">+                number_of_SI_PSI := int2bit(si_psi_num, 7),</span><br><span style="color: hsl(120, 100%, 40%);">+           sI_PSI := si_psi</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.63.2.2 */</span><br><span style="color: hsl(120, 100%, 40%);">+      template (value) RAN_Information_Application_Container_SI3</span><br><span style="color: hsl(120, 100%, 40%);">+    ts_RAN_Information_Application_Container_SI3(template (value) BssgpCellId cid, template (value) SI3 si3) := {</span><br><span style="color: hsl(120, 100%, 40%);">+          iEI := '4E'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            reporting_Cell_Identifier := t_Cell_Identifier_V(cid),</span><br><span style="color: hsl(120, 100%, 40%);">+                sI3 := si3</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.63.2.3 */</span><br><span style="color: hsl(120, 100%, 40%);">+      template (value) RAN_Information_Application_Container_MBMS_data_channel</span><br><span style="color: hsl(120, 100%, 40%);">+      ts_RAN_Information_Application_Container_MBMS_data_channel(template (value) BssgpCellId cid, octetstring data_ch_report) := {</span><br><span style="color: hsl(120, 100%, 40%);">+          iEI := '4E'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            reporting_Cell_Identifier := t_Cell_Identifier_V(cid),</span><br><span style="color: hsl(120, 100%, 40%);">+                mBMS_data_channel_report := data_ch_report</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* 3GPP TS 48.018 11.3.64 */</span><br><span style="color: hsl(120, 100%, 40%);">+  template (value) Application_Error_Container</span><br><span style="color: hsl(120, 100%, 40%);">+  tsu_Application_Error_Container_NACC(template (value) BssgpCellId cid,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             integer cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        template (value) Application_Container_IE_NACC app_cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+            nacc := ts_Application_Error_Container_NACC(cid, cause, app_cont)</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) Application_Error_Container</span><br><span style="color: hsl(120, 100%, 40%);">+  tsu_Application_Error_Container_SI3(template (value) BssgpCellId cid,</span><br><span style="color: hsl(120, 100%, 40%);">+                                     integer cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        template (value) Application_Container_IE_SI3 app_cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+              si3 := ts_Application_Error_Container_SI3(cid, cause, app_cont)</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) Application_Error_Container</span><br><span style="color: hsl(120, 100%, 40%);">+  tsu_Application_Error_Container_MBMS_data_channel(template (value) BssgpCellId cid,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                     integer cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                        template (value) Application_Container_IE_MBMS_data_channel app_cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+          mBMS_data_channel := ts_Application_Error_Container_MBMS_data_channel(cid, cause, app_cont)</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.64.1  */</span><br><span style="color: hsl(120, 100%, 40%);">+       template (value) Application_Error_Container_NACC</span><br><span style="color: hsl(120, 100%, 40%);">+     ts_Application_Error_Container_NACC(template (value) BssgpCellId cid,</span><br><span style="color: hsl(120, 100%, 40%);">+                                     integer cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        template (value) Application_Container_IE_NACC app_cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+              iEI := '56'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            nACC_cause := int2oct(cause, 1),</span><br><span style="color: hsl(120, 100%, 40%);">+              erroneousApplicationContainer := app_cont</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) Application_Container_IE_NACC</span><br><span style="color: hsl(120, 100%, 40%);">+        tsu_Application_Container_IE_NACC_req(template (value) BssgpCellId cid) := {</span><br><span style="color: hsl(120, 100%, 40%);">+          rAN_Information_Request_Application_Container := ts_RAN_Information_Request_Application_Container_NACC(cid)</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) Application_Container_IE_NACC</span><br><span style="color: hsl(120, 100%, 40%);">+        tsu_Application_Container_IE_NACC(template (value) BssgpCellId cid, boolean psi_type, integer si_psi_num, octetstring si_psi) := {</span><br><span style="color: hsl(120, 100%, 40%);">+            rAN_Information_Application_Container := ts_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi)</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.64.2 */</span><br><span style="color: hsl(120, 100%, 40%);">+        template (value) Application_Error_Container_SI3</span><br><span style="color: hsl(120, 100%, 40%);">+      ts_Application_Error_Container_SI3(template (value) BssgpCellId cid,</span><br><span style="color: hsl(120, 100%, 40%);">+                                     integer cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        template (value) Application_Container_IE_SI3 app_cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+                iEI := '56'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            sI3_cause := int2oct(cause, 1),</span><br><span style="color: hsl(120, 100%, 40%);">+               erroneousApplicationContainer := app_cont</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) Application_Container_IE_SI3</span><br><span style="color: hsl(120, 100%, 40%);">+ tsu_Application_Container_IE_SI3_req(template (value) BssgpCellId cid) := {</span><br><span style="color: hsl(120, 100%, 40%);">+           rAN_Information_Request_Application_Container := ts_RAN_Information_Request_Application_Container_SI3(cid)</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) Application_Container_IE_SI3</span><br><span style="color: hsl(120, 100%, 40%);">+ tsu_Application_Container_IE_SI3(template (value) BssgpCellId cid, template (value) SI3 si3) := {</span><br><span style="color: hsl(120, 100%, 40%);">+             rAN_Information_Application_Container := ts_RAN_Information_Application_Container_SI3(cid, si3)</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.64.3 */</span><br><span style="color: hsl(120, 100%, 40%);">+        template (value) Application_Error_Container_MBMS_data_channel</span><br><span style="color: hsl(120, 100%, 40%);">+        ts_Application_Error_Container_MBMS_data_channel(template (value) BssgpCellId cid,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                     integer cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                        template (value) Application_Container_IE_MBMS_data_channel app_cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+            iEI := '56'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            mBMS_data_channel_cause := int2oct(cause, 1),</span><br><span style="color: hsl(120, 100%, 40%);">+                 erroneousApplicationContainer := app_cont</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) Application_Container_IE_MBMS_data_channel</span><br><span style="color: hsl(120, 100%, 40%);">+   tsu_Application_Container_IE_MBMS_data_channel_req(template (value) BssgpCellId cid) := {</span><br><span style="color: hsl(120, 100%, 40%);">+             rAN_Information_Request_Application_Container := ts_RAN_Information_Request_Application_Container_MBMS_data_channel(cid)</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+     template (value) Application_Container_IE_MBMS_data_channel</span><br><span style="color: hsl(120, 100%, 40%);">+   tsu_Application_Container_IE_MBMS_data_channel(template (value) BssgpCellId cid, octetstring data_ch_report) := {</span><br><span style="color: hsl(120, 100%, 40%);">+             rAN_Information_Application_Container := ts_RAN_Information_Application_Container_MBMS_data_channel(cid, data_ch_report)</span><br><span style="color: hsl(120, 100%, 40%);">+      }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* 3GPP TS 44.018 10.5.1.3 -> 3GPP TS 24.008 10.5.1.3 */</span><br><span style="color: hsl(120, 100%, 40%);">+   function t_LocationAreaIdentification(template BssgpCellId cid) return template BSSGP_Types.LocationAreaIdentification {</span><br><span style="color: hsl(120, 100%, 40%);">+              var template BSSGP_Types.LocationAreaIdentification ret := {</span><br><span style="color: hsl(120, 100%, 40%);">+                  mccDigit1 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mccDigit2 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mccDigit3 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mncDigit3 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mncDigit1 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mncDigit2 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       lac := ?</span><br><span style="color: hsl(120, 100%, 40%);">+              }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (istemplatekind(cid, "omit")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                  return omit;</span><br><span style="color: hsl(120, 100%, 40%);">+          } else if (istemplatekind(cid, "*")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      return *;</span><br><span style="color: hsl(120, 100%, 40%);">+             } else if (istemplatekind(cid, "?")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      return ?;</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (isvalue(cid) and isvalue(cid.ra_id) and isvalue(cid.ra_id.lai)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                 if (isvalue(cid.ra_id.lai.mcc_mnc)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                         ret.mccDigit1 := cid.ra_id.lai.mcc_mnc[0];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mccDigit2 := cid.ra_id.lai.mcc_mnc[1];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mccDigit3 := cid.ra_id.lai.mcc_mnc[2];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mncDigit3 := cid.ra_id.lai.mcc_mnc[3];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mncDigit1 := cid.ra_id.lai.mcc_mnc[4];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mncDigit2 := cid.ra_id.lai.mcc_mnc[5];</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+                     if (isvalue(cid.ra_id.lai.lac)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                             ret.lac := f_oct_or_wc(cid.ra_id.lai.lac, 2);</span><br><span style="color: hsl(120, 100%, 40%);">+                 }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             return ret;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 44.018 10.5.2.11 */</span><br><span style="color: hsl(120, 100%, 40%);">+        template (value) ControlChannelDescription ts_ControlChannelDescription(integer ccch_conf,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                            integer bs_ag_blks_res,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                               boolean att,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                          boolean mscr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                         integer bs_pa_mfrms,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                          BIT2 cbq3,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                            integer t3212) := {</span><br><span style="color: hsl(120, 100%, 40%);">+            cCCH_Conf := int2bit(ccch_conf, 3),</span><br><span style="color: hsl(120, 100%, 40%);">+           bS_AG_BLKS_RES := int2bit(bs_ag_blks_res, 3),</span><br><span style="color: hsl(120, 100%, 40%);">+                 aTT := bool2bit(att),</span><br><span style="color: hsl(120, 100%, 40%);">+                 mSCR := bool2bit(mscr),</span><br><span style="color: hsl(120, 100%, 40%);">+               bS_PA_MFRMS := int2bit(bs_pa_mfrms, 3),</span><br><span style="color: hsl(120, 100%, 40%);">+               spare1 := '00'B,</span><br><span style="color: hsl(120, 100%, 40%);">+              cBQ3 := cbq3,</span><br><span style="color: hsl(120, 100%, 40%);">+                 spare2 := '0'B,</span><br><span style="color: hsl(120, 100%, 40%);">+               t3212 := int2oct(t3212, 1)</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 44.018 10.5.2.3 */</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) CellOptions ts_CellOptions(integer radio_link_timeout,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                   BIT3 dtx,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             boolean pwrc) := {</span><br><span style="color: hsl(120, 100%, 40%);">+                radioLinkTimeout := int2bit(radio_link_timeout, 4),</span><br><span style="color: hsl(120, 100%, 40%);">+           dTX1 := dtx[0] & dtx[1],</span><br><span style="color: hsl(120, 100%, 40%);">+          pWRC := bool2bit(pwrc),</span><br><span style="color: hsl(120, 100%, 40%);">+               dtx2 := dtx[2]</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 44.018 10.5.2.4 */</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) CellSelectionParameters ts_CellSelectionParameters(integer ms_txpwr_max_cch,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                     integer cell_reselection_hysteresis,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                          integer rxlev_access_min,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                     boolean neci,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                         boolean acs) := {</span><br><span style="color: hsl(120, 100%, 40%);">+         mS_TXPWR_MAX_CCH := int2bit(ms_txpwr_max_cch, 5),</span><br><span style="color: hsl(120, 100%, 40%);">+             cellReselectHysterisis := int2bit(cell_reselection_hysteresis, 3),</span><br><span style="color: hsl(120, 100%, 40%);">+            rXLEV_Access_Min := int2bit(rxlev_access_min, 6),</span><br><span style="color: hsl(120, 100%, 40%);">+             nECI := bool2bit(neci),</span><br><span style="color: hsl(120, 100%, 40%);">+               aCS := bool2bit(acs)</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 44.018 10.5.2.29 */</span><br><span style="color: hsl(120, 100%, 40%);">+        template (value) RACHControlParameters ts_RACHControlParameters(boolean re,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                   boolean cell_barr_access,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                     integer tx_integer,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                   integer max_retrans,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                  integer ac_15_to_8,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                   integer ac_7_to_0) := {</span><br><span style="color: hsl(120, 100%, 40%);">+               rE := bool2bit(re),</span><br><span style="color: hsl(120, 100%, 40%);">+           cellBarrAccess := bool2bit(cell_barr_access),</span><br><span style="color: hsl(120, 100%, 40%);">+         tX_Integer := int2bit(tx_integer, 4),</span><br><span style="color: hsl(120, 100%, 40%);">+         maxRetrans := int2bit(max_retrans, 2),</span><br><span style="color: hsl(120, 100%, 40%);">+                aC_15_to_8 := int2oct(ac_15_to_8, 1),</span><br><span style="color: hsl(120, 100%, 40%);">+         aC_7_to_0 := int2oct(ac_7_to_0, 1)</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 44.018 9.1.35 */</span><br><span style="color: hsl(120, 100%, 40%);">+   template (value) SI3 ts_SI3(integer cell_id,</span><br><span style="color: hsl(120, 100%, 40%);">+                              template (value) BSSGP_Types.LocationAreaIdentification lai,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  template (value) ControlChannelDescription cch_descr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                 template (value) CellOptions cell_opt,</span><br><span style="color: hsl(120, 100%, 40%);">+                                template (value) CellSelectionParameters cell_sel_par,</span><br><span style="color: hsl(120, 100%, 40%);">+                                template (value) RACHControlParameters rach_ctrl_par,</span><br><span style="color: hsl(120, 100%, 40%);">+                                 OCT4 rest_octets) := {</span><br><span style="color: hsl(120, 100%, 40%);">+            sI3MessageType := '1B'O,</span><br><span style="color: hsl(120, 100%, 40%);">+              cellIdentity := int2oct(cell_id, 2),</span><br><span style="color: hsl(120, 100%, 40%);">+          locationAreaIdentification := lai,</span><br><span style="color: hsl(120, 100%, 40%);">+            controlChannelDescription := cch_descr,</span><br><span style="color: hsl(120, 100%, 40%);">+               cellOptions := cell_opt,</span><br><span style="color: hsl(120, 100%, 40%);">+              cellSelectionParameters := cell_sel_par,</span><br><span style="color: hsl(120, 100%, 40%);">+              rACHControlParameters := rach_ctrl_par,</span><br><span style="color: hsl(120, 100%, 40%);">+               sI3RestOctets := rest_octets</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* 3GPP TS 48.018 11.3.65 */</span><br><span style="color: hsl(120, 100%, 40%);">+  const BIT3 RIM_PDU_TYPE_STOP := '000'B;</span><br><span style="color: hsl(120, 100%, 40%);">+       const BIT3 RIM_PDU_TYPE_SING_REP := '001'B;</span><br><span style="color: hsl(120, 100%, 40%);">+   const BIT3 RIM_PDU_TYPE_MULT_REP := '010'B;</span><br><span style="color: hsl(120, 100%, 40%);">+   template (value) RIM_PDU_Indications ts_RIM_PDU_Indications(boolean ack, BIT3 type_ext) := {</span><br><span style="color: hsl(120, 100%, 40%);">+           iEI := '4F'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 1</span><br><span style="color: hsl(120, 100%, 40%);">+           },</span><br><span style="color: hsl(120, 100%, 40%);">+            ack := bool2bit(ack),</span><br><span style="color: hsl(120, 100%, 40%);">+                 pDU_Type_Extension := type_ext,</span><br><span style="color: hsl(120, 100%, 40%);">+               reserved := '0000'B</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.67 */</span><br><span style="color: hsl(120, 100%, 40%);">+  template (value) RIM_Protocol_Version_Number ts_RIM_Protocol_Version_Number(integer ver) := {</span><br><span style="color: hsl(120, 100%, 40%);">+          iEI := '55'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 1</span><br><span style="color: hsl(120, 100%, 40%);">+           },</span><br><span style="color: hsl(120, 100%, 40%);">+            rIMProtocolVersionNumber := int2oct(ver, 1)</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.70 */</span><br><span style="color: hsl(120, 100%, 40%);">+  const HEX1 RIM_ADDR_GERAN_CELL_ID := '0'H;</span><br><span style="color: hsl(120, 100%, 40%);">+    const HEX1 RIM_ADDR_UTRAN_RNC_ID := '1'H;</span><br><span style="color: hsl(120, 100%, 40%);">+     const HEX1 RIM_ADDR_EUTRAN_NODEB_ID := '2'H;</span><br><span style="color: hsl(120, 100%, 40%);">+  const HEX1 RIM_ADDR_EHRPD_SECTOR_ID := '3'H;</span><br><span style="color: hsl(120, 100%, 40%);">+  template (value) RIM_Routing_Information ts_RIM_Routing_Information(HEX1 addr_discr, template (value) RIM_Routing_Address addr) := {</span><br><span style="color: hsl(120, 100%, 40%);">+           iEI := '54'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            rIMRoutingAddressDiscriminator := addr_discr,</span><br><span style="color: hsl(120, 100%, 40%);">+                 spare := '0'H,</span><br><span style="color: hsl(120, 100%, 40%);">+                rIM_Routing_Address := addr</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+     template RIM_Routing_Information tr_RIM_Routing_Information(template HEX1 addr_discr := ?, template RIM_Routing_Address addr := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+                iEI := '54'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := ?</span><br><span style="color: hsl(120, 100%, 40%);">+           },</span><br><span style="color: hsl(120, 100%, 40%);">+            rIMRoutingAddressDiscriminator := addr_discr,</span><br><span style="color: hsl(120, 100%, 40%);">+                 spare := '0'H,</span><br><span style="color: hsl(120, 100%, 40%);">+                rIM_Routing_Address := addr</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   template RIM_Routing_Address t_RIM_Routing_Address_cid(template BssgpCellId cid := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+             cell_Identifier := t_Cell_Identifier_V(cid)</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+     template RIM_Routing_Address t_RIM_Routing_Address_rncid(template BssgpCellId cid := ?, template integer rnc_id := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+             globalRNCID := t_GlobalRNC_ID_BSSGP(cid, rnc_id)</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     template RIM_Routing_Address t_RIM_Routing_Address_enbid(template BssgpCellId cid := ?, template integer tac := ?, template octetstring gnbid := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+               eNB_Identifier := t_ENB_Identifier_V(cid, tac, gnbid)</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+     template RIM_Routing_Address t_RIM_Routing_Address_sector(template octetstring sector := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+               eHRPD_SectorID := sector</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   function t_Cell_Identifier_V(template BssgpCellId cid) return template Cell_Identifier_V {</span><br><span style="color: hsl(120, 100%, 40%);">+            var template Cell_Identifier_V ret := {</span><br><span style="color: hsl(120, 100%, 40%);">+                       mccDigit1 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mccDigit2 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mccDigit3 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mncDigit3 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mncDigit1 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mncDigit2 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       lac := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                     rac := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                     cI_value := ?</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (istemplatekind(cid, "omit")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                  return omit;</span><br><span style="color: hsl(120, 100%, 40%);">+          } else if (istemplatekind(cid, "*")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      return *;</span><br><span style="color: hsl(120, 100%, 40%);">+             } else if (istemplatekind(cid, "?")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      return ?;</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (isvalue(cid) and isvalue(cid.ra_id) and isvalue(cid.ra_id.lai)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                 if (isvalue(cid.ra_id.lai.mcc_mnc)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                         ret.mccDigit1 := cid.ra_id.lai.mcc_mnc[0];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mccDigit2 := cid.ra_id.lai.mcc_mnc[1];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mccDigit3 := cid.ra_id.lai.mcc_mnc[2];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mncDigit3 := cid.ra_id.lai.mcc_mnc[3];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mncDigit1 := cid.ra_id.lai.mcc_mnc[4];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mncDigit2 := cid.ra_id.lai.mcc_mnc[5];</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+                     if (isvalue(cid.ra_id.lai.lac)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                             ret.lac := f_oct_or_wc(cid.ra_id.lai.lac, 2);</span><br><span style="color: hsl(120, 100%, 40%);">+                 }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (isvalue(cid) and isvalue(cid.ra_id)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    ret.rac := f_oct_or_wc(cid.ra_id.rac, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (isvalue(cid)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                   ret.cI_value := f_oct_or_wc(cid.cell_id, 2);</span><br><span style="color: hsl(120, 100%, 40%);">+          }</span><br><span style="color: hsl(120, 100%, 40%);">+             return ret;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   function t_GlobalRNC_ID_BSSGP(template BssgpCellId cid, template integer rnc_id) return template GlobalRNC_ID_BSSGP {</span><br><span style="color: hsl(120, 100%, 40%);">+         var template GlobalRNC_ID_BSSGP ret := {</span><br><span style="color: hsl(120, 100%, 40%);">+                      mccDigit1 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mccDigit2 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mccDigit3 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mncDigit3 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mncDigit1 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mncDigit2 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       lac := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                     rac := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                     spare := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                   rNC_ID := ?</span><br><span style="color: hsl(120, 100%, 40%);">+           }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (istemplatekind(cid, "omit") and istemplatekind(rnc_id, "omit")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     return omit;</span><br><span style="color: hsl(120, 100%, 40%);">+          } else if (istemplatekind(cid, "*") and istemplatekind(rnc_id, "*")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    return *;</span><br><span style="color: hsl(120, 100%, 40%);">+             } else if (istemplatekind(cid, "?") and istemplatekind(rnc_id, "?")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    return ?;</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (isvalue(cid) and isvalue(cid.ra_id) and isvalue(cid.ra_id.lai)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                 if (isvalue(cid.ra_id.lai.mcc_mnc)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                         ret.mccDigit1 := cid.ra_id.lai.mcc_mnc[0];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mccDigit2 := cid.ra_id.lai.mcc_mnc[1];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mccDigit3 := cid.ra_id.lai.mcc_mnc[2];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mncDigit3 := cid.ra_id.lai.mcc_mnc[3];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mncDigit1 := cid.ra_id.lai.mcc_mnc[4];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mncDigit2 := cid.ra_id.lai.mcc_mnc[5];</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+                     if (isvalue(cid.ra_id.lai.lac)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                             ret.lac := f_oct_or_wc(cid.ra_id.lai.lac, 2);</span><br><span style="color: hsl(120, 100%, 40%);">+                 }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (isvalue(cid) and isvalue(cid.ra_id)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    ret.rac := f_oct_or_wc(cid.ra_id.rac, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (isvalue(rnc_id)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                        ret.spare := '0'H;</span><br><span style="color: hsl(120, 100%, 40%);">+                    ret.rNC_ID := rnc_id;</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           return ret;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   function t_ENB_Identifier_V(template BssgpCellId cid, template integer tac, template octetstring gnbid) return template ENB_Identifier_V {</span><br><span style="color: hsl(120, 100%, 40%);">+            var template ENB_Identifier_V ret := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        mccDigit1 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mccDigit2 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mccDigit3 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mncDigit3 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mncDigit1 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       mncDigit2 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                       tac := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                     globaleNBID := ?</span><br><span style="color: hsl(120, 100%, 40%);">+              }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (istemplatekind(cid, "omit") and istemplatekind(tac, "omit") and istemplatekind(gnbid, "omit")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    return omit;</span><br><span style="color: hsl(120, 100%, 40%);">+          } else if (istemplatekind(cid, "*") and istemplatekind(tac, "*") and istemplatekind(gnbid, "*")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      return *;</span><br><span style="color: hsl(120, 100%, 40%);">+             } else if (istemplatekind(cid, "?") and istemplatekind(tac, "?") and istemplatekind(gnbid, "?")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      return ?;</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (isvalue(cid) and isvalue(cid.ra_id) and isvalue(cid.ra_id.lai)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                 if (isvalue(cid.ra_id.lai.mcc_mnc)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                         ret.mccDigit1 := cid.ra_id.lai.mcc_mnc[0];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mccDigit2 := cid.ra_id.lai.mcc_mnc[1];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mccDigit3 := cid.ra_id.lai.mcc_mnc[2];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mncDigit3 := cid.ra_id.lai.mcc_mnc[3];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mncDigit1 := cid.ra_id.lai.mcc_mnc[4];</span><br><span style="color: hsl(120, 100%, 40%);">+                            ret.mncDigit2 := cid.ra_id.lai.mcc_mnc[5];</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (isvalue(tac)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                   ret.tac := int2oct(valueof(tac), 2);</span><br><span style="color: hsl(120, 100%, 40%);">+          }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (isvalue(gnbid)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                 ret.globaleNBID := gnbid;</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           return ret;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 11.3.108 */</span><br><span style="color: hsl(120, 100%, 40%);">+ template (value) SON_Transfer_Application_Identity_TLV ts_SON_Transfer_Application_Identity_TLV(template (value) octetstring app_id) := {</span><br><span style="color: hsl(120, 100%, 40%);">+              iEI := '84'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                 ext := '1'B,</span><br><span style="color: hsl(120, 100%, 40%);">+          lengthIndicator := {</span><br><span style="color: hsl(120, 100%, 40%);">+                 length1 := 0 /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+                 },</span><br><span style="color: hsl(120, 100%, 40%);">+            sON_Transfer_Application_Identity := app_id</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* 3GPP TS 48.018 10.6.1 */</span><br><span style="color: hsl(120, 100%, 40%);">+   template (value) PDU_BSSGP</span><br><span style="color: hsl(120, 100%, 40%);">+    ts_RAN_INFORMATION_REQUEST(template (value) RIM_Routing_Information dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                                 template (value) RIM_Routing_Information src,</span><br><span style="color: hsl(120, 100%, 40%);">+                                 template (value) RAN_Information_Request_RIM_Container cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+          pDU_BSSGP_RAN_INFORMATION_REQUEST := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        bssgpPduType := '71'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        destination_Cell_Identifier := dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                   source_Cell_Identifier := src,</span><br><span style="color: hsl(120, 100%, 40%);">+                        rIM_Container := cont</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     template PDU_BSSGP</span><br><span style="color: hsl(120, 100%, 40%);">+    tr_RAN_INFORMATION_REQUEST(template RIM_Routing_Information dst := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                            template RIM_Routing_Information src := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                            template RAN_Information_Request_RIM_Container cont := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+             pDU_BSSGP_RAN_INFORMATION_REQUEST := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        bssgpPduType := '71'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        destination_Cell_Identifier := dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                   source_Cell_Identifier := src,</span><br><span style="color: hsl(120, 100%, 40%);">+                        rIM_Container := cont</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 10.6.2 */</span><br><span style="color: hsl(120, 100%, 40%);">+   template (value) PDU_BSSGP</span><br><span style="color: hsl(120, 100%, 40%);">+    ts_PDU_BSSGP_RAN_INFORMATION(template (value) RIM_Routing_Information dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                                 template (value) RIM_Routing_Information src,</span><br><span style="color: hsl(120, 100%, 40%);">+                                 template (value) RAN_Information_RIM_Container cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+                pDU_BSSGP_RAN_INFORMATION := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        bssgpPduType := '70'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        destination_Cell_Identifier := dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                   source_Cell_Identifier := src,</span><br><span style="color: hsl(120, 100%, 40%);">+                        rIM_Container := cont</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     template PDU_BSSGP</span><br><span style="color: hsl(120, 100%, 40%);">+    tr_PDU_BSSGP_RAN_INFORMATION(template RIM_Routing_Information dst := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    template RIM_Routing_Information src := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    template RAN_Information_RIM_Container cont := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+           pDU_BSSGP_RAN_INFORMATION := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        bssgpPduType := '70'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        destination_Cell_Identifier := dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                   source_Cell_Identifier := src,</span><br><span style="color: hsl(120, 100%, 40%);">+                        rIM_Container := cont</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 10.6.3 */</span><br><span style="color: hsl(120, 100%, 40%);">+   template (value) PDU_BSSGP</span><br><span style="color: hsl(120, 100%, 40%);">+    ts_PDU_BSSGP_RAN_INFORMATION_ACK(template (value) RIM_Routing_Information dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         template (value) RIM_Routing_Information src,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         template (value) RAN_Information_Ack_RIM_Container cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+                pDU_BSSGP_RAN_INFORMATION_ACK := {</span><br><span style="color: hsl(120, 100%, 40%);">+                    bssgpPduType := '72'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        destination_Cell_Identifier := dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                   source_Cell_Identifier := src,</span><br><span style="color: hsl(120, 100%, 40%);">+                        rIM_Container := cont</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     template PDU_BSSGP</span><br><span style="color: hsl(120, 100%, 40%);">+    tr_PDU_BSSGP_RAN_INFORMATION_ACK(template RIM_Routing_Information dst := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    template RIM_Routing_Information src := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    template RAN_Information_Ack_RIM_Container cont := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+           pDU_BSSGP_RAN_INFORMATION_ACK := {</span><br><span style="color: hsl(120, 100%, 40%);">+                    bssgpPduType := '72'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        destination_Cell_Identifier := dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                   source_Cell_Identifier := src,</span><br><span style="color: hsl(120, 100%, 40%);">+                        rIM_Container := cont</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 10.6.4 */</span><br><span style="color: hsl(120, 100%, 40%);">+   template (value) PDU_BSSGP</span><br><span style="color: hsl(120, 100%, 40%);">+    ts_PDU_BSSGP_RAN_INFORMATION_ERROR(template (value) RIM_Routing_Information dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         template (value) RIM_Routing_Information src,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         template (value) RAN_Information_Error_RIM_Container cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+            pDU_BSSGP_RAN_INFORMATION_ERROR := {</span><br><span style="color: hsl(120, 100%, 40%);">+                  bssgpPduType := '73'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        destination_Cell_Identifier := dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                   source_Cell_Identifier := src,</span><br><span style="color: hsl(120, 100%, 40%);">+                        rIM_Container := cont</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     template PDU_BSSGP</span><br><span style="color: hsl(120, 100%, 40%);">+    tr_PDU_BSSGP_RAN_INFORMATION_ERROR(template RIM_Routing_Information dst := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    template RIM_Routing_Information src := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    template RAN_Information_Error_RIM_Container cont := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+               pDU_BSSGP_RAN_INFORMATION_ERROR := {</span><br><span style="color: hsl(120, 100%, 40%);">+                  bssgpPduType := '73'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        destination_Cell_Identifier := dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                   source_Cell_Identifier := src,</span><br><span style="color: hsl(120, 100%, 40%);">+                        rIM_Container := cont</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* 3GPP TS 48.018 10.6.5 */</span><br><span style="color: hsl(120, 100%, 40%);">+   template (value) PDU_BSSGP</span><br><span style="color: hsl(120, 100%, 40%);">+    ts_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(template (value) RIM_Routing_Information dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                 template (value) RIM_Routing_Information src,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                 template (value) RAN_Information_Application_Error_RIM_Container cont) := {</span><br><span style="color: hsl(120, 100%, 40%);">+            pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR := {</span><br><span style="color: hsl(120, 100%, 40%);">+                      bssgpPduType := '74'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        destination_Cell_Identifier := dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                   source_Cell_Identifier := src,</span><br><span style="color: hsl(120, 100%, 40%);">+                        rIM_Container := cont</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+     template PDU_BSSGP</span><br><span style="color: hsl(120, 100%, 40%);">+    tr_PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR(template RIM_Routing_Information dst := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    template RIM_Routing_Information src := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    template RAN_Information_Application_Error_RIM_Container cont := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+               pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR := {</span><br><span style="color: hsl(120, 100%, 40%);">+                      bssgpPduType := '74'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                        destination_Cell_Identifier := dst,</span><br><span style="color: hsl(120, 100%, 40%);">+                   source_Cell_Identifier := src,</span><br><span style="color: hsl(120, 100%, 40%);">+                        rIM_Container := cont</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  /* PDU permitted on PTP BVC only (TS 48.018 Section 5.4.1) */</span><br><span>        template (present) PDU_BSSGP tr_BSSGP_PERMITTED_PTP_ONLY := (</span><br><span>                {pDU_BSSGP_DL_UNITDATA := ?},</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587">change 21587</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21587"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ic495e0bb6ceb2b65cbc7c3da7ee519a013aede55 </div>
<div style="display:none"> Gerrit-Change-Number: 21587 </div>
<div style="display:none"> Gerrit-PatchSet: 6 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>