From 3998c03df34c0dc1fdc99d4cb6c04e93c8fb1933 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Wed, 14 Sep 2022 17:19:44 +0700 Subject: [PATCH] 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 --- bsc/BSC_Tests.ttcn | 93 ++++++++++++++++++++++++++++++---------------- 1 file changed, 60 insertions(+), 33 deletions(-) diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 4d7717eee..6d4bd824e 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -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(); }