X15 with a Broadcom P210p NIC

Trying to figure out if swapping the default Intel X550-T2 Dual 10G Ethernet for the Broadcom P210p 10Gb SFP+ Dual Port NIC will work with Unraid 7.3.1 and if LACP is configurable?

My understanding is that the driver for the Broadcom card is baked into the Linux kernel used for Unraid 7.3, so it should be plug and play. For LACP my understanding is that should also work, but I am not an Unraid expert. I think you configure that within the Unraid networking settings, not on the card. It’s a pretty mature standard, so should also “just work”, but you might come across a configuration quirk in your network. If it’s not obviously named, look for 802.3ad.

Looks like 45Homelabs R&D confirmed it will work during my build.

1 Like

Just out of curiosity, I hear from lots of people to choose Intel for NICs so why switch, does it have better features or something? (Genuinely curious so I know what to look for in the future.)

1 Like

It has SFP+ ports while the stock card has ethernet RJ45 ports.

2 Likes

Ah, yep that would be a good reason. I have a couple of servers that I have directly connected via DAC.

Follow-up now that the X15 is here and configured.

The Broadcom P210p dual-port 10Gb SFP+ NIC is working fine in Unraid 7.3.1. Unraid detected both ports using the bnxt_en driver:

eth0 = Broadcom BCM57412 10Gb SFP+
eth1 = Broadcom BCM57412 10Gb SFP+
eth2 = onboard Intel I225-V 2.5GbE

Both Broadcom ports linked at 10Gb over DAC to my UniFi Aggregation switch. I configured them as bond0 in Unraid using 802.3ad / LACP with br0 on top of the bond. Jumbo frames are enabled at MTU 9000 and validated with:

ping -M do -s 8972 <known-jumbo-capable-host>

The only initial quirk was that Unraid included the onboard 2.5GbE NIC in the bond. I removed eth2 and left only eth0 eth1 as bond members.

Final working layout:

br0
└── bond0
    ├── eth0  Broadcom P210p port 1, 10Gb
    └── eth1  Broadcom P210p port 2, 10Gb

bond mode: 802.3ad / LACP
MTU: 9000
Unraid IP: static LAN address
IPMI/BMC: separate dedicated management port with its own static LAN address

LACP itself works normally. /proc/net/bonding/bond0 shows both ports in the same aggregator, no churn, and both links at 10000 Mbps.

One additional tuning item: Unraid defaulted the LACP transmit hash policy to layer2. I wanted layer3+4, which I could set live with:

echo layer3+4 > /sys/class/net/bond0/bonding/xmit_hash_policy

However, Unraid did not persist that setting from network.cfg, and a modprobe.d bonding option did not appear to apply on reboot either. My workaround was to add a small delayed boot hook to /boot/config/go:

# Set LACP bond0 transmit hash policy after Unraid networking starts
(
  sleep 20
  if [ -e /sys/class/net/bond0/bonding/xmit_hash_policy ]; then
    echo layer3+4 > /sys/class/net/bond0/bonding/xmit_hash_policy
  fi
) &

After reboot, the final verified state is:

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer3+4 (1)
LACP rate: slow
Number of ports: 2
Slave Interface: eth0  Speed: 10000 Mbps
Slave Interface: eth1  Speed: 10000 Mbps
Actor Churn State: none
Partner Churn State: none

I left LACP rate at slow. Attempting to switch it live to fast returned “Device or resource busy”, and since it does not affect throughput, I did not pursue it further.

So yes: the Broadcom P210p works with Unraid 7.3.1, DAC links work, LACP works, jumbo frames work, and the only real workaround was persisting the layer3+4 transmit hash policy.

1 Like