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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">hlr: add create-subscriber-on-demand tests<br><br>Test all possible code paths where a subscriber on demand can be<br>created:<br>* Check IMEI early<br>* Location Update<br>* Send Auth Info<br><br>Related: OS#2542<br>Change-Id: Id544fa906ad442c2bbbccff437c18d04ddccde2e<br>---<br>M hlr/HLR_Tests.ttcn<br>1 file changed, 173 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn</span><br><span>index 4c158fd..f309575 100644</span><br><span>--- a/hlr/HLR_Tests.ttcn</span><br><span>+++ b/hlr/HLR_Tests.ttcn</span><br><span>@@ -1196,6 +1196,176 @@</span><br><span>    vc_conn.done;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Test create-subscriber-on-demand during Check IMEI (OsmoMSC would be set to "check-imei-rqd early") */</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_TC_subscr_create_on_demand_check_imei_early() runs on HLR_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+  var GSUP_PDU res; /* save various return values to prevent ttcn3 compiler warnings */</span><br><span style="color: hsl(120, 100%, 40%);">+ var charstring imsi_pattern := "*IMSI: " & hex2str(g_pars.sub.imsi) & "*";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Random MSISDN and CS+PS NAM (LU must pass) */</span><br><span style="color: hsl(120, 100%, 40%);">+      f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 cs+ps");</span><br><span style="color: hsl(120, 100%, 40%);">+  f_perform_CHECK_IMEI(g_pars.sub.imsi, '12345678901234'H, result := OSMO_GSUP_IMEI_RESULT_ACK);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d*"); /* last line, hence not matching "\d\d\d\n" */</span><br><span style="color: hsl(120, 100%, 40%);">+    f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*[CP]S disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+     res := f_perform_UL(g_pars.sub.imsi, ?);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_vty_subscr_delete(VTY, g_pars.sub);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Random MSISDN and PS NAM (LU must pass) */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 ps");</span><br><span style="color: hsl(120, 100%, 40%);">+     f_perform_CHECK_IMEI(g_pars.sub.imsi, '12345678901234'H, result := OSMO_GSUP_IMEI_RESULT_ACK);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d*");</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*CS disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*PS disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+        res := f_perform_UL(g_pars.sub.imsi, ?);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_vty_subscr_delete(VTY, g_pars.sub);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Random MSISDN and CS NAM (LU must fail) */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 cs");</span><br><span style="color: hsl(120, 100%, 40%);">+     f_perform_CHECK_IMEI(g_pars.sub.imsi, '12345678901234'H, result := OSMO_GSUP_IMEI_RESULT_ACK);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d*");</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*PS disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*CS disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+        res := f_perform_UL(g_pars.sub.imsi, ?, 7 /* GPRS services not allowed */);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_vty_subscr_delete(VTY, g_pars.sub);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Random MSISDN and no NAM (LU must fail) */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 none");</span><br><span style="color: hsl(120, 100%, 40%);">+   f_perform_CHECK_IMEI(g_pars.sub.imsi, '12345678901234'H, result := OSMO_GSUP_IMEI_RESULT_ACK);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d*");</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*CS disabled*PS disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+    res := f_perform_UL(g_pars.sub.imsi, ?, 7 /* GPRS services not allowed */);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_vty_subscr_delete(VTY, g_pars.sub);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* No MSISDN and no NAM (LU must fail) */</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_config(VTY, "hlr", "subscriber-create-on-demand no-msisdn none");</span><br><span style="color: hsl(120, 100%, 40%);">+   f_perform_CHECK_IMEI(g_pars.sub.imsi, '12345678901234'H, result := OSMO_GSUP_IMEI_RESULT_ACK);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: none*");</span><br><span style="color: hsl(120, 100%, 40%);">+       f_vty_subscr_show(VTY, g_pars.sub, pattern "*CS disabled*PS disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+    res := f_perform_UL(g_pars.sub.imsi, ?, 7 /* GPRS services not allowed */);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_vty_subscr_delete(VTY, g_pars.sub);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* No MSISDN and CS+PS NAM (LU must pass) */</span><br><span style="color: hsl(120, 100%, 40%);">+  f_vty_config(VTY, "hlr", "subscriber-create-on-demand no-msisdn cs+ps");</span><br><span style="color: hsl(120, 100%, 40%);">+  f_perform_CHECK_IMEI(g_pars.sub.imsi, '12345678901234'H, result := OSMO_GSUP_IMEI_RESULT_ACK);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: none*");</span><br><span style="color: hsl(120, 100%, 40%);">+       f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*[CP]S disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+     res := f_perform_UL(g_pars.sub.imsi, omit);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_vty_subscr_delete(VTY, g_pars.sub);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_subscr_create_on_demand_check_imei_early() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+        var hexstring imsi := f_rnd_imsi('26242'H);</span><br><span style="color: hsl(120, 100%, 40%);">+   var HLR_ConnHdlrPars pars := valueof(t_Pars(imsi));</span><br><span style="color: hsl(120, 100%, 40%);">+   var HLR_ConnHdlr vc_conn;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   f_init(false);</span><br><span style="color: hsl(120, 100%, 40%);">+        vc_conn := f_start_handler(refers(f_TC_subscr_create_on_demand_check_imei_early), pars);</span><br><span style="color: hsl(120, 100%, 40%);">+      vc_conn.done;</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%);">+/* Test create-subscriber-on-demand during LU (Location Update) */</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_TC_subscr_create_on_demand_ul() runs on HLR_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+     var GSUP_PDU res;</span><br><span style="color: hsl(120, 100%, 40%);">+     var charstring imsi_pattern := "*IMSI: " & hex2str(g_pars.sub.imsi) & "*";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Random MSISDN and CS+PS NAM (LU must pass) */</span><br><span style="color: hsl(120, 100%, 40%);">+      f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 cs+ps");</span><br><span style="color: hsl(120, 100%, 40%);">+  res := f_perform_UL(g_pars.sub.imsi, ?);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d\n*");</span><br><span style="color: hsl(120, 100%, 40%);">+   f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*[CP]S disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_delete(VTY, g_pars.sub);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Random MSISDN and PS NAM (LU must pass) */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 ps");</span><br><span style="color: hsl(120, 100%, 40%);">+     res := f_perform_UL(g_pars.sub.imsi, ?);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d\n*");</span><br><span style="color: hsl(120, 100%, 40%);">+   f_vty_subscr_show(VTY, g_pars.sub, pattern "*CS disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*PS disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_subscr_delete(VTY, g_pars.sub);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Random MSISDN and CS NAM (LU must fail) */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 cs");</span><br><span style="color: hsl(120, 100%, 40%);">+     res := f_perform_UL(g_pars.sub.imsi, ?, 7 /* GPRS services not allowed */);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d\n*");</span><br><span style="color: hsl(120, 100%, 40%);">+   f_vty_subscr_show(VTY, g_pars.sub, pattern "*PS disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*CS disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_subscr_delete(VTY, g_pars.sub);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Random MSISDN and no NAM (LU must fail) */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 none");</span><br><span style="color: hsl(120, 100%, 40%);">+   res := f_perform_UL(g_pars.sub.imsi, ?, 7 /* GPRS services not allowed */);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d\n*");</span><br><span style="color: hsl(120, 100%, 40%);">+   f_vty_subscr_show(VTY, g_pars.sub, pattern "*CS disabled*PS disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+    f_vty_subscr_delete(VTY, g_pars.sub);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* No MSISDN and no NAM (LU must fail) */</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_config(VTY, "hlr", "subscriber-create-on-demand no-msisdn none");</span><br><span style="color: hsl(120, 100%, 40%);">+   res := f_perform_UL(g_pars.sub.imsi, ?, 7 /* GPRS services not allowed */);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: none*");</span><br><span style="color: hsl(120, 100%, 40%);">+       f_vty_subscr_show(VTY, g_pars.sub, pattern "*CS disabled*PS disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+    f_vty_subscr_delete(VTY, g_pars.sub);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* No MSISDN and CS+PS NAM (LU must pass) */</span><br><span style="color: hsl(120, 100%, 40%);">+  f_vty_config(VTY, "hlr", "subscriber-create-on-demand no-msisdn cs+ps");</span><br><span style="color: hsl(120, 100%, 40%);">+  res := f_perform_UL(g_pars.sub.imsi, omit);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: none*");</span><br><span style="color: hsl(120, 100%, 40%);">+       f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*[CP]S disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_delete(VTY, g_pars.sub);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_subscr_create_on_demand_ul() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+      var hexstring imsi := f_rnd_imsi('26242'H);</span><br><span style="color: hsl(120, 100%, 40%);">+   var HLR_ConnHdlrPars pars := valueof(t_Pars(imsi));</span><br><span style="color: hsl(120, 100%, 40%);">+   var HLR_ConnHdlr vc_conn;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   f_init(false);</span><br><span style="color: hsl(120, 100%, 40%);">+        vc_conn := f_start_handler(refers(f_TC_subscr_create_on_demand_ul), pars);</span><br><span style="color: hsl(120, 100%, 40%);">+    vc_conn.done;</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%);">+/* Test create-subscriber-on-demand during SAI (SendAuthInfo) */</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_TC_subscr_create_on_demand_sai() runs on HLR_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+      var GSUP_PDU res;</span><br><span style="color: hsl(120, 100%, 40%);">+     var charstring imsi_pattern := "*IMSI: " & hex2str(g_pars.sub.imsi) & "*";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* HLR creates the subscriber on demand. Then the IMSI is known, but there is no auth data, so the HLR returns</span><br><span style="color: hsl(120, 100%, 40%);">+         * the "slightly inaccurate cause 'IMSI Unknown' via GSUP". The MS is able to do a LU afterwards. */</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_config(VTY, "hlr", "subscriber-create-on-demand 3 cs+ps");</span><br><span style="color: hsl(120, 100%, 40%);">+  res := f_perform_SAI(g_pars.sub.imsi, 2 /* IMSI Unknown */ );</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Verify that it was created before the LU */</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_subscr_show(VTY, g_pars.sub, pattern imsi_pattern);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_vty_subscr_show(VTY, g_pars.sub, pattern "*MSISDN: \d\d\d*"); /* last line, hence not matching "\d\d\d\n" */</span><br><span style="color: hsl(120, 100%, 40%);">+    f_vty_subscr_show_nomatch(VTY, g_pars.sub, pattern "*[CP]S disabled*");</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Location update */</span><br><span style="color: hsl(120, 100%, 40%);">+ res := f_perform_UL(g_pars.sub.imsi, ?);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_vty_subscr_delete(VTY, g_pars.sub);</span><br><span style="color: hsl(120, 100%, 40%);">+ setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_subscr_create_on_demand_sai() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     var hexstring imsi := f_rnd_imsi('26242'H);</span><br><span style="color: hsl(120, 100%, 40%);">+   var HLR_ConnHdlrPars pars := valueof(t_Pars(imsi));</span><br><span style="color: hsl(120, 100%, 40%);">+   var HLR_ConnHdlr vc_conn;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   f_init(false);</span><br><span style="color: hsl(120, 100%, 40%);">+        vc_conn := f_start_handler(refers(f_TC_subscr_create_on_demand_sai), pars);</span><br><span style="color: hsl(120, 100%, 40%);">+   vc_conn.done;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* TODO:</span><br><span>   * UL with ISD error</span><br><span>   * UL with ISD timeout</span><br><span>@@ -1236,6 +1406,9 @@</span><br><span>   execute( TC_gsup_check_imei() );</span><br><span>     execute( TC_gsup_check_imei_invalid_len() );</span><br><span>         execute( TC_gsup_check_imei_unknown_imsi() );</span><br><span style="color: hsl(120, 100%, 40%);">+ execute( TC_subscr_create_on_demand_check_imei_early() );</span><br><span style="color: hsl(120, 100%, 40%);">+     execute( TC_subscr_create_on_demand_ul() );</span><br><span style="color: hsl(120, 100%, 40%);">+   execute( TC_subscr_create_on_demand_sai() );</span><br><span> };</span><br><span> </span><br><span> };</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14424">change 14424</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/+/14424"/><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: Id544fa906ad442c2bbbccff437c18d04ddccde2e </div>
<div style="display:none"> Gerrit-Change-Number: 14424 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>