<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/14582">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">doc/manuals, vty doc: more handover doc clarifications<br><br>Related: OS#3487<br>Change-Id: I1639efb2dbcca4f0e9c33a74f3067606ce5f4209<br>---<br>M doc/manuals/chapters/handover.adoc<br>M include/osmocom/bsc/handover_cfg.h<br>M src/osmo-bsc/handover_vty.c<br>3 files changed, 25 insertions(+), 19 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/82/14582/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/doc/manuals/chapters/handover.adoc b/doc/manuals/chapters/handover.adoc</span><br><span>index 2f9d598..bb99751 100644</span><br><span>--- a/doc/manuals/chapters/handover.adoc</span><br><span>+++ b/doc/manuals/chapters/handover.adoc</span><br><span>@@ -434,7 +434,8 @@</span><br><span> </span><br><span> Configuration settings relevant for algorithm 1 start with `handover1`. For</span><br><span> further details, please refer to the OsmoBSC VTY Reference</span><br><span style="color: hsl(0, 100%, 40%);">-(<<vty-ref-osmobsc>>) or the telnet VTY online documentation.</span><br><span style="color: hsl(120, 100%, 40%);">+(<<vty-ref-osmobsc>>) or the telnet VTY online documentation. See the</span><br><span style="color: hsl(120, 100%, 40%);">+`handover1` settings on the `config-net` and `config-net-bts` nodes.</span><br><span> </span><br><span> ==== Handover Algorithm 2</span><br><span> </span><br><span>@@ -451,7 +452,8 @@</span><br><span> </span><br><span> Configuration settings relevant for algorithm 2 start with `handover2`. For</span><br><span> further details, please refer to the OsmoBSC VTY Reference</span><br><span style="color: hsl(0, 100%, 40%);">-<<vty-ref-osmobsc>> or the telnet VTY online documentation.</span><br><span style="color: hsl(120, 100%, 40%);">+<<vty-ref-osmobsc>> or the telnet VTY online documentation. See the `handover2`</span><br><span style="color: hsl(120, 100%, 40%);">+settings on the `config-net` and `config-net-bts` nodes.</span><br><span> </span><br><span> ===== Load Distribution</span><br><span> </span><br><span>@@ -472,8 +474,8 @@</span><br><span> adhere to minimum reception levels and distance, see `min rxlev` and `max</span><br><span> distance`.</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-Load distribution will take effect only for already established voice channels.</span><br><span style="color: hsl(0, 100%, 40%);">-An MS will always first establish a voice call with its current cell choice; in</span><br><span style="color: hsl(120, 100%, 40%);">+Load distribution will take effect only for already established channels.</span><br><span style="color: hsl(120, 100%, 40%);">+For example, an MS will always first establish a voice call with its current cell choice; in</span><br><span> load situations, it might be moved to another cell shortly after that.</span><br><span> Considering the best neighbor _before_ starting a new voice call might be</span><br><span> desirable, but is currently not implemented. Consider that RXLEV/RXQUAL ratings</span><br><span>diff --git a/include/osmocom/bsc/handover_cfg.h b/include/osmocom/bsc/handover_cfg.h</span><br><span>index 92b5cd4..f174aad 100644</span><br><span>--- a/include/osmocom/bsc/handover_cfg.h</span><br><span>+++ b/include/osmocom/bsc/handover_cfg.h</span><br><span>@@ -96,22 +96,22 @@</span><br><span>            "handover1 ", "window rxlev averaging", "<1-10>", atoi, "%u", as_is, \</span><br><span>                 HO_CFG_STR_HANDOVER1 \</span><br><span>               HO_CFG_STR_WIN_RXLEV \</span><br><span style="color: hsl(0, 100%, 40%);">-          "How many RxLev measurements are used for averaging\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+            "How many RxLev measurements to use for averaging\n" \</span><br><span>             "RxLev averaging: " HO_CFG_STR_AVG_COUNT) \</span><br><span>        \</span><br><span>    HO_CFG_ONE_MEMBER(unsigned int, hodec1_rxqual_avg_win, 1, \</span><br><span>          "handover1 ", "window rxqual averaging", "<1-10>", atoi, "%u", as_is, \</span><br><span>                HO_CFG_STR_HANDOVER1 \</span><br><span>               HO_CFG_STR_WIN_RXQUAL \</span><br><span style="color: hsl(0, 100%, 40%);">-         "How many RxQual measurements are used for averaging\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+           "How many RxQual measurements to use for averaging\n" \</span><br><span>            "RxQual averaging: " HO_CFG_STR_AVG_COUNT) \</span><br><span>       \</span><br><span>    HO_CFG_ONE_MEMBER(unsigned int, hodec1_rxlev_neigh_avg_win, 10, \</span><br><span>            "handover1 ", "window rxlev neighbor averaging", "<1-10>", atoi, "%u", as_is, \</span><br><span>                HO_CFG_STR_HANDOVER1 \</span><br><span>               HO_CFG_STR_WIN_RXLEV \</span><br><span style="color: hsl(0, 100%, 40%);">-          "How many Neighbor RxLev measurements are used for averaging\n" \</span><br><span style="color: hsl(0, 100%, 40%);">-             "How many Neighbor RxLev measurements are used for averaging\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+           "How many Neighbor RxLev measurements to use for averaging\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+             "How many Neighbor RxLev measurements to use for averaging\n" \</span><br><span>            "Neighbor RxLev averaging: " HO_CFG_STR_AVG_COUNT) \</span><br><span>       \</span><br><span>    HO_CFG_ONE_MEMBER(unsigned int, hodec1_pwr_interval, 6, \</span><br><span>@@ -142,22 +142,22 @@</span><br><span>            "handover2 ", "window rxlev averaging", "<1-10>", atoi, "%u", as_is, \</span><br><span>                 HO_CFG_STR_HANDOVER2 \</span><br><span>               HO_CFG_STR_WIN_RXLEV \</span><br><span style="color: hsl(0, 100%, 40%);">-          "How many RxLev measurements are used for averaging\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+            "How many RxLev measurements to use for averaging\n" \</span><br><span>             "RxLev averaging: " HO_CFG_STR_AVG_COUNT) \</span><br><span>        \</span><br><span>    HO_CFG_ONE_MEMBER(unsigned int, hodec2_rxqual_avg_win, 1, \</span><br><span>          "handover2 ", "window rxqual averaging", "<1-10>", atoi, "%u", as_is, \</span><br><span>                HO_CFG_STR_HANDOVER2 \</span><br><span>               HO_CFG_STR_WIN_RXQUAL \</span><br><span style="color: hsl(0, 100%, 40%);">-         "How many RxQual measurements are used for averaging\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+           "How many RxQual measurements to use for averaging\n" \</span><br><span>            "RxQual averaging: " HO_CFG_STR_AVG_COUNT) \</span><br><span>       \</span><br><span>    HO_CFG_ONE_MEMBER(unsigned int, hodec2_rxlev_neigh_avg_win, 10, \</span><br><span>            "handover2 ", "window rxlev neighbor averaging", "<1-10>", atoi, "%u", as_is, \</span><br><span>                HO_CFG_STR_HANDOVER2 \</span><br><span>               HO_CFG_STR_WIN_RXLEV \</span><br><span style="color: hsl(0, 100%, 40%);">-          "How many Neighbor RxLev measurements are used for averaging\n" \</span><br><span style="color: hsl(0, 100%, 40%);">-             "How many Neighbor RxLev measurements are used for averaging\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+           "How many Neighbor RxLev measurements to use for averaging\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+             "How many Neighbor RxLev measurements to use for averaging\n" \</span><br><span>            "Neighbor RxLev averaging: " HO_CFG_STR_AVG_COUNT) \</span><br><span>       \</span><br><span>    HO_CFG_ONE_MEMBER(unsigned int, hodec2_pwr_interval, 6, \</span><br><span>@@ -184,7 +184,7 @@</span><br><span>      HO_CFG_ONE_MEMBER(bool, hodec2_as_active, 0, \</span><br><span>               "handover2 ", "assignment", "0|1", a2bool, "%d", bool2i, \</span><br><span>           HO_CFG_STR_HANDOVER2 \</span><br><span style="color: hsl(0, 100%, 40%);">-          "Enable or disable in-call channel re-assignment\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+               "Enable or disable in-call channel re-assignment within the same cell\n" \</span><br><span>                 "Disable in-call assignment\n" \</span><br><span>           "Enable in-call assignment\n") \</span><br><span>   \</span><br><span>@@ -200,7 +200,7 @@</span><br><span>              HO_CFG_STR_HANDOVER2 \</span><br><span>               HO_CFG_STR_MIN \</span><br><span>             "How weak may RxLev of an MS become before triggering HO\n" \</span><br><span style="color: hsl(0, 100%, 40%);">-         "minimum RxLev (dBm)\n") \</span><br><span style="color: hsl(120, 100%, 40%);">+          "minimum RxLev (dBm; note: negative values)\n") \</span><br><span>  \</span><br><span>    HO_CFG_ONE_MEMBER(int, hodec2_min_rxqual, 5, \</span><br><span>               "handover2 ", "min rxqual", "<0-7>", atoi, "%d", as_is, \</span><br><span>@@ -247,27 +247,30 @@</span><br><span>              "handover2 ", "penalty-time max-distance", "<0-99999>", atoi, "%d", as_is, \</span><br><span>           HO_CFG_STR_HANDOVER2 \</span><br><span>               HO_CFG_STR_PENALTY_TIME \</span><br><span style="color: hsl(0, 100%, 40%);">-               "Time to suspend handovers after leaving this cell due to exceeding max distance\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+               "Time to suspend handover for a subscriber after leaving this cell due to exceeding max distance;" \</span><br><span style="color: hsl(120, 100%, 40%);">+                " see also 'handover2 retries'\n" \</span><br><span>                "Seconds\n") \</span><br><span>     \</span><br><span>    HO_CFG_ONE_MEMBER(int, hodec2_penalty_failed_ho, 60, \</span><br><span>               "handover2 ", "penalty-time failed-ho", "<0-99999>", atoi, "%d", as_is, \</span><br><span>              HO_CFG_STR_HANDOVER2 \</span><br><span>               HO_CFG_STR_PENALTY_TIME \</span><br><span style="color: hsl(0, 100%, 40%);">-               "Time to suspend handovers after handover failure to this cell\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+         "Time to suspend handover for a subscriber after a failed handover into this cell;" \</span><br><span style="color: hsl(120, 100%, 40%);">+               " see also 'handover2 retries'\n" \</span><br><span>                "Seconds\n") \</span><br><span>     \</span><br><span>    HO_CFG_ONE_MEMBER(int, hodec2_penalty_failed_as, 60, \</span><br><span>               "handover2 ", "penalty-time failed-assignment", "<0-99999>", atoi, "%d", as_is, \</span><br><span>              HO_CFG_STR_HANDOVER2 \</span><br><span>               HO_CFG_STR_PENALTY_TIME \</span><br><span style="color: hsl(0, 100%, 40%);">-               "Time to suspend handovers after assignment failure in this cell\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+               "Time to suspend handover for a subscriber after a failed re-assignment within this cell;" \</span><br><span style="color: hsl(120, 100%, 40%);">+                " see also 'handover2 retries'\n" \</span><br><span>                "Seconds\n") \</span><br><span>     \</span><br><span>    HO_CFG_ONE_MEMBER(int, hodec2_retries, 0, \</span><br><span>          "handover2 ", "retries", "<0-9>", atoi, "%d", as_is, \</span><br><span>                 HO_CFG_STR_HANDOVER2 \</span><br><span style="color: hsl(0, 100%, 40%);">-          "Immediately retry on handover/assignment failure\n" \</span><br><span style="color: hsl(120, 100%, 40%);">+              "Number of times to immediately retry a failed handover/assignment, before a penalty time is applied\n" \</span><br><span>          "Number of retries\n") \</span><br><span> </span><br><span> #define HO_CFG_ALL_MEMBERS \</span><br><span>diff --git a/src/osmo-bsc/handover_vty.c b/src/osmo-bsc/handover_vty.c</span><br><span>index 7979511..e9333ec 100644</span><br><span>--- a/src/osmo-bsc/handover_vty.c</span><br><span>+++ b/src/osmo-bsc/handover_vty.c</span><br><span>@@ -107,7 +107,8 @@</span><br><span>       "handover2 congestion-check (disabled|<1-999>|now)",</span><br><span>       HO_CFG_STR_HANDOVER2</span><br><span>       "Configure congestion check interval\n"</span><br><span style="color: hsl(0, 100%, 40%);">-      "Disable congestion checking, do not handover based on cell overload\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      "Disable congestion checking, do not handover based on cell load. Note: there is one global congestion check"</span><br><span style="color: hsl(120, 100%, 40%);">+      " interval, i.e. contrary to other handover2 settings, this is not configurable per individual cell.\n"</span><br><span>       "Congestion check interval in seconds (default "</span><br><span>       OSMO_STRINGIFY_VAL(HO_CFG_CONGESTION_CHECK_DEFAULT) ")\n"</span><br><span>       "Manually trigger a congestion check to run right now\n")</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/14582">change 14582</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-bsc/+/14582"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I1639efb2dbcca4f0e9c33a74f3067606ce5f4209 </div>
<div style="display:none"> Gerrit-Change-Number: 14582 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>