<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18464">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">library/IPA_Emulation: server mode: expose IPA IDENTITY RESPONSE<br><br>Change-Id: I685c2697cdbe932572e1839420d0c74c8fa94ee2<br>Related: OS#4546<br>---<br>M library/IPA_Emulation.ttcnpp<br>1 file changed, 33 insertions(+), 6 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/64/18464/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/IPA_Emulation.ttcnpp b/library/IPA_Emulation.ttcnpp</span><br><span>index 62a11b7..d2f2102 100644</span><br><span>--- a/library/IPA_Emulation.ttcnpp</span><br><span>+++ b/library/IPA_Emulation.ttcnpp</span><br><span>@@ -79,25 +79,33 @@</span><br><span> type enumerated ASP_IPA_EventType {</span><br><span>       ASP_IPA_EVENT_DOWN,</span><br><span>  ASP_IPA_EVENT_UP,</span><br><span style="color: hsl(120, 100%, 40%);">+     ASP_IPA_EVENT_ID_RESP,</span><br><span>       ASP_IPA_EVENT_ID_ACK</span><br><span> }</span><br><span> </span><br><span> /* an event indicating us whether or not a connection is physically up or down,</span><br><span style="color: hsl(0, 100%, 40%);">- * and whether we have received an ID_ACK */</span><br><span style="color: hsl(120, 100%, 40%);">+ * and whether we have received an ID_RESP or ID_ACK */</span><br><span> type record ASP_IPA_Event {</span><br><span>         ASP_IPA_EventType       ev_type,</span><br><span style="color: hsl(0, 100%, 40%);">-        integer                 conn_id</span><br><span style="color: hsl(120, 100%, 40%);">+       integer                 conn_id,</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* Presence of these fields depends on event type */</span><br><span style="color: hsl(120, 100%, 40%);">+  IpaCcmIdResp            id_resp optional  // ASP_IPA_EVENT_ID_RESP</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-template (value) ASP_IPA_Event ts_ASP_IPA_EV(ASP_IPA_EventType ev_type, integer conn_id) := {</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) ASP_IPA_Event ts_ASP_IPA_EV(ASP_IPA_EventType ev_type, integer conn_id,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         template (omit) IpaCcmIdResp id_resp := omit) := {</span><br><span>      ev_type := ev_type,</span><br><span style="color: hsl(0, 100%, 40%);">-     conn_id := conn_id</span><br><span style="color: hsl(120, 100%, 40%);">+    conn_id := conn_id,</span><br><span style="color: hsl(120, 100%, 40%);">+   id_resp := id_resp</span><br><span> }</span><br><span> </span><br><span> template ASP_IPA_Event tr_ASP_IPA_EV(template ASP_IPA_EventType ev_type,</span><br><span style="color: hsl(0, 100%, 40%);">-                              template integer conn_id := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                   template integer conn_id := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                template IpaCcmIdResp id_resp := *) := {</span><br><span>        ev_type := ev_type,</span><br><span style="color: hsl(0, 100%, 40%);">-     conn_id := conn_id</span><br><span style="color: hsl(120, 100%, 40%);">+    conn_id := conn_id,</span><br><span style="color: hsl(120, 100%, 40%);">+   id_resp := id_resp</span><br><span> }</span><br><span> </span><br><span> template ASP_IPA_Unitdata t_ASP_IPA_UD(IpaStreamId sid, octetstring pl,</span><br><span>@@ -424,6 +432,16 @@</span><br><span>        }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+template PDU_IPA_CCM tr_IPA_ID_RESP := {</span><br><span style="color: hsl(120, 100%, 40%);">+  msg_type := IPAC_MSGT_ID_RESP,</span><br><span style="color: hsl(120, 100%, 40%);">+        u := {</span><br><span style="color: hsl(120, 100%, 40%);">+                resp := {</span><br><span style="color: hsl(120, 100%, 40%);">+                     { ?, IPAC_IDTAG_UNITNAME, ? },</span><br><span style="color: hsl(120, 100%, 40%);">+                        { ?, IPAC_IDTAG_UNITID, ? }</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> /* receive IPA CCM message */</span><br><span> private function f_ccm_rx_client(PDU_IPA_CCM ccm) runs on IPA_Emulation_CT {</span><br><span>      select (ccm.msg_type) {</span><br><span>@@ -458,6 +476,15 @@</span><br><span>               }</span><br><span>            case (IPAC_MSGT_ID_RESP) {</span><br><span>                   log("IPA ID RESP: ", ccm.u.resp);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                 /* make sure that the response contains all fields we requested */</span><br><span style="color: hsl(120, 100%, 40%);">+                    if (not match(ccm, tr_IPA_ID_RESP)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                         log("IPA identity response ", ccm.u.resp, " mismatch");</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                   /* forward to the upper layers, so they can map conn_id with unit_id */</span><br><span style="color: hsl(120, 100%, 40%);">+                       f_send_IPA_EVT(ts_ASP_IPA_EV(ASP_IPA_EVENT_ID_RESP, conn_id, ccm.u.resp));</span><br><span>                   /* acknowledge any identity that the client may have sent */</span><br><span>                         f_ccm_tx(valueof(ts_IPA_ACK), conn_id);</span><br><span>              }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18464">change 18464</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/+/18464"/><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: I685c2697cdbe932572e1839420d0c74c8fa94ee2 </div>
<div style="display:none"> Gerrit-Change-Number: 18464 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>