On Wed, Nov 23, 2022 at 11:09:31AM +0000, Klemens Nanni wrote:
> Feedback? Objection? OK?
OK bluhm@
> diff --git a/regress/sys/net/rtable/util.c b/regress/sys/net/rtable/util.c
> index f2c770f936f..abf9b318d7c 100644
> --- a/regress/sys/net/rtable/util.c
> +++ b/regress/sys/net/rtable/util.c
> @@ -80,8 +80,6 @@ struct domain inetdomain = {
> .dom_protoswNPROTOSW = NULL,
> .dom_rtoffset = offsetof(struct sockaddr_in, sin_addr),
> .dom_maxplen = 32,
> - .dom_ifattach = NULL,
> - .dom_ifdetach = NULL,
> };
>
> struct domain inet6domain = {
> @@ -94,8 +92,6 @@ struct domain inet6domain = {
> .dom_protoswNPROTOSW = NULL,
> .dom_rtoffset = offsetof(struct sockaddr_in6, sin6_addr),
> .dom_maxplen = 128,
> - .dom_ifattach = NULL,
> - .dom_ifdetach = NULL,
> };
>
> struct domain *domains[] = { &inetdomain, &inet6domain, NULL };
> diff --git a/sys/net/if.c b/sys/net/if.c
> index 869e848817c..3cb8bbf9176 100644
> --- a/sys/net/if.c
> +++ b/sys/net/if.c
> @@ -133,7 +133,6 @@
> #include <sys/device.h>
>
> void if_attachsetup(struct ifnet *);
> -void if_attachdomain(struct ifnet *);
> void if_attach_common(struct ifnet *);
> void if_remove(struct ifnet *);
> int if_createrdomain(int, struct ifnet *);
> @@ -460,7 +459,6 @@ if_attachsetup(struct ifnet *ifp)
>
> if_addgroup(ifp, IFG_ALL);
>
> - if_attachdomain(ifp);
> #ifdef INET6
> nd6_ifattach(ifp);
> #endif
> @@ -537,25 +535,6 @@ if_free_sadl(struct ifnet *ifp)
> ifp->if_sadl = NULL;
> }
>
> -void
> -if_attachdomain(struct ifnet *ifp)
> -{
> - const struct domain *dp;
> - int i, s;
> -
> - s = splnet();
> -
> - /* address family dependent data region */
> - bzero(ifp->if_afdata, sizeof(ifp->if_afdata));
> - for (i = 0; (dp = domains[i]) != NULL; i++) {
> - if (dp->dom_ifattach)
> - ifp->if_afdata[dp->dom_family] =
> - (*dp->dom_ifattach)(ifp);
> - }
> -
> - splx(s);
> -}
> -
> void
> if_attachhead(struct ifnet *ifp)
> {
> @@ -1058,7 +1037,6 @@ if_detach(struct ifnet *ifp)
> {
> struct ifaddr *ifa;
> struct ifg_list *ifg;
> - const struct domain *dp;
> int i, s;
>
> /* Undo pseudo-driver changes. */
> @@ -1126,11 +1104,6 @@ if_detach(struct ifnet *ifp)
> KASSERT(TAILQ_EMPTY(&ifp->if_linkstatehooks));
> KASSERT(TAILQ_EMPTY(&ifp->if_detachhooks));
>
> - for (i = 0; (dp = domains[i]) != NULL; i++) {
> - if (dp->dom_ifdetach && ifp->if_afdata[dp->dom_family])
> - (*dp->dom_ifdetach)(ifp,
> - ifp->if_afdata[dp->dom_family]);
> - }
> #ifdef INET6
> nd6_ifdetach(ifp);
> #endif
> diff --git a/sys/net/if_var.h b/sys/net/if_var.h
> index 3bf07ed3071..686b2b5a1b1 100644
> --- a/sys/net/if_var.h
> +++ b/sys/net/if_var.h
> @@ -186,7 +186,6 @@ struct ifnet { /* and the
> entries */
>
> struct sockaddr_dl *if_sadl; /* [N] pointer to our sockaddr_dl */
>
> - void *if_afdata[AF_MAX];
> struct nd_ifinfo *if_nd; /* [I] IPv6 Neighour Discovery info */
> };
> #define if_mtu if_data.ifi_mtu
> diff --git a/sys/sys/domain.h b/sys/sys/domain.h
> index d8758fb8b9c..12a4746f1ee 100644
> --- a/sys/sys/domain.h
> +++ b/sys/sys/domain.h
> @@ -60,9 +60,6 @@ struct domain {
> unsigned int dom_sasize; /* size of sockaddr structure */
> unsigned int dom_rtoffset; /* offset of the key, in bytes */
> unsigned int dom_maxplen; /* maximum prefix length, in bits */
> - void *(*dom_ifattach)(struct ifnet *);
> - void (*dom_ifdetach)(struct ifnet *, void *);
> - /* af-dependent data on ifnet */
> };
>
> #ifdef _KERNEL