eBay NIC Review: The Intel X520-DA1 from China

After being unhappy with the compatibility of SR-IOV on other cheap eBay NICs, I recently bought the cheapest Intel X520-DA1 on eBay. The Intel X520-DA1 is a single port 10 Gigabit SFP+ network card released in 2011 that makes use of the Intel 82599 controller, it takes up 8 PCIe 2.0 lanes and lists compatibility for SR-IOV.

Specifications Downloads

Support

The card has drivers for Windows, Linux, FreeBSD, and VMware. After testing, Debian and FreeBSD have the drivers built in, but FreeBSD seemed to not properly setup the NIC sometimes. The latest driver that works on Windows (and possibly other OSs) is version 25.6, newer versions faced a similar problem as FreeBSD.

However an important thing to note, is that my card is missing all of the Intel branding as well as shipping from China in a generic box, possibly meaning this is a Chinese clone of the X520-DA1. I didn’t know they existed at the time, but after searching up my problems with FreeBSD and TrueNAS Core, I found this thread where people are discussing the problems they’ve had.

Features

SR-IOV is a big plus for me, essentially it allows you to allocate the NIC to multiple VMs with full hardware acceleration, without loosing access to it on the host.

The NIC doesn’t have support for RDMA, but it apparently supports “Storage Over Ethernet” giving it iSCSI and NFS acceleration, or according to Intel “The controller enables fast and reliable networked storage with native iSCSI initiator support with Microsoft, Linux, and VMware OSs as well as support for iSCSI remote boot.”

Like most SFP+ NICs, this NIC does not feature Wake-On-LAN.

ethtool output
Settings for ens1:
        Supported ports: [ FIBRE ]
        Supported link modes:   10000baseT/Full
        Supported pause frame use: Symmetric
        Supports auto-negotiation: No
        Supported FEC modes: Not reported
        Advertised link modes:  10000baseT/Full
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: No
        Advertised FEC modes: Not reported
        Speed: 10000Mb/s
        Duplex: Full
        Auto-negotiation: off
        Port: Other
        PHYAD: 0
        Transceiver: internal
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

Performance

iperf3 receive from a SFN5122F
[  5] local 192.168.0.2 port 39348 connected to 192.168.0.31 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.14 GBytes  9.82 Gbits/sec   30   1.30 MBytes       
[  5]   1.00-2.00   sec   881 MBytes  7.39 Gbits/sec  308    332 KBytes       
[  5]   2.00-3.00   sec   844 MBytes  7.08 Gbits/sec  125   1.49 MBytes       
[  5]   3.00-4.00   sec  1.11 GBytes  9.54 Gbits/sec  111    804 KBytes       
[  5]   4.00-5.00   sec   706 MBytes  5.92 Gbits/sec  231   1.29 MBytes       
[  5]   5.00-6.00   sec  1.15 GBytes  9.90 Gbits/sec    0   1.43 MBytes       
[  5]   6.00-7.00   sec  1.15 GBytes  9.89 Gbits/sec   31   1.33 MBytes       
[  5]   7.00-8.00   sec  1006 MBytes  8.44 Gbits/sec  182    105 KBytes       
[  5]   8.00-9.00   sec  1014 MBytes  8.50 Gbits/sec    9   1.54 MBytes       
[  5]   9.00-10.00  sec  1.15 GBytes  9.88 Gbits/sec    0   1.54 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  10.1 GBytes  8.64 Gbits/sec  1027             sender
[  5]   0.00-10.00  sec  10.1 GBytes  8.63 Gbits/sec                  receiver
iperf3 send to a SFN5122F
[  5] local 192.168.0.31 port 52374 connected to 192.168.0.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.13 GBytes  9.70 Gbits/sec    0   1.41 MBytes       
[  5]   1.00-2.00   sec  1.13 GBytes  9.69 Gbits/sec    0   1.72 MBytes       
[  5]   2.00-3.00   sec  1.13 GBytes  9.70 Gbits/sec    0   1.86 MBytes       
[  5]   3.00-4.00   sec  1.13 GBytes  9.69 Gbits/sec    0   1.86 MBytes       
[  5]   4.00-5.00   sec  1.13 GBytes  9.68 Gbits/sec    0   1.86 MBytes       
[  5]   5.00-6.00   sec  1.13 GBytes  9.69 Gbits/sec    0   1.86 MBytes       
[  5]   6.00-7.00   sec  1.13 GBytes  9.69 Gbits/sec    0   1.86 MBytes       
[  5]   7.00-8.00   sec  1.13 GBytes  9.69 Gbits/sec    0   1.86 MBytes       
[  5]   8.00-9.00   sec  1.13 GBytes  9.69 Gbits/sec    0   1.86 MBytes       
[  5]   9.00-10.00  sec  1.13 GBytes  9.69 Gbits/sec    0   1.86 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  11.3 GBytes  9.69 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  11.3 GBytes  9.69 Gbits/sec                  receiver
iperf3 bidir with a SFN5122F
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][TX-C]   0.00-1.00   sec  1.10 GBytes  9.48 Gbits/sec    0   2.06 MBytes       
[  7][RX-C]   0.00-1.00   sec  1.08 GBytes  9.31 Gbits/sec                  
[  5][TX-C]   1.00-2.00   sec  1.03 GBytes  8.82 Gbits/sec    0   2.54 MBytes       
[  7][RX-C]   1.00-2.00   sec  1.06 GBytes  9.11 Gbits/sec                  
[  5][TX-C]   2.00-3.00   sec   936 MBytes  7.86 Gbits/sec  211   1.73 MBytes       
[  7][RX-C]   2.00-3.00   sec  1.02 GBytes  8.79 Gbits/sec                  
[  5][TX-C]   3.00-4.00   sec  1.12 GBytes  9.59 Gbits/sec    0   1.94 MBytes       
[  7][RX-C]   3.00-4.00   sec  1024 MBytes  8.58 Gbits/sec                  
[  5][TX-C]   4.00-5.00   sec  1.11 GBytes  9.56 Gbits/sec    0   2.07 MBytes       
[  7][RX-C]   4.00-5.00   sec   952 MBytes  7.99 Gbits/sec                  
[  5][TX-C]   5.00-6.00   sec  1.12 GBytes  9.61 Gbits/sec    0   2.21 MBytes       
[  7][RX-C]   5.00-6.00   sec   971 MBytes  8.15 Gbits/sec                  
[  5][TX-C]   6.00-7.00   sec  1.12 GBytes  9.62 Gbits/sec    0   2.24 MBytes       
[  7][RX-C]   6.00-7.00   sec  1021 MBytes  8.57 Gbits/sec                  
[  5][TX-C]   7.00-8.00   sec  1.11 GBytes  9.57 Gbits/sec    0   2.25 MBytes       
[  7][RX-C]   7.00-8.00   sec  1.10 GBytes  9.47 Gbits/sec                  
[  5][TX-C]   8.00-9.00   sec  1.10 GBytes  9.46 Gbits/sec    0   2.30 MBytes       
[  7][RX-C]   8.00-9.00   sec   977 MBytes  8.19 Gbits/sec                  
[  5][TX-C]   9.00-10.00  sec  1.11 GBytes  9.51 Gbits/sec   62   2.01 MBytes       
[  7][RX-C]   9.00-10.00  sec   980 MBytes  8.22 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-10.00  sec  10.8 GBytes  9.31 Gbits/sec  273             sender
[  5][TX-C]   0.00-10.00  sec  10.8 GBytes  9.30 Gbits/sec                  receiver
[  7][RX-C]   0.00-10.00  sec  10.1 GBytes  8.64 Gbits/sec  168             sender
[  7][RX-C]   0.00-10.00  sec  10.1 GBytes  8.64 Gbits/sec                  receiver

Performance Between SR-IOV

Interestingly the performance was greater than 10 Gbps when tested between VMs using SR-IOV. I don’t know how this is possible, but I’m assuming it’s Intel’s Virtual Machine Device Queues (VMDq) at work.

iperf3
[  5] local 192.168.0.3 port 37114 connected to 192.168.0.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.77 GBytes  15.2 Gbits/sec    0   3.05 MBytes       
[  5]   1.00-2.00   sec  1.81 GBytes  15.5 Gbits/sec    0   3.05 MBytes       
[  5]   2.00-3.00   sec  1.80 GBytes  15.4 Gbits/sec    0   3.05 MBytes       
[  5]   3.00-4.00   sec  1.80 GBytes  15.5 Gbits/sec    0   3.05 MBytes       
[  5]   4.00-5.00   sec  1.77 GBytes  15.2 Gbits/sec    0   3.05 MBytes       
[  5]   5.00-6.00   sec  1.67 GBytes  14.3 Gbits/sec  172   2.65 MBytes       
[  5]   6.00-7.00   sec  1.62 GBytes  13.9 Gbits/sec    0   2.79 MBytes       
[  5]   7.00-8.00   sec  1.76 GBytes  15.2 Gbits/sec  163   2.62 MBytes       
[  5]   8.00-9.00   sec  1.79 GBytes  15.4 Gbits/sec    0   2.69 MBytes       
[  5]   9.00-10.00  sec  1.79 GBytes  15.4 Gbits/sec    0   2.70 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  17.6 GBytes  15.1 Gbits/sec  335             sender
[  5]   0.00-10.00  sec  17.6 GBytes  15.1 Gbits/sec                  receiver
iperf3 bidir
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][TX-C]   0.00-1.00   sec  1.28 GBytes  11.0 Gbits/sec    0   3.11 MBytes       
[  7][RX-C]   0.00-1.00   sec   417 MBytes  3.50 Gbits/sec                  
[  5][TX-C]   1.00-2.00   sec  1.34 GBytes  11.5 Gbits/sec    0   3.11 MBytes       
[  7][RX-C]   1.00-2.00   sec   457 MBytes  3.83 Gbits/sec                  
[  5][TX-C]   2.00-3.00   sec  1.15 GBytes  9.91 Gbits/sec  177   2.88 MBytes       
[  7][RX-C]   2.00-3.00   sec   459 MBytes  3.85 Gbits/sec                  
[  5][TX-C]   3.00-4.00   sec  1.32 GBytes  11.3 Gbits/sec    0   2.92 MBytes       
[  7][RX-C]   3.00-4.00   sec   413 MBytes  3.46 Gbits/sec                  
[  5][TX-C]   4.00-5.00   sec  1.29 GBytes  11.0 Gbits/sec    0   2.94 MBytes       
[  7][RX-C]   4.00-5.00   sec   525 MBytes  4.40 Gbits/sec                  
[  5][TX-C]   5.00-6.00   sec  1.11 GBytes  9.54 Gbits/sec    0   2.99 MBytes       
[  7][RX-C]   5.00-6.00   sec   692 MBytes  5.80 Gbits/sec                  
[  5][TX-C]   6.00-7.00   sec  1.24 GBytes  10.6 Gbits/sec    0   3.03 MBytes       
[  7][RX-C]   6.00-7.00   sec   577 MBytes  4.84 Gbits/sec                  
[  5][TX-C]   7.00-8.00   sec  1.27 GBytes  10.9 Gbits/sec    0   3.03 MBytes       
[  7][RX-C]   7.00-8.00   sec   518 MBytes  4.34 Gbits/sec                  
[  5][TX-C]   8.00-9.00   sec  1.35 GBytes  11.6 Gbits/sec    0   3.03 MBytes       
[  7][RX-C]   8.00-9.00   sec   444 MBytes  3.73 Gbits/sec                  
[  5][TX-C]   9.00-10.00  sec  1.35 GBytes  11.6 Gbits/sec    0   3.03 MBytes       
[  7][RX-C]   9.00-10.00  sec   454 MBytes  3.81 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-10.00  sec  12.7 GBytes  10.9 Gbits/sec  177             sender
[  5][TX-C]   0.00-10.00  sec  12.7 GBytes  10.9 Gbits/sec                  receiver
[  7][RX-C]   0.00-10.00  sec  4.84 GBytes  4.16 Gbits/sec  157             sender
[  7][RX-C]   0.00-10.00  sec  4.84 GBytes  4.16 Gbits/sec                  receiver

Comparison

Feature Aquantia AQC107 HP NC552SFP Intel X520-DA1 Mellanox MCX311A-XCAT EN Solarflare SFN5122F
Ports 1 2 1 1 2
Port Type Ethernet SFP+ SFP+ SFP+ SFP+
Port Speed 100Mb/1GbE/2.5GbE/5GbE/10GbE 1GbE/10GbE 1GbE/10GbE 1GbE/10GbE 1GbE/10GbE
PCIe PCIe 3.0 x4 PCIe 2.0 x8 PCIe 2.0 x8 PCIe 3.0 x4 PCIe 2.0 x8
SR-IOV Windows Only1 Not Working2 Windows Only1a
Max VFs per Port* 32 63 63 127
  • * May not be correct if I couldn't get it working.
  • 1 Linux support seems to have been dropped. I'm sure someone could get it working on newer versions of Linux, but I couldn't on Debian 11.
    • 1a The `sfc_siena` module has replaced `sfc` on this series, and the utilities don't work anymore.
  • 2 I tried following this guide, but it still didn't work.

Conclusion

Overall it’s probably the best card with fully supported SR-IOV you can get for under US$50.

I'm sorry about the ads, I don't like them either.
If I helped you please buy me a croissant, so I can consider removing the ads.

© Stephen Horvath 2023