aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2022-11-28 18:51:53 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2022-11-30 20:10:35 +0100
commit3b5e8982715f110b92d9249f3db612e4515ad82c (patch)
treeecafd0e323cf029021abbb8c356eb8c0f8d24a29 /include
parent8c723f515714d0699446492961e146b9c24584be (diff)
paging: Split paging queue into 2 queues: initial and retrans
Initial requests: paging requests which haven't been yet transmitted Retrans requests: paging requests which have already been transmitted at least once. Until now one queue was used (llist) to store both. The initial requests were stored at the start of the queue in FIFO order. After the last initial requests, the retrans requests followed also in FIFO. This ordering was used in order to prioritze scheduling of initial paging requests over retransmit paging requests. In the end, having both types in the same list only make code handling the list more complex. Hence, this patch splits the shared llist into 2 llists. Related: SYS#6200 Change-Id: Ib68f2169e3790aea4ac77ec20ad79f242b7c2747
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/bsc/paging.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/include/osmocom/bsc/paging.h b/include/osmocom/bsc/paging.h
index dd1bb9eb6..b10c39893 100644
--- a/include/osmocom/bsc/paging.h
+++ b/include/osmocom/bsc/paging.h
@@ -108,10 +108,15 @@ struct gsm_paging_request {
* to the gsm_bts, a timer and some more state.
*/
struct gsm_bts_paging_state {
- /* pending requests */
- struct llist_head pending_requests;
+ /* pending requests (initial paging request, no retransmits) */
+ struct llist_head initial_req_list;
+ /* Number of requests in initial_req_list */
+ unsigned int initial_req_list_len;
+ /* pending requests (already transmitted at least once) */
+ struct llist_head retrans_req_list;
/* Number of requests in pending_requests_len */
- unsigned int pending_requests_len;
+ unsigned int retrans_req_list_len;
+
struct gsm_bts *bts;
struct osmo_timer_list work_timer;