<p>daniel has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gbproxy/+/23319">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gbproxy: Don't free NSE/BVC0 if SGSN NSE goes down<br><br>SGSN NSEs are static and should not be removed. Instead remove all<br>PtP-BVCs.<br>BVC0 can't be blocked and will be reset after the NSE becomes available<br>again. It might be cleaner to remove BVC0 on NS failure and create it<br>again, but that change is a bit more complicated.<br><br>Fixes ttcn3 test after commit f96cac5077 broke them.<br><br>Related: OS#4897<br>Change-Id: Ie0cef38e4423b672f5cba35ae7fc3eb2c4071d5a<br>---<br>M src/gb_proxy.c<br>1 file changed, 9 insertions(+), 4 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/19/23319/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/gb_proxy.c b/src/gb_proxy.c</span><br><span>index c07c36b..c01c5c6 100644</span><br><span>--- a/src/gb_proxy.c</span><br><span>+++ b/src/gb_proxy.c</span><br><span>@@ -1522,6 +1522,7 @@</span><br><span>      /* TODO: bss nsei available/unavailable  bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, nsvc->nsei, bvc->bvci, 0);</span><br><span>          */</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+       int i;</span><br><span>       struct gbproxy_bvc *bvc;</span><br><span>     struct gbproxy_nse *nse;</span><br><span> </span><br><span>@@ -1552,12 +1553,17 @@</span><br><span>                       break;</span><br><span>               }</span><br><span>            if (nse->sgsn_facing) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    struct hlist_node *ntmp;</span><br><span>                     /* SGSN */</span><br><span>                   /* TODO: When to block all PtP towards bss? Only if all SGSN are down? */</span><br><span style="color: hsl(120, 100%, 40%);">+                     hash_for_each_safe(nse->bvcs, i, ntmp, bvc, list) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                if (bvc->bvci == 0)</span><br><span style="color: hsl(120, 100%, 40%);">+                                        continue;</span><br><span style="color: hsl(120, 100%, 40%);">+                             gbproxy_bvc_free(bvc);</span><br><span style="color: hsl(120, 100%, 40%);">+                        }</span><br><span>                    rate_ctr_inc(&cfg->ctrg-></span><br><span>                               ctr[GBPROX_GLOB_CTR_RESTART_RESET_SGSN]);</span><br><span>               } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                        int i;</span><br><span>                       /* BSS became unavailable</span><br><span>                     * Block matching PtP-BVCs on SGSN-side */</span><br><span>                   hash_for_each(nse->bvcs, i, bvc, list) {</span><br><span>@@ -1576,10 +1582,9 @@</span><br><span>                                 }</span><br><span>                    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+                 /* This frees the BVCs for us as well */</span><br><span style="color: hsl(120, 100%, 40%);">+                      gbproxy_nse_free(nse);</span><br><span>               }</span><br><span style="color: hsl(0, 100%, 40%);">-               /* This frees the BVCs for us as well */</span><br><span style="color: hsl(0, 100%, 40%);">-                gbproxy_nse_free(nse);</span><br><span>               LOGP(DGPRS, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei);</span><br><span>          break;</span><br><span>       default:</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gbproxy/+/23319">change 23319</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-gbproxy/+/23319"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gbproxy </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ie0cef38e4423b672f5cba35ae7fc3eb2c4071d5a </div>
<div style="display:none"> Gerrit-Change-Number: 23319 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>