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