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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Osmocom_Gb_types: add minimum requred tr_ templates for RAN INF<br><br>When testing the serving BSS part of the RIM application in osmo-pcu, we<br>will need receiving templates that allow us to verify the response (RAN<br>INFORMATION) rim container.<br><br>Change-Id: I964d7504f3c4aeaa4ce537316b3140e8b893003d<br>Related: SYS#5103<br>---<br>M library/Osmocom_Gb_Types.ttcn<br>1 file changed, 111 insertions(+), 1 deletion(-)<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 2bbc508..97412b8 100644</span><br><span>--- a/library/Osmocom_Gb_Types.ttcn</span><br><span>+++ b/library/Osmocom_Gb_Types.ttcn</span><br><span>@@ -2511,7 +2511,14 @@</span><br><span>               },</span><br><span>           rIMApplicationIdentity := app_id</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+     template RIM_Application_Identity tr_RIM_Application_Identity(template 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> </span><br><span>        /* 3GPP TS 48.018 11.3.62 */</span><br><span>         template (value) RIM_Sequence_Number ts_RIM_Sequence_Number(integer seq) := {</span><br><span>@@ -2522,6 +2529,20 @@</span><br><span>                },</span><br><span>           rIMSequenceNumber := int2oct(seq, 4)</span><br><span>        }</span><br><span style="color: hsl(120, 100%, 40%);">+     function tr_RIM_Sequence_Number(template integer seq := ?) return template RIM_Sequence_Number {</span><br><span style="color: hsl(120, 100%, 40%);">+               var template RIM_Sequence_Number ret;</span><br><span style="color: hsl(120, 100%, 40%);">+                 ret.iEI := '4C'O;</span><br><span style="color: hsl(120, 100%, 40%);">+             ret.ext := '1'B;</span><br><span style="color: hsl(120, 100%, 40%);">+              ret.lengthIndicator := { length1 := 4 };</span><br><span style="color: hsl(120, 100%, 40%);">+              if (istemplatekind(seq, "*")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    ret.rIMSequenceNumber := *;</span><br><span style="color: hsl(120, 100%, 40%);">+            } else if (istemplatekind(seq, "?")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     ret.rIMSequenceNumber := ?;</span><br><span style="color: hsl(120, 100%, 40%);">+            } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                     ret.rIMSequenceNumber := int2oct(valueof(seq), 4);</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> </span><br><span>        /* 3GPP TS 48.018 11.3.62a.1 */</span><br><span>      template (value) RAN_Information_Request_RIM_Container</span><br><span>@@ -2585,10 +2606,34 @@</span><br><span>              applContainer_or_ApplErrContainer := app_cont_or_app_err,</span><br><span>            sON_Transfer_Application_Identity := son_app_id</span><br><span>     }</span><br><span style="color: hsl(120, 100%, 40%);">+     template RAN_Information_RIM_Container</span><br><span style="color: hsl(120, 100%, 40%);">+        tr_RAN_Information_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 := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                                     template ApplContainer_or_ApplErrContainer app_cont_or_app_err := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                                       template 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 := ?</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>    template (value) ApplContainer_or_ApplErrContainer</span><br><span>   tsu_ApplContainer_or_ApplErrContainer_NACC(template (value) ApplContainer_or_ApplErrContainer_NACC cont) := {</span><br><span>                nacc := cont</span><br><span>         }</span><br><span style="color: hsl(120, 100%, 40%);">+     template ApplContainer_or_ApplErrContainer</span><br><span style="color: hsl(120, 100%, 40%);">+    tru_ApplContainer_or_ApplErrContainer_NACC(template 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>    template (value) ApplContainer_or_ApplErrContainer</span><br><span>   tsu_ApplContainer_or_ApplErrContainer_SI3(template (value) ApplContainer_or_ApplErrContainer_SI3 cont) := {</span><br><span>          si3 := cont</span><br><span>@@ -2601,6 +2646,10 @@</span><br><span>         tsu_ApplContainer_NACC(template (value) BssgpCellId cid, boolean psi_type, integer si_psi_num, octetstring si_psi) := {</span><br><span>              application_Container := ts_RAN_Information_Application_Container_NACC(cid, psi_type, si_psi_num, si_psi)</span><br><span>    }</span><br><span style="color: hsl(120, 100%, 40%);">+     template ApplContainer_or_ApplErrContainer_NACC</span><br><span style="color: hsl(120, 100%, 40%);">+       tru_ApplContainer_NACC(template BssgpCellId cid := ?, template boolean psi_type := ?, template integer si_psi_num := ?, template octetstring si_psi := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+                application_Container := tr_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>    template (value) ApplContainer_or_ApplErrContainer_NACC</span><br><span>      tsu_ApplErrContainer_NACC(template (value) BssgpCellId cid,</span><br><span>                            integer cause,</span><br><span>@@ -2762,6 +2811,31 @@</span><br><span>             number_of_SI_PSI := int2bit(si_psi_num, 7),</span><br><span>                  sI_PSI := si_psi</span><br><span>    }</span><br><span style="color: hsl(120, 100%, 40%);">+     function tr_RAN_Information_Application_Container_NACC(template BssgpCellId cid := ?, template boolean psi_type := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                        template integer si_psi_num := ?, template octetstring si_psi := ?)</span><br><span style="color: hsl(120, 100%, 40%);">+                                                           return template RAN_Information_Application_Container_NACC {</span><br><span style="color: hsl(120, 100%, 40%);">+            var template RAN_Information_Application_Container_NACC ret;</span><br><span style="color: hsl(120, 100%, 40%);">+          ret.iEI := '4E'O;</span><br><span style="color: hsl(120, 100%, 40%);">+             ret.ext := '1'B;</span><br><span style="color: hsl(120, 100%, 40%);">+              ret.lengthIndicator := { length1 := ? };</span><br><span style="color: hsl(120, 100%, 40%);">+              ret.reporting_Cell_Identifier := t_Cell_Identifier_V(cid);</span><br><span style="color: hsl(120, 100%, 40%);">+            if (istemplatekind(psi_type, "*")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                       ret.typeBit := *;</span><br><span style="color: hsl(120, 100%, 40%);">+              } else if (istemplatekind(psi_type, "?")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                        ret.typeBit := ?;</span><br><span style="color: hsl(120, 100%, 40%);">+              } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                     ret.typeBit := bool2bit(valueof(psi_type));</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (istemplatekind(si_psi_num, "*")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     ret.number_of_SI_PSI := *;</span><br><span style="color: hsl(120, 100%, 40%);">+             } else if (istemplatekind(si_psi_num, "?")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      ret.number_of_SI_PSI := ?;</span><br><span style="color: hsl(120, 100%, 40%);">+             } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                     ret.number_of_SI_PSI := int2bit(valueof(si_psi_num), 7);</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span style="color: hsl(120, 100%, 40%);">+             ret.sI_PSI := si_psi;</span><br><span style="color: hsl(120, 100%, 40%);">+                 return ret;</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span> </span><br><span>        /* 3GPP TS 48.018 11.3.63.2.2 */</span><br><span>     template (value) RAN_Information_Application_Container_SI3</span><br><span>@@ -2999,6 +3073,28 @@</span><br><span>           pDU_Type_Extension := type_ext,</span><br><span>              reserved := '0000'B</span><br><span>         }</span><br><span style="color: hsl(120, 100%, 40%);">+     function tr_RIM_PDU_Indications(template boolean ack := ?, template BIT3 type_ext := ?) return template RIM_PDU_Indications {</span><br><span style="color: hsl(120, 100%, 40%);">+          var template RIM_PDU_Indications ret;</span><br><span style="color: hsl(120, 100%, 40%);">+                 ret.iEI := '4F'O;</span><br><span style="color: hsl(120, 100%, 40%);">+             ret.ext := '1'B;</span><br><span style="color: hsl(120, 100%, 40%);">+              ret.lengthIndicator := { length1 := 1 };</span><br><span style="color: hsl(120, 100%, 40%);">+              if (istemplatekind(ack, "*")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    ret.ack := *;</span><br><span style="color: hsl(120, 100%, 40%);">+          } else if (istemplatekind(ack, "?")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     ret.ack := ?;</span><br><span style="color: hsl(120, 100%, 40%);">+          } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                     ret.ack := bool2bit(valueof(ack));</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (istemplatekind(type_ext, "*")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                       ret.pDU_Type_Extension := *;</span><br><span style="color: hsl(120, 100%, 40%);">+           } else if (istemplatekind(type_ext, "?")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                        ret.pDU_Type_Extension := ?;</span><br><span style="color: hsl(120, 100%, 40%);">+           } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                     ret.pDU_Type_Extension := valueof(type_ext);</span><br><span style="color: hsl(120, 100%, 40%);">+           }</span><br><span style="color: hsl(120, 100%, 40%);">+             ret.reserved := '0000'B;</span><br><span style="color: hsl(120, 100%, 40%);">+              return ret;</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span> </span><br><span>        /* 3GPP TS 48.018 11.3.67 */</span><br><span>         template (value) RIM_Protocol_Version_Number ts_RIM_Protocol_Version_Number(integer ver) := {</span><br><span>@@ -3009,6 +3105,20 @@</span><br><span>                },</span><br><span>           rIMProtocolVersionNumber := int2oct(ver, 1)</span><br><span>         }</span><br><span style="color: hsl(120, 100%, 40%);">+     function tr_RIM_Protocol_Version_Number(template integer ver := ?) return template RIM_Protocol_Version_Number {</span><br><span style="color: hsl(120, 100%, 40%);">+               var template RIM_Protocol_Version_Number ret;</span><br><span style="color: hsl(120, 100%, 40%);">+                 ret.iEI := '55'O;</span><br><span style="color: hsl(120, 100%, 40%);">+             ret.ext := '1'B;</span><br><span style="color: hsl(120, 100%, 40%);">+              ret.lengthIndicator := { length1 := 1 };</span><br><span style="color: hsl(120, 100%, 40%);">+              if (istemplatekind(ver, "*")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    ret.rIMProtocolVersionNumber := *;</span><br><span style="color: hsl(120, 100%, 40%);">+             } else if (istemplatekind(ver, "?")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                     ret.rIMProtocolVersionNumber := ?;</span><br><span style="color: hsl(120, 100%, 40%);">+             } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                     ret.rIMProtocolVersionNumber := int2oct(valueof(ver), 1);</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> </span><br><span>        /* 3GPP TS 48.018 11.3.70 */</span><br><span>         const HEX1 RIM_ADDR_GERAN_CELL_ID := '0'H;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22461">change 22461</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/+/22461"/><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: I964d7504f3c4aeaa4ce537316b3140e8b893003d </div>
<div style="display:none"> Gerrit-Change-Number: 22461 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </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: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>