0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-17 16:48:43 +00:00
bird/sysdep/cf
Ondrej Zajicek 534d0a4b44 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.
2022-07-24 02:15:20 +02:00
..
bsd.h Build system reworked to one global Makefile with includes and no nesting 2016-05-10 14:07:34 +02:00
linux.h KRT: Scan routing tables separetely on linux to avoid congestion 2022-07-24 02:15:20 +02:00
README KRT: Scan routing tables separetely on linux to avoid congestion 2022-07-24 02:15:20 +02:00

Available configuration variables:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CONFIG_AUTO_ROUTES	Device routes are added automagically by the kernel
CONFIG_SELF_CONSCIOUS	We're able to recognize whether route was installed by us
CONFIG_MULTIPLE_TABLES	The kernel supports multiple routing tables
CONFIG_SINGLE_ROUTE	There is only one route per network

CONFIG_MC_PROPER_SRC	Multicast packets have source address according to socket saddr field
CONFIG_SKIP_MC_BIND	Don't call bind on multicast socket (def for *BSD)
CONFIG_NO_IFACE_BIND	Bind to iface is not available, use workarounds (def for *BSD)
CONFIG_UNIX_DONTROUTE	Use setsockopts DONTROUTE (undef for *BSD)
CONFIG_DONTROUTE_UNICAST Use MSG_DONTROUTE flag for unicast packets (def for FreeBSD)
CONFIG_USE_HDRINCL	Use IP_HDRINCL instead of control messages for source address on raw IP sockets.

CONFIG_RESTRICTED_PRIVILEGES	Implements restricted privileges using drop_uid()