diff options
Diffstat (limited to 'openbsc/src')
-rw-r--r-- | openbsc/src/input/ipaccess.c | 3 | ||||
-rw-r--r-- | openbsc/src/paging.c | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/openbsc/src/input/ipaccess.c b/openbsc/src/input/ipaccess.c index 8a8a1987d..faa172b38 100644 --- a/openbsc/src/input/ipaccess.c +++ b/openbsc/src/input/ipaccess.c @@ -572,7 +572,8 @@ static int handle_ts1_write(struct bsc_fd *bfd) e1i_ts->sign.tx_timer.data = e1i_ts; /* Reducing this might break the nanoBTS 900 init. */ - bsc_schedule_timer(&e1i_ts->sign.tx_timer, 0, 100000); + /* BAND AID for paging problem */ + bsc_schedule_timer(&e1i_ts->sign.tx_timer, 0, 100); return ret; } 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); } |