Re: struct ifnet is now hidden

From: Justin Hibbits <jhibbits_at_FreeBSD.org>
Date: Thu, 14 Nov 2024 15:49:42 UTC
On Wed, 13 Nov 2024 14:38:29 -0500
Justin Hibbits <jhibbits@FreeBSD.org> wrote:

> 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
> 

Follow-up.  olivier@ reminded me that I hadn't bumped
__FreeBSD_version, so I just did that (1500027 now).  Though the IfAPI
has been pretty much baked for a year, this will represent the point
where struct ifnet is no longer available to the general audience.

- Justin