BSC_Test_ASCI: Add Talker detect with link fail test
The talker requests uplink. Instead of receiving link establishment from the BTS, the BSC receives a link failure. The MSC expects to receive an UPLINK RELEASE INDICATION, caused by radio link failure. Change-Id: Ied56a6bdc0bfa541b1419e63e9e209ed20af804c
This commit is contained in:
parent
92c2dca4ed
commit
cfdbb3ef65
|
@ -92,6 +92,7 @@ private function f_tc_vgcs_vbs_setup(charstring id) runs on MSC_ConnHdlr {
|
|||
var boolean uplink_req := false;
|
||||
var boolean uplink_req_conf := false;
|
||||
var boolean uplink_rel_ind := false;
|
||||
var boolean uplink_rel_ind_failure := false;
|
||||
var boolean assign_res := false;
|
||||
var boolean assign_fail := false;
|
||||
/* Note: This timer is used to receive messages after the expected event.
|
||||
|
@ -150,6 +151,14 @@ private function f_tc_vgcs_vbs_setup(charstring id) runs on MSC_ConnHdlr {
|
|||
}
|
||||
repeat;
|
||||
}
|
||||
[] BSSAP.receive(tr_BSSMAP_UplinkRelInd(GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, omit)) -> value rx_bssap {
|
||||
log("VGCS: received uplink rel ind, caused by failure");
|
||||
uplink_rel_ind_failure := true;
|
||||
if (g_pars.asci_test.vgcs_talker_fail) {
|
||||
T.start;
|
||||
}
|
||||
repeat;
|
||||
}
|
||||
[] COORD.receive(COORD_VGCS_ASSIGN_RES) {
|
||||
log("VGCS: got assignment result at call control");
|
||||
assign_res := true;
|
||||
|
@ -236,6 +245,19 @@ private function f_tc_vgcs_vbs_setup(charstring id) runs on MSC_ConnHdlr {
|
|||
setverdict(pass);
|
||||
return;
|
||||
}
|
||||
if (g_pars.asci_test.vgcs_talker_fail) {
|
||||
if (not uplink_rel_ind_failure) {
|
||||
setverdict(fail, "VGCS: No uplink release indication as expected!");
|
||||
return;
|
||||
}
|
||||
if (not uplink_free) {
|
||||
setverdict(fail, "VGCS: Uplink not free as expected!");
|
||||
return;
|
||||
}
|
||||
log("VGCS: Uplink release and uplink marked free as expected!");
|
||||
setverdict(pass);
|
||||
return;
|
||||
}
|
||||
if (g_pars.asci_test.vgcs_talker_est) {
|
||||
if (not uplink_req_conf) {
|
||||
setverdict(fail, "VGCS: No uplink request confirm as expected!");
|
||||
|
@ -343,11 +365,16 @@ private function f_tc_asci_assignment(charstring id) runs on MSC_ConnHdlr {
|
|||
log("VGCS: got assignment result on channel");
|
||||
COORD.send(COORD_VGCS_ASSIGN_RES);
|
||||
if (g_pars.asci_test.vgcs_talker_req or
|
||||
g_pars.asci_test.vgcs_talker_fail or
|
||||
g_pars.asci_test.vgcs_talker_est or
|
||||
g_pars.asci_test.vgcs_talker_rel) {
|
||||
log("VGCS: sending talker det");
|
||||
RSL.send(ts_RSL_TALKER_DET(g_chan_nr));
|
||||
}
|
||||
if (g_pars.asci_test.vgcs_talker_fail) {
|
||||
log("VGCS: sending RSL failure ind");
|
||||
RSL.send(ts_RSL_CONN_FAIL_IND(g_chan_nr, RSL_ERR_TALKER_ACC_FAIL));
|
||||
}
|
||||
if (g_pars.asci_test.vgcs_talker_est or
|
||||
g_pars.asci_test.vgcs_talker_rel) {
|
||||
log("VGCS: sending RSL etabish ind");
|
||||
|
@ -493,6 +520,28 @@ testcase TC_vgcs_vbs_talker_req() runs on test_CT {
|
|||
f_shutdown_helper();
|
||||
}
|
||||
|
||||
testcase TC_vgcs_vbs_talker_fail() runs on test_CT {
|
||||
var MSC_ConnHdlr call_conn, chan_conn;
|
||||
var TestHdlrParams pars := f_gen_test_hdlr_pars();
|
||||
|
||||
f_init(1, true);
|
||||
|
||||
pars.sccp_addr_msc := g_bssap[0].sccp_addr_own;
|
||||
pars.sccp_addr_bsc := g_bssap[0].sccp_addr_peer;
|
||||
|
||||
pars.asci_test.vgcs_talker_fail := true;
|
||||
|
||||
call_conn := f_start_handler(refers(f_tc_vgcs_vbs_setup), pars);
|
||||
chan_conn := f_start_handler(refers(f_tc_asci_assignment), pars);
|
||||
/* Connect COORD ports of both functions. The functions will delay before using them. */
|
||||
connect(call_conn:COORD, chan_conn:COORD);
|
||||
|
||||
call_conn.done;
|
||||
chan_conn.done;
|
||||
|
||||
f_shutdown_helper();
|
||||
}
|
||||
|
||||
testcase TC_vgcs_vbs_talker_est() runs on test_CT {
|
||||
var MSC_ConnHdlr call_conn, chan_conn;
|
||||
var TestHdlrParams pars := f_gen_test_hdlr_pars();
|
||||
|
@ -586,6 +635,7 @@ control {
|
|||
execute( TC_vgcs_vbs_assignment() );
|
||||
execute( TC_vgcs_vbs_assignment_fail() );
|
||||
execute( TC_vgcs_vbs_talker_req() );
|
||||
execute( TC_vgcs_vbs_talker_fail() );
|
||||
execute( TC_vgcs_vbs_talker_est() );
|
||||
execute( TC_vgcs_vbs_talker_rel() );
|
||||
execute( TC_vgcs_vbs_uplink_seized() );
|
||||
|
|
|
@ -757,6 +757,7 @@ type record ASCITest {
|
|||
boolean vgcs_assign_ok,
|
||||
boolean vgcs_assign_fail,
|
||||
boolean vgcs_talker_req,
|
||||
boolean vgcs_talker_fail,
|
||||
boolean vgcs_talker_est,
|
||||
boolean vgcs_talker_rel,
|
||||
boolean vgcs_uplink_seized,
|
||||
|
|
Loading…
Reference in New Issue