From owner-freebsd-net@FreeBSD.ORG Mon May 19 23:40:33 2008 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B3574106564A for ; Mon, 19 May 2008 23:40:33 +0000 (UTC) (envelope-from csjp@sub.vaned.net) Received: from sub.vaned.net (sub.vaned.net [205.200.235.40]) by mx1.freebsd.org (Postfix) with ESMTP id 901988FC1A for ; Mon, 19 May 2008 23:40:33 +0000 (UTC) (envelope-from csjp@sub.vaned.net) Received: by sub.vaned.net (Postfix, from userid 1001) id 0E81233A; Mon, 19 May 2008 18:24:51 -0500 (CDT) Date: Mon, 19 May 2008 18:24:51 -0500 From: "Christian S.J. Peron" To: freebsd-net@freebsd.org Message-ID: <20080519232451.GA52560@sub.vaned.net> References: <20080515152607.GA36663@roof1.dnepro.net> <482C6303.9000904@freebsd.org> <20080519130722.GA40822@roof1.dnepro.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080519130722.GA40822@roof1.dnepro.net> User-Agent: Mutt/1.4.2.3i Subject: Re: How to inject fullsize 802.1q-tagged frame through BPF? X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 May 2008 23:40:33 -0000 Eugene, Thanks for the report. I will look into this. Although this patch technically works, I think the right solution to this problem is to introduce a new DLT_ for VLAN encapsulated frames. I will look into this problem in a bit more detail. On Mon, May 19, 2008 at 04:07:22PM +0300, Eugene Perevyazko wrote: > On Thu, May 15, 2008 at 12:21:23PM -0400, Sam Leffler wrote: > > Eugene Perevyazko wrote: > > > Is there a way to inject full-mtu vlan-tagged frame through BPF on parent > > >device? > > > I'd like not to open several tenths of BPFs for each vlanN if it's > > > possible. > > > > bpf write code in the kernel calculates header size when packets are > > injected. This is likely based on the frames being stock 802.3 so would > > require mods to the bpf code to handle the additional space for the tag. > > I've made a simple patch that works for me on FreeBSD 6.2-RELEASE #1. > Not sure if this is the way to do it, but it "just works". May be someone > else will need such feature too. > > Eugene Perevyazko > > > --- bpf.c.old Mon May 19 10:47:55 2008 > +++ bpf.c Mon May 19 10:57:44 2008 > @@ -64,6 +64,7 @@ > #include > > #include > +#include > #include > #include > > @@ -617,7 +618,9 @@ > return (0); > > bzero(&dst, sizeof(dst)); > - error = bpf_movein(uio, (int)d->bd_bif->bif_dlt, ifp->if_mtu, > + /* Use VLAN_MTU capability, if supported */ > + error = bpf_movein(uio, (int)d->bd_bif->bif_dlt, > + ifp->if_mtu + ( (ifp->if_capenable & IFCAP_VLAN_MTU) ? ETHER_VLAN_ENCAP_LEN : 0 ), > &m, &dst, d->bd_wfilter); > if (error) > return (error); > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"