aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2016-01-20 12:30:46 +0100
committerJacob Erlbeck <jerlbeck@sysmocom.de>2016-02-08 00:45:35 +0100
commit3b1c5537731cc63125f1b82c0e6149372a7fe0da (patch)
tree605a345a428f02b030fa80bacac681f5064f7e4a
parent9b3d7e015968bdb0a9f1a3642c1047d875d7049f (diff)
edge: Work-around to use EGPRS if there was no DL RA Cap
If the downlink BSSGP didn't contain a RA Capabilities IE, both MS class values are 0. The phone will send valid RA Caps later on. Currently in that case, the downlink TBF is not established if EGPRS is enabled. Just force egprs_ms_class to 1 if EGPRS (only) is enabled. Sponsored-by: On-Waves ehf
-rw-r--r--src/tbf.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/tbf.cpp b/src/tbf.cpp
index db63a08d..9f19c9b7 100644
--- a/src/tbf.cpp
+++ b/src/tbf.cpp
@@ -687,10 +687,13 @@ struct gprs_rlcmac_dl_tbf *tbf_alloc_dl_tbf(struct gprs_rlcmac_bts *bts,
int rc;
if (egprs_ms_class == 0 && bts->egprs_enabled) {
- LOGP(DRLCMAC, LOGL_NOTICE,
- "Not accepting non-EGPRS phone in EGPRS-only mode\n");
- bts->bts->tbf_failed_egprs_only();
- return NULL;
+ if (ms_class > 0) {
+ LOGP(DRLCMAC, LOGL_NOTICE,
+ "Not accepting non-EGPRS phone in EGPRS-only mode\n");
+ bts->bts->tbf_failed_egprs_only();
+ return NULL;
+ }
+ egprs_ms_class = 1;
}
LOGP(DRLCMAC, LOGL_DEBUG, "********** TBF starts here **********\n");