diff options
Diffstat (limited to 'static/freebsd/man4/vtnet.4 3.html')
| -rw-r--r-- | static/freebsd/man4/vtnet.4 3.html | 305 |
1 files changed, 305 insertions, 0 deletions
diff --git a/static/freebsd/man4/vtnet.4 3.html b/static/freebsd/man4/vtnet.4 3.html new file mode 100644 index 00000000..a77e5aab --- /dev/null +++ b/static/freebsd/man4/vtnet.4 3.html @@ -0,0 +1,305 @@ +<table class="head"> + <tr> + <td class="head-ltitle">VTNET(4)</td> + <td class="head-vol">Device Drivers Manual</td> + <td class="head-rtitle">VTNET(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">vtnet</code> — <span class="Nd">VirtIO + Ethernet driver</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 vtnet</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_vtnet_load="YES"</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">vtnet</code> device driver provides support + for VirtIO Ethernet devices.</p> +<p class="Pp">If the hypervisor advertises the appropriate features, the + <code class="Nm">vtnet</code> driver supports TCP/UDP checksum offload for + both transmit and receive, TCP segmentation offload (TSO), TCP large receive + offload (LRO), hardware VLAN tag stripping/insertion features, a multicast + hash filter, as well as Jumbo Frames (up to 9216 bytes), which can be + configured via the interface MTU setting.</p> +<p class="Pp">Two flavors of TCP LRO are supported: Hardware TCP LRO, which is + performed by the host providing TCP segments larger than the MTU to the + guest, and Software TCP LRO, which is performed by the network stack of the + guest processing TCP segments in an optimized way. Only one flavour of TCP + LRO should be used. Since hardware TCP LRO can have bad interactions with IP + forwarding and software TCP LRO mitigates several drawbacks of hardware TCP + LRO, the default setting is to disable hardware TCP LRO. See the loader + tunable + <var class="Va">hw.vtnet.</var><var class="Ar">X</var><var class="Va">.lro_disable</var>.</p> +<p class="Pp">TCP/UDP receive checksum offload cannot be configured + independently for IPv4 and IPv6. Selecting an MTU larger than 1500 bytes + with the <a class="Xr">ifconfig(8)</a> utility configures the adapter to + receive and transmit Jumbo Frames.</p> +<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="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.vtnet.csum_disable"><var class="Va">hw.vtnet.csum_disable</var></dt> + <dd style="width: auto;"> </dd> + <dt id="hw.vtnet."><var class="Va">hw.vtnet.</var><var class="Ar">X</var><var class="Va">.csum_disable</var></dt> + <dd>This tunable disables receive and transmit checksum offloading for TCP and + UDP. This also implies that TCP segmentation offloading and large receive + offload are disabled. The default value is 0.</dd> + <dt id="hw.vtnet.fixup_needs_csum"><var class="Va">hw.vtnet.fixup_needs_csum</var></dt> + <dd style="width: auto;"> </dd> + <dt id="hw.vtnet.~2"><var class="Va">hw.vtnet.</var><var class="Ar">X</var><var class="Va">.fixup_needs_csum</var></dt> + <dd>This tunable enforces the calculation of a valid TCP or UDP checksum for + packets received with <code class="Dv">VIRTIO_NET_HDR_F_NEEDS_CSUM</code> + being set in the <var class="Va">flags</var> field of the structure + <var class="Vt">struct virtio_net_hdr</var>. It also marks the checksum as + being correct in the mbuf packet header. The default value is 0. This + tunable is deprecated and will be removed in <span class="Ux">FreeBSD + 16</span>.</dd> + <dt id="hw.vtnet.tso_disable"><var class="Va">hw.vtnet.tso_disable</var></dt> + <dd style="width: auto;"> </dd> + <dt id="hw.vtnet.~3"><var class="Va">hw.vtnet.</var><var class="Ar">X</var><var class="Va">.tso_disable</var></dt> + <dd>This tunable disables TCP segmentation offloading. The default value is + 0.</dd> + <dt id="hw.vtnet.lro_disable"><var class="Va">hw.vtnet.lro_disable</var></dt> + <dd style="width: auto;"> </dd> + <dt id="hw.vtnet.~4"><var class="Va">hw.vtnet.</var><var class="Ar">X</var><var class="Va">.lro_disable</var></dt> + <dd>This tunable disables hardware TCP LRO. The default value is 1.</dd> + <dt id="hw.vtnet.mq_disable"><var class="Va">hw.vtnet.mq_disable</var></dt> + <dd style="width: auto;"> </dd> + <dt id="hw.vtnet.~5"><var class="Va">hw.vtnet.</var><var class="Ar">X</var><var class="Va">.mq_disable</var></dt> + <dd>This tunable disables multiqueue. The default value is 0.</dd> + <dt id="hw.vtnet.mq_max_pairs"><var class="Va">hw.vtnet.mq_max_pairs</var></dt> + <dd style="width: auto;"> </dd> + <dt id="hw.vtnet.~6"><var class="Va">hw.vtnet.</var><var class="Ar">X</var><var class="Va">.mq_max_pairs</var></dt> + <dd>This tunable sets the maximum number of transmit and receive queue pairs. + Multiple queues are only supported when the Multiqueue feature is + negotiated. This driver supports a maximum of 8 queue pairs. The number of + queue pairs used is the lesser of the maximum supported by the driver and + the hypervisor, the number of CPUs present in the guest, and this tunable + if not zero. The default value is 0.</dd> + <dt id="hw.vtnet.tso_maxlen"><var class="Va">hw.vtnet.tso_maxlen</var></dt> + <dd style="width: auto;"> </dd> + <dt id="hw.vtnet.~7"><var class="Va">hw.vtnet.</var><var class="Ar">X</var><var class="Va">.tso_maxlen</var></dt> + <dd>This tunable sets the TSO burst limit. The default value is 65535.</dd> + <dt id="hw.vtnet.rx_process_limit"><var class="Va">hw.vtnet.rx_process_limit</var></dt> + <dd style="width: auto;"> </dd> + <dt id="hw.vtnet.~8"><var class="Va">hw.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_process_limit</var></dt> + <dd>This tunable sets the number of RX segments processed in one pass. The + default value is 1024.</dd> + <dt id="hw.vtnet.lro_entry_count"><var class="Va">hw.vtnet.lro_entry_count</var></dt> + <dd style="width: auto;"> </dd> + <dt id="hw.vtnet.~9"><var class="Va">hw.vtnet.</var><var class="Ar">X</var><var class="Va">.lro_entry_count</var></dt> + <dd>This tunable sets the software TCP LRO entry count. The default value is + 128, the minimum value is 8.</dd> + <dt id="hw.vtnet.lro_mbufq_depth"><var class="Va">hw.vtnet.lro_mbufq_depth</var></dt> + <dd style="width: auto;"> </dd> + <dt id="hw.vtnet.~10"><var class="Va">hw.vtnet.</var><var class="Ar">X</var><var class="Va">.lro_mbufq_depth</var></dt> + <dd>This tunable sets the depth of the software TCP LRO mbuf queue. The + default value is 0.</dd> + <dt id="hw.vtnet.altq_disable"><var class="Va">hw.vtnet.altq_disable</var></dt> + <dd>This tunable disables ALTQ support, allowing the use of multiqueue + instead. This option applies to all interfaces. The default value is + 0.</dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="TRANSMIT_QUEUE_STATISTICS"><a class="permalink" href="#TRANSMIT_QUEUE_STATISTICS">TRANSMIT + QUEUE STATISTICS</a></h1> +<p class="Pp">For each transmit queue of each interface the following read-only + statistics are provided:</p> +<dl class="Bl-tag"> + <dt id="dev.vtnet."><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.txq</var><var class="Ar">Y</var><var class="Va">.rescheduled</var></dt> + <dd>The number of times the transmit interrupt handler was rescheduled.</dd> + <dt id="dev.vtnet.~2"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.txq</var><var class="Ar">Y</var><var class="Va">.tso</var></dt> + <dd>The number of times TCP segment offloading was performed.</dd> + <dt id="dev.vtnet.~3"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.txq</var><var class="Ar">Y</var><var class="Va">.csum</var></dt> + <dd>The number of times transmit checksum offloading for UDP or TCP was + performed.</dd> + <dt id="dev.vtnet.~4"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.txq</var><var class="Ar">Y</var><var class="Va">.omcasts</var></dt> + <dd>The number of multicast packets that were transmitted.</dd> + <dt id="dev.vtnet.~5"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.txq</var><var class="Ar">Y</var><var class="Va">.obytes</var></dt> + <dd>The number of bytes that were transmitted (based on Ethernet frames).</dd> + <dt id="dev.vtnet.~6"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.txq</var><var class="Ar">Y</var><var class="Va">.opackets</var></dt> + <dd>The number of packets that were transmitted (Ethernet frames).</dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="RECEIVE_QUEUE_STATISTICS"><a class="permalink" href="#RECEIVE_QUEUE_STATISTICS">RECEIVE + QUEUE STATISTICS</a></h1> +<p class="Pp">For each receive queue of each interface the following read-only + statistics are provided:</p> +<dl class="Bl-tag"> + <dt id="dev.vtnet.~7"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rxq</var><var class="Ar">Y</var><var class="Va">.rescheduled</var></dt> + <dd>The number of times the receive interrupt handler was rescheduled.</dd> + <dt id="dev.vtnet.~8"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rxq</var><var class="Ar">Y</var><var class="Va">.host_lro</var></dt> + <dd>The number of times TCP large receive offload was performed.</dd> + <dt id="dev.vtnet.~9"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rxq</var><var class="Ar">Y</var><var class="Va">.csum_failed</var></dt> + <dd>The number of times a packet with a request for receive or transmit + checksum offloading was received and this request failed. The different + reasons for the failure are counted by + <var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_csum_inaccessible_ipproto</var>, + <var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_csum_bad_ipproto</var>, + <var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_csum_bad_ethtype</var>, + and + <var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_csum_bad_offset</var>.</dd> + <dt id="dev.vtnet.~10"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rxq</var><var class="Ar">Y</var><var class="Va">.csum</var></dt> + <dd>The number of times receive checksum offloading for UDP or TCP was + performed.</dd> + <dt id="dev.vtnet.~11"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rxq</var><var class="Ar">Y</var><var class="Va">.ierrors</var></dt> + <dd>The number of times an error occurred during input processing.</dd> + <dt id="dev.vtnet.~12"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rxq</var><var class="Ar">Y</var><var class="Va">.iqdrops</var></dt> + <dd>The number of times a packet was dropped during input processing.</dd> + <dt id="dev.vtnet.~13"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rxq</var><var class="Ar">Y</var><var class="Va">.ibytes</var></dt> + <dd>The number of bytes that were received (based on Ethernet frames).</dd> + <dt id="dev.vtnet.~14"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rxq</var><var class="Ar">Y</var><var class="Va">.ipackets</var></dt> + <dd>The number of packets that were received (Ethernet frames).</dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="INTERFACE_TRANSMIT_STATISTICS"><a class="permalink" href="#INTERFACE_TRANSMIT_STATISTICS">INTERFACE + TRANSMIT STATISTICS</a></h1> +<p class="Pp">For each interface the following read-only transmit statistics are + provided:</p> +<dl class="Bl-tag"> + <dt id="dev.vtnet.~15"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.tx_task_rescheduled</var></dt> + <dd>The sum of + <var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.txq</var><var class="Ar">Y</var><var class="Va">.rescheduled</var> + over all transmit queues of the interface.</dd> + <dt id="dev.vtnet.~16"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.tx_tso_offloaded</var></dt> + <dd>The sum of + <var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.txq</var><var class="Ar">Y</var><var class="Va">.tso</var> + over all transmit queues of the interface.</dd> + <dt id="dev.vtnet.~17"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.tx_csum_offloaded</var></dt> + <dd>The sum of + <var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.txq</var><var class="Ar">Y</var><var class="Va">.csum</var> + over all transmit queues of the interface.</dd> + <dt id="dev.vtnet.~18"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.tx_defrag_failed</var></dt> + <dd>The number of times an attempt to defragment an mbuf chain failed during a + transmit operation.</dd> + <dt id="dev.vtnet.~19"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.tx_defragged</var></dt> + <dd>The number of times an mbuf chain was defragmented during a transmit + operation.</dd> + <dt id="dev.vtnet.~20"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.tx_tso_without_csum</var></dt> + <dd>The number of times TCP segment offloading was attempted without transmit + checksum offloading.</dd> + <dt id="dev.vtnet.~21"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.tx_tso_not_tcp</var></dt> + <dd>The number of times TCP segment offloading was attempted for a non-TCP + packet.</dd> + <dt id="dev.vtnet.~22"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.tx_csum_proto_mismatch</var></dt> + <dd>The number of times the IP protocol version of the transmit checksum + offloading request did not match the IP protocol version of the + packet.</dd> + <dt id="dev.vtnet.~23"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.tx_csum_unknown_ethtype</var></dt> + <dd>The number of times a transmit offload operation was requested for an + ethernet frame for which the EtherType was neither IPv4 nor IPv6 + (considering simple VLAN tagging).</dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="INTERFACE_RECEIVE_STATISTICS"><a class="permalink" href="#INTERFACE_RECEIVE_STATISTICS">INTERFACE + RECEIVE STATISTICS</a></h1> +<p class="Pp">For each interface the following read-only receive statistics are + provided:</p> +<dl class="Bl-tag"> + <dt id="dev.vtnet.~24"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_task_rescheduled</var></dt> + <dd>The sum of + <var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rxq</var><var class="Ar">Y</var><var class="Va">.rescheduled</var> + over all receive queues of the interface.</dd> + <dt id="dev.vtnet.~25"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_csum_offloaded</var></dt> + <dd>The sum of + <var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rxq</var><var class="Ar">Y</var><var class="Va">.csum</var> + over all receive queues of the interface.</dd> + <dt id="dev.vtnet.~26"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_csum_failed</var></dt> + <dd>The sum of + <var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rxq</var><var class="Ar">Y</var><var class="Va">.csum_failed</var> + over all receive queues of the interface.</dd> + <dt id="dev.vtnet.~27"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_csum_inaccessible_ipproto</var></dt> + <dd>The number of times a packet with a request for receive or transmit + checksum offloading was received where the IP protocol was not + accessible.</dd> + <dt id="dev.vtnet.~28"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_csum_bad_offset</var></dt> + <dd>The number of times fixing the checksum required by + <var class="Va">hw.vtnet.fixup_needs_csum</var> or + <var class="Va">hw.vtnet.</var><var class="Ar">X</var><var class="Va">.fixup_needs_csum</var> + was attempted for a packet where the csum is not located in the first + mbuf.</dd> + <dt id="dev.vtnet.~29"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_csum_bad_ipproto</var></dt> + <dd>The number of times a packet with a request for receive or transmit + checksum offloading was received where the IP protocol was neither TCP nor + UDP.</dd> + <dt id="dev.vtnet.~30"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_csum_bad_ethtype</var></dt> + <dd>The number of times a packet with a request for receive or transmit + checksum offloading was received where the EtherType was neither IPv4 nor + IPv6.</dd> + <dt id="dev.vtnet.~31"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_mergeable_failed</var></dt> + <dd>The number of times receiving a mergable buffer failed.</dd> + <dt id="dev.vtnet.~32"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_enq_replacement_failed</var></dt> + <dd>The number of times the enqueuing the replacement receive mbuf chain + failed.</dd> + <dt id="dev.vtnet.~33"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.rx_frame_too_large</var></dt> + <dd>The number of times the frame was loger than the mbuf chain during large + receive offload without mergeable buffers.</dd> + <dt id="dev.vtnet.~34"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.mbuf_alloc_failed</var></dt> + <dd>The number of times an mbuf cluster allocation for the receive buffer + failed.</dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="INTERFACE_CONFIGURATION_PARAMETER"><a class="permalink" href="#INTERFACE_CONFIGURATION_PARAMETER">INTERFACE + CONFIGURATION PARAMETER</a></h1> +<p class="Pp">For each interface the following read-only configuration + parameters are provided:</p> +<dl class="Bl-tag"> + <dt id="dev.vtnet.~35"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.act_vq_pairs</var></dt> + <dd>The number of active virtqueue pairs.</dd> + <dt id="dev.vtnet.~36"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.req_vq_pairs</var></dt> + <dd>The number of requested virtqueue pairs.</dd> + <dt id="dev.vtnet.~37"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.max_vq_pairs</var></dt> + <dd>The maximum number of supported virtqueue pairs.</dd> + <dt id="dev.vtnet.~38"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.flags</var></dt> + <dd>The flags of the interface. Mostly for debugging purposes.</dd> + <dt id="dev.vtnet.~39"><var class="Va">dev.vtnet.</var><var class="Ar">X</var><var class="Va">.features</var></dt> + <dd>The features of the interface as defined by the virtio specification.</dd> +</dl> +</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">arp(4)</a>, <a class="Xr">netintro(4)</a>, + <a class="Xr">ng_ether(4)</a>, <a class="Xr">virtio(4)</a>, + <a class="Xr">vlan(4)</a>, <a class="Xr">ifconfig(8)</a></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> +<p class="Pp">The <code class="Nm">vtnet</code> driver was written by + <span class="An">Bryan Venteicher</span> + <<a class="Mt" href="mailto:bryanv@FreeBSD.org">bryanv@FreeBSD.org</a>>. + It first appeared in <span class="Ux">FreeBSD 9.0</span>.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="CAVEATS"><a class="permalink" href="#CAVEATS">CAVEATS</a></h1> +<p class="Pp">The <code class="Nm">vtnet</code> driver only supports LRO when + the hypervisor advertises the mergeable buffer feature.</p> +</section> +</div> +<table class="foot"> + <tr> + <td class="foot-date">December 19, 2025</td> + <td class="foot-os">FreeBSD 15.0</td> + </tr> +</table> |
