CFR: FIB handling improvements
Will Andrews
will at firepipe.net
Wed Aug 21 15:42:43 UTC 2013
Hi,
I'm working to port forward to FreeBSD/head, improvements made to FIB
handling by my colleagues Alan Somers and Justin Gibbs.
Please review: http://people.freebsd.org/~will/fix-fib-issues.1.diff
This patch includes fixes for several issues relating to FIBs:
* Use of dhclient with non-zero FIBs. With this patch, it is possible
to use DHCP on a specific interface with a non-zero FIB and have it
work correctly with this rc.conf snippet:
ifconfig_em1="SYNCDHCP"
dhclient_fib_em1=1
This part of the patch includes a XXX, because I am not sure whether
the dhclient rc.d script should manually set the FIB on the given
interface, or if it should be inferred via some other mechanism.
* Always add loopback routes for non-zero FIBs, for both IPv4 and
IPv6. Arguably, this could be a policy issue, but it is currently
less-than-trivial to specify (in rc.conf) that a route needs to be
applied to every FIB.
* Having two or more FIBs whose interfaces share the same prefix and
netmask. This involves adding fibnum arguments to ifa_ifwithnet() and
ifa_ifwithdstaddr(), and checking it within.
* Setting the FIB on a network interface. rtinit1() looks it up via
the current process context, so we must be calling setfib(2) from
within ifconfig.
* Creating & deleting loopback routes now works correctly for
non-default FIBs, by using the interface's FIB instead of always 0.
Commits would be made on each of these issues separately, but since
they are all related, I thought it would be easier for others to
evaluate them with context.
Thanks!
--Will.
More information about the freebsd-net
mailing list