aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2021-01-15 09:18:27 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2021-01-19 11:49:07 +0100
commit3c7bc7aa1e7913a9254801f20f7479050c3911f6 (patch)
tree83de4d790f68446398ed4c920007d27ad48cc9f8
parente2543cb182426a2c9bc97923def2900d53140299 (diff)
show bug: add test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty
-rw-r--r--tests/handover/handover_tests.ok1
-rw-r--r--tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty58
2 files changed, 59 insertions, 0 deletions
diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok
index d0c1c008d..f9adca906 100644
--- a/tests/handover/handover_tests.ok
+++ b/tests/handover/handover_tests.ok
@@ -17,6 +17,7 @@ pass test_congestion_no_oscillation.ho_vty
pass test_congestion_no_oscillation2.ho_vty
pass test_disabled_ho_and_as.ho_vty
pass test_dyn_ts_amr_tch_f_to_h_congestion_assignment.ho_vty
+pass test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty
pass test_dyn_ts_favor_half_used_tch_h_as_target.ho_vty
pass test_dyn_ts_favor_moving_half_used_tch_h.ho_vty
pass test_ho_to_better_cell.ho_vty
diff --git a/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty
new file mode 100644
index 000000000..1273d7524
--- /dev/null
+++ b/tests/handover/test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty
@@ -0,0 +1,58 @@
+# If a handover from one TCH kind to the other occupies a dynamic timeslot,
+# also adhere to congestion constraints of the other TCH kind, since taking up
+# a dyn TS may reduce the available slot count for both kinds of TCH.
+
+create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH
+create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F dyn dyn dyn PDCH
+
+# A TCH/F has better rxlev at a neighbor, and the neighbor's TCH/F slots would
+# not become congested. But taking up a neighbor's dynamic timeslot for TCH/F
+# would reduce the TCH/H availability to cause congestion on TCH/H. No HO.
+
+network
+ handover2 min-free-slots tch/f 0
+ handover2 min-free-slots tch/h 4
+
+set-ts-use trx 0 0 states * TCH/F - - pdch pdch pdch *
+set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH pdch pdch *
+
+meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30
+expect-no-chan
+
+meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 40
+# FAIL: should not handover because that results in congestion on TCH/H in bts 1
+expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0
+
+expect-ts-use trx 0 0 states * - - - pdch pdch pdch *
+expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/HH TCH/F pdch *
+meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30
+
+congestion-check
+# FAIL: really weird: handover one TCH/H to the same cell to TCH/F, taking up another dyn TS.
+# TCH/H congestion hence actually gets worse.
+expect-ho from lchan 1 0 4 1 to lchan 1 0 6 0
+expect-ts-use trx 0 0 states * - - - pdch pdch pdch *
+expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- TCH/F TCH/F *
+
+congestion-check
+# more FAIL: TCH/H moves to worse bts 0 due to congestion
+expect-ho from lchan 1 0 4 0 to lchan 0 0 4 0
+expect-ts-use trx 0 0 states * - - - TCH/H- pdch pdch *
+expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F pdch TCH/F TCH/F *
+
+congestion-check
+expect-no-chan
+
+meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30
+expect-no-chan
+
+meas-rep lchan 0 * * * rxlev 30 rxqual 0 ta 0 neighbors 40
+# FAIL: back to bts 1 because of rxlev, plus moving TCH/H to TCH/F!?
+expect-ho from lchan 0 0 4 0 to lchan 1 0 4 0
+
+expect-ts-use trx 0 0 states * - - - pdch pdch pdch *
+expect-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F *
+
+congestion-check
+expect-no-chan
+# Stable situation now only because TCH/F has min-free-slots set to 0