1.\" Copyright (c) 2011 Bryan Venteicher 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23.\" SUCH DAMAGE. 24.\" 25.Dd July 29, 2025 26.Dt VTNET 4 27.Os 28.Sh NAME 29.Nm vtnet 30.Nd VirtIO Ethernet driver 31.Sh SYNOPSIS 32To compile this driver into the kernel, 33place the following lines in your 34kernel configuration file: 35.Bd -ragged -offset indent 36.Cd "device vtnet" 37.Ed 38.Pp 39Alternatively, to load the driver as a 40module at boot time, place the following line in 41.Xr loader.conf 5 : 42.Bd -literal -offset indent 43if_vtnet_load="YES" 44.Ed 45.Sh DESCRIPTION 46The 47.Nm 48device driver provides support for VirtIO Ethernet devices. 49.Pp 50If the hypervisor advertises the appropriate features, the 51.Nm 52driver supports TCP/UDP checksum offload for both transmit and receive, 53TCP segmentation offload (TSO), TCP large receive offload (LRO), 54hardware VLAN tag stripping/insertion features, a multicast hash filter, 55as well as Jumbo Frames (up to 9216 bytes), which can be 56configured via the interface MTU setting. 57Selecting an MTU larger than 1500 bytes with the 58.Xr ifconfig 8 59utility configures the adapter to receive and transmit Jumbo Frames. 60.Pp 61For more information on configuring this device, see 62.Xr ifconfig 8 . 63.Sh LOADER TUNABLES 64Tunables can be set at the 65.Xr loader 8 66prompt before booting the kernel or stored in 67.Xr loader.conf 5 . 68.Bl -tag -width "xxxxxx" 69.It Va hw.vtnet.csum_disable 70.It Va hw.vtnet. Ns Ar X Ns Va .csum_disable 71This tunable disables receive and send checksum offload. 72The default value is 0. 73.It Va hw.vtnet.fixup_needs_csum 74.It Va hw.vtnet. Ns Ar X Ns Va .fixup_needs_csum 75This tunable enforces the calculation of a valid checksum for NEEDS_CSUM 76packets. 77The default value is 0. 78.It Va hw.vtnet.tso_disable 79.It Va hw.vtnet. Ns Ar X Ns Va .tso_disable 80This tunable disables TSO. 81The default value is 0. 82.It Va hw.vtnet.lro_disable 83.It Va hw.vtnet. Ns Ar X Ns Va .lro_disable 84This tunable disables LRO. 85The default value is 0. 86.It Va hw.vtnet.mq_disable 87.It Va hw.vtnet. Ns Ar X Ns Va .mq_disable 88This tunable disables multiqueue. 89The default value is 0. 90.It Va hw.vtnet.mq_max_pairs 91.It Va hw.vtnet. Ns Ar X Ns Va .mq_max_pairs 92This tunable sets the maximum number of transmit and receive queue pairs. 93Multiple queues are only supported when the Multiqueue feature is negotiated. 94This driver supports a maximum of 8 queue pairs. 95The number of queue pairs used is the lesser of the maximum supported by the 96driver and the hypervisor, the number of CPUs present in the guest, and this 97tunable if not zero. 98The default value is 0. 99.It Va hw.vtnet.tso_maxlen 100.It Va hw.vtnet. Ns Ar X Ns Va .tso_maxlen 101This tunable sets the TSO burst limit. 102The default value is 65535. 103.It Va hw.vtnet.rx_process_limit 104.It Va hw.vtnet. Ns Ar X Ns Va .rx_process_limit 105This tunable sets the number of RX segments processed in one pass. 106The default value is 1024. 107.It Va hw.vtnet.lro_entry_count 108.It Va hw.vtnet. Ns Ar X Ns Va .lro_entry_count 109This tunable sets the software LRO entry count. 110The default value is 128, the minimum value is 8. 111.It Va hw.vtnet.lro_mbufq_depth 112.It Va hw.vtnet. Ns Ar X Ns Va .lro_mbufq_depth 113This tunable sets the depth of the software LRO mbuf queue. 114The default value is 0. 115.It Va hw.vtnet.altq_disable 116This tunable disables ALTQ support, allowing the use of multiqueue instead. 117This option applies to all interfaces. 118The default value is 0. 119.El 120.Sh SEE ALSO 121.Xr arp 4 , 122.Xr netintro 4 , 123.Xr ng_ether 4 , 124.Xr virtio 4 , 125.Xr vlan 4 , 126.Xr ifconfig 8 127.Sh HISTORY 128The 129.Nm 130driver was written by 131.An Bryan Venteicher Aq Mt bryanv@FreeBSD.org . 132It first appeared in 133.Fx 9.0 . 134.Sh CAVEATS 135The 136.Nm 137driver only supports LRO when the hypervisor advertises the 138mergeable buffer feature. 139