qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] net: RFC New Socket-Based, Switched Network Backend (QD


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] net: RFC New Socket-Based, Switched Network Backend (QDES)
Date: Wed, 27 Jun 2012 09:26:28 +0100

On Tue, Jun 26, 2012 at 5:48 PM, Mike Lovell <address@hidden> wrote:
> On 06/26/2012 02:29 AM, Stefan Hajnoczi wrote:
>>
>> On Mon, Jun 25, 2012 at 5:32 PM, Mike Lovell <address@hidden> wrote:
>>>
>>>
>>> Oh. I forgot another reason why I decided to do this over using VDE. I'll
>>> do
>>> this one with an example. Say you have 3 virtual machines on 3 different
>>> hosts. Each host has a vde_switch process running, Switch A, B, and C.
>>> Each
>>> vde_switch has connections to the other 2 through some vde_plug's and
>>> netcat. In this case, VDE will disable one of the links between switches
>>> to
>>> prevent loops, say the link between Switch A and C. Traffic from the VM
>>> connected to Switch C that is destined for the VM on Switch A will have
>>> to
>>> traverse through Switch B. This is a suboptimal traffic flow. Especially
>>> when you consider that the traffic has to flow through 3 to 4 additional
>>> processes on each host for each direction.
>>
>> I haven't tried VDE myself but this sounds odd.  Why can't you run a
>> single vde_switch instance and connect multiple guests to it (with
>> netcat)?
>
>
> you can connect multiple guests to a single vde_switch. as i understand it,
> the communication happens over a local unix domain socket. this would limit
> the guests on the same switch to the same host. so if you want guests on
> multiple hosts to talk using vde, i think you need a vde_switch on each host
> and then connect the vde_switch processes.

It can be done with socat or netcat (unix_domain_socket_a <-> TCP <->
unix_domain_socket_b):
http://www.dest-unreach.org/socat/doc/socat.html

Another idea is to take the QDES code and turn it into a freestanding
program that speaks the net/socket.c protocol.  That way it works with
existing QEMUs: launch the qdes daemon, then launch qemu -netdev
socket,connect=qdes-host:qdes-port.

Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]