]> git.ipfire.org Git - thirdparty/bird.git/commit
KRT: Scan routing tables separetely on linux to avoid congestion
authorOndrej Zajicek <santiago@crfreenet.org>
Sun, 24 Jul 2022 00:15:20 +0000 (02:15 +0200)
committerOndrej Zajicek <santiago@crfreenet.org>
Sun, 24 Jul 2022 00:15:20 +0000 (02:15 +0200)
commit534d0a4b44aa193da785ae180475a448f57805e2
treebd4aba91e8bc918380ea490ecab93d3c7e775977
parent971721c9b50d361e886762f1c7d0392e10f74021
KRT: Scan routing tables separetely on linux to avoid congestion

Remove compile-time sysdep option CONFIG_ALL_TABLES_AT_ONCE, replace it
with runtime ability to run either separate table scans or shared scan.

On Linux, use separate table scans by default when the netlink socket
option NETLINK_GET_STRICT_CHK is available, but retreat to shared scan
when it fails.

Running separate table scans has advantages where some routing tables are
managed independently, e.g. when multiple routing daemons are running on
the same machine, as kernel routing table modification performance is
significantly reduced when the table is modified while it is being
scanned.

Thanks Daniel Gröber for the original patch and Toke Høiland-Jørgensen
for suggestions.
sysdep/cf/README
sysdep/cf/linux.h
sysdep/linux/netlink.c
sysdep/unix/krt.c
sysdep/unix/krt.h