Centos 7.6 only recognize 1 82599 network adaptor

I installed 2 hp 560+ 10G network card in hp380 G9 server. Each adaptor with 2 ethernet ports.
I download the 82599 driver from intel website. But only one card is recognized and 2 ports(ens1f0 and ens1f1) works. I can't see another 2 ports.


[root@localhost ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:36:f0:01:aa  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.66.12.18  netmask 255.255.255.0  broadcast 10.66.12.255
        inet6 fe80::4175:c632:2578:157d  prefixlen 64  scopeid 0x20<link>
        ether 38:63:bb:43:1a:50  txqueuelen 1000  (Ethernet)
        RX packets 446913  bytes 57561916 (54.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3496  bytes 554526 (541.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  

eno2: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 38:63:bb:43:1a:51  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 17  

eno3: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 38:63:bb:43:1a:52  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  

eno4: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 38:63:bb:43:1a:53  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 17  

ens1f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.123.18  netmask 255.255.255.0  broadcast 192.168.123.255
        inet6 fe80::1ff0:64b:710:e106  prefixlen 64  scopeid 0x20<link>
        ether 38:ea:a7:8f:f8:bc  txqueuelen 1000  (Ethernet)
        RX packets 8127708  bytes 12303590356 (11.4 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 218214  bytes 14436082 (13.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens1f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.124.18  netmask 255.255.255.0  broadcast 192.168.124.255
        inet6 fe80::4290:e571:3aeb:5965  prefixlen 64  scopeid 0x20<link>
        ether 38:ea:a7:8f:f8:bd  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 108  bytes 17240 (16.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 74  bytes 6346 (6.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 74  bytes 6346 (6.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:90:05:d2  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]#

[root@localhost ~]# lspci|grep 82599
05:00.0 Ethernet controller: Intel(R) 82599 10 Gigabit Dual Port Network Connection (rev 01)
05:00.1 Ethernet controller: Intel(R) 82599 10 Gigabit Dual Port Network Connection (rev 01)
[root@localhost ~]# 
[root@localhost ~]# dmesg|grep SFP
[    4.931854] ixgbe 0000:05:00.0 eth0: MAC: 2, PHY: 19, SFP+: 6, PBA No: G43260-007
[   11.774819] ixgbe 0000:05:00.0 ens1f0: detected SFP+: 6
[  440.820131] ixgbe 0000:05:00.0 eth0: MAC: 2, PHY: 19, SFP+: 6, PBA No: G43260-007
[  441.215773] ixgbe 0000:05:00.0 ens1f0: detected SFP+: 6
[ 2975.997637] ixgbe 0000:05:00.1 ens1f1: detected SFP+: 5
[root@localhost ~]# 

eno0 and eno4 is the original 1G eth ports.

You are talking about these two cards, right?

And, this card "does not appear to be working?"

Is that right? @kiss365

The first thing to do is to verify the hardware is ok.

If you have one of the add-in cards working, then remove that card and put the identical one in the same slot. Does that card work too? If so, we know that both cards are healthy.

Also, I would say that, if there are on-board 1GB network interfaces, go into the BIOS and disable them if you can. The HP 380 w/Centos might support 4 interfaces but not 6 interfaces.

A few things come to mind:

  1. Does lspci | grep -i ethernet show both physical adapters, or only one 82599 controller?
  2. What is the output of ip link show and ethtool -i ens1f0 / ethtool -i ens1f1?
  3. Since you're using CentOS 7.6, verify that the installed ixgbe driver version supports all ports on the card. Sometimes older driver/firmware combinations detect only part of the hardware.
  4. Check the server BIOS and PCIe configuration to ensure both adapters are enabled and properly initialized.
  5. Review dmesg | grep -i ixgbe and dmesg | grep -i 82599 for any initialization errors.

If each card has two ports, I would expect to see four interfaces in total. The first step is confirming whether the operating system can see both PCI devices. If lspci only reports one adapter, the issue may be hardware, BIOS, firmware, or PCIe related rather than a Linux network configuration problem.

Could you share the output of:


lspci | grep -i ethernet
ip link show
dmesg | grep -i ixgbe

That should help narrow down where the second adapter is disappearing.

@useriphonehamza

Why would lspci show “one 82599 controller” instead of two PCI functions on a dual-port 82599 card?