On Monday 04 February 2013 10:42:31 Andriy Gapon wrote: > on 04/02/2013 10:27 Marko Zec said the following: > > On Monday 04 February 2013 08:41:32 Andriy Gapon wrote: > >> + /* Only ethernet interfaces are of interest. */ > >> + if (ifp->if_type != IFT_ETHER) > >> + return; > > > > And what about IFT_FDDI, IFT_XETHER, IFT_ISO88025, IFT_L2VLAN, > > IFT_BRIDGE, IFT_ARCNET, IFT_IEEE8023ADLAG, IFT_IEEE80211? > > Oh, I didn't realize that many drivers changed if_type after if_alloc. > Honestly, the networking code is not my strong skill, I ventured here > only because nobody else did... > > So what do you suggest? if_alloctype or a different approach? > I'd like to prevent if_l2com being mis-interpreted as struct arpcom.
We already have this in vnet_ng_ether_init(): 865 TAILQ_FOREACH(ifp, &V_ifnet, if_link) { 866 if (ifp->if_type == IFT_ETHER 867 || ifp->if_type == IFT_L2VLAN) 868 ng_ether_attach(ifp); 869 } So at least in ng_ether_ifnet_arrival_event() we should do a check consistent to the above code. OTOH we don't check for interface types on entry into ng_ether_attach(), and perhaps a better strategy would be to move your ifp->if_type check there. Perhaps the check could be #defined as a macro to ensure consistency between vnet_ng_ether_init() and ng_ether_attach()? Marko _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"