Get rid of bts->egprs_enabled
BTS simply notifies the PCU about the supported MCS, and PCU is
responsible for providing correct data formatting supported for the BTS
and the target MS.
Related: OS#4544
Change-Id: Ifcf23771bd23afc64ca6fea38948f98f2d134ecb
diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp
index f87681c..4865211 100644
--- a/src/gprs_bssgp_pcu.cpp
+++ b/src/gprs_bssgp_pcu.cpp
@@ -740,18 +740,23 @@
{
int num = 0;
int i;
+ bool mcs_any = false;
- if (bts->egprs_enabled) {
+ /* First check if we support any MCS: */
+ for (i = 8; i >= 0; i--) {
+ if (bts->mcs_mask & (1 << i)) {
+ num = i + 1;
+ mcs_any = true;
+ break;
+ }
+ }
+
+ if (mcs_any) {
if (!bts->cs_adj_enabled) {
if (bts->initial_mcs_dl) {
num = bts->initial_mcs_dl;
} else {
- for (i = 8; i >= 0; i--) {
- if (bts->mcs_mask & (1 << i)) {
- num = i + 1;
- break;
- }
- }
+ /* We found "num" for free in the loop above */
}
} else if (bts->bts->max_mcs_dl()) {
num = bts->bts->max_mcs_dl();
@@ -808,6 +813,9 @@
ms_bucket_size = bts->fc_ms_bucket_size;
ms_leak_rate = bts->fc_ms_leak_rate;
+ /* FIXME: This calculation is mostly wrong. It should be done based on
+ currently established TBF (and whether the related (egprs)_ms_class
+ as per which CS/MCS they support). */
if (leak_rate == 0) {
int meas_rate;
int usage; /* in 0..1000 */