SR-IOV - Difference between PF and VF

Viewed 951

I am looking into SR-IOV and am looking for certain examples that what are exactly the things that a PF can do that a VF cannot. For example one thing is that a VF can not create further VF.

There is a mention:

A PCI Function that supports the SR-IOV capabilities as defined in SR-IOV specification. A PF contains the SR-IOV capability structure and is used to manage the SR-IOV functionality.

So what exactly are the options available in the SR-IOV functionality that a VF does not have access to or is not capable of.

Examples would be great for clarity. And feel free to ask any questions for clarification.

1 Answers

The answer to this is not something hard and fast and can vary between different companies implementing it. Like for example, changing the MAC address in a VF can be something that a VF cannot do without the PF's access or changing the MTU of the VF, in that case. The VF would ping its corresponding PF via mailbox to request the change.

For example, inside the Intel 82559 SR-IOV Driver Companion Guide, it mentions which actions need access of PF to do: Actions taken via Mailbox System - VF to PF (Link to the guide: https://www.intel.com/content/dam/doc/design-guide/82599-sr-iov-driver)

Also if you want to analyze this with the drivers code, you would be able to see clearly usage of mailbox system whenever you invoke a command inside the VF and you can maybe add prints inside the driver code to see when they get triggered, indicating you if the mailbox was used.

(Mailbox is a communication path between the PF and VF).

Related