Is it possible to use SRIOV on BF2(not on the host)?

I am running multiple applications(dpdk-based) on one Bluefield SmartNIC. I want to separate the flow for this two dpdk applications based on ethernet frame mac address. I tried using scalable function and OVS on Bluefield 2 SmartNIC, it does separate traffic flow but the performance degradation is very high. So I want to try using SRIOV on BF2 to split one network interface to several interface.

After some searching, I found that the host of BF2 can create VF and representors will show up on SmartNIC.Virtual Functions :: NVIDIA DOCA SDK Documentation But this method still requires OVS. I wonder if I can create VFs of the network interface on BF2, and directly use these VFs on BF2 w/o OVS, just like on any normal x86 servers?

Hi @wsf123 ,

You can use NIC mode - In this mode, the DPU behaves exactly like an adapter card from the perspective of the external host. The ECPFs on the Arm side are not functional in this mode but the user is still able to access the Arm system and update mlxconfig options.
This mode supports SR-IOV legacy, while the Smart NIC (embedded) mode only supports SR-IOV switchdev, which requires OVS.


Hi @chenh1 ,

Thanks for your reply. I think I will try this setting. But maybe I did not deliver my question clearly, so please let me clarify my question.

My desired setting is to run multiple apps on BF2. These apps need to share the Connectx 6 network interface on BF2. The question I would like to ask is that: can I let these applications(running on BF2) use the VFs of Connectx 6 network interface on BF2? This means I regard BF2 as a normal server with its own network interface and the applications on it share the NIC in a SRIOV style. Can NIC mode meet my requirements?