<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>