[BIRD 2.0.x] Netlink: ignore dead routes

Vincent Bernat bernat at luffy.cx
Fri Jan 15 12:01:47 CET 2021


 ❦ 15 janvier 2021 05:39 +01, Ondrej Zajicek:

>> It is more complex that I would have expected. First, in-kernel, the
>> next-hop only has RTNH_F_LINKDOWN, not RTNH_F_DEAD. This later flag is
>> added when sending the flags over netlink only.
>> 
>> Second, there is no async notification when a route goes down either.
>> There is a notification on the interface. How BIRD handles this case? Is
>> a route scan triggered when an interface goes down? I'll test more
>> later, it's a bit late for me.
>
> Hi
>
> Yes, scan is triggered in krt_if_notify() for iface-admin-down event.
> Perhaps we can also trigger scan for iface-link-down event.

Hello,

You mean this part in krt.c?

  if ((flags & IF_CHANGE_DOWN) && KRT_CF->learn)
    krt_scan_timer_kick(p);

I was also confused by the debug code in iface.c:

  if (i->flags & IF_ADMIN_UP)
    debug(" LINK-UP");

I think it should be ADMIN-UP and the if for IF_LINK_UP should be added.

I can test such a change in a few days.
-- 
Don't stop at one bug.
            - The Elements of Programming Style (Kernighan & Plauger)


More information about the Bird-users mailing list