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