ifconfig is hiding groups behind the verbose (-v) flag which I had no idea even existed. Groups were imported from OpenBSD some years ago, but for an unknown reason were hidden behind the verbose flag which is poorly documented. The verbose flag is documented as such:
The -v flag may be used to get more verbose status for an interface.
Groups are documented like so:
group group-name Assign the interface to a “group”. Any interface can be in mul‐ tiple groups. Cloned interfaces are members of their interface family group by default. For example, a PPP interface such as ppp0 is a member of the PPP interface family group, ppp. -group group-name Remove the interface from the given “group”.
The -g flag is available, but in order to use it you need to actually know what group you're looking for
ifconfig [-g groupname]
I think this is some poor usability and we can start by not being intentionally different than OpenBSD by hiding the "groups: " output from ifconfig.
I did a grep of the source for verbose to see how it is being used. It exposes the following bits of data:
- lots of detailed 802.11 stuff
- LAGG: lag id, state, peer format (LACP, etc)
- groups
I'm not convinced it's worth hiding groups or LAGG behind the verbose flag, but I'm not concerned about LAGG at this time.
While here I noticed that OpenBSD added a free() that we didn't have, so I added that as well.