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
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 4d7717e..6d4bd82 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -4632,21 +4632,14 @@
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 @@
}
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 @@
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_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 @@
/* 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 @@
/* 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_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();
}