]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Create pim_get_pim_instance
authorDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 15 May 2017 15:16:14 +0000 (11:16 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 24 Jul 2017 17:51:34 +0000 (13:51 -0400)
Create function to get the pim instance from the vrf_id

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_iface.c
pimd/pimd.c
pimd/pimd.h

index 817c64440699fcdb5556a5aa42017db911aa7390..a6b25511c84e610eb902dffa130ae3e968b95e9c 100644 (file)
@@ -103,7 +103,6 @@ static void *if_list_clean(struct pim_interface *pim_ifp)
 struct pim_interface *pim_if_new(struct interface *ifp, int igmp, int pim)
 {
        struct pim_interface *pim_ifp;
-       struct vrf *vrf;
 
        zassert(ifp);
        zassert(!ifp->info);
@@ -115,8 +114,7 @@ struct pim_interface *pim_if_new(struct interface *ifp, int igmp, int pim)
        }
 
        pim_ifp->options = 0;
-       vrf = vrf_info_lookup(ifp->vrf_id);
-       pim_ifp->pim = vrf->info;
+       pim_ifp->pim = pim_get_pim_instance(ifp->vrf_id);
        pim_ifp->mroute_vif_index = -1;
 
        pim_ifp->igmp_version = IGMP_DEFAULT_VERSION;
index 5b5ba068c5699660b7c7d3ba25fb810f6d605ec8..b687a943a8c0f4c83321875f4ab157fea7fa72eb 100644 (file)
@@ -170,6 +170,16 @@ void pim_prefix_list_update(struct prefix_list *plist)
        pim_upstream_spt_prefix_list_update(plist);
 }
 
+struct pim_instance *pim_get_pim_instance(vrf_id_t vrf_id)
+{
+       struct vrf *vrf = vrf_lookup_by_id(vrf_id);
+
+       if (vrf)
+               return vrf->info;
+
+       return NULL;
+}
+
 static void pim_instance_terminate(struct pim_instance *pim)
 {
        /* Traverse and cleanup rpf_hash */
index b96d9d4b9d9c55a528c76fd32d689716c698a308..06ca4343f6a373eea1683cb8f546d0d9a42e3e32 100644 (file)
@@ -270,4 +270,6 @@ extern void pim_route_map_terminate(void);
 void pim_vrf_init(void);
 void pim_prefix_list_update(struct prefix_list *plist);
 
+struct pim_instance *pim_get_pim_instance(vrf_id_t vrf_id);
+
 #endif /* PIMD_H */