100Mb Half Duplex problem between Cisco switch and Linux system

Today I ran into a weird scenario where a Linux system’s NIC would set itself to 100Mb half duplex regardless whether the device and NIC was manually configured to operate at full duplex. After strolling through Cisco’s website

Troubleshooting Cisco Catalyst Switches to NIC Compatibility Issues

I found out that the problem usually relies on the NIC. Despite both the switch and NIC have been manually set to 100 Full duplex, there is often times when the NIC still runs auto-negotiation in the background.

Autonegotiation issues can result from nonconforming implementation, hardware incapabilities, or software defects. When NICs or vendor switches do not conform exactly to the IEEE specification 802.3u, problems can result. Hardware incompatibility and other issues can also exist as a result of vendor-specific advanced features, such as autopolarity or cable integrity, which are not described in IEEE 802.3u for 10/100 Mbps autonegotiation. Generally, if both the NIC and the switch adhere to IEEE 802.3u autonegotiation specifications and all additional features are disabled, autonegotiation must properly negotiate speed and duplex, and no operational issues exist.

To resolve this problem, I had to manually set the NIC to turn off auto negotiation. Once that was done. The problem went away.

ethtool is the only method I have explored.

To turn off auto negotiation run:

ethtool -s ethX autoneg off
Related Posts with Thumbnails

About the Author

Alfred Tong
Author and owner of this blog. A Networking enthusiast, full time networking and systems Engineer. Generally curious about all things IT.Certifications: GIAC GSEC, CCNP-S, CCNP, CCSP, CCDP, CCNA, RHCE, JNCIA - FWV