Solved SR-IOV and igb driver

I am going to use bhyve for virtualisation. Well, why not try to use SR-IOV at the same time, the network controller is supposed to support this. I'm on FreeBSD 11.1-RELEASE.

Output of pciconf -lvc igb0 shows this:
Code:
igb0@pci0:7:0:0:        class=0x020000 card=0x10c915d9 chip=0x10c98086 rev=0x01 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82576 Gigabit Network Connection'
    class      = network
    subclass   = ethernet
    cap 01[40] = powerspec 3  supports D0 D3  current D0
    cap 05[50] = MSI supports 1 message, 64 bit, vector masks
    cap 11[70] = MSI-X supports 10 messages, enabled
                 Table in map 0x1c[0x0], PBA in map 0x1c[0x2000]
    cap 10[a0] = PCI-Express 2 endpoint max data 256(512) FLR RO NS
                 link x4(x4) speed 2.5(2.5) ASPM disabled(L0s/L1)
    ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected
    ecap 0003[140] = Serial 1 002590ffff2ceec4
    ecap 000e[150] = ARI 1
    ecap 0010[160] = SR-IOV 1 IOV disabled, Memory Space disabled, ARI disabled
                     0 VFs configured out of 8 supported
                     First VF RID Offset 0x0180, VF RID Stride 0x0002
                     VF Device ID 0x10ca
                     Page Sizes: 4096 (enabled), 8192, 65536, 262144, 1048576, 4194304

There is no directory /dev/iov.

Looking at the source of the igb driver there is not much in there for SR-IOV. If I compare the igb driver for FreeBSD and for Linux (both downloaded from the intel site) it looks like SR-IOV is supported on Linux, but not on FreeBSD.

Now my question: Is this assumption correct, is SR-IOV not supported in the igb driver, or am I missing something else entirely?
 
Now my question: Is this assumption correct, is SR-IOV not supported in the igb driver, or am I missing something else entirely?
That is correct, back in January I actually wrote to Ryan Stone (One of the people who brought SR-IOV to FreeBSD) about this, because I had a use-case similar to yours. He generously took time to reply, and stated:
"Unfortunately I'm not aware of any work towards an igb SR-IOV implementation."
 
Thanks, then the problem is rather obvious. It's a shame I can't program my way out of a cardboard box, otherwise I might have tried to port the linux (or igbxe) SR-IOV support to igb.
 
Well, you could always start - learn to program, then learn how to port programs, write FreeBSD device drivers and finally fix it. It might take a while, but it could be worth it.
 
Back
Top