<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/16317">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  fixeria: Looks good to me, but someone else must approve
  neels: Looks good to me, approved
  laforge: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Clarify (M)CS related VTY attributes<br><br>Some are used to control (M)CS values for downlink while some do it for<br>uplink. Let's make clear which one is used for what. Take the chance to<br>document the fields a bit better than they were.<br><br>Some more information about the origin of cs_downgrade_threshold can be<br>found in the commit introducing it: 70b96aa232bd9784a94247bf7b193cb2147ada9d.<br><br>Related: OS#4286<br>Change-Id: I4e890e924b094a1937fbd3794de96704cf0421a8<br>---<br>M doc/manuals/vty/osmo-pcu_vty_reference.xml<br>M src/bts.h<br>M src/pcu_vty.c<br>3 files changed, 17 insertions(+), 14 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/doc/manuals/vty/osmo-pcu_vty_reference.xml b/doc/manuals/vty/osmo-pcu_vty_reference.xml</span><br><span>index eed4d83..da6c76c 100644</span><br><span>--- a/doc/manuals/vty/osmo-pcu_vty_reference.xml</span><br><span>+++ b/doc/manuals/vty/osmo-pcu_vty_reference.xml</span><br><span>@@ -1536,7 +1536,7 @@</span><br><span>     <command id='cs threshold &lt;0-100&gt; &lt;0-100&gt;'></span><br><span>       <params></span><br><span>         <param name='cs' doc='Coding Scheme configuration' /></span><br><span style="color: hsl(0, 100%, 40%);">-        <param name='threshold' doc='set thresholds for error rate based CS adjustment' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='threshold' doc='set thresholds for error rate based downlink (M)CS adjustment' /></span><br><span>         <param name='&lt;0-100&gt;' doc='lower limit in %' /></span><br><span>         <param name='&lt;0-100&gt;' doc='upper limit in %' /></span><br><span>       </params></span><br><span>@@ -1545,13 +1545,13 @@</span><br><span>       <params></span><br><span>         <param name='no' doc='Negate a command or set its defaults' /></span><br><span>         <param name='cs' doc='Coding Scheme configuration' /></span><br><span style="color: hsl(0, 100%, 40%);">-        <param name='threshold' doc='set thresholds for error rate based CS adjustment' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='threshold' doc='set thresholds for error rate based downlink (M)CS adjustment' /></span><br><span>       </params></span><br><span>     </command></span><br><span>     <command id='cs downgrade-threshold &lt;1-10000&gt;'></span><br><span>       <params></span><br><span>         <param name='cs' doc='Coding Scheme configuration' /></span><br><span style="color: hsl(0, 100%, 40%);">-        <param name='downgrade-threshold' doc='set threshold for data size based CS downgrade' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='downgrade-threshold' doc='set threshold for data size based downlink (M)CS downgrade' /></span><br><span>         <param name='&lt;1-10000&gt;' doc='downgrade if less octets left' /></span><br><span>       </params></span><br><span>     </command></span><br><span>@@ -1559,13 +1559,13 @@</span><br><span>       <params></span><br><span>         <param name='no' doc='Negate a command or set its defaults' /></span><br><span>         <param name='cs' doc='Coding Scheme configuration' /></span><br><span style="color: hsl(0, 100%, 40%);">-        <param name='downgrade-threshold' doc='set threshold for data size based CS downgrade' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='downgrade-threshold' doc='set threshold for data size based downlink (M)CS downgrade' /></span><br><span>       </params></span><br><span>     </command></span><br><span>     <command id='cs link-quality-ranges cs1 &lt;0-35&gt; cs2 &lt;0-35&gt; &lt;0-35&gt; cs3 &lt;0-35&gt; &lt;0-35&gt; cs4 &lt;0-35&gt;'></span><br><span>       <params></span><br><span>         <param name='cs' doc='Coding Scheme configuration' /></span><br><span style="color: hsl(0, 100%, 40%);">-        <param name='link-quality-ranges' doc='Set link quality ranges' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='link-quality-ranges' doc='Set link quality ranges for each uplink CS' /></span><br><span>         <param name='cs1' doc='Set quality range for CS-1 (high value only)' /></span><br><span>         <param name='&lt;0-35&gt;' doc='CS-1 high (dB)' /></span><br><span>         <param name='cs2' doc='Set quality range for CS-2' /></span><br><span>@@ -1581,7 +1581,7 @@</span><br><span>     <command id='mcs link-quality-ranges mcs1 &lt;0-35&gt; mcs2 &lt;0-35&gt; &lt;0-35&gt; mcs3 &lt;0-35&gt; &lt;0-35&gt; mcs4 &lt;0-35&gt; &lt;0-35&gt; mcs5 &lt;0-35&gt; &lt;0-35&gt; mcs6 &lt;0-35&gt; &lt;0-35&gt; mcs7 &lt;0-35&gt; &lt;0-35&gt; mcs8 &lt;0-35&gt; &lt;0-35&gt; mcs9 &lt;0-35&gt;'></span><br><span>       <params></span><br><span>         <param name='mcs' doc='Coding Scheme configuration' /></span><br><span style="color: hsl(0, 100%, 40%);">-        <param name='link-quality-ranges' doc='Set link quality ranges' /></span><br><span style="color: hsl(120, 100%, 40%);">+        <param name='link-quality-ranges' doc='Set link quality ranges for each uplink MCS' /></span><br><span>         <param name='mcs1' doc='Set quality range for MCS-1 (high value only)' /></span><br><span>         <param name='&lt;0-35&gt;' doc='MCS-1 high (dB)' /></span><br><span>         <param name='mcs2' doc='Set quality range for MCS-2' /></span><br><span>diff --git a/src/bts.h b/src/bts.h</span><br><span>index 54a29cb..7ef5a3f 100644</span><br><span>--- a/src/bts.h</span><br><span>+++ b/src/bts.h</span><br><span>@@ -142,12 +142,15 @@</span><br><span>  /* 0 to support resegmentation in DL, 1 for no reseg */</span><br><span>      uint8_t dl_arq_type;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        uint8_t cs_adj_enabled;</span><br><span style="color: hsl(0, 100%, 40%);">- uint8_t cs_adj_upper_limit;</span><br><span style="color: hsl(0, 100%, 40%);">-     uint8_t cs_adj_lower_limit;</span><br><span style="color: hsl(120, 100%, 40%);">+   uint8_t cs_adj_enabled; /* whether cs_adj_{upper,lower}_limit are used to adjust DL CS */</span><br><span style="color: hsl(120, 100%, 40%);">+     uint8_t cs_adj_upper_limit; /* downgrade DL CS if error rate above its value */</span><br><span style="color: hsl(120, 100%, 40%);">+       uint8_t cs_adj_lower_limit; /* upgrade DL CS if error rate below its value */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* downgrade DL CS when less than specified octets are left in tx queue. Optimization, see paper:</span><br><span style="color: hsl(120, 100%, 40%);">+       "Theoretical Analysis of GPRS Throughput and Delay" */</span><br><span style="color: hsl(120, 100%, 40%);">+    uint16_t cs_downgrade_threshold;</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Link quality range for each UL (M)CS. Below or above, next/prev (M)CS is selected. */</span><br><span>     struct {int16_t low; int16_t high; } cs_lqual_ranges[MAX_GPRS_CS];</span><br><span>   struct {int16_t low; int16_t high; } mcs_lqual_ranges[MAX_EDGE_MCS];</span><br><span style="color: hsl(0, 100%, 40%);">-    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> </span><br><span>diff --git a/src/pcu_vty.c b/src/pcu_vty.c</span><br><span>index 996ce61..2fd57d0 100644</span><br><span>--- a/src/pcu_vty.c</span><br><span>+++ b/src/pcu_vty.c</span><br><span>@@ -938,7 +938,7 @@</span><br><span>        return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define CS_ERR_LIMITS_STR "set thresholds for error rate based CS adjustment\n"</span><br><span style="color: hsl(120, 100%, 40%);">+#define CS_ERR_LIMITS_STR "set thresholds for error rate based downlink (M)CS adjustment\n"</span><br><span> DEFUN(cfg_pcu_cs_err_limits,</span><br><span>       cfg_pcu_cs_err_limits_cmd,</span><br><span>       "cs threshold <0-100> <0-100>",</span><br><span>@@ -977,7 +977,7 @@</span><br><span>        return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define CS_DOWNGRADE_STR "set threshold for data size based CS downgrade\n"</span><br><span style="color: hsl(120, 100%, 40%);">+#define CS_DOWNGRADE_STR "set threshold for data size based downlink (M)CS downgrade\n"</span><br><span> DEFUN(cfg_pcu_cs_downgrade_thrsh,</span><br><span>       cfg_pcu_cs_downgrade_thrsh_cmd,</span><br><span>       "cs downgrade-threshold <1-10000>",</span><br><span>@@ -1006,7 +1006,7 @@</span><br><span> DEFUN(cfg_pcu_cs_lqual_ranges,</span><br><span>       cfg_pcu_cs_lqual_ranges_cmd,</span><br><span>       "cs link-quality-ranges cs1 <0-35> cs2 <0-35> <0-35> cs3 <0-35> <0-35> cs4 <0-35>",</span><br><span style="color: hsl(0, 100%, 40%);">-      CS_STR "Set link quality ranges\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      CS_STR "Set link quality ranges for each uplink CS\n"</span><br><span>       "Set quality range for CS-1 (high value only)\n"</span><br><span>       "CS-1 high (dB)\n"</span><br><span>       "Set quality range for CS-2\n"</span><br><span>@@ -1040,7 +1040,7 @@</span><br><span> DEFUN(cfg_pcu_mcs_lqual_ranges,</span><br><span>       cfg_pcu_mcs_lqual_ranges_cmd,</span><br><span>       "mcs link-quality-ranges mcs1 <0-35> mcs2 <0-35> <0-35> mcs3 <0-35> <0-35> mcs4 <0-35> <0-35> mcs5 <0-35> <0-35> mcs6 <0-35> <0-35> mcs7 <0-35> <0-35> mcs8 <0-35> <0-35> mcs9 <0-35>",</span><br><span style="color: hsl(0, 100%, 40%);">-      CS_STR "Set link quality ranges\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      CS_STR "Set link quality ranges for each uplink MCS\n"</span><br><span>       "Set quality range for MCS-1 (high value only)\n"</span><br><span>       "MCS-1 high (dB)\n"</span><br><span>       "Set quality range for MCS-2\n"</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/16317">change 16317</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/c/osmo-pcu/+/16317"/><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-Change-Id: I4e890e924b094a1937fbd3794de96704cf0421a8 </div>
<div style="display:none"> Gerrit-Change-Number: 16317 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>