<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-sgsn/+/15547">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  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;">sgsn_libgtp: refactor ps paging into gprs_gb<br><br>Paging should be done in gprs_gb<br>Change-Id: I3020020f52005aa460ca6b245ee2297aec9821b3<br>---<br>M include/osmocom/sgsn/gprs_gb.h<br>M src/sgsn/gprs_gb.c<br>M src/sgsn/sgsn_libgtp.c<br>3 files changed, 28 insertions(+), 11 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/sgsn/gprs_gb.h b/include/osmocom/sgsn/gprs_gb.h</span><br><span>index 47f2a31..461eee3 100644</span><br><span>--- a/include/osmocom/sgsn/gprs_gb.h</span><br><span>+++ b/include/osmocom/sgsn/gprs_gb.h</span><br><span>@@ -9,3 +9,6 @@</span><br><span>                       bool drop_cipherable);</span><br><span> /* Has to be called whenever any PDU (signaling, data, ...) has been received */</span><br><span> void gprs_gb_recv_pdu(struct sgsn_mm_ctx *mmctx);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* page a MS in its routing area */</span><br><span style="color: hsl(120, 100%, 40%);">+int gprs_gb_page_ps_ra(struct sgsn_mm_ctx *mmctx);</span><br><span>diff --git a/src/sgsn/gprs_gb.c b/src/sgsn/gprs_gb.c</span><br><span>index 9fa8e00..d470cfa 100644</span><br><span>--- a/src/sgsn/gprs_gb.c</span><br><span>+++ b/src/sgsn/gprs_gb.c</span><br><span>@@ -80,3 +80,26 @@</span><br><span> </span><br><span>  return rc;</span><br><span> }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+int gprs_gb_page_ps_ra(struct sgsn_mm_ctx *mmctx)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     struct bssgp_paging_info pinfo;</span><br><span style="color: hsl(120, 100%, 40%);">+       int rc;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     /* FIXME: page whole routing area, not only the last known cell */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  /* initiate PS PAGING procedure */</span><br><span style="color: hsl(120, 100%, 40%);">+    memset(&pinfo, 0, sizeof(pinfo));</span><br><span style="color: hsl(120, 100%, 40%);">+ pinfo.mode = BSSGP_PAGING_PS;</span><br><span style="color: hsl(120, 100%, 40%);">+ pinfo.scope = BSSGP_PAGING_BVCI;</span><br><span style="color: hsl(120, 100%, 40%);">+      pinfo.bvci = mmctx->gb.bvci;</span><br><span style="color: hsl(120, 100%, 40%);">+       pinfo.imsi = mmctx->imsi;</span><br><span style="color: hsl(120, 100%, 40%);">+  pinfo.ptmsi = &mmctx->p_tmsi;</span><br><span style="color: hsl(120, 100%, 40%);">+  pinfo.drx_params = mmctx->drx_parms;</span><br><span style="color: hsl(120, 100%, 40%);">+       pinfo.qos[0] = 0; // FIXME</span><br><span style="color: hsl(120, 100%, 40%);">+    rc = bssgp_tx_paging(mmctx->gb.nsei, 0, &pinfo);</span><br><span style="color: hsl(120, 100%, 40%);">+       rate_ctr_inc(&mmctx->ctrg->ctr[GMM_CTR_PAGING_PS]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       return rc;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/src/sgsn/sgsn_libgtp.c b/src/sgsn/sgsn_libgtp.c</span><br><span>index c5bc5b8..a39687f 100644</span><br><span>--- a/src/sgsn/sgsn_libgtp.c</span><br><span>+++ b/src/sgsn/sgsn_libgtp.c</span><br><span>@@ -45,6 +45,7 @@</span><br><span> #include <osmocom/sgsn/signal.h></span><br><span> #include <osmocom/sgsn/debug.h></span><br><span> #include <osmocom/sgsn/sgsn.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/sgsn/gprs_gb.h></span><br><span> #include <osmocom/sgsn/gprs_llc.h></span><br><span> #include <osmocom/sgsn/gprs_sgsn.h></span><br><span> #include <osmocom/sgsn/gprs_gmm.h></span><br><span>@@ -614,7 +615,6 @@</span><br><span> /* Called whenever we receive a DATA packet */</span><br><span> static int cb_data_ind(struct pdp_t *lib, void *packet, unsigned int len)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       struct bssgp_paging_info pinfo;</span><br><span>      struct sgsn_pdp_ctx *pdp;</span><br><span>    struct sgsn_mm_ctx *mm;</span><br><span>      struct msgb *msg;</span><br><span>@@ -660,16 +660,7 @@</span><br><span>     switch (mm->gmm_fsm->state) {</span><br><span>  case ST_GMM_REGISTERED_SUSPENDED:</span><br><span>            /* initiate PS PAGING procedure */</span><br><span style="color: hsl(0, 100%, 40%);">-              memset(&pinfo, 0, sizeof(pinfo));</span><br><span style="color: hsl(0, 100%, 40%);">-           pinfo.mode = BSSGP_PAGING_PS;</span><br><span style="color: hsl(0, 100%, 40%);">-           pinfo.scope = BSSGP_PAGING_BVCI;</span><br><span style="color: hsl(0, 100%, 40%);">-                pinfo.bvci = mm->gb.bvci;</span><br><span style="color: hsl(0, 100%, 40%);">-            pinfo.imsi = mm->imsi;</span><br><span style="color: hsl(0, 100%, 40%);">-               pinfo.ptmsi = &mm->p_tmsi;</span><br><span style="color: hsl(0, 100%, 40%);">-               pinfo.drx_params = mm->drx_parms;</span><br><span style="color: hsl(0, 100%, 40%);">-            pinfo.qos[0] = 0; // FIXME</span><br><span style="color: hsl(0, 100%, 40%);">-              bssgp_tx_paging(mm->gb.nsei, 0, &pinfo);</span><br><span style="color: hsl(0, 100%, 40%);">-         rate_ctr_inc(&mm->ctrg->ctr[GMM_CTR_PAGING_PS]);</span><br><span style="color: hsl(120, 100%, 40%);">+            gprs_gb_page_ps_ra(mm);</span><br><span>              /* FIXME: queue the packet we received from GTP */</span><br><span>           break;</span><br><span>       case ST_GMM_REGISTERED_NORMAL:</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-sgsn/+/15547">change 15547</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-sgsn/+/15547"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-sgsn </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I3020020f52005aa460ca6b245ee2297aec9821b3 </div>
<div style="display:none"> Gerrit-Change-Number: 15547 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: lynxis lazus <lynxis@fe80.eu> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>