aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2021-07-11 22:15:13 +0200
committerlaforge <laforge@osmocom.org>2021-07-16 16:04:18 +0000
commitea0b6b2ca9c6491f99d047ade2596ce28340e351 (patch)
treeafcc9e6f06d85e628b5b5e55f24050b023cb5c43 /tests
parent9c61446423d6aea9391ff7de54ea69ecba5a21ad (diff)
add test_dyn_ts_favor_static_ts_as_target.ho_vty
In a discussion about the effect of interference levels, I noticed that there is not sufficient clarity about how strongly the preference of static timeslots is ranked. This test helps to show what we have. Related: SYS#5313 Change-Id: I0911cd74613045d9fbe29d04eaef036d32049b92
Diffstat (limited to 'tests')
-rw-r--r--tests/handover/handover_tests.ok1
-rw-r--r--tests/handover/test_dyn_ts_favor_static_ts_as_target.ho_vty38
2 files changed, 39 insertions, 0 deletions
diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok
index a03454d43..168ebd672 100644
--- a/tests/handover/handover_tests.ok
+++ b/tests/handover/handover_tests.ok
@@ -32,6 +32,7 @@ pass test_dyn_ts_congestion_tch_f_vs_tch_h.ho_vty
pass test_dyn_ts_congestion_tch_f_vs_tch_h_2.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_dyn_ts_favor_static_ts_as_target.ho_vty
pass test_ho_to_better_cell.ho_vty
pass test_ho_to_better_cell_2.ho_vty
pass test_hysteresis.ho_vty
diff --git a/tests/handover/test_dyn_ts_favor_static_ts_as_target.ho_vty b/tests/handover/test_dyn_ts_favor_static_ts_as_target.ho_vty
new file mode 100644
index 000000000..c50b00705
--- /dev/null
+++ b/tests/handover/test_dyn_ts_favor_static_ts_as_target.ho_vty
@@ -0,0 +1,38 @@
+# If both a static and a dynamic TCH/H (even without pchan switch!) are available, we always prefer static TS.
+create-bts trx-count 1 timeslots c+s4 dyn TCH/H dyn TCH/H dyn TCH/H PDCH
+
+network
+ bts 0
+ channel allocator ascending
+
+set-ts-use trx 0 0 states * TCH/-H TCH/-H TCH/-H TCH/-H TCH/-H TCH/-H *
+
+# the dynamic timeslot is already in TCH/H mode, and needs no pchan switch. It appears first in the list, hence it would
+# be used first -- but we prefer using static TS when still available:
+create-ms bts 0 TCH/H AMR
+expect-ts-use trx 0 0 states * TCH/-H TCH/HH TCH/-H TCH/-H TCH/-H TCH/-H *
+# ^
+
+# Interference ratings do NOT influence whether a static or dynamic lchan (even without pchan switch) is going to be
+# assigned.
+network
+ bts 0
+ channel allocator avoid-interference 1
+ interference-meas level-bounds -115 -109 -103 -97 -91 -85
+# 0 1 2 3 4 5
+
+# Here the dyn TS lchan happens to have less interference. But still the choice to prefer static over dynamic weighs
+# stronger. The static TS with least interference is picked.
+# dyn TCH/H dyn TCH/H dyn TCH/H
+expect-ts-use trx 0 0 states * TCH/-H TCH/HH TCH/-H TCH/-H TCH/-H TCH/-H *
+res-ind trx 0 0 levels - 4- -- 1- 4- 3- 2- -
+create-ms bts 0 TCH/H AMR
+expect-ts-use trx 0 0 states * TCH/-H TCH/HH TCH/-H TCH/-H TCH/-H TCH/HH *
+# ^
+create-ms bts 0 TCH/H AMR
+expect-ts-use trx 0 0 states * TCH/-H TCH/HH TCH/-H TCH/HH TCH/-H TCH/HH *
+# ^
+# now only dynamic TS are left. The one dyn lchan with least interference is picked
+create-ms bts 0 TCH/H AMR
+expect-ts-use trx 0 0 states * TCH/-H TCH/HH TCH/HH TCH/HH TCH/-H TCH/HH *
+# ^