<p>neels <strong>uploaded patch set #2</strong> to this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/21989">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">hodec2: fix congestion oscillation bug<br><br>When evenly distributing congestion across cells, count the number of<br>occupied lchans surpassing congestion, and not the overall number of<br>free lchans -- which disregards congestion thresholds.<br><br>Fix the bug shown by test_congestion_no_oscillation.ho_vty added in<br>Idf88b4cf3d2f92f5560d73dae9e59af39d0494c0.<br><br>An example to illustrate what this is about:<br><br>Cell A has min-free-slots 2, and has 1 slot remaining free.<br>Cell B has min-free-slots 4, and has 2 slots remaining free.<br><br>If we decide where to place another lchan by counting congested lchans,<br>as implemented in this patch:<br>- Another lchan added, cell A ends up with a congestion count of 2: two<br>  more lchans in use than "allowed".<br>- Cell B ends up with a congestion count of 3, which is worse than 2.<br>We decide that cell A should receive the additional lchan, because it<br>will then have a lower congestion count.  However, that makes cell A<br>completely occupied, while cell B has two lchans remaining free.<br><br>There are two alternative fix variants in consideration:<br>- count the number of free lchans, but only after reaching congestion.<br>- calculate the percentage of load surpassing congestion.<br><br>When using percentage of remaining lchans, we would see that if cell A<br>receives another lchan, it would be 100% loaded above its congestion<br>threshold (2 of 2 remaining lchans in use), but cell B would only be 75%<br>loaded above its treshold (3 of 4 remaining lchans in use).  So a<br>percentage comparison would place the next lchan in cell B, leaving the<br>last lchan of cell A free.<br><br>Another option would be to count the number of remaining free lchans<br>(after the congestion threshold is surpassed), instead of the used ones<br>above the congestion threshold. But then, as soon as all cells are<br>congested, configuring different thresholds would no longer have an<br>effect. I would no longer be able to configure a particular cell to<br>remain more free than others: once congested, only that cell would fill<br>up until it reaches the same load as the other cells.<br><br>In the field, where all cells likely have the same min-free-slots<br>settings, this entire consideration is moot, because congestion counts<br>correspond 1:1 to percentage between all cells and also 1:1 to remaining<br>free slots. However, when looking at distribution across TCH/F and<br>TCH/H, it is quite likely that min-free-slots settings differ for TCH/F<br>and TCH/H, so this is in fact a thing to consider even for identically<br>configured cells.<br><br>Related: SYS#5259<br>Change-Id: Icb373dc6bfc9819446db5e96f71921781fe2026d<br>---<br>M src/osmo-bsc/handover_decision_2.c<br>M tests/handover/test_congestion_no_oscillation.ho_vty<br>M tests/handover/test_congestion_no_oscillation2.ho_vty<br>3 files changed, 11 insertions(+), 30 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/89/21989/2</pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/21989">change 21989</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/+/21989"/><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: Icb373dc6bfc9819446db5e96f71921781fe2026d </div>
<div style="display:none"> Gerrit-Change-Number: 21989 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-MessageType: newpatchset </div>