diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2015-07-08 12:18:33 +0200 |
---|---|---|
committer | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2015-07-16 10:24:37 +0200 |
commit | 57cf69a18ccceac4b250dceb56c4e0d5f0018a95 (patch) | |
tree | dd72f2e89f87913317b9529284be7dee65dafe8f /src/gprs_rlcmac_ts_alloc.cpp | |
parent | dd08ac86e6fa1ea69e78c344424d72fc9d79d6d7 (diff) |
alloc: Fix MS_B/MS_C interpretation
Currently the handling of MS_B and MS_C is not compliant with TS
45.002, annex B.1. These values may only interpreted as 0, if
frequency hopping is not enabled and if there is no change from Rx to
Tx or vice-versa.
This commit sets Ttb/Trb to 1 if the table entry is MS_B/MS_C, since
only combined down/up access modes are supported.
Sponsored-by: On-Waves ehf
Diffstat (limited to 'src/gprs_rlcmac_ts_alloc.cpp')
-rw-r--r-- | src/gprs_rlcmac_ts_alloc.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index b9d4e41a..ec228d1a 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -405,13 +405,21 @@ static int find_multi_slots(struct gprs_rlcmac_bts *bts, Trb = ms_class->rb; Type = ms_class->type; - /* Tta and Ttb may depend on hopping or frequency change */ - /* TODO: Set them to 1 */ - if (Ttb == MS_A || Ttb == MS_B) + /* MS_A maps to 0 if frequency hopping is disabled */ + /* TODO: Set it to 1 if FH is implemented and enabled */ + if (Ttb == MS_A) Ttb = 0; - if (Trb == MS_A || Trb == MS_C) + if (Trb == MS_A) Trb = 0; + /* MS_A and MS_B are 0 iff FH is disabled and there is no Tx/Rx change. + * This is never the case with the current implementation, so 1 will + * always be used. */ + if (Ttb == MS_B) + Ttb = 1; + if (Trb == MS_C) + Trb = 1; + LOGP(DRLCMAC, LOGL_DEBUG, "- Rx=%d Tx=%d Sum Rx+Tx=%s Tta=%s Ttb=%d " " Tra=%d Trb=%d Type=%d\n", ms_class->rx, Tx, (Sum == MS_NA) ? "N/A" : digit[Sum], |