vale(4)

vale4

A very fast virtual local ethernet using the netmap api

Usage

device netmap

Overview

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.

Operation

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.

Limits

vale currently supports up to 254 ports per switch. The maximum number of switches is provided by the max_bridges sysctl variable.

Sysctl variables

See netmap(4) for a list of sysctl variables that affect vale bridges.

Examples

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 ... &

Releases

30 releases since FreeBSD 10.0-RELEASE; the text changed 18 times.

  1. 10.0
  2. 10.1
  3. 10.2
  4. 10.3
  5. 10.4
  6. 11.0
  7. 11.1
  8. 11.2
  9. 11.3
  10. 11.4
  11. 12.0
  12. 12.1
  13. 12.2
  14. 12.3
  15. 12.4
  16. 13.0–13.1
  17. 13.2
  18. 13.3–14.2
  19. 14.3–16.0

Authors

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).

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.