Description

Auto-negotiation issue on FE/GE interfaces can cause packet loss on both sides, and the FIFO error statistics are increasing, as shown with show interface ge-x/x/x extensive

Symptoms

Sometimes packet loss may be observed on ethernet interfaces, even when the interface is not congested. By using "show interface ge-x/x/x extensive", the MAC FIFO error statistics are increasing on the interface:

lab@router> show interfaces extensive fe-0/0/0  
Physical interface: fe-0/0/0, Enabled, Physical link is Up
Interface index: 128, SNMP ifIndex: 79, Generation: 11
Description: coloc uplink
Link-level type: Ethernet, MTU: 1518, Speed: 100mbps, Loopback: Disabled, Source filtering: Disabled, Flow control: Enabled
<...>
  MAC statistics:                      Receive         Transmit
    Total octets                    9385473299      20196564932
    Total packets                     17112044            21398
    Unicast packets                   16888990         42696389
    Broadcast packets                   158996           401151
    Multicast packets                    64059             4121
    CRC/Align errors                         0                0 
    FIFO errors                              0            43518
    MAC control frames                       0                0
    MAC pause frames                         0                0
    Oversized frames                         0
    Jabber frames                            0
    Fragment frames                          0
    VLAN tagged frames                       0
    Code violations                          0
At the same time, the GE auto-negotiation status is "Incomplete" or "No-autonegotiation":
   Autonegotiation information:
      Negotiation status: No-autonegotiation, Link partner status: Ok, Link partner: Unknown, Flow control: None
And the router is experiencing some packet loss:
root@lab# run ping xxxxxx rapid count 1000
PING xxxxxx (xxxxxx): 56 data bytes
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!.!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!.!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!.!!!!!!
!!!!.!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!.!!!!!!!!!!
--- xxxxxx ping statistics ---
1000 packets transmitted, 983 packets received, 1% packet loss
round-trip min/avg/max/stddev = 0.470/0.955/15.911/1.691 ms

Solution

In the JUNOS documentation, an increase in the MAC FIFO error statistics is documented as a "probable" hardware issue:

FIFO error—Number of FIFO errors that are reported by the ASIC on the PIC. If this value is ever nonzero, the PIC is probably malfunctioning.
It is adviced to first check the auto-negotiation issue before replacing the PIC. For example, if auto-negotiation is used between two routers, disable autogegotiation on both sides and set the link speed and mode manually. By default, auto-negotiation is enabled on all ethernet interfaces.

Disable auto-negotiation for GE interfaces:
link-mode full-duplex;
gigether-options {
    no-auto-negotiation;
}

Diable auto-negotiation for FE interfaces:
lab@m10i-re0# show interfaces fe-1/1/0
speed 100m;
link-mode full-duplex;

Note that on FE interfaces, both speed and link-mode are required to disable auto-negotiation. If only one of them is set, the following log message will be generated and this port is still running as auto-negotiation:

Nov 6 16:27:50 m10i-re0 dcd[14699]: Speed and linkmode duplex settings are mutually required Setting ignored, reverting to using auto-negotiated speed/link mode.