BSC_Tests: fix AMR tests matching RSL MultiRate configuration IE

The RSL_IE_MultirateCfg was implemented and added to union RSL_IE_Body
in [1].  Before this change, this IE was decoded as RSL_LV (basically
an octetstring).  Now this IE is decoded as RSL_IE_MultirateCfg, while
some AMR tests still expect RSL_LV.  Let them use RSL_IE_MultirateCfg.

Change-Id: I40dab41d5dc5d14e358ba5a070ce174e7d8d4a4b
Fixes: [1] I0a5ddce570c0fd70f096d897b0b609d20b552ff7
This commit is contained in:
Vadim Yanitskiy 2022-09-14 17:19:44 +07:00
parent 8b18937eef
commit 3998c03df3
1 changed files with 60 additions and 33 deletions

View File

@ -4632,21 +4632,14 @@ testcase TC_assignment_codec_amr_startmode_cruft() runs on test_CT {
f_shutdown_helper();
}
function f_TC_assignment_codec_amr(boolean fr, octetstring mrconf, bitstring s8_s0, bitstring exp_s8_s0,
charstring start_mode := "1")
function f_TC_assignment_codec_amr(boolean fr, RSL_IE_MultirateCfg mr_cfg,
bitstring s8_s0, bitstring exp_s8_s0,
charstring start_mode := "1")
runs on test_CT {
var TestHdlrParams pars := f_gen_test_hdlr_pars();
var MSC_ConnHdlr vc_conn;
/* See note above */
var RSL_IE_Body mr_conf := {
other := {
len := lengthof(mrconf),
payload := mrconf
}
};
if (fr) {
pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecAMR_F}));
} else {
@ -4654,7 +4647,7 @@ runs on test_CT {
}
pars.ass_codec_list.codecElements[0].s0_7 := s8_s0;
pars.ass_codec_list.codecElements[0].s8_15 := '00000111'B;
pars.expect_mr_conf_ie := mr_conf;
pars.expect_mr_conf_ie := { multirate_cfg := mr_cfg };
pars.expect_mr_s0_s7 := exp_s8_s0;
f_init(1, true);
@ -4693,71 +4686,90 @@ runs on test_CT {
f_vty_amr_start_mode_restore(fr);
}
/* Set S1, we expect an AMR multirate configuration IE with all four rates
* set. */
testcase TC_assignment_codec_amr_f_S1() runs on test_CT {
f_TC_assignment_codec_amr(true, '289520882208'O, '00000010'B, '00000010'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '10010101'B,
params := '20882208'O));
f_TC_assignment_codec_amr(true, mr_cfg, '00000011'B, '00000010'B);
f_shutdown_helper();
}
/* Set S1, we expect an AMR multirate configuration IE with the lower three
* rates set. */
testcase TC_assignment_codec_amr_h_S1() runs on test_CT {
f_TC_assignment_codec_amr(false, '2815208820'O, '00000010'B, '00000010'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '00010101'B,
params := '208820'O));
f_TC_assignment_codec_amr(false, mr_cfg, '00000010'B, '00000010'B);
f_shutdown_helper();
}
/* Set S1 and two other rates, we expect an AMR MULTIRATE CONFIGURATION IE with
* all four rates (and only S1 set in the ASSIGNMENT COMPLETE) */
testcase TC_assignment_codec_amr_f_S124() runs on test_CT {
f_TC_assignment_codec_amr(true, '289520882208'O, '00010110'B, '00000010'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '10010101'B,
params := '20882208'O));
f_TC_assignment_codec_amr(true, mr_cfg, '00010110'B, '00000010'B);
f_shutdown_helper();
}
/* Set S1 and two other rates, we expect an AMR MULTIRATE CONFIGURATION IE with
* all four rates (and only S1 set in the ASSIGNMENT COMPLETE) */
testcase TC_assignment_codec_amr_h_S124() runs on test_CT {
f_TC_assignment_codec_amr(false, '2815208820'O, '00010110'B, '00000010'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '00010101'B,
params := '208820'O));
f_TC_assignment_codec_amr(false, mr_cfg, '00010110'B, '00000010'B);
f_shutdown_helper();
}
/* The following block of tests selects more and more rates until all four
* possible rates are in the active set (full rate) */
testcase TC_assignment_codec_amr_f_S0() runs on test_CT {
f_TC_assignment_codec_amr(true, '2801'O, '00000001'B, '00000001'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '00000001'B));
f_TC_assignment_codec_amr(true, mr_cfg, '00000001'B, '00000001'B);
f_shutdown_helper();
}
testcase TC_assignment_codec_amr_f_S02() runs on test_CT {
f_TC_assignment_codec_amr(true, '28052080'O, '00000101'B, '00000101'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '00000101'B,
params := '2080'O));
f_TC_assignment_codec_amr(true, mr_cfg, '00000101'B, '00000101'B);
f_shutdown_helper();
}
testcase TC_assignment_codec_amr_f_S024() runs on test_CT {
f_TC_assignment_codec_amr(true, '2815208820'O, '00010101'B, '00010101'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '00010101'B,
params := '208820'O));
f_TC_assignment_codec_amr(true, mr_cfg, '00010101'B, '00010101'B);
f_shutdown_helper();
}
testcase TC_assignment_codec_amr_f_S0247() runs on test_CT {
f_TC_assignment_codec_amr(true, '289520882208'O, '10010101'B, '10010101'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '10010101'B,
params := '20882208'O));
f_TC_assignment_codec_amr(true, mr_cfg, '10010101'B, '10010101'B);
f_shutdown_helper();
}
/* The following block of tests selects more and more rates until all three
* possible rates are in the active set (half rate) */
testcase TC_assignment_codec_amr_h_S0() runs on test_CT {
f_TC_assignment_codec_amr(false, '2801'O, '00000001'B, '00000001'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '00000001'B));
f_TC_assignment_codec_amr(false, mr_cfg, '00000001'B, '00000001'B);
f_shutdown_helper();
}
testcase TC_assignment_codec_amr_h_S02() runs on test_CT {
f_TC_assignment_codec_amr(false, '28052080'O, '00000101'B, '00000101'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '00000101'B,
params := '2080'O));
f_TC_assignment_codec_amr(false, mr_cfg, '00000101'B, '00000101'B);
f_shutdown_helper();
}
testcase TC_assignment_codec_amr_h_S024() runs on test_CT {
f_TC_assignment_codec_amr(false, '2815208820'O, '00010101'B, '00010101'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '00010101'B,
params := '208820'O));
f_TC_assignment_codec_amr(false, mr_cfg, '00010101'B, '00010101'B);
f_shutdown_helper();
}
@ -4770,7 +4782,9 @@ testcase TC_assignment_codec_amr_h_S024() runs on test_CT {
testcase TC_assignment_codec_amr_h_S0247() runs on test_CT {
/* Try to include 12,2k in into the active set even though the channel
* is half rate only. The BSC is expected to remove the 12,0k */
f_TC_assignment_codec_amr(false, '2815208820'O, '10010101'B, '00010101'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '00010101'B,
params := '208820'O));
f_TC_assignment_codec_amr(false, mr_cfg, '10010101'B, '00010101'B);
f_shutdown_helper();
}
@ -4778,7 +4792,9 @@ testcase TC_assignment_codec_amr_f_S01234567() runs on test_CT {
/* See what happens when all rates are selected at once. Since then
* Also S1 is selected, this setting will be prefered and we should
* get 12.2k, 7,40k, 5,90k, and 4,75k in the active set. */
f_TC_assignment_codec_amr(true, '289520882208'O, '11111111'B, '00000010'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '10010101'B,
params := '20882208'O));
f_TC_assignment_codec_amr(true, mr_cfg, '11111111'B, '00000010'B);
f_shutdown_helper();
}
@ -4786,7 +4802,9 @@ testcase TC_assignment_codec_amr_f_S0234567() runs on test_CT {
/* Same as above, but with S1 missing, the MSC is then expected to
* select the currently supported rates, which are also 12.2k, 7,40k,
* 5,90k, and 4,75k, into the active set. */
f_TC_assignment_codec_amr(true, '289520882208'O, '11111101'B, '10010101'B);
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(codec_modes := '10010101'B,
params := '20882208'O));
f_TC_assignment_codec_amr(true, mr_cfg, '11111101'B, '10010101'B);
f_shutdown_helper();
}
@ -4809,28 +4827,37 @@ testcase TC_assignment_codec_amr_h_S7() runs on test_CT {
}
testcase TC_assignment_codec_amr_f_start_mode_auto() runs on test_CT {
f_TC_assignment_codec_amr(true, '209520882208'O, '11111111'B, '00000010'B,
start_mode := "auto");
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(icmi := false,
codec_modes := '10010101'B,
params := '20882208'O));
f_TC_assignment_codec_amr(true, mr_cfg, '11111111'B, '00000010'B, start_mode := "auto");
f_shutdown_helper();
}
testcase TC_assignment_codec_amr_h_start_mode_auto() runs on test_CT {
f_TC_assignment_codec_amr(false, '2015208820'O, '10010101'B, '00010101'B,
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(icmi := false,
codec_modes := '00010101'B,
params := '208820'O));
f_TC_assignment_codec_amr(false, mr_cfg, '10010101'B, '00010101'B,
start_mode := "auto");
f_shutdown_helper();
}
testcase TC_assignment_codec_amr_f_start_mode_4() runs on test_CT {
/* "amr tch-f modes 0 2 4 7" => total 4 modes and start mode 4 => '11'B on the wire */
f_TC_assignment_codec_amr(true, '2b9520882208'O, '11111111'B, '00000010'B,
start_mode := "4");
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(start_mode := 3,
codec_modes := '10010101'B,
params := '20882208'O));
f_TC_assignment_codec_amr(true, mr_cfg, '11111111'B, '00000010'B, start_mode := "4");
f_shutdown_helper();
}
testcase TC_assignment_codec_amr_h_start_mode_4() runs on test_CT {
/* "amr tch-h modes 0 2 4" => total 3 modes and start mode 4 => '10'B on the wire */
f_TC_assignment_codec_amr(false, '2a15208820'O, '10010101'B, '00010101'B,
start_mode := "4");
var RSL_IE_MultirateCfg mr_cfg := valueof(ts_RSL_MultirateCfg(start_mode := 2,
codec_modes := '00010101'B,
params := '208820'O));
f_TC_assignment_codec_amr(false, mr_cfg, '10010101'B, '00010101'B, start_mode := "4");
f_shutdown_helper();
}