1e3c97c2cSBryan Venteicher.\" 2e3c97c2cSBryan Venteicher.\" Copyright (c) 2006,2013 Reyk Floeter <reyk@openbsd.org> 3e3c97c2cSBryan Venteicher.\" 4e3c97c2cSBryan Venteicher.\" Permission to use, copy, modify, and distribute this software for any 5e3c97c2cSBryan Venteicher.\" purpose with or without fee is hereby granted, provided that the above 6e3c97c2cSBryan Venteicher.\" copyright notice and this permission notice appear in all copies. 7e3c97c2cSBryan Venteicher.\" 8e3c97c2cSBryan Venteicher.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9e3c97c2cSBryan Venteicher.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10e3c97c2cSBryan Venteicher.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11e3c97c2cSBryan Venteicher.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12e3c97c2cSBryan Venteicher.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13e3c97c2cSBryan Venteicher.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14e3c97c2cSBryan Venteicher.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15e3c97c2cSBryan Venteicher.\" 16e3c97c2cSBryan Venteicher.\" $OpenBSD: src/share/man/man4/vmx.4,v 1.1 2013/05/31 20:18:44 reyk Exp $ 17e3c97c2cSBryan Venteicher.\" 1823af96adSMarius Strobl.Dd December 26, 2020 19e3c97c2cSBryan Venteicher.Dt VMX 4 20e3c97c2cSBryan Venteicher.Os 21e3c97c2cSBryan Venteicher.Sh NAME 22e3c97c2cSBryan Venteicher.Nm vmx 23e3c97c2cSBryan Venteicher.Nd VMware VMXNET3 Virtual Interface Controller device 24e3c97c2cSBryan Venteicher.Sh SYNOPSIS 25e3c97c2cSBryan VenteicherTo compile this driver into the kernel, 26c75f49f7SKonstantin Belousovplace the following lines in your 27e3c97c2cSBryan Venteicherkernel configuration file: 28e3c97c2cSBryan Venteicher.Bd -ragged -offset indent 29c75f49f7SKonstantin Belousov.Cd "device iflib" 30e3c97c2cSBryan Venteicher.Cd "device vmx" 31e3c97c2cSBryan Venteicher.Ed 32e3c97c2cSBryan Venteicher.Pp 33e3c97c2cSBryan VenteicherAlternatively, to load the driver as a 34e3c97c2cSBryan Venteichermodule at boot time, place the following line in 35e3c97c2cSBryan Venteicher.Xr loader.conf 5 : 36e3c97c2cSBryan Venteicher.Bd -literal -offset indent 37e3c97c2cSBryan Venteicherif_vmx_load="YES" 38e3c97c2cSBryan Venteicher.Ed 39e3c97c2cSBryan Venteicher.Sh DESCRIPTION 40e3c97c2cSBryan VenteicherThe 41e3c97c2cSBryan Venteicher.Nm 42e3c97c2cSBryan Venteicherdriver provides support for the VMXNET3 virtual NIC available in virtual 43e3c97c2cSBryan Venteichermachines by VMware. 44e3c97c2cSBryan VenteicherIt appears as a simple Ethernet device but is actually a virtual network 45e3c97c2cSBryan Venteicherinterface to the underlying host operating system. 46e3c97c2cSBryan Venteicher.Pp 47e3c97c2cSBryan VenteicherThis driver supports the 48e3c97c2cSBryan Venteicher.Ic VMXNET3 49e3c97c2cSBryan Venteicherdriver protocol, as an alternative to the emulated 5023af96adSMarius Strobl.Xr le 4 , 51e3c97c2cSBryan Venteicher.Xr em 4 52e3c97c2cSBryan Venteicherinterfaces also available in the VMware environment. 53e3c97c2cSBryan VenteicherThe 54e3c97c2cSBryan Venteicher.Nm 55e3c97c2cSBryan Venteicherdriver is optimized for the virtual machine, it can provide advanced 56e3c97c2cSBryan Venteichercapabilities depending on the underlying host operating system and 57e3c97c2cSBryan Venteicherthe physical network interface controller of the host. 58e3c97c2cSBryan VenteicherThe 59e3c97c2cSBryan Venteicher.Nm 60e3c97c2cSBryan Venteicherdriver supports features like multiqueue support, IPv6 61e3c97c2cSBryan Venteicherchecksum offloading, MSI/MSI-X support and hardware VLAN tagging in 62e3c97c2cSBryan VenteicherVMware's VLAN Guest Tagging (VGT) mode. 63e3c97c2cSBryan Venteicher.Pp 64e3c97c2cSBryan VenteicherThe 65e3c97c2cSBryan Venteicher.Nm 66e3c97c2cSBryan Venteicherdriver supports VMXNET3 VMware virtual NICs provided by the virtual 67e3c97c2cSBryan Venteichermachine hardware version 7 or newer, as provided by the following 68e3c97c2cSBryan Venteicherproducts: 69e3c97c2cSBryan Venteicher.Pp 70e3c97c2cSBryan Venteicher.Bl -bullet -compact -offset indent 71e3c97c2cSBryan Venteicher.It 72e3c97c2cSBryan VenteicherVMware ESX/ESXi 4.0 and newer 73e3c97c2cSBryan Venteicher.It 74e3c97c2cSBryan VenteicherVMware Server 2.0 and newer 75e3c97c2cSBryan Venteicher.It 76e3c97c2cSBryan VenteicherVMware Workstation 6.5 and newer 77e3c97c2cSBryan Venteicher.It 78e3c97c2cSBryan VenteicherVMware Fusion 2.0 and newer 79e3c97c2cSBryan Venteicher.El 80e3c97c2cSBryan Venteicher.Pp 81e3c97c2cSBryan VenteicherFor more information on configuring this device, see 82e3c97c2cSBryan Venteicher.Xr ifconfig 8 . 83e557c1ddSBryan Venteicher.Sh MULTIPLE QUEUES 84e557c1ddSBryan VenteicherThe 85e557c1ddSBryan Venteicher.Nm 86e557c1ddSBryan Venteicherdriver supports multiple transmit and receive queues. 87e557c1ddSBryan VenteicherMultiple queues are only supported by certain VMware products, such as ESXi. 88e557c1ddSBryan VenteicherThe number of queues allocated depends on the presence of MSI-X, 89e557c1ddSBryan Venteicherthe number of configured CPUs, 90e557c1ddSBryan Venteicherand the tunables listed below. 91e557c1ddSBryan Venteicher.Fx 92e557c1ddSBryan Venteicherdoes not enable MSI-X support on VMware by default. 93e557c1ddSBryan VenteicherThe 94e557c1ddSBryan Venteicher.Va hw.pci.honor_msi_blacklist 95e557c1ddSBryan Venteichertunable must be disabled to enable MSI-X support. 963c5dfe89SBryan Venteicher.Sh LOADER TUNABLES 973c5dfe89SBryan VenteicherTunables can be set at the 983c5dfe89SBryan Venteicher.Xr loader 8 993c5dfe89SBryan Venteicherprompt before booting the kernel or stored in 1003c5dfe89SBryan Venteicher.Xr loader.conf 5 . 1013c5dfe89SBryan Venteicher.Bl -tag -width indent 102e557c1ddSBryan Venteicher.It Va hw.vmx.txnqueue 103e557c1ddSBryan Venteicher.It Va hw.vmx. Ns Ar X Ns Va .txnqueue 104e557c1ddSBryan VenteicherMaximum number of transmit queues allocated by default by the driver. 105e557c1ddSBryan VenteicherThe default value is 8. 106e557c1ddSBryan VenteicherThe maximum supported by the VMXNET3 virtual NIC is 8. 107e557c1ddSBryan Venteicher.It Va hw.vmx.rxnqueue 108e557c1ddSBryan Venteicher.It Va hw.vmx. Ns Ar X Ns Va .rxnqueue 109e557c1ddSBryan VenteicherMaximum number of receive queues allocated by default by the driver. 110e557c1ddSBryan VenteicherThe default value is 8. 111e557c1ddSBryan VenteicherThe maximum supported by the VMXNET3 virtual NIC is 16. 1123c5dfe89SBryan Venteicher.It Va hw.vmx.txndesc 1133c5dfe89SBryan Venteicher.It Va hw.vmx. Ns Ar X Ns Va .txndesc 1143c5dfe89SBryan Venteicher.Pp 1153c5dfe89SBryan VenteicherNumber of transmit descriptors allocated by the driver. 1163c5dfe89SBryan VenteicherThe default value is 512. 1173c5dfe89SBryan VenteicherThe value must be a multiple of 32, and the maximum is 4096. 1183c5dfe89SBryan Venteicher.It Va hw.vmx.rxndesc 1193c5dfe89SBryan Venteicher.It Va hw.vmx. Ns Ar X Ns Va .rxndesc 1203c5dfe89SBryan Venteicher.Pp 1213c5dfe89SBryan VenteicherNumber of receive descriptors per ring allocated by the driver. 1223c5dfe89SBryan VenteicherThe default value is 256. 1233c5dfe89SBryan VenteicherThe value must be a multiple of 32, and the maximum is 2048. 1243c5dfe89SBryan VenteicherThere are two rings so the actual usage is doubled. 125a648be6aSJoel Dahl.El 126e3c97c2cSBryan Venteicher.Sh EXAMPLES 127e3c97c2cSBryan VenteicherThe following entry must be added to the VMware configuration file 128e3c97c2cSBryan Venteicherto provide the 129e3c97c2cSBryan Venteicher.Nm 130e3c97c2cSBryan Venteicherdevice: 131e3c97c2cSBryan Venteicher.Bd -literal -offset indent 132e3c97c2cSBryan Venteicherethernet0.virtualDev = "vmxnet3" 133e3c97c2cSBryan Venteicher.Ed 134e3c97c2cSBryan Venteicher.Sh SEE ALSO 135e3c97c2cSBryan Venteicher.Xr altq 4 , 136e3c97c2cSBryan Venteicher.Xr arp 4 , 137e3c97c2cSBryan Venteicher.Xr em 4 , 1384d302c1aSKevin Lo.Xr iflib 4 , 139*68445e34SChristian Brueffer.Xr le 4 , 140e3c97c2cSBryan Venteicher.Xr netintro 4 , 141e3c97c2cSBryan Venteicher.Xr ng_ether 4 , 142e3c97c2cSBryan Venteicher.Xr vlan 4 , 143e3c97c2cSBryan Venteicher.Xr ifconfig 8 144e3c97c2cSBryan Venteicher.Sh AUTHORS 145e3c97c2cSBryan Venteicher.An -nosplit 146e3c97c2cSBryan VenteicherThe 147e3c97c2cSBryan Venteicher.Nm 148e3c97c2cSBryan Venteicherdriver was ported from 149e3c97c2cSBryan Venteicher.Ox 1503c5dfe89SBryan Venteicherand significantly rewritten by 1516c899950SBaptiste Daroussin.An Bryan Venteicher Aq Mt bryanv@freebsd.org . 152e3c97c2cSBryan VenteicherThe 153e3c97c2cSBryan Venteicher.Ox 154e3c97c2cSBryan Venteicherdriver was written by 155e3c97c2cSBryan Venteicher.An Tsubai Masanari . 156