aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2019-10-25 16:40:10 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2019-10-28 11:05:29 +0100
commit1e9d4feba5c767a1190d42243d738c252de0e490 (patch)
tree2549ac86fec2c354895f9f3a23fbc54c3a4c6cca /src
parenta456f2bd15ae3a7e35d04b75df5009bf7387af8d (diff)
bts-trx: loops.c: Take into account RSL CHAN ACT ms power level limits
TS 48.058 sec 4.8 MS power control: """ TRX then attempts to keep the power control parameters within the limits set by the MS POWER CONTROL message (or by the CHANNEL ACTIVATION message) by changing the MS Power Level field of the L1 header sent to MS in each SACCH block. """ Fixes TTCN3 BTS_Tests.TC_rsl_ms_pwr_dyn_max Change-Id: Ifda92155bd9c277ac150a327a7ab63c854087788
Diffstat (limited to 'src')
-rw-r--r--src/osmo-bts-trx/loops.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/osmo-bts-trx/loops.c b/src/osmo-bts-trx/loops.c
index 8a5dd2e1..4e77bca3 100644
--- a/src/osmo-bts-trx/loops.c
+++ b/src/osmo-bts-trx/loops.c
@@ -57,6 +57,10 @@ static void ms_power_diff(struct gsm_lchan *lchan, int8_t diff)
if (new_power < 0)
new_power = 0;
+ /* Don't ask for smaller ms power level than the one set by BSC upon RSL CHAN ACT */
+ if (new_power < lchan->ms_power)
+ new_power = lchan->ms_power;
+
/* saturate at the maximum possible power level for the given band */
// FIXME: to go above 1W, we need to know classmark of MS
if (arfcn >= 512 && arfcn <= 885) {