diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2008-06-20 12:16:49 -0700 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2008-06-20 12:16:49 -0700 |
commit | 8d95ee9f88945ee49932b1a9f7af5abe6048e6e6 (patch) | |
tree | f8e32626b815d715d6a82d96f848402d83da111b /zebra/interface.c | |
parent | 13807d02a1bd95c2eab32bfa2102e902c61dcb06 (diff) | |
download | quagga-8d95ee9f88945ee49932b1a9f7af5abe6048e6e6.tar.bz2 quagga-8d95ee9f88945ee49932b1a9f7af5abe6048e6e6.tar.xz |
Revert "Backout all changes related to using kernel for linkdetect"
This reverts commit a182091782d22218942466b062c5ef2406853491.
More changes that should NOT go into hollywood
Diffstat (limited to 'zebra/interface.c')
-rw-r--r-- | zebra/interface.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/zebra/interface.c b/zebra/interface.c index ce506056..916c58a6 100644 --- a/zebra/interface.c +++ b/zebra/interface.c @@ -32,6 +32,7 @@ #include "connected.h" #include "log.h" #include "zclient.h" +#include "ipforward.h" #include "zebra/interface.h" #include "zebra/rtadv.h" @@ -1031,6 +1032,12 @@ DEFUN (linkdetect, if_was_operative = if_is_operative(ifp); SET_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION); + /* Enable FIB to remove kernel routes as well */ + if_linkdetect_on(ifp->name); +#ifdef HAVE_IPV6 + if_linkdetect_ipv6_on(ifp->name); +#endif + /* When linkdetection is enabled, if might come down */ if (!if_is_operative(ifp) && if_was_operative) if_down(ifp); @@ -1054,6 +1061,12 @@ DEFUN (no_linkdetect, if_was_operative = if_is_operative(ifp); UNSET_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION); + /* Disable FIB update on link-detect */ + if_linkdetect_off(ifp->name); +#ifdef HAVE_IPV6 + if_linkdetect_ipv6_off(ifp->name); +#endif + /* Interface may come up after disabling link detection */ if (if_is_operative(ifp) && !if_was_operative) if_up(ifp); |