ifstated(8) port from openbsd

Chris Turner c.turner at 199technologies.com
Wed Jun 6 11:22:23 PDT 2012



Ok - long time with no updates -- I have a large and slow backburner
and have had several 'big life things' in the meantime -

In any event:

On 04/12/11 01:29, Chris Turner wrote:
>
> 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.
>

It turns out the routing socket changes are not 100% required to
get a basic ifstated port running - however this is required for
the 'link state test' features (e.g. 'carp0.link.up'). I'm hacking
on those right now with my trusty copy of TCP/IP illustrated v2 and
will hopefully get that working over the next few weeks/months -

Without these changes, ifstated still works using external tests
and can still be quite handy for automated service monitoring,
restarting, etc - I'm currently working on a 2-node failover NFS
server using vkernels and it's doing fine there with ping checks -

However - the other 'gotcha' is that the current implementation
requires libevent (v1), which we don't include in base. So - to
bring over ifstated without a major rewrite to use kqueue natively,
this would need to be pulled in - and the major rewrite kind of
seems like a waste of time.

So - Wondering if anyone has any strong opinions about including
libevent in base.

Pros:

* handy for any 'in house' daemons that could make use of it,
* is a good, appropriately licensed supplement to native kqueue
   features

I have not audited the other openbsd daemons (e.g. routing daemons,
etc.) I suspect they also make use of the RTFILTER sockopt changes
and libevent, so this might be worth looking into if anyone wants
to bring those in.

Cons:

* maintenance
* slightly larger base
* could affect pkgsrc builds (could test this if needed)
* the libevent used by ifstated is openbsds derivation of v1 - v2 is
   now out.

r.e. maintenance - this is a small, rarely changing library
r.e. size - we're talking 250k for the lib, 65k for ifstated.
   So trivial, essentially.

Re. pkgsrc builds - would be happy to do some test runs / work on any
required build fixes -

Also - I could try to pull-up ifstated to libevent v2 if that would
be a requirement to commit to base - alternately that could be a
follow up task.

It seems to me that this program would be better in base as it fits
with some goals, and that libevent might be useful for other software
and worth including - but thats ultimately not 100% up to me to decide

Look forward to discussion.

Cheers,

- Chris





More information about the Kernel mailing list