From owner-freebsd-net@FreeBSD.ORG Mon Jan 5 16:33:19 2015 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BFC9EB57 for ; Mon, 5 Jan 2015 16:33:19 +0000 (UTC) Received: from mail-wi0-x22a.google.com (mail-wi0-x22a.google.com [IPv6:2a00:1450:400c:c05::22a]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 63B0F2C31 for ; Mon, 5 Jan 2015 16:33:19 +0000 (UTC) Received: by mail-wi0-f170.google.com with SMTP id bs8so4471415wib.5 for ; Mon, 05 Jan 2015 08:33:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=KYlw8E1C/Uxbc5JIR12e8U3fiofNMYS2cgLOHnCEsqo=; b=LGabfHnGe9E4CK1rjtvQ+OphgK4R0XSTFg/5UmkprGjPxQD/fszdP9o663klMVSZiW c9B2n2dNpcn40hsco3ebr4yW4FSIfZwknQlkfQgRg3bRHriV2aGVNR9EvKWobCaIDqs5 USMHO6HbR5qoaxSWcQjDy6AEnfIjUBrjf3QZ0ekn4/CqPaGhCMg6pzBlbGz+cvKVITu7 WcnGAtVEUKb07oR7MPg/0nSxYayYCclaGEC8E+zYHLMedsbeJr9p6Lpw4NnNNV9/kqPz dH9ZEFGVzg3IedH7qwy/elIUG7bsxY8WsawMQgk+tMwZ65oXTnEJKQasq23mrpEUiJBn LRpw== MIME-Version: 1.0 X-Received: by 10.180.87.36 with SMTP id u4mr27067895wiz.20.1420475597717; Mon, 05 Jan 2015 08:33:17 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.216.41.136 with HTTP; Mon, 5 Jan 2015 08:33:17 -0800 (PST) In-Reply-To: References: Date: Mon, 5 Jan 2015 08:33:17 -0800 X-Google-Sender-Auth: Tc1AttoaeTFqVrvhzxg4bDS0SxI Message-ID: Subject: Re: netmap over virtio giving packets with extra 12 bytes From: Adrian Chadd To: Luigi Rizzo Content-Type: text/plain; charset=UTF-8 Cc: Avinash Sridharan , Vincenzo Maffione , "freebsd-net@freebsd.org" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.18-1 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, 05 Jan 2015 16:33:19 -0000 ... 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..) -adrian On 5 January 2015 at 04:19, Luigi Rizzo wrote: > What you see is a virtio issue. > > virtio prepends a 10 or 12-byte "virtio header" > to all packets, which is used to define what sort > of NIC accelerations (checksum, tso etc.) are > expected on the link. > > I do not remember if there is a way in qemu-kvm to > remove the header. Maybe Vincenzo (in Cc) remembers. > > cheers > luigi > > On Mon, Jan 5, 2015 at 6:54 AM, Avinash Sridharan < > avinash.sridharan@gmail.com> wrote: > >> I am using netmap with the click modular router, running the click-modular >> router in user space. A while back I was using this combination with the >> e1000 device driver, with a slightly older netmap code-base. >> >> Recently I updated my netmap code base and am trying to use the >> click-modular router with netmap over a virtio-net device driver (over >> KVM). With this combination, though I was able to receive packets I was >> unable to interpret any packets coming from the FromDevice element. >> >> To debug this issue (and to negate any changes I made to the click-modular >> router), I ran the pkt-gen application with the "dump payload" option: >> >> sudo ~/pkt-gen -i eth1 -f rx -X >> >> This showed that packets are being received correctly from the >> netmap-enabled interface, but there are an extra "12" bytes appended to the >> packet. >> >> 381.088570 main_thread [1446] 1 pps (1 pkts in 1001088 usec) >> >> ring 0x7f133bca6000 cur 1 [buf 516 flags 0x0000 len 72] >> >> 0: 00 00 00 00 00 00 00 00 00 00 01 00 01 80 c2 00 ................ << >> extra 12 bytes >> >> 16: 00 00 40 16 7e 5b 50 f0 00 26 42 42 03 00 00 00 ..@.~[P..&BB.... >> >> 32: 00 00 80 00 40 16 7e 5b 50 f0 00 00 00 00 80 00 ....@.~[P....... >> >> 48: 40 16 7e 5b 50 f0 80 01 00 00 14 00 02 00 00 00 @.~[P........... >> >> 64: 00 00 00 00 bc 9b f6 74 >> >> >> As we can see, the above is an STP BPDU, and there are 12 leading bytes in >> the payload. >> >> >> The extra leading bytes screw up the packet interpretation. >> >> >> So is this is an artifact of the virtio-net driver or has something >> changed in the netmap device driver? >> >> >> Thanks, >> >> Avinash >> > > > > -- > -----------------------------------------+------------------------------- > Prof. Luigi RIZZO, rizzo@iet.unipi.it . Dip. di Ing. dell'Informazione > http://www.iet.unipi.it/~luigi/ . Universita` di Pisa > TEL +39-050-2211611 . via Diotisalvi 2 > Mobile +39-338-6809875 . 56122 PISA (Italy) > -----------------------------------------+------------------------------- > _______________________________________________ > 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"