VALE(4)
π VALE(4) π
okay bestie, sit down, we're talking about vale from the Kernel Interfaces Manual and honestly? it's giving main character energy β¨
πΈ NAME πΈ
vale β a very fast Virtual Local Ethernet using the netmap API π¦
β¨ SYNOPSIS β¨
device netmap
that's it. that's the whole vibe. one line. iconic. π
π DESCRIPTION π
vale is a feature of the netmap(4) module, and what it does is literally implement multiple Virtual switches that can interconnect netmap clients π«Ά β and by clients we mean traffic sources and sinks, packet forwarders, userspace firewalls, and so on. the whole little friend group fr fr.
and the way that it's implemented completely in software?? no cap, it 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. like. excuse me?? that's not a flex, that's a whole personality ππ
π OPERATION π
vale dynamically creates switches and ports as clients connect to it using the netmap(4) API. no pre-config, no drama, it just happens β¨
vale ports are named valeSSS:PPP where:
valeis the prefix indicating a VALE switch rather than a standard interface πSSSindicates a specific switch (the colon:is a separator) πPPPindicates 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 β οΈ (yes that's a hard rule, don't test it)
see netmap(4) for details on the API π
π§ LIMITS
vale currently supports up to 8 switches, with 254 ports per switch. that's the ceiling bestie, plan accordingly π
β SYSCTL VARIABLES β
see netmap(4) for a list of sysctl variables that affect vale bridges π«Ά
πΈ EXAMPLES πΈ
okay so first one: 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 &
and second: 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 ... &
literally look at that. four qemus. two switches. ate. π₯
π SEE ALSO π
netmap(4)π¦- Luigi Rizzo, Giuseppe Lettieri: VALE, a switched ethernet for virtual machines, June 2012, http://info.iet.unipi.it/~luigi/vale/ π
π AUTHORS π
the vale switch was designed and implemented in 2012 by Luigi Rizzo and Giuseppe Lettieri at the Universita` di Pisa πβ¨ absolute legends, no notes.
vale was funded by the European Commission within FP7 Projects CHANGE (257422) and OPENLAB (287581) π
and that's the whole page bestie!! this one's from the Debian crew, dated February 6, 2020 β so if you're reading this, shoutout to them, mwah ππ«Ά go build some virtual switches, you got this β
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2012 Luigi Rizzo, Universita` di Pisa
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms