[patch] Unbreak setfib + routing daemons

Stef Walter stef-list at memberwebs.com
Mon Aug 31 17:01:39 UTC 2009


Currently route messages are sent to all listeners of PF_ROUTE,
regardless or which FIB the listener socket was started on.

The upshot of this is that one can't really use routing daemons together
with multiple FIBs. The routing daemon sees the messages from the
alternate FIBs and rapidly gets confused.

In the future, someone might decide to expose FIB numbers in the route
messages themselves. This could allow routing daemons to filter them
out. Such a solution might be appropriate for FreeBSD 9.x and later, as
it would likely break API and ABI. In any case, I'm not really qualified
to argue the merits/problems of such an approach, and coding it is
beyond my abilities...

Attached is a patch which fixes this problem in a simple way. It limits
route messages to listening PF_ROUTE sockets on the same FIB that the
route message was for. It compiles and works on 7.1+ and 8.0 and CURRENT.

FreeBSD PR:

http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/134931

How can I help this get into FreeBSD? It would be awesome if this fix or
one like it made it in before the 8.0 release.

Cheers,

Stef

-------------- next part --------------
A non-text attachment was scrubbed...
Name: freebsd-route-messages-respect-fib.patch
Type: text/x-diff
Size: 578 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-net/attachments/20090831/d9136b1c/freebsd-route-messages-respect-fib.bin


More information about the freebsd-net mailing list