diff options
authorHarald Welte <laforge@gnumonks.org>2019-05-23 23:50:41 +0200
committerHarald Welte <laforge@gnumonks.org>2019-05-24 11:06:42 +0200
commit03e3fae639a46fe5a2cffbda640c3a4a224beb51 (patch)
parent095654d361681b3218dc18deaea426cea92b4328 (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
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 */