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();
 }