On Thu, Jun 02, 2011 at 06:07:27PM +0300, Alexey Eromenko wrote:
> Hi All,
> 

Hello Alexey.

[...]
> (I randomly came across "http://virtualbricks.eu/"; which mentions this
> capabilities to attach host??2host and wire2host. Can it also attach
> UDP Tunnel to VDE switch ?)

For what concerns Virtualbricks, we are already supporting female plugs
(full support coming in 0.5), so it is basically allowed to connect two
virtual machines without a switch in the middle. I tested a setup like
this:

KVM0--eth0--vde_plug("/tmp/vdeF[]")
KVM1--eth0--vde_plug("/tmp/vdeF")

But we are planning to support "switchless" connections for other devices
as well: simple cables, wirefilters, encrypted tunnel endpoints (cryptcab).

For instance it should be possible a setup like this to connect two guests
running on two different physical hosts:

KVM0---eth0---vde_plug("/tmp/vdeF[]")
vde_plug("/tmp/vdeF")---cryptcab client----UDP
UDP----cryptcab server---vde_plug("/tmp/vdeF[]")
KVM1---eth0---vde_plug("/tmp/vdeF")

For what concerns UDP (unencrypted) plugs, we are looking forward for the 
new vde_plug features, but since virtualbricks is written in python,
most of our work will tend to be based on python libvdeplug support.
For instance we recently re-implemented the switch-to-switch "local" cable 
in virtualbricks: before we were spawning three processes with the well-known
"dpipe vde_plug A = vde_plug B", now we are using the following code in a
thread:

            import VdePlug
            # [...]
            v0 = VdePlug.VdePlug(self.wire.plugs[0].sock.path)
            v1 = VdePlug.VdePlug(self.wire.plugs[1].sock.path)
            p = select.epoll()
            p.register(v0.datafd().fileno(), select.POLLIN)
            p.register(v1.datafd().fileno(), select.POLLIN)
            while self.run_condition:
                res = p.poll(0.250)
                for (f,e) in res:
                    if f == v0.datafd().fileno() and (e & select.POLLIN):
                        buf = v0.recv(2000)
                        v1.send(buf)
                    if f == v1.datafd().fileno() and (e & select.POLLIN):
                        buf = v1.recv(2000)
                        v0.send(buf)


It is very likely that we will have a similar approach to connect virtual
devices across different physical hosts, with pyton UDP sockets in the middle.
We know this is a redundant solution if libvdeplug already support UDP
communication, but it is cleaner from the point of view of the python 
application.

Regards,

-- 
Daniele

------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Discover what all the cheering's about.
Get your free trial download today. 
http://p.sf.net/sfu/quest-dev2dev2 
_______________________________________________
vde-users mailing list
vde-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vde-users

Reply via email to