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(+)