
VALE, a Virtual Local Ethernet - lrizzo
http://info.iet.unipi.it/~luigi/vale/
======
mcmatterson
I fail to see how this is different than virtual bridges (ie: br _n_
interfaces in linux). Such interfaces exist within the host OS in a
virtualized environment, support 802.1q trunks, and exhibit quite a lot of
flexibility. They're also fast (they're faster than I've ever had need for,
though I don't know exact numbers offhand). Am I missing something, or hasn't
this been done before?

~~~
lrizzo
Among other things, the difference is speed: VALE can do 18 Mpps versus the
0.8 Mpps of a Linux bridge. And sometimes you do need speed, maybe not for
virtual machines but e.g. if you want to stress test your network monitors,
routers, IDS etc. For instance, using VALE we found out a missing event
notification in QEMU/KVM which limited the receive speed to 50 Kpps, and a
one-line fix brought it up to 1 Mpps.

~~~
binarycrusader
Solaris 11 also has virtual networking and it doesn't suffer from those same
performance issues:

    
    
      http://www.oracle.com/technetwork/server-storage/solaris11/technologies/networkvirtualization-312278.html

------
gioele
It looks a lot as VDE (virtual distributed ethernet) [0] (quickly referenced
in the paper).

Qemu used to support VDE natively for a while, then the development stopped
and its support has been removed from mainline. It was cool while it lasted.

The main differences with VDE seem to be that VALE uses a kernel backend
instead of being 100% in user space and that VALE is limited to local ethernet
while VDE provided also remote "plugs" and "cables".

[0] <http://vde.sourceforge.net/>

------
moonboots
Does anyone know if the related netmap project[1] is being consider for
inclusion into mainline linux? I haven't seen much discussion of the project
apart from a few HN and proggit threads. It looks like effort was made to make
netmap compatible with existing systems, although according to the author,
small portions of network drivers need to be rewritten.

[1] <http://info.iet.unipi.it/~luigi/netmap/>

~~~
wmf
It'll be mainlined if the authors follow the process, which they won't because
they're academics.

~~~
lrizzo
(I'll take this chance to give a clarification on the topic but otherwise
would like to stop this thread here).

Your comment is unfair. I have contributed tons of things to the FreeBSD
kernel, and to the Asterisk project, following the process that each
organization uses. Some of my code (the qfq scheduler) has also been
integrated in Linux by third parties who were motivated enough to carry on the
work. The problem is not us being academics, but rather that there are only so
many hours in a day. Some help from people more involved in "the process"
would certainly be welcome.

Note that the netmap code is fairly small and self contained. It is meant to
run on multiple platforms though, and I'd rather have it this ways than have
to maintain two separate version. It is only thanks to this feature that i
could develop VALE on FreeBSD and have it running on Linux in a matter of
minutes.

