Change in osmo-gbproxy[master]: gbproxy: Don't free NSE/BVC0 if SGSN NSE goes down

daniel gerrit-no-reply at lists.osmocom.org
Thu Mar 11 14:26:16 UTC 2021


daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/23319 )

Change subject: gbproxy: Don't free NSE/BVC0 if SGSN NSE goes down
......................................................................

gbproxy: Don't free NSE/BVC0 if SGSN NSE goes down

SGSN NSEs are static and should not be removed. Instead remove all
PtP-BVCs.
BVC0 can't be blocked and will be reset after the NSE becomes available
again. It might be cleaner to remove BVC0 on NS failure and create it
again, but that change is a bit more complicated.

Fixes ttcn3 test after commit f96cac5077 broke them.

Related: OS#4897
Change-Id: Ie0cef38e4423b672f5cba35ae7fc3eb2c4071d5a
---
M src/gb_proxy.c
1 file changed, 9 insertions(+), 4 deletions(-)

Approvals:
  Jenkins Builder: Verified
  osmith: Looks good to me, but someone else must approve
  pespin: Looks good to me, but someone else must approve
  daniel: Looks good to me, approved



diff --git a/src/gb_proxy.c b/src/gb_proxy.c
index c07c36b..c01c5c6 100644
--- a/src/gb_proxy.c
+++ b/src/gb_proxy.c
@@ -1522,6 +1522,7 @@
 	/* TODO: bss nsei available/unavailable  bssgp_tx_simple_bvci(BSSGP_PDUT_BVC_BLOCK, nsvc->nsei, bvc->bvci, 0);
 	 */
 
+	int i;
 	struct gbproxy_bvc *bvc;
 	struct gbproxy_nse *nse;
 
@@ -1552,12 +1553,17 @@
 			break;
 		}
 		if (nse->sgsn_facing) {
+			struct hlist_node *ntmp;
 			/* SGSN */
 			/* TODO: When to block all PtP towards bss? Only if all SGSN are down? */
+			hash_for_each_safe(nse->bvcs, i, ntmp, bvc, list) {
+				if (bvc->bvci == 0)
+					continue;
+				gbproxy_bvc_free(bvc);
+			}
 			rate_ctr_inc(&cfg->ctrg->
 				     ctr[GBPROX_GLOB_CTR_RESTART_RESET_SGSN]);
 		} else {
-			int i;
 			/* BSS became unavailable
 			 * Block matching PtP-BVCs on SGSN-side */
 			hash_for_each(nse->bvcs, i, bvc, list) {
@@ -1576,10 +1582,9 @@
 				}
 			}
 
-
+			/* This frees the BVCs for us as well */
+			gbproxy_nse_free(nse);
 		}
-		/* This frees the BVCs for us as well */
-		gbproxy_nse_free(nse);
 		LOGP(DGPRS, LOGL_NOTICE, "NS-NSE %d became unavailable\n", nsp->nsei);
 		break;
 	default:

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/23319
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-gbproxy
Gerrit-Branch: master
Gerrit-Change-Id: Ie0cef38e4423b672f5cba35ae7fc3eb2c4071d5a
Gerrit-Change-Number: 23319
Gerrit-PatchSet: 1
Gerrit-Owner: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: osmith <osmith at sysmocom.de>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210311/921b66af/attachment.htm>


More information about the gerrit-log mailing list