]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: be more careful removing 'installed' flag from nhgs
authorMark Stapp <mjs@labn.net>
Fri, 29 Sep 2023 16:08:17 +0000 (12:08 -0400)
committerMark Stapp <mjs@labn.net>
Fri, 29 Sep 2023 16:08:17 +0000 (12:08 -0400)
When interface addresses change, we examine nhgs associated
with the interface in case they need to be reinstalled. As
part of that, we may need to reinstall ecmp nhgs that use the
interface being examined - but not always.

Signed-off-by: Mark Stapp <mjs@labn.net>
zebra/zebra_nhg.c

index 9588f65fc6762797522f452154966636a31ecb50..1879bafcac4dd7428c01d14a0053975af897506e 100644 (file)
@@ -3748,8 +3748,13 @@ void zebra_interface_nhg_reinstall(struct interface *ifp)
                                        rb_node_dep->nhe->flags);
                        zebra_nhg_install_kernel(rb_node_dep->nhe);
 
-                       /* mark depedent uninstall, when interface associated
-                        * singleton is installed, install depedent
+                       /* Don't need to modify dependents if installed */
+                       if (CHECK_FLAG(rb_node_dep->nhe->flags,
+                                      NEXTHOP_GROUP_INSTALLED))
+                               continue;
+
+                       /* mark dependent uninstalled; when interface associated
+                        * singleton is installed, install dependent
                         */
                        frr_each_safe (nhg_connected_tree,
                                       &rb_node_dep->nhe->nhg_dependents,