VALE(4) | Device Drivers Manual | VALE(4) |
vale
— a very fast
Virtual Local Ethernet using the netmap API
device netmap
vale
is a feature of the
netmap(4) module that implements multiple Virtual switches
that can be used to interconnect netmap clients, including traffic sources
and sinks, packet forwarders, userspace firewalls, and so on.
vale
is implemented completely in
software, and is extremely fast. On a modern machine it can move almost 20
Million packets per second (Mpps) per core with small frames, and about 70
Gbit/s with 1500 byte frames.
vale
dynamically creates switches and
ports as clients connect to it using the netmap(4)
API.
vale
ports are named
valeSSS:PPP where vale is
the prefix indicating a VALE switch rather than a standard interface,
SSS indicates a specific switch (the colon is a
separator), and PPP indicates a port within the
switch. Both SSS and PPP have the form [0-9a-zA-Z_]+ , the string cannot
exceed IFNAMSIZ characters, and PPP cannot be the name of any existing OS
network interface.
See netmap(4) for details on the API.
vale
currently supports up to 4 switches,
16 ports per switch, with 1024 buffers per port. These hard limits will be
changed to sysctl variables in future releases.
vale
uses the following sysctl variables
to control operation:
Create one switch, with a traffic generator connected to one port, and a netmap-enabled tcpdump instance on another port:
tcpdump -ni valea:1 & pkt-gen -i valea:0 -f tx &
Create two switches, each connected to two qemu machines on different ports.
qemu -net nic -net netmap,ifname=vale1:a ... & qemu -net nic -net netmap,ifname=vale1:b ... & qemu -net nic -net netmap,ifname=vale2:c ... & qemu -net nic -net netmap,ifname=vale2:d ... &
Luigi Rizzo, Giuseppe Lettieri: VALE, a switched ethernet for virtual machines, June 2012, http://info.iet.unipi.it/~luigi/vale/
The vale
switch was designed and
implemented in 2012 by Luigi Rizzo and
Giuseppe Lettieri at the Universita` di Pisa.
vale
was funded by the European Commission
within FP7 Projects CHANGE (257422) and OPENLAB (287581).
July 27, 2012 | Debian |