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
This commit is contained in:
Harald Welte 2019-05-23 23:50:41 +02:00
parent 095654d361
commit 03e3fae639
1 changed files with 1 additions and 4 deletions

View File

@ -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 */