<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/26168">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, but someone else must approve
  fixeria: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bts_pch_timer: Avoid resend Paging Request over PCUIF if T3113 is armed<br><br>Let's avoid flooding the BTS and taking CCCH resources for no good<br>reason. If user configures everything correctly, the SGSN should not<br>attempt a retry after similar timer >= T3113.<br><br>Related: OS#5297<br>Change-Id: I2a77714648d16ccff2a340ce775e83dcc5ffe707<br>---<br>M src/bts.cpp<br>M src/bts.h<br>M src/bts_pch_timer.c<br>M src/bts_pch_timer.h<br>M src/gprs_bssgp_pcu.c<br>5 files changed, 9 insertions(+), 5 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/bts.cpp b/src/bts.cpp</span><br><span>index 2dc8ffb..dc20259 100644</span><br><span>--- a/src/bts.cpp</span><br><span>+++ b/src/bts.cpp</span><br><span>@@ -134,6 +134,7 @@</span><br><span>         { "llc:dl_bytes",               "RLC encapsulated PDUs"},</span><br><span>        { "llc:ul_bytes",               "full PDUs received   "},</span><br><span>        { "pch:requests",             "PCH requests sent    "},</span><br><span style="color: hsl(120, 100%, 40%);">+   { "pch:requests:already",     "PCH requests on subscriber already being paged"},</span><br><span>         { "pch:requests:timeout",     "PCH requests timeout "},</span><br><span>  { "rach:requests",            "RACH requests received"},</span><br><span>         { "rach:requests:11bit",      "11BIT_RACH requests received"},</span><br><span>diff --git a/src/bts.h b/src/bts.h</span><br><span>index 3f482c9..3a58c63 100644</span><br><span>--- a/src/bts.h</span><br><span>+++ b/src/bts.h</span><br><span>@@ -126,6 +126,7 @@</span><br><span>    CTR_LLC_DL_BYTES,</span><br><span>    CTR_LLC_UL_BYTES,</span><br><span>    CTR_PCH_REQUESTS,</span><br><span style="color: hsl(120, 100%, 40%);">+     CTR_PCH_REQUESTS_ALREADY,</span><br><span>    CTR_PCH_REQUESTS_TIMEDOUT,</span><br><span>   CTR_RACH_REQUESTS,</span><br><span>   CTR_RACH_REQUESTS_11BIT,</span><br><span>diff --git a/src/bts_pch_timer.c b/src/bts_pch_timer.c</span><br><span>index 312d85a..d721155 100644</span><br><span>--- a/src/bts_pch_timer.c</span><br><span>+++ b/src/bts_pch_timer.c</span><br><span>@@ -41,7 +41,7 @@</span><br><span>        return NULL;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static struct bts_pch_timer *bts_pch_timer_get_by_imsi(struct gprs_rlcmac_bts *bts, const char *imsi)</span><br><span style="color: hsl(120, 100%, 40%);">+struct bts_pch_timer *bts_pch_timer_get_by_imsi(struct gprs_rlcmac_bts *bts, const char *imsi)</span><br><span> {</span><br><span>      struct bts_pch_timer *p;</span><br><span> </span><br><span>@@ -77,10 +77,6 @@</span><br><span>    struct bts_pch_timer *p;</span><br><span>     struct osmo_tdef *tdef;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     /* We already have a timer running for this IMSI */</span><br><span style="color: hsl(0, 100%, 40%);">-     if (bts_pch_timer_get_by_imsi(bts, imsi))</span><br><span style="color: hsl(0, 100%, 40%);">-               return;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>      p = talloc_zero(bts, struct bts_pch_timer);</span><br><span>  llist_add_tail(&p->entry, &bts->pch_timer);</span><br><span>    p->bts = bts;</span><br><span>diff --git a/src/bts_pch_timer.h b/src/bts_pch_timer.h</span><br><span>index 3e47161..cc5dcb0 100644</span><br><span>--- a/src/bts_pch_timer.h</span><br><span>+++ b/src/bts_pch_timer.h</span><br><span>@@ -42,6 +42,7 @@</span><br><span>                         const char *imsi);</span><br><span> void bts_pch_timer_stop(struct gprs_rlcmac_bts *bts, const struct GprsMs *ms);</span><br><span> void bts_pch_timer_stop_all(struct gprs_rlcmac_bts *bts);</span><br><span style="color: hsl(120, 100%, 40%);">+struct bts_pch_timer *bts_pch_timer_get_by_imsi(struct gprs_rlcmac_bts *bts, const char *imsi);</span><br><span> </span><br><span> #ifdef __cplusplus</span><br><span> }</span><br><span>diff --git a/src/gprs_bssgp_pcu.c b/src/gprs_bssgp_pcu.c</span><br><span>index 424a381..4328e07 100644</span><br><span>--- a/src/gprs_bssgp_pcu.c</span><br><span>+++ b/src/gprs_bssgp_pcu.c</span><br><span>@@ -320,6 +320,11 @@</span><br><span> </span><br><span>   /* FIXME: look if MS is attached a specific BTS and then only page on that one? */</span><br><span>   llist_for_each_entry(bts, &the_pcu->bts_list, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+          if (bts_pch_timer_get_by_imsi(bts, mi_imsi.imsi)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                   LOGP(DBSSGP, LOGL_INFO, "PS-Paging request already pending for IMSI=%s\n", mi_imsi.imsi);</span><br><span style="color: hsl(120, 100%, 40%);">+                   bts_do_rate_ctr_inc(bts, CTR_PCH_REQUESTS_ALREADY);</span><br><span style="color: hsl(120, 100%, 40%);">+                   continue;</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span>            if (gprs_rlcmac_paging_request(bts, &paging_mi, pgroup) < 0)</span><br><span>                  continue;</span><br><span>            bts_pch_timer_start(bts, &paging_mi, mi_imsi.imsi);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/26168">change 26168</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/c/osmo-pcu/+/26168"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I2a77714648d16ccff2a340ce775e83dcc5ffe707 </div>
<div style="display:none"> Gerrit-Change-Number: 26168 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>