[quagga-dev 10262] [PATCH] ospf6: check link operative status

Dinesh Dutt ddutt at cumulusnetworks.com
Mon Feb 18 21:49:20 GMT 2013

Ensure OSPFv3 check's a link's operative status.

OSPFv3 checks only the administrative status of a link instead of its
operative status. This prevents it up from detecting a real link down
event and reacting appropriately. Only protocol timer timeouts make it
detect a link down eventually. This patch makes it look for the operative
status of a link instead of admin status.

Signed-off-by: Dinesh G Dutt <ddutt at cumulusnetworks.com>
Reviewed-by: Scott Feldman <sfeldma at cumulusnetworks.com>
Reviewed-by: Shrijeet Mukherjee <shm at cumulusnetworks.com>
 ospf6d/ospf6_interface.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index 1ecd361..47a6b21 100644
--- a/ospf6d/ospf6_interface.c
+++ b/ospf6d/ospf6_interface.c
@@ -316,7 +316,7 @@ ospf6_interface_state_update (struct interface *ifp)
   if (oi->area == NULL)
-  if (if_is_up (ifp))
+  if (if_is_operative (ifp))
     thread_add_event (master, interface_up, oi, 0);
     thread_add_event (master, interface_down, oi, 0);
@@ -625,7 +625,7 @@ interface_up (struct thread *thread)
   /* check physical interface is up */
-  if (! if_is_up (oi->interface))
+  if (! if_is_operative (oi->interface))
         zlog_debug ("Interface %s is down, can't execute [InterfaceUp]",
@@ -779,7 +779,7 @@ ospf6_interface_show (struct vty *vty, struct interface *ifp)
     type = "UNKNOWN";
   vty_out (vty, "%s is %s, type %s%s",
-           ifp->name, updown[if_is_up (ifp)], type,
+           ifp->name, updown[if_is_operative (ifp)], type,
   vty_out (vty, "  Interface ID: %d%s", ifp->ifindex, VNL);

More information about the Quagga-dev mailing list