diff options
| author | Don Slice <dslice@cumulusnetworks.com> | 2016-03-18 19:53:15 +0000 |
|---|---|---|
| committer | Don Slice <dslice@cumulusnetworks.com> | 2016-03-18 19:53:15 +0000 |
| commit | 84361d615deb53e559d4a43b1450339c8836f667 (patch) | |
| tree | f675a20171c5762141d5e072c85d3db8257f7b0e /ripd/rip_interface.c | |
| parent | 419b65eed2456af7479f7114aa6ae0f2c0f1cf32 (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.c | 5 |
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 |
