Change in osmo-pcu[master]: Tighten lqual table limits check

Max gerrit-no-reply at lists.osmocom.org
Wed Mar 6 18:06:44 UTC 2019


Max has uploaded this change for review. ( https://gerrit.osmocom.org/13151


Change subject: Tighten lqual table limits check
......................................................................

Tighten lqual table limits check

Previously MAX_GPRS_CS was used for both EDGE and GPRS which means that
we waste extra memory in GPRS case. It also leads to misleading
name. Let's fix this by introducing separate definitions for GPRS and
EDGE cases and use them as appropriate in limit checks.

Change-Id: I3ae1ee64ec8e80247b8fe669cc79505b4dadf58f
---
M src/bts.h
M src/gprs_ms.cpp
M src/pcu_main.cpp
3 files changed, 13 insertions(+), 9 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/51/13151/1

diff --git a/src/bts.h b/src/bts.h
index 578cece..b83ab4b 100644
--- a/src/bts.h
+++ b/src/bts.h
@@ -45,7 +45,9 @@
 
 #define LLC_CODEL_DISABLE 0
 #define LLC_CODEL_USE_DEFAULT (-1)
-#define MAX_GPRS_CS 9
+
+#define MAX_EDGE_MCS 9
+#define MAX_GPRS_CS 4
 
 /* see bts->gsmtap_categ_mask */
 enum pcu_gsmtap_category {
@@ -143,7 +145,7 @@
 	uint8_t cs_adj_upper_limit;
 	uint8_t cs_adj_lower_limit;
 	struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS];
-	struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_GPRS_CS];
+	struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS];
 	uint16_t cs_downgrade_threshold; /* downgrade if less packets left (DL) */
 	uint16_t ws_base;
 	uint16_t ws_pdch; /* increase WS by this value per PDCH */
diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp
index 740ef6b..87a35d1 100644
--- a/src/gprs_ms.cpp
+++ b/src/gprs_ms.cpp
@@ -620,7 +620,7 @@
 	int low;
 	int high;
 	GprsCodingScheme new_cs_ul = m_current_cs_ul;
-	unsigned current_cs_num = m_current_cs_ul.to_num();
+	uint8_t current_cs_num = m_current_cs_ul.to_num();
 
 	bts_data = m_bts->bts_data();
 
@@ -642,11 +642,13 @@
 	old_link_qual = meas->link_qual;
 
 	if (m_current_cs_ul.isGprs()) {
+		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;
 	} else if (m_current_cs_ul.isEgprs()) {
-		if (current_cs_num > MAX_GPRS_CS)
-			current_cs_num = MAX_GPRS_CS;
+		if (current_cs_num > MAX_EDGE_MCS)
+			current_cs_num = MAX_EDGE_MCS;
 		low  = bts_data->mcs_lqual_ranges[current_cs_num-1].low;
 		high = bts_data->mcs_lqual_ranges[current_cs_num-1].high;
 	} else {
diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp
index fe85160..a0f31d1 100644
--- a/src/pcu_main.cpp
+++ b/src/pcu_main.cpp
@@ -214,10 +214,10 @@
 	bts->cs_adj_enabled = 1;
 	bts->cs_adj_upper_limit = 33; /* Decrease CS if the error rate is above */
 	bts->cs_adj_lower_limit = 10; /* Increase CS if the error rate is below */
-	bts->max_cs_ul = 4;
-	bts->max_cs_dl = 4;
-	bts->max_mcs_ul = MAX_GPRS_CS;
-	bts->max_mcs_dl = MAX_GPRS_CS;
+	bts->max_cs_ul = MAX_GPRS_CS;
+	bts->max_cs_dl = MAX_GPRS_CS;
+	bts->max_mcs_ul = MAX_EDGE_MCS;
+	bts->max_mcs_dl = MAX_EDGE_MCS;
 	/* CS-1 to CS-4 */
 	bts->cs_lqual_ranges[0].low = -256;
 	bts->cs_lqual_ranges[0].high = 6;

-- 
To view, visit https://gerrit.osmocom.org/13151
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3ae1ee64ec8e80247b8fe669cc79505b4dadf58f
Gerrit-Change-Number: 13151
Gerrit-PatchSet: 1
Gerrit-Owner: Max <msuraev at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190306/3eb8a5dc/attachment.html>


More information about the gerrit-log mailing list