struct ifnet is now hidden

From: Justin Hibbits <jhibbits_at_FreeBSD.org>
Date: Wed, 13 Nov 2024 19:38:29 UTC
Hi everyone,

Many thanks to everyone involved, either fixing ports, reviewing
changes, or assisting with the API, struct ifnet is now hidden from
drivers and userspace.  This means drivers now use the IfAPI, currently
largely consisting of just getters and setters in place of direct
access, with tools/ifnet/convert_ifapi.sh being a good starting point
for adapting drivers.

In struct ifnet's place is if_t, an opaque pointer.  "Blessed" parts of
the kernel, effectively anything sys/net*, modulo sys/netlink, can
directly access it, as those directories comprise the network stack, so
need direct access, as they manage the interfaces.  Manpage updates
will be coming "soon", I'm hoping in the next few weeks, and will
likely need lots of review and editing.

Again, thanks for everyone's help.  I hope the road forward with this
is not too bumpy.

- Justin