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


Change subject: osmo-bts-trx: amr_loop: improve logging in trx_loop_amr_input()
......................................................................

osmo-bts-trx: amr_loop: improve logging in trx_loop_amr_input()

Currently we're logging AMR mode *indexes*, not the actual modes.
Let's make it cleaner for the user by logging both mode and index.

Change-Id: I4feb3a3823799a290a50a48275e45f3331874d1a
Related: SYS#5917, OS#4984
---
M src/osmo-bts-trx/amr_loop.c
1 file changed, 12 insertions(+), 11 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/74/27774/1

diff --git a/src/osmo-bts-trx/amr_loop.c b/src/osmo-bts-trx/amr_loop.c
index 5793d03..90b156c 100644
--- a/src/osmo-bts-trx/amr_loop.c
+++ b/src/osmo-bts-trx/amr_loop.c
@@ -37,6 +37,7 @@
 {
        const struct gsm_lchan *lchan = chan_state->lchan;
        const struct amr_multirate_conf *cfg = &lchan->tch.amr_mr;
+       const uint8_t mi = chan_state->ul_ft; /* mode index 0..3 */
        int lqual_cb = meas_set->ci_cb; /* cB (centibel) */

        /* check if loop is enabled */
@@ -44,7 +45,7 @@
                return;

        /* wait for MS to use the requested codec */
-       if (chan_state->ul_ft != chan_state->dl_cmr)
+       if (mi != chan_state->dl_cmr)
                return;

        /* count per-block C/I samples for further averaging */
@@ -64,36 +65,36 @@
        lqual_cb = chan_state->lqual_cb_sum / chan_state->lqual_cb_num;

        LOGPLCHAN(lchan, DLOOP, LOGL_DEBUG, "AMR link quality (C/I) is %d cB, "
-                 "codec mode=%d\n", lqual_cb, chan_state->ul_ft);
+                 "codec mode[%u]=%u\n", lqual_cb, mi, cfg->mode[mi].mode);

        /* reset the link quality measurements */
        chan_state->lqual_cb_num = 0;
        chan_state->lqual_cb_sum = 0;

-       if (chan_state->dl_cmr > 0) {
+       if (mi > 0) {
                /* The threshold/hysteresis is in 0.5 dB steps, convert to cB:
                 * 1dB is 10cB, so 0.5dB is 5cB - this is why we multiply by 5. 
*/
-               const int thresh_lower_cb = cfg->mode[chan_state->dl_cmr - 
1].threshold * 5;
+               const int thresh_lower_cb = cfg->mode[mi - 1].threshold * 5;

                /* Degrade if the link quality is below THR_MX_Dn(i - 1) */
                if (lqual_cb < thresh_lower_cb) {
                        LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Degrading AMR codec 
mode: "
-                                 "%d -> %d due to link quality %d cB < 
THR_MX_Dn=%d cB\n",
-                                 chan_state->dl_cmr, chan_state->dl_cmr - 1,
+                                 "[%u]=%u -> [%u]=%u due to link quality %d cB 
< THR_MX_Dn=%d cB\n",
+                                 mi, cfg->mode[mi].mode, mi - 1, cfg->mode[mi 
- 1].mode,
                                  lqual_cb, thresh_lower_cb);
                        chan_state->dl_cmr--;
                }
-       } else if (chan_state->dl_cmr < chan_state->codecs - 1) {
+       } else if (mi < chan_state->codecs - 1) {
                /* The threshold/hysteresis is in 0.5 dB steps, convert to cB:
                 * 1dB is 10cB, so 0.5dB is 5cB - this is why we multiply by 5. 
*/
-               const int thresh_upper_cb = 
cfg->mode[chan_state->dl_cmr].threshold * 5 \
-                                         + 
cfg->mode[chan_state->dl_cmr].hysteresis * 5;
+               const int thresh_upper_cb = cfg->mode[mi].threshold * 5 \
+                                         + cfg->mode[mi].hysteresis * 5;

                /* Upgrade if the link quality is above THR_MX_Up(i) */
                if (lqual_cb > thresh_upper_cb) {
                        LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Upgrading AMR codec 
mode: "
-                                 "%d -> %d due to link quality %d cB > 
THR_MX_Up=%d cB\n",
-                                 chan_state->dl_cmr, chan_state->dl_cmr + 1,
+                                 "[%u]=%u -> [%u]=%u due to link quality %d cB 
> THR_MX_Up=%d cB\n",
+                                 mi, cfg->mode[mi].mode, mi + 1, cfg->mode[mi 
+ 1].mode,
                                  lqual_cb, thresh_upper_cb);
                        chan_state->dl_cmr++;
                }

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

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I4feb3a3823799a290a50a48275e45f3331874d1a
Gerrit-Change-Number: 27774
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <[email protected]>
Gerrit-MessageType: newchange

Reply via email to