My last commit to in6_ifattach() broke a few regress tests. The problem is that 'ifconfig tun0 inet6 eui64' no longer works. Now I thought it would if called explicitly but no. So lets peddal back a bit and assign link-local addresses on all interface but wg(4). For mpe(4) this does not really matter and it does help other point-to-point interfaces where the system somewhat expects a link-local addr to be present.
With this all regress tests pass again. -- :wq Claudio Index: netinet6/in6_ifattach.c =================================================================== RCS file: /cvs/src/sys/netinet6/in6_ifattach.c,v retrieving revision 1.120 diff -u -p -r1.120 in6_ifattach.c --- netinet6/in6_ifattach.c 14 Nov 2022 17:12:55 -0000 1.120 +++ netinet6/in6_ifattach.c 15 Nov 2022 18:14:10 -0000 @@ -389,12 +389,11 @@ in6_ifattach(struct ifnet *ifp) return (error); } - /* - * Only interfaces that need the ND cache should automatically - * assign a link local address. - */ - if (!nd6_need_cache(ifp)) + /* For wg(4) skip assignment of link local address. */ + switch (ifp->if_type) { + case IFT_WIREGUARD: return (0); + } /* Assign a link-local address, if there's none. */ if (in6ifa_ifpforlinklocal(ifp, 0) == NULL) {