This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Pau Espin Pedrol gerrit-no-reply at lists.osmocom.orgPau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/11654 Change subject: paging: Make default T3113 timeout dynamic ...................................................................... paging: Make default T3113 timeout dynamic Change-Id: I4fb2969b690151415038631fb6ad059aa6835c7f --- M src/osmo-bsc/net_init.c M src/osmo-bsc/paging.c 2 files changed, 31 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/54/11654/1 diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 1199bdc..5ea564d 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -37,7 +37,7 @@ { .T=3109, .default_val=5, .desc="RSL SACCH deactivation" }, { .T=3111, .default_val=2, .desc="Wait time before RSL RF Channel Release" }, { .T=993111, .default_val=4, .desc="Wait time after lchan was released in error (should be T3111 + 2s)" }, - { .T=3113, .default_val=10, .desc="Paging"}, + { .T=3113, .default_val=7, .desc="Paging"}, { .T=3115, .default_val=10, .desc="(unused)" }, { .T=3117, .default_val=10, .desc="(unused)" }, { .T=3119, .default_val=10, .desc="(unused)" }, diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c index afe3245..a5fed32 100644 --- a/src/osmo-bsc/paging.c +++ b/src/osmo-bsc/paging.c @@ -287,6 +287,34 @@ paging_remove_request(&req->bts->paging, req); } + +#define GSM_FRAME_DURATION_us 4615 +#define GSM51_MFRAME_DURATION_us (51 * GSM_FRAME_DURATION_us) /* 235365 us */ +static unsigned int calculate_timer_3113(struct gsm_bts *bts) +{ + unsigned int to_us, to; + struct T_def *d = T_def_get_entry(bts->network->T_defs, 3113); + + /* VTY value overrides default dynamic value */ + if (d->val != d->default_val) + return d->val; + + /* TODO: take into account load of paging group for req->bsub */ + + /* MFRMS defines repeat interval of paging messages for MSs that belong + * to same paging group accross multiple 51 frame multiframes. + * MAXTRANS defines maximum number of RACH retransmissions. + */ + to_us = GSM51_MFRAME_DURATION_us * (bts->si_common.chan_desc.bs_pa_mfrms + 2) * + bts->si_common.rach_control.max_trans; + + /* ceiling in seconds + extra time */ + to = (to_us + 999999) / 1000000 + d->default_val; + LOGP(DPAG, LOGL_DEBUG, "(bts=%d) Paging request calculated T3113 expires in %u seconds\n", + bts->nr, to); + return to; +} + /*! Start paging + paging timer for given subscriber on given BTS * \param bts BTS on which to page * \param[in] bsub subscriber we want to page @@ -317,7 +345,8 @@ req->chan_type = type; req->msc = msc; osmo_timer_setup(&req->T3113, paging_T3113_expired, req); - osmo_timer_schedule(&req->T3113, T_def_get(bts->network->T_defs, 3113, T_S, -1), 0); + int t3113_timeout_s = calculate_timer_3113(bts); + osmo_timer_schedule(&req->T3113, t3113_timeout_s, 0); llist_add_tail(&req->entry, &bts_entry->pending_requests); paging_schedule_if_needed(bts_entry); -- To view, visit https://gerrit.osmocom.org/11654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4fb2969b690151415038631fb6ad059aa6835c7f Gerrit-Change-Number: 11654 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181107/ae54cf8d/attachment.htm>