aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2020-12-23 03:45:40 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2020-12-23 03:45:40 +0100
commit7d94e0706219200cb2bb766c19c7a4201301c265 (patch)
treeb724b64392d3d7c5d0551ed34fcaa9f0a4e94bdb
parentda7a4edee477f040eeaa6c34d436285f4eafe344 (diff)
-rw-r--r--tests/handover/test_amr_oscillation.ho_vty25
-rw-r--r--tests/handover/test_amr_tch_h_to_f_congestion.ho_vty14
-rw-r--r--tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty23
3 files changed, 62 insertions, 0 deletions
diff --git a/tests/handover/test_amr_oscillation.ho_vty b/tests/handover/test_amr_oscillation.ho_vty
new file mode 100644
index 000000000..abfa07058
--- /dev/null
+++ b/tests/handover/test_amr_oscillation.ho_vty
@@ -0,0 +1,25 @@
+
+create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH
+network
+ bts 0
+ handover2 min-free-slots tch/f 5
+
+create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H PDCH
+
+set-ts-use trx 0 0 states * TCH/F TCH/F - - - - *
+set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F - - - *
+
+meas-rep repeat 10 lchan 0 0 2 0 rxlev 30 rxqual 0 ta 0 neighbors 20
+expect-no-chan
+
+# bts 0 wants to lose one TCH/F. The neighbor's TCH/F are full, but TCH/H are available there.
+congestion-check
+expect-ho from lchan 0 0 2 0 to lchan 1 0 4 0
+set-ts-use trx 0 0 states * TCH/F - - - - - *
+set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/H- - - *
+
+# measurements continue to be the same
+meas-rep repeat 10 lchan 1 0 4 0 rxlev 20 rxqual 0 ta 0 neighbors 30
+
+# no oscillation back to bts 0
+expect-no-chan
diff --git a/tests/handover/test_amr_tch_h_to_f_congestion.ho_vty b/tests/handover/test_amr_tch_h_to_f_congestion.ho_vty
new file mode 100644
index 000000000..4d1194c47
--- /dev/null
+++ b/tests/handover/test_amr_tch_h_to_f_congestion.ho_vty
@@ -0,0 +1,14 @@
+# Congestion check: Balancing congestion by handover TCH/H -> TCH/F
+# One BTS, TCH/H are congested and should move to TCH/F.
+
+network
+ handover2 min-free-slots tch/f 0
+ handover2 min-free-slots tch/h 6
+
+create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H PDCH
+set-ts-use trx 0 0 states * - - - TCH/H- - - *
+meas-rep lchan 0 0 4 0 rxlev 30 rxqual 0 ta 0
+expect-no-chan
+congestion-check
+expect-ho from lchan 0 0 4 0 to lchan 0 0 1 0
+expect-ts-use trx 0 0 states * TCH/F - - - - - *
diff --git a/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty b/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty
new file mode 100644
index 000000000..eaaeabdb4
--- /dev/null
+++ b/tests/handover/test_amr_tch_h_to_f_congestion_two_cells.ho_vty
@@ -0,0 +1,23 @@
+# Congestion check: Balancing congestion by handover TCH/H -> TCH/F
+# TCH/H are congested and should move to TCH/F
+# There are two cells, and the neighbor has weaker rxlev, so stay in the same cell.
+
+network
+ handover2 min-free-slots tch/f 0
+ handover2 min-free-slots tch/h 6
+
+create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H PDCH
+create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/H TCH/H TCH/H PDCH
+set-ts-use trx 1 0 states * - - - TCH/H- - - *
+meas-rep repeat 10 lchan 1 0 4 0 rxlev 30 rxqual 0 ta 0 neighbors 20
+expect-no-chan
+congestion-check
+# FAIL: bts 1 has better rxlev, so the call should stay in bts 1. Instead, a handover to bts 0 happens.
+expect-ho from lchan 1 0 4 0 to lchan 0 0 1 0
+expect-ts-use trx 0 0 states * TCH/F - - - - - *
+expect-ts-use trx 1 0 states * - - - - - - *
+# the fail continues: later the better rxqual does *another* ho back to the original cell
+meas-rep lchan 0 0 1 0 rxlev 20 rxqual 0 ta 0 neighbors 30
+expect-ho from lchan 0 0 1 0 to lchan 1 0 1 0
+expect-ts-use trx 0 0 states * - - - - - - *
+expect-ts-use trx 1 0 states * TCH/F - - - - - *