diff options
Diffstat (limited to 'include/osmo-bts')
-rw-r--r-- | include/osmo-bts/bts.h | 21 | ||||
-rw-r--r-- | include/osmo-bts/gsm_data.h | 3 |
2 files changed, 24 insertions, 0 deletions
diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 9df7f087..db8f741d 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -95,6 +95,12 @@ struct bts_smscb_state { struct smscb_msg *default_msg; /* default broadcast message; NULL if none */ }; +/* Tx power filtering algorithm */ +enum ms_ul_pf_algo { + MS_UL_PF_ALGO_NONE = 0, + MS_UL_PF_ALGO_EWMA, +}; + /* One BTS */ struct gsm_bts { /* list header in net->bts_list */ @@ -290,8 +296,23 @@ struct gsm_bts { bool vty_override; /* OML value overridden by VTY */ } radio_link_timeout; + /* TODO: move it to bts->ul_power_ctrl struct */ int ul_power_target; /* Uplink Rx power target */ + /* Uplink power control */ + struct { + /* UL RSSI filtering algorithm */ + enum ms_ul_pf_algo pf_algo; + /* (Optional) filtering parameters */ + union { + /* Exponentially Weighted Moving Average */ + struct { + /* Smoothing factor: higher the value - less smoothing */ + uint8_t alpha; /* 1 .. 99 (in %) */ + } ewma; + } pf; + } ul_power_ctrl; + /* used by the sysmoBTS to adjust band */ uint8_t auto_band; diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index c6fe6090..1c1c5d44 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -286,6 +286,9 @@ struct gsm_lchan { uint8_t current; uint8_t max; bool fixed; + + /* Scaled up (100 times) average UL RSSI */ + int avg100_ul_rssi; } ms_power_ctrl; /* BTS power reduction (in dB) */ |