aboutsummaryrefslogtreecommitdiffstats
path: root/src/gprs_ms.cpp
diff options
context:
space:
mode:
authorMinh-Quang Nguyen <minh-quang.nguyen@nutaq.com>2017-08-16 09:50:06 -0400
committerHarald Welte <laforge@gnumonks.org>2017-08-18 18:09:24 +0000
commit1f189093358fd87b11cd2e83a43b719fc6858e3e (patch)
treeb5195db2f727c36313bdac9b296d23ec59ffbbff /src/gprs_ms.cpp
parentb1be6112bb6ffd5a3b2ae046c5f5fa5b65623dde (diff)
EDGE: Fix UL link adaptation.
We have seen that UL MCS5- MCS9 link adaptation has not been implemented in current PCU implementation. If the MS slowly moves far away from the BTS, the UL MCS will always stick at MCS9 no matter UL link quality values leading to poor data service experience. The UL MCS is expected to adapt from MCS9 -> MCSx due to bad UL quality. Below PCU traces indicate that UL MCS is quickly increasing to MCS9 (max MCS 9 was used in this test) and it never changes to other UL MCS due zero thresholds. <0004> gprs_ms.cpp:670 MS (IMSI ): Link quality 23dB (23dB) left window [0, 0], modifying uplink CS level: MCS-6 -> MCS-7 <0004> gprs_ms.cpp:670 MS (IMSI 000): Link quality 23dB (23dB) left window [0, 0], modifying uplink CS level: MCS-7 -> MCS-8 <0004> gprs_ms.cpp:670 MS (IMSI 000): Link quality 23dB (23dB) left window [0, 0], modifying uplink CS level: MCS-8 -> MCS-9 Change-Id: I9272c337ad6399da4a47cc6e2736e25f24e099d8
Diffstat (limited to 'src/gprs_ms.cpp')
-rw-r--r--src/gprs_ms.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp
index c6b7e34b..66312fa9 100644
--- a/src/gprs_ms.cpp
+++ b/src/gprs_ms.cpp
@@ -624,7 +624,7 @@ void GprsMs::update_cs_ul(const pcu_l1_meas *meas)
bts_data = m_bts->bts_data();
if (!max_cs_ul) {
- LOGP(DRLCMACDL, LOGL_ERROR,
+ LOGP(DRLCMACMEAS, LOGL_ERROR,
"max_cs_ul cannot be derived (current UL CS: %s)\n",
m_current_cs_ul.name());
return;
@@ -642,11 +642,10 @@ void GprsMs::update_cs_ul(const pcu_l1_meas *meas)
low = bts_data->cs_lqual_ranges[current_cs_num-1].low;
high = bts_data->cs_lqual_ranges[current_cs_num-1].high;
} else if (m_current_cs_ul.isEgprs()) {
- /* TODO, use separate table */
if (current_cs_num > MAX_GPRS_CS)
current_cs_num = MAX_GPRS_CS;
- low = bts_data->cs_lqual_ranges[current_cs_num-1].low;
- high = bts_data->cs_lqual_ranges[current_cs_num-1].high;
+ low = bts_data->mcs_lqual_ranges[current_cs_num-1].low;
+ high = bts_data->mcs_lqual_ranges[current_cs_num-1].high;
} else {
return;
}
@@ -661,7 +660,7 @@ void GprsMs::update_cs_ul(const pcu_l1_meas *meas)
new_cs_ul.inc(mode());
if (m_current_cs_ul != new_cs_ul) {
- LOGP(DRLCMACDL, LOGL_INFO,
+ LOGP(DRLCMACMEAS, LOGL_INFO,
"MS (IMSI %s): "
"Link quality %ddB (%ddB) left window [%d, %d], "
"modifying uplink CS level: %s -> %s\n",