diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2016-01-07 16:47:34 +0100 |
---|---|---|
committer | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2016-02-05 13:25:43 +0100 |
commit | a47aaa4e7a833ab7ae3a2b995dd533f2402751b1 (patch) | |
tree | 02d0b291536feb0af2177c04407f7e5d098d5f9b /src/tbf_dl.cpp | |
parent | 08f631c1978a128bc516923d9c33bc3198e22a33 (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
Diffstat (limited to 'src/tbf_dl.cpp')
-rw-r--r-- | src/tbf_dl.cpp | 6 |
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) { |