From: Igor Ryzhov Date: Wed, 14 Oct 2020 20:01:49 +0000 (+0300) Subject: isisd: fix check for area-tag modification X-Git-Tag: base_7.6~409^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=b4acf005b50154d6cd47c24cb2b2e0d75dee72dd;p=mirror%2Ffrr.git 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 --- 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)) {