aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/src/input/ipaccess.c3
-rw-r--r--openbsc/src/paging.c7
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);
}