Octet

What are the symptoms of a duplex mismatch, and which side shows which counters?

Show the answer

Say this first

The link stays up and ping looks fine, but throughput collapses under load. The half-duplex side stops when it receives while transmitting, so it counts collisions and late collisions. The full-duplex side transmits whenever it wants and receives the frames the other side aborted, so it counts CRC errors and runts. The usual cause is one side hard-set to 100/full and the other left on auto, which then falls back to half duplex.

Go deeper

Why it happens

Autonegotiation only works when both ends take part. A port hard-set to 100/full does not negotiate. The auto side can still sense the speed from the signal, but it cannot learn the duplex, so it falls back to half duplex.

Counters

SideCounters that climb
Half duplexcollisions, late collisions
Full duplexCRC, runts, input errors

A late collision is one detected after the first 64 bytes. On a correct half-duplex segment it never happens, so late collisions mean a duplex mismatch or a cable beyond specification.

Symptoms

Light traffic such as ping works. Bulk transfers drop to a fraction of the link speed because every lost frame costs a TCP retransmission. When both ends run CDP, Cisco logs %CDP-4-DUPLEX_MISMATCH.

Fix

Set both ends to auto, which is the preferred choice, or hard-set both ends identically. Never one of each.

Traps

  • Hard-setting only your side to "fix" negotiation. Hard-setting one side is exactly what creates a mismatch.
How did you do?