BSC_Test_ASCI: Add Talker detect with UPLINK REJECT COMMAND test

The talker requests uplink. The UPLINK REQUEST is rejected by the MSC.
The uplink is marked free again.

Change-Id: Iba4dd21a69d49e6a8508b15b823ffccc7f0dafc9
This commit is contained in:
Andreas Eversberg 2023-07-20 17:28:41 +02:00
parent 28d6b81268
commit a29b2f31da
2 changed files with 45 additions and 4 deletions

View File

@ -146,9 +146,15 @@ private function f_tc_vgcs_vbs_setup(charstring id) runs on MSC_ConnHdlr {
log("VGCS: delay uplink req ack");
f_delay_msc();
}
log("VGCS: sending uplink req ack");
BSSAP.send(ts_BSSMAP_UplinkReqAck(omit));
if (g_pars.asci_test.vgcs_talker_req) {
if (g_pars.asci_test.vgcs_uplink_reject) {
log("VGCS: sending uplink rej cmd");
BSSAP.send(ts_BSSMAP_UplinkRejCmd(9));
} else {
log("VGCS: sending uplink req ack");
BSSAP.send(ts_BSSMAP_UplinkReqAck(omit));
}
if (g_pars.asci_test.vgcs_talker_req or
g_pars.asci_test.vgcs_uplink_reject) {
T.start;
}
repeat;
@ -327,6 +333,15 @@ private function f_tc_vgcs_vbs_setup(charstring id) runs on MSC_ConnHdlr {
setverdict(pass);
return;
}
if (g_pars.asci_test.vgcs_uplink_reject) {
if (not uplink_free) {
setverdict(fail, "VGCS: Uplink not free as expected!");
return;
}
log("VGCS: Uplink rejected and uplink marked free as expected!");
setverdict(pass);
return;
}
}
/*
@ -402,7 +417,8 @@ private function f_tc_asci_assignment(charstring id) runs on MSC_ConnHdlr {
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) {
g_pars.asci_test.vgcs_talker_rel or
g_pars.asci_test.vgcs_uplink_reject) {
log("VGCS: sending talker det");
RSL.send(ts_RSL_TALKER_DET(g_chan_nr));
}
@ -706,6 +722,28 @@ testcase TC_vgcs_vbs_talker_rel_late_msc() runs on test_CT {
f_shutdown_helper();
}
testcase TC_vgcs_vbs_uplink_reject() 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_uplink_reject := 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_uplink_seized() runs on test_CT {
var MSC_ConnHdlr call_conn, chan_conn;
var TestHdlrParams pars := f_gen_test_hdlr_pars();
@ -761,6 +799,7 @@ control {
execute( TC_vgcs_vbs_talker_est_late_msc() );
execute( TC_vgcs_vbs_talker_rel() );
execute( TC_vgcs_vbs_talker_rel_late_msc() );
execute( TC_vgcs_vbs_uplink_reject() );
execute( TC_vgcs_vbs_uplink_seized() );
execute( TC_vgcs_vbs_uplink_release() );
}

View File

@ -760,6 +760,7 @@ type record ASCITest {
boolean vgcs_talker_fail,
boolean vgcs_talker_est,
boolean vgcs_talker_rel,
boolean vgcs_uplink_reject,
boolean vgcs_uplink_seized,
boolean vgcs_uplink_release,
boolean delay_bts,
@ -858,6 +859,7 @@ template (value) TestHdlrParams t_def_TestHdlrPars := {
vgcs_talker_fail := false,
vgcs_talker_est := false,
vgcs_talker_rel := false,
vgcs_uplink_reject := false,
vgcs_uplink_seized := false,
vgcs_uplink_release := false,
delay_bts := false,