summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/vmx.4 3.html
blob: 18a5a46606ee0d819494cf6016412bfc3301df38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<table class="head">
  <tr>
    <td class="head-ltitle">VMX(4)</td>
    <td class="head-vol">Device Drivers Manual</td>
    <td class="head-rtitle">VMX(4)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">vmx</code> &#x2014; <span class="Nd">VMware
    VMXNET3 Virtual Interface Controller device</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp">To compile this driver into the kernel, place the following lines
    in your kernel configuration file:</p>
<div class="Bd Pp Bd-indent"><code class="Cd">device iflib</code>
<br/>
<code class="Cd">device vmx</code></div>
<p class="Pp">Alternatively, to load the driver as a module at boot time, place
    the following line in <a class="Xr">loader.conf(5)</a>:</p>
<div class="Bd Pp Bd-indent Li">
<pre>if_vmx_load=&quot;YES&quot;</pre>
</div>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The <code class="Nm">vmx</code> driver provides support for the
    VMXNET3 virtual NIC available in virtual machines by VMware. It appears as a
    simple Ethernet device but is actually a virtual network interface to the
    underlying host operating system.</p>
<p class="Pp">This driver supports the <code class="Ic">VMXNET3</code> driver
    protocol, as an alternative to the emulated <a class="Xr">le(4)</a>,
    <a class="Xr">em(4)</a> interfaces also available in the VMware environment.
    The <code class="Nm">vmx</code> driver is optimized for the virtual machine,
    it can provide advanced capabilities depending on the underlying host
    operating system and the physical network interface controller of the host.
    The <code class="Nm">vmx</code> driver supports features like multiqueue
    support, IPv6 checksum offloading, MSI/MSI-X support and hardware VLAN
    tagging in VMware's VLAN Guest Tagging (VGT) mode.</p>
<p class="Pp">The <code class="Nm">vmx</code> driver supports VMXNET3 VMware
    virtual NICs provided by the virtual machine hardware version 7 or newer, as
    provided by the following products:</p>
<p class="Pp"></p>
<ul class="Bl-bullet Bd-indent Bl-compact">
  <li>VMware ESX/ESXi 4.0 and newer</li>
  <li>VMware Server 2.0 and newer</li>
  <li>VMware Workstation 6.5 and newer</li>
  <li>VMware Fusion 2.0 and newer</li>
</ul>
<p class="Pp">For more information on configuring this device, see
    <a class="Xr">ifconfig(8)</a>.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="MULTIPLE_QUEUES"><a class="permalink" href="#MULTIPLE_QUEUES">MULTIPLE
  QUEUES</a></h1>
<p class="Pp">The <code class="Nm">vmx</code> driver supports multiple transmit
    and receive queues. Multiple queues are only supported by certain VMware
    products, such as ESXi. The number of queues allocated depends on the
    presence of MSI-X, the number of configured CPUs, and the tunables listed
    below. <span class="Ux">FreeBSD</span> does not enable MSI-X support on
    VMware by default. The <var class="Va">hw.pci.honor_msi_blacklist</var>
    tunable must be disabled to enable MSI-X support.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="LOADER_TUNABLES"><a class="permalink" href="#LOADER_TUNABLES">LOADER
  TUNABLES</a></h1>
<p class="Pp">Tunables can be set at the <a class="Xr">loader(8)</a> prompt
    before booting the kernel or stored in <a class="Xr">loader.conf(5)</a>.</p>
<dl class="Bl-tag">
  <dt id="hw.vmx.txnqueue"><var class="Va">hw.vmx.txnqueue</var></dt>
  <dd style="width: auto;">&#x00A0;</dd>
  <dt id="hw.vmx."><var class="Va">hw.vmx.</var><var class="Ar">X</var><var class="Va">.txnqueue</var></dt>
  <dd>Maximum number of transmit queues allocated by default by the driver. The
      default value is 8. The maximum supported by the VMXNET3 virtual NIC is
    8.</dd>
  <dt id="hw.vmx.rxnqueue"><var class="Va">hw.vmx.rxnqueue</var></dt>
  <dd style="width: auto;">&#x00A0;</dd>
  <dt id="hw.vmx.~2"><var class="Va">hw.vmx.</var><var class="Ar">X</var><var class="Va">.rxnqueue</var></dt>
  <dd>Maximum number of receive queues allocated by default by the driver. The
      default value is 8. The maximum supported by the VMXNET3 virtual NIC is
      16.</dd>
  <dt id="hw.vmx.txndesc"><var class="Va">hw.vmx.txndesc</var></dt>
  <dd style="width: auto;">&#x00A0;</dd>
  <dt id="hw.vmx.~3"><var class="Va">hw.vmx.</var><var class="Ar">X</var><var class="Va">.txndesc</var></dt>
  <dd>
    <p class="Pp">Number of transmit descriptors allocated by the driver. The
        default value is 512. The value must be a multiple of 32, and the
        maximum is 4096.</p>
  </dd>
  <dt id="hw.vmx.rxndesc"><var class="Va">hw.vmx.rxndesc</var></dt>
  <dd style="width: auto;">&#x00A0;</dd>
  <dt id="hw.vmx.~4"><var class="Va">hw.vmx.</var><var class="Ar">X</var><var class="Va">.rxndesc</var></dt>
  <dd>
    <p class="Pp">Number of receive descriptors per ring allocated by the
        driver. The default value is 256. The value must be a multiple of 32,
        and the maximum is 2048. There are two rings so the actual usage is
        doubled.</p>
  </dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
<p class="Pp">The following entry must be added to the VMware configuration file
    to provide the <code class="Nm">vmx</code> device:</p>
<div class="Bd Pp Bd-indent Li">
<pre>ethernet0.virtualDev = &quot;vmxnet3&quot;</pre>
</div>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<p class="Pp"><a class="Xr">altq(4)</a>, <a class="Xr">arp(4)</a>,
    <a class="Xr">em(4)</a>, <a class="Xr">iflib(4)</a>,
    <a class="Xr">le(4)</a>, <a class="Xr">netintro(4)</a>,
    <a class="Xr">ng_ether(4)</a>, <a class="Xr">vlan(4)</a>,
    <a class="Xr">ifconfig(8)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<p class="Pp">The <code class="Nm">vmx</code> driver was ported from
    <span class="Ux">OpenBSD</span> and significantly rewritten by
    <span class="An">Bryan Venteicher</span>
    &lt;<a class="Mt" href="mailto:bryanv@freebsd.org">bryanv@freebsd.org</a>&gt;.
    The <span class="Ux">OpenBSD</span> driver was written by
    <span class="An">Tsubai Masanari</span>.</p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">December 26, 2020</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>