Date: Mon, 5 Jan 2015 12:38:58 -0800 From: Adrian Chadd <adrian@freebsd.org> To: Luigi Rizzo <rizzo@iet.unipi.it> Cc: Avinash Sridharan <avinash.sridharan@gmail.com>, Vincenzo Maffione <v.maffione@gmail.com>, "freebsd-net@freebsd.org" <net@freebsd.org> Subject: Re: netmap over virtio giving packets with extra 12 bytes Message-ID: <CAJ-Vmokm62%2BukQQbCfiFatkRZxtZH4F8BaVn5WHFyDvnPxrBZQ@mail.gmail.com> In-Reply-To: <20150105170530.GB22916@onelab2.iet.unipi.it> References: <CADJyuDg-PujV%2BtknoSBi3fDd3%2BK%2BOwvjgwh1%2B=Z-eoBUkP2gPg@mail.gmail.com> <CA%2BhQ2%2BgRz0Q-f5N-C_CrC27qE1i-zSvb3rjWDH0JPCq4Q1%2BA8A@mail.gmail.com> <CAJ-VmonqqMedqnAwHfq%2BTSAEKwdSdxXfRpkmuTm2eLrB_uCV2w@mail.gmail.com> <20150105170530.GB22916@onelab2.iet.unipi.it>
next in thread | previous in thread | raw e-mail | index | archive | help
On 5 January 2015 at 09:05, Luigi Rizzo <rizzo@iet.unipi.it> wrote: > On Mon, Jan 05, 2015 at 08:33:17AM -0800, Adrian Chadd wrote: >> ... surely virtio should be skipping over those bytes in the netmap rx >> side before handing them up? >> >> (It won't be the only hardware that puts the RX descriptor status in >> the RX frame itself..) > > it is not the rx descriptor, those 12 bytes are also present on the tx side. > Think of them as an encapsulation whose presence is negotiated when KVM connects > to the TAP port, and after that is present on all packets bidirectionally. > > Now, surely we could add/remove those bytes in the virtio-netmap code > (at the price of an additional data copy). Right, but I have similar issues with other wifi devices who put RX descriptor completion info in the header of the mbuf you pass to the NIC. So in the driver RX path, I have to += the data pointer /past/ the header. So, maybe for netmap you need to consider adding something that lets you specify how many bytes into the RX buffer the payload starts. -adrian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmokm62%2BukQQbCfiFatkRZxtZH4F8BaVn5WHFyDvnPxrBZQ>