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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">show bug: add test_dyn_ts_amr_tch_{f,h}_to_{h,f}_congestion_assignment_2.ho_vty<br><br>Name both new tests with suffix '_2' even though the first h_to_f does<br>not exist (yet?), to indicate the complementary nature of those two<br>tests.<br><br>Related: SYS#5301<br>Change-Id: I8c8d9d5936f713f7d02e4246eeb373916e62510b<br>---<br>M tests/handover/handover_tests.ok<br>A tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty<br>A tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty<br>3 files changed, 79 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok</span><br><span>index 2658f8b..bd21d0e 100644</span><br><span>--- a/tests/handover/handover_tests.ok</span><br><span>+++ b/tests/handover/handover_tests.ok</span><br><span>@@ -17,6 +17,8 @@</span><br><span> pass test_congestion_no_oscillation2.ho_vty</span><br><span> pass test_disabled_ho_and_as.ho_vty</span><br><span> pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty</span><br><span style="color: hsl(120, 100%, 40%);">+pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty</span><br><span style="color: hsl(120, 100%, 40%);">+pass test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty</span><br><span> pass test_dyn_ts_balance_congestion.ho_vty</span><br><span> pass test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty</span><br><span> pass test_dyn_ts_congestion_tch_f_vs_tch_h_2.ho_vty</span><br><span>diff --git a/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty</span><br><span>new file mode 100644</span><br><span>index 0000000..6194596</span><br><span>--- /dev/null</span><br><span>+++ b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty</span><br><span>@@ -0,0 +1,49 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# If a handover from TCH/F to TCH/H frees a dynamic timeslot,</span><br><span style="color: hsl(120, 100%, 40%);">+# take the freed TCH/H from the soure timeslot into account,</span><br><span style="color: hsl(120, 100%, 40%);">+# both when the target is a dynamic timeslot and when the target is a static timeslot.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+create-bts trx-count 1 timeslots c+s4 dyn TCH/F TCH/F TCH/H PDCH PDCH PDCH</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+network</span><br><span style="color: hsl(120, 100%, 40%);">+ bts 0</span><br><span style="color: hsl(120, 100%, 40%);">+  handover2 min-free-slots tch/f 3</span><br><span style="color: hsl(120, 100%, 40%);">+  handover2 min-free-slots tch/h 2</span><br><span style="color: hsl(120, 100%, 40%);">+  handover2 assignment 1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+set-ts-use trx 0 0 states * TCH/F - - - * * *</span><br><span style="color: hsl(120, 100%, 40%);">+# (there must be at least one measurement report on each lchan for congestion check to work)</span><br><span style="color: hsl(120, 100%, 40%);">+meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30</span><br><span style="color: hsl(120, 100%, 40%);">+congestion-check</span><br><span style="color: hsl(120, 100%, 40%);">+# FAIL: after the handover from the dyn TS to TCH/H, the dyn TS has freed two TCH/H, while the static TCH/H has reduced</span><br><span style="color: hsl(120, 100%, 40%);">+# the TCH/H count by one. So the resulting free slots are 3 TCH/H, which means no congestion. A handover should occur.</span><br><span style="color: hsl(120, 100%, 40%);">+expect-no-chan</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Again with one more TCH/H occupied, there will still be two free TCH/H after HO on the dyn TS</span><br><span style="color: hsl(120, 100%, 40%);">+set-ts-use trx 0 0 states * TCH/F - - TCH/H- * * *</span><br><span style="color: hsl(120, 100%, 40%);">+meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30</span><br><span style="color: hsl(120, 100%, 40%);">+congestion-check</span><br><span style="color: hsl(120, 100%, 40%);">+# FAIL: resulting free slots are 2 TCH/H, which means no congestion. A handover should occur.</span><br><span style="color: hsl(120, 100%, 40%);">+expect-no-chan</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Again, with the target being a dyn TS</span><br><span style="color: hsl(120, 100%, 40%);">+create-bts trx-count 1 timeslots c+s4 dyn TCH/F TCH/F dyn PDCH PDCH PDCH</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+network</span><br><span style="color: hsl(120, 100%, 40%);">+ bts 1</span><br><span style="color: hsl(120, 100%, 40%);">+  handover2 min-free-slots tch/f 3</span><br><span style="color: hsl(120, 100%, 40%);">+  handover2 min-free-slots tch/h 2</span><br><span style="color: hsl(120, 100%, 40%);">+  handover2 assignment 1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+set-ts-use trx 1 0 states * TCH/F TCH/F - pdch * * *</span><br><span style="color: hsl(120, 100%, 40%);">+meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30</span><br><span style="color: hsl(120, 100%, 40%);">+congestion-check</span><br><span style="color: hsl(120, 100%, 40%);">+# FAIL: after the handover from the dyn TS to TCH/H, the dyn TS has freed two TCH/H, while the static TCH/H has reduced</span><br><span style="color: hsl(120, 100%, 40%);">+# the TCH/H count by one. So the resulting free slots are 3 TCH/H, which means no congestion. A handover should occur.</span><br><span style="color: hsl(120, 100%, 40%);">+expect-no-chan</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Again with one more TCH/H occupied, there will still be two free TCH/H after HO on the dyn TS</span><br><span style="color: hsl(120, 100%, 40%);">+set-ts-use trx 1 0 states * TCH/F TCH/F - TCH/H- * * *</span><br><span style="color: hsl(120, 100%, 40%);">+meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30</span><br><span style="color: hsl(120, 100%, 40%);">+congestion-check</span><br><span style="color: hsl(120, 100%, 40%);">+# FAIL: resulting free slots are 2 TCH/H, which means no congestion. A handover should occur.</span><br><span style="color: hsl(120, 100%, 40%);">+expect-no-chan</span><br><span>diff --git a/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty b/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty</span><br><span>new file mode 100644</span><br><span>index 0000000..36a9817</span><br><span>--- /dev/null</span><br><span>+++ b/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty</span><br><span>@@ -0,0 +1,28 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# If a handover from TCH/H to TCH/F frees a dynamic timeslot,</span><br><span style="color: hsl(120, 100%, 40%);">+# take the freed TCH/F from the soure timeslot into account,</span><br><span style="color: hsl(120, 100%, 40%);">+# when the target is a static timeslot.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+create-bts trx-count 1 timeslots c+s4 dyn TCH/F TCH/F TCH/F PDCH PDCH PDCH</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+network</span><br><span style="color: hsl(120, 100%, 40%);">+ bts 0</span><br><span style="color: hsl(120, 100%, 40%);">+  handover2 min-free-slots tch/f 2</span><br><span style="color: hsl(120, 100%, 40%);">+  handover2 min-free-slots tch/h 2</span><br><span style="color: hsl(120, 100%, 40%);">+  handover2 assignment 1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+set-ts-use trx 0 0 states * TCH/H- - - - * * *</span><br><span style="color: hsl(120, 100%, 40%);">+# (there must be at least one measurement report on each lchan for congestion check to work)</span><br><span style="color: hsl(120, 100%, 40%);">+meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30</span><br><span style="color: hsl(120, 100%, 40%);">+congestion-check</span><br><span style="color: hsl(120, 100%, 40%);">+expect-ho from lchan 0 0 1 0 to lchan 0 0 2 0</span><br><span style="color: hsl(120, 100%, 40%);">+expect-ts-use trx 0 0 states * pdch TCH/F - - * * *</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Again with one more TCH/F occupied, there will still be two free TCH/F after HO on the dyn TS</span><br><span style="color: hsl(120, 100%, 40%);">+set-ts-use trx 0 0 states * TCH/H- - - TCH/F * * *</span><br><span style="color: hsl(120, 100%, 40%);">+meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30</span><br><span style="color: hsl(120, 100%, 40%);">+congestion-check</span><br><span style="color: hsl(120, 100%, 40%);">+# FAIL: after the handover from the dyn TS to TCH/F, the dyn TS has freed a TCH/F, while the static TCH/F has reduced</span><br><span style="color: hsl(120, 100%, 40%);">+# the TCH/F count by one. So the resulting free slots are 2 TCH/F, which means no congestion. A handover should occur.</span><br><span style="color: hsl(120, 100%, 40%);">+expect-no-chan</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# (TCH/H -> TCH/F onto a dyn TS will always make TCH/H congestion worse, so there is no useful test case left here)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/22526">change 22526</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/+/22526"/><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: I8c8d9d5936f713f7d02e4246eeb373916e62510b </div>
<div style="display:none"> Gerrit-Change-Number: 22526 </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-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>