diff options
author | Harald Welte <laforge@gnumonks.org> | 2019-05-23 23:50:41 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2019-05-24 11:06:42 +0200 |
commit | 03e3fae639a46fe5a2cffbda640c3a4a224beb51 (patch) | |
tree | 49d1c312b9eb52a24ea8f33087d99efecb6c4a0e /src/common/l1sap.c | |
parent | 095654d361681b3218dc18deaea426cea92b4328 (diff) |
l1sap: Correctly count RACH slots in calc_exprd_rach_frames()
We used a bogus multiplication factor of four when computing the number
of expired RACH slots. While there are four RACH slots per block (i.e.
4 times more RACH received than normal MAC blocks), that multiplier
doesn't apply here: We are calling this function per *frame* and not
per *block*. So the maximum number of RACH slots per *frame* is (in
most suual cases with a single CCCH) at maximum 1. Only some obscure
configurations with multiple CCCHs in a single cell would render higher
values. In any case, *blocks* never even enter this equation.
This wrong multiplier resulted in rather weird RACH load reports to the
BSC.
Related: OS#3750
Change-Id: I6b14fd6e7819f9164fb4a09b432a9f419e3b6e5c
Diffstat (limited to 'src/common/l1sap.c')
-rw-r--r-- | src/common/l1sap.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/common/l1sap.c b/src/common/l1sap.c index f31d8229..d9ffdb8f 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -484,10 +484,7 @@ static unsigned int calc_exprd_rach_frames(struct gsm_bts *bts, uint32_t fn) rach_frames_expired = 1; } - /* Each Frame has room for 4 RACH slots, since RACH - * slots are short enough to fit into a single radio - * burst, so we need to multiply the final result by 4 */ - return rach_frames_expired * 4; + return rach_frames_expired; } /* time information received from bts model */ |