11391e272SKevin Bowling.\"- 21391e272SKevin Bowling.\" SPDX-License-Identifier: BSD-3-Clause 31391e272SKevin Bowling.\" 41391e272SKevin Bowling.\" Copyright (c) 2026 Kevin Bowling <kbowling@FreeBSD.org> 51391e272SKevin Bowling.\" All rights reserved. 61391e272SKevin Bowling.\" 71391e272SKevin Bowling.\" Redistribution and use in source and binary forms, with or without 81391e272SKevin Bowling.\" modification, are permitted provided that the following conditions 91391e272SKevin Bowling.\" are met: 101391e272SKevin Bowling.\" 1. Redistributions of source code must retain the above copyright 111391e272SKevin Bowling.\" notice, this list of conditions and the following disclaimer. 121391e272SKevin Bowling.\" 2. Redistributions in binary form must reproduce the above copyright 131391e272SKevin Bowling.\" notice, this list of conditions and the following disclaimer in the 141391e272SKevin Bowling.\" documentation and/or other materials provided with the distribution. 151391e272SKevin Bowling.\" 3. Neither the name of the copyright holder nor the names of its 161391e272SKevin Bowling.\" contributors may be used to endorse or promote products derived from 171391e272SKevin Bowling.\" this software without specific prior written permission. 181391e272SKevin Bowling.\" 191391e272SKevin Bowling.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 201391e272SKevin Bowling.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 211391e272SKevin Bowling.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 221391e272SKevin Bowling.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 231391e272SKevin Bowling.\" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 241391e272SKevin Bowling.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 251391e272SKevin Bowling.\" TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 261391e272SKevin Bowling.\" PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 271391e272SKevin Bowling.\" LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 281391e272SKevin Bowling.\" NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 291391e272SKevin Bowling.\" SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 301391e272SKevin Bowling.\" 31f589d1fcSKevin Bowling.Dd September 14, 2026 321391e272SKevin Bowling.Dt IXV 4 331391e272SKevin Bowling.Os 341391e272SKevin Bowling.Sh NAME 351391e272SKevin Bowling.Nm ixv 361391e272SKevin Bowling.Nd Intel Ethernet virtual function driver 371391e272SKevin Bowling.Sh SYNOPSIS 381391e272SKevin BowlingTo compile this driver into the kernel, 391391e272SKevin Bowlingplace the following lines in the kernel configuration file: 401391e272SKevin Bowling.Bd -ragged -offset indent 411391e272SKevin Bowling.Cd "device iflib" 421391e272SKevin Bowling.Cd "device ixv" 431391e272SKevin Bowling.Ed 441391e272SKevin Bowling.Pp 451391e272SKevin BowlingAlternatively, to load the driver as a module at boot time, 461391e272SKevin Bowlingplace the following line in 471391e272SKevin Bowling.Xr loader.conf 5 : 481391e272SKevin Bowling.Bd -literal -offset indent 491391e272SKevin Bowlingif_ixv_load="YES" 501391e272SKevin Bowling.Ed 511391e272SKevin Bowling.Sh DESCRIPTION 521391e272SKevin BowlingThe 531391e272SKevin Bowling.Nm 541391e272SKevin Bowlingdriver provides support for PCI Express virtual functions exposed by 551391e272SKevin Bowlingsupported Intel Ethernet controllers. 561391e272SKevin BowlingThe physical function must create and configure the virtual function before 571391e272SKevin Bowlingit can be attached on the host or assigned to a 581391e272SKevin Bowling.Fx 591391e272SKevin Bowlingguest. 601391e272SKevin Bowling.Pp 611391e272SKevin BowlingThe driver supports jumbo frames, MSI-X, receive-side scaling, 621391e272SKevin BowlingTCP segmentation offload, checksum offload, and VLAN hardware offload. 639ea7beb1SKevin BowlingThe maximum supported MTU is 9710 bytes, except that an 82599 VF on 649ea7beb1SKevin BowlingHyper-V is limited to 1504 bytes. 651391e272SKevin Bowling.Pp 661391e272SKevin BowlingThe physical-function driver controls the resources and policy presented to 671391e272SKevin Bowlingthe virtual function. 681391e272SKevin BowlingThe number of available queue pairs is negotiated with the physical function 691391e272SKevin Bowlingwhere the mailbox protocol supports it, and is also limited by the available 701391e272SKevin BowlingMSI-X vectors. 711391e272SKevin BowlingRequests to change the MAC address, VLAN membership, or receive mode may be 721391e272SKevin Bowlingrejected by physical-function policy. 731391e272SKevin Bowling.Pp 749ea7beb1SKevin BowlingOn Hyper-V, the host provides reset and assigned-address information through 759ea7beb1SKevin BowlingPCI configuration space instead of the Intel PF/VF mailbox. 76*a54f8354SKevin BowlingThe driver uses up to two queue pairs on X550, X552, X553, and E610 77*a54f8354SKevin Bowlingwhen the host advertises multiple queues through PCI configuration space 78*a54f8354SKevin Bowlingand sufficient MSI-X vectors are available. 79*a54f8354SKevin BowlingOtherwise, it uses one queue pair. 80*a54f8354SKevin BowlingTo request two queue pairs, run the following from an elevated PowerShell 81*a54f8354SKevin Bowlingprompt on the Hyper-V host, substituting the VM and network adapter names: 82*a54f8354SKevin Bowling.Bd -literal -offset indent 83*a54f8354SKevin BowlingSet-VMNetworkAdapter -VMName "vm-name" -Name "adapter-name" ` 84*a54f8354SKevin Bowling -IovQueuePairsRequested 2 85*a54f8354SKevin Bowling.Ed 86*a54f8354SKevin Bowling.Pp 87*a54f8354SKevin BowlingChanging this setting can detach and reattach the VF, so configure it before 88*a54f8354SKevin Bowlingstarting the guest when possible. 89*a54f8354SKevin Bowling.Pp 909ea7beb1SKevin BowlingMAC address, VLAN, multicast filter, and receive mode policies remain under 919ea7beb1SKevin Bowlinghost control. 92f589d1fcSKevin BowlingOn E610, when the host does not support the PCI link-status query, 93f589d1fcSKevin Bowlingthe driver uses the virtual-function carrier indication and reports an 94f589d1fcSKevin Bowlingunknown link speed. 959ea7beb1SKevin Bowling.Pp 961391e272SKevin BowlingThe virtual function cannot configure the physical media. 971391e272SKevin BowlingOnly automatic media selection is supported, and reported link state and 981391e272SKevin Bowlingspeed are supplied by the physical function or virtual-function hardware. 991391e272SKevin Bowling.Sh HARDWARE 1001391e272SKevin BowlingThe 1011391e272SKevin Bowling.Nm 1021391e272SKevin Bowlingdriver supports virtual functions from the following Intel controller 1031391e272SKevin Bowlingfamilies: 1041391e272SKevin Bowling.Pp 1051391e272SKevin Bowling.Bl -bullet -compact 1061391e272SKevin Bowling.It 1071391e272SKevin BowlingEthernet E610 1081391e272SKevin Bowling.It 1091391e272SKevin BowlingEthernet X550, X552, and X553 1101391e272SKevin Bowling.It 1111391e272SKevin BowlingEthernet X540 1121391e272SKevin Bowling.It 1131391e272SKevin BowlingEthernet 82599 1141391e272SKevin Bowling.El 1151391e272SKevin Bowling.Sh SEE ALSO 1161391e272SKevin Bowling.Xr iflib 4 , 1171391e272SKevin Bowling.Xr ix 4 , 1181391e272SKevin Bowling.Xr pci 4 , 1191391e272SKevin Bowling.Xr iovctl.conf 5 , 1201391e272SKevin Bowling.Xr loader.conf 5 , 1211391e272SKevin Bowling.Xr ifconfig 8 122