<p>Pau Espin Pedrol has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/11654">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">paging: Make default T3113 timeout dynamic<br><br>Change-Id: I4fb2969b690151415038631fb6ad059aa6835c7f<br>---<br>M src/osmo-bsc/net_init.c<br>M src/osmo-bsc/paging.c<br>2 files changed, 31 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/54/11654/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c</span><br><span>index 1199bdc..5ea564d 100644</span><br><span>--- a/src/osmo-bsc/net_init.c</span><br><span>+++ b/src/osmo-bsc/net_init.c</span><br><span>@@ -37,7 +37,7 @@</span><br><span>   { .T=3109, .default_val=5, .desc="RSL SACCH deactivation" },</span><br><span>       { .T=3111, .default_val=2, .desc="Wait time before RSL RF Channel Release" },</span><br><span>      { .T=993111, .default_val=4, .desc="Wait time after lchan was released in error (should be T3111 + 2s)" },</span><br><span style="color: hsl(0, 100%, 40%);">-    { .T=3113, .default_val=10, .desc="Paging"},</span><br><span style="color: hsl(120, 100%, 40%);">+        { .T=3113, .default_val=7, .desc="Paging"},</span><br><span>        { .T=3115, .default_val=10, .desc="(unused)" },</span><br><span>    { .T=3117, .default_val=10, .desc="(unused)" },</span><br><span>    { .T=3119, .default_val=10, .desc="(unused)" },</span><br><span>diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c</span><br><span>index afe3245..a5fed32 100644</span><br><span>--- a/src/osmo-bsc/paging.c</span><br><span>+++ b/src/osmo-bsc/paging.c</span><br><span>@@ -287,6 +287,34 @@</span><br><span>    paging_remove_request(&req->bts->paging, req);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define GSM_FRAME_DURATION_us      4615</span><br><span style="color: hsl(120, 100%, 40%);">+#define GSM51_MFRAME_DURATION_us (51 * GSM_FRAME_DURATION_us) /* 235365 us */</span><br><span style="color: hsl(120, 100%, 40%);">+static unsigned int calculate_timer_3113(struct gsm_bts *bts)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ unsigned int to_us, to;</span><br><span style="color: hsl(120, 100%, 40%);">+       struct T_def *d = T_def_get_entry(bts->network->T_defs, 3113);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        /* VTY value overrides default dynamic value */</span><br><span style="color: hsl(120, 100%, 40%);">+       if (d->val != d->default_val)</span><br><span style="color: hsl(120, 100%, 40%);">+           return d->val;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* TODO: take into account load of paging group for req->bsub */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* MFRMS defines repeat interval of paging messages for MSs that belong</span><br><span style="color: hsl(120, 100%, 40%);">+        * to same paging group accross multiple 51 frame multiframes.</span><br><span style="color: hsl(120, 100%, 40%);">+         * MAXTRANS defines maximum number of RACH retransmissions.</span><br><span style="color: hsl(120, 100%, 40%);">+    */</span><br><span style="color: hsl(120, 100%, 40%);">+   to_us = GSM51_MFRAME_DURATION_us * (bts->si_common.chan_desc.bs_pa_mfrms + 2) *</span><br><span style="color: hsl(120, 100%, 40%);">+            bts->si_common.rach_control.max_trans;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* ceiling in seconds + extra time */</span><br><span style="color: hsl(120, 100%, 40%);">+ to = (to_us + 999999) / 1000000 + d->default_val;</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGP(DPAG, LOGL_DEBUG, "(bts=%d) Paging request calculated T3113 expires in %u seconds\n",</span><br><span style="color: hsl(120, 100%, 40%);">+       bts->nr, to);</span><br><span style="color: hsl(120, 100%, 40%);">+ return to;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /*! Start paging + paging timer for given subscriber on given BTS</span><br><span>  * \param bts BTS on which to page</span><br><span>  * \param[in] bsub subscriber we want to page</span><br><span>@@ -317,7 +345,8 @@</span><br><span>    req->chan_type = type;</span><br><span>    req->msc = msc;</span><br><span>   osmo_timer_setup(&req->T3113, paging_T3113_expired, req);</span><br><span style="color: hsl(0, 100%, 40%);">-        osmo_timer_schedule(&req->T3113, T_def_get(bts->network->T_defs, 3113, T_S, -1), 0);</span><br><span style="color: hsl(120, 100%, 40%);">+     int t3113_timeout_s = calculate_timer_3113(bts);</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo_timer_schedule(&req->T3113, t3113_timeout_s, 0);</span><br><span>         llist_add_tail(&req->entry, &bts_entry->pending_requests);</span><br><span>     paging_schedule_if_needed(bts_entry);</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11654">change 11654</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/11654"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I4fb2969b690151415038631fb6ad059aa6835c7f </div>
<div style="display:none"> Gerrit-Change-Number: 11654 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>