VALE(4) | MidnightBSD Kernel Interfaces 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 254 ports
per switch. The maximum number of switches is provided by the max_bridges
sysctl variable.
See netmap(4)
for a list of sysctl variables that affect vale
bridges.
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).
March 6, 2022 | midnightbsd-3.1 |