xref: /freebsd/share/man/man4/vmx.4 (revision b077aed33b7b6aefca7b17ddb250cf521f938613)
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 December 26, 2020
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 lines in your
29kernel configuration file:
30.Bd -ragged -offset indent
31.Cd "device iflib"
32.Cd "device vmx"
33.Ed
34.Pp
35Alternatively, to load the driver as a
36module at boot time, place the following line in
37.Xr loader.conf 5 :
38.Bd -literal -offset indent
39if_vmx_load="YES"
40.Ed
41.Sh DESCRIPTION
42The
43.Nm
44driver provides support for the VMXNET3 virtual NIC available in virtual
45machines by VMware.
46It appears as a simple Ethernet device but is actually a virtual network
47interface to the underlying host operating system.
48.Pp
49This driver supports the
50.Ic VMXNET3
51driver protocol, as an alternative to the emulated
52.Xr le 4 ,
53.Xr em 4
54interfaces also available in the VMware environment.
55The
56.Nm
57driver is optimized for the virtual machine, it can provide advanced
58capabilities depending on the underlying host operating system and
59the physical network interface controller of the host.
60The
61.Nm
62driver supports features like multiqueue support, IPv6
63checksum offloading, MSI/MSI-X support and hardware VLAN tagging in
64VMware's VLAN Guest Tagging (VGT) mode.
65.Pp
66The
67.Nm
68driver supports VMXNET3 VMware virtual NICs provided by the virtual
69machine hardware version 7 or newer, as provided by the following
70products:
71.Pp
72.Bl -bullet -compact -offset indent
73.It
74VMware ESX/ESXi 4.0 and newer
75.It
76VMware Server 2.0 and newer
77.It
78VMware Workstation 6.5 and newer
79.It
80VMware Fusion 2.0 and newer
81.El
82.Pp
83For more information on configuring this device, see
84.Xr ifconfig 8 .
85.Sh MULTIPLE QUEUES
86The
87.Nm
88driver supports multiple transmit and receive queues.
89Multiple queues are only supported by certain VMware products, such as ESXi.
90The number of queues allocated depends on the presence of MSI-X,
91the number of configured CPUs,
92and the tunables listed below.
93.Fx
94does not enable MSI-X support on VMware by default.
95The
96.Va hw.pci.honor_msi_blacklist
97tunable must be disabled to enable MSI-X support.
98.Sh LOADER TUNABLES
99Tunables can be set at the
100.Xr loader 8
101prompt before booting the kernel or stored in
102.Xr loader.conf 5 .
103.Bl -tag -width indent
104.It Va hw.vmx.txnqueue
105.It Va hw.vmx. Ns Ar X Ns Va .txnqueue
106Maximum number of transmit queues allocated by default by the driver.
107The default value is 8.
108The maximum supported by the VMXNET3 virtual NIC is 8.
109.It Va hw.vmx.rxnqueue
110.It Va hw.vmx. Ns Ar X Ns Va .rxnqueue
111Maximum number of receive queues allocated by default by the driver.
112The default value is 8.
113The maximum supported by the VMXNET3 virtual NIC is 16.
114.It Va hw.vmx.txndesc
115.It Va hw.vmx. Ns Ar X Ns Va .txndesc
116.Pp
117Number of transmit descriptors allocated by the driver.
118The default value is 512.
119The value must be a multiple of 32, and the maximum is 4096.
120.It Va hw.vmx.rxndesc
121.It Va hw.vmx. Ns Ar X Ns Va .rxndesc
122.Pp
123Number of receive descriptors per ring allocated by the driver.
124The default value is 256.
125The value must be a multiple of 32, and the maximum is 2048.
126There are two rings so the actual usage is doubled.
127.El
128.Sh EXAMPLES
129The following entry must be added to the VMware configuration file
130to provide the
131.Nm
132device:
133.Bd -literal -offset indent
134ethernet0.virtualDev = "vmxnet3"
135.Ed
136.Sh SEE ALSO
137.Xr altq 4 ,
138.Xr arp 4 ,
139.Xr em 4 ,
140.Xr iflib 4 ,
141.Xr le 4 ,
142.Xr netintro 4 ,
143.Xr ng_ether 4 ,
144.Xr vlan 4 ,
145.Xr ifconfig 8
146.Sh AUTHORS
147.An -nosplit
148The
149.Nm
150driver was ported from
151.Ox
152and significantly rewritten by
153.An Bryan Venteicher Aq Mt bryanv@freebsd.org .
154The
155.Ox
156driver was written by
157.An Tsubai Masanari .
158