]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bfdd: add the vrf update hook in case vrf name changes
authorPhilippe Guibert <philippe.guibert@6wind.com>
Fri, 14 Jun 2019 11:50:05 +0000 (13:50 +0200)
committerPhilippe Guibert <philippe.guibert@6wind.com>
Tue, 27 Aug 2019 13:08:50 +0000 (15:08 +0200)
in case vrf name changes, use a hook to be notified about the vrf
change.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
bfdd/bfd.c

index 2a41758bbc954f02e839bf072f779618d27f2fc3..a48dbb0ae2f78cac16203c45cd567352797fcf71 100644 (file)
@@ -1630,6 +1630,16 @@ static int bfd_vrf_delete(struct vrf *vrf)
        return 0;
 }
 
+static int bfd_vrf_update(struct vrf *vrf)
+{
+       if (!vrf_is_enabled(vrf))
+               return 0;
+       log_debug("VRF update: %s(%u)", vrf->name, vrf->vrf_id);
+       /* a different name is given; update bfd list */
+       bfdd_sessions_enable_vrf(vrf);
+       return 0;
+}
+
 static int bfd_vrf_enable(struct vrf *vrf)
 {
        struct bfd_vrf_global *bvrf;
@@ -1715,7 +1725,7 @@ static int bfd_vrf_disable(struct vrf *vrf)
 void bfd_vrf_init(void)
 {
        vrf_init(bfd_vrf_new, bfd_vrf_enable, bfd_vrf_disable,
-                bfd_vrf_delete, NULL);
+                bfd_vrf_delete, bfd_vrf_update);
 }
 
 void bfd_vrf_terminate(void)