---
name: "vmx"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd", "openbsd"]
url: "https://new.carta.tech/if_vmx"
---

# vmx(4)

VMware VMXNET3 Virtual Interface Controller device

Part of [if\_vmx(4)](/if_vmx/4.md).

## NAME

**vmx** – VMware VMXNET3 Virtual Interface Controller device

## SYNOPSIS

**device** **iflib** **device** **vmx**

In [loader.conf(5)](/loader.conf/5.md): **hw.vmx.txnqueue** **hw.vmx.%d.txnqueue** **hw.vmx.rxnqueue** **hw.vmx.%d.rxnqueue** **hw.vmx.txndesc** **hw.vmx.%d.txndesc** **hw.vmx.rxndesc** **hw.vmx.%d.rxndesc** **if\_vmx\_load="YES"**

## 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 [le(4)](/le/4.md), [em(4)](/em/4.md) 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.

For more information on configuring this device, see [ifconfig(8)](/ifconfig/8.md).

## HARDWARE

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

## 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)](/loader/8.md) prompt before booting the kernel or stored in [loader.conf(5)](/loader.conf/5.md).

- *hw.vmx.txnqueue*

  - *hw.vmx.**%d**.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.**%d**.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.**%d**.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.**%d**.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)](/altq/4.md), [arp(4)](/arp/4.md), [em(4)](/em/4.md), [iflib(4)](/iflib/4.md), [le(4)](/le/4.md), [netintro(4)](/netintro/4.md), [ng\_ether(4)](/ng_ether/4.md), [vlan(4)](/vlan/4.md), [ifconfig(8)](/ifconfig/8.md)

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