2021-01-09 16:39:19 +00:00
|
|
|
# To balance congestion, use the remaining free percentage instead of free lchan counts.
|
|
|
|
#
|
|
|
|
# Cell A has min-free-slots 2, and has all slots occupied.
|
|
|
|
# Cell B has min-free-slots 4, and has 2 slots remaining free.
|
|
|
|
#
|
|
|
|
# If we count congested lchans: cell A has a congestion count of 2: two more lchans in use than "allowed".
|
|
|
|
# If we move one lchan over to cell B, it ends up with a congestion count of 3, which is worse than 2.
|
|
|
|
# So when counting lchans, we decide that cell A should remain full.
|
|
|
|
#
|
|
|
|
# Instead, when comparing percentage of remaining lchans, we would see that cell A is loaded 100% above congestion (2 of
|
|
|
|
# 2 remaining lchans in use), but when moving one lchan to cell B, it would only be 75% loaded above its treshold (3 of
|
|
|
|
# 4 remaining lchans in use). So a percentage comparison would cause a handover to cell B.
|
|
|
|
#
|
|
|
|
# This test currently expects the behavior of counting lchans; a patch will change to use percentage, which should
|
|
|
|
# reflect in this test.
|
|
|
|
|
|
|
|
create-bts trx-count 1 timeslots c+s4 TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F PDCH
|
|
|
|
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 2
|
|
|
|
bts 1
|
|
|
|
handover2 min-free-slots tch/f 4
|
|
|
|
|
|
|
|
set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F TCH/F TCH/F *
|
|
|
|
set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F TCH/F - - *
|
|
|
|
|
|
|
|
meas-rep lchan * * * * rxlev 40 rxqual 0 ta 0 neighbors 30
|
|
|
|
expect-no-chan
|
|
|
|
|
hodec2: to balance congestion, use overload percent
For balancing load across congested cells and across congested TCH/*
kinds, instead of comparing the number of lchans above the configured
congestion threshold, compare the percent of lchans of overload.
In short, using a percentage prevents cells with less min-free-slots to
fill up 100% while neighbor cells still may have several free lchans
available.
An obvious example of why this is desirable is illustrated by
test_balance_congestion_by_percentage.ho_vty:
Cell A has min-free-slots 2, and has all slots occupied.
Cell B has min-free-slots 4, and has 2 slots remaining free.
If we count congested lchans as in current master: cell A has a
congestion count of 2: two more lchans in use than "allowed". If we move
one lchan over to cell B, it ends up with a congestion count of 3, which
is worse than 2. So when counting lchans, we decide that cell A should
remain full.
Instead, when comparing percentage of remaining lchans, we would see
that cell A is loaded 100% above congestion (2 of 2 remaining lchans in
use), but when moving one lchan to cell B, that would only be 75% loaded
above its treshold (3 of 4 remaining lchans in use). So a percentage
comparison would cause a handover to cell B.
Related: SYS#5259
Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f
2021-01-09 17:25:36 +00:00
|
|
|
# bts 0 is full, by target_overbooked_after_ho==75% < current_overbooked_before_ho==100%, a congestion balancing to bts
|
|
|
|
# 1 is performed.
|
2021-01-09 16:39:19 +00:00
|
|
|
congestion-check
|
hodec2: to balance congestion, use overload percent
For balancing load across congested cells and across congested TCH/*
kinds, instead of comparing the number of lchans above the configured
congestion threshold, compare the percent of lchans of overload.
In short, using a percentage prevents cells with less min-free-slots to
fill up 100% while neighbor cells still may have several free lchans
available.
An obvious example of why this is desirable is illustrated by
test_balance_congestion_by_percentage.ho_vty:
Cell A has min-free-slots 2, and has all slots occupied.
Cell B has min-free-slots 4, and has 2 slots remaining free.
If we count congested lchans as in current master: cell A has a
congestion count of 2: two more lchans in use than "allowed". If we move
one lchan over to cell B, it ends up with a congestion count of 3, which
is worse than 2. So when counting lchans, we decide that cell A should
remain full.
Instead, when comparing percentage of remaining lchans, we would see
that cell A is loaded 100% above congestion (2 of 2 remaining lchans in
use), but when moving one lchan to cell B, that would only be 75% loaded
above its treshold (3 of 4 remaining lchans in use). So a percentage
comparison would cause a handover to cell B.
Related: SYS#5259
Change-Id: I55234c6c99eb02ceee52be0d7388bea14304930f
2021-01-09 17:25:36 +00:00
|
|
|
expect-ho from lchan 0 0 1 0 to lchan 1 0 5 0
|
2021-01-11 15:40:56 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Make sure that no percentage based handover merely reverses the situation between two cells:
|
|
|
|
|
|
|
|
network
|
|
|
|
bts 0
|
|
|
|
handover2 min-free-slots tch/f 4
|
|
|
|
bts 1
|
|
|
|
handover2 min-free-slots tch/f 4
|
|
|
|
|
|
|
|
set-ts-use trx 0 0 states * TCH/F TCH/F TCH/F TCH/F - - *
|
|
|
|
set-ts-use trx 1 0 states * TCH/F TCH/F TCH/F - - - *
|
|
|
|
|
|
|
|
# the condition is false: target_overbooked_after_ho==50% < current_overbooked_before_ho==50%, so no congestion
|
|
|
|
# balancing is performed.
|
|
|
|
congestion-check
|
|
|
|
expect-no-chan
|