aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2019-03-01 15:10:59 +0100
committerPhilipp Maier <pmaier@sysmocom.de>2019-03-11 11:29:19 +0100
commita8ac7956eb49aeb94a3965c7cc6e854ee6718005 (patch)
tree43d01f9e548578654b577d34580fac543b0dea26
parent6366f42b06133454130e718a02b3a02f27f0cd30 (diff)
osmo_bsc_msc: Use meaningful amr rate configuration on BTS levelpmaier/default
The current configuration for permittet AMR rates on BTS level contradicts the default settings of the AMR rates for MSC level. Lets make sure that the BTS default matches the default config on MSC level. Change-Id: I916953e3fdb54168671dd13b359e78662fa31059 Related: SYS#4470
-rw-r--r--src/osmo-bsc/gsm_data.c35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c
index 5d667bb..2bb22eb 100644
--- a/src/osmo-bsc/gsm_data.c
+++ b/src/osmo-bsc/gsm_data.c
@@ -896,26 +896,25 @@ struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, uint8_t bts_num)
};
/* Set reasonable defaults for AMR-FR and AMR-HR rate configuration.
- * It is possible to set up to 4 codecs per active set, while 5,15K must
- * be selected. */
+ * (see also 3GPP TS 28.062, Table 7.11.3.1.3-2) */
mr_cfg = (struct gsm48_multi_rate_conf) {
- .m4_75 = 0,
- .m5_15 = 1,
+ .m4_75 = 1,
+ .m5_15 = 0,
.m5_90 = 1,
.m6_70 = 0,
- .m7_40 = 0,
+ .m7_40 = 1,
.m7_95 = 0,
- .m10_2 = 1,
+ .m10_2 = 0,
.m12_2 = 1
};
memcpy(bts->mr_full.gsm48_ie, &mr_cfg, sizeof(bts->mr_full.gsm48_ie));
- bts->mr_full.ms_mode[0].mode = 1;
+ bts->mr_full.ms_mode[0].mode = 0;
bts->mr_full.ms_mode[1].mode = 2;
- bts->mr_full.ms_mode[2].mode = 6;
+ bts->mr_full.ms_mode[2].mode = 4;
bts->mr_full.ms_mode[3].mode = 7;
- bts->mr_full.bts_mode[0].mode = 1;
+ bts->mr_full.bts_mode[0].mode = 0;
bts->mr_full.bts_mode[1].mode = 2;
- bts->mr_full.bts_mode[2].mode = 6;
+ bts->mr_full.bts_mode[2].mode = 4;
bts->mr_full.bts_mode[3].mode = 7;
for (i = 0; i < 3; i++) {
bts->mr_full.ms_mode[i].hysteresis = 8;
@@ -926,31 +925,31 @@ struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, uint8_t bts_num)
bts->mr_full.num_modes = 4;
mr_cfg = (struct gsm48_multi_rate_conf) {
- .m4_75 = 0,
- .m5_15 = 1,
+ .m4_75 = 1,
+ .m5_15 = 0,
.m5_90 = 1,
.m6_70 = 0,
.m7_40 = 1,
- .m7_95 = 1,
+ .m7_95 = 0,
.m10_2 = 0,
.m12_2 = 0
};
memcpy(bts->mr_half.gsm48_ie, &mr_cfg, sizeof(bts->mr_half.gsm48_ie));
- bts->mr_half.ms_mode[0].mode = 1;
+ bts->mr_half.ms_mode[0].mode = 0;
bts->mr_half.ms_mode[1].mode = 2;
bts->mr_half.ms_mode[2].mode = 4;
- bts->mr_half.ms_mode[3].mode = 5;
- bts->mr_half.bts_mode[0].mode = 1;
+ bts->mr_half.ms_mode[3].mode = 7;
+ bts->mr_half.bts_mode[0].mode = 0;
bts->mr_half.bts_mode[1].mode = 2;
bts->mr_half.bts_mode[2].mode = 4;
- bts->mr_half.bts_mode[3].mode = 5;
+ bts->mr_half.bts_mode[3].mode = 7;
for (i = 0; i < 3; i++) {
bts->mr_half.ms_mode[i].hysteresis = 8;
bts->mr_half.ms_mode[i].threshold = 32;
bts->mr_half.bts_mode[i].hysteresis = 8;
bts->mr_half.bts_mode[i].threshold = 32;
}
- bts->mr_half.num_modes = 4;
+ bts->mr_half.num_modes = 3;
return bts;
}