diff options
Diffstat (limited to 'openbsc/src/paging.c')
-rw-r--r-- | openbsc/src/paging.c | 7 |
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); } |