diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2014-02-14 21:15:31 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2014-03-10 09:40:04 +0100 |
commit | fae0149260f084c55fb943559a3ebd72fc96643f (patch) | |
tree | 00efede114368b7388a81a1d0fd6deb46f9e3cef /tests | |
parent | 7503540959f421917a702174616655e9fdd11a24 (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.c | 4 | ||||
-rw-r--r-- | tests/agch/agch_test.ok | 2 |
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 |