I'd like to add some new IFF_ flags. But if_flags is short, and all 16 bits are already in use. Many others have the same sorts of feelings. I did this once, hackishly, in private code by adding if_flags2 to ifreq, stealing the pad, and thus maintaining compatibility sort of. Two thoughts: how to do binary compat for the field becoming 32 bits. I am not sure how much needs to be versioned. Are you thinking of bringing this up with the FreeBSD, OpenBSD and Dragonfly folks? It would be nice to keep the API the same among *BSD. I have no idea if there is a Darwin community any more, but perhaps someone from Apple is listening. In quagga the issue has come up that Linux and maybe Solaris treat IFF_RUNNING differently. The historical BSD usage is that it's an internal "resources have been allocated" flag, and not useful to user space. So they have repurposed it for link detect, but can only represent down and [up|can't-tell], rather than the BSD link detect interface's ability to have all three. In my private work, I added a flag SEMIBROADCAST that was set on BROADCAST interfaces that didn't have the semantics of a full connectivity matrix. An example is 802.11 IBSS mode, but BSS mode is not SEMIBROADCAST.
Attachment:
pgpMy45CXStIr.pgp
Description: PGP signature