xref: /freebsd/share/man/man4/ixv.4 (revision a54f83544eea2a9804ac7940d35b26ffcb34dfb3)
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