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