<p>lynxis lazus has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15529">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">sgsn: replace variable gb_idx with ran_index<br><br>Since gb_idx also been used for Iu connection,<br>rename the variable to ran_index.<br>Be consistent and use the same variable name everywhere.<br><br>Change-Id: Ia119feee6a442c76dc337e75c07f4a385cd5e1df<br>---<br>M sgsn/SGSN_Tests.ttcn<br>M sgsn/SGSN_Tests_Iu.ttcn<br>2 files changed, 55 insertions(+), 55 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/29/15529/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn</span><br><span>index 4f91991..5a0dd79 100644</span><br><span>--- a/sgsn/SGSN_Tests.ttcn</span><br><span>+++ b/sgsn/SGSN_Tests.ttcn</span><br><span>@@ -486,11 +486,11 @@</span><br><span>         f_cleanup();</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-friend function is_gb(integer gb_idx) return boolean {</span><br><span style="color: hsl(0, 100%, 40%);">-     return gb_idx < NUM_GB;</span><br><span style="color: hsl(120, 100%, 40%);">+friend function is_gb(integer ran_index) return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+ return ran_index < NUM_GB;</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-friend function is_iu(integer gb_idx) return boolean {</span><br><span style="color: hsl(0, 100%, 40%);">-        return gb_idx >= NUM_GB;</span><br><span style="color: hsl(120, 100%, 40%);">+friend function is_iu(integer ran_index) return boolean {</span><br><span style="color: hsl(120, 100%, 40%);">+        return ran_index >= NUM_GB;</span><br><span> }</span><br><span> </span><br><span> function f_send_llc(template (value) PDU_LLC llc_pdu, integer ran_index := 0) runs on BSSGP_ConnHdlr {</span><br><span>@@ -552,38 +552,38 @@</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-altstep as_mm_identity(integer gb_idx := 0) runs on BSSGP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+altstep as_mm_identity(integer ran_index := 0) runs on BSSGP_ConnHdlr {</span><br><span>      var MobileL3_CommonIE_Types.MobileIdentityLV mi;</span><br><span style="color: hsl(0, 100%, 40%);">-        [is_gb(gb_idx)] BSSGP[gb_idx].receive(tr_GMM_ID_REQ('001'B)) {</span><br><span style="color: hsl(120, 100%, 40%);">+        [is_gb(ran_index)] BSSGP[ran_index].receive(tr_GMM_ID_REQ('001'B)) {</span><br><span>                 mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));</span><br><span style="color: hsl(0, 100%, 40%);">-              f_send_l3(ts_GMM_ID_RESP(mi), gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+                f_send_l3(ts_GMM_ID_RESP(mi), ran_index);</span><br><span>            repeat;</span><br><span>      }</span><br><span style="color: hsl(0, 100%, 40%);">-       [is_iu(gb_idx)] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_ID_REQ('001'B))) {</span><br><span style="color: hsl(120, 100%, 40%);">+     [is_iu(ran_index)] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_ID_REQ('001'B))) {</span><br><span>                 mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));</span><br><span style="color: hsl(0, 100%, 40%);">-              f_send_l3(ts_GMM_ID_RESP(mi), gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+                f_send_l3(ts_GMM_ID_RESP(mi), ran_index);</span><br><span>            repeat;</span><br><span>      }</span><br><span style="color: hsl(0, 100%, 40%);">-       [is_gb(gb_idx)] BSSGP[gb_idx].receive(tr_GMM_ID_REQ('010'B)) {</span><br><span style="color: hsl(120, 100%, 40%);">+        [is_gb(ran_index)] BSSGP[ran_index].receive(tr_GMM_ID_REQ('010'B)) {</span><br><span>                 mi := valueof(ts_MI_IMEI_LV(g_pars.imei));</span><br><span style="color: hsl(0, 100%, 40%);">-              f_send_l3(ts_GMM_ID_RESP(mi), gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+                f_send_l3(ts_GMM_ID_RESP(mi), ran_index);</span><br><span>            repeat;</span><br><span>      }</span><br><span style="color: hsl(0, 100%, 40%);">-       [is_iu(gb_idx)] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_ID_REQ('010'B))) {</span><br><span style="color: hsl(120, 100%, 40%);">+     [is_iu(ran_index)] BSSAP.receive(tr_PDU_DTAP_PS_MT(tr_GMM_ID_REQ('010'B))) {</span><br><span>                 mi := valueof(ts_MI_IMEI_LV(g_pars.imei));</span><br><span style="color: hsl(0, 100%, 40%);">-              f_send_l3(ts_GMM_ID_RESP(mi), gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+                f_send_l3(ts_GMM_ID_RESP(mi), ran_index);</span><br><span>            repeat;</span><br><span>      }</span><br><span> }</span><br><span> </span><br><span> /* receive a L3 (GMM/SM) message over whatever is the appropriate lower-layer bearer */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_receive_l3(template PDU_L3_SGSN_MS rx_tpl := ?, integer gb_idx := 0)</span><br><span style="color: hsl(120, 100%, 40%);">+function f_receive_l3(template PDU_L3_SGSN_MS rx_tpl := ?, integer ran_index := 0)</span><br><span> runs on BSSGP_ConnHdlr return PDU_L3_SGSN_MS {</span><br><span>   var PDU_DTAP_PS_MT mt;</span><br><span>       var PDU_L3_SGSN_MS l3_mt;</span><br><span>    alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   [is_gb(gb_idx)] BSSGP[gb_idx].receive(rx_tpl) -> value l3_mt { }</span><br><span style="color: hsl(0, 100%, 40%);">-     [is_iu(gb_idx)] BSSAP.receive(tr_PDU_DTAP_PS_MT(rx_tpl)) -> value mt {</span><br><span style="color: hsl(120, 100%, 40%);">+     [is_gb(ran_index)] BSSGP[ran_index].receive(rx_tpl) -> value l3_mt { }</span><br><span style="color: hsl(120, 100%, 40%);">+     [is_iu(ran_index)] BSSAP.receive(tr_PDU_DTAP_PS_MT(rx_tpl)) -> value mt {</span><br><span>                 l3_mt := mt.dtap;</span><br><span>            }</span><br><span>    }</span><br><span>@@ -593,10 +593,10 @@</span><br><span> /* perform GMM authentication (if expected).</span><br><span>  * Note, for umts_aka_challenge to work, the revisionLevelIndicatior needs to</span><br><span>  * be 1 to mark R99 capability, in the GMM Attach Request, see f_gmm_attach(). */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_gmm_auth (boolean umts_aka_challenge := false, boolean force_gsm_sres := false, integer gb_idx := 0) runs on BSSGP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+function f_gmm_auth (boolean umts_aka_challenge := false, boolean force_gsm_sres := false, integer ran_index := 0) runs on BSSGP_ConnHdlr {</span><br><span>         var PDU_L3_MS_SGSN l3_mo;</span><br><span>    var PDU_L3_SGSN_MS l3_mt;</span><br><span style="color: hsl(0, 100%, 40%);">-       var default di := activate(as_mm_identity(gb_idx));</span><br><span style="color: hsl(120, 100%, 40%);">+   var default di := activate(as_mm_identity(ran_index));</span><br><span>       if (g_pars.net.expect_auth) {</span><br><span>                var GSUP_IE auth_tuple;</span><br><span>              var template AuthenticationParameterAUTNTLV autn;</span><br><span>@@ -631,7 +631,7 @@</span><br><span> </span><br><span>          var template PDU_L3_SGSN_MS auth_ciph_req := tr_GMM_AUTH_REQ(g_pars.vec.rand);</span><br><span>               auth_ciph_req.msgs.gprs_mm.authenticationAndCipheringRequest.authenticationParameterAUTN := autn;</span><br><span style="color: hsl(0, 100%, 40%);">-               l3_mt := f_receive_l3(auth_ciph_req, gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+         l3_mt := f_receive_l3(auth_ciph_req, ran_index);</span><br><span>             var BIT4 ac_ref := l3_mt.msgs.gprs_mm.authenticationAndCipheringRequest.acReferenceNumber.valueField;</span><br><span>                var template PDU_L3_MS_SGSN auth_ciph_resp := ts_GMM_AUTH_RESP_2G(ac_ref, g_pars.vec.sres);</span><br><span> </span><br><span>@@ -653,10 +653,10 @@</span><br><span>                      l3_mo.msgs.gprs_mm.authenticationAndCipheringResponse.imeisv :=</span><br><span>                                              valueof(ts_MI_IMEISV_TLV(g_pars.imei & '0'H));</span><br><span>           }</span><br><span style="color: hsl(0, 100%, 40%);">-               f_send_l3(l3_mo, gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+             f_send_l3(l3_mo, ran_index);</span><br><span> </span><br><span>             /* Security Mode Command + Complete on Iu case */</span><br><span style="color: hsl(0, 100%, 40%);">-               if (is_iu(gb_idx)) {</span><br><span style="color: hsl(120, 100%, 40%);">+          if (is_iu(ran_index)) {</span><br><span>                      BSSAP.receive(tr_RANAP_SecurityModeCmd(uia_algs := ?, uia_key := oct2bit(g_pars.vec.ik),</span><br><span>                                                             key_sts := ?)) {</span><br><span>                             var IntegrityProtectionAlgorithm uia_chosen := 0; /* 0 = standard_UMTS_integrity_algorithm_UIA1 */</span><br><span>@@ -756,7 +756,7 @@</span><br><span>     GSUP.send(ts_GSUP_UL_RES(g_pars.imsi));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-friend function f_gmm_attach(boolean umts_aka_challenge, boolean force_gsm_sres, integer gb_idx := 0) runs on BSSGP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+friend function f_gmm_attach(boolean umts_aka_challenge, boolean force_gsm_sres, integer ran_index := 0) runs on BSSGP_ConnHdlr {</span><br><span>    var RoutingAreaIdentificationV old_ra := f_random_RAI();</span><br><span>     var template PDU_L3_MS_SGSN attach_req := ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit);</span><br><span>        var PDU_L3_SGSN_MS l3_mt;</span><br><span>@@ -768,19 +768,19 @@</span><br><span>     * revisionLevelIndicatior is at the wrong place! */</span><br><span>         attach_req.msgs.gprs_mm.attachRequest.msNetworkCapability.msNetworkCapabilityV.solSACapability := '0'B;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     f_send_l3(attach_req, gb_idx);</span><br><span style="color: hsl(0, 100%, 40%);">-  f_gmm_auth(umts_aka_challenge, force_gsm_sres, gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_send_l3(attach_req, ran_index);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_gmm_auth(umts_aka_challenge, force_gsm_sres, ran_index);</span><br><span>   /* Expect SGSN to perform LU with HLR */</span><br><span>     f_gmm_gsup_lu_isd();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        l3_mt := f_receive_l3(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?), gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+    l3_mt := f_receive_l3(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?), ran_index);</span><br><span>        f_process_attach_accept(l3_mt.msgs.gprs_mm.attachAccept);</span><br><span> </span><br><span>        /* FIXME: Extract P-TMSI, if any. Only send Complete if necessary */</span><br><span style="color: hsl(0, 100%, 40%);">-    f_send_l3(ts_GMM_ATTACH_COMPL, gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_send_l3(ts_GMM_ATTACH_COMPL, ran_index);</span><br><span> </span><br><span>       /* IuPS case: Expect Iu Release */</span><br><span style="color: hsl(0, 100%, 40%);">-      if (is_iu(gb_idx)) {</span><br><span style="color: hsl(120, 100%, 40%);">+  if (is_iu(ran_index)) {</span><br><span>              as_iu_release_compl_disc();</span><br><span>  }</span><br><span> }</span><br><span>@@ -1227,7 +1227,7 @@</span><br><span>       f_gtp_register_teid(apars.ggsn_tei_u);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_pdp_ctx_act(inout PdpActPars apars, boolean send_recovery := false, integer gb_idx := 0)</span><br><span style="color: hsl(120, 100%, 40%);">+function f_pdp_ctx_act(inout PdpActPars apars, boolean send_recovery := false, integer ran_index := 0)</span><br><span> runs on BSSGP_ConnHdlr {</span><br><span>       var boolean exp_rej := ispresent(apars.exp_rej_cause);</span><br><span>       var Gtp1cUnitdata g_ud;</span><br><span>@@ -1238,7 +1238,7 @@</span><br><span>      }</span><br><span> </span><br><span>        f_send_l3(ts_SM_ACT_PDP_REQ(apars.tid, apars.nsapi, apars.sapi, apars.qos, apars.addr,</span><br><span style="color: hsl(0, 100%, 40%);">-                               apars.apn, apars.pco), gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+                               apars.apn, apars.pco), ran_index);</span><br><span>      GTP.receive(tr_GTPC_MsgType(?, createPDPContextRequest, ?)) -> value g_ud {</span><br><span>               f_process_gtp_ctx_act_req(apars, g_ud.gtpc);</span><br><span>                 var integer seq_nr := oct2int(g_ud.gtpc.opt_part.sequenceNumber);</span><br><span>@@ -1250,54 +1250,54 @@</span><br><span>                                          omit, recovery));</span><br><span>    }</span><br><span>    alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   [exp_rej] BSSGP[gb_idx].receive(tr_SM_ACT_PDP_REJ(apars.tid, apars.exp_rej_cause)) {</span><br><span style="color: hsl(120, 100%, 40%);">+  [exp_rej] BSSGP[ran_index].receive(tr_SM_ACT_PDP_REJ(apars.tid, apars.exp_rej_cause)) {</span><br><span>              setverdict(pass);</span><br><span>            }</span><br><span style="color: hsl(0, 100%, 40%);">-       [exp_rej] BSSGP[gb_idx].receive(tr_SM_ACT_PDP_ACCEPT) {</span><br><span style="color: hsl(120, 100%, 40%);">+       [exp_rej] BSSGP[ran_index].receive(tr_SM_ACT_PDP_ACCEPT) {</span><br><span>           setverdict(fail, "Unexpected PDP CTX ACT ACC");</span><br><span>            mtc.stop;</span><br><span>            }</span><br><span style="color: hsl(0, 100%, 40%);">-       [not exp_rej] BSSGP[gb_idx].receive(tr_SM_ACT_PDP_REJ(apars.tid, ?)) {</span><br><span style="color: hsl(120, 100%, 40%);">+        [not exp_rej] BSSGP[ran_index].receive(tr_SM_ACT_PDP_REJ(apars.tid, ?)) {</span><br><span>            setverdict(fail, "Unexpected PDP CTX ACT FAIL");</span><br><span>           mtc.stop;</span><br><span>            }</span><br><span style="color: hsl(0, 100%, 40%);">-       [not exp_rej] BSSGP[gb_idx].receive(tr_SM_ACT_PDP_REJ(apars.tid, ?)) {</span><br><span style="color: hsl(120, 100%, 40%);">+        [not exp_rej] BSSGP[ran_index].receive(tr_SM_ACT_PDP_REJ(apars.tid, ?)) {</span><br><span>            setverdict(fail, "Unexpected PDP CTX ACT FAIL");</span><br><span>           mtc.stop;</span><br><span>            }</span><br><span style="color: hsl(0, 100%, 40%);">-       [not exp_rej] BSSGP[gb_idx].receive(tr_SM_ACT_PDP_ACCEPT(apars.tid, apars.sapi)) {</span><br><span style="color: hsl(120, 100%, 40%);">+    [not exp_rej] BSSGP[ran_index].receive(tr_SM_ACT_PDP_ACCEPT(apars.tid, apars.sapi)) {</span><br><span>                setverdict(pass);</span><br><span>            }</span><br><span style="color: hsl(0, 100%, 40%);">-       [] as_xid(apars, gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+     [] as_xid(apars, ran_index);</span><br><span>         }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_pdp_ctx_deact_mo(inout PdpActPars apars, OCT1 cause, integer gb_idx := 0)</span><br><span style="color: hsl(120, 100%, 40%);">+function f_pdp_ctx_deact_mo(inout PdpActPars apars, OCT1 cause, integer ran_index := 0)</span><br><span> runs on BSSGP_ConnHdlr {</span><br><span>  var boolean exp_rej := ispresent(apars.exp_rej_cause);</span><br><span>       var Gtp1cUnitdata g_ud;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     f_send_l3(ts_SM_DEACT_PDP_REQ_MO(apars.tid, cause, false, omit), gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+     f_send_l3(ts_SM_DEACT_PDP_REQ_MO(apars.tid, cause, false, omit), ran_index);</span><br><span>         GTP.receive(tr_GTPC_MsgType(?, deletePDPContextRequest, apars.ggsn_tei_c)) -> value g_ud {</span><br><span>                var integer seq_nr := oct2int(g_ud.gtpc.opt_part.sequenceNumber);</span><br><span style="color: hsl(0, 100%, 40%);">-               BSSGP[gb_idx].clear;</span><br><span style="color: hsl(120, 100%, 40%);">+          BSSGP[ran_index].clear;</span><br><span>              GTP.send(ts_GTPC_DeletePdpResp(g_ud.peer, seq_nr, apars.sgsn_tei_c, '7F'O));</span><br><span>         }</span><br><span>    alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   [] BSSGP[gb_idx].receive(tr_SM_DEACT_PDP_ACCEPT_MT(apars.tid)) {</span><br><span style="color: hsl(120, 100%, 40%);">+      [] BSSGP[ran_index].receive(tr_SM_DEACT_PDP_ACCEPT_MT(apars.tid)) {</span><br><span>          setverdict(pass);</span><br><span>            }</span><br><span style="color: hsl(0, 100%, 40%);">-       [] as_xid(apars, gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+     [] as_xid(apars, ran_index);</span><br><span>         }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_pdp_ctx_deact_mt(inout PdpActPars apars, boolean error_ind := false, integer gb_idx := 0)</span><br><span style="color: hsl(120, 100%, 40%);">+function f_pdp_ctx_deact_mt(inout PdpActPars apars, boolean error_ind := false, integer ran_index := 0)</span><br><span> runs on BSSGP_ConnHdlr {</span><br><span>  var Gtp1cUnitdata g_ud;</span><br><span>      var integer seq_nr := 23;</span><br><span>    var GtpPeer peer := valueof(ts_GtpPeerC(apars.sgsn_ip_c));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  BSSGP[gb_idx].clear;</span><br><span style="color: hsl(120, 100%, 40%);">+  BSSGP[ran_index].clear;</span><br><span>      if (error_ind) {</span><br><span>             GTP.send(ts_GTPU_ErrorIndication(peer, 0 /* seq */, apars.ggsn_tei_u, apars.ggsn_ip_u));</span><br><span>     } else {</span><br><span>@@ -1308,8 +1308,8 @@</span><br><span>     T.start;</span><br><span> </span><br><span>         alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   [] BSSGP[gb_idx].receive(tr_SM_DEACT_PDP_REQ_MT(apars.tid, ?, true)) {</span><br><span style="color: hsl(0, 100%, 40%);">-          f_send_l3(ts_SM_DEACT_PDP_ACCEPT_MO(apars.tid), gb_idx);</span><br><span style="color: hsl(120, 100%, 40%);">+      [] BSSGP[ran_index].receive(tr_SM_DEACT_PDP_REQ_MT(apars.tid, ?, true)) {</span><br><span style="color: hsl(120, 100%, 40%);">+             f_send_l3(ts_SM_DEACT_PDP_ACCEPT_MO(apars.tid), ran_index);</span><br><span>          }</span><br><span>    [not error_ind] GTP.receive(tr_GTPC_MsgType(?, deletePDPContextResponse, apars.ggsn_tei_c)) {</span><br><span>                repeat;</span><br><span>@@ -1412,8 +1412,8 @@</span><br><span>      GTP.send(ts_GTP1U_GPDU(peer, 0 /*seq*/, apars.sgsn_tei_u, payload));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-private altstep as_xid(PdpActPars apars, integer gb_idx := 0) runs on BSSGP_ConnHdlr {</span><br><span style="color: hsl(0, 100%, 40%);">-     [] BSSGP[gb_idx].receive(tr_LLC_XID_MT_CMD(?, apars.sapi)) {</span><br><span style="color: hsl(120, 100%, 40%);">+private altstep as_xid(PdpActPars apars, integer ran_index := 0) runs on BSSGP_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+       [] BSSGP[ran_index].receive(tr_LLC_XID_MT_CMD(?, apars.sapi)) {</span><br><span>              repeat;</span><br><span>      }</span><br><span> }</span><br><span>@@ -1452,25 +1452,25 @@</span><br><span> }</span><br><span> </span><br><span> /* Transceive given 'payload' as MT message from GTP -> OsmoSGSN -> Gb */</span><br><span style="color: hsl(0, 100%, 40%);">-private function f_gtpu_xceive_mt(inout PdpActPars apars, octetstring payload, integer gb_idx := 0)</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_gtpu_xceive_mt(inout PdpActPars apars, octetstring payload, integer ran_index := 0)</span><br><span> runs on BSSGP_ConnHdlr {</span><br><span>  /* Send PDU via GTP from our simulated GGSN to the SGSN */</span><br><span>   f_gtpu_send(apars, payload);</span><br><span>         /* Expect PDU via BSSGP/LLC on simulated PCU from SGSN */</span><br><span>    alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   [] as_xid(apars, gb_idx);</span><br><span style="color: hsl(0, 100%, 40%);">-       //[] BSSGP[gb_idx].receive(tr_BD_SNDCP(apars.sapi, tr_SN_UD(apars.nsapi, payload)));</span><br><span style="color: hsl(0, 100%, 40%);">-    [] BSSGP[gb_idx].receive(tr_SN_UD(apars.nsapi, payload));</span><br><span style="color: hsl(120, 100%, 40%);">+     [] as_xid(apars, ran_index);</span><br><span style="color: hsl(120, 100%, 40%);">+  //[] BSSGP[ran_index].receive(tr_BD_SNDCP(apars.sapi, tr_SN_UD(apars.nsapi, payload)));</span><br><span style="color: hsl(120, 100%, 40%);">+       [] BSSGP[ran_index].receive(tr_SN_UD(apars.nsapi, payload));</span><br><span>         }</span><br><span> }</span><br><span> </span><br><span> /* Transceive given 'payload' as MT message from Gb -> OsmoSGSN -> GTP */</span><br><span style="color: hsl(0, 100%, 40%);">-private function f_gtpu_xceive_mo(inout PdpActPars apars, octetstring payload, integer gb_idx := 0)</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_gtpu_xceive_mo(inout PdpActPars apars, octetstring payload, integer ran_index := 0)</span><br><span> runs on BSSGP_ConnHdlr {</span><br><span>         /* Send PDU via SNDCP/LLC/BSSGP/NS via simulated MS/PCU to the SGSN */</span><br><span>       var GtpPeer peer := valueof(ts_GtpPeerU(apars.sgsn_ip_u));</span><br><span>   var PDU_SN sndcp := valueof(ts_SN_UD(apars.nsapi, payload));</span><br><span style="color: hsl(0, 100%, 40%);">-    BSSGP[gb_idx].send(ts_LLC_UI(enc_PDU_SN(sndcp), apars.sapi, '0'B, 0));</span><br><span style="color: hsl(120, 100%, 40%);">+        BSSGP[ran_index].send(ts_LLC_UI(enc_PDU_SN(sndcp), apars.sapi, '0'B, 0));</span><br><span>    /* Expect PDU via GTP from SGSN on simulated GGSN */</span><br><span>         alt {</span><br><span>        [] GTP.receive(tr_GTPU_GPDU(peer, apars.ggsn_tei_u, payload));</span><br><span>diff --git a/sgsn/SGSN_Tests_Iu.ttcn b/sgsn/SGSN_Tests_Iu.ttcn</span><br><span>index 64d829d..472774e 100644</span><br><span>--- a/sgsn/SGSN_Tests_Iu.ttcn</span><br><span>+++ b/sgsn/SGSN_Tests_Iu.ttcn</span><br><span>@@ -15,7 +15,7 @@</span><br><span>  var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip));</span><br><span> </span><br><span>       /* first perform regular attach */</span><br><span style="color: hsl(0, 100%, 40%);">-      f_gmm_attach(umts_aka_challenge := true, force_gsm_sres := false, gb_idx := 3);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_gmm_attach(umts_aka_challenge := true, force_gsm_sres := false, ran_index := 3);</span><br><span>   setverdict(pass);</span><br><span> }</span><br><span> testcase TC_iu_attach() runs on test_CT {</span><br><span>@@ -40,7 +40,7 @@</span><br><span>      var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip));</span><br><span> </span><br><span>       /* first perform regular attach */</span><br><span style="color: hsl(0, 100%, 40%);">-      f_gmm_attach(umts_aka_challenge := true, force_gsm_sres := false, gb_idx := 3);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_gmm_attach(umts_aka_challenge := true, force_gsm_sres := false, ran_index := 3);</span><br><span> </span><br><span>       /* do a routing area update */</span><br><span>       f_routing_area_update(g_pars.ra);</span><br><span>@@ -63,7 +63,7 @@</span><br><span>        var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip));</span><br><span> </span><br><span>       /* first perform regular attach */</span><br><span style="color: hsl(0, 100%, 40%);">-      f_gmm_attach(umts_aka_challenge := true, force_gsm_sres := false, gb_idx := 0);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_gmm_attach(umts_aka_challenge := true, force_gsm_sres := false, ran_index := 0);</span><br><span> </span><br><span>       /* do a routing area update */</span><br><span>       f_routing_area_update(g_pars.ra, bssgp := 3);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15529">change 15529</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/+/15529"/><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: Ia119feee6a442c76dc337e75c07f4a385cd5e1df </div>
<div style="display:none"> Gerrit-Change-Number: 15529 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>