NAME¶
vmx
—
VMware VMXNET3 Virtual Interface Controller
device
SYNOPSIS¶
To compile this driver into the kernel, place the following line in your kernel
configuration file:
device vmx
Alternatively, to load the driver as a module at boot time, place the following
line in
loader.conf(5):
DESCRIPTION¶
The
vmx
driver provides support for the
VMXNET3 virtual NIC available in virtual machines by VMware. It appears as a
simple Ethernet device but is actually a virtual network interface to the
underlying host operating system.
This driver supports the
VMXNET3
driver
protocol, as an alternative to the emulated
pcn(4),
em(4)
interfaces also available in the VMware environment. The
vmx
driver is optimized for the virtual
machine, it can provide advanced capabilities depending on the underlying host
operating system and the physical network interface controller of the host.
The
vmx
driver supports features like
multiqueue support, IPv6 checksum offloading, MSI/MSI-X support and hardware
VLAN tagging in VMware's VLAN Guest Tagging (VGT) mode.
The
vmx
driver supports VMXNET3 VMware
virtual NICs provided by the virtual machine hardware version 7 or newer, as
provided by the following products:
- VMware ESX/ESXi 4.0 and newer
- VMware Server 2.0 and newer
- VMware Workstation 6.5 and newer
- VMware Fusion 2.0 and newer
For more information on configuring this device, see
ifconfig(8).
MULTIPLE QUEUES¶
The
vmx
driver supports multiple transmit and
receive queues. Multiple queues are only supported by certain VMware products,
such as ESXi. The number of queues allocated depends on the presence of MSI-X,
the number of configured CPUs, and the tunables listed below.
FreeBSD does not enable MSI-X support on VMware by
default. The
hw.pci.honor_msi_blacklist
tunable must be disabled to enable MSI-X support.
LOADER TUNABLES¶
Tunables can be set at the
loader(8) prompt before
booting the kernel or stored in
loader.conf(5).
- hw.vmx.txnqueue
-
- hw.vmx.X.txnqueue
- Maximum number of transmit queues allocated by default by the driver. The
default value is 8. The maximum supported by the VMXNET3 virtual NIC is
8.
- hw.vmx.rxnqueue
-
- hw.vmx.X.rxnqueue
- Maximum number of receive queues allocated by default by the driver. The
default value is 8. The maximum supported by the VMXNET3 virtual NIC is
16.
- hw.vmx.txndesc
-
- hw.vmx.X.txndesc
-
Number of transmit descriptors allocated by the driver. The default value is
512. The value must be a multiple of 32, and the maximum is 4096.
- hw.vmx.rxndesc
-
- hw.vmx.X.rxndesc
-
Number of receive descriptors per ring allocated by the driver. The default
value is 256. The value must be a multiple of 32, and the maximum is 2048.
There are two rings so the actual usage is doubled.
EXAMPLES¶
The following entry must be added to the VMware configuration file to provide
the
vmx
device:
ethernet0.virtualDev = "vmxnet3"
SEE ALSO¶
altq(4),
arp(4),
em(4),
netintro(4),
ng_ether(4),
pcn(4),
vlan(4),
ifconfig(8)
AUTHORS¶
The
vmx
driver was ported from
OpenBSD and significantly rewritten by
Bryan Venteicher
⟨bryanv@freebsd.org⟩. The
OpenBSD driver
was written by
Tsubai Masanari.