diff options
-rw-r--r-- | src/pcu_vty.c | 5 | ||||
-rw-r--r-- | src/tbf.cpp | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 5196ae24..aa29b4c6 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -169,7 +169,10 @@ DEFUN(cfg_pcu_egprs, bts->egprs_enabled = 1; - vty_out(vty, "%%Note that EGPRS support is in an experimental state. " + vty_out(vty, "%%Note that EGPRS support is in an experimental state " + "and the PCU will currently fail to use a TBF if the MS is capable " + "to do EGPRS. You may want to disable this feature by entering " + "the \"no egprs\" command. " "Do not use this in production!%s", VTY_NEWLINE); return CMD_SUCCESS; diff --git a/src/tbf.cpp b/src/tbf.cpp index 2d0aa9fd..590d1151 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -546,6 +546,12 @@ static int setup_tbf(struct gprs_rlcmac_tbf *tbf, bts = tbf->bts->bts_data(); + if (egprs_ms_class > 0 && bts->egprs_enabled) { + /* TODO: only for 8PSK, otherwise the GPRS MS class has to be used */ + ms_class = egprs_ms_class; + tbf->enable_egprs(); + } + tbf->m_created_ts = time(NULL); tbf->set_ms_class(ms_class); /* select algorithm */ @@ -924,7 +930,7 @@ struct msgb *gprs_rlcmac_tbf::create_ul_ass(uint32_t fn) Encoding::write_packet_uplink_assignment(bts_data(), ass_vec, m_tfi, (direction == GPRS_RLCMAC_DL_TBF), tlli(), is_tlli_valid(), new_tbf, 1, bts_data()->alpha, - bts_data()->gamma, -1, 0); + bts_data()->gamma, -1, is_egprs_enabled()); bitvec_pack(ass_vec, msgb_put(msg, 23)); RlcMacDownlink_t * mac_control_block = (RlcMacDownlink_t *)talloc_zero(tall_pcu_ctx, RlcMacDownlink_t); LOGP(DRLCMAC, LOGL_DEBUG, "+++++++++++++++++++++++++ TX : Packet Uplink Assignment +++++++++++++++++++++++++\n"); |