<p>Neels Hofmeyr has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/9856">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bsc: verify MultiRate Config IE in RSL Chan Activ<br><br>The current osmo-bsc refactoring causes an erratic MR Config IE. This patch<br>ensures that the ttcn3-bsc-tests catch this error.<br><br>Add MR Config IE expectations to g_pars, set these in the two tests that expect<br>an MR Config IE in the Chan Activ message:<br>BSC_Tests.TC_assignment_codec_amr_{f,h}<br><br>All other tests now verify that there is *no* MR Config IE in RSL Chan Activ<br>messages -- all other tests request no voice or a non-AMR codec for Chan Activ.<br><br>Change-Id: Ie841feed9d5e478bab1fea2bb86f300e84799013<br>---<br>M bsc/BSC_Tests.ttcn<br>M bsc/MSC_ConnectionHandler.ttcn<br>2 files changed, 36 insertions(+), 0 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/56/9856/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 328fc59..2a8ad5f 100644</span><br><span>--- a/bsc/BSC_Tests.ttcn</span><br><span>+++ b/bsc/BSC_Tests.ttcn</span><br><span>@@ -1841,6 +1841,26 @@</span><br><span>        if (not match(mode_ie, t_mode_ie)) {</span><br><span>                 setverdict(fail, "RSL Channel Mode IE doesn't match expectation");</span><br><span>     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   var RSL_IE_Body mr_conf;</span><br><span style="color: hsl(120, 100%, 40%);">+      if (g_pars.expect_mr_conf_ie != omit) {</span><br><span style="color: hsl(120, 100%, 40%);">+               if (f_rsl_find_ie(rsl, RSL_IE_MR_CONFIG, mr_conf) == false) {</span><br><span style="color: hsl(120, 100%, 40%);">+                 setverdict(fail, "Missing MR CONFIG IE in RSL Chan Activ");</span><br><span style="color: hsl(120, 100%, 40%);">+                 self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+             log("found RSL MR CONFIG IE: ", mr_conf);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+         if (not match(mr_conf, g_pars.expect_mr_conf_ie)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                   setverdict(fail, "RSL MR CONFIG IE does not match expectation. Expected: ",</span><br><span style="color: hsl(120, 100%, 40%);">+                         g_pars.expect_mr_conf_ie);</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+     } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              if (f_rsl_find_ie(rsl, RSL_IE_MR_CONFIG, mr_conf) == true) {</span><br><span style="color: hsl(120, 100%, 40%);">+                  log("found RSL MR CONFIG IE: ", mr_conf);</span><br><span style="color: hsl(120, 100%, 40%);">+                   setverdict(fail, "Found MR CONFIG IE in RSL Chan Activ, expecting omit");</span><br><span style="color: hsl(120, 100%, 40%);">+                   self.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span> }</span><br><span> </span><br><span> testcase TC_assignment_codec_fr() runs on test_CT {</span><br><span>@@ -1882,11 +1902,18 @@</span><br><span> testcase TC_assignment_codec_amr_f() runs on test_CT {</span><br><span>        var TestHdlrParams pars := valueof(t_def_TestHdlrPars);</span><br><span>      var MSC_ConnHdlr vc_conn;</span><br><span style="color: hsl(120, 100%, 40%);">+     var RSL_IE_Body mr_conf := {</span><br><span style="color: hsl(120, 100%, 40%);">+          other := {</span><br><span style="color: hsl(120, 100%, 40%);">+                    len := 2,</span><br><span style="color: hsl(120, 100%, 40%);">+                     payload := '2804'O</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+     };</span><br><span> </span><br><span>       f_init(1, true);</span><br><span>     f_sleep(1.0);</span><br><span> </span><br><span>    pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecAMR_F}));</span><br><span style="color: hsl(120, 100%, 40%);">+      pars.expect_mr_conf_ie := mr_conf;</span><br><span>   vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars);</span><br><span>     vc_conn.done;</span><br><span> }</span><br><span>@@ -1894,11 +1921,18 @@</span><br><span> testcase TC_assignment_codec_amr_h() runs on test_CT {</span><br><span>       var TestHdlrParams pars := valueof(t_def_TestHdlrPars);</span><br><span>      var MSC_ConnHdlr vc_conn;</span><br><span style="color: hsl(120, 100%, 40%);">+     var RSL_IE_Body mr_conf := {</span><br><span style="color: hsl(120, 100%, 40%);">+          other := {</span><br><span style="color: hsl(120, 100%, 40%);">+                    len := 2,</span><br><span style="color: hsl(120, 100%, 40%);">+                     payload := '2804'O</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span style="color: hsl(120, 100%, 40%);">+     };</span><br><span> </span><br><span>       f_init(1, true);</span><br><span>     f_sleep(1.0);</span><br><span> </span><br><span>    pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecAMR_H}));</span><br><span style="color: hsl(120, 100%, 40%);">+      pars.expect_mr_conf_ie := mr_conf;</span><br><span>   vc_conn := f_start_handler(refers(f_TC_assignment_codec), pars);</span><br><span>     vc_conn.done;</span><br><span> }</span><br><span>diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn</span><br><span>index 0f123b6..1261a4d 100644</span><br><span>--- a/bsc/MSC_ConnectionHandler.ttcn</span><br><span>+++ b/bsc/MSC_ConnectionHandler.ttcn</span><br><span>@@ -390,6 +390,7 @@</span><br><span>        RslLinkId       link_id,</span><br><span>     integer         media_nr, /* determins MGCP EP, port numbers */</span><br><span>      BSSMAP_IE_SpeechCodecList ass_codec_list optional,</span><br><span style="color: hsl(120, 100%, 40%);">+    RSL_IE_Body     expect_mr_conf_ie optional, /* typically present for AMR codecs */</span><br><span>   TestHdlrEncrParams encr optional,</span><br><span>    TestHdlrParamsLcls lcls</span><br><span> };</span><br><span>@@ -401,6 +402,7 @@</span><br><span>  link_id := valueof(ts_RslLinkID_DCCH(0)),</span><br><span>    media_nr := 1,</span><br><span>       ass_codec_list := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+       expect_mr_conf_ie := omit,</span><br><span>   encr := omit,</span><br><span>        lcls := {</span><br><span>            gcr := omit,</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9856">change 9856</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/9856"/><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-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ie841feed9d5e478bab1fea2bb86f300e84799013 </div>
<div style="display:none"> Gerrit-Change-Number: 9856 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>