<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25398">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bsc: properly check TSC and ARFCN in early IA tests<br><br>Tests have shown that the Training Sequence Set was not correct in early<br>IMM ASS messages. Add validation of the TSC and ARFCN in IMM ASS<br>messages for all early IA related tests. This makes the tests fail.<br><br>Related osmo-bsc patch linked below makes the tests pass again.<br><br>Related: SYS#5559<br>Related: I9f26074154600d854a0b3baee2f38a6666f4cb56 (osmo-bsc)<br>Change-Id: I4479244b0c53648e62e84e1ebf986f51d659484f<br>---<br>M bsc/BSC_Tests.ttcn<br>1 file changed, 33 insertions(+), 6 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/98/25398/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn</span><br><span>index 2b90a6e..5d65a66 100644</span><br><span>--- a/bsc/BSC_Tests.ttcn</span><br><span>+++ b/bsc/BSC_Tests.ttcn</span><br><span>@@ -9649,7 +9649,9 @@</span><br><span> }</span><br><span> </span><br><span> private function f_verify_imm_ass(RSL_Message imm_ass, template uint8_t ra := ?, template GsmFrameNumber fn := ?,</span><br><span style="color: hsl(0, 100%, 40%);">-                              template RslChannelNr chan_nr := ?)</span><br><span style="color: hsl(120, 100%, 40%);">+                           template RslChannelNr chan_nr := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                           template (present) uint12_t arfcn := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                               template (present) uint3_t tsc := ?)</span><br><span> {</span><br><span>  var RSL_IE_Body full_imm_ass_info;</span><br><span>   if (not f_rsl_find_ie(imm_ass, RSL_IE_FULL_IMM_ASS_INFO, full_imm_ass_info)) {</span><br><span>@@ -9660,7 +9662,7 @@</span><br><span>       var GsmRrMessage rr_imm_ass := dec_GsmRrMessage(full_imm_ass_info.full_imm_ass_info.payload);</span><br><span>        var template GsmRrMessage expect_imm_ass := tr_IMM_ASS(ra := ra,</span><br><span>                                                            fn := fn,</span><br><span style="color: hsl(0, 100%, 40%);">-                                                               ch_desc := tr_ChanDescH0(chan_nr),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                            ch_desc := tr_ChanDescH0(chan_nr, arfcn, tsc),</span><br><span>                                                               page_mode := ?);</span><br><span>      if (not match(rr_imm_ass, expect_imm_ass)) {</span><br><span>                 log("Error: expected ", expect_imm_ass, " got ", rr_imm_ass);</span><br><span>@@ -9688,12 +9690,19 @@</span><br><span> </span><br><span>      /* First send the Chan Act ACK */</span><br><span>    var RslChannelNr chan_nr := chan_act.ies[0].body.chan_nr;</span><br><span style="color: hsl(120, 100%, 40%);">+     var RSL_IE_Body chan_ident_ie;</span><br><span style="color: hsl(120, 100%, 40%);">+        if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) {</span><br><span style="color: hsl(120, 100%, 40%);">+          setverdict(fail, "RSL Channel Identification IE is absent");</span><br><span style="color: hsl(120, 100%, 40%);">+                mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn + 10));</span><br><span> </span><br><span>      /* Then expect the Immediate Assignment, after we ACKed the chan act */</span><br><span>      imm_ass := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   f_verify_imm_ass(imm_ass, ra, fn, chan_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn,</span><br><span style="color: hsl(120, 100%, 40%);">+                   chan_ident_ie.chan_ident.ch_desc.v.tsc);</span><br><span> </span><br><span>        /* Check that the lchan is working */</span><br><span>        var octetstring l3 := '00010203040506'O;</span><br><span>@@ -9726,10 +9735,16 @@</span><br><span> </span><br><span>       chan_act := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV));</span><br><span>     var RslChannelNr chan_nr := chan_act.ies[0].body.chan_nr;</span><br><span style="color: hsl(120, 100%, 40%);">+     var RSL_IE_Body chan_ident_ie;</span><br><span style="color: hsl(120, 100%, 40%);">+        if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) {</span><br><span style="color: hsl(120, 100%, 40%);">+          setverdict(fail, "RSL Channel Identification IE is absent");</span><br><span style="color: hsl(120, 100%, 40%);">+                mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span> </span><br><span>        /* *FIRST* expect the Immediate Assignment, before we ACK the chan act */</span><br><span>    imm_ass := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0));</span><br><span style="color: hsl(0, 100%, 40%);">-       f_verify_imm_ass(imm_ass, ra, fn, chan_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn,</span><br><span style="color: hsl(120, 100%, 40%);">+                   chan_ident_ie.chan_ident.ch_desc.v.tsc);</span><br><span> </span><br><span>        /* Only now send the Chan Act ACK */</span><br><span>         f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10));</span><br><span>@@ -9792,10 +9807,16 @@</span><br><span>  chan_nr := valueof(t_RslChanNr_SDCCH8(tn := 6, sub_slot := 0));</span><br><span> </span><br><span>  chan_act := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV));</span><br><span style="color: hsl(120, 100%, 40%);">+      var RSL_IE_Body chan_ident_ie;</span><br><span style="color: hsl(120, 100%, 40%);">+        if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) {</span><br><span style="color: hsl(120, 100%, 40%);">+          setverdict(fail, "RSL Channel Identification IE is absent");</span><br><span style="color: hsl(120, 100%, 40%);">+                mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span> </span><br><span>        /* *FIRST* expect the Immediate Assignment, before we ACK the chan act */</span><br><span>    imm_ass := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0));</span><br><span style="color: hsl(0, 100%, 40%);">-       f_verify_imm_ass(imm_ass, ra, fn, chan_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn,</span><br><span style="color: hsl(120, 100%, 40%);">+                   chan_ident_ie.chan_ident.ch_desc.v.tsc);</span><br><span> </span><br><span>        /* Only now send the Chan Act ACK */</span><br><span>         f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10));</span><br><span>@@ -9863,9 +9884,15 @@</span><br><span>   chan_nr := valueof(t_RslChanNr_SDCCH8(tn := 6, sub_slot := 0));</span><br><span> </span><br><span>  chan_act := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV));</span><br><span style="color: hsl(120, 100%, 40%);">+      var RSL_IE_Body chan_ident_ie;</span><br><span style="color: hsl(120, 100%, 40%);">+        if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) {</span><br><span style="color: hsl(120, 100%, 40%);">+          setverdict(fail, "RSL Channel Identification IE is absent");</span><br><span style="color: hsl(120, 100%, 40%);">+                mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span>    f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   f_verify_imm_ass(imm_ass, ra, fn, chan_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn,</span><br><span style="color: hsl(120, 100%, 40%);">+                   chan_ident_ie.chan_ident.ch_desc.v.tsc);</span><br><span> </span><br><span>        /* Check that the lchan is working */</span><br><span>        var octetstring l3 := '00010203040506'O;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25398">change 25398</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/+/25398"/><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: I4479244b0c53648e62e84e1ebf986f51d659484f </div>
<div style="display:none"> Gerrit-Change-Number: 25398 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>