aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2016-01-07 16:47:34 +0100
committerJacob Erlbeck <jerlbeck@sysmocom.de>2016-02-05 13:25:43 +0100
commita47aaa4e7a833ab7ae3a2b995dd533f2402751b1 (patch)
tree02d0b291536feb0af2177c04407f7e5d098d5f9b
parent08f631c1978a128bc516923d9c33bc3198e22a33 (diff)
edge: Add work-around to get DL EGPRS from MS object
The EGPRS multi-slot class need to be parsed from the CSN.1 RA capability (see gprs_bssgp_pcu_rx_dl_ud). This commit adds a workaround to get the EGPRS MS class from the MS object if that is present. Sponsored-by: On-Waves ehf
-rw-r--r--src/tbf_dl.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index 9e73a0e3..73d8a3bc 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -180,7 +180,7 @@ static int tbf_new_dl_assignment(struct gprs_rlcmac_bts *bts,
*/
int gprs_rlcmac_dl_tbf::handle(struct gprs_rlcmac_bts *bts,
const uint32_t tlli, const uint32_t tlli_old, const char *imsi,
- const uint8_t ms_class, const uint8_t egprs_ms_class,
+ const uint8_t ms_class, uint8_t egprs_ms_class,
const uint16_t delay_csec,
const uint8_t *data, const uint16_t len)
{
@@ -193,6 +193,10 @@ int gprs_rlcmac_dl_tbf::handle(struct gprs_rlcmac_bts *bts,
if (ms)
dl_tbf = ms->dl_tbf();
+ /* Work-around to get EGPRS MS class */
+ if (ms && !egprs_ms_class)
+ egprs_ms_class = ms->egprs_ms_class();
+
if (ms && strlen(ms->imsi()) == 0) {
ms_old = bts->bts->ms_store().get_ms(0, 0, imsi);
if (ms_old && ms_old != ms) {