Subject: Re: [RFCv2 00/12] Introduce host-side virtio queue and CAIF Virtio.

From: "Michael S. Tsirkin" <[email-masked]>
Date: Mon, 14 Jan 2013 18:54:08 +0200

On Sat, Jan 12, 2013 at 10:50:30AM +1030, Rusty Russell wrote:
> "Michael S. Tsirkin" <[email-masked]> writes:
> > On Fri, Jan 11, 2013 at 09:18:33AM +1030, Rusty Russell wrote:
> >> "Michael S. Tsirkin" <[email-masked]> writes:
> >> > On Thu, Jan 10, 2013 at 09:00:55PM +1030, Rusty Russell wrote:
> >> >> Not sure why vhost/net doesn't built a packet and feed it in
> >> >> netif_rx_ni().  This is what tun seems to do, and with this code it
> >> >> should be fairly optimal.
> >> >
> >> > Because we want to use NAPI.
> >> 
> >> Not quite what I was asking; it was more a question of why we're using a
> >> raw socket, when we trivially have a complete skb already which we
> >> should be able to feed to Linux like any network packet.
> >
> > Oh for some reason I thought you were talking about virtio.
> > I don't really understand what you are saying here - vhost
> > actually calls out to tun to build and submit the skb.
> 
> Ah, the fd is tun?

It can be tun or macvtap. We also support a packet socket
backend though I don't know of any users, maybe this can
be dropped.

>  Seems a bit indirect; I wonder if there's room for
> more optimization here...
> 
> Cheers,
> Rusty.

Quite possibly. Using common data structures and code in tun and macvtap
would allow calling this code directly from vhost-net.