No relevant resource is found in the selected language.

This site uses cookies. By continuing to browse the site you are agreeing to our use of cookies. Read our privacy policy>

Reminder

To have a better experience, please upgrade your IE browser.

upgrade

Ifconfig command cannot display all ports of a NIC

Publication Date:  2016-11-02 Views:  163 Downloads:  0
Issue Description

An RH2288H V3 server has an Intel 82599 NIC with two 10GE ports. In CentOS 6.5 on the server, the ifconfig -a command displays only one network port but the lspci command displays two network ports.

Figure 1 ifconfig -a command output

#ifconfig -a |grep -i eth

eth1 link encap:Ethernet HWaddr 20:0B:C7:9B:B1:05


Figure 2 lspci command output

#lspci -i eth

02:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)

02:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)

Handling Process

1)     Run the dmesg |grep -i unsupported sfp command to check whether the SFP module matches the NIC. If the SFP module does not match the NIC, the NIC cannot be initialized.

If the command output contains "unsupported SFP+ module", the SFP module does not match the NIC. Replace the SFP module.

 

Figure 3 Checking whether the SFP module matches the NIC

#dmesg |grep -i "unsupported sfp"

2)     Run the ethtool -i ethx (x indicates the network port ID) command to determine the bus number of the network port that cannot be identified.

The command output shown in Figure 4 indicates that the eth0 network port cannot be identified and its bus number is 02:00.0 and that the eth1 network port can be identified and its bus number is 02:00.1.

In the command output, you also need to check the NIC driver version. If the driver version is much earlier than the latest version released on the Intel website, upgrade the driver.

 

Figure 4 ethtool command output

#ethtool -i eth0

Cannot get driver information: No such device

#ethtool -i eth1

driver: ixgbe

version:3.15.1-k

firmware-version:0x800003df

bus-info:0000:02:00.1

supports-statistics:yes

supports-test:yes

supports-eeprom-access:yes

supports-register-dump:yes

supports-priv-flags:no

3)     Run the dmesg |grep -i 02:00.0 command to check NIC initialization information.

The command output shown in Figure 5 indicates that the network port with the bus number 02:00.0 is managed by the igb_uio driver provided by the dpdk tool instead of the ixgbe driver.

Figure 5 Network port with the bus number 02:00.0 managed by the igb_uio driver

ixgbe 0000:02:00.1:complete

ixgbe 0000:02:00.0:PCI INT A disabled

igb_uio 0000:02:00.0: PCI INT A ->GSI 42 (level,low) ->IRO 42

igb_uio 0000:02:00.0: setting latency timer to 64


4)     Run the lsmod |grep -i uio command to check whether the uio driver integrated into the dpdk tool has been loaded.

l  If the uio driver has been loaded, go to step 6.

l  Otherwise, go to step 5.

 

Figure 6 lsmod command output

 #lsmod |grep -i uio

igb_uio 4945 0

uio         10462 1 igb_uio

5)     Uninstall the igb_uio and uio drivers, reload the ixgbe driver, and run the ifconfig -a command to check whether the eth0 and eth1 network ports can be identified.

If both network ports can be identified, no further action is required.

 

Figure 7 Uninstalling the igb_uio and uio drivers and reloading the ixgbe driver

#rmmod  igb_uio

#rmmod uio

#rmmod ixgbe

#modprobe ixgbe

#ifconfig -a |grep -i eth

eth0 Link encap: Ethernet HWaddr 20:0B:C7:9B:B1:04

eth1 Link encap: Ethernet HWaddr 20:0B:C7:9B:B1:05

6)     Run the cat /etc/rc.local command to check whether the startup script has loaded the uio and igb_uio drivers.

If the command output contains "modprobe", "insmod", or like words, the startup script has loaded the drivers and the dpdk tool has been installed in the service system.

 

Figure 8 Viewing rc.local file content


 

7)     Check whether the dpdk tool can correctly identify the network ports whose bus numbers are 02:00.0 (using the igb_uio driver provided by the dpdk tool instead of the ixgbe driver) and 02:00.1 (using the ixgbe driver provided by the kernel instead of the igb_uio driver). No corrective action is required if the dpdk tool is used to meet service requirements.

 

Figure 9 Viewing network port information by using the dpdk tool


Root Cause

The ifconfig -a command cannot display an ethx network port (x indicates the network port ID) because the dpdk tool is used to manage the network port. No corrective action is required if the dpdk tool is used to meet service requirements and no hardware fault occurs.

Suggestions

If the ifconfig -a command cannot display all 10GE ports of a NIC, check the following to analyze the cause:

SFP module

NIC driver version

Service applications

END