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>Search


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


The Intel 82580 NIC Loses Packets

Publication Date:  2015-06-25 Views:  249 Downloads:  0
Issue Description
Hardware configuration:
An RH2285 configured with 12 hard disks
One LSISAS1068E controller card and one Intel 82580 NIC
S5328 switch

Software configuration:
Basic input/output system (BIOS) version: V036
Baseboard management controller (BMC) version: 2.06
Operating system (OS): SUSE11 SP1 64-bit


When the RH2285 server captures image packets over ports on the switch according to port mirroing, packets are lost, as shown in Figure 1.

Figure 1 Packet loss of the Intel 82580 NIC on the RH2285

Handling Process
1.  Run the ethtool -S eth2_1 command on the OS to check whether packet loss occurs on the NIC driver. Figure 2 shows the command output.

Figure 2 Checking whether packet loss occurs on the NIC driver

2.  Run the ethtool -G eth2_1 tx 4096 command on the OS to send loopback parameters from the NIC.

3.  Run the ethtool -G eth2_1 rx 4096 command on the OS to set the NIC to receive loopback parameters.

4.  The NIC send and receive parameters are the default values (tx: 512; rx: 512). After the NIC ring buffer parameter 4096 is adjusted, no packet is lost, and data transmission is normal.
Root Cause
If the parameter (default value: 512) of the NIC ring buffer is set to a small value, the ring buffer is fully filled with after the CPU disables interruption, and new packets cannot be received in the buffer. Set the ring buffer parameter to a large value to solve this problem.

After the NIC ring buffer parameter 4096 is adjusted, no packet is lost, and data transmission is normal. For details, see the information of Process .
NIC data sending and receive process

A NIC has a buffer for storing sent and received data. When receiving data, the NIC generates an interrupt and stores data in the internal buffer. The CPU moves the data to the CPU waiting queues. This is the data receiving process. The socket buffer and internal buffer are used for sending data. Each process has a socket buffer for storing process data. When data is sent, the socket buffer copies its data to the NIC internal buffer. The NIC sends data in the internal buffer by using the bit stream.