summaryrefslogtreecommitdiff
path: root/ripd/rip_interface.c
diff options
context:
space:
mode:
authorDon Slice <dslice@cumulusnetworks.com>2016-03-18 19:53:15 +0000
committerDon Slice <dslice@cumulusnetworks.com>2016-03-18 19:53:15 +0000
commit84361d615deb53e559d4a43b1450339c8836f667 (patch)
treef675a20171c5762141d5e072c85d3db8257f7b0e /ripd/rip_interface.c
parent419b65eed2456af7479f7114aa6ae0f2c0f1cf32 (diff)
quagga: delete interface from default table when moved to vrf
All daemons changed to flag an interface that has been moved to a vrf as DELETED instead of INTERNAL. When they were flagged as IFINDEX_INTERNAL, ospf, rip, and isis would re-install them in the default assuming that they were being "pre-defined" before the kernel definitions. Ticket: CM-9265 Signed-off-by: Don Slice Reviewed-by: Donald Sharp
Diffstat (limited to 'ripd/rip_interface.c')
-rw-r--r--ripd/rip_interface.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ripd/rip_interface.c b/ripd/rip_interface.c
index c9fc40e815..c269ae07bc 100644
--- a/ripd/rip_interface.c
+++ b/ripd/rip_interface.c
@@ -492,7 +492,7 @@ rip_interface_delete (int command, struct zclient *zclient,
/* To support pseudo interface do not free interface structure. */
/* if_delete(ifp); */
- ifp->ifindex = IFINDEX_INTERNAL;
+ ifp->ifindex = IFINDEX_DELETED;
return 0;
}
@@ -1928,6 +1928,9 @@ rip_interface_config_write (struct vty *vty)
{
struct rip_interface *ri;
+ if (ifp->ifindex == IFINDEX_DELETED)
+ continue;
+
ri = ifp->info;
/* Do not display the interface if there is no