<p>Harald Welte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14348">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bts: Factor out mobile-originated LAPDm establishment<br><br>which avoids us to have to copy+pate this between several test cases.<br><br>Change-Id: I8da753bb3d809ec09f9380bb4bac666ceaf61f00<br>---<br>M bts/BTS_Tests_LAPDm.ttcn<br>1 file changed, 29 insertions(+), 24 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/48/14348/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bts/BTS_Tests_LAPDm.ttcn b/bts/BTS_Tests_LAPDm.ttcn</span><br><span>index b98ef80..6ba0968 100644</span><br><span>--- a/bts/BTS_Tests_LAPDm.ttcn</span><br><span>+++ b/bts/BTS_Tests_LAPDm.ttcn</span><br><span>@@ -292,6 +292,31 @@</span><br><span>       f_lapdm_exit();</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Mobile-Originated LAPDm establishment on given Link ID */</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_establish_mo(RslLinkId link_id) runs on ConnHdlr</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+        var integer sapi := link_id.sapi;</span><br><span style="color: hsl(120, 100%, 40%);">+     var boolean is_sacch := false;</span><br><span style="color: hsl(120, 100%, 40%);">+        if (link_id.c == SACCH) {</span><br><span style="color: hsl(120, 100%, 40%);">+             is_sacch := true;</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%);">+   var octetstring l3_mo := f_rnd_octstring(5);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        /* MO Establish Request via LADPm: SAPI = 0, C = 0, P = 1, M = 0, 0 ≤ L ≤ N201.. */</span><br><span style="color: hsl(120, 100%, 40%);">+       if (is_sacch) {</span><br><span style="color: hsl(120, 100%, 40%);">+               /* no payload permitted, as this is not contention resolution */</span><br><span style="color: hsl(120, 100%, 40%);">+              l3_mo := ''O;</span><br><span style="color: hsl(120, 100%, 40%);">+         LAPDM.send(t_PH_DATA(0, is_sacch, ts_LAPDm_SABM(sapi, c_r:=cr_MO_CMD, p:=true, l3:=l3_mo)));</span><br><span style="color: hsl(120, 100%, 40%);">+          RSL.receive(tr_RSL_EST_IND_NOL3(g_chan_nr, link_id));</span><br><span style="color: hsl(120, 100%, 40%);">+ } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              LAPDM.send(t_PH_DATA(0, is_sacch, ts_LAPDm_SABM(sapi, c_r:=cr_MO_CMD, p:=true, l3:=l3_mo)));</span><br><span style="color: hsl(120, 100%, 40%);">+          RSL.receive(tr_RSL_EST_IND(g_chan_nr, link_id, l3_mo));</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     /* UA: SAPI = 0, R = 0, F = 1, M = 0, L = L of SABM. */</span><br><span style="color: hsl(120, 100%, 40%);">+       LAPDM.receive(t_PH_DATA(0, is_sacch, tr_LAPDm_UA(sapi, cr_MT_RSP, f:=true, l3:=l3_mo)));</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Verify that the BTS is re-transmitting SABM messages after T200 timeout, inspired</span><br><span>    by 3GPP TS 51.010-1 25.2.1.1.2.1 + 25.2.1.2.4 */</span><br><span> private function f_TC_sabm_retransmit_bts(charstring id) runs on ConnHdlr {</span><br><span>@@ -549,11 +574,7 @@</span><br><span>   RSL.clear;</span><br><span>   LAPDM.clear;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        /* MO Establish Request via LADPm: SAPI = 0, C = 0, P = 1, M = 0, 0 ≤ L ≤ N201.. */</span><br><span style="color: hsl(0, 100%, 40%);">- LAPDM.send(t_PH_DATA(0, false, ts_LAPDm_SABM(sapi, c_r:=cr_MO_CMD, p:=true, l3:=l3)));</span><br><span style="color: hsl(0, 100%, 40%);">-  RSL.receive(tr_RSL_EST_IND(g_chan_nr, link_id, l3));</span><br><span style="color: hsl(0, 100%, 40%);">-    /* UA: SAPI = 0, R = 0, F = 1, M = 0, L = L of SABM. */</span><br><span style="color: hsl(0, 100%, 40%);">- LAPDM.receive(t_PH_DATA(0, false, tr_LAPDm_UA(sapi, cr_MT_RSP, f:=true, l3:=l3)));</span><br><span style="color: hsl(120, 100%, 40%);">+    f_establish_mo(link_id);</span><br><span> </span><br><span>         var integer last_ns_rx := 0;</span><br><span> </span><br><span>@@ -806,22 +827,9 @@</span><br><span>      RSL.clear;</span><br><span>   LAPDM.clear;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        var octetstring l3_mo := f_rnd_octstring(5);</span><br><span style="color: hsl(120, 100%, 40%);">+  f_establish_mo(link_id);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    /* MO Establish Request via LADPm: SAPI = 0, C = 0, P = 1, M = 0, 0 ≤ L ≤ N201.. */</span><br><span style="color: hsl(0, 100%, 40%);">- if (is_sacch) {</span><br><span style="color: hsl(0, 100%, 40%);">-         /* no payload permitted, as this is not contention resolution */</span><br><span style="color: hsl(0, 100%, 40%);">-                l3_mo := ''O;</span><br><span style="color: hsl(0, 100%, 40%);">-           LAPDM.send(t_PH_DATA(0, is_sacch, ts_LAPDm_SABM(sapi, c_r:=cr_MO_CMD, p:=true, l3:=l3_mo)));</span><br><span style="color: hsl(0, 100%, 40%);">-            RSL.receive(tr_RSL_EST_IND_NOL3(g_chan_nr, link_id));</span><br><span style="color: hsl(0, 100%, 40%);">-   } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                LAPDM.send(t_PH_DATA(0, is_sacch, ts_LAPDm_SABM(sapi, c_r:=cr_MO_CMD, p:=true, l3:=l3_mo)));</span><br><span style="color: hsl(0, 100%, 40%);">-            RSL.receive(tr_RSL_EST_IND(g_chan_nr, link_id, l3_mo));</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-       /* UA: SAPI = 0, R = 0, F = 1, M = 0, L = L of SABM. */</span><br><span style="color: hsl(0, 100%, 40%);">- LAPDM.receive(t_PH_DATA(0, is_sacch, tr_LAPDm_UA(sapi, cr_MT_RSP, f:=true, l3:=l3_mo)));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        l3_mo := f_rnd_octstring(c_TS0406_MAX_L3_OCTETS);</span><br><span style="color: hsl(120, 100%, 40%);">+     var octetstring l3_mo := f_rnd_octstring(c_TS0406_MAX_L3_OCTETS);</span><br><span> </span><br><span>        deactivate(d);</span><br><span> </span><br><span>@@ -884,10 +892,7 @@</span><br><span>    RSL.clear;</span><br><span>   LAPDM.clear;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        var octetstring l3_mo := f_rnd_octstring(20);</span><br><span style="color: hsl(0, 100%, 40%);">-   LAPDM.send(t_PH_DATA(0, is_sacch, ts_LAPDm_SABM(sapi, c_r:=cr_MO_CMD, p:=true, l3:=l3_mo)));</span><br><span style="color: hsl(0, 100%, 40%);">-    RSL.receive(tr_RSL_EST_IND(g_chan_nr, link_id, l3_mo));</span><br><span style="color: hsl(0, 100%, 40%);">- LAPDM.receive(t_PH_DATA(0, is_sacch, tr_LAPDm_UA(sapi, cr_MT_RSP, f:=true, l3:=l3_mo)));</span><br><span style="color: hsl(120, 100%, 40%);">+      f_establish_mo(link_id);</span><br><span> </span><br><span>         var octetstring l3_mt := f_rnd_octstring(20);</span><br><span>        RSL.send(ts_RSL_DATA_REQ(g_chan_nr, link_id, l3_mt));</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14348">change 14348</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/+/14348"/><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: I8da753bb3d809ec09f9380bb4bac666ceaf61f00 </div>
<div style="display:none"> Gerrit-Change-Number: 14348 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>