<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21170">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gbproxy: Use BSSGP MGMT port to determine when all BVC are unblocked<br><br>Change-Id: I9c94aa4b4891e8a79bca62f4fd713e4ad50f9424<br>---<br>M gbproxy/GBProxy_Tests.ttcn<br>1 file changed, 65 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/70/21170/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn</span><br><span>index 47a0cd9..9c57b8b 100644</span><br><span>--- a/gbproxy/GBProxy_Tests.ttcn</span><br><span>+++ b/gbproxy/GBProxy_Tests.ttcn</span><br><span>@@ -209,6 +209,9 @@</span><br><span> </span><br><span>  port BSSGP_CT_PROC_PT PROC;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+       port BSSGP_BVC_MGMT_PT SGSN_MGMT;</span><br><span style="color: hsl(120, 100%, 40%);">+     port BSSGP_BVC_MGMT_PT PCU_MGMT;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   port TELNETasp_PT GBPVTY;</span><br><span> </span><br><span>        var boolean g_initialized := false;</span><br><span>@@ -282,6 +285,7 @@</span><br><span>            connect(self:PROC, gb.vc_BSSGP:PROC);</span><br><span>                gb.vc_BSSGP_BVC[i] := f_bssgp_get_bvci_ct(gb.cfg.bvc[i].bvci, PROC);</span><br><span>                 disconnect(self:PROC, gb.vc_BSSGP:PROC);</span><br><span style="color: hsl(120, 100%, 40%);">+              connect(self:PCU_MGMT, gb.vc_BSSGP_BVC[i]:MGMT);</span><br><span>     }</span><br><span> }</span><br><span> </span><br><span>@@ -298,6 +302,7 @@</span><br><span>             connect(self:PROC, gb.vc_BSSGP:PROC);</span><br><span>                gb.vc_BSSGP_BVC[i] := f_bssgp_get_bvci_ct(gb.cfg.bvc[i].bvci, PROC);</span><br><span>                 disconnect(self:PROC, gb.vc_BSSGP:PROC);</span><br><span style="color: hsl(120, 100%, 40%);">+              connect(self:SGSN_MGMT, gb.vc_BSSGP_BVC[i]:MGMT);</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span>@@ -308,7 +313,20 @@</span><br><span>    f_vty_transceive(GBPVTY, "enable");</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+type record of integer ro_integer;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+private function ro_integer_contains(ro_integer r, integer x) return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+  for (var integer j := 0; j < lengthof(r); j := j+1) {</span><br><span style="color: hsl(120, 100%, 40%);">+              if (r[j] == x) {</span><br><span style="color: hsl(120, 100%, 40%);">+                      return 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%);">+     return false;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> function f_init() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     var ro_integer bvci_unblocked := {};</span><br><span style="color: hsl(120, 100%, 40%);">+  var BssgpStatusIndication bsi;</span><br><span>       var integer i;</span><br><span> </span><br><span>   if (g_initialized == true) {</span><br><span>@@ -333,6 +351,53 @@</span><br><span>  for (i := 0; i < lengthof(mp_nsconfig_pcu); i := i+1) {</span><br><span>           f_init_gb_pcu(g_pcu[i], "GbProxy_Test-PCU0", i);</span><br><span>   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* wait until all BVC are unblocked on both sides */</span><br><span style="color: hsl(120, 100%, 40%);">+  timer T := 5.0;</span><br><span style="color: hsl(120, 100%, 40%);">+       T.start;</span><br><span style="color: hsl(120, 100%, 40%);">+      alt {</span><br><span style="color: hsl(120, 100%, 40%);">+ [] SGSN_MGMT.receive(BssgpStatusIndication:{*, ?, BVC_S_UNBLOCKED}) -> value bsi {</span><br><span style="color: hsl(120, 100%, 40%);">+         bvci_unblocked := bvci_unblocked & { bsi.bvci };</span><br><span style="color: hsl(120, 100%, 40%);">+          if (lengthof(bvci_unblocked) != lengthof(g_sgsn[0].cfg.bvc)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                        repeat;</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%);">+     [] SGSN_MGMT.receive(BssgpStatusIndication:{*, ?, ?}) {</span><br><span style="color: hsl(120, 100%, 40%);">+               repeat;</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] SGSN_MGMT.receive {</span><br><span style="color: hsl(120, 100%, 40%);">+                setverdict(fail, "Received unexpected message on SGSN_MGMT");</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 style="color: hsl(120, 100%, 40%);">+   [] PCU_MGMT.receive(BssgpStatusIndication:{*, ?, BVC_S_UNBLOCKED}) -> value bsi {</span><br><span style="color: hsl(120, 100%, 40%);">+          repeat;</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] PCU_MGMT.receive(BssgpStatusIndication:{*, ?, ?}) {</span><br><span style="color: hsl(120, 100%, 40%);">+                repeat;</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] PCU_MGMT.receive(BssgpResetIndication:{0}) {</span><br><span style="color: hsl(120, 100%, 40%);">+               repeat;</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] PCU_MGMT.receive {</span><br><span style="color: hsl(120, 100%, 40%);">+         setverdict(fail, "Received unexpected message on PCU_MGMT");</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 style="color: hsl(120, 100%, 40%);">+   [] T.timeout {</span><br><span style="color: hsl(120, 100%, 40%);">+                setverdict(fail, "Timeout waiting for unblock of all BVCs");</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 style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* iterate over list and check all BVCI */</span><br><span style="color: hsl(120, 100%, 40%);">+    for (i := 0; i < lengthof(g_sgsn[0].cfg.bvc); i := i+1) {</span><br><span style="color: hsl(120, 100%, 40%);">+          var BssgpBvci bvci := g_sgsn[0].cfg.bvc[i].bvci;</span><br><span style="color: hsl(120, 100%, 40%);">+              if (not ro_integer_contains(bvci_unblocked, bvci)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                  setverdict(fail, "BVCI=", bvci, " was not unblocked during start-up");</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> }</span><br><span> </span><br><span> function f_cleanup() runs on test_CT {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21170">change 21170</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/+/21170"/><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: I9c94aa4b4891e8a79bca62f4fd713e4ad50f9424 </div>
<div style="display:none"> Gerrit-Change-Number: 21170 </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>