qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jamie Lokier <jamie@shareable.org>
Cc: Anthony Liguori <aliguori@linux.vnet.ibm.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Re: Planning for 0.13
Date: Wed, 6 Jan 2010 20:19:30 +0200	[thread overview]
Message-ID: <20100106181930.GE4001@redhat.com> (raw)
In-Reply-To: <20100106171945.GB11773@shareable.org>

On Wed, Jan 06, 2010 at 05:19:45PM +0000, Jamie Lokier wrote:
> Michael S. Tsirkin wrote:
> > On Wed, Jan 06, 2010 at 09:24:45AM -0600, Anthony Liguori wrote:
> > > A helper is semantics equivalent to passing an fd from a management  
> > > tool.  All of the problems you describe are equally applicable to that  
> > > model.
> > 
> > No, because management calls qemu and parses qemu help output.  Yes it
> > is not ideal but it works today.
> 
> I don't understand.  What do you think would not work with
> helper="..."  where ... is specified on the qemu command line by the
> management script, versus the management script doing the helper
> operations itself first and then calling qemu with fd=?
> 
> If you are thinking that management scripts will tailor the -net
> arguments according to qemu version, you're right for some
> configurations (but not well established simple ones).
> 
> Presumably management can do the same capability when specifying "..."
> - the difference being it would query the helper tool to get _it's_
> features in some cases, e.g. for arguments to a helper which uses SSH
> to provide an encrypted tunnel.

What won't work is that besides fd= management specifies many other
arguments to the -net flag.

> > > The question is, should we take in code in qemu to support any possible  
> > > mechanism of creation of networking or should we just make sure their  
> > > all possible by passing in an appropriate fd.
> > 
> > We already do this. What will not work generally is *returning* fd from
> > helper. And IMO we are better off not pretending it's possible.
> 
> What about it will not work?  Even on Windows, I don't see why -net
> this,that,other,helper="..." cannot be a direct equivalent for -net
> this,that,other,fd=N, for any combination of this,that,other options -
> with the added bonus that the helper would be allowed to provide
> additional options to QEMU if wanted.
> 
> > > Having helpers does not mean that we would have no backends built into  
> > > qemu.  It just means that's it's possible to create backends outside of  
> > > qemu.
> > > 
> > > Of course, we need to evalute whether a new backend should be in qemu or  
> > > outside of qemu but that's something to handle on a case-by-case basis.
> > >
> > > Regards,
> > >
> > > Anthony Liguori
> > 
> > To the point, I think we are better off with packet socket (vepa)
> > backend in qemu than as a helper script.
> 
> That one, yes, but with the helper= option being more or less
> equivalent to fd= with the added ability to tell qemu how it wants
> qemu to talk to the fd, it's a bit easier to have user-supplied
> helpers such as:
> 
>     - Build an encrypted tunnel with SSH
>     - Log all packets
>     - Fake packets with a Perl script for repeatable tests
>     - Send packets through a network simulator
>     - Site-specific bridge + iptables setup
> 
> You don't want code for those sort of things in qemu itself.
> 
> Same, really, could be imagined with -monitor, -serial etc. -
> providing a generic "helper" backend in the same way we support
> connecting to serial ports, telnet sockets etc.
> 
> Btw, as of right now, I have not found a management tool which sets up
> bridges correctly for my sites...  There is always something extra
> needed with iptables, so it has to be done with hand-holding, or with
> the script= and downscript= options - which are annoyingly fragile
> because downscript isn't run if qemu has to be killed.
> 
> A helper which communicates its result back to qemu, and then *keeps
> the unix socket open* would be a nice way to reliably detect when the
> helper should destroy whatever it created - more reliable than downscript=.
> 
> I agree many backends are better implemented in qemu proper, but
> Anthony's idea sounds simple and versatile to me, and I would
> certainly use it for site-specific things.
> 
> -- Jamie

What you describe: helper= instead of fd= will work and I have no issue
with this. And we won't need any protocol between helper and qemu: just
the fd returned.  But of course this means that it can't be used to
create new backends such as vepa, which often need to setup the fd
in complex ways.

-- 
MST

  reply	other threads:[~2010-01-06 18:22 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-05 12:43 [Qemu-devel] Planning for 0.13 Anthony Liguori
2010-01-05 12:44 ` [Qemu-devel] " Anthony Liguori
2010-01-05 20:50 ` [Qemu-devel] " Stefan Weil
2010-01-05 21:33 ` [Qemu-devel] " Michael S. Tsirkin
2010-01-06  0:32   ` Anthony Liguori
2010-01-06 10:49     ` Michael S. Tsirkin
2010-01-06 12:36       ` Anthony Liguori
2010-01-06 13:20         ` Michael S. Tsirkin
2010-01-06 13:34           ` Anthony Liguori
2010-01-06 13:55             ` Michael S. Tsirkin
2010-01-06 15:10               ` Anthony Liguori
2010-01-06 15:16                 ` Michael S. Tsirkin
2010-01-06 15:24                   ` Anthony Liguori
2010-01-06 15:41                     ` Michael S. Tsirkin
2010-01-06 17:19                       ` Jamie Lokier
2010-01-06 18:19                         ` Michael S. Tsirkin [this message]
2010-01-06 22:49                           ` Jamie Lokier
2010-01-06 23:59                             ` Michael S. Tsirkin
2010-01-06 19:48                 ` Paolo Bonzini
2010-01-06 19:54                   ` Michael S. Tsirkin
2010-01-06 19:59                     ` Paolo Bonzini
2010-01-06 20:07                       ` Michael S. Tsirkin
2010-01-06 23:00                     ` Jamie Lokier
2010-01-07  0:05                       ` Michael S. Tsirkin
2010-01-05 22:31 ` [Qemu-devel] " Aurelien Jarno
2010-01-06  2:46 ` Roy Tam
2010-01-06  9:37 ` Gerd Hoffmann
2010-01-06 15:34 ` Adam Litke
2010-01-12 13:43 ` Pasi Kärkkäinen
2010-01-12 15:07   ` Stefano Stabellini
2010-02-09 14:50   ` Artyom Tarasenko

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=20100106181930.GE4001@redhat.com \
    --to=mst@redhat.com \
    --cc=aliguori@linux.vnet.ibm.com \
    --cc=jamie@shareable.org \
    --cc=qemu-devel@nongnu.org \
    /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).