<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20507">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">PCU_Tests_{NS,SNS}: Fix our expectations regarding CellID in BVC-RESET<br><br>The BVC-RESET / BVC-RESEt-ACK follow a set of rules:<br><br>* Signaling BVCI=0 never has a CellId in BVC-RESET nor BVC-RESET-ACK<br>* Any BVC-RESET or BVC-RESET ack in BSS->SGSN direction must have CellID<br>* Any BVC-RESET or BVC-RESET ack in SGSN->BSS direction must NOT have CellID<br><br>Let's adjust our test expectations accordingly.<br><br>This will break tests against "latest", but the amount of work-arounds<br>needed in this code outweighs the benefit.<br><br>Change-Id: Ic8a83f5214c372faa15178dd9b54364e7d2a60cb<br>---<br>M library/RAW_NS.ttcn<br>M pcu/PCU_Tests_NS.ttcn<br>M pcu/PCU_Tests_SNS.ttcn<br>3 files changed, 23 insertions(+), 21 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/07/20507/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/RAW_NS.ttcn b/library/RAW_NS.ttcn</span><br><span>index 2353046..314bf31 100644</span><br><span>--- a/library/RAW_NS.ttcn</span><br><span>+++ b/library/RAW_NS.ttcn</span><br><span>@@ -139,16 +139,17 @@</span><br><span> }</span><br><span> </span><br><span> /* Transmit BSSGP RESET for given BVCI and expect ACK */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_tx_bvc_reset_rx_ack(BssgpBvci bvci, BssgpCellId cell_id, integer idx := 0, boolean exp_ack := true)</span><br><span style="color: hsl(120, 100%, 40%);">+function f_tx_bvc_reset_rx_ack(BssgpBvci bvci, template (omit) BssgpCellId tx_cell_id, template BssgpCellId rx_cell_id,</span><br><span style="color: hsl(120, 100%, 40%);">+                               integer idx := 0, boolean exp_ack := true)</span><br><span> runs on RAW_NS_CT {</span><br><span>     var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET(BSSGP_CAUSE_NET_SV_CAP_MOD_GT_ZERO_KBPS, bvci,</span><br><span style="color: hsl(0, 100%, 40%);">-                                                  cell_id));</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    tx_cell_id));</span><br><span>         timer T := 5.0;</span><br><span>      NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx))));</span><br><span>        T.start;</span><br><span>     alt {</span><br><span>        [exp_ack] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0,</span><br><span style="color: hsl(0, 100%, 40%);">-                                           decmatch tr_BVC_RESET_ACK(bvci, ?)))) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                               decmatch tr_BVC_RESET_ACK(bvci, rx_cell_id)))) {</span><br><span>           setverdict(pass);</span><br><span>            }</span><br><span>    [exp_ack] T.timeout {</span><br><span>@@ -162,13 +163,14 @@</span><br><span> }</span><br><span> </span><br><span> /* Receive a BSSGP RESET for given BVCI and ACK it */</span><br><span style="color: hsl(0, 100%, 40%);">-altstep as_rx_bvc_reset_tx_ack(BssgpBvci bvci, template (omit) BssgpCellId cell_id, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+altstep as_rx_bvc_reset_tx_ack(BssgpBvci bvci, template BssgpCellId rx_cell_id, template (omit) BssgpCellId tx_cell_id,</span><br><span style="color: hsl(120, 100%, 40%);">+                           boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT {</span><br><span>      var NS_Recv>From ns_rf;</span><br><span>   [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0,</span><br><span style="color: hsl(0, 100%, 40%);">-                                                  decmatch tr_BVC_RESET(?, bvci, cell_id))))</span><br><span style="color: hsl(120, 100%, 40%);">+                                            decmatch tr_BVC_RESET(?, bvci, rx_cell_id))))</span><br><span>                                                              -> value ns_rf {</span><br><span>          var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU);</span><br><span style="color: hsl(0, 100%, 40%);">-              var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET_ACK(bvci, cell_id));</span><br><span style="color: hsl(120, 100%, 40%);">+           var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET_ACK(bvci, tx_cell_id));</span><br><span>               NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx))));</span><br><span>                if (not oneshot) { repeat; }</span><br><span>                 }</span><br><span>diff --git a/pcu/PCU_Tests_NS.ttcn b/pcu/PCU_Tests_NS.ttcn</span><br><span>index 5ab5f8d..4db78d8 100644</span><br><span>--- a/pcu/PCU_Tests_NS.ttcn</span><br><span>+++ b/pcu/PCU_Tests_NS.ttcn</span><br><span>@@ -194,11 +194,11 @@</span><br><span> </span><br><span>       /* Expect BVC-RESET for signaling (0) and ptp BVCI */</span><br><span>        if (mp_tolerate_bvc_reset_cellid) {</span><br><span style="color: hsl(0, 100%, 40%);">-             as_rx_bvc_reset_tx_ack(0, mp_gb_cfg.bvc[0].cell_id, oneshot := true);</span><br><span style="color: hsl(120, 100%, 40%);">+         as_rx_bvc_reset_tx_ack(0, mp_gb_cfg.bvc[0].cell_id, omit, oneshot := true);</span><br><span>  } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                as_rx_bvc_reset_tx_ack(0, omit, oneshot := true);</span><br><span style="color: hsl(120, 100%, 40%);">+             as_rx_bvc_reset_tx_ack(0, omit, omit, oneshot := true);</span><br><span>      }</span><br><span style="color: hsl(0, 100%, 40%);">-       as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id, oneshot := true);</span><br><span style="color: hsl(120, 100%, 40%);">+     as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id, omit, oneshot := true);</span><br><span>      as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvc[0].bvci, oneshot := true);</span><br><span> </span><br><span>        /* wait for one FLOW-CONTROL BVC and then ACK any further in the future */</span><br><span>diff --git a/pcu/PCU_Tests_SNS.ttcn b/pcu/PCU_Tests_SNS.ttcn</span><br><span>index dc4cd82..471c758 100644</span><br><span>--- a/pcu/PCU_Tests_SNS.ttcn</span><br><span>+++ b/pcu/PCU_Tests_SNS.ttcn</span><br><span>@@ -187,8 +187,8 @@</span><br><span>        f_outgoing_ns_alive();</span><br><span> </span><br><span>   /* Expect BVC-RESET for signaling (0) and ptp BVCI */</span><br><span style="color: hsl(0, 100%, 40%);">-   as_rx_bvc_reset_tx_ack(0, mp_gb_cfg.bvc[0].cell_id, oneshot := true);</span><br><span style="color: hsl(0, 100%, 40%);">-   as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id, oneshot := true);</span><br><span style="color: hsl(120, 100%, 40%);">+     as_rx_bvc_reset_tx_ack(0, omit, omit, oneshot := true);</span><br><span style="color: hsl(120, 100%, 40%);">+       as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id, omit, oneshot := true);</span><br><span>      as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvc[0].bvci, oneshot := true);</span><br><span> </span><br><span>        /* wait for one FLOW-CONTROL BVC and then ACK any further in the future */</span><br><span>@@ -220,12 +220,12 @@</span><br><span>   f_outgoing_ns_alive(1);</span><br><span> </span><br><span>  if (sgsn_originated_reset) {</span><br><span style="color: hsl(0, 100%, 40%);">-            f_tx_bvc_reset_rx_ack(0, mp_gb_cfg.bvc[0].cell_id);</span><br><span style="color: hsl(0, 100%, 40%);">-             f_tx_bvc_reset_rx_ack(mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id);</span><br><span style="color: hsl(120, 100%, 40%);">+               f_tx_bvc_reset_rx_ack(0, omit, omit);</span><br><span style="color: hsl(120, 100%, 40%);">+         f_tx_bvc_reset_rx_ack(mp_gb_cfg.bvc[0].bvci, omit, mp_gb_cfg.bvc[0].cell_id);</span><br><span>        } else {</span><br><span>             /* Expect BVC-RESET for signaling (0) and ptp BVCI */</span><br><span style="color: hsl(0, 100%, 40%);">-           as_rx_bvc_reset_tx_ack(0, mp_gb_cfg.bvc[0].cell_id, oneshot := true);</span><br><span style="color: hsl(0, 100%, 40%);">-           as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id, oneshot := true);</span><br><span style="color: hsl(120, 100%, 40%);">+             as_rx_bvc_reset_tx_ack(0, omit, omit, oneshot := true);</span><br><span style="color: hsl(120, 100%, 40%);">+               as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id, omit, oneshot := true);</span><br><span>      }</span><br><span>    /* Expect UNBLOCK for ptp BVCI on signaling NS-VC (idx==0) */</span><br><span>        as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvc[0].bvci, oneshot := true);</span><br><span>@@ -270,12 +270,12 @@</span><br><span>    f_outgoing_ns_alive_no_ack(idx := 0);</span><br><span> </span><br><span>    if (sgsn_originated_reset) {</span><br><span style="color: hsl(0, 100%, 40%);">-            f_tx_bvc_reset_rx_ack(0, mp_gb_cfg.bvc[0].cell_id, idx := 1);</span><br><span style="color: hsl(0, 100%, 40%);">-           f_tx_bvc_reset_rx_ack(mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id, idx := 1);</span><br><span style="color: hsl(120, 100%, 40%);">+             f_tx_bvc_reset_rx_ack(0, omit, omit, idx := 1);</span><br><span style="color: hsl(120, 100%, 40%);">+               f_tx_bvc_reset_rx_ack(mp_gb_cfg.bvc[0].bvci, omit, mp_gb_cfg.bvc[0].cell_id, idx := 1);</span><br><span>      } else {</span><br><span>             /* Expect BVC-RESET for signaling BVCI=0 and ptp BVCI */</span><br><span style="color: hsl(0, 100%, 40%);">-                as_rx_bvc_reset_tx_ack(0, mp_gb_cfg.bvc[0].cell_id, oneshot := true, idx := 1);</span><br><span style="color: hsl(0, 100%, 40%);">-         as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id, oneshot := true, idx := 1);</span><br><span style="color: hsl(120, 100%, 40%);">+           as_rx_bvc_reset_tx_ack(0, omit, omit, oneshot := true, idx := 1);</span><br><span style="color: hsl(120, 100%, 40%);">+             as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id, omit, oneshot := true, idx := 1);</span><br><span>    }</span><br><span>    /* Expect UNBLOCK for ptp BVCI on signaling NS-VC (idx==1) */</span><br><span>        as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvc[0].bvci, oneshot := true, idx := 1);</span><br><span>@@ -322,8 +322,8 @@</span><br><span>    f_outgoing_ns_alive_no_ack(idx := 0);</span><br><span> </span><br><span>    /* Transmit BVC-RESET and expect no ACK*/</span><br><span style="color: hsl(0, 100%, 40%);">-       f_tx_bvc_reset_rx_ack(0, mp_gb_cfg.bvc[0].cell_id, idx := 1, exp_ack := false);</span><br><span style="color: hsl(0, 100%, 40%);">- f_tx_bvc_reset_rx_ack(mp_gb_cfg.bvc[0].bvci, mp_gb_cfg.bvc[0].cell_id, idx := 1, exp_ack := false);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_tx_bvc_reset_rx_ack(0, omit, omit, idx := 1, exp_ack := false);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_tx_bvc_reset_rx_ack(mp_gb_cfg.bvc[0].bvci, omit, mp_gb_cfg.bvc[0].cell_id, idx := 1, exp_ack := false);</span><br><span> }</span><br><span> </span><br><span> /* Test adding new IP endpoints at runtime */</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20507">change 20507</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/+/20507"/><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: Ic8a83f5214c372faa15178dd9b54364e7d2a60cb </div>
<div style="display:none"> Gerrit-Change-Number: 20507 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>