fix egprs_mslot_class_from_ra(): multislot class may not be present

For more details, see 3GPP TS 44.060, table 11.2.5a.2.

Change-Id: Iba0466b29afd26cff317ed4fb6749f8a3079f16a
Signed-off-by: Vadim Yanitskiy <axilirator@gmail.com>
Related: OS#1548
This commit is contained in:
Vadim Yanitskiy 2020-05-09 17:18:40 +07:00 committed by laforge
parent db9ea55c6e
commit f094b46d1c
1 changed files with 2 additions and 1 deletions

View File

@ -675,7 +675,8 @@ uint32_t BTS::rfn_to_fn(int32_t rfn)
*/
static inline uint8_t egprs_mslot_class_from_ra(uint16_t ra, bool is_11bit)
{
if (is_11bit)
/* EGPRS multislot class is only present in One Phase Access Request */
if (is_11bit && (ra >> 10) == 0x00) /* .0xx xxx. .... */
return ((ra & 0x3e0) >> 5) + 1;
/* set EGPRS multislot class to 0 for 8-bit RACH, since we don't know it yet */