pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/38540?usp=email )
Change subject: Convert RAN_Conn_Prim from enum to union ......................................................................
Convert RAN_Conn_Prim from enum to union
This will allow passing parameters in each primitive. This is needed eg. to pass the reason in DISCONNECT.req.
Change-Id: I17994795b51efc7e6700238ddcf45594af653e42 --- M bsc-nat/BSC_MS_ConnectionHandler.ttcn M bsc-nat/MSC_ConnectionHandler.ttcn M bsc/BSC_Tests.ttcn M bsc/BSC_Tests_ASCI.ttcn M bsc/BSC_Tests_LCLS.ttcn M hnbgw/ConnHdlr.ttcn M hnbgw/HNBGW_Tests.ttcn M library/RAN_Emulation.ttcnpp M msc/BSC_ConnectionHandler.ttcn M msc/MSC_Tests.ttcn M msc/MSC_Tests_Iu.ttcn M sgsn/BSSGP_ConnHdlr.ttcn M sgsn/SGSN_Tests_Iu.ttcn 13 files changed, 101 insertions(+), 71 deletions(-)
Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved
diff --git a/bsc-nat/BSC_MS_ConnectionHandler.ttcn b/bsc-nat/BSC_MS_ConnectionHandler.ttcn index 8aea74a..882caf8 100644 --- a/bsc-nat/BSC_MS_ConnectionHandler.ttcn +++ b/bsc-nat/BSC_MS_ConnectionHandler.ttcn @@ -190,16 +190,16 @@ log("Unhandled DTAP ", l3); }
- [g_state == BSC_STATE_WAIT_DISC_IND] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [g_state == BSC_STATE_WAIT_DISC_IND] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(pass); self.stop; }
- [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) { }
/* disconnect in invalid state */ - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(fail); self.stop; } diff --git a/bsc-nat/MSC_ConnectionHandler.ttcn b/bsc-nat/MSC_ConnectionHandler.ttcn index fdf08de..0fe7c23 100644 --- a/bsc-nat/MSC_ConnectionHandler.ttcn +++ b/bsc-nat/MSC_ConnectionHandler.ttcn @@ -181,14 +181,14 @@ }
[g_state == MSC_STATE_WAIT_DLCX_ACK] BSSAP.receive(tr_DLCX_ACK) { - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); setverdict(pass); self.stop; }
/* TODO: CLEAR REQUEST from BSS */
- [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(fail); self.stop; } @@ -199,7 +199,7 @@
/* Guard timer has expired, close connection */ [] T.timeout { - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); setverdict(fail, "Timeout of guard timer"); self.stop; } diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 8dcff83..4d60ea8 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -5964,7 +5964,7 @@ f_rslem_unregister(0, g_chan_nr, PT := RSL1_PROC); } [] BSSAP.receive(tr_BSSMAP_ClearComplete) { - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); } }
@@ -6085,7 +6085,7 @@ [] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)); [] RSL.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)); [] BSSAP.receive(tr_BSSMAP_ClearComplete) { - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); } } setverdict(pass); @@ -6373,7 +6373,7 @@
f_expect_dlcx_conns(); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
setverdict(pass); f_sleep(1.0); @@ -6422,10 +6422,10 @@ enc := g_pars.encr); if (g_pars.inter_bsc_ho_in__ho_req_in_initial_sccp_cr) { BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, ho_req)); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); } else { BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, omit)); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND); BSSAP.send(ho_req); }
@@ -6824,7 +6824,7 @@
BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
/* The RSL Emulation magically accepts the Chan Activ behind the scenes. */
@@ -6867,7 +6867,7 @@
f_expect_dlcx_conns(); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
setverdict(pass); f_sleep(1.0); @@ -6914,7 +6914,7 @@
BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
/* The RSL Emulation magically accepts the Chan Activ behind the scenes. */
@@ -6961,7 +6961,7 @@
f_expect_dlcx_conns(); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
f_sleep(1.0); } @@ -7001,7 +7001,7 @@
BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
/* The RSL Emulation magically accepts the Chan Activ behind the scenes. */
@@ -7051,7 +7051,7 @@
f_expect_dlcx_conns(); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
f_sleep(1.0); } @@ -7093,7 +7093,7 @@
BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, f_gen_handover_req())); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
/* The RSL Emulation magically accepts the Chan Activ behind the scenes. */
@@ -7135,7 +7135,7 @@ }; f_expect_dlcx_conns(); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
f_sleep(1.0); } @@ -8548,7 +8548,7 @@ [] BSSAP.receive(tr_BSSMAP_ClearComplete) { f_logp(BSCVTY, "Got BSSMAP Clear Complete"); /* Also drop the SCCP connection */ - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); } [] rsl_pt.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) { f_logp(BSCVTY, "Got RSL RF Chan Rel, sending Rel Ack"); @@ -8575,7 +8575,7 @@ [] BSSAP.receive(tr_BSSMAP_ClearComplete) { f_logp(BSCVTY, "Got BSSMAP Clear Complete"); /* Also drop the SCCP connection */ - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); } [] rsl_pt.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) { f_logp(BSCVTY, "Got RSL RF Chan Rel, sending Rel Ack"); @@ -8594,7 +8594,7 @@ BSSAP.receive(tr_BSSMAP_ClearComplete); f_logp(BSCVTY, "Got BSSMAP Clear Complete"); /* Also drop the SCCP connection */ - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); }
friend function f_perform_clear_test_ct(DchanTuple dt) @@ -10374,7 +10374,7 @@ var BssmapCause cause := 0; BSSAP.send(ts_BSSMAP_ClearCommand(cause)); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
timer no_more_bssap := 5.0; no_more_bssap.start; @@ -10424,7 +10424,7 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi), ts_CellId_CGI('001'H, '01'H, 1, 0))))); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
var PDU_BSSAP_LE plr; BSSAP_LE.receive(tr_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC, ?, ?)) -> value(plr); @@ -10485,7 +10485,7 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, valueof(ts_BSSMAP_Perform_Location_Request(omit, ts_CellId_CGI('262'H, '42'H, 23, 42))))); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
/* BSC tells MSC about failure */ BSSAP.receive(tr_BSSMAP_Perform_Location_Response( @@ -10597,7 +10597,7 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi), ts_CellId_CGI('001'H, '01'H, 1, 0))))); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
var PDU_BSSAP_LE plr; BSSAP_LE.receive(tr_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC, ?, ?)) -> value(plr); @@ -10664,7 +10664,7 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, valueof(ts_BSSMAP_Perform_Location_Request(ts_BSSMAP_Imsi(g_pars.imsi), ts_CellId_CGI('001'H, '01'H, 1, 0))))); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
var PDU_BSSAP_LE plr; BSSAP_LE.receive(tr_BSSMAP_LE_PerfLocReq(BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC_LOC, ?, ?)) -> value(plr); @@ -11119,7 +11119,7 @@ f_rslem_unregister(0, g_chan_nr); } [] BSSAP.receive(tr_BSSMAP_ClearComplete) { - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); } } f_expect_dlcx_conns(); @@ -11821,7 +11821,7 @@
BSSAP.send(ts_BSSMAP_ClearCommand(0)); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
var MgcpCommand mgcp; var MGCP_RecvFrom mrf; diff --git a/bsc/BSC_Tests_ASCI.ttcn b/bsc/BSC_Tests_ASCI.ttcn index 8c8b66c..eb4a9dc 100644 --- a/bsc/BSC_Tests_ASCI.ttcn +++ b/bsc/BSC_Tests_ASCI.ttcn @@ -118,7 +118,7 @@
/* VGCS/VBS SETUP REQ in SCCP CR (must be the first message) */ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, setup_req)); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
alt { [] BSSAP.receive(tr_BSSMAP_VGCS_VBS_SetupAck) -> value rx_bssap { @@ -129,7 +129,7 @@ } BSSAP.send(ts_BSSMAP_ClearCommand(0)); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); setverdict(pass); return; } @@ -237,7 +237,7 @@ COORD.send(COORD_VGCS_CHANNEL_REL); BSSAP.send(ts_BSSMAP_ClearCommand(0)); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ);
if (g_pars.asci_test.vgcs_assign_ok) { if (not assign_res) { @@ -412,7 +412,7 @@ group_call_ref := bit2oct(encvalue(callref))); /* VGCS/VBS ASS REQ in SCCP CR (must be the first message) */ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_bsc, g_pars.sccp_addr_msc, ass_req)); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND);
alt { [] BSSAP.receive(tr_BSSMAP_VGCS_VBS_AssignmentRes(res_ch_type, res_cell_id)) -> value rx_bssap { @@ -456,7 +456,7 @@ COORD.receive(COORD_VGCS_CHANNEL_REL); BSSAP.send(ts_BSSMAP_ClearCommand(0)); BSSAP.receive(tr_BSSMAP_ClearComplete); - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); return; } [] COORD.receive(COORD_VGCS_CHANNEL_REL) { diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn index 2b9886b..30aef99 100644 --- a/bsc/BSC_Tests_LCLS.ttcn +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -717,7 +717,7 @@ } } [] CONN_A.receive(tr_BSSMAP_ClearComplete) { - CONN_A.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + CONN_A.send(ts_MSC_CONN_PRIM_DISC_REQ); } [] CONN_B.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_possible_ls)); } diff --git a/hnbgw/ConnHdlr.ttcn b/hnbgw/ConnHdlr.ttcn index b304f18..93875bd 100644 --- a/hnbgw/ConnHdlr.ttcn +++ b/hnbgw/ConnHdlr.ttcn @@ -367,7 +367,7 @@ /* expect disconnect on the Iu side */ T.start; alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(pass); } [] T.timeout { diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn index 4606396..6606d3b 100644 --- a/hnbgw/HNBGW_Tests.ttcn +++ b/hnbgw/HNBGW_Tests.ttcn @@ -2294,7 +2294,7 @@
/* We modified the SCCP configuration, expect disconnect of UE that was active on the aborted link. */ RUA.receive(RUA_Disc_Ind:?); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND);
/* Would be nice to test reconnection on the other point-code, too. That would require another cnlink in * osmo-stp.cfg and module parameters... */ diff --git a/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp index c221c72..5a95ba0 100644 --- a/library/RAN_Emulation.ttcnpp +++ b/library/RAN_Emulation.ttcnpp @@ -71,14 +71,44 @@ port RAN_PROC_PT BSSAP_PROC; }
+/* SCCP tell us that connection was released */ +type record MSC_CONN_PRIM_DISC_IND { +}; + +/* we tell SCCP to release connection */ +type record MSC_CONN_PRIM_DISC_REQ { +}; + +/* Connection confirmed indication */ +type record MSC_CONN_PRIM_CONF_IND { +}; + /* Auxiliary primitive that can happen on the port between per-connection client and this dispatcher */ -type enumerated RAN_Conn_Prim { - /* SCCP tell us that connection was released */ - MSC_CONN_PRIM_DISC_IND, - /* we tell SCCP to release connection */ - MSC_CONN_PRIM_DISC_REQ, - /* Connection confirmed indication */ - MSC_CONN_PRIM_CONF_IND +type union RAN_Conn_Prim { + MSC_CONN_PRIM_DISC_IND disc_ind, + MSC_CONN_PRIM_DISC_REQ disc_req, + MSC_CONN_PRIM_CONF_IND conf_ind +} + +template (present) RAN_Conn_Prim tr_MSC_CONN_PRIM_DISC_IND := { + disc_ind := ? +} +template (value) RAN_Conn_Prim ts_MSC_CONN_PRIM_DISC_IND := { + disc_ind := {} +} + +template (present) RAN_Conn_Prim tr_MSC_CONN_PRIM_DISC_REQ := { + disc_req := ? +} +template (value) RAN_Conn_Prim ts_MSC_CONN_PRIM_DISC_REQ := { + disc_req := {} +} + +template (present) RAN_Conn_Prim tr_MSC_CONN_PRIM_CONF_IND := { + conf_ind := ? +} +template (value) RAN_Conn_Prim ts_MSC_CONN_PRIM_CONF_IND := { + conf_ind := {} }
type enumerated RAN_Transport { @@ -889,7 +919,7 @@ f_handle_userData(vc_conn, disc_ind.userData); } /* notify client about termination */ - var RAN_Conn_Prim prim := MSC_CONN_PRIM_DISC_IND; + var RAN_Conn_Prim prim := valueof(ts_MSC_CONN_PRIM_DISC_IND); CLIENT.send(prim) to vc_conn; f_conn_table_del(disc_ind.connectionId); /* TOOD: return confirm to other side? */ @@ -897,7 +927,7 @@ /* SCCP -> Client: connection confirm for outbound connection */ [] BSSAP.receive(BSSAP_N_CONNECT_cfm:?) -> value conn_cfm { vc_conn := f_comp_by_conn_id(conn_cfm.connectionId); - var RAN_Conn_Prim prim := MSC_CONN_PRIM_CONF_IND; + var RAN_Conn_Prim prim := valueof(ts_MSC_CONN_PRIM_CONF_IND); CLIENT.send(prim) to vc_conn; /* handle user payload */ if (ispresent(conn_cfm.userData)) { @@ -915,7 +945,7 @@ }
/* Disconnect request client -> SCCP */ - [] CLIENT.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ) -> sender vc_conn { + [] CLIENT.receive(tr_MSC_CONN_PRIM_DISC_REQ) -> sender vc_conn { var integer conn_id := f_conn_id_by_comp(vc_conn); BSSAP.send(ts_BSSAP_DISC_req(conn_id, 0)); f_conn_table_del(conn_id); @@ -1022,7 +1052,7 @@ f_handle_userData_RANAP(vc_conn, rdisc_ind.userData); } /* notify client about termination */ - var RAN_Conn_Prim prim := MSC_CONN_PRIM_DISC_IND; + var RAN_Conn_Prim prim := valueof(ts_MSC_CONN_PRIM_DISC_IND); CLIENT.send(prim) to vc_conn; f_conn_table_del(rdisc_ind.connectionId); /* TOOD: return confirm to other side? */ @@ -1030,7 +1060,7 @@ /* SCCP -> Client: connection confirm for outbound connection */ [] RANAP.receive(RANAP_N_CONNECT_cfm:?) -> value rconn_cfm { vc_conn := f_comp_by_conn_id(rconn_cfm.connectionId); - var RAN_Conn_Prim prim := MSC_CONN_PRIM_CONF_IND; + var RAN_Conn_Prim prim := valueof(ts_MSC_CONN_PRIM_CONF_IND); CLIENT.send(prim) to vc_conn; /* handle user payload */ if (ispresent(rconn_cfm.userData)) { @@ -1050,7 +1080,7 @@ }
/* Disconnect request client -> SCCP */ - [] CLIENT.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ) -> sender vc_conn { + [] CLIENT.receive(tr_MSC_CONN_PRIM_DISC_REQ) -> sender vc_conn { var integer conn_id := f_conn_id_by_comp(vc_conn); RANAP.send(ts_RANAP_DISC_req(conn_id, 0)); f_conn_table_del(conn_id); @@ -1565,7 +1595,7 @@ [] BSSAP.receive(tr_RANAP_IuReleaseCommand(?)) { BSSAP.send(ts_RANAP_IuReleaseComplete); alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(pass); } [] BSSAP.receive { diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index e436117..b7d1b94 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -307,8 +307,8 @@ BSSAP.send(ts_BSSAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_own, valueof(ts_BSSMAP_ComplL3(g_pars.cell_id, l3_enc)))); alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) {} - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(fail, "DISC.ind from SCCP"); mtc.stop; } @@ -356,8 +356,8 @@ ranap := valueof(ts_RANAP_initialUE_CS(lai, sai, l3_enc, sigc_id, grnc_id)); BSSAP.send(ts_RANAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_own, ranap)); alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) {} - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(fail, "DISC.ind from SCCP"); mtc.stop; } @@ -1445,7 +1445,7 @@ [] MNCC.receive(tr_MNCC_REL_ind(cpars.mncc_callref)); [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(cpars.transaction_id))); [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id))); - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND); + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND); [] BSSAP.receive(tr_BSSMAP_ClearCommand); [] BSSAP.receive(tr_BSSMAP_ClearCommandCSFB); [] BSSAP.receive(tr_RANAP_IuReleaseCommand(?)); @@ -1917,14 +1917,14 @@ [g_pars.ran_is_geran] BSSAP.receive(t_clear) { log("f_call_hangup 5: rx BSSAP Clear Command"); BSSAP.send(ts_BSSMAP_ClearComplete); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND); log("f_call_hangup 6: rx SCCP DISC"); setverdict(pass); } [not g_pars.ran_is_geran] BSSAP.receive(tr_RANAP_IuReleaseCommand(?)) { log("f_call_hangup 5.iu: rx Iu Release Command"); BSSAP.send(ts_RANAP_IuReleaseComplete); - BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND); log("f_call_hangup 6.iu: rx SCCP DISC"); setverdict(pass); } @@ -2036,7 +2036,7 @@ [] BSSAP.receive(tr_BSSMAP_ClearCommand) { BSSAP.send(ts_BSSMAP_ClearComplete); alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(pass); } [] BSSAP.receive { diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 283ced6..b4b3614 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -819,7 +819,7 @@ /* Expect the channel cleared upon T(iar) triggered: */ T_wait_iar.start; alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { T_wait_iar.stop setverdict(pass); } @@ -951,7 +951,7 @@ mtc.stop; repeat; } - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {} } setverdict(pass); } @@ -1043,7 +1043,7 @@
f_sleep(1.0); /* send clear request in the middle of the LU */ - BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + BSSAP.send(ts_MSC_CONN_PRIM_DISC_REQ); setverdict(pass); f_sleep(1.0); } @@ -1512,10 +1512,10 @@ timer T := 5.0; T.start; alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {} /* Expect LU REJECT with Cause == Illegal MS */ [] BSSAP.receive(tr_PDU_DTAP_MT(?)) { repeat; } - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) { repeat; } + [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) { repeat; } [] as_clear_cmd_compl_disc(); [] T.timeout { setverdict(fail, "Timeout waiting for ClearCommand or SCCP Release"); @@ -1551,9 +1551,9 @@ T.start; alt { /* Immediate disconnect */ - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {} [] BSSAP.receive(tr_PDU_DTAP_MT(?)) { repeat; } - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) { repeat; } + [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) { repeat; } [] as_clear_cmd_compl_disc(); [] T.timeout { setverdict(fail, "Timeout waiting for ClearCommand or SCCP Release"); @@ -6843,7 +6843,7 @@ [] BSSAP.receive(tr_BSSMAP_ClearCommand) { BSSAP.send(ts_BSSMAP_ClearComplete); } - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND); + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND); }
f_sleep(1.0); diff --git a/msc/MSC_Tests_Iu.ttcn b/msc/MSC_Tests_Iu.ttcn index 361dd83..229ebb6 100644 --- a/msc/MSC_Tests_Iu.ttcn +++ b/msc/MSC_Tests_Iu.ttcn @@ -141,7 +141,7 @@ mtc.stop; repeat; } - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) {} } setverdict(pass); } diff --git a/sgsn/BSSGP_ConnHdlr.ttcn b/sgsn/BSSGP_ConnHdlr.ttcn index 78a81bc..2a434aa 100644 --- a/sgsn/BSSGP_ConnHdlr.ttcn +++ b/sgsn/BSSGP_ConnHdlr.ttcn @@ -215,8 +215,8 @@ ranap := valueof(ts_RANAP_initialUE_PS(lai, rac, sai, l3_enc, sigc_id, grnc_id)); BSSAP.send(ts_RANAP_Conn_Req(g_pars.sccp_addr_peer, g_pars.sccp_addr_local, ranap)); alt { - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_CONF_IND) {} - [] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) { + [] BSSAP.receive(tr_MSC_CONN_PRIM_CONF_IND) {} + [] BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND) { setverdict(fail, "DISC.ind from SCCP"); mtc.stop; } diff --git a/sgsn/SGSN_Tests_Iu.ttcn b/sgsn/SGSN_Tests_Iu.ttcn index 7a7ee7c..400b717 100644 --- a/sgsn/SGSN_Tests_Iu.ttcn +++ b/sgsn/SGSN_Tests_Iu.ttcn @@ -393,7 +393,7 @@ apars.ggsn_tei_c, GTP_CAUSE_REQUEST_ACCEPTED));
- BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND); + BSSAP.receive(tr_MSC_CONN_PRIM_DISC_IND); g_pars.rnc_send_initial_ue := true; BSSAP.receive(tr_RANAP_Paging(ps_domain, imsi_hex2oct(g_pars.imsi)));