netif userland API

From: Eugene Grosbein <eugen_at_freebsd.org>
Date: Sat, 28 Oct 2023 16:07:43 UTC
Hi!

Assume we run some FreeBSD-based broadband remote access server for PPPoE (net/mpd5 for example).
The server has hundreds or thousands vlan interfaces and even more ngXXX interfaces, one per user PPPoE session.

The server software may need to enable its PPPoE service for all newly created vlans
over another "physical" parent interface just configured in addition to already running ones.

I see no effective userland API for the software to list vlan interfaces under specific parent one.

The only option I see is getifaddrs(3) function to get list of ALL interfaces in the system
then iterate over the list calling ioctl SIOCGETVLAN and if there is no error,
compare returned vlr_parent name with the name of needed parent interface.

Not efficient at all, while serving new PPPoE connection attempts simultaneously,
collecting traffic stats for RADIUS accounting etc.

Do I miss something?

Eugene