<p>Max has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/13151">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Tighten lqual table limits check<br><br>Previously MAX_GPRS_CS was used for both EDGE and GPRS which means that<br>we waste extra memory in GPRS case. It also leads to misleading<br>name. Let's fix this by introducing separate definitions for GPRS and<br>EDGE cases and use them as appropriate in limit checks.<br><br>Change-Id: I3ae1ee64ec8e80247b8fe669cc79505b4dadf58f<br>---<br>M src/bts.h<br>M src/gprs_ms.cpp<br>M src/pcu_main.cpp<br>3 files changed, 13 insertions(+), 9 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/51/13151/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/bts.h b/src/bts.h</span><br><span>index 578cece..b83ab4b 100644</span><br><span>--- a/src/bts.h</span><br><span>+++ b/src/bts.h</span><br><span>@@ -45,7 +45,9 @@</span><br><span> </span><br><span> #define LLC_CODEL_DISABLE 0</span><br><span> #define LLC_CODEL_USE_DEFAULT (-1)</span><br><span style="color: hsl(0, 100%, 40%);">-#define MAX_GPRS_CS 9</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define MAX_EDGE_MCS 9</span><br><span style="color: hsl(120, 100%, 40%);">+#define MAX_GPRS_CS 4</span><br><span> </span><br><span> /* see bts->gsmtap_categ_mask */</span><br><span> enum pcu_gsmtap_category {</span><br><span>@@ -143,7 +145,7 @@</span><br><span>    uint8_t cs_adj_upper_limit;</span><br><span>  uint8_t cs_adj_lower_limit;</span><br><span>  struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS];</span><br><span style="color: hsl(0, 100%, 40%);">-      struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_GPRS_CS];</span><br><span style="color: hsl(120, 100%, 40%);">+   struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS];</span><br><span>         uint16_t cs_downgrade_threshold; /* downgrade if less packets left (DL) */</span><br><span>   uint16_t ws_base;</span><br><span>    uint16_t ws_pdch; /* increase WS by this value per PDCH */</span><br><span>diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp</span><br><span>index 740ef6b..87a35d1 100644</span><br><span>--- a/src/gprs_ms.cpp</span><br><span>+++ b/src/gprs_ms.cpp</span><br><span>@@ -620,7 +620,7 @@</span><br><span>    int low;</span><br><span>     int high;</span><br><span>    GprsCodingScheme new_cs_ul = m_current_cs_ul;</span><br><span style="color: hsl(0, 100%, 40%);">-   unsigned current_cs_num = m_current_cs_ul.to_num();</span><br><span style="color: hsl(120, 100%, 40%);">+   uint8_t current_cs_num = m_current_cs_ul.to_num();</span><br><span> </span><br><span>       bts_data = m_bts->bts_data();</span><br><span> </span><br><span>@@ -642,11 +642,13 @@</span><br><span>         old_link_qual = meas->link_qual;</span><br><span> </span><br><span>      if (m_current_cs_ul.isGprs()) {</span><br><span style="color: hsl(120, 100%, 40%);">+               if (current_cs_num > MAX_GPRS_CS)</span><br><span style="color: hsl(120, 100%, 40%);">+                  current_cs_num = MAX_GPRS_CS;</span><br><span>                low  = bts_data->cs_lqual_ranges[current_cs_num-1].low;</span><br><span>           high = bts_data->cs_lqual_ranges[current_cs_num-1].high;</span><br><span>  } else if (m_current_cs_ul.isEgprs()) {</span><br><span style="color: hsl(0, 100%, 40%);">-         if (current_cs_num > MAX_GPRS_CS)</span><br><span style="color: hsl(0, 100%, 40%);">-                    current_cs_num = MAX_GPRS_CS;</span><br><span style="color: hsl(120, 100%, 40%);">+         if (current_cs_num > MAX_EDGE_MCS)</span><br><span style="color: hsl(120, 100%, 40%);">+                 current_cs_num = MAX_EDGE_MCS;</span><br><span>               low  = bts_data->mcs_lqual_ranges[current_cs_num-1].low;</span><br><span>          high = bts_data->mcs_lqual_ranges[current_cs_num-1].high;</span><br><span>         } else {</span><br><span>diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp</span><br><span>index fe85160..a0f31d1 100644</span><br><span>--- a/src/pcu_main.cpp</span><br><span>+++ b/src/pcu_main.cpp</span><br><span>@@ -214,10 +214,10 @@</span><br><span>        bts->cs_adj_enabled = 1;</span><br><span>  bts->cs_adj_upper_limit = 33; /* Decrease CS if the error rate is above */</span><br><span>        bts->cs_adj_lower_limit = 10; /* Increase CS if the error rate is below */</span><br><span style="color: hsl(0, 100%, 40%);">-   bts->max_cs_ul = 4;</span><br><span style="color: hsl(0, 100%, 40%);">-  bts->max_cs_dl = 4;</span><br><span style="color: hsl(0, 100%, 40%);">-  bts->max_mcs_ul = MAX_GPRS_CS;</span><br><span style="color: hsl(0, 100%, 40%);">-       bts->max_mcs_dl = MAX_GPRS_CS;</span><br><span style="color: hsl(120, 100%, 40%);">+     bts->max_cs_ul = MAX_GPRS_CS;</span><br><span style="color: hsl(120, 100%, 40%);">+      bts->max_cs_dl = MAX_GPRS_CS;</span><br><span style="color: hsl(120, 100%, 40%);">+      bts->max_mcs_ul = MAX_EDGE_MCS;</span><br><span style="color: hsl(120, 100%, 40%);">+    bts->max_mcs_dl = MAX_EDGE_MCS;</span><br><span>   /* CS-1 to CS-4 */</span><br><span>   bts->cs_lqual_ranges[0].low = -256;</span><br><span>       bts->cs_lqual_ranges[0].high = 6;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13151">change 13151</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/13151"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I3ae1ee64ec8e80247b8fe669cc79505b4dadf58f </div>
<div style="display:none"> Gerrit-Change-Number: 13151 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Max <msuraev@sysmocom.de> </div>