SR-IOV - PF 和 VF 之间的区别

问题描述

我正在研究 SR-IOV 并且正在寻找某些示例,说明 PF 可以做什么而 VF 不能做的事情。例如,一件事是 VF 不能创建更多的 VF。

一个提及:

支持 SR-IOV 功能的 PCI 功能,如定义 SR-IOV 规范。 PF 包含 SR-IOV 能力结构 用于管理 SR-IOV 功能

那么 SR-IOV 功能中哪些选项是 VF 无法访问或无法使用的。

为了清楚起见,示例会很好。并随时提出任何问题以进行澄清。

解决方法

这个问题的答案不是一成不变的,并且在实施它的不同公司之间会有所不同。例如,在这种情况下,如果没有 PF 的访问权限或更改 VF 的 MTU,则更改 VF 中的 MAC 地址可能是 VF 无法执行的操作。 VF 将通过邮箱 ping 其对应的 PF 请求更改。

例如,在 Intel 82559 SR-IOV Driver Companion Guide 中,它提到哪些操作需要访问 PF 才能执行: Actions taken via Mailbox System - VF to PF(指南链接:https://www.intel.com/content/dam/doc/design-guide/82599-sr-iov-driver

另外,如果你想用驱动程序代码来分析这个,你将能够清楚地看到邮箱系统的使用,每当你在 VF 中调用一个命令时,你可以在驱动程序代码中添加打印件以查看它们何时被触发,表明您是否使用了邮箱。

(邮箱是 PF 和 VF 之间的通信路径)。