0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00
bird/sysdep/linux
Ondrej Zajicek 722daa9500 Netlink: Simplify handling of IPv6 ECMP routes
When IPv6 ECMP support first appeared in Linux kernel, it used different
API than IPv4 ECMP. Individual next hops were updated and announced
separately, instead of using RTA_MULTIPATH as in IPv4. This has several
drawbacks and requires complex code to merge received notifications to
one multipath route.

When Linux came with IPv6 RTA_MULTIPATH support, the initial versions
were somewhat buggy, so we kept using the old API for updates (splitting
multipath routes to sequences of route updates), while accepting both
old-style routes and RTA_MULTIPATH routes in scans / notifications.

As IPv6 RTA_MULTIPATH support is here for a long time, this patch fully
switches Netlink to the IPv6 RTA_MULTIPATH API and removes old complex
code for handling individual next hop announces.

The required Linux version is at least 4.11 for reliable operation.

Thanks to Daniel Gröber for the original patch.
2022-07-25 00:11:40 +02:00
..
krt-sys.h Netlink: Add option to specify netlink socket receive buffer size 2022-01-17 05:11:29 +01:00
Makefile Unit Testing for BIRD 2016-11-09 16:36:34 +01:00
netlink.c Netlink: Simplify handling of IPv6 ECMP routes 2022-07-25 00:11:40 +02:00
netlink.Y Netlink: Add option to specify netlink socket receive buffer size 2022-01-17 05:11:29 +01:00
sysio.h IO: Support nonlocal bind in socket interface 2022-01-08 19:02:31 +01:00
syspriv.h Minor code cleanups 2016-11-08 17:46:29 +01:00