Change in osmo-bsc[master]: hodec2: add handover_test cases for upgrade of TCH/H -> TCH/F

neels gerrit-no-reply at lists.osmocom.org
Tue Jun 8 22:12:11 UTC 2021


neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24571 )

Change subject: hodec2: add handover_test cases for upgrade of TCH/H -> TCH/F
......................................................................

hodec2: add handover_test cases for upgrade of TCH/H -> TCH/F

Add
  test_amr_tch_h_and_afs_bias.ho_vty
  test_amr_tch_h_to_f_rxlev.ho_vty
  test_amr_tch_h_to_f_rxlev_congested.ho_vty
  test_amr_tch_h_to_f_rxqual.ho_vty
  test_amr_tch_h_to_f_rxqual_congested.ho_vty

Related: SYS#5198 SYS#5365
Change-Id: Ib88f7e00d8bd77e2b02a7242a0fab4dd79333037
---
M tests/handover/handover_tests.ok
A tests/handover/test_amr_tch_h_and_afs_bias.ho_vty
A tests/handover/test_amr_tch_h_to_f_rxlev.ho_vty
A tests/handover/test_amr_tch_h_to_f_rxlev_congested.ho_vty
A tests/handover/test_amr_tch_h_to_f_rxqual.ho_vty
A tests/handover/test_amr_tch_h_to_f_rxqual_congested.ho_vty
6 files changed, 210 insertions(+), 0 deletions(-)

Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, but someone else must approve
  fixeria: Looks good to me, approved



diff --git a/tests/handover/handover_tests.ok b/tests/handover/handover_tests.ok
index 4a4a924..d0ce163 100644
--- a/tests/handover/handover_tests.ok
+++ b/tests/handover/handover_tests.ok
@@ -4,8 +4,13 @@
 pass test_amr_tch_f_to_h_congestion_assignment.ho_vty
 pass test_amr_tch_f_to_h_congestion_assignment_2.ho_vty
 pass test_amr_tch_f_to_h_congestion_assignment_3.ho_vty
+pass test_amr_tch_h_and_afs_bias.ho_vty
 pass test_amr_tch_h_to_f_congestion.ho_vty
 pass test_amr_tch_h_to_f_congestion_two_cells.ho_vty
+pass test_amr_tch_h_to_f_rxlev.ho_vty
+pass test_amr_tch_h_to_f_rxlev_congested.ho_vty
+pass test_amr_tch_h_to_f_rxqual.ho_vty
+pass test_amr_tch_h_to_f_rxqual_congested.ho_vty
 pass test_balance_congestion.ho_vty
 pass test_balance_congestion_2.ho_vty
 pass test_balance_congestion_by_percentage.ho_vty
diff --git a/tests/handover/test_amr_tch_h_and_afs_bias.ho_vty b/tests/handover/test_amr_tch_h_and_afs_bias.ho_vty
new file mode 100644
index 0000000..127727f
--- /dev/null
+++ b/tests/handover/test_amr_tch_h_and_afs_bias.ho_vty
@@ -0,0 +1,18 @@
+# TCH/H has good RxLev and RxQual, AFS bias should not move it to TCH/F
+
+network
+ handover2 power budget hysteresis 3
+ handover2 min rxlev -90
+ handover2 min rxqual 5
+ handover2 afs-bias rxlev 1
+
+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 50 rxqual 1 ta 0
+# The TCH/H should stay where it is, because its levels are fine.
+#expect-no-chan
+# FAIL: osmo-bsc applies AFS bias to the intra-cell move from TCH/H to TCH/F.
+# but intra-cell re-assignment does not employ a bower budget hysteresis.
+# So in the presence of afs-bias, all TCH/H *always* move over to TCH/F.
+# That should only happen when rxlev or rxqual ratings are too low.
+expect-as from lchan 0 0 4 0 to lchan 0 0 1 0
diff --git a/tests/handover/test_amr_tch_h_to_f_rxlev.ho_vty b/tests/handover/test_amr_tch_h_to_f_rxlev.ho_vty
new file mode 100644
index 0000000..34fb5e6
--- /dev/null
+++ b/tests/handover/test_amr_tch_h_to_f_rxlev.ho_vty
@@ -0,0 +1,18 @@
+# Low RxLev causes upgrade of TCH/H to TCH/F
+
+network
+ handover2 afs-bias rxlev 0
+ handover2 min rxlev -80
+ handover2 window rxlev averaging 10
+
+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 repeat 9 lchan 0 0 4 0 rxlev 23 rxqual 1 ta 0
+# not enough values for rxlev averaging
+expect-no-chan
+meas-rep lchan 0 0 4 0 rxlev 23 rxqual 1 ta 0
+# average rxlev is now -110 + 23 = -87 < -80: reassign to TCH/F due to bad rxlev
+#expect-as from lchan 0 0 4 0 to lchan 0 0 1 0
+#expect-ts-use trx 0 0 states * TCH/F - - - - - *
+# FAIL: osmo-bsc does not move to TCH/F from bad rxlev
+expect-no-chan
diff --git a/tests/handover/test_amr_tch_h_to_f_rxlev_congested.ho_vty b/tests/handover/test_amr_tch_h_to_f_rxlev_congested.ho_vty
new file mode 100644
index 0000000..a463387
--- /dev/null
+++ b/tests/handover/test_amr_tch_h_to_f_rxlev_congested.ho_vty
@@ -0,0 +1,73 @@
+# Low RxLev causes upgrade of TCH/H to TCH/F
+
+network
+ handover2 afs-bias rxlev 0
+ handover2 min rxlev -80
+ handover2 window rxlev averaging 10
+
+create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/H  TCH/H  PDCH PDCH
+
+
+set-ts-use trx 0 0 states        *    -     -     -     TCH/HH TCH/HH *    *
+meas-rep repeat 9 lchan 0 0 4 0 rxlev 23 rxqual 1 ta 0
+# not enough values for rxlev averaging
+expect-no-chan
+meas-rep lchan 0 0 4 0 rxlev 23 rxqual 1 ta 0
+# average rxlev is now -110 + 23 = -87 < -80: reassign to TCH/F due to bad rxlev
+#expect-as from lchan 0 0 4 0 to lchan 0 0 1 0
+#expect-ts-use trx 0 0 states     *    TCH/F -     -     TCH/-H TCH/HH *    *
+# FAIL: osmo-bsc does not move to TCH/F from bad rxlev
+expect-no-chan
+
+
+# This situation actually balances congestion
+set-ts-use trx 0 0 states        *    TCH/F -     -     TCH/HH TCH/HH *    *
+meas-rep repeat 9 lchan 0 0 4 0 rxlev 23 rxqual 1 ta 0
+# not enough values for rxlev averaging
+expect-no-chan
+meas-rep lchan 0 0 4 0 rxlev 23 rxqual 1 ta 0
+# average rxlev is now -110 + 23 = -87 < -80: reassign to TCH/F due to bad rxlev
+#expect-as from lchan 0 0 4 0 to lchan 0 0 2 0
+#expect-ts-use trx 0 0 states     *    TCH/F TCH/F -     TCH/-H TCH/HH *    *
+# FAIL: osmo-bsc does not move to TCH/F from bad rxlev
+expect-no-chan
+
+# This situation moves congestion from TCH/H to TCH/F (TCH/H was 100% congested, then makes TCH/F 100% congested)
+# The congestion requirements would normally forbid this, but since this is an "RxQual emergency", we should reassign.
+set-ts-use trx 0 0 states        *    TCH/F TCH/F -     TCH/HH TCH/HH *    *
+meas-rep repeat 9 lchan 0 0 4 0 rxlev 23 rxqual 1 ta 0
+# not enough values for rxlev averaging
+expect-no-chan
+meas-rep lchan 0 0 4 0 rxlev 23 rxqual 1 ta 0
+# average rxlev is now -110 + 23 = -87 < -80: reassign to TCH/F due to bad rxlev
+#expect-as from lchan 0 0 4 0 to lchan 0 0 3 0
+#expect-ts-use trx 0 0 states     *    TCH/F TCH/F TCH/F TCH/-H TCH/HH *    *
+# FAIL: osmo-bsc does not move to TCH/F from bad rxlev
+expect-no-chan
+
+# This situation worsens congestion (TCH/H was 50% congested, then makes TCH/F 100% congested)
+# The congestion requirements would normally forbid this, but since this is an "RxQual emergency", we should reassign.
+set-ts-use trx 0 0 states        *    TCH/F TCH/F -     TCH/H- TCH/HH *    *
+meas-rep repeat 9 lchan 0 0 4 0 rxlev 23 rxqual 1 ta 0
+# not enough values for rxlev averaging
+expect-no-chan
+meas-rep lchan 0 0 4 0 rxlev 23 rxqual 1 ta 0
+# average rxlev is now -110 + 23 = -87 < -80: reassign to TCH/F due to bad rxlev
+#expect-as from lchan 0 0 4 0 to lchan 0 0 3 0
+#expect-ts-use trx 0 0 states     *    TCH/F TCH/F TCH/F -      TCH/HH *    *
+# FAIL: osmo-bsc does not move to TCH/F from bad rxlev
+expect-no-chan
+
+
+# This situation creates congestion (TCH/H was not congested, then makes TCH/F 50% congested)
+# The congestion requirements would normally forbid this, but since this is an "RxQual emergency", we should reassign.
+set-ts-use trx 0 0 states        *    TCH/F -     -     TCH/H- -      *    *
+meas-rep repeat 9 lchan 0 0 4 0 rxlev 23 rxqual 1 ta 0
+# not enough values for rxlev averaging
+expect-no-chan
+meas-rep lchan 0 0 4 0 rxlev 23 rxqual 1 ta 0
+# average rxlev is now -110 + 23 = -87 < -80: reassign to TCH/F due to bad rxlev
+#expect-as from lchan 0 0 4 0 to lchan 0 0 2 0
+#expect-ts-use trx 0 0 states     *    TCH/F TCH/F -     -      -      *    *
+# FAIL: osmo-bsc does not move to TCH/F from bad rxlev
+expect-no-chan
diff --git a/tests/handover/test_amr_tch_h_to_f_rxqual.ho_vty b/tests/handover/test_amr_tch_h_to_f_rxqual.ho_vty
new file mode 100644
index 0000000..414a5fd
--- /dev/null
+++ b/tests/handover/test_amr_tch_h_to_f_rxqual.ho_vty
@@ -0,0 +1,18 @@
+# Low RxQual causes upgrade of TCH/H to TCH/F
+
+network
+ handover2 afs-bias rxlev 0
+ handover2 min rxqual 5
+ handover2 window rxqual averaging 2
+
+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 6 ta 0
+# not enough valus for rxqual averaging
+expect-no-chan
+meas-rep lchan 0 0 4 0 rxlev 30 rxqual 6 ta 0
+# average rxqual now at 6 which is worse than 5, reassign to TCH/F due to bad rxqual.
+#expect-as from lchan 0 0 4 0 to lchan 0 0 1 0
+#expect-ts-use trx 0 0 states * TCH/F - - - - - *
+# FAIL: osmo-bsc does not move to TCH/F from bad rxqual
+expect-no-chan
diff --git a/tests/handover/test_amr_tch_h_to_f_rxqual_congested.ho_vty b/tests/handover/test_amr_tch_h_to_f_rxqual_congested.ho_vty
new file mode 100644
index 0000000..30c2c67
--- /dev/null
+++ b/tests/handover/test_amr_tch_h_to_f_rxqual_congested.ho_vty
@@ -0,0 +1,78 @@
+# Low RxQual causes upgrade of TCH/H to TCH/F, also when the cell is congested
+
+network
+ handover2 afs-bias rxlev 0
+ handover2 min rxqual 5
+ handover2 min rxlev -90
+ handover2 window rxqual averaging 2
+ handover2 min-free-slots tch/f 2
+ handover2 min-free-slots tch/h 2
+
+create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/H  TCH/H  PDCH PDCH
+
+# This situation actually reduces congestion
+set-ts-use trx 0 0 states        *    -     -     -     TCH/HH TCH/HH *    *
+meas-rep lchan 0 0 4 0 rxlev 50 rxqual 6 ta 0
+# not enough values for rxqual averaging
+expect-no-chan
+meas-rep lchan 0 0 4 0 rxlev 50 rxqual 6 ta 0
+# average rxqual now at 6 which is worse than 5, reassign to TCH/F due to bad rxqual.
+#expect-as from lchan 0 0 4 0 to lchan 0 0 1 0
+#expect-ts-use trx 0 0 states     *    TCH/F -     -     TCH/-H TCH/HH *    *
+# FAIL: osmo-bsc does not move to TCH/F from bad rxqual
+expect-no-chan
+
+
+# This situation actually balances congestion
+set-ts-use trx 0 0 states        *    TCH/F -     -     TCH/HH TCH/HH *    *
+meas-rep lchan 0 0 4 0 rxlev 50 rxqual 6 ta 0
+# not enough values for rxqual averaging
+expect-no-chan
+meas-rep lchan 0 0 4 0 rxlev 50 rxqual 6 ta 0
+# average rxqual now at 6 which is worse than 5, reassign to TCH/F due to bad rxqual.
+#expect-as from lchan 0 0 4 0 to lchan 0 0 2 0
+#expect-ts-use trx 0 0 states     *    TCH/F TCH/F -     TCH/-H TCH/HH *    *
+# FAIL: osmo-bsc does not move to TCH/F from bad rxqual
+expect-no-chan
+
+
+# This situation moves congestion from TCH/H to TCH/F (TCH/H was 100% congested, then makes TCH/F 100% congested)
+# The congestion requirements would normally forbid this, but since this is an "RxQual emergency", we should reassign.
+set-ts-use trx 0 0 states        *    TCH/F TCH/F -     TCH/HH TCH/HH *    *
+meas-rep lchan 0 0 4 0 rxlev 50 rxqual 6 ta 0
+# not enough values for rxqual averaging
+expect-no-chan
+meas-rep lchan 0 0 4 0 rxlev 50 rxqual 6 ta 0
+# average rxqual now at 6 which is worse than 5, reassign to TCH/F due to bad rxqual.
+#expect-as from lchan 0 0 4 0 to lchan 0 0 3 0
+#expect-ts-use trx 0 0 states     *    TCH/F TCH/F TCH/F TCH/-H TCH/HH *    *
+# FAIL: osmo-bsc does not move to TCH/F from bad rxqual
+expect-no-chan
+
+
+# This situation worsens congestion (TCH/H was 50% congested, then makes TCH/F 100% congested)
+# The congestion requirements would normally forbid this, but since this is an "RxQual emergency", we should reassign.
+set-ts-use trx 0 0 states        *    TCH/F TCH/F -     TCH/H- TCH/HH *    *
+meas-rep lchan 0 0 4 0 rxlev 50 rxqual 6 ta 0
+# not enough values for rxqual averaging
+expect-no-chan
+meas-rep lchan 0 0 4 0 rxlev 50 rxqual 6 ta 0
+# average rxqual now at 6 which is worse than 5, reassign to TCH/F due to bad rxqual.
+#expect-as from lchan 0 0 4 0 to lchan 0 0 3 0
+#expect-ts-use trx 0 0 states     *    TCH/F TCH/F TCH/F -      TCH/HH *    *
+# FAIL: osmo-bsc does not move to TCH/F from bad rxqual
+expect-no-chan
+
+
+# This situation creates congestion (TCH/H was not congested, then makes TCH/F 50% congested)
+# The congestion requirements would normally forbid this, but since this is an "RxQual emergency", we should reassign.
+set-ts-use trx 0 0 states        *    TCH/F -     -     TCH/H- -      *    *
+meas-rep lchan 0 0 4 0 rxlev 50 rxqual 6 ta 0
+# not enough values for rxqual averaging
+expect-no-chan
+meas-rep lchan 0 0 4 0 rxlev 50 rxqual 6 ta 0
+# average rxqual now at 6 which is worse than 5, reassign to TCH/F due to bad rxqual.
+#expect-as from lchan 0 0 4 0 to lchan 0 0 2 0
+#expect-ts-use trx 0 0 states     *    TCH/F TCH/F -     -      -      *    *
+# FAIL: osmo-bsc does not move to TCH/F from bad rxqual
+expect-no-chan

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/24571
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ib88f7e00d8bd77e2b02a7242a0fab4dd79333037
Gerrit-Change-Number: 24571
Gerrit-PatchSet: 4
Gerrit-Owner: neels <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: neels <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210608/fa1c4e2b/attachment.htm>


More information about the gerrit-log mailing list