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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">BSSMAP templates for LCS<br><br>Both BSSMAP-LE and BSSMAP use the LCS Cause IE with identical definition. In<br>order to not add further dependencies from BSSMAP_Templates.ttcn to<br>BSSAP_LE_Types.ttcn to BSSLAP_Types.ttcn, duplicate the LCS Cause enum.<br><br>Change-Id: Ifee698c128a5345f6bf0301ad4dac9e083285d56<br>---<br>M library/BSSMAP_Templates.ttcn<br>1 file changed, 105 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn</span><br><span>index 0ec5639..da822a9 100644</span><br><span>--- a/library/BSSMAP_Templates.ttcn</span><br><span>+++ b/library/BSSMAP_Templates.ttcn</span><br><span>@@ -103,6 +103,25 @@</span><br><span>     GSM0808_CAUSE_DTM_HO_TIMER_EXPIRY                               ('1100010'B)</span><br><span> } with { variant "FIELDLENGTH(7)" };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+type enumerated BSSMAP_LcsCause {</span><br><span style="color: hsl(120, 100%, 40%);">+ BSSMAP_LCS_CAUSE_UNSPECIFIED            ('00000000'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_SYSTEM_FAILURE         ('00000001'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_PROTOCOL_ERROR         ('00000010'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_DATA_MISSING_IN_REQ    ('00000011'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_UNEXP_DATA_IN_REQ      ('00000100'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_POS_METH_FAILURE       ('00000101'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_TGT_MS_UNREACHABLE     ('00000110'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_REQUEST_ABORTED        ('00000111'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_FACILITY_NOTSUPP       ('00001000'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_INTER_BSC_HO           ('00001001'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_INTRA_BSC_HO           ('00001010'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_CONGESTION             ('00001011'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_INTER_NSE_CHG          ('00001100'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_RA_UPDAT               ('00001101'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_PTMSI_REALLOC          ('00001110'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSMAP_LCS_CAUSE_GPRS_SUSPENSION        ('00001111'B)</span><br><span style="color: hsl(120, 100%, 40%);">+} with { variant "FIELDLENGTH(8)" };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> template PDU_BSSAP ts_BSSAP_BSSMAP := {</span><br><span>   discriminator := '0'B,</span><br><span>       spare := '0000000'B,</span><br><span>@@ -1693,6 +1712,92 @@</span><br><span>        }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+template (value) BSSMAP_IE_LocationType ts_BSSMAP_IE_LocationType</span><br><span style="color: hsl(120, 100%, 40%);">+:= {</span><br><span style="color: hsl(120, 100%, 40%);">+   elementIdentifier := '44'O,</span><br><span style="color: hsl(120, 100%, 40%);">+   lengthIndicator := 1,</span><br><span style="color: hsl(120, 100%, 40%);">+ locationInformation := '00'O,</span><br><span style="color: hsl(120, 100%, 40%);">+ positioningMethod := omit</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+template (value) PDU_BSSAP ts_BSSMAP_Perform_Location_Request(template (omit) BSSMAP_IE_IMSI imsi,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                        template (omit) BSSMAP_IE_CellIdentifier cellIdentifier := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                                                       )</span><br><span style="color: hsl(120, 100%, 40%);">+modifies ts_BSSAP_BSSMAP := {</span><br><span style="color: hsl(120, 100%, 40%);">+        pdu := {</span><br><span style="color: hsl(120, 100%, 40%);">+              bssmap := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   performLocationRequest := {</span><br><span style="color: hsl(120, 100%, 40%);">+                           messageType := '2B'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                         locationType := ts_BSSMAP_IE_LocationType,</span><br><span style="color: hsl(120, 100%, 40%);">+                            cellIdentifier := cellIdentifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                             classmarkInformationType3 := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                            lCS_ClientType := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                               chosenChannel := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                                lCS_Priority := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                         lCS_QOS := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                              gPS_AssistanceData := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                           aPDU := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                         iMSI := imsi,</span><br><span style="color: hsl(120, 100%, 40%);">+                         iMEI := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                         gANSS_LocationType := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                           gANSS_AssistanceData := omit</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%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) BSSMAP_IE_LocationEstimate tr_BSSMAP_IE_LocationEstimate(template (present) octetstring geo_loc := ?)</span><br><span style="color: hsl(120, 100%, 40%);">+:= {</span><br><span style="color: hsl(120, 100%, 40%);">+        elementIdentifier := '45'O,</span><br><span style="color: hsl(120, 100%, 40%);">+   lengthIndicator := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+ geographicLocation := geo_loc</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 tr_BSSMAP_LcsCause(template (present) BSSMAP_LcsCause cause)</span><br><span style="color: hsl(120, 100%, 40%);">+return template (omit) BSSMAP_IE_LCSCause {</span><br><span style="color: hsl(120, 100%, 40%);">+        if (istemplatekind(cause, "omit")) {</span><br><span style="color: hsl(120, 100%, 40%);">+                return omit;</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+     var template BSSMAP_IE_LCSCause ie := {</span><br><span style="color: hsl(120, 100%, 40%);">+               elementIdentifier := '47'O,</span><br><span style="color: hsl(120, 100%, 40%);">+           lengthIndicator := 1,</span><br><span style="color: hsl(120, 100%, 40%);">+         causeValue := int2bit(enum2int(valueof(cause)), 8),</span><br><span style="color: hsl(120, 100%, 40%);">+           diagnosticValue := omit</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     return ie;</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 (present) PDU_BSSAP tr_BSSMAP_Perform_Location_Response(</span><br><span style="color: hsl(120, 100%, 40%);">+    template BSSMAP_IE_LocationEstimate locationEstimate := *,</span><br><span style="color: hsl(120, 100%, 40%);">+    template BSSMAP_IE_PositioningData positioningData := *,</span><br><span style="color: hsl(120, 100%, 40%);">+      template BSSMAP_IE_LCSCause lCS_Cause := *</span><br><span style="color: hsl(120, 100%, 40%);">+    )</span><br><span style="color: hsl(120, 100%, 40%);">+modifies tr_BSSAP_BSSMAP := {</span><br><span style="color: hsl(120, 100%, 40%);">+      pdu := {</span><br><span style="color: hsl(120, 100%, 40%);">+              bssmap := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   performLocationResponse := {</span><br><span style="color: hsl(120, 100%, 40%);">+                          messageType := '2D'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                         locationEstimate := locationEstimate,</span><br><span style="color: hsl(120, 100%, 40%);">+                         positioningData := positioningData,</span><br><span style="color: hsl(120, 100%, 40%);">+                           decipheringKeys := *,</span><br><span style="color: hsl(120, 100%, 40%);">+                         lCS_Cause := lCS_Cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                               velocityEstimate := *,</span><br><span style="color: hsl(120, 100%, 40%);">+                                gANSS_PositioningData := *</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%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) PDU_BSSAP tr_BSSMAP_Perform_Location_Abort(template (present) BSSMAP_IE_LCSCause lCS_Cause := ?)</span><br><span style="color: hsl(120, 100%, 40%);">+modifies tr_BSSAP_BSSMAP := {</span><br><span style="color: hsl(120, 100%, 40%);">+    pdu := {</span><br><span style="color: hsl(120, 100%, 40%);">+              bssmap := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   performLocationAbort := {</span><br><span style="color: hsl(120, 100%, 40%);">+                             messageType := '2E'O,</span><br><span style="color: hsl(120, 100%, 40%);">+                         lCS_Cause := lCS_Cause</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%);">+}</span><br><span> </span><br><span> } with { encode "RAW" };</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20372">change 20372</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/+/20372"/><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: Ifee698c128a5345f6bf0301ad4dac9e083285d56 </div>
<div style="display:none"> Gerrit-Change-Number: 20372 </div>
<div style="display:none"> Gerrit-PatchSet: 6 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>