0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-12 14:18:43 +00:00
bird/sysdep/cf
Ondrej Zajicek (work) 6be71641ef BSD: Use MSG_DONTROUTE for unicast packets on FreeBSD
BSD systems cannot use SO_DONTROUTE, because it does not work properly
with multicast packets (perhaps it tries to find iface based on multicast
group address). But we can use MSG_DONTROUTE sendmsg() flag for unicast
packets. Works on FreeBSD, is ignored on OpenBSD and is broken on NetBSD
(i guess due to integrated routing table and ARP table).
2018-07-28 19:30:56 +02:00
..
bsd-v6.h KRT: Fixes learning of preferred kernel routes. 2015-04-25 20:43:43 +02:00
bsd.h KRT: Fixes learning of preferred kernel routes. 2015-04-25 20:43:43 +02:00
linux-v6.h Cleanup in sysdep KRT code, part 2. 2012-04-30 22:25:24 +02:00
linux.h Cleanup in sysdep KRT code, part 4. 2012-05-04 16:38:25 +02:00
README BSD: Use MSG_DONTROUTE for unicast packets on FreeBSD 2018-07-28 19:30:56 +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_ALL_TABLES_AT_ONCE	Kernel scanner wants to process all tables at once
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()