1.\" 2.\" Copyright (c) 2006,2013 Reyk Floeter <reyk@openbsd.org> 3.\" 4.\" Permission to use, copy, modify, and distribute this software for any 5.\" purpose with or without fee is hereby granted, provided that the above 6.\" copyright notice and this permission notice appear in all copies. 7.\" 8.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15.\" 16.\" $OpenBSD: src/share/man/man4/vmx.4,v 1.1 2013/05/31 20:18:44 reyk Exp $ 17.\" 18.\" $FreeBSD$ 19.\" 20.Dd March 17, 2014 21.Dt VMX 4 22.Os 23.Sh NAME 24.Nm vmx 25.Nd VMware VMXNET3 Virtual Interface Controller device 26.Sh SYNOPSIS 27To compile this driver into the kernel, 28place the following line in your 29kernel configuration file: 30.Bd -ragged -offset indent 31.Cd "device vmx" 32.Ed 33.Pp 34Alternatively, to load the driver as a 35module at boot time, place the following line in 36.Xr loader.conf 5 : 37.Bd -literal -offset indent 38if_vmx_load="YES" 39.Ed 40.Sh DESCRIPTION 41The 42.Nm 43driver provides support for the VMXNET3 virtual NIC available in virtual 44machines by VMware. 45It appears as a simple Ethernet device but is actually a virtual network 46interface to the underlying host operating system. 47.Pp 48This driver supports the 49.Ic VMXNET3 50driver protocol, as an alternative to the emulated 51.Xr pcn 4 , 52.Xr em 4 53interfaces also available in the VMware environment. 54The 55.Nm 56driver is optimized for the virtual machine, it can provide advanced 57capabilities depending on the underlying host operating system and 58the physical network interface controller of the host. 59The 60.Nm 61driver supports features like multiqueue support, IPv6 62checksum offloading, MSI/MSI-X support and hardware VLAN tagging in 63VMware's VLAN Guest Tagging (VGT) mode. 64.Pp 65The 66.Nm 67driver supports VMXNET3 VMware virtual NICs provided by the virtual 68machine hardware version 7 or newer, as provided by the following 69products: 70.Pp 71.Bl -bullet -compact -offset indent 72.It 73VMware ESX/ESXi 4.0 and newer 74.It 75VMware Server 2.0 and newer 76.It 77VMware Workstation 6.5 and newer 78.It 79VMware Fusion 2.0 and newer 80.El 81.Pp 82For more information on configuring this device, see 83.Xr ifconfig 8 . 84.Sh MULTIPLE QUEUES 85The 86.Nm 87driver supports multiple transmit and receive queues. 88Multiple queues are only supported by certain VMware products, such as ESXi. 89The number of queues allocated depends on the presence of MSI-X, 90the number of configured CPUs, 91and the tunables listed below. 92.Fx 93does not enable MSI-X support on VMware by default. 94The 95.Va hw.pci.honor_msi_blacklist 96tunable must be disabled to enable MSI-X support. 97.Sh LOADER TUNABLES 98Tunables can be set at the 99.Xr loader 8 100prompt before booting the kernel or stored in 101.Xr loader.conf 5 . 102.Bl -tag -width indent 103.It Va hw.vmx.txnqueue 104.It Va hw.vmx. Ns Ar X Ns Va .txnqueue 105Maximum number of transmit queues allocated by default by the driver. 106The default value is 8. 107The maximum supported by the VMXNET3 virtual NIC is 8. 108.It Va hw.vmx.rxnqueue 109.It Va hw.vmx. Ns Ar X Ns Va .rxnqueue 110Maximum number of receive queues allocated by default by the driver. 111The default value is 8. 112The maximum supported by the VMXNET3 virtual NIC is 16. 113.It Va hw.vmx.txndesc 114.It Va hw.vmx. Ns Ar X Ns Va .txndesc 115.Pp 116Number of transmit descriptors allocated by the driver. 117The default value is 512. 118The value must be a multiple of 32, and the maximum is 4096. 119.It Va hw.vmx.rxndesc 120.It Va hw.vmx. Ns Ar X Ns Va .rxndesc 121.Pp 122Number of receive descriptors per ring allocated by the driver. 123The default value is 256. 124The value must be a multiple of 32, and the maximum is 2048. 125There are two rings so the actual usage is doubled. 126.El 127.Sh EXAMPLES 128The following entry must be added to the VMware configuration file 129to provide the 130.Nm 131device: 132.Bd -literal -offset indent 133ethernet0.virtualDev = "vmxnet3" 134.Ed 135.Sh SEE ALSO 136.Xr altq 4 , 137.Xr arp 4 , 138.Xr em 4 , 139.Xr netintro 4 , 140.Xr ng_ether 4 , 141.Xr pcn 4 , 142.Xr vlan 4 , 143.Xr ifconfig 8 144.Sh AUTHORS 145.An -nosplit 146The 147.Nm 148driver was ported from 149.Ox 150and significantly rewritten by 151.An Bryan Venteicher Aq Mt bryanv@freebsd.org . 152The 153.Ox 154driver was written by 155.An Tsubai Masanari . 156