<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/9422">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">GSUP_Types.ttcn: add SS related messages and IEs<br><br>Recently we introduced a few new GSUP IEs, related to TCAP-like<br>session management and Supplementary Services in libosmocore.<br>Let's sync the TTCN-3 implementation and add the corresponding<br>templates for SS payloads.<br><br>Change-Id: I54767e49ae98db67f71dd28278b14435860313e0<br>---<br>M library/GSUP_Types.ttcn<br>1 file changed, 153 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn</span><br><span>index 4c2aac0..359e272 100644</span><br><span>--- a/library/GSUP_Types.ttcn</span><br><span>+++ b/library/GSUP_Types.ttcn</span><br><span>@@ -39,7 +39,11 @@</span><br><span>         OSMO_GSUP_AUTN_IE               ('25'O),</span><br><span>     OSMO_GSUP_AUTS_IE               ('26'O),</span><br><span>     OSMO_GSUP_RES_IE                ('27'O),</span><br><span style="color: hsl(0, 100%, 40%);">-        OSMO_GSUP_CN_DOMAIN_IE          ('28'O)</span><br><span style="color: hsl(120, 100%, 40%);">+       OSMO_GSUP_CN_DOMAIN_IE          ('28'O),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    OSMO_GSUP_SESSION_ID_IE         ('30'O),</span><br><span style="color: hsl(120, 100%, 40%);">+      OSMO_GSUP_SESSION_STATE_IE      ('31'O),</span><br><span style="color: hsl(120, 100%, 40%);">+      OSMO_GSUP_SS_INFO_IE            ('35'O)</span><br><span> } with { variant "FIELDLENGTH(8)" };</span><br><span> </span><br><span> type enumerated GSUP_MessageType {</span><br><span>@@ -67,7 +71,11 @@</span><br><span> </span><br><span>         OSMO_GSUP_MSGT_LOCATION_CANCEL_REQUEST  ('00011100'B),</span><br><span>       OSMO_GSUP_MSGT_LOCATION_CANCEL_ERROR    ('00011101'B),</span><br><span style="color: hsl(0, 100%, 40%);">-  OSMO_GSUP_MSGT_LOCATION_CANCEL_RESULT   ('00011110'B)</span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_GSUP_MSGT_LOCATION_CANCEL_RESULT   ('00011110'B),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      OSMO_GSUP_MSGT_PROC_SS_REQUEST          ('00100000'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        OSMO_GSUP_MSGT_PROC_SS_ERROR            ('00100001'B),</span><br><span style="color: hsl(120, 100%, 40%);">+        OSMO_GSUP_MSGT_PROC_SS_RESULT           ('00100010'B)</span><br><span> } with { variant "FIELDLENGTH(8)" };</span><br><span> </span><br><span> type enumerated GSUP_CancelType {</span><br><span>@@ -80,6 +88,13 @@</span><br><span>        OSMO_GSUP_CN_DOMAIN_CS                  (2)</span><br><span> } with { variant "FIELDLENGTH(8)" };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+type enumerated GSUP_SessionState {</span><br><span style="color: hsl(120, 100%, 40%);">+        OSMO_GSUP_SESSION_STATE_NONE            (0),</span><br><span style="color: hsl(120, 100%, 40%);">+  OSMO_GSUP_SESSION_STATE_BEGIN           (1),</span><br><span style="color: hsl(120, 100%, 40%);">+  OSMO_GSUP_SESSION_STATE_CONTINUE        (2),</span><br><span style="color: hsl(120, 100%, 40%);">+  OSMO_GSUP_SESSION_STATE_END             (3)</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> type record GSUP_MSISDN {</span><br><span>   uint8_t len,</span><br><span>         hexstring digits optional</span><br><span>@@ -110,6 +125,9 @@</span><br><span>                               pdp_qos, tag = OSMO_GSUP_PDP_QOS_IE;</span><br><span>                                 pdp_type, tag = OSMO_GSUP_PDP_TYPE_IE;</span><br><span>                               charg_char, tag = OSMO_GSUP_CHARG_CHAR_IE;</span><br><span style="color: hsl(120, 100%, 40%);">+                            session_state, tag = OSMO_GSUP_SESSION_STATE_IE;</span><br><span style="color: hsl(120, 100%, 40%);">+                              session_id, tag = OSMO_GSUP_SESSION_ID_IE;</span><br><span style="color: hsl(120, 100%, 40%);">+                            ss_info, tag = OSMO_GSUP_SS_INFO_IE;</span><br><span>                        )"</span><br><span> };</span><br><span> </span><br><span>@@ -138,7 +156,12 @@</span><br><span>     octetstring     apn,</span><br><span>         octetstring     pdp_qos,</span><br><span>     OCT2            pdp_type,</span><br><span style="color: hsl(0, 100%, 40%);">-       octetstring     charg_char</span><br><span style="color: hsl(120, 100%, 40%);">+    octetstring     charg_char,</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Session information */</span><br><span style="color: hsl(120, 100%, 40%);">+     GSUP_SessionState       session_state,</span><br><span style="color: hsl(120, 100%, 40%);">+        OCT4                    session_id,</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Supplementary Services */</span><br><span style="color: hsl(120, 100%, 40%);">+  octetstring             ss_info</span><br><span> };</span><br><span> </span><br><span> type record GSUP_PDU {</span><br><span>@@ -513,5 +536,132 @@</span><br><span>  }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+template (value) GSUP_IE ts_GSUP_IE_SessionId(OCT4 sid) := {</span><br><span style="color: hsl(120, 100%, 40%);">+      tag := OSMO_GSUP_SESSION_ID_IE,</span><br><span style="color: hsl(120, 100%, 40%);">+       len := 0, /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+   val := {</span><br><span style="color: hsl(120, 100%, 40%);">+              session_id := sid</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 GSUP_IE tr_GSUP_IE_SessionId(template OCT4 sid) := {</span><br><span style="color: hsl(120, 100%, 40%);">+   tag := OSMO_GSUP_SESSION_ID_IE,</span><br><span style="color: hsl(120, 100%, 40%);">+       len := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+     val := {</span><br><span style="color: hsl(120, 100%, 40%);">+              session_id := sid</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 (value) GSUP_IE ts_GSUP_IE_SessionState(GSUP_SessionState state) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        tag := OSMO_GSUP_SESSION_STATE_IE,</span><br><span style="color: hsl(120, 100%, 40%);">+    len := 0, /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+   val := {</span><br><span style="color: hsl(120, 100%, 40%);">+              session_state := state</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 GSUP_IE tr_GSUP_IE_SessionState(template GSUP_SessionState state) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ tag := OSMO_GSUP_SESSION_STATE_IE,</span><br><span style="color: hsl(120, 100%, 40%);">+    len := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+     val := {</span><br><span style="color: hsl(120, 100%, 40%);">+              session_state := state</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 (value) GSUP_IE ts_GSUP_IE_SSInfo(octetstring ss) := {</span><br><span style="color: hsl(120, 100%, 40%);">+       tag := OSMO_GSUP_SS_INFO_IE,</span><br><span style="color: hsl(120, 100%, 40%);">+  len := 0, /* overwritten */</span><br><span style="color: hsl(120, 100%, 40%);">+   val := {</span><br><span style="color: hsl(120, 100%, 40%);">+              ss_info := ss</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 GSUP_IE tr_GSUP_IE_SSInfo(template octetstring ss) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        tag := OSMO_GSUP_SS_INFO_IE,</span><br><span style="color: hsl(120, 100%, 40%);">+  len := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+     val := {</span><br><span style="color: hsl(120, 100%, 40%);">+              ss_info := ss</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 (value) GSUP_PDU ts_GSUP_PROC_SS_REQ(</span><br><span style="color: hsl(120, 100%, 40%);">+        hexstring imsi,</span><br><span style="color: hsl(120, 100%, 40%);">+       OCT4 sid,</span><br><span style="color: hsl(120, 100%, 40%);">+     GSUP_SessionState state,</span><br><span style="color: hsl(120, 100%, 40%);">+      octetstring ss</span><br><span style="color: hsl(120, 100%, 40%);">+) := ts_GSUP(</span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_GSUP_MSGT_PROC_SS_REQUEST,</span><br><span style="color: hsl(120, 100%, 40%);">+       {</span><br><span style="color: hsl(120, 100%, 40%);">+             valueof(ts_GSUP_IE_IMSI(imsi)),</span><br><span style="color: hsl(120, 100%, 40%);">+               valueof(ts_GSUP_IE_SessionId(sid)),</span><br><span style="color: hsl(120, 100%, 40%);">+           valueof(ts_GSUP_IE_SessionState(state)),</span><br><span style="color: hsl(120, 100%, 40%);">+              valueof(ts_GSUP_IE_SSInfo(ss))</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 GSUP_PDU tr_GSUP_PROC_SS_REQ(</span><br><span style="color: hsl(120, 100%, 40%);">+ template hexstring imsi,</span><br><span style="color: hsl(120, 100%, 40%);">+      template OCT4 sid := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+       template GSUP_SessionState state := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+        template octetstring ss := ?</span><br><span style="color: hsl(120, 100%, 40%);">+) := tr_GSUP(</span><br><span style="color: hsl(120, 100%, 40%);">+   OSMO_GSUP_MSGT_PROC_SS_REQUEST,</span><br><span style="color: hsl(120, 100%, 40%);">+       {</span><br><span style="color: hsl(120, 100%, 40%);">+             tr_GSUP_IE_IMSI(imsi),</span><br><span style="color: hsl(120, 100%, 40%);">+                tr_GSUP_IE_SessionId(sid),</span><br><span style="color: hsl(120, 100%, 40%);">+            tr_GSUP_IE_SessionState(state),</span><br><span style="color: hsl(120, 100%, 40%);">+               tr_GSUP_IE_SSInfo(ss)</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 (value) GSUP_PDU ts_GSUP_PROC_SS_RES(</span><br><span style="color: hsl(120, 100%, 40%);">+       hexstring imsi,</span><br><span style="color: hsl(120, 100%, 40%);">+       OCT4 sid,</span><br><span style="color: hsl(120, 100%, 40%);">+     GSUP_SessionState state,</span><br><span style="color: hsl(120, 100%, 40%);">+      octetstring ss</span><br><span style="color: hsl(120, 100%, 40%);">+) := ts_GSUP(</span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_GSUP_MSGT_PROC_SS_RESULT,</span><br><span style="color: hsl(120, 100%, 40%);">+        {</span><br><span style="color: hsl(120, 100%, 40%);">+             valueof(ts_GSUP_IE_IMSI(imsi)),</span><br><span style="color: hsl(120, 100%, 40%);">+               valueof(ts_GSUP_IE_SessionId(sid)),</span><br><span style="color: hsl(120, 100%, 40%);">+           valueof(ts_GSUP_IE_SessionState(state)),</span><br><span style="color: hsl(120, 100%, 40%);">+              valueof(ts_GSUP_IE_SSInfo(ss))</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 GSUP_PDU tr_GSUP_PROC_SS_RES(</span><br><span style="color: hsl(120, 100%, 40%);">+ template hexstring imsi,</span><br><span style="color: hsl(120, 100%, 40%);">+      template OCT4 sid := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+       template GSUP_SessionState state := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+        template octetstring ss := ?</span><br><span style="color: hsl(120, 100%, 40%);">+) := tr_GSUP(</span><br><span style="color: hsl(120, 100%, 40%);">+   OSMO_GSUP_MSGT_PROC_SS_RESULT,</span><br><span style="color: hsl(120, 100%, 40%);">+        {</span><br><span style="color: hsl(120, 100%, 40%);">+             tr_GSUP_IE_IMSI(imsi),</span><br><span style="color: hsl(120, 100%, 40%);">+                tr_GSUP_IE_SessionId(sid),</span><br><span style="color: hsl(120, 100%, 40%);">+            tr_GSUP_IE_SessionState(state),</span><br><span style="color: hsl(120, 100%, 40%);">+               tr_GSUP_IE_SSInfo(ss)</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 (value) GSUP_PDU ts_GSUP_PROC_SS_ERR(</span><br><span style="color: hsl(120, 100%, 40%);">+       hexstring imsi,</span><br><span style="color: hsl(120, 100%, 40%);">+       OCT4 sid,</span><br><span style="color: hsl(120, 100%, 40%);">+     integer cause</span><br><span style="color: hsl(120, 100%, 40%);">+) := ts_GSUP(</span><br><span style="color: hsl(120, 100%, 40%);">+  OSMO_GSUP_MSGT_PROC_SS_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ {</span><br><span style="color: hsl(120, 100%, 40%);">+             valueof(ts_GSUP_IE_IMSI(imsi)),</span><br><span style="color: hsl(120, 100%, 40%);">+               valueof(ts_GSUP_IE_SessionId(sid)),</span><br><span style="color: hsl(120, 100%, 40%);">+           valueof(ts_GSUP_IE_Cause(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%);">+template GSUP_PDU tr_GSUP_PROC_SS_ERR(</span><br><span style="color: hsl(120, 100%, 40%);">+ template hexstring imsi,</span><br><span style="color: hsl(120, 100%, 40%);">+      template OCT4 sid := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+       template integer cause := ?</span><br><span style="color: hsl(120, 100%, 40%);">+) := tr_GSUP(</span><br><span style="color: hsl(120, 100%, 40%);">+    OSMO_GSUP_MSGT_PROC_SS_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ {</span><br><span style="color: hsl(120, 100%, 40%);">+             tr_GSUP_IE_IMSI(imsi),</span><br><span style="color: hsl(120, 100%, 40%);">+                tr_GSUP_IE_SessionId(sid),</span><br><span style="color: hsl(120, 100%, 40%);">+            tr_GSUP_IE_Cause(cause)</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"; variant "FIELDORDER(msb)" }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9422">change 9422</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/9422"/><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-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I54767e49ae98db67f71dd28278b14435860313e0 </div>
<div style="display:none"> Gerrit-Change-Number: 9422 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: Vadim Yanitskiy <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>