aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2022-04-14 15:33:58 +0200
committerlaforge <laforge@osmocom.org>2022-04-15 04:54:10 +0000
commit39128952603d5dd1c96ff5735d47e7fee9a059a5 (patch)
treecc40c4a0f985e5b436727fc0e07630e22f8ab352
parent5ac8f31b38365bc3338a47afa08b6f34e4e96e14 (diff)
bsc: Expect number-of-broadcadsts-completed-list in CBSP KILL COMPLETE
When responding to a CBSP KILL with a CBSP KILL COMPLETE, make sure we include the optional "Number of Broadcasts Completed List" IE in order to inform the CBC about how many times the just-killed message had been broadcast before it was killed. It seems some CBCs expect this IE to be present, while 3GPP TS 48.049 lists it as optional. osmo-bsc is including this IE as of Change-Id I47aebd613dfc6dd9261ea9019a51aff0cd6470d8 This change updates the test suite to expect this IE to be included. Change-Id: I5b56676c93479ec7b32cff66c9738fff7d0228cf Related: SYS#5906
-rw-r--r--bsc/BSC_Tests_CBSP.ttcn16
1 files changed, 11 insertions, 5 deletions
diff --git a/bsc/BSC_Tests_CBSP.ttcn b/bsc/BSC_Tests_CBSP.ttcn
index 0d8fb386..b291546c 100644
--- a/bsc/BSC_Tests_CBSP.ttcn
+++ b/bsc/BSC_Tests_CBSP.ttcn
@@ -355,6 +355,7 @@ function f_cbsp_replace(uint16_t msg_id, uint16_t new_ser_no, uint16_t old_ser_n
function f_cbsp_kill(uint16_t msg_id, uint16_t ser_no, template (omit) uint8_t channel_ind := 0,
template (value) BSSMAP_FIELD_CellIdentificationList cell_list := ts_BSSMAP_CIL_BSS,
template BSSMAP_FIELD_CellIdentificationList success_list := ?,
+ template CBSP_IE_NumBcastComplList compl_list := *,
template CBSP_FailureListItems fail_list := omit) runs on cbsp_test_CT
{
var template (value) CBSP_PDU tx;
@@ -363,10 +364,10 @@ function f_cbsp_kill(uint16_t msg_id, uint16_t ser_no, template (omit) uint8_t c
tx := ts_CBSP_KILL(msg_id, ser_no, cell_list, channel_ind);
CBSP[0].send(ts_CBSP_Send(g_cbsp_conn_id[0], tx));
if (istemplatekind(fail_list, "omit")) {
- rx := tr_CBSP_KILL_COMPL(msg_id, ser_no, compl_list:=*, cell_list:=success_list,
+ rx := tr_CBSP_KILL_COMPL(msg_id, ser_no, compl_list:=compl_list, cell_list:=success_list,
channel_ind:=channel_ind);
} else {
- rx := tr_CBSP_KILL_FAIL(msg_id, ser_no, fail_list, compl_list:=*, cell_list:=success_list,
+ rx := tr_CBSP_KILL_FAIL(msg_id, ser_no, fail_list, compl_list:=compl_list, cell_list:=success_list,
channel_ind:=channel_ind);
}
alt {
@@ -784,7 +785,7 @@ testcase TC_cbsp_kill_nonexist() runs on cbsp_test_CT {
f_init();
cell_list := ts_BSSMAP_CIL_LAC_CI({bssmap_lac_ci(mp_cgi_bts0)});
- f_cbsp_kill(g_cbsp_msg_id, g_cbsp_ser_no, 0, cell_list, success_list:=omit, fail_list:=?);
+ f_cbsp_kill(g_cbsp_msg_id, g_cbsp_ser_no, 0, cell_list, success_list:=omit, compl_list:=omit, fail_list:=?);
}
/* Write a message, then kill it */
testcase TC_cbsp_write_then_kill() runs on cbsp_test_CT {
@@ -793,9 +794,14 @@ testcase TC_cbsp_write_then_kill() runs on cbsp_test_CT {
g_pars := valueof(ts_CBSP_Pars_default(false, 13001, 13501));
f_init();
+ /* write message, request more than one transmission on BTS0 */
cell_list := ts_BSSMAP_CIL_LAC_CI({bssmap_lac_ci(mp_cgi_bts0)});
- f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, content:=pages, success_list:=?, fail_list:=omit);
- f_cbsp_kill(g_cbsp_msg_id, g_cbsp_ser_no, 0, cell_list, success_list:=?, fail_list:=omit);
+ f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no, cell_list, num_bcast_req := 5, content:=pages, success_list:=?, fail_list:=omit);
+ /* expect to receive it once on the BTS */
+ var template (present) RSL_Message tr := f_page2rsl(pages[0], g_cbsp_msg_id, g_cbsp_ser_no);
+ IPA_RSL[0].receive(tr_ASP_RSL_UD(tr));
+ /* kill it, expecting non-empty completion list */
+ f_cbsp_kill(g_cbsp_msg_id, g_cbsp_ser_no, 0, cell_list, success_list:=?, compl_list:=?, fail_list:=omit);
}
/* Write a message, then reset all messages */