ifstated(8) port from openbsd
c.turner at 199technologies.com
Mon Apr 11 23:32:27 PDT 2011
Hello all -
I'm working on an ifstated(8) port from OpenBSD for post release -
its basically pretty straightforward but requires a minor tweak
to the kernel routing socket interface which allows setsockopt() to
filter on specific routing events - which is then used via the kevent
interface to poll for interface changes.
Reviewing our sources I recall that the routing code has been heavily
parallelized - so instead of a single 'route_input' function,
there is a rts_input_skip and rts_input_handler function -
As the openbsd code does the filtering in the route_input function -
I'm wondering where I should graft the appropriate filtering in
our copy - it seems like rts_input_handler to me - but, I am not 100%
Other related misc:
- anyone tested our carp(4) lately?
- anyone familiar with what the 'multiple routing tables' in the openbsd code
is used for? my thoughts are this is for their other routing daemons but I
haven't had a chance to track it down. probably wouldn't be too much to
port this stuff over as well so it's on my radar as such.
My thoughts are with ifstated+scripts+hammer+carp it should be possible to
make a pretty nifty HA cluster even before multi-master hammer -
so I'm trying to pull this over to test. woooohoo.
More information about the Kernel