I've been running the attached patch for a month on routers in production.
To summarize:
* Routing daemons listen to routing messages.
* Without the patch routing messages all FIBs are sent to
all listeners.
* Routing daemons get confused.
This patch makes routing daemons listening to routing messages only
receive those that affect their FIB. Some routing messages (such as
interface address announcements etc..) are still sent to all listeners.
Patches attached for CURRENT, latest 8.0, and 7.2.
Previous discussion:
http://www.mail-archive.com/freebsd-net@freebsd.org/msg30815.html
PR:
http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/134931
Cheers,
Stef