aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2014-02-14 21:15:31 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-03-10 09:40:04 +0100
commitfae0149260f084c55fb943559a3ebd72fc96643f (patch)
tree00efede114368b7388a81a1d0fd6deb46f9e3cef /tests
parent7503540959f421917a702174616655e9fdd11a24 (diff)
agch: Manage AGCH queue length
Currently, the AGCH queue length is not limited. This can lead to large delays and network malfunction if there are many IMM.ASS.REJ messages. This patch adds two features: - Don't accept msgs from the RSL layer when the queue is way too full (safety measure, mainly if bts_ccch_copy_msg() is not being called by the L1 layer, currently hard coded to 1000 messages) - Selectively drop IMM.ASS.REJ from the queue output depending on the queue length Ticket: SYS#224 Sponsored-by: On-Waves ehf
Diffstat (limited to 'tests')
-rw-r--r--tests/agch/agch_test.c4
-rw-r--r--tests/agch/agch_test.ok2
2 files changed, 5 insertions, 1 deletions
diff --git a/tests/agch/agch_test.c b/tests/agch/agch_test.c
index 7a154874..6d00ed86 100644
--- a/tests/agch/agch_test.c
+++ b/tests/agch/agch_test.c
@@ -122,6 +122,10 @@ static void test_agch_queue(void)
printf("Testing AGCH messages queue handling.\n");
btsb->agch_max_queue_length = 32;
+ btsb->agch_queue_low_level = 30;
+ btsb->agch_queue_high_level = 30;
+ btsb->agch_queue_thresh_level = 60;
+
for (round = 1; round <= num_rounds; round++) {
for (idx = 0; idx < num_ima_per_round; idx++) {
msg = msgb_alloc(GSM_MACBLOCK_LEN, __FUNCTION__);
diff --git a/tests/agch/agch_test.ok b/tests/agch/agch_test.ok
index f781383f..445d6840 100644
--- a/tests/agch/agch_test.ok
+++ b/tests/agch/agch_test.ok
@@ -19,5 +19,5 @@ T BCCH slots
50 28 14 28 28 28
Testing AGCH messages queue handling.
AGCH filled: count 720, imm.ass 80, imm.ass.rej 640 (refs 640), queue limit 32, occupied 720, dropped 0, merged 0, rejected 0, ag-res 0, non-res 0
-AGCH drained: multiframes 241, imm.ass 80, imm.ass.rej 641 (refs 641), queue limit 32, occupied 0, dropped 0, merged 0, rejected 0, ag-res 240, non-res 480
+AGCH drained: multiframes 33, imm.ass 80, imm.ass.rej 17 (refs 17), queue limit 32, occupied 0, dropped 624, merged 0, rejected 0, ag-res 32, non-res 64
Success