Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Feb 2013 10:58:45 +0100
From:      Marko Zec <zec@fer.hr>
To:        Andriy Gapon <avg@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, Mark Johnston <markj@freebsd.org>, src-committers@freebsd.org
Subject:   Re: svn commit: r246245 - head/sys/netgraph
Message-ID:  <201302041058.45725.zec@fer.hr>
In-Reply-To: <510F8287.7030708@FreeBSD.org>
References:  <201302021154.r12Bs0tp030831@svn.freebsd.org> <201302040927.43559.zec@fer.hr> <510F8287.7030708@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302041058.45725.zec>