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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bsc CBSP: introduce g_cbsp_msg_id and g_cbsp_ser_no<br><br>For each CBSP test, define one global set of CBSP msg id and serno for use by<br>that test.<br><br>Each CBSP test should use a distinct message id and serial nr, to not get mixed<br>up with previous state. But keeping those numbers manually is a confusing pain,<br>and as a reader it is hard to follow how these numbers change (if they do).<br><br>In f_cbsp_init_server(), require a preset of msg id and serno to be used in<br>that test, and from then on only use g_cbsp_msg_id and g_cbsp_ser_no instead of<br>magic numbers. If they change, write it out explicitly, making it easy to<br>follow what is expected to happen, and also making it easy to copy-paste code<br>snippets without having to manually adjust magic numbers.<br><br>Choice of numbers: pick a simpler scheme where both msg_id and ser_no share a<br>common "prefix" in the 1000s range, and for a ser_no add 500 to keep distinct<br>numbers (that avoid confusion when reading the logs):<br><br>test     prefix   msg_id   ser_no  next-ser_no<br>1        1000     1001     1501    1502<br>2        2000     2001     2501    2502<br>3        3000     3001     3501    3502<br>...<br><br>E.g. the first test has the prefix of 1000.<br>msg_id: 1001, ser_no: 1101.<br><br>Change-Id: I43ba196974614d1aea2b6055be2fe82059b38974<br>---<br>M bsc/BSC_Tests_CBSP.ttcn<br>1 file changed, 73 insertions(+), 49 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bsc/BSC_Tests_CBSP.ttcn b/bsc/BSC_Tests_CBSP.ttcn</span><br><span>index 8b7954d..20006dc 100644</span><br><span>--- a/bsc/BSC_Tests_CBSP.ttcn</span><br><span>+++ b/bsc/BSC_Tests_CBSP.ttcn</span><br><span>@@ -68,6 +68,15 @@</span><br><span> private template (value) OCT2 bssmap_ci(GsmCgiAbstract cgi) := ts_BSSMAP_CI_CI(cgi.ci);</span><br><span> </span><br><span> type component cbsp_test_CT extends test_CT, CBSP_Adapter_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+      var uint16_t g_cbsp_msg_id := 0;</span><br><span style="color: hsl(120, 100%, 40%);">+      var uint16_t g_cbsp_ser_no := 0;</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%);">+private function f_g_cbsp_next_msg_id_ser_no() runs on cbsp_test_CT</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ g_cbsp_msg_id := g_cbsp_msg_id + 1;</span><br><span style="color: hsl(120, 100%, 40%);">+   g_cbsp_ser_no := g_cbsp_ser_no + 1;</span><br><span style="color: hsl(120, 100%, 40%);">+   log("g_cbsp_msg_id=", g_cbsp_msg_id, "  g_cbsp_ser_no=", g_cbsp_ser_no);</span><br><span> }</span><br><span> </span><br><span> private altstep as_IgnRSL(template RSL_Message tr) runs on cbsp_test_CT {</span><br><span>@@ -108,7 +117,7 @@</span><br><span>     setverdict(pass);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-private function f_cbsp_init_server(float guard_timeout := 30.0) runs on cbsp_test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_cbsp_init_server(uint16_t cbsp_msg_id, uint16_t cbsp_ser_no, float guard_timeout := 30.0) runs on cbsp_test_CT {</span><br><span>       var ASP_Event asp_evt;</span><br><span>       timer T := 10.0;</span><br><span> </span><br><span>@@ -126,6 +135,10 @@</span><br><span>          }</span><br><span>    }</span><br><span>    f_expect_cbsp_restart();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    g_cbsp_msg_id := cbsp_msg_id;</span><br><span style="color: hsl(120, 100%, 40%);">+ g_cbsp_ser_no := cbsp_ser_no;</span><br><span style="color: hsl(120, 100%, 40%);">+ log("g_cbsp_msg_id=", g_cbsp_msg_id, "  g_cbsp_ser_no=", g_cbsp_ser_no);</span><br><span> }</span><br><span> private function f_expect_cbsp_restart() runs on cbsp_test_CT {</span><br><span>         interleave {</span><br><span>@@ -353,13 +366,13 @@</span><br><span> </span><br><span> /* Test if BSC (client) is connecting to CBC (server) */</span><br><span> testcase TC_cbsp_bsc_client() runs on cbsp_test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-    f_cbsp_init_server();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cbsp_init_server(0, 0);</span><br><span>    setverdict(pass);</span><br><span> }</span><br><span> </span><br><span> /* Test if a BSS-global RESET is executed successfully */</span><br><span> testcase TC_cbsp_reset_bss() runs on cbsp_test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-  f_cbsp_init_server();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cbsp_init_server(0, 0);</span><br><span> </span><br><span>        f_cbsp_reset_bss(0);</span><br><span>         setverdict(pass);</span><br><span>@@ -368,7 +381,7 @@</span><br><span> testcase TC_cbsp_write() runs on cbsp_test_CT {</span><br><span>   var template (value) CBSP_PDU tx;</span><br><span>    var CBSP_IEs pages := {f_gen_page()};</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_init_server();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cbsp_init_server(0, 0);</span><br><span> </span><br><span>        tx := ts_CBSP_WRITE_CBS(msg_id:=23,  new_ser_nr:=42, cell_list:=ts_BSSMAP_CIL_BSS,</span><br><span>                           channel_ind:=0, category:=CBSP_CATEG_NORMAL,</span><br><span>@@ -384,10 +397,10 @@</span><br><span>         var CBSP_IEs pages := {f_gen_page(payload_len := payload_len)};</span><br><span>      var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_BSS;</span><br><span style="color: hsl(0, 100%, 40%);">- f_cbsp_write(1, 1001, cell_list, content:=pages,</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, content:=pages,</span><br><span>                     success_list:=tr_BSSMAP_CIL_CGI({?,?,?}), fail_list:={?});</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     var template RSL_Message tr := f_page2rsl(pages[0], 1, 1001, expect_blocks := expect_blocks);</span><br><span style="color: hsl(120, 100%, 40%);">+ var template RSL_Message tr := f_page2rsl(pages[0], g_cbsp_msg_id, g_cbsp_ser_no, expect_blocks := expect_blocks);</span><br><span>   log("RSL[0,1,2] EXPECTING ", tr_ASP_RSL_UD(tr));</span><br><span>   interleave {</span><br><span>         [] IPA_RSL[0].receive(tr_ASP_RSL_UD(tr)) { log("Got SMSCB CMD on RSL[0]"); }</span><br><span>@@ -395,9 +408,12 @@</span><br><span>        [] IPA_RSL[2].receive(tr_ASP_RSL_UD(tr)) { log("Got SMSCB CMD on RSL[2]"); }</span><br><span>       }</span><br><span>    setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Make the next test run (if any) use different msg_id and ser_no */</span><br><span style="color: hsl(120, 100%, 40%);">+ f_g_cbsp_next_msg_id_ser_no();</span><br><span> }</span><br><span> testcase TC_cbsp_write_bss() runs on cbsp_test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-      f_cbsp_init_server(guard_timeout := 60.0);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_cbsp_init_server(1001, 1501, guard_timeout := 60.0);</span><br><span>       /* In the SMSCB message, there is a head followed by payload,</span><br><span>         * and the resulting data is segmented in blocks of 22 octets (<= 4 blocks).</span><br><span>       *</span><br><span>@@ -427,10 +443,10 @@</span><br><span>   var CBSP_IEs pages := {f_gen_page()};</span><br><span>        var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_CGI({bssmap_cgi(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-      f_cbsp_init_server();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_write(2, 1002, cell_list, content:=pages,</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cbsp_init_server(2001, 2501);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, content:=pages,</span><br><span>                     success_list:=cell_list, fail_list:=omit);</span><br><span style="color: hsl(0, 100%, 40%);">- var template RSL_Message tr := f_page2rsl(pages[0], 1, 1001);</span><br><span style="color: hsl(120, 100%, 40%);">+ var template RSL_Message tr := f_page2rsl(pages[0], g_cbsp_msg_id, g_cbsp_ser_no);</span><br><span>   IPA_RSL[0].receive(tr_ASP_RSL_UD(tr));</span><br><span>       f_sleep(5.0);</span><br><span> }</span><br><span>@@ -440,8 +456,8 @@</span><br><span>     var CBSP_IEs pages := {f_gen_page()};</span><br><span>        var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_CGI({bssmap_cgi(mp_cgi_bts3)});</span><br><span style="color: hsl(0, 100%, 40%);">-      f_cbsp_init_server();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_write(3, 1003, cell_list, content:=pages,</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cbsp_init_server(3001, 3501);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, content:=pages,</span><br><span>                     success_list:=omit, fail_list:={?});</span><br><span>    f_sleep(5.0);</span><br><span> }</span><br><span>@@ -451,8 +467,8 @@</span><br><span>     var CBSP_IEs pages := {f_gen_page()};</span><br><span>        var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_CGI({ts_BSSMAP_CI_CGI(mp_cgi_bts0.mcc, mp_cgi_bts1.mnc, 22222, 33333)});</span><br><span style="color: hsl(0, 100%, 40%);">-     f_cbsp_init_server();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_write(4, 1004, cell_list, content:=pages,</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cbsp_init_server(4001, 4501);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, content:=pages,</span><br><span>                     success_list:=omit, fail_list:={?});</span><br><span>    f_sleep(5.0);</span><br><span> }</span><br><span>@@ -462,10 +478,10 @@</span><br><span>   var CBSP_IEs pages := {f_gen_page()};</span><br><span>        var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_LAC_CI({bssmap_lac_ci(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-        f_cbsp_init_server();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_write(5, 1005, cell_list, content:=pages,</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cbsp_init_server(5001, 5501);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, content:=pages,</span><br><span>                     success_list:=?, fail_list:=omit);</span><br><span style="color: hsl(0, 100%, 40%);">- IPA_RSL[0].receive(tr_ASP_RSL_UD(f_page2rsl(pages[0], 5, 1005)));</span><br><span style="color: hsl(120, 100%, 40%);">+     IPA_RSL[0].receive(tr_ASP_RSL_UD(f_page2rsl(pages[0], g_cbsp_msg_id, g_cbsp_ser_no)));</span><br><span>       f_sleep(5.0);</span><br><span> }</span><br><span> </span><br><span>@@ -474,10 +490,10 @@</span><br><span>       var CBSP_IEs pages := {f_gen_page()};</span><br><span>        var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_CI({bssmap_ci(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-        f_cbsp_init_server();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_write(6, 1006, cell_list, content:=pages,</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cbsp_init_server(6001, 6501);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, content:=pages,</span><br><span>                     success_list:=?, fail_list:=omit);</span><br><span style="color: hsl(0, 100%, 40%);">- IPA_RSL[0].receive(tr_ASP_RSL_UD(f_page2rsl(pages[0], 6, 1006)));</span><br><span style="color: hsl(120, 100%, 40%);">+     IPA_RSL[0].receive(tr_ASP_RSL_UD(f_page2rsl(pages[0], g_cbsp_msg_id, g_cbsp_ser_no)));</span><br><span>       f_sleep(5.0);</span><br><span> }</span><br><span> </span><br><span>@@ -486,10 +502,10 @@</span><br><span>       var CBSP_IEs pages := {f_gen_page()};</span><br><span>        var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_LAI({bssmap_lai(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-      f_cbsp_init_server();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_write(7, 1007, cell_list, content:=pages,</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cbsp_init_server(7001, 7501);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, content:=pages,</span><br><span>                     success_list:=?, fail_list:=omit);</span><br><span style="color: hsl(0, 100%, 40%);">- IPA_RSL[0].receive(tr_ASP_RSL_UD(f_page2rsl(pages[0], 7, 1007)));</span><br><span style="color: hsl(120, 100%, 40%);">+     IPA_RSL[0].receive(tr_ASP_RSL_UD(f_page2rsl(pages[0], g_cbsp_msg_id, g_cbsp_ser_no)));</span><br><span>       f_sleep(5.0);</span><br><span> }</span><br><span> </span><br><span>@@ -498,10 +514,10 @@</span><br><span>       var CBSP_IEs pages := {f_gen_page()};</span><br><span>        var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_LAC({bssmap_lac(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-      f_cbsp_init_server();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_write(8, 1008, cell_list, content:=pages,</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cbsp_init_server(8001, 8501);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, content:=pages,</span><br><span>                     success_list:=?, fail_list:=omit);</span><br><span style="color: hsl(0, 100%, 40%);">- var template RSL_Message tr := f_page2rsl(pages[0], 8, 1008);</span><br><span style="color: hsl(120, 100%, 40%);">+ var template RSL_Message tr := f_page2rsl(pages[0], g_cbsp_msg_id, g_cbsp_ser_no);</span><br><span>   interleave {</span><br><span>         [] IPA_RSL[0].receive(tr_ASP_RSL_UD(tr));</span><br><span>    [] IPA_RSL[1].receive(tr_ASP_RSL_UD(tr));</span><br><span>@@ -514,11 +530,19 @@</span><br><span>    var CBSP_IEs pages := {f_gen_page()};</span><br><span>        var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_LAC_CI({bssmap_lac_ci(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-        f_cbsp_init_server();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_write(9, 1009, cell_list, num_bcast_req:=10, content:=pages,</span><br><span style="color: hsl(120, 100%, 40%);">+   f_cbsp_init_server(9001, 9501);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, num_bcast_req:=10, content:=pages,</span><br><span>                  success_list:=?, fail_list:=omit);</span><br><span style="color: hsl(0, 100%, 40%);">- f_cbsp_replace(9, 2009, 1009, cell_list, content:=pages,</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* FIXME: expect CBSP message */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* Replace: keep the same msg_id, use a new ser_no */</span><br><span style="color: hsl(120, 100%, 40%);">+ var uint16_t old_ser_no := g_cbsp_ser_no;</span><br><span style="color: hsl(120, 100%, 40%);">+     g_cbsp_ser_no := g_cbsp_ser_no + 1;</span><br><span style="color: hsl(120, 100%, 40%);">+   f_cbsp_replace(g_cbsp_msg_id, g_cbsp_ser_no, old_ser_no, cell_list, content:=pages,</span><br><span>                 success_list:=?, fail_list:=omit);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* FIXME: expect CBSP message */</span><br><span> }</span><br><span> </span><br><span> /* Replace a message that doesn't exist: failure */</span><br><span>@@ -526,8 +550,8 @@</span><br><span>   var CBSP_IEs pages := {f_gen_page()};</span><br><span>        var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_LAC_CI({bssmap_lac_ci(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-        f_cbsp_init_server();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_replace(10, 2010, 1010, cell_list, content:=pages,</span><br><span style="color: hsl(120, 100%, 40%);">+     f_cbsp_init_server(10001, 10501);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_cbsp_replace(10, 10023, 10042, cell_list, content:=pages,</span><br><span>                 success_list:=omit, fail_list:=?);</span><br><span> }</span><br><span> </span><br><span>@@ -537,8 +561,8 @@</span><br><span>     var CBSP_IEs pages := {f_gen_page(), f_gen_page(), f_gen_page()};</span><br><span>    var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_LAC_CI({bssmap_lac_ci(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-        f_cbsp_init_server();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_write(11, 1011, cell_list, rep_period:=1, content:=pages,</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cbsp_init_server(11001, 11501);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, rep_period:=1, content:=pages,</span><br><span>                      success_list:=omit, fail_list:=?);</span><br><span> }</span><br><span> </span><br><span>@@ -547,17 +571,17 @@</span><br><span>     var CBSP_IEs pages := {f_gen_page()};</span><br><span>        var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_LAC_CI({bssmap_lac_ci(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-        f_cbsp_init_server();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_kill(12, 1012, 0, cell_list, success_list:=omit, fail_list:=?);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_cbsp_init_server(12001, 12501);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_cbsp_kill(g_cbsp_msg_id, g_cbsp_ser_no, 0, cell_list, success_list:=omit, fail_list:=?);</span><br><span> }</span><br><span> /* Write a message, then kill it */</span><br><span> testcase TC_cbsp_write_then_kill() runs on cbsp_test_CT {</span><br><span>  var CBSP_IEs pages := {f_gen_page()};</span><br><span>        var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_LAC_CI({bssmap_lac_ci(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-        f_cbsp_init_server();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_write(13, 1013, cell_list, content:=pages, success_list:=?, fail_list:=omit);</span><br><span style="color: hsl(0, 100%, 40%);">-    f_cbsp_kill(13, 1013, 0, cell_list, success_list:=?, fail_list:=omit);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_cbsp_init_server(13001, 13501);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, content:=pages, success_list:=?, fail_list:=omit);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cbsp_kill(g_cbsp_msg_id, g_cbsp_ser_no, 0, cell_list, success_list:=?, fail_list:=omit);</span><br><span> }</span><br><span> </span><br><span> /* Write a message, then reset all messages */</span><br><span>@@ -565,8 +589,8 @@</span><br><span>  var CBSP_IEs pages := {f_gen_page()};</span><br><span>        var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_LAC_CI({bssmap_lac_ci(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-        f_cbsp_init_server();</span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_write(14, 1014, cell_list, content:=pages, success_list:=?, fail_list:=omit);</span><br><span style="color: hsl(120, 100%, 40%);">+  f_cbsp_init_server(14001, 14501);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, content:=pages, success_list:=?, fail_list:=omit);</span><br><span>     f_cbsp_reset_bss(0);</span><br><span> }</span><br><span> </span><br><span>@@ -585,14 +609,14 @@</span><br><span>        var ASP_RSL_Unitdata rx_rsl_ud;</span><br><span> </span><br><span>  cell_list := ts_BSSMAP_CIL_CGI({bssmap_cgi(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-      f_cbsp_init_server();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cbsp_init_server(15001, 15501);</span><br><span> </span><br><span>        /* first establish a dedicated channel */</span><br><span>    var DchanTuple dt := f_est_dchan('23'O, 23, '00010203040506'O);</span><br><span> </span><br><span>  /* then send ETWS PN */</span><br><span style="color: hsl(0, 100%, 40%);">- f_cbsp_write_emerg(15, 1015, cell_list);</span><br><span style="color: hsl(0, 100%, 40%);">-        var template (present) octetstring tr_apdu := f_gen_etws_pn(1015, 15);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_cbsp_write_emerg(g_cbsp_msg_id, g_cbsp_ser_no, cell_list);</span><br><span style="color: hsl(120, 100%, 40%);">+  var template (present) octetstring tr_apdu := f_gen_etws_pn(g_cbsp_msg_id, g_cbsp_ser_no);</span><br><span>   timer T := 5.0;</span><br><span>      T.start;</span><br><span>     alt {</span><br><span>@@ -627,10 +651,10 @@</span><br><span>        var ASP_RSL_Unitdata rx_rsl_ud;</span><br><span> </span><br><span>  cell_list := ts_BSSMAP_CIL_CGI({bssmap_cgi(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-      f_cbsp_init_server();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cbsp_init_server(16001, 16501);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_write_emerg(16, 1016, cell_list);</span><br><span style="color: hsl(0, 100%, 40%);">-        var template (present) octetstring tr_apdu := f_gen_etws_pn(1016, 16);</span><br><span style="color: hsl(120, 100%, 40%);">+        f_cbsp_write_emerg(g_cbsp_msg_id, g_cbsp_ser_no, cell_list);</span><br><span style="color: hsl(120, 100%, 40%);">+  var template (present) octetstring tr_apdu := f_gen_etws_pn(g_cbsp_msg_id, g_cbsp_ser_no);</span><br><span>   timer T := 5.0;</span><br><span>      T.start;</span><br><span>     alt {</span><br><span>@@ -656,12 +680,12 @@</span><br><span>        var ASP_RSL_Unitdata rx_rsl_ud;</span><br><span> </span><br><span>  cell_list := ts_BSSMAP_CIL_CGI({bssmap_cgi(mp_cgi_bts0)});</span><br><span style="color: hsl(0, 100%, 40%);">-      f_cbsp_init_server();</span><br><span style="color: hsl(120, 100%, 40%);">+ f_cbsp_init_server(17001, 17501);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   f_cbsp_write_emerg(16, 1016, cell_list);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cbsp_write_emerg(g_cbsp_msg_id, g_cbsp_ser_no, cell_list);</span><br><span> </span><br><span>     /* first expect the PN to be enabled */</span><br><span style="color: hsl(0, 100%, 40%);">- var template (present) octetstring tr_apdu := f_gen_etws_pn(1016, 16);</span><br><span style="color: hsl(120, 100%, 40%);">+        var template (present) octetstring tr_apdu := f_gen_etws_pn(g_cbsp_msg_id, g_cbsp_ser_no);</span><br><span>   timer T := 5.0;</span><br><span>      T.start;</span><br><span>     alt {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19589">change 19589</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/+/19589"/><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: I43ba196974614d1aea2b6055be2fe82059b38974 </div>
<div style="display:none"> Gerrit-Change-Number: 19589 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </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: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>