Fixing ixgbe unsupported SFP+ or QSFP module type was detected

CentOS 7.6 - 3.10.0-957.27.8.2.g295089a.el7.x86_64

A server was not able to detect a new SFP module that was inserted. Digging into the kernel logs, the kernel had previously complained about this slot:

~]# lspci -vvv | grep -i net
3b:00.0 Ethernet controller: Intel Corporation Ethernet Controller 10G X550T (rev 01)
3b:00.1 Ethernet controller: Intel Corporation Ethernet Controller 10G X550T (rev 01)
5e:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
Subsystem: Intel Corporation Ethernet Server Adapter X520-2
5e:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
Subsystem: Intel Corporation Ethernet Server Adapter X520-2
d8:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
Subsystem: Intel Corporation Ethernet Server Adapter X520-2
d8:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
Subsystem: Intel Corporation Ethernet Server Adapter X520-2

~]# grep 'd8:00.1' /var/log/message
Jan 9 16:01:21 localhost kernel: pci 0000:d8:00.1: VF(n) BAR0 space: [mem 0xfba00000-0xfbafffff 64bit pref] (contains BAR0 for 64 VFs)
Jan 9 16:01:21 localhost kernel: pci 0000:d8:00.1: VF(n) BAR3 space: [mem 0xfb900000-0xfb9fffff 64bit pref] (contains BAR3 for 64 VFs)
Jan 9 16:01:21 localhost kernel: pci 0000:d8:00.1: Signaling PME through PCIe PME interrupt
Jan 9 16:01:24 localhost kernel: ixgbe 0000:d8:00.1: failed to load because an unsupported SFP+ or QSFP module type was detected.
Jan 9 16:01:24 localhost kernel: ixgbe 0000:d8:00.1: Reload the driver after installing a supported module.

If the new SFP is supported, try reloading the kernel module. If your connection to the server relies on this adapter, keep in mind that the module might fail to load and you may lose your connection. Worse yet (and it happened to me on a CentOS 7.4 with a Intel 82599ES card), your kernel could crash and your host will need to reboot.

rmmod ixgbe; modprobe ixgbe; service network restart

If the SFP still doesn't work, you can try defining the option allow_unsupported_sfp=1 for the ixgbe kernel module:

modprobe ixgbe allow_unsupported_sfp=1
lsmod | grep ixgbe

Set automatic loading at startup.

cat >>/etc/rc.d/rc.local <<EOF

# for ixgbe
rmmod ixgbe
modprobe ixgbe allow_unsupported_sfp=1
EOF

chmod +x /etc/rc.d/rc.local
reboot

The ifcfg config file may be lost and needs to be reconfigured.

~]# uuidgen enp216s0f0
63faac61-c764-44ba-8b28-030e56778d5c

~]# vi /etc/sysconfig/network-scripts/ifcfg-enp216s0f0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp216s0f0
UUID=63faac61-c764-44ba-8b28-030e56778d5c
DEVICE=enp216s0f0
BOOTPROTO=none
ONBOOT=yes
SLAVE=yes
MASTER=bond2

~]# service network restart
Restarting network (via systemctl): [ OK ]