paging: Document 'ccch_load_ind_period * 2' value
Change-Id: Ie88bb0f9859bcf4b3b4a07ccf3b1791cb50163f1
This commit is contained in:
parent
4821c9f4df
commit
ad1f436512
|
@ -73,6 +73,11 @@ static const struct timespec retrans_period = {
|
||||||
.tv_nsec = 500 * 1000 * 1000,
|
.tv_nsec = 500 * 1000 * 1000,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* If no CCCH Lod Ind is received before this time period, the BTS is considered
|
||||||
|
* to have stopped sending CCCH Load Indication, probaby due to being under Load
|
||||||
|
* Threshold: */
|
||||||
|
#define bts_no_ccch_load_ind_timeout_sec(bts) ((bts)->ccch_load_ind_period * 2)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Kill one paging request update the internal list...
|
* Kill one paging request update the internal list...
|
||||||
*/
|
*/
|
||||||
|
@ -132,13 +137,14 @@ static void paging_give_credit(void *data)
|
||||||
{
|
{
|
||||||
struct gsm_bts_paging_state *paging_bts_st = data;
|
struct gsm_bts_paging_state *paging_bts_st = data;
|
||||||
struct gsm_bts *bts = paging_bts_st->bts;
|
struct gsm_bts *bts = paging_bts_st->bts;
|
||||||
uint16_t estimated_slots = paging_estimate_available_slots(bts, bts->ccch_load_ind_period * 2);
|
unsigned int load_ind_timeout = bts_no_ccch_load_ind_timeout_sec(bts);
|
||||||
|
uint16_t estimated_slots = paging_estimate_available_slots(bts, load_ind_timeout);
|
||||||
LOG_BTS(bts, DPAG, LOGL_INFO,
|
LOG_BTS(bts, DPAG, LOGL_INFO,
|
||||||
"Timeout waiting for CCCH Load Indication, assuming BTS is below Load Threshold (available_slots %u -> %u)\n",
|
"Timeout waiting for CCCH Load Indication, assuming BTS is below Load Threshold (available_slots %u -> %u)\n",
|
||||||
paging_bts_st->available_slots, estimated_slots);
|
paging_bts_st->available_slots, estimated_slots);
|
||||||
paging_bts_st->available_slots = estimated_slots;
|
paging_bts_st->available_slots = estimated_slots;
|
||||||
paging_schedule_if_needed(paging_bts_st);
|
paging_schedule_if_needed(paging_bts_st);
|
||||||
osmo_timer_schedule(&bts->paging.credit_timer, bts->ccch_load_ind_period * 2, 0);
|
osmo_timer_schedule(&bts->paging.credit_timer, load_ind_timeout, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! count the number of free channels for given RSL channel type required
|
/*! count the number of free channels for given RSL channel type required
|
||||||
|
@ -294,11 +300,12 @@ void paging_init(struct gsm_bts *bts)
|
||||||
{
|
{
|
||||||
bts->paging.bts = bts;
|
bts->paging.bts = bts;
|
||||||
bts->paging.free_chans_need = -1;
|
bts->paging.free_chans_need = -1;
|
||||||
bts->paging.available_slots = paging_estimate_available_slots(bts, bts->ccch_load_ind_period * 2);
|
unsigned int load_ind_timeout = bts_no_ccch_load_ind_timeout_sec(bts);
|
||||||
|
bts->paging.available_slots = paging_estimate_available_slots(bts, load_ind_timeout);
|
||||||
INIT_LLIST_HEAD(&bts->paging.pending_requests);
|
INIT_LLIST_HEAD(&bts->paging.pending_requests);
|
||||||
osmo_timer_setup(&bts->paging.work_timer, paging_worker, &bts->paging);
|
osmo_timer_setup(&bts->paging.work_timer, paging_worker, &bts->paging);
|
||||||
osmo_timer_setup(&bts->paging.credit_timer, paging_give_credit, &bts->paging);
|
osmo_timer_setup(&bts->paging.credit_timer, paging_give_credit, &bts->paging);
|
||||||
osmo_timer_schedule(&bts->paging.credit_timer, bts->ccch_load_ind_period * 2, 0);
|
osmo_timer_schedule(&bts->paging.credit_timer, load_ind_timeout, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Called upon the bts struct being freed */
|
/* Called upon the bts struct being freed */
|
||||||
|
@ -583,7 +590,8 @@ void paging_update_buffer_space(struct gsm_bts *bts, uint16_t free_slots)
|
||||||
bts->paging.available_slots = free_slots;
|
bts->paging.available_slots = free_slots;
|
||||||
paging_schedule_if_needed(&bts->paging);
|
paging_schedule_if_needed(&bts->paging);
|
||||||
/* Re-arm credit_timer */
|
/* Re-arm credit_timer */
|
||||||
osmo_timer_schedule(&bts->paging.credit_timer, bts->ccch_load_ind_period * 2, 0);
|
osmo_timer_schedule(&bts->paging.credit_timer,
|
||||||
|
bts_no_ccch_load_ind_timeout_sec(bts), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! Count the number of pending paging requests on given BTS */
|
/*! Count the number of pending paging requests on given BTS */
|
||||||
|
|
Loading…
Reference in New Issue