IOVCTL.CONF(5)

NAME
iovctl.conf - IOVCTL configuration file

DESCRIPTION
The iovctl.conf file is the configuration file for the iovctl(8) program. This file specifies configuration parameters for a single Physical Function (PF) device. To configure SR-IOV on multiple PF devices, use one configuration file for each PF. The locations of all iovctl(8) configuration files are specified in rc.conf(5).

The iovctl.conf file uses UCL format. UCL syntax is documented at the official UCL website: http://github.com/vstakhov/libucl.

There are three types of sections in the iovctl.conf file. A section is a key at the top level of the file with a list as its value. The list may contain the keys specified in the OPTIONS section of this manual page. Individual PF driver implementations may specify additional device-specific configuration keys that they will accept. The order in which sections appear in iovctl.conf is ignored. No two sections may have the same key. For example, two sections for VF-1 must not be defined.

The first section type is the PF section. This section always has the key "PF"; therefore, only one such section may be defined. This section defines configuration parameters that apply to the PF as a whole.

The second section type is the VF section. This section has the key "VF-" followed by a VF index. VF indices start at 0 and always increment by 1. Valid VF indices are in the range of 0 to (num_vfs - 1). The VF index must be given as a decimal integer with no leading zeros. This section defines configuration parameters that apply to a single VF.

The third section type is the default section. This section always has the key "DEFAULT"; therefore, only one such section may be specified. This section defines default configuration parameters that apply to all VFs. All configuration keys that are valid to be applied to a VF are valid in this section. An individual VF section may override a default specified in this section by providing a different value for the configuration parameter. Note that the default section applies to ALL VFs. The default section must appear before any VF sections. The default section may appear before or after the PF section.

The following option types are supported:

boolean
    Accepts a boolean value of true or false.

mac-addr
    Accepts a unicast MAC address specified as a string of the form xx:xx:xx:xx:xx:xx, where xx is one or two hexadecimal digits.

string
    Accepts any string value.

uint8_t
    Accepts any integer in the range 0 to 255, inclusive.

uint16_t
    Accepts any integer in the range 0 to 65535, inclusive.

uint32_t
    Accepts any integer in the range 0 to (2**32 - 1), inclusive.

uint64_t
    Accepts any integer in the range 0 to (2**64 - 1), inclusive.

OPTIONS
The following parameters are accepted by all PF drivers:

device (string)
    This parameter specifies the name of the PF device. This parameter is required to be specified.

num_vfs (uint16_t)
    This parameter specifies the number of VF children to create. This parameter may not be zero. The maximum value of this parameter is device-specific.

The following parameters are accepted by all VFs:

passthrough (boolean)
    This parameter controls whether the VF is reserved for the use of the bhyve(8) hypervisor as a PCI passthrough device. If this parameter is set to true, then the VF will be reserved as a PCI passthrough device and it will not be accessible from the host OS. The default value of this parameter is false.

See the PF driver manual page for configuration parameters specific to particular hardware.

EXAMPLES
This sample file will create 3 VFs as children of the ix0 device. VF-1 and VF-2 are set as bhyve(8) passthrough devices through the use of the default section. VF-0 is not configured as a passthrough device as it explicitly overrides the default. VF-0 also sets a device-specific parameter named mac-addr.

    PF {
    	device : "ix0";
    	num_vfs : 3;
    }
    DEFAULT {
    	passthrough : true;
    }
    VF-0 {
    	mac-addr : "02:56:48:7e:d9:f7";
    	passthrough : false;
    }

SEE ALSO
rc.conf(5), iovctl(8)

AUTHORS
This manual page was written by Ryan Stone <rstone@FreeBSD.org>.