From fe5d3b7a46943d000110fdde05c1d33d7e9446f8 Mon Sep 17 00:00:00 2001 From: Daniel Willmann Date: Wed, 10 Feb 2021 13:34:56 +0100 Subject: [PATCH] gbproxy_vty: Fix NRI overlap behaviour to match osmo-bsc The MSC-pooling chapter in OsmoBSC mentions that overlapping NRI ranges will warn if configured though the VTY interface, but fail when started with such a config. The manual for OsmoGbProxy promises a similar behaviour, this patch implements it. Change-Id: Id3815ed8d1736ea3ba1e498b2bc3cf30b772551d --- src/gb_proxy_vty.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gb_proxy_vty.c b/src/gb_proxy_vty.c index 9240d2d1..f069e888 100644 --- a/src/gb_proxy_vty.c +++ b/src/gb_proxy_vty.c @@ -283,6 +283,7 @@ DEFUN_ATTR(cfg_sgsn_nri_add, cfg_sgsn_nri_add_cmd, struct gbproxy_sgsn *sgsn = vty->index; struct gbproxy_sgsn *other_sgsn; bool before; + bool overlaps = false; int rc; const char *message; struct osmo_nri_range add_range; @@ -307,13 +308,17 @@ DEFUN_ATTR(cfg_sgsn_nri_add, cfg_sgsn_nri_add_cmd, if (osmo_nri_range_overlaps_ranges(&add_range, other_sgsn->pool.nri_ranges)) { uint16_t nsei = sgsn->nse->nsei; uint16_t other_nsei = other_sgsn->nse->nsei; + overlaps = true; NRI_WARN(sgsn, "NRI range [%d..%d] overlaps between NSE %05d and NSE %05d." " For overlaps, NSE %05d has higher priority than NSE %05d", add_range.first, add_range.last, nsei, other_nsei, before ? other_nsei : nsei, before ? nsei : other_nsei); } } - return CMD_SUCCESS; + if (overlaps) + return CMD_WARNING; + else + return CMD_SUCCESS; } DEFUN_ATTR(cfg_sgsn_nri_del, cfg_sgsn_nri_del_cmd,