BSC_Tests: introduce TC_tch_dlci_link_id_sapi for OS#3716

The aim of this test case is to verify DLCI / RSL Link ID conversion
for MO/MT L3 messages on SAPI0/SAPI3.  In particular, the test suite
verifies the following scenarios:

  - RSL -> BSSAP:
    - 16 MO messages on FACCH/F with SAPI0,
    - 16 MO messages on SACCH/F with SAPI3;
  - BSSAP -> RSL:
    - 16 MT messages on FACCH/F with SAPI0,
    - 16 MT messages on SACCH/F with SAPI3.

Change-Id: Ica69ae95b47a67ba99ba9cc36629b6bd210d11e4
Related: OS#3716
This commit is contained in:
Vadim Yanitskiy 2020-10-01 21:12:19 +07:00
parent 0033a3b4e8
commit 61f784a436
2 changed files with 60 additions and 0 deletions

View File

@ -2024,6 +2024,62 @@ testcase TC_rll_est_ind_inval_sacch() runs on test_CT {
f_shutdown_helper();
}
/* Verify DLCI / RSL Link ID conversion for MO/MT messages on SAPI0/SAPI3 */
private function f_TC_tch_dlci_link_id_sapi(charstring id) runs on MSC_ConnHdlr {
var template PDU_BSSAP exp_compl := f_gen_exp_compl();
var PDU_BSSAP ass_cmd := f_gen_ass_req();
ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
f_establish_fully(ass_cmd, exp_compl);
/* SAPI0 has already been established by f_establish_fully(), establish SAPI3 */
RSL.send(ts_RSL_EST_IND(g_chan_nr, ts_RslLinkID_SACCH(3), '0904'O));
/* Expect BSSAP/DTAP on SAPI3 (DLCI IE) */
BSSAP.receive(PDU_BSSAP:{
discriminator := '1'B,
spare := '0000000'B,
dlci := 'C3'O,
lengthIndicator := ?,
pdu := { dtap := '0904'O }
});
/* Send messages on DCCH/SAPI0 and ACCH/SAPI3 */
for (var integer i := 0; i < 32; i := i + 1) {
var octetstring l3 := '09'O & f_rnd_octstring(14);
var template (value) RslLinkId link_id;
var template (value) OCT1 dlci;
if (i mod 2 == 0) {
/* SAPI0 on FACCH or SDCCH */
link_id := ts_RslLinkID_DCCH(0);
dlci := '80'O;
} else {
/* SAPI3 on SACCH */
link_id := ts_RslLinkID_SACCH(3);
dlci := 'C3'O;
}
/* Send MO message: RSL -> BSSAP */
f_mo_l3_transceive(link_id, dlci, l3);
/* Send MT message: BSSAP -> RSL */
f_mt_l3_transceive(link_id, dlci, l3);
}
}
testcase TC_tch_dlci_link_id_sapi() runs on test_CT {
var TestHdlrParams pars := f_gen_test_hdlr_pars();
var MSC_ConnHdlr vc_conn;
f_init(1, true);
f_sleep(1.0);
vc_conn := f_start_handler(refers(f_TC_tch_dlci_link_id_sapi), pars);
vc_conn.done;
f_shutdown_helper();
}
private function f_exp_sapi_n_reject(template (present) GsmSapi sapi := ?,
template myBSSMAP_Cause cause := ?,
float T_val := 2.0)
@ -7624,6 +7680,9 @@ control {
execute( TC_rll_est_ind_inval_sapi3() );
execute( TC_rll_est_ind_inval_sacch() );
/* DLCI / RSL Link ID conversion for MO/MT messages on SAPI0/SAPI3 */
execute( TC_tch_dlci_link_id_sapi() );
/* SAPI N Reject triggered by RLL establishment failures */
execute( TC_rll_rel_ind_sapi_n_reject() );
execute( TC_rll_err_ind_sapi_n_reject() );

View File

@ -88,6 +88,7 @@
<testcase classname='BSC_Tests' name='TC_rll_est_ind_inval_sapi1' time='MASKED'/>
<testcase classname='BSC_Tests' name='TC_rll_est_ind_inval_sapi3' time='MASKED'/>
<testcase classname='BSC_Tests' name='TC_rll_est_ind_inval_sacch' time='MASKED'/>
<testcase classname='BSC_Tests' name='TC_tch_dlci_link_id_sapi' time='MASKED'/>
<testcase classname='BSC_Tests' name='TC_rll_rel_ind_sapi_n_reject' time='MASKED'/>
<testcase classname='BSC_Tests' name='TC_rll_err_ind_sapi_n_reject' time='MASKED'/>
<testcase classname='BSC_Tests' name='TC_rll_timeout_sapi_n_reject' time='MASKED'/>