-g –show-ringQueries the specified ethernet device for rx/tx ring parameter information.
-G –set-ringChanges the rx/tx ring parameters of the specified ethernet device.
Most of the time incrementing the value of rx_crc_errors means the problem is in Layer-1 of the networking model.
When a packet is received at the interface, it goes through a data integrity check which is called cyclic redundancy check. If the packet fails in that check, it is marked as rx_crc_errors.
The switch was forcing the NIC to operate in half-duplex mode. Fixing the switch to tell the NIC to operate in full-duplex mode have resolved the issue.
Diagnostic Steps
Check ethtool -S output and find where are the drops and errors.
$ ethtool -S <Interface_name> | grep -i error
rx_error_bytes: 0
tx_error_bytes: 0
tx_mac_errors: 0
tx_carrier_errors: 0
rx_crc_errors: 9244 >>>>>>
rx_align_errors: 0
Check the numbers corresponding to rx_crc_errors.
ethtool p1p1
Settings for p1p1:
Supported ports: [ FIBRE ]
Supported link modes: 10000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: 10000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
显示了 p1p1 的接口类型,连接模式,速率等等信息,以及当前是否连接了网线(如果是网线 Supported ports 就是 TP,如果是光纤则显示 Fiber),这里例举下 3 个重要关键词:
Supported ports: [FIBRE]
Speed: 10000Mb/s
Link detected: yes