mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 16:20:08 +00:00
ospf6d: fix linkdown handling
Ensure OSPFv3 handles link down even correctly. 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: James Li <jli at cumulusnetworks.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
parent
b81e97a8a7
commit
e7ad6b20d7
@ -316,7 +316,7 @@ ospf6_interface_state_update (struct interface *ifp)
|
|||||||
if (oi->area == NULL)
|
if (oi->area == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (if_is_up (ifp))
|
if (if_is_operative (ifp))
|
||||||
thread_add_event (master, interface_up, oi, 0);
|
thread_add_event (master, interface_up, oi, 0);
|
||||||
else
|
else
|
||||||
thread_add_event (master, interface_down, oi, 0);
|
thread_add_event (master, interface_down, oi, 0);
|
||||||
@ -625,7 +625,7 @@ interface_up (struct thread *thread)
|
|||||||
oi->interface->name);
|
oi->interface->name);
|
||||||
|
|
||||||
/* check physical interface is up */
|
/* check physical interface is up */
|
||||||
if (! if_is_up (oi->interface))
|
if (! if_is_operative (oi->interface))
|
||||||
{
|
{
|
||||||
if (IS_OSPF6_DEBUG_INTERFACE)
|
if (IS_OSPF6_DEBUG_INTERFACE)
|
||||||
zlog_debug ("Interface %s is down, can't execute [InterfaceUp]",
|
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";
|
type = "UNKNOWN";
|
||||||
|
|
||||||
vty_out (vty, "%s is %s, type %s%s",
|
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,
|
||||||
VNL);
|
VNL);
|
||||||
vty_out (vty, " Interface ID: %d%s", ifp->ifindex, VNL);
|
vty_out (vty, " Interface ID: %d%s", ifp->ifindex, VNL);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user