From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:48157) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UgzZw-0003d1-3V for qemu-devel@nongnu.org; Mon, 27 May 2013 11:43:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UgzZp-0002If-S4 for qemu-devel@nongnu.org; Mon, 27 May 2013 11:43:20 -0400 Received: from mail-qc0-x235.google.com ([2607:f8b0:400d:c01::235]:55188) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UgzZp-0002HS-HA for qemu-devel@nongnu.org; Mon, 27 May 2013 11:43:13 -0400 Received: by mail-qc0-f181.google.com with SMTP id u11so3532461qcx.26 for ; Mon, 27 May 2013 08:43:13 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <51A37F06.2080300@redhat.com> Date: Mon, 27 May 2013 17:43:02 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <20130527093409.GH21969@stefanha-thinkpad.redhat.com> In-Reply-To: <20130527093409.GH21969@stefanha-thinkpad.redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] snabbswitch integration with QEMU for userspace ethernet I/O List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: Luke Gorrie , "snabb-devel@googlegroups.com" , qemu-devel@nongnu.org, mst@redhat.com Il 27/05/2013 11:34, Stefan Hajnoczi ha scritto: > On Sun, May 26, 2013 at 11:32:49AM +0200, Luke Gorrie wrote: >> Stefan put us onto the highly promising track of vhost/virtio. We have >> implemented this between Snabb Switch and the Linux kernel, but not >> directly between Snabb Switch and QEMU guests. The "roadblock" we have hit >> is embarrasingly basic: QEMU is using user-to-kernel system calls to setup >> vhost (open /dev/net/tun and /dev/vhost-net, ioctl()s) and I haven't found >> a good way to map these towards Snabb Switch instead of the kernel. > > vhost_net is about connecting the a virtio-net speaking process to a > tun-like device. The problem you are trying to solve is connecting a > virtio-net speaking process to Snabb Switch. > > Either you need to replace vhost or you need a tun-like device > interface. > > How does your switch talk to hardware? And also, is your switch monolithic or does it consist of different processes? If you already have processes talking to each other, the first thing that came to my mind was a new network backend, similar to net/vde.c but more featureful (so that you support the virtio headers for offloading, for example). Then you would use "-netdev snabb,id=net0 -device e1000,netdev=net0". It would be slower than vhost-net, for example no zero-copy transmission. > 3. Use the kernel as a middle-man. Create a double-ended "veth" > interface and have Snabb Switch and QEMU each open a PF_PACKET > socket and accelerate it with VHOST_NET. As Michael, mentioned, this could be macvtap on the interface that you have already created in the switch and passed to vhost-net. Then you do not have to do anything in QEMU. Paolo > If you are using the Linux network stack then it might be better to > integrate with vhost maybe as a tun-like device driver. > > Stefan > >