summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Ryzhov <iryzhov@nfware.com>2020-10-14 23:01:49 +0300
committerIgor Ryzhov <iryzhov@nfware.com>2020-10-15 11:19:01 +0300
commitb4acf005b50154d6cd47c24cb2b2e0d75dee72dd (patch)
tree3c1ef1c4a8b998078a6c3e59f36649704e65fb16
parent6431621e4eb11c4b85d6c29f79d060d59b0ed5d2 (diff)
isisd: fix check for area-tag modification
Interface area-tag is not supposed to be modified once defined, but the necessary check is currently broken, because the circuit is never in init_circ_list if the area-tag is already configured for the interface. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
-rw-r--r--isisd/isis_nb_config.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/isisd/isis_nb_config.c b/isisd/isis_nb_config.c
index d5f4c605c4..24228ed701 100644
--- a/isisd/isis_nb_config.c
+++ b/isisd/isis_nb_config.c
@@ -2075,7 +2075,6 @@ int lib_interface_isis_area_tag_modify(struct nb_cb_modify_args *args)
struct interface *ifp;
struct vrf *vrf;
const char *area_tag, *ifname, *vrfname;
- struct isis *isis = NULL;
if (args->event == NB_EV_VALIDATE) {
/* libyang doesn't like relative paths across module boundaries
@@ -2091,11 +2090,7 @@ int lib_interface_isis_area_tag_modify(struct nb_cb_modify_args *args)
if (!ifp)
return NB_OK;
- isis = isis_lookup_by_vrfid(ifp->vrf_id);
- if (isis == NULL)
- return NB_ERR_VALIDATION;
-
- circuit = circuit_lookup_by_ifp(ifp, isis->init_circ_list);
+ circuit = circuit_scan_by_ifp(ifp);
area_tag = yang_dnode_get_string(args->dnode, NULL);
if (circuit && circuit->area && circuit->area->area_tag
&& strcmp(circuit->area->area_tag, area_tag)) {