aboutsummaryrefslogtreecommitdiffstats
path: root/src/bts.cpp
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-05-08 15:12:56 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2020-05-08 16:35:51 +0200
commit98eb03c391145dad40de6f052fe04d2f03a6fe11 (patch)
treebe1240c197359616fa9c0948281f7c0b8e83509a /src/bts.cpp
parent9ee90d2323cfba7ab9ee2f6c98520e56391102a0 (diff)
bts: Fix Decoding EGPRS MultislotClass from 11-bit EGPRS PACKET CHANNEL REQUEST
In osmo-pcu datatructures, the variables holding multislot classes simply contain an integer referring to the multislot class number, instead of coding from 3GPP TS 44.060 Table 11.2.5.3 and Table 11.2.5a.3. So coding Multislot class 3 is stored as 0x03 in osmo-pcu variables, while in 3GPP TS 44.060 coding it's coded as 0x02 (N-1). This allows us using value 0x00 to designate a "yet unknown (EGPRS) Multislot class". Hence, we need to add 1 to the decoded value to match our data structures. Change-Id: Id3b121272bb7e84c0542ae9b4ce09598c6054edd
Diffstat (limited to 'src/bts.cpp')
-rw-r--r--src/bts.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/bts.cpp b/src/bts.cpp
index 8edde232..a43613ed 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -676,7 +676,7 @@ uint32_t BTS::rfn_to_fn(int32_t rfn)
static inline uint16_t egprs_mslot_class_from_ra(uint16_t ra, bool is_11bit)
{
if (is_11bit)
- return (ra & 0x3e0) >> 5;
+ return ((ra & 0x3e0) >> 5) + 1;
/* set EGPRS multislot class to 0 for 8-bit RACH, since we don't know it yet */
return 0;