aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2020-11-26 14:48:01 +0100
committerfixeria <vyanitskiy@sysmocom.de>2020-12-02 13:56:49 +0000
commit369c852022f95bf04f3504e823a6ca008e0f11d0 (patch)
treeebb2e1f190bb890986a116ebd0b5cfa3ac1a8d52
parentbts: generalize a struct for UL/DL power control parameters (diff)
downloadOsmoBTS-369c852022f95bf04f3504e823a6ca008e0f11d0.tar.xz
OsmoBTS-369c852022f95bf04f3504e823a6ca008e0f11d0.zip
bts: add Downlink power control parameters
Change-Id: I724f661e9ce5dd75f95fb7b270a89b2e2a73c951 Related: SYS#4918
-rw-r--r--include/osmo-bts/bts.h3
-rw-r--r--src/common/bts.c18
-rw-r--r--tests/power/power_test.c1
3 files changed, 17 insertions, 5 deletions
diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h
index 129764e6..3847a26e 100644
--- a/include/osmo-bts/bts.h
+++ b/include/osmo-bts/bts.h
@@ -317,8 +317,9 @@ struct gsm_bts {
bool vty_override; /* OML value overridden by VTY */
} radio_link_timeout;
- /* Uplink power control */
+ /* Uplink/Downlink power control */
struct bts_power_ctrl_params ul_power_ctrl;
+ struct bts_power_ctrl_params dl_power_ctrl;
/* used by the sysmoBTS to adjust band */
uint8_t auto_band;
diff --git a/src/common/bts.c b/src/common/bts.c
index 80f4fddb..a974b9f6 100644
--- a/src/common/bts.c
+++ b/src/common/bts.c
@@ -323,16 +323,26 @@ int bts_init(struct gsm_bts *bts)
/* configurable via VTY */
bts->paging_state = paging_init(bts, 200, 0);
- bts->ul_power_ctrl.target = -75; /* dBm default */
- bts->ul_power_ctrl.hysteresis = 3; /* -78 .. -72 dBm */
- bts->ul_power_ctrl.pf_algo = BTS_PF_ALGO_EWMA;
- bts->ul_power_ctrl.pf.ewma.alpha = 50; /* 50% smoothing */
bts->rtp_jitter_adaptive = false;
bts->rtp_port_range_start = 16384;
bts->rtp_port_range_end = 17407;
bts->rtp_port_range_next = bts->rtp_port_range_start;
bts->rtp_ip_dscp = -1;
+ /* Default UL/DL power control parameters */
+ bts->ul_power_ctrl = bts->dl_power_ctrl = \
+ (struct bts_power_ctrl_params) {
+ .target = -75, /* dBm default */
+ .hysteresis = 3, /* -78 .. -72 dBm */
+ .pf_algo = BTS_PF_ALGO_EWMA,
+ .pf = {
+ .ewma = {
+ /* 50% smoothing */
+ .alpha = 50
+ }
+ }
+ };
+
/* configurable via OML */
bts->load.ccch.load_ind_period = 112;
load_timer_start(bts);
diff --git a/tests/power/power_test.c b/tests/power/power_test.c
index 14bef086..f1b910b8 100644
--- a/tests/power/power_test.c
+++ b/tests/power/power_test.c
@@ -48,6 +48,7 @@ static void init_test(const char *name)
g_trx->ms_pwr_ctl_soft = true;
g_bts->ul_power_ctrl.target = -75;
+ g_bts->dl_power_ctrl.target = -75;
g_bts->band = GSM_BAND_1800;
g_bts->c0 = g_trx;