fixeria has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-bsc/+/27744 )


Change subject: bts: gsm_bts_alloc(): rework default multi-rate configuration
......................................................................

bts: gsm_bts_alloc(): rework default multi-rate configuration

This is cosmetic change making the default multi-rate configuration
easier to read/understand and modify.

Change-Id: I3d03c2188d007a60a86961a346744400bc81d4e6
Related: SYS#5917, OS#4984
---
M src/osmo-bsc/bts.c
1 file changed, 36 insertions(+), 46 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/44/27744/1

diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c
index 843d711..7855781 100644
--- a/src/osmo-bsc/bts.c
+++ b/src/osmo-bsc/bts.c
@@ -169,7 +169,6 @@
 struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, struct gsm_bts_sm 
*bts_sm, uint8_t bts_num)
 {
        struct gsm_bts *bts = talloc_zero(bts_sm, struct gsm_bts);
-       struct gsm48_multi_rate_conf mr_cfg;
        int i;

        if (!bts)
@@ -337,58 +336,49 @@

        /* Set reasonable defaults for AMR-FR and AMR-HR rate configuration.
         * (see also 3GPP TS 28.062, Table 7.11.3.1.3-2) */
-       mr_cfg = (struct gsm48_multi_rate_conf) {
+       static const struct gsm48_multi_rate_conf amr_fr_mr_cfg = {
                .m4_75 = 1,
-               .m5_15 = 0,
                .m5_90 = 1,
-               .m6_70 = 0,
                .m7_40 = 1,
-               .m7_95 = 0,
-               .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 = 0;
-       bts->mr_full.ms_mode[1].mode = 2;
-       bts->mr_full.ms_mode[2].mode = 4;
-       bts->mr_full.ms_mode[3].mode = 7;
-       bts->mr_full.bts_mode[0].mode = 0;
-       bts->mr_full.bts_mode[1].mode = 2;
-       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;
-               bts->mr_full.ms_mode[i].threshold = 32;
-               bts->mr_full.bts_mode[i].hysteresis = 8;
-               bts->mr_full.bts_mode[i].threshold = 32;
-       }
+       static const struct gsm48_multi_rate_conf amr_hr_mr_cfg = {
+               .m4_75 = 1,
+               .m5_90 = 1,
+               .m7_40 = 1,
+       };
+
+       memcpy(bts->mr_full.gsm48_ie, &amr_fr_mr_cfg, 
sizeof(bts->mr_full.gsm48_ie));
+       memcpy(bts->mr_half.gsm48_ie, &amr_hr_mr_cfg, 
sizeof(bts->mr_half.gsm48_ie));
+
+       static const struct amr_mode amr_ms_bts_mode[] = {
+               {
+                       .mode = 0, /* 4.75k */
+                       .threshold = 32,
+                       .hysteresis = 8,
+               },
+               {
+                       .mode = 2, /* 5.90k */
+                       .threshold = 32,
+                       .hysteresis = 8,
+               },
+               {
+                       .mode = 4, /* 7.40k */
+                       .threshold = 32,
+                       .hysteresis = 8,
+               },
+               {
+                       .mode = 7, /* 12.2k */
+                       /* this is the last mode, so no threshold */
+               },
+       };
+
+       memcpy(&bts->mr_full.ms_mode[0], &amr_ms_bts_mode[0], 
sizeof(amr_ms_bts_mode));
+       memcpy(&bts->mr_full.bts_mode[0], &amr_ms_bts_mode[0], 
sizeof(amr_ms_bts_mode));
        bts->mr_full.num_modes = 4;

-       mr_cfg = (struct gsm48_multi_rate_conf) {
-               .m4_75 = 1,
-               .m5_15 = 0,
-               .m5_90 = 1,
-               .m6_70 = 0,
-               .m7_40 = 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 = 0;
-       bts->mr_half.ms_mode[1].mode = 2;
-       bts->mr_half.ms_mode[2].mode = 4;
-       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 = 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;
-       }
+       memcpy(&bts->mr_half.ms_mode[0], &amr_ms_bts_mode[0], 
sizeof(amr_ms_bts_mode));
+       memcpy(&bts->mr_half.bts_mode[0], &amr_ms_bts_mode[0], 
sizeof(amr_ms_bts_mode));
        bts->mr_half.num_modes = 3;

        bts_init_cbch_state(&bts->cbch_basic, bts);

--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/27744
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I3d03c2188d007a60a86961a346744400bc81d4e6
Gerrit-Change-Number: 27744
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <[email protected]>
Gerrit-MessageType: newchange

Reply via email to