This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Harald Welte gerrit-no-reply at lists.osmocom.orgHarald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/10377 ) Change subject: BSSGP_Emulation.ttcn: extend BSSGP_Client_CT to hold 3 instances of BSSGP ...................................................................... BSSGP_Emulation.ttcn: extend BSSGP_Client_CT to hold 3 instances of BSSGP Change-Id: Ibd7abba826a08b582361e9c255e9c44185e14067 --- M library/BSSGP_Emulation.ttcn M pcu/PCU_Tests.ttcn M sgsn/SGSN_Tests.ttcn 3 files changed, 112 insertions(+), 112 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/BSSGP_Emulation.ttcn b/library/BSSGP_Emulation.ttcn index 8b3b9eb..a9d2a25 100644 --- a/library/BSSGP_Emulation.ttcn +++ b/library/BSSGP_Emulation.ttcn @@ -79,9 +79,9 @@ ***********************************************************************/ type component BSSGP_Client_CT { - port BSSGP_PT BSSGP; - port BSSGP_PT BSSGP_SIG; - port BSSGP_PROC_PT BSSGP_PROC; + port BSSGP_PT BSSGP[3]; + port BSSGP_PT BSSGP_SIG[3]; + port BSSGP_PROC_PT BSSGP_PROC[3]; }; /*********************************************************************** @@ -660,14 +660,14 @@ return dec; } -function f_bssgp_client_register(hexstring imsi, OCT4 tlli, BssgpCellId cell_id, BSSGP_PROC_PT PT := BSSGP_PROC) +function f_bssgp_client_register(hexstring imsi, OCT4 tlli, BssgpCellId cell_id, BSSGP_PROC_PT PT := BSSGP_PROC[0]) runs on BSSGP_Client_CT { PT.call(BSSGP_register_client:{imsi, tlli, cell_id}) { [] PT.getreply(BSSGP_register_client:{imsi, tlli, cell_id}) {}; } } -function f_bssgp_client_unregister(hexstring imsi, BSSGP_PROC_PT PT := BSSGP_PROC) +function f_bssgp_client_unregister(hexstring imsi, BSSGP_PROC_PT PT := BSSGP_PROC[0]) runs on BSSGP_Client_CT { PT.call(BSSGP_unregister_client:{imsi}) { [] PT.getreply(BSSGP_unregister_client:{imsi}) {}; @@ -675,7 +675,7 @@ } /* TS 44.064 7.2.1.1 LLGMM-ASSIGN */ -function f_bssgp_client_llgmm_assign(OCT4 tlli_old, OCT4 tlli_new, BSSGP_PROC_PT PT := BSSGP_PROC) +function f_bssgp_client_llgmm_assign(OCT4 tlli_old, OCT4 tlli_new, BSSGP_PROC_PT PT := BSSGP_PROC[0]) runs on BSSGP_Client_CT { PT.call(BSSGP_llgmm_assign:{tlli_old, tlli_new}) { [] PT.getreply(BSSGP_llgmm_assign:{tlli_old, tlli_new}) {}; diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index d59ac11..a63ca1d 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -68,9 +68,9 @@ ns_component := NS_CT.create; bssgp_component := BSSGP_CT.create; /* connect our BSSGP port to the BSSGP Emulation */ - connect(self:BSSGP, bssgp_component:BSSGP_SP); - connect(self:BSSGP_SIG, bssgp_component:BSSGP_SP_SIG); - connect(self:BSSGP_PROC, bssgp_component:BSSGP_PROC); + connect(self:BSSGP[0], bssgp_component:BSSGP_SP); + connect(self:BSSGP_SIG[0], bssgp_component:BSSGP_SP_SIG); + connect(self:BSSGP_PROC[0], bssgp_component:BSSGP_PROC); /* connect lower-end of BSSGP with BSSGP_CODEC_PORT (maps to NS_PT*/ connect(bssgp_component:BSCP, ns_component:NS_SP); /* connect lower-end of NS emulation to NS_CODEC_PORT (on top of IPl4) */ @@ -186,7 +186,7 @@ log(ts_BSSGP_DL_UD(g_mmctx.tlli, enc_PDU_LLC(llc))); - BSSGP.send(ts_BSSGP_DL_UD(g_mmctx.tlli, enc_PDU_LLC(llc))); + BSSGP[0].send(ts_BSSGP_DL_UD(g_mmctx.tlli, enc_PDU_LLC(llc))); } /* Establish BSSGP connection to PCU */ @@ -196,8 +196,8 @@ f_init(); T.start alt { - [] BSSGP.receive(t_BssgpStsInd(?, ?, BVC_S_UNBLOCKED)) { } - [] BSSGP.receive { repeat; } + [] BSSGP[0].receive(t_BssgpStsInd(?, ?, BVC_S_UNBLOCKED)) { } + [] BSSGP[0].receive { repeat; } [] T.timeout { setverdict(fail, "Timeout establishing BSSGP connection"); mtc.stop; @@ -215,17 +215,17 @@ f_init(); /* Send paging on signalling BVCI 0 since osmo-pcu does not support paging on PTP yet. */ - BSSGP_SIG.send(ts_BSSGP_PS_PAGING_IMSI(0, g_mmctx.imsi)); - BSSGP_SIG.send(ts_BSSGP_PS_PAGING_PTMSI(0, g_mmctx.imsi, tmsi)); + BSSGP_SIG[0].send(ts_BSSGP_PS_PAGING_IMSI(0, g_mmctx.imsi)); + BSSGP_SIG[0].send(ts_BSSGP_PS_PAGING_PTMSI(0, g_mmctx.imsi, tmsi)); while (true) { var BssgpDecoded bd; alt { - [] BSSGP.receive(tr_BD_L3_MT(?)) -> value bd { + [] BSSGP[0].receive(tr_BD_L3_MT(?)) -> value bd { log("BSSGP Rx: ", bd); } - [] BSSGP.receive(t_BssgpStsInd(?, ?, BVC_S_UNBLOCKED)) { repeat; } - [] BSSGP.receive { repeat; } + [] BSSGP[0].receive(t_BssgpStsInd(?, ?, BVC_S_UNBLOCKED)) { repeat; } + [] BSSGP[0].receive { repeat; } } } } @@ -283,7 +283,7 @@ timer T := 5.0; T.start; alt { - [] BSSGP.receive(bd_exp) { + [] BSSGP[0].receive(bd_exp) { log("found matching BSSGP UL-UNITDATA PDU"); } [] T.timeout { @@ -355,14 +355,14 @@ while (true) { var BssgpDecoded bd; alt { - [] BSSGP.receive(tr_BD_BSSGP(?)) -> value bd { + [] BSSGP[0].receive(tr_BD_BSSGP(?)) -> value bd { log("BSSGP Rx: ", bd); //log("GMM Rx: ", dec_PDU_L3_MS_SGSN(pdu.payload)); g_mmctx.tlli := bd.bssgp.pDU_BSSGP_UL_UNITDATA.tLLI; tx_gmm(LLC_CR_DL_CMD, gmm_auth_req); } - [] BSSGP.receive(t_BssgpStsInd(?, ?, BVC_S_UNBLOCKED)) { repeat; } - [] BSSGP.receive { repeat; } + [] BSSGP[0].receive(t_BssgpStsInd(?, ?, BVC_S_UNBLOCKED)) { repeat; } + [] BSSGP[0].receive { repeat; } } } } diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index d2db909..6bf2d60 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -259,8 +259,8 @@ }; vc_conn := BSSGP_ConnHdlr.create(id); - connect(vc_conn:BSSGP, gb.vc_BSSGP:BSSGP_SP); - connect(vc_conn:BSSGP_PROC, gb.vc_BSSGP:BSSGP_PROC); + connect(vc_conn:BSSGP[0], gb.vc_BSSGP:BSSGP_SP); + connect(vc_conn:BSSGP_PROC[0], gb.vc_BSSGP:BSSGP_PROC); connect(vc_conn:GSUP, vc_GSUP:GSUP_CLIENT); connect(vc_conn:GSUP_PROC, vc_GSUP:GSUP_PROC); @@ -321,14 +321,14 @@ altstep as_mm_identity() runs on BSSGP_ConnHdlr { var MobileL3_CommonIE_Types.MobileIdentityLV mi; - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('001'B))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ID_REQ('001'B))) { mi := valueof(ts_MI_IMSI_LV(g_pars.imsi)); - BSSGP.send(ts_GMM_ID_RESP(mi)); + BSSGP[0].send(ts_GMM_ID_RESP(mi)); repeat; } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('010'B))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ID_REQ('010'B))) { mi := valueof(ts_MI_IMEI_LV(g_pars.imei)); - BSSGP.send(ts_GMM_ID_RESP(mi)); + BSSGP[0].send(ts_GMM_ID_RESP(mi)); repeat; } } @@ -374,7 +374,7 @@ var template PDU_L3_SGSN_MS auth_ciph_req := tr_GMM_AUTH_REQ(g_pars.vec.rand); auth_ciph_req.msgs.gprs_mm.authenticationAndCipheringRequest.authenticationParameterAUTN := autn; - BSSGP.receive(tr_BD_L3_MT(auth_ciph_req)) -> value bd; + BSSGP[0].receive(tr_BD_L3_MT(auth_ciph_req)) -> value bd; l3_mt := bd.l3_mt; var BIT4 ac_ref := l3_mt.msgs.gprs_mm.authenticationAndCipheringRequest.acReferenceNumber.valueField; var template PDU_L3_MS_SGSN auth_ciph_resp := ts_GMM_AUTH_RESP_2G(ac_ref, g_pars.vec.sres); @@ -397,7 +397,7 @@ l3_mo.msgs.gprs_mm.authenticationAndCipheringResponse.imeisv := valueof(ts_MI_IMEISV_TLV(g_pars.imei & '0'H)); } - BSSGP.send(l3_mo); + BSSGP[0].send(l3_mo); } else { /* wait for identity procedure */ f_sleep(1.0); @@ -503,16 +503,16 @@ * revisionLevelIndicatior is at the wrong place! */ attach_req.msgs.gprs_mm.attachRequest.msNetworkCapability.msNetworkCapabilityV.solSACapability := '0'B; - BSSGP.send(attach_req); + BSSGP[0].send(attach_req); f_gmm_auth(umts_aka_challenge, force_gsm_sres); /* Expect SGSN to perform LU with HLR */ f_gmm_gsup_lu_isd(); - BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?))) -> value bd { + BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?))) -> value bd { f_process_attach_accept(bd.l3_mt.msgs.gprs_mm.attachAccept); } /* FIXME: Extract P-TMSI, if any. Only send Complete if necessary */ - BSSGP.send(ts_GMM_ATTACH_COMPL); + BSSGP[0].send(ts_GMM_ATTACH_COMPL); } private function f_TC_attach(charstring id) runs on BSSGP_ConnHdlr { @@ -564,16 +564,16 @@ private function f_TC_attach_auth_id_timeout(charstring id) runs on BSSGP_ConnHdlr { var RoutingAreaIdentificationV old_ra := f_random_RAI(); - BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); + BSSGP[0].send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ(?))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ID_REQ(?))) { /* don't send ID Response */ repeat; } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT('09'O))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT('09'O))) { setverdict(pass); } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { setverdict(fail, "Wrong Attach Reject Cause"); mtc.stop; } @@ -590,13 +590,13 @@ private function f_TC_attach_auth_sai_timeout(charstring id) runs on BSSGP_ConnHdlr { var RoutingAreaIdentificationV old_ra := f_random_RAI(); - BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); + BSSGP[0].send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); alt { [] as_mm_identity(); [] GSUP.receive(tr_GSUP_SAI_REQ(g_pars.imsi)); { } } /* don't send SAI-response from HLR */ - BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))); + BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))); setverdict(pass); } testcase TC_attach_auth_sai_timeout() runs on test_CT { @@ -610,14 +610,14 @@ private function f_TC_attach_auth_sai_reject(charstring id) runs on BSSGP_ConnHdlr { var RoutingAreaIdentificationV old_ra := f_random_RAI(); - BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); + BSSGP[0].send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); alt { [] as_mm_identity(); [] GSUP.receive(tr_GSUP_SAI_REQ(g_pars.imsi)); { GSUP.send(ts_GSUP_SAI_ERR(g_pars.imsi, 23)); } } - BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))); + BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))); setverdict(pass); } testcase TC_attach_auth_sai_reject() runs on test_CT { @@ -632,16 +632,16 @@ var BssgpDecoded bd; var RoutingAreaIdentificationV old_ra := f_random_RAI(); - BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); + BSSGP[0].send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); f_gmm_auth(); /* Expect MSC to perform LU with HLR */ GSUP.receive(tr_GSUP_UL_REQ(g_pars.imsi)); /* Never follow-up with ISD_REQ or UL_RES */ alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { setverdict(pass); } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?))) -> value bd { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?))) -> value bd { f_process_attach_accept(bd.l3_mt.msgs.gprs_mm.attachAccept); setverdict(fail); mtc.stop; @@ -661,17 +661,17 @@ var BssgpDecoded bd; var RoutingAreaIdentificationV old_ra := f_random_RAI(); - BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); + BSSGP[0].send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); f_gmm_auth(); /* Expect MSC to perform LU with HLR */ GSUP.receive(tr_GSUP_UL_REQ(g_pars.imsi)) { GSUP.send(ts_GSUP_UL_ERR(g_pars.imsi, 0)); } alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { setverdict(pass); } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?))) -> value bd { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?))) -> value bd { f_process_attach_accept(bd.l3_mt.msgs.gprs_mm.attachAccept); setverdict(fail); mtc.stop; @@ -692,15 +692,15 @@ var BssgpDecoded bd; var RoutingAreaIdentificationV old_ra := f_random_RAI(); - BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, true, false, omit, omit)); + BSSGP[0].send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, true, false, omit, omit)); f_gmm_auth(); /* Expect MSC to perform LU with HLR */ f_gmm_gsup_lu_isd(); - BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?))) -> value bd { + BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?))) -> value bd { f_process_attach_accept(bd.l3_mt.msgs.gprs_mm.attachAccept); } - BSSGP.send(ts_GMM_ATTACH_COMPL); + BSSGP[0].send(ts_GMM_ATTACH_COMPL); setverdict(pass); } testcase TC_attach_combined() runs on test_CT { @@ -718,12 +718,12 @@ g_pars.net.expect_auth := false; - BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); + BSSGP[0].send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); f_gmm_auth(); - BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?))) -> value bd { + BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT('001'B, ?, ?))) -> value bd { f_process_attach_accept(bd.l3_mt.msgs.gprs_mm.attachAccept); } - BSSGP.send(ts_GMM_ATTACH_COMPL); + BSSGP[0].send(ts_GMM_ATTACH_COMPL); setverdict(pass); } testcase TC_attach_accept_all() runs on test_CT { @@ -745,16 +745,16 @@ g_pars.net.expect_auth := false; - BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); + BSSGP[0].send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); alt { [] as_mm_identity(); - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT('07'O))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT('07'O))) { setverdict(pass); } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { setverdict(pass); } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT(*, *, *))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT(*, *, *))) { setverdict(fail); mtc.stop; } @@ -777,13 +777,13 @@ private function f_TC_rau_unknown(charstring id) runs on BSSGP_ConnHdlr { var RoutingAreaIdentificationV old_ra := f_random_RAI(); - BSSGP.send(ts_GMM_RAU_REQ(f_mi_get_lv(), GPRS_UPD_T_RA, old_ra, false, omit, omit)); + BSSGP[0].send(ts_GMM_RAU_REQ(f_mi_get_lv(), GPRS_UPD_T_RA, old_ra, false, omit, omit)); alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_RAU_REJECT('0a'O))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_RAU_REJECT('0a'O))) { setverdict(pass); } /* FIXME: Expect XID RESET? */ - [] BSSGP.receive { repeat; } + [] BSSGP[0].receive { repeat; } } } testcase TC_rau_unknown() runs on test_CT { @@ -801,18 +801,18 @@ f_TC_attach(id); /* then send RAU */ - BSSGP.send(ts_GMM_RAU_REQ(f_mi_get_lv(), GPRS_UPD_T_RA, g_pars.ra, false, omit, omit)); + BSSGP[0].send(ts_GMM_RAU_REQ(f_mi_get_lv(), GPRS_UPD_T_RA, g_pars.ra, false, omit, omit)); alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_RAU_ACCEPT)) -> value bd { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_RAU_ACCEPT)) -> value bd { f_process_rau_accept(bd.l3_mt.msgs.gprs_mm.routingAreaUpdateAccept); - BSSGP.send(ts_GMM_RAU_COMPL); + BSSGP[0].send(ts_GMM_RAU_COMPL); setverdict(pass); } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_RAU_REJECT)) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_RAU_REJECT)) { setverdict(fail, "Unexpected RAU Reject"); mtc.stop; } - [] BSSGP.receive { repeat; } + [] BSSGP[0].receive { repeat; } } } testcase TC_attach_rau() runs on test_CT { @@ -827,7 +827,7 @@ function f_detach_mo(BIT3 detach_type, boolean power_off, boolean expect_purge) runs on BSSGP_ConnHdlr { var BssgpDecoded bd; timer T := 5.0; - BSSGP.send(ts_GMM_DET_REQ_MO(detach_type, power_off)); + BSSGP[0].send(ts_GMM_DET_REQ_MO(detach_type, power_off)); if (expect_purge) { GSUP.receive(tr_GSUP_PURGE_MS_REQ(g_pars.imsi, OSMO_GSUP_CN_DOMAIN_PS)); GSUP.send(ts_GSUP_PURGE_MS_RES(g_pars.imsi)); @@ -838,7 +838,7 @@ setverdict(fail, "Unexpected GSUP PURGE MS for unregistered TLLI"); mtc.stop; } - [power_off] BSSGP.receive(tr_BD_L3_MT(tr_GMM_DET_ACCEPT_MT)) -> value bd { + [power_off] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_DET_ACCEPT_MT)) -> value bd { g_pars.ra := omit; setverdict(fail, "Unexpected ATTACH ACCEPT in no-power-off DETACH"); mtc.stop; @@ -847,12 +847,12 @@ [power_off] T.timeout { setverdict(pass); } - [not power_off] BSSGP.receive(tr_BD_L3_MT(tr_GMM_DET_ACCEPT_MT)) -> value bd { + [not power_off] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_DET_ACCEPT_MT)) -> value bd { g_pars.ra := omit; setverdict(pass); /* TODO: check if any PDP contexts are deactivated on network side? */ } - [] BSSGP.receive { repeat; } + [] BSSGP[0].receive { repeat; } } } @@ -954,7 +954,7 @@ recovery := ts_Recovery(apars.ggsn_restart_ctr); } - BSSGP.send(ts_SM_ACT_PDP_REQ(apars.tid, apars.nsapi, apars.sapi, apars.qos, apars.addr, + BSSGP[0].send(ts_SM_ACT_PDP_REQ(apars.tid, apars.nsapi, apars.sapi, apars.qos, apars.addr, apars.apn, apars.pco)); GTP.receive(tr_GTPC_MsgType(?, createPDPContextRequest, ?)) -> value g_ud { f_process_gtp_ctx_act_req(apars, g_ud.gtpc); @@ -967,18 +967,18 @@ omit, recovery)); } alt { - [exp_rej] BSSGP.receive(tr_BD_L3_MT(tr_SM_ACT_PDP_REJ(apars.tid, apars.exp_rej_cause))) { + [exp_rej] BSSGP[0].receive(tr_BD_L3_MT(tr_SM_ACT_PDP_REJ(apars.tid, apars.exp_rej_cause))) { setverdict(pass); } - [exp_rej] BSSGP.receive(tr_BD_L3_MT(tr_SM_ACT_PDP_ACCEPT)) { + [exp_rej] BSSGP[0].receive(tr_BD_L3_MT(tr_SM_ACT_PDP_ACCEPT)) { setverdict(fail, "Unexpected PDP CTX ACT ACC"); mtc.stop; } - [not exp_rej] BSSGP.receive(tr_BD_L3_MT(tr_SM_ACT_PDP_REJ(apars.tid, ?))) { + [not exp_rej] BSSGP[0].receive(tr_BD_L3_MT(tr_SM_ACT_PDP_REJ(apars.tid, ?))) { setverdict(fail, "Unexpected PDP CTX ACT FAIL"); mtc.stop; } - [not exp_rej] BSSGP.receive(tr_BD_L3_MT(tr_SM_ACT_PDP_ACCEPT(apars.tid, apars.sapi))) { + [not exp_rej] BSSGP[0].receive(tr_BD_L3_MT(tr_SM_ACT_PDP_ACCEPT(apars.tid, apars.sapi))) { setverdict(pass); } [] as_xid(apars); @@ -989,14 +989,14 @@ var boolean exp_rej := ispresent(apars.exp_rej_cause); var Gtp1cUnitdata g_ud; - BSSGP.send(ts_SM_DEACT_PDP_REQ_MO(apars.tid, cause, false, omit)); + BSSGP[0].send(ts_SM_DEACT_PDP_REQ_MO(apars.tid, cause, false, omit)); GTP.receive(tr_GTPC_MsgType(?, deletePDPContextRequest, apars.ggsn_tei_c)) -> value g_ud { var integer seq_nr := oct2int(g_ud.gtpc.opt_part.sequenceNumber); - BSSGP.clear; + BSSGP[0].clear; GTP.send(ts_GTPC_DeletePdpResp(g_ud.peer, seq_nr, apars.sgsn_tei_c, '7F'O)); } alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_SM_DEACT_PDP_ACCEPT_MT(apars.tid))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_SM_DEACT_PDP_ACCEPT_MT(apars.tid))) { setverdict(pass); } [] as_xid(apars); @@ -1008,7 +1008,7 @@ var integer seq_nr := 23; var GtpPeer peer := valueof(ts_GtpPeerC(apars.sgsn_ip_c)); - BSSGP.clear; + BSSGP[0].clear; if (error_ind) { GTP.send(ts_GTPU_ErrorIndication(peer, 0 /* seq */, apars.ggsn_tei_u, apars.ggsn_ip_u)); } else { @@ -1019,8 +1019,8 @@ T.start; alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_SM_DEACT_PDP_REQ_MT(apars.tid, ?, true))) { - BSSGP.send(ts_SM_DEACT_PDP_ACCEPT_MO(apars.tid)); + [] BSSGP[0].receive(tr_BD_L3_MT(tr_SM_DEACT_PDP_REQ_MT(apars.tid, ?, true))) { + BSSGP[0].send(ts_SM_DEACT_PDP_ACCEPT_MO(apars.tid)); } [not error_ind] GTP.receive(tr_GTPC_MsgType(?, deletePDPContextResponse, apars.ggsn_tei_c)) { repeat; @@ -1124,7 +1124,7 @@ } private altstep as_xid(PdpActPars apars) runs on BSSGP_ConnHdlr { - [] BSSGP.receive(tr_BD_LLC(tr_LLC_XID(?, apars.sapi))) { + [] BSSGP[0].receive(tr_BD_LLC(tr_LLC_XID(?, apars.sapi))) { repeat; } } @@ -1169,7 +1169,7 @@ /* Expect PDU via BSSGP/LLC on simulated PCU from SGSN */ alt { [] as_xid(apars); - [] BSSGP.receive(tr_BD_SNDCP(apars.sapi, tr_SN_UD(apars.nsapi, payload))); + [] BSSGP[0].receive(tr_BD_SNDCP(apars.sapi, tr_SN_UD(apars.nsapi, payload))); } } @@ -1178,7 +1178,7 @@ /* Send PDU via SNDCP/LLC/BSSGP/NS via simulated MS/PCU to the SGSN */ var GtpPeer peer := valueof(ts_GtpPeerU(apars.sgsn_ip_u)); var PDU_SN sndcp := valueof(ts_SN_UD(apars.nsapi, payload)); - BSSGP.send(ts_LLC_UI(enc_PDU_SN(sndcp), apars.sapi, '0'B, 0)); + BSSGP[0].send(ts_LLC_UI(enc_PDU_SN(sndcp), apars.sapi, '0'B, 0)); /* Expect PDU via GTP from SGSN on simulated GGSN */ alt { [] GTP.receive(tr_GTPU_GPDU(peer, apars.ggsn_tei_u, payload)); @@ -1203,22 +1203,22 @@ /* PDP Context activation for not-attached subscriber; expect fail */ private function f_TC_pdp_act_unattached(charstring id) runs on BSSGP_ConnHdlr { var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip)); - BSSGP.send(ts_SM_ACT_PDP_REQ(apars.tid, apars.nsapi, apars.sapi, apars.qos, apars.addr, + BSSGP[0].send(ts_SM_ACT_PDP_REQ(apars.tid, apars.nsapi, apars.sapi, apars.qos, apars.addr, apars.apn, apars.pco)); alt { /* We might want toalso actually expect a PDPC CTX ACT REJ? */ - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_DET_REQ_MT(?, ?))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_DET_REQ_MT(?, ?))) { setverdict(pass); } [] GTP.receive(tr_GTPC_MsgType(?, createPDPContextRequest, ?)) { setverdict(fail, "Unexpected GTP PDP CTX ACT"); mtc.stop; } - [] BSSGP.receive(tr_BD_L3_MT(tr_SM_ACT_PDP_ACCEPT(?, ?))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_SM_ACT_PDP_ACCEPT(?, ?))) { setverdict(fail, "Unexpected SM PDP CTX ACT ACK"); mtc.stop; } - [] BSSGP.receive { repeat; } + [] BSSGP[0].receive { repeat; } } } testcase TC_pdp_act_unattached() runs on test_CT { @@ -1350,8 +1350,8 @@ } var OCT1 cause_network_failure := int2oct(38, 1) alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_SM_DEACT_PDP_REQ_MT(apars.tid, cause_network_failure, true))) { - BSSGP.send(ts_SM_DEACT_PDP_ACCEPT_MO(apars.tid)); + [] BSSGP[0].receive(tr_BD_L3_MT(tr_SM_DEACT_PDP_REQ_MT(apars.tid, cause_network_failure, true))) { + BSSGP[0].send(ts_SM_DEACT_PDP_ACCEPT_MO(apars.tid)); setverdict(pass); } [] as_xid(apars); @@ -1419,20 +1419,20 @@ /* then activate PDP context */ f_pdp_ctx_act(apars); - BSSGP.clear; + BSSGP[0].clear; peer := valueof(ts_GtpPeerC(apars.sgsn_ip_c)); GTP.send(ts_GTPC_DeletePDP(peer, seq_nr, apars.sgsn_tei_c, apars.nsapi, '1'B)); for (i := 0; i < 5; i := i+1) { alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_SM_DEACT_PDP_REQ_MT(apars.tid, ?, true))) {} + [] BSSGP[0].receive(tr_BD_L3_MT(tr_SM_DEACT_PDP_REQ_MT(apars.tid, ?, true))) {} [] as_xid(apars); } } GTP.receive(tr_GTPC_MsgType(?, deletePDPContextResponse, apars.ggsn_tei_c)) {} - BSSGP.send(ts_SM_DEACT_PDP_ACCEPT_MO(apars.tid)); + BSSGP[0].send(ts_SM_DEACT_PDP_ACCEPT_MO(apars.tid)); setverdict(pass); } testcase TC_attach_pdp_act_deact_mt_t3395_expire() runs on test_CT { @@ -1455,7 +1455,7 @@ timer T := 5.0; T.start; alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_DET_REQ_MT(*, *, *))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_DET_REQ_MT(*, *, *))) { T.stop; setverdict(fail, "Unexpected GMM Detach Request"); mtc.stop; @@ -1464,7 +1464,7 @@ setverdict(pass); mtc.stop; } - [] BSSGP.receive { + [] BSSGP[0].receive { repeat; } } @@ -1514,8 +1514,8 @@ GSUP.send(ts_GSUP_UL_RES(g_pars.imsi)); /* MS: receive a Detach Request */ - BSSGP.receive(tr_BD_L3_MT(tr_GMM_DET_REQ_MT(c_GMM_DTT_MT_IMSI_DETACH, ?, ?))); - BSSGP.send(ts_GMM_DET_ACCEPT_MO); + BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_DET_REQ_MT(c_GMM_DTT_MT_IMSI_DETACH, ?, ?))); + BSSGP[0].send(ts_GMM_DET_ACCEPT_MO); setverdict(pass); } @@ -1606,18 +1606,18 @@ var integer count_req := 0; var MobileL3_CommonIE_Types.MobileIdentityLV mi; - BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), f_random_RAI(), true, false, omit, omit)); + BSSGP[0].send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), f_random_RAI(), true, false, omit, omit)); alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { /* break */ } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('001'B))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ID_REQ('001'B))) { mi := valueof(ts_MI_IMSI_LV(g_pars.imsi)); - BSSGP.send(ts_GMM_ID_RESP(mi)); + BSSGP[0].send(ts_GMM_ID_RESP(mi)); repeat; } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('010'B))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ID_REQ('010'B))) { /* ignore ID REQ IMEI */ count_req := count_req + 1; repeat; @@ -1654,20 +1654,20 @@ /* set p_tmsi to use it in Attach Req via f_mi_get_lv() */ g_pars.p_tmsi := 'c0000035'O; - BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), f_random_RAI(), true, false, omit, omit)); + BSSGP[0].send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), f_random_RAI(), true, false, omit, omit)); alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { /* break */ } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('001'B))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ID_REQ('001'B))) { /* ignore ID REQ IMSI */ count_req := count_req + 1; repeat; } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('010'B))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ID_REQ('010'B))) { mi := valueof(ts_MI_IMEI_LV(g_pars.imei)); - BSSGP.send(ts_GMM_ID_RESP(mi)); + BSSGP[0].send(ts_GMM_ID_RESP(mi)); repeat; } } @@ -1728,16 +1728,16 @@ /* there is no auth */ g_pars.net.expect_auth := false; - BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); + BSSGP[0].send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); f_gmm_auth(); alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { setverdict(fail, "Received unexpected GMM Attach REJECT"); mtc.stop; } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT(*, *, *))) -> value bd { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT(*, *, *))) -> value bd { f_process_attach_accept(bd.l3_mt.msgs.gprs_mm.attachAccept); - BSSGP.send(ts_GMM_ATTACH_COMPL); + BSSGP[0].send(ts_GMM_ATTACH_COMPL); setverdict(pass); } } @@ -1774,14 +1774,14 @@ private function f_TC_attach_check_complete_resend(charstring id) runs on BSSGP_ConnHdlr { var integer count_req := 0; - BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), f_random_RAI(), true, false, omit, omit)); + BSSGP[0].send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), f_random_RAI(), true, false, omit, omit)); f_gmm_auth(); alt { - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { /* break */ } - [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT(*, *, *))) { + [] BSSGP[0].receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT(*, *, *))) { /* ignore */ count_req := count_req + 1; repeat; -- To view, visit https://gerrit.osmocom.org/10377 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibd7abba826a08b582361e9c255e9c44185e14067 Gerrit-Change-Number: 10377 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus <lynxis at fe80.eu> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180814/205052b8/attachment.htm>