]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: Allow the zvrf to know it's vrf when allocing
authorDonald Sharp <sharpd@nvidia.com>
Mon, 26 Apr 2021 13:47:39 +0000 (09:47 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Wed, 5 May 2021 14:08:06 +0000 (10:08 -0400)
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra/zebra_vrf.c
zebra/zebra_vrf.h

index 212557423b8c4548480a809526067943c4d2a654..a0c63e4202e5034226f78abeef1128ed7a0a74b7 100644 (file)
@@ -103,9 +103,7 @@ static int zebra_vrf_new(struct vrf *vrf)
        if (IS_ZEBRA_DEBUG_EVENT)
                zlog_debug("VRF %s created, id %u", vrf->name, vrf->vrf_id);
 
-       zvrf = zebra_vrf_alloc();
-       vrf->info = zvrf;
-       zvrf->vrf = vrf;
+       zvrf = zebra_vrf_alloc(vrf);
        if (!vrf_is_backend_netns())
                zvrf->zns = zebra_ns_lookup(NS_DEFAULT);
 
@@ -427,12 +425,15 @@ static void zebra_vrf_table_create(struct zebra_vrf *zvrf, afi_t afi,
 }
 
 /* Allocate new zebra VRF. */
-struct zebra_vrf *zebra_vrf_alloc(void)
+struct zebra_vrf *zebra_vrf_alloc(struct vrf *vrf)
 {
        struct zebra_vrf *zvrf;
 
        zvrf = XCALLOC(MTYPE_ZEBRA_VRF, sizeof(struct zebra_vrf));
 
+       zvrf->vrf = vrf;
+       vrf->info = zvrf;
+
        zebra_vxlan_init_tables(zvrf);
        zebra_mpls_init_tables(zvrf);
        zebra_pw_init(zvrf);
index 000b5a723825dd68cd262fd4b3e1bb05aa3ecc7e..b2b0fcfbb2a837e41fc43600e0adf0174545e477 100644 (file)
@@ -251,7 +251,7 @@ extern struct route_table *zebra_vrf_get_table_with_table_id(afi_t afi,
 extern void zebra_vrf_update_all(struct zserv *client);
 extern struct zebra_vrf *zebra_vrf_lookup_by_id(vrf_id_t vrf_id);
 extern struct zebra_vrf *zebra_vrf_lookup_by_name(const char *);
-extern struct zebra_vrf *zebra_vrf_alloc(void);
+extern struct zebra_vrf *zebra_vrf_alloc(struct vrf *vrf);
 extern struct route_table *zebra_vrf_table(afi_t, safi_t, vrf_id_t);
 
 extern void zebra_vrf_init(void);