hi, yeah, switchports at the moment are pure L2 interfaces, they don't have addressing. This may eventually change if etherswitch grows slave switch port support.
But I didn't think it was creating ifnet interfaces, only miibusses and mii's for link status. -a On 16 December 2015 at 04:09, Steven Hartland <ste...@multiplay.co.uk> wrote: > On 15/12/2015 22:58, Kristof Provost wrote: >>> >>> On 15 Dec 2015, at 23:15, Kristof Provost <k...@freebsd.org> wrote: >>> Based on the arp_announce() in the backtrace this commit looks like a >>> possible cause. >> >> I see this in arp_announce(): >> KP: arp_announce() ifp->if_addr = 0 >> >> So that explains why we panic in 'lladdr = IF_LLADDR(ifp);’. >> >> I’ve done a very quick hack: >> diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c >> index 2214542..9b25356 100644 >> --- a/sys/netinet/if_ether.c >> +++ b/sys/netinet/if_ether.c >> @@ -1246,9 +1246,15 @@ arp_announce(struct ifnet *ifp) >> } >> IF_ADDR_RUNLOCK(ifp); >> >> - lladdr = IF_LLADDR(ifp); >> - for (i = 0; i < cnt; i++) { >> - arp_announce_addr(ifp, head + i, lladdr); >> + printf("KP: %s() ifp = %p\n", __FUNCTION__, ifp); >> + printf("KP: %s() ifp->if_addr = %p\n", __FUNCTION__, >> ifp->if_addr); >> + >> + if (ifp->if_addr) { >> + printf("KP: %s() ifp->if_addr->ifa_addr = %p\n", >> __FUNCTION__, ifp->if_addr->ifa_addr); >> + lladdr = IF_LLADDR(ifp); >> + for (i = 0; i < cnt; i++) { >> + arp_announce_addr(ifp, head + i, lladdr); >> + } >> } >> free(head, M_TEMP); >> } >> >> With this patch the device boots. I haven’t been able to verify if >> everything works because of a different issue ("Shared object >> "lib80211.so.1" not found, required by “ifconfig””, no doubt just a small >> problem with the freebsd-wifi-build scripts). >> >> Regards, >> Kristof > > Thanks for all the info Kristof appreciated. > > It seems really odd that you're getting a link up event for an interface > that doesn't have a LLA, so I'm wondering if this is the result of an issue > elsewhere which this change brings to light, its as though if_attach hasn't > been called. > > Looking at your trace the device seems to be an arswitch. If it never > allocates a LLA to each port then maybe the more correct fix would be to > ensure it IFF_NOARP in if_flags? > > I've attached a patch which should fix if you could test that would be > great, but I'd still like to understand if there is something wrong > elsewhere before I do. > > Regards > Steve > > _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"