bsc: cbsp: Expect one Reset/Failure Ind for each Bcast Msg Type
As described in 3GPP TS 48.049: 7.8.2: "The RESTART message is sent once per broadcast message type as indicated by the Broadcast Message Type IE." 7.9.2: "The FAILURE message is sent once per broadcast message type as indicated by the Broadcast Message Type IE." Related: osmo-bsc.git Change-Id I6668b55868cf534a3b59da5e11542abb8131d604 Related: SYS#5910 Change-Id: I05da2f61d26a1124d30793184d81aabf212cddda
This commit is contained in:
parent
696fbe75a2
commit
528f5affda
|
@ -546,7 +546,10 @@ testcase TC_cbsp_reset_bss() runs on cbsp_test_CT {
|
|||
* (becomes unavailable). LAC_CI RESTART Ind should be sent when the TRX becomes
|
||||
* unlocked again. */
|
||||
testcase TC_cbsp_cell_rflock_failure_restart() runs on cbsp_test_CT {
|
||||
var template CBSP_PDU rx;
|
||||
var template CBSP_PDU rx_cbs;
|
||||
var template CBSP_PDU rx_emerg;
|
||||
var boolean received_cbs := false;
|
||||
var boolean received_emerg := false;
|
||||
var template (present) CBSP_FailureListItem fli_exp;
|
||||
var template (present) BSSMAP_FIELD_CellIdentificationList cil_exp;
|
||||
|
||||
|
@ -561,26 +564,49 @@ testcase TC_cbsp_cell_rflock_failure_restart() runs on cbsp_test_CT {
|
|||
CBSP_CAUSE_CB_NOT_OPERATIONAL),
|
||||
CBSP_FailureListItem_LAC_CI(bssmap_lac_ci(mp_cgi_bts0),
|
||||
CBSP_CAUSE_CB_NOT_OPERATIONAL));
|
||||
rx := tr_CBSP_FAILURE({fli_exp}, CBSP_BC_MSGT_CBS);
|
||||
rx_cbs := tr_CBSP_FAILURE({fli_exp}, CBSP_BC_MSGT_CBS);
|
||||
rx_emerg := tr_CBSP_FAILURE({fli_exp}, CBSP_BC_MSGT_EMERG);
|
||||
alt {
|
||||
[] CBSP[0].receive(tr_CBSP_Recv(g_cbsp_conn_id[0], rx)) {
|
||||
setverdict(pass);
|
||||
[not received_cbs] CBSP[0].receive(tr_CBSP_Recv(g_cbsp_conn_id[0], rx_cbs)) {
|
||||
received_cbs := true;
|
||||
if (not received_cbs or not received_emerg) {
|
||||
repeat;
|
||||
}
|
||||
}
|
||||
[not received_emerg] CBSP[0].receive(tr_CBSP_Recv(g_cbsp_conn_id[0], rx_emerg)) {
|
||||
received_emerg := true;
|
||||
if (not received_cbs or not received_emerg) {
|
||||
repeat;
|
||||
}
|
||||
}
|
||||
[] CBSP[0].receive(tr_CBSP_Recv(g_cbsp_conn_id[0], ?)) {
|
||||
setverdict(fail, "Received unexpected CBSP");
|
||||
mtc.stop;
|
||||
}
|
||||
}
|
||||
setverdict(pass);
|
||||
|
||||
/* Unlock the TRX, CBCH should become available and BSC send RESTART */
|
||||
f_ctrl_set(IPA_CTRL, "bts.0.trx.0.rf_locked", "0");
|
||||
/* Expect receiving either CGI or LAC+CI: */
|
||||
cil_exp := (ts_BSSMAP_CIL_CGI({bssmap_cgi(mp_cgi_bts0)}),
|
||||
ts_BSSMAP_CIL_LAC_CI({bssmap_lac_ci(mp_cgi_bts0)}));
|
||||
rx := tr_CBSP_RESTART(cil_exp, CBSP_BC_MSGT_CBS, ?);
|
||||
rx_cbs := tr_CBSP_RESTART(cil_exp, CBSP_BC_MSGT_CBS, ?);
|
||||
rx_emerg := tr_CBSP_RESTART(cil_exp, CBSP_BC_MSGT_EMERG, ?);
|
||||
received_cbs := false;
|
||||
received_emerg := false;
|
||||
alt {
|
||||
[] CBSP[0].receive(tr_CBSP_Recv(g_cbsp_conn_id[0], rx)) {
|
||||
setverdict(pass);
|
||||
[not received_cbs] CBSP[0].receive(tr_CBSP_Recv(g_cbsp_conn_id[0], rx_cbs)) {
|
||||
received_cbs := true;
|
||||
if (not received_cbs or not received_emerg) {
|
||||
repeat;
|
||||
}
|
||||
}
|
||||
[not received_emerg] CBSP[0].receive(tr_CBSP_Recv(g_cbsp_conn_id[0], rx_emerg)) {
|
||||
received_emerg := true;
|
||||
if (not received_cbs or not received_emerg) {
|
||||
repeat;
|
||||
}
|
||||
}
|
||||
[] CBSP[0].receive(tr_CBSP_Recv(g_cbsp_conn_id[0], ?)) {
|
||||
setverdict(fail, "Received unexpected CBSP");
|
||||
|
@ -593,7 +619,10 @@ testcase TC_cbsp_cell_rflock_failure_restart() runs on cbsp_test_CT {
|
|||
|
||||
/* Test if a LAC_CI FAILURE Ind is sent when conn of TRX holding the CBCH goes down. */
|
||||
testcase TC_cbsp_cell_rsl_down_failure() runs on cbsp_test_CT {
|
||||
var template CBSP_PDU rx;
|
||||
var template CBSP_PDU rx_cbs;
|
||||
var template CBSP_PDU rx_emerg;
|
||||
var boolean received_cbs := false;
|
||||
var boolean received_emerg := false;
|
||||
var template (present) CBSP_FailureListItem fli_exp;
|
||||
|
||||
g_pars := valueof(ts_CBSP_Pars_default(false, 0, 0));
|
||||
|
@ -607,10 +636,20 @@ testcase TC_cbsp_cell_rsl_down_failure() runs on cbsp_test_CT {
|
|||
CBSP_CAUSE_CB_NOT_OPERATIONAL),
|
||||
CBSP_FailureListItem_LAC_CI(bssmap_lac_ci(mp_cgi_bts0),
|
||||
CBSP_CAUSE_CB_NOT_OPERATIONAL));
|
||||
rx := tr_CBSP_FAILURE({fli_exp}, CBSP_BC_MSGT_CBS);
|
||||
rx_cbs := tr_CBSP_FAILURE({fli_exp}, CBSP_BC_MSGT_CBS);
|
||||
rx_emerg := tr_CBSP_FAILURE({fli_exp}, CBSP_BC_MSGT_EMERG);
|
||||
alt {
|
||||
[] CBSP[0].receive(tr_CBSP_Recv(g_cbsp_conn_id[0], rx)) {
|
||||
setverdict(pass);
|
||||
[not received_cbs] CBSP[0].receive(tr_CBSP_Recv(g_cbsp_conn_id[0], rx_cbs)) {
|
||||
received_cbs := true;
|
||||
if (not received_cbs or not received_emerg) {
|
||||
repeat;
|
||||
}
|
||||
}
|
||||
[not received_emerg] CBSP[0].receive(tr_CBSP_Recv(g_cbsp_conn_id[0], rx_emerg)) {
|
||||
received_emerg := true;
|
||||
if (not received_cbs or not received_emerg) {
|
||||
repeat;
|
||||
}
|
||||
}
|
||||
[] CBSP[0].receive(tr_CBSP_Recv(g_cbsp_conn_id[0], ?)) {
|
||||
setverdict(fail, "Received unexpected CBSP");
|
||||
|
|
Loading…
Reference in New Issue