aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2021-01-28 15:27:46 +0100
committerlaforge <laforge@osmocom.org>2021-01-29 21:17:01 +0000
commit6d32c92e4fbc67e09f77157baef72ea3044ab534 (patch)
treeafae9bf78aca5e0a961e5497ab4ad1de78358a86
parentf4db24c731f70b98c5acbe07ddd5bbce9e2866d9 (diff)
show bug: add test_dyn_ts_amr_tch_{f,h}_to_{h,f}_congestion_assignment_2.ho_vty
Name both new tests with suffix '_2' even though the first h_to_f does not exist (yet?), to indicate the complementary nature of those two tests. Related: SYS#5301 Change-Id: I8c8d9d5936f713f7d02e4246eeb373916e62510b
-rw-r--r--tests/handover/handover_tests.ok2
-rw-r--r--tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty49
-rw-r--r--tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty28
3 files changed, 79 insertions, 0 deletions
diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok
index 2658f8bb4..bd21d0e57 100644
--- a/tests/handover/handover_tests.ok
+++ b/tests/handover/handover_tests.ok
@@ -17,6 +17,8 @@ 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_amr_tch_f_to_h_congestion_assignment_2.ho_vty
+pass test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty
pass test_dyn_ts_balance_congestion.ho_vty
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
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
new file mode 100644
index 000000000..619459662
--- /dev/null
+++ b/tests/handover/test_dyn_ts_amr_tch_f_to_h_congestion_assignment_2.ho_vty
@@ -0,0 +1,49 @@
+# If a handover from TCH/F to TCH/H frees a dynamic timeslot,
+# take the freed TCH/H from the soure timeslot into account,
+# both when the target is a dynamic timeslot and when the target is a static timeslot.
+
+create-bts trx-count 1 timeslots c+s4 dyn TCH/F TCH/F TCH/H PDCH PDCH PDCH
+
+network
+ bts 0
+ handover2 min-free-slots tch/f 3
+ handover2 min-free-slots tch/h 2
+ handover2 assignment 1
+
+set-ts-use trx 0 0 states * TCH/F - - - * * *
+# (there must be at least one measurement report on each lchan for congestion check to work)
+meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30
+congestion-check
+# 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
+# the TCH/H count by one. So the resulting free slots are 3 TCH/H, which means no congestion. A handover should occur.
+expect-no-chan
+
+# Again with one more TCH/H occupied, there will still be two free TCH/H after HO on the dyn TS
+set-ts-use trx 0 0 states * TCH/F - - TCH/H- * * *
+meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30
+congestion-check
+# FAIL: resulting free slots are 2 TCH/H, which means no congestion. A handover should occur.
+expect-no-chan
+
+# Again, with the target being a dyn TS
+create-bts trx-count 1 timeslots c+s4 dyn TCH/F TCH/F dyn PDCH PDCH PDCH
+
+network
+ bts 1
+ handover2 min-free-slots tch/f 3
+ handover2 min-free-slots tch/h 2
+ handover2 assignment 1
+
+set-ts-use trx 1 0 states * TCH/F TCH/F - pdch * * *
+meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30
+congestion-check
+# 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
+# the TCH/H count by one. So the resulting free slots are 3 TCH/H, which means no congestion. A handover should occur.
+expect-no-chan
+
+# Again with one more TCH/H occupied, there will still be two free TCH/H after HO on the dyn TS
+set-ts-use trx 1 0 states * TCH/F TCH/F - TCH/H- * * *
+meas-rep lchan 1 * * * rxlev 40 rxqual 0 ta 0 neighbors 30
+congestion-check
+# FAIL: resulting free slots are 2 TCH/H, which means no congestion. A handover should occur.
+expect-no-chan
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
new file mode 100644
index 000000000..36a981745
--- /dev/null
+++ b/tests/handover/test_dyn_ts_amr_tch_h_to_f_congestion_assignment_2.ho_vty
@@ -0,0 +1,28 @@
+# If a handover from TCH/H to TCH/F frees a dynamic timeslot,
+# take the freed TCH/F from the soure timeslot into account,
+# when the target is a static timeslot.
+
+create-bts trx-count 1 timeslots c+s4 dyn TCH/F TCH/F TCH/F PDCH PDCH PDCH
+
+network
+ bts 0
+ handover2 min-free-slots tch/f 2
+ handover2 min-free-slots tch/h 2
+ handover2 assignment 1
+
+set-ts-use trx 0 0 states * TCH/H- - - - * * *
+# (there must be at least one measurement report on each lchan for congestion check to work)
+meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30
+congestion-check
+expect-ho from lchan 0 0 1 0 to lchan 0 0 2 0
+expect-ts-use trx 0 0 states * pdch TCH/F - - * * *
+
+# Again with one more TCH/F occupied, there will still be two free TCH/F after HO on the dyn TS
+set-ts-use trx 0 0 states * TCH/H- - - TCH/F * * *
+meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30
+congestion-check
+# 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
+# the TCH/F count by one. So the resulting free slots are 2 TCH/F, which means no congestion. A handover should occur.
+expect-no-chan
+
+# (TCH/H -> TCH/F onto a dyn TS will always make TCH/H congestion worse, so there is no useful test case left here)