kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Sridhar Samudrala <sri@us.ibm.com>
Cc: kvm-devel <kvm@vger.kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	qemu-devel@nongnu.org, Paul Brook <paul@codesourcery.com>,
	Jens Osterkamp <jens@linux.vnet.ibm.com>
Subject: Raw vs. tap (was: Re: Re: Release plan for 0.12.0)
Date: Wed, 14 Oct 2009 17:53:56 -0500	[thread overview]
Message-ID: <4AD65684.3010403@codemonkey.ws> (raw)
In-Reply-To: <1255554600.20366.9.camel@w-sridhar.beaverton.ibm.com>

Sridhar Samudrala wrote:
> Can't we bind the raw socket to the tap interface instead of the
> physical interface and allow the bridge config to work.
>   

But why use the raw interface instead of tap directly.

Let me summarize the discussion so far:

Raw sockets
Pros:
 o User specifies a network interface to bind to
 o External traffic Just Works, guest-to-guest traffic Just Works

Cons:
 o Requires root (cannot chmod)
 o Guest<->host traffic does not work
 o No support for GSO/checksum offload

Some things that I'm not sure will work or not:
 o guest with a bridge (sending traffic with multiple mac addresses)
 o guest trying to enter promiscuous mode

Tap
Pros:
 o All types of networking works when configured
 o Supports non-root users via tunctl
 o Supports GSO/checksum offload

Cons:
 o Requires configuring a bridge which can be difficult for some users

Since I don't see any clear features in raw sockets that aren't present 
in tap, the argument really boils down to two things.  First, we should 
take any feature in qemu and let the user decide whether or not they 
want to use it.  I strongly feel this is a bad philosophy that will lead 
to increased user confusion and a poor user experience.

Second, even though raw looses performance and requires root, since it 
requires no external configuration it is easier to use and therefore 
should be an option for users.  I dislike this argument because it 
tricks a user into thinking that raw is a viable replacement for tap.  
It certainly isn't performance wise but most importantly, it isn't from 
a functional perspective.  I would be much more inclined to consider 
taking raw and improving the performance long term if guest<->host 
networking worked.  This appears to be a fundamental limitation though 
and I think it's something that will forever plague users if we include 
this feature.

So at this point, I think it's a mistake to include raw socket support.  
If the goal is to improve networking usability such that it just works 
as a root user, let's incorporate a default network script that creates 
a bridge or something like that.  There are better ways to achieve that 
goal.

Regards,

Anthony Liguori

  reply	other threads:[~2009-10-14 22:53 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-29 23:54 Release plan for 0.12.0 Anthony Liguori
2009-09-30  0:20 ` Dustin Kirkland
2009-09-30  2:18   ` Anthony Liguori
2009-09-30  2:28 ` [Qemu-devel] " Isaku Yamahata
2009-09-30 13:03   ` Anthony Liguori
2009-09-30 13:43     ` Michael S. Tsirkin
2009-09-30  5:17 ` Amit Shah
2009-09-30 13:04   ` Anthony Liguori
2009-09-30 13:37     ` Amit Shah
2009-09-30 14:47       ` Anthony Liguori
2009-09-30 14:50         ` Amit Shah
2009-09-30  6:41 ` [Qemu-devel] " Avi Kivity
2009-09-30 13:05   ` Anthony Liguori
2009-10-01 21:13     ` Luiz Capitulino
2009-10-03 10:04       ` Avi Kivity
2009-10-05 12:43         ` Luiz Capitulino
2009-10-05 13:52           ` Avi Kivity
2009-09-30 13:31   ` Luiz Capitulino
2009-09-30  8:53 ` Michael Tokarev
2009-09-30  9:01   ` Avi Kivity
2009-09-30  9:31 ` Carl-Daniel Hailfinger
2009-09-30 13:07   ` Anthony Liguori
2009-09-30 15:59     ` Carl-Daniel Hailfinger
2009-09-30 19:25       ` Blue Swirl
2009-09-30 13:30 ` Luiz Capitulino
2009-09-30 14:45   ` Anthony Liguori
2009-09-30 15:03     ` Fred Leeflang
2009-09-30 15:26       ` [Qemu-devel] " Luiz Capitulino
2009-09-30 17:03     ` Juan Quintela
2009-09-30 19:28     ` [Qemu-devel] " Gerd Hoffmann
2009-10-03  4:28 ` TAKEDA, toshiya
2009-10-08 13:55 ` [Qemu-devel] " Jens Osterkamp
2009-10-08 14:21   ` Anthony Liguori
2009-10-14 13:09     ` [Qemu-devel] " Arnd Bergmann
2009-10-14 13:53       ` Anthony Liguori
2009-10-14 14:01         ` Michael S. Tsirkin
2009-10-14 14:04       ` Michael S. Tsirkin
2009-10-14 13:21     ` Michael S. Tsirkin
2009-10-14 14:17       ` Anthony Liguori
2009-10-14 14:24         ` Michael S. Tsirkin
2009-10-14 15:19           ` [Qemu-devel] " Jamie Lokier
2009-10-14 15:50             ` Michael S. Tsirkin
2009-10-14 21:10               ` [Qemu-devel] " Sridhar Samudrala
2009-10-14 22:53                 ` Anthony Liguori [this message]
2009-10-15  6:36                   ` Raw vs. tap (was: Re: [Qemu-devel] Re: Release plan for 0.12.0) Mark McLoughlin
2009-10-15  7:56                   ` Raw vs. tap (was: " Michael S. Tsirkin
2009-10-15 13:32                     ` Raw vs. tap Anthony Liguori
2009-10-15 15:04                       ` Michael S. Tsirkin
2009-10-15 15:18                         ` Anthony Liguori
2009-10-15 15:48                           ` Michael S. Tsirkin
2009-10-15 18:37                             ` Anthony Liguori
2009-10-15 22:08                               ` Michael S. Tsirkin
2009-10-18 10:05                             ` Michael S. Tsirkin
2009-10-15  7:51                 ` [Qemu-devel] Re: Release plan for 0.12.0 Michael S. Tsirkin
2009-10-20  6:33 ` Takahiro Hirofuchi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4AD65684.3010403@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=jens@linux.vnet.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=paul@codesourcery.com \
    --cc=qemu-devel@nongnu.org \
    --cc=sri@us.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).