I have SR-IOV working with both Mellanox ConnectX-3 and Intel 82599EB.
I noticed a difference in the way SR-IOV driver works with both of them:
Let x be the number of physical ports.
Let y be the number of Virtual functions I say when modprobing.
1. Intel driver creates x number of physical functions with y number of virtual functions, with one interface per virtual function.
2. Mellanox driver creates 1 physical function with y number of Virtual functions , with x interfaces per virtual function.
Is this a expected behavior with Mellanox driver?
For more info, following is the lspci, where both intel and Mellanox has 2 ports, with two virtual functions as parameter to the drivers:
+-09.0-[07]--+-00.0 Mellanox Technologies MT27500 Family [ConnectX-3] [15b3:1003]
| +-00.1 Mellanox Technologies MT27500 Family [ConnectX-3 Virtual Function] [15b3:1004]
| \-00.2 Mellanox Technologies MT27500 Family [ConnectX-3 Virtual Function] [15b3:1004]
+-07.0-[06]--+-00.0 Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection [8086:10fb]
| +-00.1 Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection [8086:10fb]
| +-10.0 Intel Corporation 82599 Ethernet Controller Virtual Function [8086:10ed]
| +-10.1 Intel Corporation 82599 Ethernet Controller Virtual Function [8086:10ed]
| +-10.2 Intel Corporation 82599 Ethernet Controller Virtual Function [8086:10ed]
| \-10.3 Intel Corporation 82599 Ethernet Controller Virtual Function [8086:10ed]
Thanks!