Virtual Distributed Ethernet (VDE) is a project whose main goal is to provide a
highly flexible support for virtual networking [1].

Common usages of VDE include fast prototyping and teaching.
Some Universities use UML and VDE in their courses:
University of Bologna: "Virtual System Design"
University of Modena and Reggio Emilia: "Networking"
University Paris 13: prof.Saiu and Loddo implemented "Marionnet" [6].
(based on UML and VDE).
Denison University Columbus OH, USA (prof Goldwweber), 
Unimercatorum (prof. Davide Berardi)...
and maybe many others I don't remember or I have never heard of.

The support for VDE currently in user-mode linux is quite dated.

I am proposing a new support for VDE as a 'transport' of the vector module.

When vdeplug4[1,2] is installed on the host running UML, vde 'transport' 
enables several
virtual networking implementations.

A very partial list includes:

linux ... vec0:transport=vde,vnl=tap://tap0
   use tap0
linux ... vec0:transport=vde,vnl=slirp://
   use slirp
linux ... vec0:transport=vde,vnl=vde:///tmp/switch
   connect to a vde switch
scp sshlirp-x86_64 remote.host:/tmp/sshlirp
linux ... vec0:transport=\"vde,vnl=cmd://ssh remote.host //tmp/sshlirp\"
   connect to a remote slirp (instant VPN: convert ssh to VPN, it requires [3])
linux ... vec0:transport=vde,vnl=vxvde://234.0.0.1
   connect to a local area cloud (all the UML nodes using the same multicast 
address running
   on hosts in the same multicast domain (LAN) will be automagically connected 
together to a virtual LAN.

The same vnl (virtual network locator) can be used to configure virtual 
interfaces for
qemu-systems/kvm, virtualbox, vdens (vde namespaces) [4], lxc [5] ... creating
virtual networks of heterogeneous nodes.

This new VDE support for UML does not need to link the libvdeplug library when 
compiling
UML (it uses a helper process).
When UML using vec0:transport=vde runs on a host where vdeplug4 is not 
installed, simply
a "no such file or directory" error message is emitted at run time.

        renzo 

[1]: https://github.com/rd235/vdeplug4
[2]: https://wiki.virtualsquare.org/#/tutorials/vdebasics
[3]: https://github.com/virtualsquare/sshlirp
[4]: https://github.com/rd235/vdens
[5]: https://github.com/virtualsquare/vdelxc
[6]: https://marionnet.org/

 Renzo Davoli(2):
         vector_user: add VDE support
         user_mode_linux_howto_v2: add VDE vector support in doc

 .../virt/uml/user_mode_linux_howto_v2.rst          | 37 ++++++++++
 arch/um/drivers/vector_user.c                      | 83 ++++++++++++++++++++++
 2 files changed, 120 insertions(+)


Reply via email to