BSC: Implement RSL_IE_MultirateCfg and use it in BSC_Tests
Change-Id: I0a5ddce570c0fd70f096d897b0b609d20b552ff7
This commit is contained in:
parent
8539312f8f
commit
f7634dc706
|
@ -111,6 +111,9 @@ private const BtsParams c_BtsParams[NUM_BTS_CFG] := {
|
||||||
/* BTS3 */ { trx_num := 1, tsc := 4 }
|
/* BTS3 */ { trx_num := 1, tsc := 4 }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private const RSL_IE_Body mr_conf_amr_5_90 :=
|
||||||
|
valueof(RSL_IE_Body:{multirate_cfg := ts_RSL_MultirateCfg(true, 0, '00000100'B /* 5,90k */)});
|
||||||
|
|
||||||
/* per-BTS state which we keep */
|
/* per-BTS state which we keep */
|
||||||
type record BTS_State {
|
type record BTS_State {
|
||||||
/* component reference to the IPA_Client component used for RSL */
|
/* component reference to the IPA_Client component used for RSL */
|
||||||
|
@ -4504,17 +4507,10 @@ testcase TC_assignment_codec_amr_f() runs on test_CT {
|
||||||
/* Note: This setups the codec configuration. The parameter payload in
|
/* Note: This setups the codec configuration. The parameter payload in
|
||||||
* mr_conf must be consistant with the parameter codecElements in pars
|
* mr_conf must be consistant with the parameter codecElements in pars
|
||||||
* and also must match the amr-config in osmo-bsc.cfg! */
|
* and also must match the amr-config in osmo-bsc.cfg! */
|
||||||
var RSL_IE_Body mr_conf := {
|
|
||||||
other := {
|
|
||||||
len := 2,
|
|
||||||
payload := '2804'O
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecAMR_F}));
|
pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecAMR_F}));
|
||||||
pars.ass_codec_list.codecElements[0].s0_7 := '00000100'B; /* 5,90k */
|
pars.ass_codec_list.codecElements[0].s0_7 := '00000100'B; /* 5,90k */
|
||||||
pars.ass_codec_list.codecElements[0].s8_15 := '01010111'B;
|
pars.ass_codec_list.codecElements[0].s8_15 := '01010111'B;
|
||||||
pars.expect_mr_conf_ie := mr_conf;
|
pars.expect_mr_conf_ie := mr_conf_amr_5_90;
|
||||||
|
|
||||||
f_init(1, true);
|
f_init(1, true);
|
||||||
f_sleep(1.0);
|
f_sleep(1.0);
|
||||||
|
@ -4539,17 +4535,10 @@ testcase TC_assignment_codec_amr_h() runs on test_CT {
|
||||||
var MSC_ConnHdlr vc_conn;
|
var MSC_ConnHdlr vc_conn;
|
||||||
|
|
||||||
/* See note above */
|
/* See note above */
|
||||||
var RSL_IE_Body mr_conf := {
|
|
||||||
other := {
|
|
||||||
len := 2,
|
|
||||||
payload := '2804'O
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecAMR_H}));
|
pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecAMR_H}));
|
||||||
pars.ass_codec_list.codecElements[0].s0_7 := '00000100'B; /* 5,90k */
|
pars.ass_codec_list.codecElements[0].s0_7 := '00000100'B; /* 5,90k */
|
||||||
pars.ass_codec_list.codecElements[0].s8_15 := '00000111'B;
|
pars.ass_codec_list.codecElements[0].s8_15 := '00000111'B;
|
||||||
pars.expect_mr_conf_ie := mr_conf;
|
pars.expect_mr_conf_ie := mr_conf_amr_5_90;
|
||||||
|
|
||||||
f_init(1, true);
|
f_init(1, true);
|
||||||
f_sleep(1.0);
|
f_sleep(1.0);
|
||||||
|
@ -4598,17 +4587,11 @@ testcase TC_assignment_codec_amr_startmode_cruft() runs on test_CT {
|
||||||
var TestHdlrParams pars := f_gen_test_hdlr_pars();
|
var TestHdlrParams pars := f_gen_test_hdlr_pars();
|
||||||
var MSC_ConnHdlr vc_conn;
|
var MSC_ConnHdlr vc_conn;
|
||||||
|
|
||||||
var RSL_IE_Body mr_conf := {
|
|
||||||
other := {
|
|
||||||
len := 2,
|
|
||||||
payload := '2004'O /* <- expect ICMI=0, smod=00 */
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecAMR_F}));
|
pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecAMR_F}));
|
||||||
pars.ass_codec_list.codecElements[0].s0_7 := '00000100'B; /* 5,90k */
|
pars.ass_codec_list.codecElements[0].s0_7 := '00000100'B; /* 5,90k */
|
||||||
pars.ass_codec_list.codecElements[0].s8_15 := '01010111'B;
|
pars.ass_codec_list.codecElements[0].s8_15 := '01010111'B;
|
||||||
pars.expect_mr_conf_ie := mr_conf;
|
/* expect ICMI=0, smod=00: */
|
||||||
|
pars.expect_mr_conf_ie := valueof(RSL_IE_Body:{multirate_cfg := ts_RSL_MultirateCfg(false, 0, '00000100'B /* 5,90k */)});
|
||||||
|
|
||||||
f_init(1, true);
|
f_init(1, true);
|
||||||
f_sleep(1.0);
|
f_sleep(1.0);
|
||||||
|
|
|
@ -814,6 +814,31 @@ module RSL_Types {
|
||||||
slot_count := slot_count
|
slot_count := slot_count
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 9.3.52, 3GPP TS 44.018 10.5.2.21aa */
|
||||||
|
type record RSL_IE_MultirateCfg {
|
||||||
|
uint8_t len,
|
||||||
|
uint3_t mr_speech_ver,
|
||||||
|
boolean nscb,
|
||||||
|
boolean icmi,
|
||||||
|
BIT1 spare,
|
||||||
|
uint2_t start_mode,
|
||||||
|
BIT8 amr_codec_modes,
|
||||||
|
octetstring parameters
|
||||||
|
} with {
|
||||||
|
variant (len) "LENGTHTO(mr_speech_ver,nscb,icmi,spare,start_mode,amr_codec_modes,parameters)"
|
||||||
|
};
|
||||||
|
template (value) RSL_IE_MultirateCfg ts_RSL_MultirateCfg(boolean icmi := true, uint2_t start_mode := 0,
|
||||||
|
BIT8 amr_codec_modes := '00000100'B /* 5,90k */) := {
|
||||||
|
len := 2,
|
||||||
|
mr_speech_ver := 1,
|
||||||
|
nscb := false,
|
||||||
|
icmi := icmi,
|
||||||
|
spare := '0'B,
|
||||||
|
start_mode := start_mode,
|
||||||
|
amr_codec_modes := amr_codec_modes,
|
||||||
|
parameters := ''O
|
||||||
|
}
|
||||||
|
|
||||||
/* 9.3.53 */
|
/* 9.3.53 */
|
||||||
type record RSL_IE_MultirateCtrl {
|
type record RSL_IE_MultirateCtrl {
|
||||||
uint3_t spare,
|
uint3_t spare,
|
||||||
|
@ -952,6 +977,7 @@ module RSL_Types {
|
||||||
RSL_IE_MS_Power ms_power,
|
RSL_IE_MS_Power ms_power,
|
||||||
RSL_IE_MS_Power_Parameters ms_power_params,
|
RSL_IE_MS_Power_Parameters ms_power_params,
|
||||||
uint8_t timing_adv,
|
uint8_t timing_adv,
|
||||||
|
RSL_IE_MultirateCfg multirate_cfg,
|
||||||
RSL_IE_MultirateCtrl multirate_ctrl,
|
RSL_IE_MultirateCtrl multirate_ctrl,
|
||||||
uint8_t msg_id,
|
uint8_t msg_id,
|
||||||
RSL_IE_FrameNumber frame_nr,
|
RSL_IE_FrameNumber frame_nr,
|
||||||
|
@ -1014,6 +1040,7 @@ module RSL_Types {
|
||||||
ms_power, iei = RSL_IE_MS_POWER;
|
ms_power, iei = RSL_IE_MS_POWER;
|
||||||
ms_power_params, iei = RSL_IE_MS_POWER_PARAM;
|
ms_power_params, iei = RSL_IE_MS_POWER_PARAM;
|
||||||
timing_adv, iei = RSL_IE_TIMING_ADVANCE;
|
timing_adv, iei = RSL_IE_TIMING_ADVANCE;
|
||||||
|
multirate_cfg, iei = RSL_IE_MR_CONFIG;
|
||||||
multirate_ctrl, iei = RSL_IE_MR_CONTROL;
|
multirate_ctrl, iei = RSL_IE_MR_CONTROL;
|
||||||
msg_id, iei = RSL_IE_MSG_ID;
|
msg_id, iei = RSL_IE_MSG_ID;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue