I have a question:
What is then `check link` supposed to do?

At least for 1.6, babel is the only protocol which enables it by default, and the others, for in example direct, static, and ospf it is needed to be set by the user, and I would have assumed exactly that behavior.

Or is this specific to 2.0 only?

Thanks.


On 22.10.20 16:16, Vincent Bernat wrote:
With net.ipv4.conf.XXX.ignore_routes_with_linkdown sysctl, a user can
ensure the kernel does not use a route whose target interface is down.
The route is marked with a "dead"/RTNH_F_DEAD flag. Currently, BIRD
still uses and distributes this route. This patch just ignores such a
route.

This patch could be backported to 1.6.x.

Signed-off-by: Vincent Bernat <[email protected]>
---
  sysdep/linux/netlink.c | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/sysdep/linux/netlink.c b/sysdep/linux/netlink.c
index f85bcf35685b..c28126510e6e 100644
--- a/sysdep/linux/netlink.c
+++ b/sysdep/linux/netlink.c
@@ -1690,6 +1690,9 @@ nl_parse_route(struct nl_parse_state *s, struct nlmsghdr 
*h)
          if (i->rtm_flags & RTNH_F_ONLINK)
            ra->nh.flags |= RNF_ONLINK;
+ if (i->rtm_flags & RTNH_F_DEAD)
+            return;
+
          neighbor *nbr;
          nbr = neigh_find(&p->p, ra->nh.gw, ra->nh.iface,
                           (ra->nh.flags & RNF_ONLINK) ? NEF_ONLINK : 0);

Reply via email to