The SR-IOV capable PF driver performs the following actions during attachment:
Calls the pciv_vf_config() function to obtain the number of VFs.
Obtains the device specific parameters for both the PF and VF and validates them.
Initializes the hardware accordingly
Calls the pciv_vf_config() interface to enable the VF
If the PF driver is a network driver, the driver will register with the GLDv3 framework using the mac_register() interface during attachment. The PF driver also performs class-specific initialization. This results in the following set of actions:
The GLDv3 interface becomes aware of the existence of the PF device.
A new set of MAC provider interfaces are exported by the PF driver. This process enables the MAC layer to become aware that the driver is a PF driver. The MAC layer also obtains more information about the VF driver.
See Managing Network Virtualization and Network Resources in Oracle Solaris 11.3 book for more information about network drivers and interfaces.
The VF instances are now initialized. A VF driver is attached only if the VF is assigned to the root domain.