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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gbproxy: Rename gbproxy_cfg.nses to gbproxy_cfg.bss_nses<br><br>We will soon also have a list of sgsn-side NSEs, and we need to<br>differentiate those.<br><br>Change-Id: If5accec0c70c01b88927ea07beba6f6488bd9d5a<br>Related: OS#4472<br>---<br>M include/osmocom/sgsn/gb_proxy.h<br>M src/gbproxy/gb_proxy.c<br>M src/gbproxy/gb_proxy_ctrl.c<br>M src/gbproxy/gb_proxy_peer.c<br>M src/gbproxy/gb_proxy_vty.c<br>M tests/gbproxy/gbproxy_test.c<br>6 files changed, 27 insertions(+), 27 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h</span><br><span>index 818ab9d..27b47cf 100644</span><br><span>--- a/include/osmocom/sgsn/gb_proxy.h</span><br><span>+++ b/include/osmocom/sgsn/gb_proxy.h</span><br><span>@@ -101,8 +101,8 @@</span><br><span>        /* NS instance of libosmogb */</span><br><span>       struct gprs_ns2_inst *nsi;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  /* Linked list of all Gb peers (except SGSN) */</span><br><span style="color: hsl(0, 100%, 40%);">- struct llist_head nses;</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Linked list of all BSS side Gb peers */</span><br><span style="color: hsl(120, 100%, 40%);">+    struct llist_head bss_nses;</span><br><span> </span><br><span>      /* Counter */</span><br><span>        struct rate_ctr_group *ctrg;</span><br><span>@@ -175,7 +175,7 @@</span><br><span> </span><br><span> /* one NS Entity that we interact with (BSS/PCU) */</span><br><span> struct gbproxy_nse {</span><br><span style="color: hsl(0, 100%, 40%);">-   /* linked to gbproxy_config.nses */</span><br><span style="color: hsl(120, 100%, 40%);">+   /* linked to gbproxy_config.bss_nses */</span><br><span>      struct llist_head list;</span><br><span> </span><br><span>  /* point back to the config */</span><br><span>diff --git a/src/gbproxy/gb_proxy.c b/src/gbproxy/gb_proxy.c</span><br><span>index 94944f9..4c34941 100644</span><br><span>--- a/src/gbproxy/gb_proxy.c</span><br><span>+++ b/src/gbproxy/gb_proxy.c</span><br><span>@@ -1203,7 +1203,7 @@</span><br><span>  } else if (TLVP_PRES_LEN(tp, BSSGP_IE_ROUTEING_AREA, 6)) {</span><br><span>           errctr = GBPROX_GLOB_CTR_INV_RAI;</span><br><span>            /* iterate over all bvcs and dispatch the paging to each matching one */</span><br><span style="color: hsl(0, 100%, 40%);">-                llist_for_each_entry(nse, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+          llist_for_each_entry(nse, &cfg->bss_nses, list) {</span><br><span>                     llist_for_each_entry(bvc, &nse->bvcs, list) {</span><br><span>                                 if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_ROUTEING_AREA), 6)) {</span><br><span>                                  LOGPNSE(nse, LOGL_INFO, "routing to NSE (RAI match)\n");</span><br><span>@@ -1217,7 +1217,7 @@</span><br><span>   } else if (TLVP_PRES_LEN(tp, BSSGP_IE_LOCATION_AREA, 5)) {</span><br><span>           errctr = GBPROX_GLOB_CTR_INV_LAI;</span><br><span>            /* iterate over all bvcs and dispatch the paging to each matching one */</span><br><span style="color: hsl(0, 100%, 40%);">-                llist_for_each_entry(nse, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+          llist_for_each_entry(nse, &cfg->bss_nses, list) {</span><br><span>                     llist_for_each_entry(bvc, &nse->bvcs, list) {</span><br><span>                                 if (!memcmp(bvc->ra, TLVP_VAL(tp, BSSGP_IE_LOCATION_AREA), 5)) {</span><br><span>                                  LOGPNSE(nse, LOGL_INFO, "routing to NSE (LAI match)\n");</span><br><span>@@ -1230,7 +1230,7 @@</span><br><span>           }</span><br><span>    } else if (TLVP_PRES_LEN(tp, BSSGP_IE_BSS_AREA_ID, 1)) {</span><br><span>             /* iterate over all bvcs and dispatch the paging to each matching one */</span><br><span style="color: hsl(0, 100%, 40%);">-                llist_for_each_entry(nse, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+          llist_for_each_entry(nse, &cfg->bss_nses, list) {</span><br><span>                     llist_for_each_entry(bvc, &nse->bvcs, list) {</span><br><span>                                 LOGPNSE(nse, LOGL_INFO, "routing to NSE (broadcast)\n");</span><br><span>                           gbprox_relay2nse(msg, nse, ns_bvci);</span><br><span>@@ -1291,7 +1291,7 @@</span><br><span>          * from the SGSN.  As the signalling BVCI is shared</span><br><span>   * among all the BSS's that we multiplex, it needs to</span><br><span>     * be relayed  */</span><br><span style="color: hsl(0, 100%, 40%);">-       llist_for_each_entry(nse, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+  llist_for_each_entry(nse, &cfg->bss_nses, list) {</span><br><span>             llist_for_each_entry(bvc, &nse->bvcs, list)</span><br><span>                   gbprox_relay2peer(msg, bvc, ns_bvci);</span><br><span>        }</span><br><span>@@ -1425,7 +1425,7 @@</span><br><span>            LOGP(DGPRS, LOGL_DEBUG,</span><br><span>                      "NSE(%05u/SGSN) BSSGP %s: broadcasting\n", nsei, bssgp_pdu_str(pdu_type));</span><br><span>                 /* broadcast to all BSS-side bvcs */</span><br><span style="color: hsl(0, 100%, 40%);">-            llist_for_each_entry(nse, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+          llist_for_each_entry(nse, &cfg->bss_nses, list) {</span><br><span>                     gbprox_relay2nse(msg, nse, 0);</span><br><span>               }</span><br><span>            break;</span><br><span>@@ -1620,7 +1620,7 @@</span><br><span> {</span><br><span>  struct gbproxy_nse *nse, *ntmp;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     llist_for_each_entry_safe(nse, ntmp, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+       llist_for_each_entry_safe(nse, ntmp, &cfg->bss_nses, list) {</span><br><span>          struct gbproxy_bvc *bvc, *tmp;</span><br><span>               llist_for_each_entry_safe(bvc, tmp, &nse->bvcs, list)</span><br><span>                         gbproxy_bvc_free(bvc);</span><br><span>@@ -1636,7 +1636,7 @@</span><br><span> {</span><br><span>  struct timespec tp;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- INIT_LLIST_HEAD(&cfg->nses);</span><br><span style="color: hsl(120, 100%, 40%);">+   INIT_LLIST_HEAD(&cfg->bss_nses);</span><br><span>      cfg->ctrg = rate_ctr_group_alloc(tall_sgsn_ctx, &global_ctrg_desc, 0);</span><br><span>        if (!cfg->ctrg) {</span><br><span>                 LOGP(DGPRS, LOGL_ERROR, "Cannot allocate global counter group!\n");</span><br><span>diff --git a/src/gbproxy/gb_proxy_ctrl.c b/src/gbproxy/gb_proxy_ctrl.c</span><br><span>index 097a29e..c3cfddf 100644</span><br><span>--- a/src/gbproxy/gb_proxy_ctrl.c</span><br><span>+++ b/src/gbproxy/gb_proxy_ctrl.c</span><br><span>@@ -69,7 +69,7 @@</span><br><span>           gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd);</span><br><span> </span><br><span>    /* NS-VCs for BSS peers */</span><br><span style="color: hsl(0, 100%, 40%);">-      llist_for_each_entry(nse_peer, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+     llist_for_each_entry(nse_peer, &cfg->bss_nses, list) {</span><br><span>                nse = gprs_ns2_nse_by_nsei(nsi, nse_peer->nsei);</span><br><span>          if (nse)</span><br><span>                     gprs_ns2_nse_foreach_nsvc(nse, &ctrl_nsvc_state_cb, cmd);</span><br><span>@@ -87,7 +87,7 @@</span><br><span> </span><br><span>        cmd->reply = talloc_strdup(cmd, "");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   llist_for_each_entry(nse_peer, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+     llist_for_each_entry(nse_peer, &cfg->bss_nses, list) {</span><br><span>                struct gbproxy_bvc *bvc;</span><br><span>             llist_for_each_entry(bvc, &nse_peer->bvcs, list) {</span><br><span>                    struct gprs_ra_id raid;</span><br><span>@@ -112,7 +112,7 @@</span><br><span>        struct gbproxy_nse *nse_peer;</span><br><span>        uint32_t count = 0;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- llist_for_each_entry(nse_peer, &cfg->nses, list)</span><br><span style="color: hsl(120, 100%, 40%);">+       llist_for_each_entry(nse_peer, &cfg->bss_nses, list)</span><br><span>          count += llist_count(&nse_peer->bvcs);</span><br><span> </span><br><span>    cmd->reply = talloc_strdup(cmd, "");</span><br><span>diff --git a/src/gbproxy/gb_proxy_peer.c b/src/gbproxy/gb_proxy_peer.c</span><br><span>index a5b93ee..c48a78f 100644</span><br><span>--- a/src/gbproxy/gb_proxy_peer.c</span><br><span>+++ b/src/gbproxy/gb_proxy_peer.c</span><br><span>@@ -87,7 +87,7 @@</span><br><span> {</span><br><span>  struct gbproxy_nse *nse;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    llist_for_each_entry(nse, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+  llist_for_each_entry(nse, &cfg->bss_nses, list) {</span><br><span>             struct gbproxy_bvc *bvc;</span><br><span>             llist_for_each_entry(bvc, &nse->bvcs, list) {</span><br><span>                         if (bvc->bvci == bvci)</span><br><span>@@ -103,7 +103,7 @@</span><br><span>                                        uint16_t nsei)</span><br><span> {</span><br><span>        struct gbproxy_nse *nse;</span><br><span style="color: hsl(0, 100%, 40%);">-        llist_for_each_entry(nse, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+  llist_for_each_entry(nse, &cfg->bss_nses, list) {</span><br><span>             if (nse->nsei == nsei && !llist_empty(&nse->bvcs))</span><br><span>                         return llist_first_entry(&nse->bvcs, struct gbproxy_bvc, list);</span><br><span>       }</span><br><span>@@ -117,7 +117,7 @@</span><br><span> {</span><br><span>         struct gbproxy_nse *nse;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    llist_for_each_entry(nse, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+  llist_for_each_entry(nse, &cfg->bss_nses, list) {</span><br><span>             struct gbproxy_bvc *bvc;</span><br><span>             llist_for_each_entry(bvc, &nse->bvcs, list) {</span><br><span>                         if (!memcmp(bvc->ra, ra, 6))</span><br><span>@@ -135,7 +135,7 @@</span><br><span> {</span><br><span>   struct gbproxy_nse *nse;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    llist_for_each_entry(nse, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+  llist_for_each_entry(nse, &cfg->bss_nses, list) {</span><br><span>             struct gbproxy_bvc *bvc;</span><br><span>             llist_for_each_entry(bvc, &nse->bvcs, list) {</span><br><span>                         if (!memcmp(bvc->ra, la, 5))</span><br><span>@@ -152,7 +152,7 @@</span><br><span> {</span><br><span>   struct gbproxy_nse *nse;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    llist_for_each_entry(nse, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+  llist_for_each_entry(nse, &cfg->bss_nses, list) {</span><br><span>             struct gbproxy_bvc *bvc;</span><br><span>             llist_for_each_entry(bvc, &nse->bvcs, list) {</span><br><span>                         if (!memcmp(bvc->ra + 3, la + 3, 2))</span><br><span>@@ -272,7 +272,7 @@</span><br><span>        struct gbproxy_nse *nse, *ntmp;</span><br><span>      OSMO_ASSERT(cfg);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   llist_for_each_entry_safe(nse, ntmp, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+       llist_for_each_entry_safe(nse, ntmp, &cfg->bss_nses, list) {</span><br><span>          struct gbproxy_bvc *bvc, *tmp;</span><br><span>               if (nse->nsei != nsei)</span><br><span>                    continue;</span><br><span>@@ -300,7 +300,7 @@</span><br><span>      nse->nsei = nsei;</span><br><span>         nse->cfg = cfg;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  llist_add(&nse->list, &cfg->nses);</span><br><span style="color: hsl(120, 100%, 40%);">+      llist_add(&nse->list, &cfg->bss_nses);</span><br><span> </span><br><span>     INIT_LLIST_HEAD(&nse->bvcs);</span><br><span> </span><br><span>@@ -326,7 +326,7 @@</span><br><span>        struct gbproxy_nse *nse;</span><br><span>     OSMO_ASSERT(cfg);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   llist_for_each_entry(nse, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+  llist_for_each_entry(nse, &cfg->bss_nses, list) {</span><br><span>             if (nse->nsei == nsei)</span><br><span>                    return nse;</span><br><span>  }</span><br><span>diff --git a/src/gbproxy/gb_proxy_vty.c b/src/gbproxy/gb_proxy_vty.c</span><br><span>index 3ef8ccc..e79297d 100644</span><br><span>--- a/src/gbproxy/gb_proxy_vty.c</span><br><span>+++ b/src/gbproxy/gb_proxy_vty.c</span><br><span>@@ -428,7 +428,7 @@</span><br><span>            and new frequency is desired to be lower. After initial run, periodic</span><br><span>        time is used. Use random() to avoid firing timers for all bvcs at</span><br><span>            the same time */</span><br><span style="color: hsl(0, 100%, 40%);">-     llist_for_each_entry(nse, &g_cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+        llist_for_each_entry(nse, &g_cfg->bss_nses, list) {</span><br><span>           struct gbproxy_bvc *bvc;</span><br><span>             llist_for_each_entry(bvc, &nse->bvcs, list)</span><br><span>                   osmo_timer_schedule(&bvc->clean_stale_timer,</span><br><span>@@ -447,7 +447,7 @@</span><br><span>    struct gbproxy_nse *nse;</span><br><span>     g_cfg->clean_stale_timer_freq = 0;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       llist_for_each_entry(nse, &g_cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+        llist_for_each_entry(nse, &g_cfg->bss_nses, list) {</span><br><span>           struct gbproxy_bvc *bvc;</span><br><span>             llist_for_each_entry(bvc, &nse->bvcs, list)</span><br><span>                   osmo_timer_del(&bvc->clean_stale_timer);</span><br><span>@@ -584,7 +584,7 @@</span><br><span>        if (show_stats)</span><br><span>              vty_out_rate_ctr_group(vty, "", g_cfg->ctrg);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  llist_for_each_entry(nse, &g_cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+        llist_for_each_entry(nse, &g_cfg->bss_nses, list) {</span><br><span>           struct gbproxy_bvc *bvc;</span><br><span>             llist_for_each_entry(bvc, &nse->bvcs, list) {</span><br><span>                         gbprox_vty_print_bvc(vty, bvc);</span><br><span>@@ -606,7 +606,7 @@</span><br><span>        osmo_clock_gettime(CLOCK_MONOTONIC, &ts);</span><br><span>        now = ts.tv_sec;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    llist_for_each_entry(nse, &g_cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+        llist_for_each_entry(nse, &g_cfg->bss_nses, list) {</span><br><span>           struct gbproxy_bvc *bvc;</span><br><span>             llist_for_each_entry(bvc, &nse->bvcs, list) {</span><br><span>                         struct gbproxy_link_info *link_info;</span><br><span>@@ -704,7 +704,7 @@</span><br><span>                   struct gbproxy_nse *nse;</span><br><span>                     struct gbproxy_bvc *bvc;</span><br><span>                     counter = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-                    llist_for_each_entry(nse, &g_cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+                        llist_for_each_entry(nse, &g_cfg->bss_nses, list) {</span><br><span>                           if (nse->nsei != nsei)</span><br><span>                                    continue;</span><br><span>                            llist_for_each_entry(bvc, &nse->bvcs, list) {</span><br><span>diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c</span><br><span>index 873319b..5538089 100644</span><br><span>--- a/tests/gbproxy/gbproxy_test.c</span><br><span>+++ b/tests/gbproxy/gbproxy_test.c</span><br><span>@@ -129,7 +129,7 @@</span><br><span>              return rc;</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      llist_for_each_entry(nse, &cfg->nses, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+  llist_for_each_entry(nse, &cfg->bss_nses, list) {</span><br><span>             struct gbproxy_bvc *peer;</span><br><span>            llist_for_each_entry(peer, &nse->bvcs, list) {</span><br><span>                        struct gbproxy_link_info *link_info;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-sgsn/+/21549">change 21549</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/+/21549"/><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: If5accec0c70c01b88927ea07beba6f6488bd9d5a </div>
<div style="display:none"> Gerrit-Change-Number: 21549 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </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>