<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22783">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;">stp: Ignore M3UA SSNM messages in tests<br><br>The tests were written without considering the arrival of such messages;<br>however, it is well within the M3UA spec that such messages appear at<br>any time indicating remote point code availability etc.<br><br>In libosmo-sccp.git Id92be4691b0fd77598a6edb642c028bbd8c5b623 we start<br>generating those messages in osmo-stp.<br><br>Let's ignore them in the tests to avoid unexpected failures.<br><br>Later on, we likely will introduce / adapt tests to actually expect<br>those messages whenever appropriate.<br><br>Change-Id: I85ce8fd4f26db184833cf348293f0255bb5eaac3<br>Related: OS#2623<br>---<br>M library/M3UA_Templates.ttcn<br>M stp/STP_Tests_M3UA.ttcn<br>2 files changed, 221 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/M3UA_Templates.ttcn b/library/M3UA_Templates.ttcn</span><br><span>index 1063b50..5881b40 100644</span><br><span>--- a/library/M3UA_Templates.ttcn</span><br><span>+++ b/library/M3UA_Templates.ttcn</span><br><span>@@ -379,6 +379,218 @@</span><br><span>        }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/***********************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+ * SSNM Class</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) M3UA_Point_Code ts_M3UA_PC(uint24_t pc, uint8_t mask := 0) := {</span><br><span style="color: hsl(120, 100%, 40%);">+    mask := int2oct(mask, 1),</span><br><span style="color: hsl(120, 100%, 40%);">+     affected_Point_Code := int2oct(pc, 3)</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) M3UA_Affected_Point_Codes ts_M3UA_AffPc(template (value) M3UA_Point_Codes pcs) := {</span><br><span style="color: hsl(120, 100%, 40%);">+      tag := '0012'O,</span><br><span style="color: hsl(120, 100%, 40%);">+       lengthInd := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+       pointCodes := pcs</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) M3UA_Affected_Point_Codes tr_M3UA_AffPc(template (present) M3UA_Point_Codes pcs) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        tag := '0012'O,</span><br><span style="color: hsl(120, 100%, 40%);">+       lengthInd := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+       pointCodes := pcs</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) M3UA_User_Cause ts_M3UA_UserCause(template (value) OCT2 cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                  template (value) OCT2 user) := {</span><br><span style="color: hsl(120, 100%, 40%);">+   tag := '0204'O,</span><br><span style="color: hsl(120, 100%, 40%);">+       lengthInd := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+       cause := cause,</span><br><span style="color: hsl(120, 100%, 40%);">+       user := user</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) M3UA_User_Cause tr_M3UA_UserCause(template (present) OCT2 cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                               template (present) OCT2 user) := {</span><br><span style="color: hsl(120, 100%, 40%);">+       tag := '0204'O,</span><br><span style="color: hsl(120, 100%, 40%);">+       lengthInd := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+       cause := cause,</span><br><span style="color: hsl(120, 100%, 40%);">+       user := user</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) PDU_M3UA ts_M3UA_DUNA(template (value) M3UA_Point_Codes affected_pcs,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    template (omit) OCT4 rctx := omit) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        m3UA_DUNA := {</span><br><span style="color: hsl(120, 100%, 40%);">+                version := c_M3UA_VERSION,</span><br><span style="color: hsl(120, 100%, 40%);">+            reserved := '00'O,</span><br><span style="color: hsl(120, 100%, 40%);">+            messageClassAndType := '0201'O,</span><br><span style="color: hsl(120, 100%, 40%);">+               messageLength := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+           messageParameters := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        network_Appearance := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                   routing_Context := ts_M3UA_routing_ctx(rctx),</span><br><span style="color: hsl(120, 100%, 40%);">+                 affected_Point_Codes := ts_M3UA_AffPc(affected_pcs),</span><br><span style="color: hsl(120, 100%, 40%);">+                  info_String := 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%);">+template (present) PDU_M3UA tr_M3UA_DUNA(template (present) M3UA_Point_Codes affected_pcs := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  template OCT4 rctx := *):= {</span><br><span style="color: hsl(120, 100%, 40%);">+ m3UA_DUNA := {</span><br><span style="color: hsl(120, 100%, 40%);">+                version := c_M3UA_VERSION,</span><br><span style="color: hsl(120, 100%, 40%);">+            reserved := '00'O,</span><br><span style="color: hsl(120, 100%, 40%);">+            messageClassAndType := '0201'O,</span><br><span style="color: hsl(120, 100%, 40%);">+               messageLength := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+           messageParameters := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        network_Appearance := *,</span><br><span style="color: hsl(120, 100%, 40%);">+                      routing_Context := tr_M3UA_routing_ctx(rctx),</span><br><span style="color: hsl(120, 100%, 40%);">+                 affected_Point_Codes := tr_M3UA_AffPc(affected_pcs),</span><br><span style="color: hsl(120, 100%, 40%);">+                  info_String := *</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 (value) PDU_M3UA ts_M3UA_DAVA(template (value) M3UA_Point_Codes affected_pcs,</span><br><span style="color: hsl(120, 100%, 40%);">+                                       template (omit) OCT4 rctx := omit) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        m3UA_DAVA := {</span><br><span style="color: hsl(120, 100%, 40%);">+                version := c_M3UA_VERSION,</span><br><span style="color: hsl(120, 100%, 40%);">+            reserved := '00'O,</span><br><span style="color: hsl(120, 100%, 40%);">+            messageClassAndType := '0202'O,</span><br><span style="color: hsl(120, 100%, 40%);">+               messageLength := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+           messageParameters := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        network_Appearance := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                   routing_Context := ts_M3UA_routing_ctx(rctx),</span><br><span style="color: hsl(120, 100%, 40%);">+                 affected_Point_Codes := ts_M3UA_AffPc(affected_pcs),</span><br><span style="color: hsl(120, 100%, 40%);">+                  info_String := 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%);">+template (present) PDU_M3UA tr_M3UA_DAVA(template (present) M3UA_Point_Codes affected_pcs := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  template OCT4 rctx := *):= {</span><br><span style="color: hsl(120, 100%, 40%);">+ m3UA_DAVA := {</span><br><span style="color: hsl(120, 100%, 40%);">+                version := c_M3UA_VERSION,</span><br><span style="color: hsl(120, 100%, 40%);">+            reserved := '00'O,</span><br><span style="color: hsl(120, 100%, 40%);">+            messageClassAndType := '0202'O,</span><br><span style="color: hsl(120, 100%, 40%);">+               messageLength := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+           messageParameters := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        network_Appearance := *,</span><br><span style="color: hsl(120, 100%, 40%);">+                      routing_Context := tr_M3UA_routing_ctx(rctx),</span><br><span style="color: hsl(120, 100%, 40%);">+                 affected_Point_Codes := tr_M3UA_AffPc(affected_pcs),</span><br><span style="color: hsl(120, 100%, 40%);">+                  info_String := *</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 (value) PDU_M3UA ts_M3UA_DAUD(template (value) M3UA_Point_Codes affected_pcs,</span><br><span style="color: hsl(120, 100%, 40%);">+                                       template (omit) OCT4 rctx := omit) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        m3UA_DAUD := {</span><br><span style="color: hsl(120, 100%, 40%);">+                version := c_M3UA_VERSION,</span><br><span style="color: hsl(120, 100%, 40%);">+            reserved := '00'O,</span><br><span style="color: hsl(120, 100%, 40%);">+            messageClassAndType := '0203'O,</span><br><span style="color: hsl(120, 100%, 40%);">+               messageLength := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+           messageParameters := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        network_Appearance := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                   routing_Context := ts_M3UA_routing_ctx(rctx),</span><br><span style="color: hsl(120, 100%, 40%);">+                 affected_Point_Codes := ts_M3UA_AffPc(affected_pcs),</span><br><span style="color: hsl(120, 100%, 40%);">+                  info_String := 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%);">+template (present) PDU_M3UA tr_M3UA_DAUD(template (present) M3UA_Point_Codes affected_pcs := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  template OCT4 rctx := *):= {</span><br><span style="color: hsl(120, 100%, 40%);">+ m3UA_DAUD := {</span><br><span style="color: hsl(120, 100%, 40%);">+                version := c_M3UA_VERSION,</span><br><span style="color: hsl(120, 100%, 40%);">+            reserved := '00'O,</span><br><span style="color: hsl(120, 100%, 40%);">+            messageClassAndType := '0203'O,</span><br><span style="color: hsl(120, 100%, 40%);">+               messageLength := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+           messageParameters := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        network_Appearance := *,</span><br><span style="color: hsl(120, 100%, 40%);">+                      routing_Context := tr_M3UA_routing_ctx(rctx),</span><br><span style="color: hsl(120, 100%, 40%);">+                 affected_Point_Codes := tr_M3UA_AffPc(affected_pcs),</span><br><span style="color: hsl(120, 100%, 40%);">+                  info_String := *</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 (value) PDU_M3UA ts_M3UA_SCON(template (value) M3UA_Point_Codes affected_pcs,</span><br><span style="color: hsl(120, 100%, 40%);">+                                       template (omit) OCT4 rctx := omit) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        m3UA_SCON := {</span><br><span style="color: hsl(120, 100%, 40%);">+                version := c_M3UA_VERSION,</span><br><span style="color: hsl(120, 100%, 40%);">+            reserved := '00'O,</span><br><span style="color: hsl(120, 100%, 40%);">+            messageClassAndType := '0204'O,</span><br><span style="color: hsl(120, 100%, 40%);">+               messageLength := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+           messageParameters := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        network_Appearance := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                   routing_Context := ts_M3UA_routing_ctx(rctx),</span><br><span style="color: hsl(120, 100%, 40%);">+                 affected_Point_Codes := ts_M3UA_AffPc(affected_pcs),</span><br><span style="color: hsl(120, 100%, 40%);">+                  concerned_Destination := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                        congestion_Indicators := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                        info_String := 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%);">+template (present) PDU_M3UA tr_M3UA_SCON(template (present) M3UA_Point_Codes affected_pcs := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  template OCT4 rctx := *):= {</span><br><span style="color: hsl(120, 100%, 40%);">+ m3UA_SCON := {</span><br><span style="color: hsl(120, 100%, 40%);">+                version := c_M3UA_VERSION,</span><br><span style="color: hsl(120, 100%, 40%);">+            reserved := '00'O,</span><br><span style="color: hsl(120, 100%, 40%);">+            messageClassAndType := '0204'O,</span><br><span style="color: hsl(120, 100%, 40%);">+               messageLength := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+           messageParameters := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        network_Appearance := *,</span><br><span style="color: hsl(120, 100%, 40%);">+                      routing_Context := tr_M3UA_routing_ctx(rctx),</span><br><span style="color: hsl(120, 100%, 40%);">+                 affected_Point_Codes := tr_M3UA_AffPc(affected_pcs),</span><br><span style="color: hsl(120, 100%, 40%);">+                  concerned_Destination := *,</span><br><span style="color: hsl(120, 100%, 40%);">+                   congestion_Indicators := *,</span><br><span style="color: hsl(120, 100%, 40%);">+                   info_String := *</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 (value) PDU_M3UA ts_M3UA_DUPU(template (value) M3UA_Point_Codes affected_pcs,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        template (value) OCT2 cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  template (value) OCT2 user,</span><br><span style="color: hsl(120, 100%, 40%);">+                                   template (omit) OCT4 rctx := omit) := {</span><br><span style="color: hsl(120, 100%, 40%);">+       m3UA_DUPU := {</span><br><span style="color: hsl(120, 100%, 40%);">+                version := c_M3UA_VERSION,</span><br><span style="color: hsl(120, 100%, 40%);">+            reserved := '00'O,</span><br><span style="color: hsl(120, 100%, 40%);">+            messageClassAndType := '0205'O,</span><br><span style="color: hsl(120, 100%, 40%);">+               messageLength := 0,</span><br><span style="color: hsl(120, 100%, 40%);">+           messageParameters := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        network_Appearance := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+                   routing_Context := ts_M3UA_routing_ctx(rctx),</span><br><span style="color: hsl(120, 100%, 40%);">+                 affected_Point_Codes := ts_M3UA_AffPc(affected_pcs),</span><br><span style="color: hsl(120, 100%, 40%);">+                  user_Cause := ts_M3UA_UserCause(cause, user),</span><br><span style="color: hsl(120, 100%, 40%);">+                 info_String := 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%);">+template (present) PDU_M3UA tr_M3UA_DUPU(template (present) M3UA_Point_Codes affected_pcs := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                  template (present) OCT2 cause := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                   template (present) OCT2 user := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                    template OCT4 rctx := *):= {</span><br><span style="color: hsl(120, 100%, 40%);">+ m3UA_DUPU := {</span><br><span style="color: hsl(120, 100%, 40%);">+                version := c_M3UA_VERSION,</span><br><span style="color: hsl(120, 100%, 40%);">+            reserved := '00'O,</span><br><span style="color: hsl(120, 100%, 40%);">+            messageClassAndType := '0205'O,</span><br><span style="color: hsl(120, 100%, 40%);">+               messageLength := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+           messageParameters := {</span><br><span style="color: hsl(120, 100%, 40%);">+                        network_Appearance := *,</span><br><span style="color: hsl(120, 100%, 40%);">+                      routing_Context := tr_M3UA_routing_ctx(rctx),</span><br><span style="color: hsl(120, 100%, 40%);">+                 affected_Point_Codes := tr_M3UA_AffPc(affected_pcs),</span><br><span style="color: hsl(120, 100%, 40%);">+                  user_Cause := tr_M3UA_UserCause(cause, user),</span><br><span style="color: hsl(120, 100%, 40%);">+                 info_String := *</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_M3UA tr_M3UA_DRST := {</span><br><span style="color: hsl(120, 100%, 40%);">+ m3UA_DRST := {</span><br><span style="color: hsl(120, 100%, 40%);">+                version := c_M3UA_VERSION,</span><br><span style="color: hsl(120, 100%, 40%);">+            reserved := '00'O,</span><br><span style="color: hsl(120, 100%, 40%);">+            messageClassAndType := '0206'O,</span><br><span style="color: hsl(120, 100%, 40%);">+               messageLength := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+           messageParameters := ?</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_M3UA tr_M3UA_SSNM := (tr_M3UA_DUNA, tr_M3UA_DAVA, tr_M3UA_DAUD,</span><br><span style="color: hsl(120, 100%, 40%);">+                                             tr_M3UA_SCON, tr_M3UA_DUPU, tr_M3UA_DRST);</span><br><span> </span><br><span> /***********************************************************************</span><br><span>  * MGMT Class</span><br><span>diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn</span><br><span>index 22272f3..b76d9be 100644</span><br><span>--- a/stp/STP_Tests_M3UA.ttcn</span><br><span>+++ b/stp/STP_Tests_M3UA.ttcn</span><br><span>@@ -75,6 +75,14 @@</span><br><span>       [] any from M3UA.receive(tr_SctpPeerAddrChange) { repeat; }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+private altstep as_m3ua_ssnm_ignore() runs on RAW_M3UA_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     var M3UA_RecvFrom rx;</span><br><span style="color: hsl(120, 100%, 40%);">+ [] any from M3UA.receive(t_M3UA_RecvFrom(tr_M3UA_SSNM)) -> value rx {</span><br><span style="color: hsl(120, 100%, 40%);">+              log("Ignoring M3UA SSNM", rx);</span><br><span style="color: hsl(120, 100%, 40%);">+              repeat;</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> friend function f_M3UA_send(integer idx, template (present) PDU_M3UA msg, template integer stream := 0)</span><br><span> runs on RAW_M3UA_CT {</span><br><span>   M3UA[idx].send(t_M3UA_Send(g_m3ua_conn_id[idx], msg, stream));</span><br><span>@@ -183,6 +191,7 @@</span><br><span>         f_init_common();</span><br><span> </span><br><span>         activate(as_m3ua_sctp());</span><br><span style="color: hsl(120, 100%, 40%);">+     activate(as_m3ua_ssnm_ignore());</span><br><span> </span><br><span>         for (i := 0; i < NR_M3UA; i:=i+1) {</span><br><span>               map(self:M3UA[i], system:M3UA_CODEC_PT);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22783">change 22783</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/+/22783"/><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: I85ce8fd4f26db184833cf348293f0255bb5eaac3 </div>
<div style="display:none"> Gerrit-Change-Number: 22783 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </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-MessageType: merged </div>