aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/paging.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/paging.c')
-rw-r--r--openbsc/src/paging.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/openbsc/src/paging.c b/openbsc/src/paging.c
index a0cdc55ce..07683ad64 100644
--- a/openbsc/src/paging.c
+++ b/openbsc/src/paging.c
@@ -116,6 +116,10 @@ static void paging_handle_pending_requests(struct gsm_bts_paging_state *paging_b
struct gsm_paging_request *initial_request = NULL;
struct gsm_paging_request *current_request = NULL;
+ /* BAND AID to throttle the paging requests we send. Not more than 10. */
+ int req = 0;
+ static const int REQ_LIMIT = 5;
+
/*
* Determine if the pending_requests list is empty and
* return then.
@@ -155,7 +159,8 @@ static void paging_handle_pending_requests(struct gsm_bts_paging_state *paging_b
current_request = llist_entry(paging_bts->pending_requests.next,
struct gsm_paging_request, entry);
} while (paging_bts->available_slots > 0
- && initial_request != current_request);
+ && initial_request != current_request
+ && req++ < REQ_LIMIT);
bsc_schedule_timer(&paging_bts->work_timer, 2, 0);
}