aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2020-06-15 18:51:01 +0700
committerVadim Yanitskiy <vyanitskiy@sysmocom.de>2020-06-15 22:51:20 +0700
commitdf26770d41cc8eed01401ab03f4769e3cc3f0c3e (patch)
treef956eba9c4899a8a2baa2e0d0b31ed81fdd34a27 /include
parent906a9b5e71aa5d3d814d57fbcc7190faa06ab200 (diff)
A-bis/RSL: refactor handling of BS Power IE (power reduction)
According to 3GPP TS 08.58, section 9.3.4, BS Power IE indicates the transmission power attenuation on a particular channel: +--------------+---------+-----------------+ | Reserved (3) | FPC (1) | Power level (4) | +--------------+---------+-----------------+ so let's change handling of this IE as follows: - s/bs_power/bs_power_red/g, so it reflects 'reduction'; - store power attenuation value in dB, not in 2 db steps; - get rid of ms_power_ctrl.bts_tx_pwr, it's always 0 anyway; - fix rsl_tx_meas_res(): use lchan->bs_power_red; - always check if FPC (Fast Power Control) flag is set; - we don't support it, so reject messages containing it; - fix rsl_rx_chan_activ(): properly apply the bitmask. Change-Id: I16cc50dfca102030380a06e16c234d5f6698f38f
Diffstat (limited to 'include')
-rw-r--r--include/osmo-bts/gsm_data_shared.h7
-rw-r--r--include/osmo-bts/tx_power.h6
2 files changed, 6 insertions, 7 deletions
diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h
index 7cfbfeb2..bbc1bd45 100644
--- a/include/osmo-bts/gsm_data_shared.h
+++ b/include/osmo-bts/gsm_data_shared.h
@@ -193,8 +193,6 @@ struct gsm_lchan {
uint8_t flags;
/* RSL measurement result number, 0 at lchan_act */
uint8_t res_nr;
- /* current Tx power level of the BTS */
- uint8_t bts_tx_pwr;
/* number of measurements stored in array below */
uint8_t num_ul_meas;
struct bts_ul_meas uplink[MAX_NUM_UL_MEAS];
@@ -267,8 +265,9 @@ struct gsm_lchan {
uint8_t max;
bool fixed;
} ms_power_ctrl;
- /* Power levels for BTS */
- uint8_t bs_power;
+
+ /* BTS power reduction (in dB) */
+ uint8_t bs_power_red;
struct msgb *pending_rel_ind_msg;
diff --git a/include/osmo-bts/tx_power.h b/include/osmo-bts/tx_power.h
index 10129eb1..8f331008 100644
--- a/include/osmo-bts/tx_power.h
+++ b/include/osmo-bts/tx_power.h
@@ -62,15 +62,15 @@ int get_p_max_out_mdBm(struct gsm_bts_trx *trx);
int get_p_nominal_mdBm(struct gsm_bts_trx *trx);
-int get_p_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_ie);
+int get_p_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_red);
int get_p_target_mdBm_lchan(struct gsm_lchan *lchan);
int get_p_actual_mdBm(struct gsm_bts_trx *trx, int p_target_mdBm);
-int get_p_trxout_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_ie);
+int get_p_trxout_target_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_red);
int get_p_trxout_target_mdBm_lchan(struct gsm_lchan *lchan);
-int get_p_trxout_actual_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_ie);
+int get_p_trxout_actual_mdBm(struct gsm_bts_trx *trx, uint8_t bs_power_red);
int get_p_trxout_actual_mdBm_lchan(struct gsm_lchan *lchan);
int power_ramp_start(struct gsm_bts_trx *trx, int p_total_tgt_mdBm, int bypass);