diff options
Diffstat (limited to 'src/osmo-bsc/gsm_data.c')
-rw-r--r-- | src/osmo-bsc/gsm_data.c | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index a12821699..509f805ae 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -888,26 +888,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; @@ -918,31 +917,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; } |