]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Set c_oil->pim for static routes
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 18 May 2017 22:00:49 +0000 (18:00 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 24 Jul 2017 17:51:35 +0000 (13:51 -0400)
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_static.c

index 7c9aca47a72ca43273e83bcf897f789da16788f4..2d4e2feff589b251d1e500478b35f65b227dbd55 100644 (file)
@@ -77,6 +77,8 @@ static struct static_route *static_route_new(unsigned int iif, unsigned int oif,
 int pim_static_add(struct interface *iif, struct interface *oif,
                   struct in_addr group, struct in_addr source)
 {
+       struct pim_instance *pim;
+       struct pim_interface *pim_ifp;
        struct listnode *node = NULL;
        struct static_route *s_route = NULL;
        struct static_route *original_s_route = NULL;
@@ -101,6 +103,13 @@ int pim_static_add(struct interface *iif, struct interface *oif,
                return -4;
        }
 #endif
+       if (iif->vrf_id != oif->vrf_id) {
+               return -3;
+       }
+
+       pim_ifp = iif->info;
+       pim = pim_ifp->pim;
+       s_route->c_oil.pim = pim;
 
        for (ALL_LIST_ELEMENTS_RO(qpim_static_route_list, node, s_route)) {
                if (s_route->group.s_addr == group.s_addr