aboutsummaryrefslogtreecommitdiffstats
path: root/tests/agch/agch_test.ok
AgeCommit message (Collapse)AuthorFilesLines
2018-06-08compact AGCH queue: Drop too msg diff than IMM_ASS_REJPau Espin Pedrol1-1/+1
We saw in a recent prod setup a BSC with saturated channels. Further investigation lead to a AGCH queue of 1000 (previous hard_limit) messages, most of them being regular IMM ASSIGN (non REJ). Hence, we also want to get rid of other messages in the AGCH queue (like regular IMM ASSIGN). Furthermore, In this scenario, sending IMM ASS REJ is as important as other messages given than nowadays we support dynamic wait indicatior (calculated based on chan load), which means if we reach the MS, we can tell it to wait for a long time to reach us again, which is desirable. Change-Id: I022b8948da8be13fb8f4bc36e7c9dab11c35fddb
2018-06-08bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 100Pau Espin Pedrol1-2/+2
In a prod setup, complete channel saturation at the bsc was detected, and Immediate Assignments were not being answered by the MS once sent by the BTS. Further investigation showed that the BTS was all the time printing messages like this: "bts.c:540 AGCH: too many messages in queue, refusing message type 0x3f, length = 1001/10" So it seems the AGCH queue was becoming incredibly full (1000, hard limit triggered the log), while acgch_queue.max_length was set to 10. As a result, most probably the Immediate Assignments being sent to the MS are super old in time, and the MS doesn't known about them anymore once they are receivied, so no answer is sent back. Let's try to avoid that by decreasing the hard limit so we never reach that big queue_len scenario. The number 100 is selected from data gatherered in agch_test.c which prints a table of max_length values based on different setups. Some values can reach around 80 messages, so let's use a slightly bigger hard limit. Related: SYS#2695 Change-Id: I272798c959abec123776d2fa8dad5685ec512fbd
2014-03-10agch: Merge IMM.ASS.REJ if possible when enqueueingJacob Erlbeck1-2/+2
This patch implements merging of IMMEDIATE ASSIGN REJECT messages as suggested in GSM 08.58, 5.7. When a new IMM.ASS.REJ is to be appended to the AGCH queue and the last message in that queue is of the same type, the individual entries (up to 4 per message) of both messages are extracted, combined and stored back. If there are less than 5 entries, all entries fit into the old message and the new one is discarded. Otherwise, the old message will contain 4 entries and the remaining ones are stored into the new one which is then appended to the queue. Ticket: SYS#224 Sponsored-by: On-Waves ehf
2014-03-10agch: Manage AGCH queue lengthJacob Erlbeck1-1/+1
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
2014-03-10agch/pch: Use PCH for AGCH msgsJacob Erlbeck1-1/+1
This patch extends paging_gen_msg() by adding an output parameter is_empty that is true, if only a paging message with dummy entries has been placed into buffer. This feature is then used by bts_ccch_copy_msg() to insert an AGCH message if is_empty is true. Ticket: SYS#224 Sponsored-by: On-Waves ehf
2014-03-10agch/test: Add test for AGCH queue handlingJacob Erlbeck1-0/+23
The first test checks the AGCH may queue length computation. The second test fills the queue by calling bts_agch_enqueue() with a mix of IMM.ASS and IMM.ASS.REJ. Then it drains the queue by calling bts_ccch_copy_msg(). After each of both steps, statistics are printed out. Sponsored-by: On-Waves ehf