xref: /freebsd/usr.sbin/iovctl/iovctl.8 (revision a259b98fa211ed87bfee58c575de4e2de94ee0fa)
1.\"
2.\" Copyright (c) 2014 Sandvine Inc.
3.\" All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\"    notice, this list of conditions and the following disclaimer.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\"    notice, this list of conditions and the following disclaimer in the
12.\"    documentation and/or other materials provided with the distribution.
13.\"
14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24.\" SUCH DAMAGE.
25.\"
26.Dd August 10, 2026
27.Dt IOVCTL 8
28.Os
29.Sh NAME
30.Nm iovctl
31.Nd "PCI SR-IOV configuration utility"
32.Sh SYNOPSIS
33.Nm
34.Fl C
35.Fl f Ar config-file
36.Op Fl n
37.Nm
38.Fl D
39.Op Fl f Ar config-file | Fl d Ar device
40.Op Fl n
41.Nm
42.Fl L
43.Op Fl f Ar config-file | Fl d Ar device
44.Nm
45.Fl S
46.Op Fl f Ar config-file | Fl d Ar device
47.Sh DESCRIPTION
48The
49.Nm
50utility configures and inspects PCI Single-Root I/O Virtualization
51.Pq SR-IOV
52Virtual Functions
53.Pq VFs .
54When invoked with the
55.Fl C
56flag,
57.Nm
58creates VFs as children of the Physical Function
59.Pq PF
60configured in the specified configuration file.
61When invoked with the
62.Fl D
63flag,
64.Nm
65destroys all VFs that are children of the specified device.
66Available PF devices can be seen in
67.Pa /dev/iov/ .
68.Pp
69The following options are available:
70.Bl -tag -width indent
71.It Fl C
72Enable SR-IOV on the specified PF device and create VF children.
73This operation will fail if the PF already has VF children.
74This option must be used in conjunction with the
75.Fl f
76option.
77.It Fl d Ar device
78Specify the PF device to use for the given operation.
79.Ar device
80may either be the name of a PF device, or a full path name to a node in
81.Pa /dev/iov/ .
82This option may not be used with the
83.Fl C
84option.
85.It Fl D
86Delete all VF children of the specified PF device.
87This operation will fail if SR-IOV is not currently enabled on the specified
88device.
89.It Fl f Ar config-file
90Specify the pathname of the configuration file.
91For the
92.Fl C
93option, this file will be used to specify all configuration values.
94For the
95.Fl D ,
96.Fl L ,
97and
98.Fl S
99options, this file will only be used to specify the name of the PF device.
100.Pp
101See
102.Xr iovctl.conf 5
103for a description of the config file format and documentation of the
104configuration parameters that apply to all PF drivers.
105See the PF driver manual page for configuration parameters specific to
106particular hardware.
107.It Fl n
108Perform a dry-run.
109Perform all validation of the specified action and print what would be done,
110but do not perform the actual creation or destruction of VFs.
111This option may not be used with the
112.Fl L
113or
114.Fl S
115flag.
116.It Fl L
117Report the current PCI SR-IOV topology of the specified PF.
118The output identifies the PF and each configured VF by PCI location, reports
119whether each VF is attached to a host driver, and identifies bindings to
120.Va ppt .
121An unconfigured PF reports its enable state and VF capacity without any
122per-VF records.
123A passthrough binding does not imply that a running virtual machine currently
124owns the VF.
125See
126.Xr vmm 4
127for passthrough-device configuration.
128.It Fl S
129Read the configuration schema from the specified device and print its contents
130to stdout.
131This action may be used to discover the configuration parameters supported on
132a given PF device.
133.El
134.Pp
135For network devices, use
136.Xr ifconfig 8
137with the
138.Fl v
139option on the PF interface to display NIC-specific VF initialization,
140resource, and policy state.
141.Sh SEE ALSO
142.Xr vmm 4 ,
143.Xr iovctl.conf 5 ,
144.Xr rc.conf 5 ,
145.Xr ifconfig 8
146.Sh AUTHORS
147This manual page was written by
148.An Ryan Stone Aq Mt rstone@FreeBSD.org .
149