Max has uploaded this change for review. ( https://gerrit.osmocom.org/13243


Change subject: TBF: update MCS counters
......................................................................

TBF: update MCS counters

* use enum CodingScheme directly instead of converting it to class and
  back
* drop useless mode check
* log errorneous update attempt

Change-Id: I763136c2f356d63aa3d28d09c57fd5faf5336258
---
M src/tbf.h
M src/tbf_dl.cpp
M src/tbf_ul.cpp
3 files changed, 116 insertions(+), 126 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/43/13243/1

diff --git a/src/tbf.h b/src/tbf.h
index dc0b050..0a58862 100644
--- a/src/tbf.h
+++ b/src/tbf.h
@@ -648,7 +648,7 @@
        int abort();
        uint16_t window_size() const;
        void set_window_size();
-       void update_coding_scheme_counter_dl(const GprsCodingScheme cs);
+       void update_coding_scheme_counter_dl(enum CodingScheme cs);

        /* TODO: add the gettimeofday as parameter */
        struct msgb *llc_dequeue(bssgp_bvc_ctx *bctx);
@@ -751,7 +751,7 @@

        uint16_t window_size() const;
        void set_window_size();
-       void update_coding_scheme_counter_ul(const GprsCodingScheme cs);
+       void update_coding_scheme_counter_ul(enum CodingScheme cs);

        /* Please note that all variables here will be reset when changing
         * from WAIT RELEASE back to FLOW state (re-use of TBF).
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index 13ef143..04c6499 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -1364,68 +1364,63 @@
        m_window.set_ws(ws);
 }

-void gprs_rlcmac_dl_tbf::update_coding_scheme_counter_dl(const 
GprsCodingScheme cs)
+void gprs_rlcmac_dl_tbf::update_coding_scheme_counter_dl(enum CodingScheme cs)
 {
-       uint8_t coding_scheme = 0;
-
-       coding_scheme = CodingScheme(cs);
-       if (mcs_is_gprs(cs)) {
-               switch (coding_scheme) {
-               case CS1 :
-                       bts->gprs_dl_cs1();
-                       rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS1]);
-                       break;
-               case CS2 :
-                       bts->gprs_dl_cs2();
-                       rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS2]);
-                       break;
-               case CS3 :
-                       bts->gprs_dl_cs3();
-                       rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS3]);
-                       break;
-               case CS4 :
-                       bts->gprs_dl_cs4();
-                       rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS4]);
-                       break;
-               }
-       } else {
-               switch (coding_scheme) {
-               case MCS1 :
-                       bts->egprs_dl_mcs1();
-                       
rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS1]);
-                       break;
-               case MCS2 :
-                       bts->egprs_dl_mcs2();
-                       
rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS2]);
-                       break;
-               case MCS3 :
-                       bts->egprs_dl_mcs3();
-                       
rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS3]);
-                       break;
-               case MCS4 :
-                       bts->egprs_dl_mcs4();
-                       
rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS4]);
-                       break;
-               case MCS5 :
-                       bts->egprs_dl_mcs5();
-                       
rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS5]);
-                       break;
-               case MCS6 :
-                       bts->egprs_dl_mcs6();
-                       
rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS6]);
-                       break;
-               case MCS7 :
-                       bts->egprs_dl_mcs7();
-                       
rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS7]);
-                       break;
-               case MCS8 :
-                       bts->egprs_dl_mcs8();
-                       
rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS8]);
-                       break;
-               case MCS9 :
-                       bts->egprs_dl_mcs9();
-                       
rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS9]);
-                       break;
-               }
+       switch (cs) {
+       case CS1:
+               bts->gprs_dl_cs1();
+               rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS1]);
+               break;
+       case CS2:
+               bts->gprs_dl_cs2();
+               rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS2]);
+               break;
+       case CS3:
+               bts->gprs_dl_cs3();
+               rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS3]);
+               break;
+       case CS4:
+               bts->gprs_dl_cs4();
+               rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS4]);
+               break;
+       case MCS1:
+               bts->egprs_dl_mcs1();
+               rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS1]);
+               break;
+       case MCS2:
+               bts->egprs_dl_mcs2();
+               rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS2]);
+               break;
+       case MCS3:
+               bts->egprs_dl_mcs3();
+               rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS3]);
+               break;
+       case MCS4:
+               bts->egprs_dl_mcs4();
+               rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS4]);
+               break;
+       case MCS5:
+               bts->egprs_dl_mcs5();
+               rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS5]);
+               break;
+       case MCS6:
+               bts->egprs_dl_mcs6();
+               rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS6]);
+               break;
+       case MCS7:
+               bts->egprs_dl_mcs7();
+               rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS7]);
+               break;
+       case MCS8:
+               bts->egprs_dl_mcs8();
+               rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS8]);
+               break;
+       case MCS9:
+               bts->egprs_dl_mcs9();
+               rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS9]);
+               break;
+       default:
+               LOGPTBFDL(this, LOGL_ERROR, "attempting to update rate counters 
for unsupported (M)CS %s\n",
+                         mcs_name(cs));
        }
 }
diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp
index f40ec3d..fd7d73b 100644
--- a/src/tbf_ul.cpp
+++ b/src/tbf_ul.cpp
@@ -525,69 +525,64 @@
        return assemble_status;
 }

-void gprs_rlcmac_ul_tbf::update_coding_scheme_counter_ul(const 
GprsCodingScheme cs)
+void gprs_rlcmac_ul_tbf::update_coding_scheme_counter_ul(enum CodingScheme cs)
 {
-       uint8_t coding_scheme = 0;
-
-       coding_scheme = CodingScheme(cs);
-       if (mcs_is_gprs(cs)) {
-               switch (coding_scheme) {
-               case CS1 :
-                       bts->gprs_ul_cs1();
-                       rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS1]);
-                       break;
-               case CS2 :
-                       bts->gprs_ul_cs2();
-                       rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS2]);
-                       break;
-               case CS3 :
-                       bts->gprs_ul_cs3();
-                       rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS3]);
-                       break;
-               case CS4 :
-                       bts->gprs_ul_cs4();
-                       rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS4]);
-                       break;
-               }
-       } else {
-               switch (coding_scheme) {
-               case MCS1 :
-                       bts->egprs_ul_mcs1();
-                       
rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS1]);
-                       break;
-               case MCS2 :
-                       bts->egprs_ul_mcs2();
-                       
rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS2]);
-                       break;
-               case MCS3 :
-                       bts->egprs_ul_mcs3();
-                       
rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS3]);
-                       break;
-               case MCS4 :
-                       bts->egprs_ul_mcs4();
-                       
rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS4]);
-                       break;
-               case MCS5 :
-                       bts->egprs_ul_mcs5();
-                       
rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS5]);
-                       break;
-               case MCS6 :
-                       bts->egprs_ul_mcs6();
-                       
rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS6]);
-                       break;
-               case MCS7 :
-                       bts->egprs_ul_mcs7();
-                       
rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS7]);
-                       break;
-               case MCS8 :
-                       bts->egprs_ul_mcs8();
-                       
rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS8]);
-                       break;
-               case MCS9 :
-                       bts->egprs_ul_mcs9();
-                       
rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS9]);
-                       break;
-               }
+       switch (cs) {
+       case CS1:
+               bts->gprs_ul_cs1();
+               rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS1]);
+               break;
+       case CS2:
+               bts->gprs_ul_cs2();
+               rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS2]);
+               break;
+       case CS3:
+               bts->gprs_ul_cs3();
+               rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS3]);
+               break;
+       case CS4:
+               bts->gprs_ul_cs4();
+               rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS4]);
+               break;
+       case MCS1:
+               bts->egprs_ul_mcs1();
+               rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS1]);
+               break;
+       case MCS2:
+               bts->egprs_ul_mcs2();
+               rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS2]);
+               break;
+       case MCS3:
+               bts->egprs_ul_mcs3();
+               rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS3]);
+               break;
+       case MCS4:
+               bts->egprs_ul_mcs4();
+               rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS4]);
+               break;
+       case MCS5:
+               bts->egprs_ul_mcs5();
+               rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS5]);
+               break;
+       case MCS6:
+               bts->egprs_ul_mcs6();
+               rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS6]);
+               break;
+       case MCS7:
+               bts->egprs_ul_mcs7();
+               rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS7]);
+               break;
+       case MCS8:
+               bts->egprs_ul_mcs8();
+               rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS8]);
+               break;
+       case MCS9:
+               bts->egprs_ul_mcs9();
+               rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS9]);
+               break;
+       default:
+               LOGPTBFUL(this, LOGL_ERROR, "attempting to update rate counters 
for unsupported (M)CS %s\n",
+                         mcs_name(cs));
        }
 }


--
To view, visit https://gerrit.osmocom.org/13243
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I763136c2f356d63aa3d28d09c57fd5faf5336258
Gerrit-Change-Number: 13243
Gerrit-PatchSet: 1
Gerrit-Owner: Max <msur...@sysmocom.de>

Reply via email to