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


Change subject: measurement: call lchan_bs_pwr_ctrl() iff *mr is valid
......................................................................

measurement: call lchan_bs_pwr_ctrl() iff *mr is valid

Change-Id: I125aab5224e25585cbfbe1550d2d52d62ba198bb
---
M src/common/measurement.c
M src/common/power_control.c
M tests/power/bs_power_loop_test.c
M tests/power/bs_power_loop_test.err
M tests/power/bs_power_loop_test.ok
5 files changed, 3 insertions(+), 61 deletions(-)



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

diff --git a/src/common/measurement.c b/src/common/measurement.c
index 52243fe..45b7fa9 100644
--- a/src/common/measurement.c
+++ b/src/common/measurement.c
@@ -957,7 +957,7 @@
        }
        lchan_ms_ta_ctrl(lchan, ms_ta, lchan->meas.ms_toa256);
        lchan_ms_pwr_ctrl(lchan, ms_pwr, ul_rssi, ul_ci_cb);
-       if (mr)
+       if (mr && !mr->meas_valid) /* 0 = valid */
                lchan_bs_pwr_ctrl(lchan, mr);

        repeated_dl_facch_active_decision(lchan, mr);
diff --git a/src/common/power_control.c b/src/common/power_control.c
index 73a30da..2979eff 100644
--- a/src/common/power_control.c
+++ b/src/common/power_control.c
@@ -325,13 +325,6 @@
        if (params == NULL)
                return 0;

-       /* Check if the measurement results are valid */
-       if (mr->meas_valid != 0) { /* 0 = valid */
-               LOGPLCHAN(lchan, DLOOP, LOGL_DEBUG,
-                         "The measurement results are not valid\n");
-               return 0;
-       }
-
        LOGPLCHAN(lchan, DLOOP, LOGL_DEBUG, "Rx DL Measurement Report: "
                  "RXLEV-FULL(%02u), RXQUAL-FULL(%u), "
                  "RXLEV-SUB(%02u), RXQUAL-SUB(%u), "
diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c
index b5e5264..06fe3ed 100644
--- a/tests/power/bs_power_loop_test.c
+++ b/tests/power/bs_power_loop_test.c
@@ -47,11 +47,6 @@
        { DL_MEAS_FULL(rxqual, rxlev), \
          DL_MEAS_SUB(rxqual, rxlev) }

-#define DL_MEAS_FULL_SUB_INV(rxqual, rxlev) \
-       { DL_MEAS_FULL(rxqual, rxlev), \
-         DL_MEAS_SUB(rxqual, rxlev), \
-         .invalid = true }
-
 enum power_test_step_type {
        PWR_TEST_ST_IND_MEAS = 0,
        PWR_TEST_ST_SET_STATE,
@@ -77,7 +72,6 @@
                        uint8_t rxqual_sub;
                        uint8_t rxlev_full;
                        uint8_t rxlev_sub;
-                       bool invalid;
                } meas;
                /* Increase / reduce step size */
                struct {
@@ -131,14 +125,12 @@
                .rxlev_sub = step->meas.rxlev_sub,
                .rxqual_full = step->meas.rxqual_full,
                .rxqual_sub = step->meas.rxqual_sub,
-               /* NOTE: inversed logic (1 means invalid) */
-               .meas_valid = step->meas.invalid,
        };

-       printf("#%02u %s() -> Measurement Results (%svalid): "
+       printf("#%02u %s() -> Measurement Results (valid): "
               "RXLEV-FULL(%02u), RXQUAL-FULL(%u), "
               "RXLEV-SUB(%02u), RXQUAL-SUB(%u)\n",
-              n, __func__, step->meas.invalid ? "in" : "",
+              n, __func__,
               mr->rxlev_full, mr->rxqual_full,
               mr->rxlev_sub, mr->rxqual_sub);
 }
@@ -393,21 +385,6 @@
        { .meas = DL_MEAS_FULL_SUB(7, PWR_TEST_RXLEV_TARGET) }, /* max */
 };

-/* Verify that invalid measurement results are ignored. */
-static const struct power_test_step TC_inval_meas[] = {
-       /* Initial state: 16 dB, up to 20 dB */
-       { .type = PWR_TEST_ST_SET_STATE,
-         .state = { .current = 16, .max = 2 * 10 } },
-
-       /* MS sends invalid measurement results which must be ignored */
-       { .meas = DL_MEAS_FULL_SUB_INV(7, 63),                  .exp_txred = 16 
},
-       { .meas = DL_MEAS_FULL_SUB_INV(0, 0),                   .exp_txred = 16 
},
-
-       { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET),   .exp_txred = 16 
},
-       { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET),   .exp_txred = 16 
},
-       { .meas = DL_MEAS_FULL_SUB(0, PWR_TEST_RXLEV_TARGET),   .exp_txred = 16 
},
-};
-
 /* Verify handling of optional power control interval (P_Con_INTERVAL). */
 static const struct power_test_step TC_ctrl_interval[] = {
        /* Initial state: 0 dB, up to 20 dB */
@@ -529,7 +506,6 @@

        exec_test(TC_dtxd_mode);
        exec_test(TC_rxqual_ber);
-       exec_test(TC_inval_meas);
        exec_test(TC_ctrl_interval);

        exec_test(TC_rxlev_hyst);
diff --git a/tests/power/bs_power_loop_test.err 
b/tests/power/bs_power_loop_test.err
index dc4f411..24107ba 100644
--- a/tests/power/bs_power_loop_test.err
+++ b/tests/power/bs_power_loop_test.err
@@ -130,14 +130,6 @@
 (bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr 
-80, avg -80, thresh -80..-80] dBm, RxQual[curr 7, avg 7, thresh 3..0]
 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), 
RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL
 (bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr 
-80, avg -80, thresh -80..-80] dBm, RxQual[curr 7, avg 7, thresh 3..0]
-(bts=0,trx=0,ts=0,ss=0) The measurement results are not valid
-(bts=0,trx=0,ts=0,ss=0) The measurement results are not valid
-(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), 
RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL
-(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr 
-80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0]
-(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), 
RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL
-(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr 
-80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0]
-(bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), 
RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL
-(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr 
-80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0]
 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), 
RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL
 (bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, 
RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0]
 (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), 
RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL
diff --git a/tests/power/bs_power_loop_test.ok 
b/tests/power/bs_power_loop_test.ok
index 1001ba1..18a94ba 100644
--- a/tests/power/bs_power_loop_test.ok
+++ b/tests/power/bs_power_loop_test.ok
@@ -243,25 +243,6 @@
 #16 lchan_bs_pwr_ctrl() -> BS power reduction: 0 -> 0 (expected 0)
 Test case verdict: SUCCESS

-Starting test case 'TC_inval_meas'
-#00 exec_power_step() <- State (re)set (current 16 dB, max 20 dB)
-#01 enc_meas_rep() -> Measurement Results (invalid): RXLEV-FULL(63), 
RXQUAL-FULL(7), RXLEV-SUB(63), RXQUAL-SUB(7)
-#01 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 3f 7f 7e 00 00 00 00 00 00 00 00 00 
00 00 00 00
-#01 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16)
-#02 enc_meas_rep() -> Measurement Results (invalid): RXLEV-FULL(00), 
RXQUAL-FULL(0), RXLEV-SUB(00), RXQUAL-SUB(0)
-#02 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 00 40 00 00 00 00 00 00 00 00 00 00 
00 00 00 00
-#02 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16)
-#03 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), 
RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0)
-#03 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 
00 00 00 00
-#03 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16)
-#04 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), 
RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0)
-#04 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 
00 00 00 00
-#04 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16)
-#05 enc_meas_rep() -> Measurement Results (valid): RXLEV-FULL(30), 
RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0)
-#05 lchan_bs_pwr_ctrl() <- UL SACCH: 06 15 1e 1e 00 00 00 00 00 00 00 00 00 00 
00 00 00 00
-#05 lchan_bs_pwr_ctrl() -> BS power reduction: 16 -> 16 (expected 16)
-Test case verdict: SUCCESS
-
 Starting test case 'TC_ctrl_interval'
 #00 exec_power_step() <- State (re)set (current 0 dB, max 20 dB)
 #01 exec_power_step() <- (Re)set power control interval: 0 -> 0

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

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

Reply via email to