In this article, you will find answers to the following questions:
How can I poll CRC errors and FCS errors on Juniper Networks EX and MX series switches and routers that run Junos OS release 15.1 and later?
How can I find the SNMP interface index for a given interface?
The following OIDs do not work on Junos OS release 15.1 and later:
ifJnxFcsErrors - OID - 1.3.6.1.4.1.2636.3.3.1.1.33
ifJnxCrcErrors - OID - 1.3.6.1.4.1.2636.3.3.1.1.32
The following types of errors may be seen if these OIDs are used while polling for CRC and FCS errors:
No such object
labroot@MX960_RE0> show snmp mib get ifJnxFcsErrors.600 ifJnxFcsErrors.600 No such object labroot@MX960_RE0> show snmp mib get ifJnxCrcErrors.600 ifJnxCrcErrors.600 No such object labroot@MX960_RE0> show snmp mib get ifJnxCrcErrors ifJnxCrcErrors No such object
In the following, no error is given, but there is no expected output either.
labroot@MX960_RE0> show snmp mib walk ifJnxCrcErrors labroot@MX960_RE0> labroot@MX960_RE0> show snmp mib walk ifJnxFcsErrors labroot@MX960_RE0>
Another error from a typo in the command would be similar to the following:
labroot@MX960_RE0> show snmp mib walk ifJnxCrcError Request failed: Could not resolve 'ifJnxCrcError' to an OID
On Junos OS 15.1 and later, the following MIB objects are available in JUNIPER-IF-MIB , which can be used when the above OIDs do not work:
ifJnxInErrors, OID 1.3.6.1.4.1.2636.3.3.1.1.9
Errors: The sum of incoming frame aborts and FCS errors
ifJnxOutErrors, OID 1.3.6.1.4.1.2636.3.3.1.1.24
Errors: The sum of outgoing frame aborts and FCS errors
ifJnxOutHslCrcErrors, OID 1.3.6.1.4.1.2636.3.3.1.1.31
HS Link CRC Errors: The number of CRC errors on the high-speed links between the ASICs responsible for handling router interfaces while transmitting packets
ifJnxInHslCrcErrors, OID 1.3.6.1.4.1.2636.3.3.1.1.15
HS Link CRC Errors: The number of CRC errors on the high-speed links between the ASICs responsible for handling router interfaces while receiving packets
To poll a CRC or FCS error for a specific interface, you would need to know the SNMP interface index (SNMP ifIndex), which can be found in this output:
labroot@MX960_RE0> show interfaces xe-2/1/0 | match "SNMP ifIndex" Interface index: 202, SNMP ifIndex: 600 Logical interface xe-2/1/0.0 (Index 353) (SNMP ifIndex 608)
Then use ifDescr to confirm the interface name and SNMP ifIndex:
ifDescr
labroot@MX960_RE0> show snmp mib get ifDescr.600 ifDescr.600 = xe-2/1/0 labroot@MX960_RE0> show snmp mib get ifDescr.608 ifDescr.608 = xe-2/1/0.0 labroot@MX960_RE0> show snmp mib walk ifDescr | match xe-2/1/0 ifDescr.600 = xe-2/1/0 ifDescr.608 = xe-2/1/0.0
Next we will poll the four OIDs above for the xe-2/1/0 interface, which has SNMP ifIndex 600.
labroot@MX960_RE0> show snmp mib get ifJnxInErrors.600 ifJnxInErrors.600 = 0 <<< there are no errors on this interface, but the result of 0 shows that the command is working. labroot@ MX960_RE0> show snmp mib get ifJnxOutErrors.600 ifJnxOutErrors.600 = 0 labroot@MX960_RE0> show snmp mib get ifJnxOutHslCrcErrors.600 ifJnxOutHslCrcErrors.600 = 0 labroot@MX960_RE0> show snmp mib get ifJnxInHslCrcErrors.600 ifJnxInHslCrcErrors.600 = 0
Here are some additional syntax examples:
labroot@MX960_RE0> show snmp mib walk ifJnxInErrors | match 600 ifJnxInErrors.600 = 0 labroot@MX960_RE0> show snmp mib walk ifJnxInErrors | match "600|608" ifJnxInErrors.600 = 0 ifJnxInErrors.608 = 0 labroot@MX960_RE0> show snmp mib walk 1.3.6.1.4.1.2636.3.3.1.1.24 | match "600|608" ifJnxOutErrors.600 = 0 ifJnxOutErrors.608 = 0 labroot@MX960_RE0> show snmp mib walk ifJnxOutHslCrcErrors | match "600|608" ifJnxOutHslCrcErrors.600 = 0 ifJnxOutHslCrcErrors.608 = 0 labroot@MX960_RE0> show snmp mib get 1.3.6.1.4.1.2636.3.3.1.1.15.600 ifJnxInHslCrcErrors.600 = 0 labroot@MX960_RE0> show snmp mib get 1.3.6.1.4.1.2636.3.3.1.1.15.608 ifJnxInHslCrcErrors.608 = 0
For an interface with incrementing ifJnxInErrors , we can use the following:
ifJnxInErrors
lab@MX960_RE0> show snmp mib get ifJnxInErrors.528 ifJnxInErrors.528 = 2773101335
We can also find the interface with ifDescr , and check further:
lab@MX960_RE0> show snmp mib walk ifDescr | match 528 ifDescr.528 = xe-1/1/0 lab@MX960_RE0>show interfaces xe-1/1/0 extensive | match "Input errors|Errors" Input errors: Errors: 2773694594, Drops: 0, Framing errors: 2773694594, Runts: 0, Policed discards: 0, L3 incompletes: 0, L2 channel errors: 0, L2 mismatch timeouts: 0, FIFO errors: 0, Resource errors: 0 Output errors: Carrier transitions: 1, Errors: 0, Drops: 0, Collisions: 0, Aged packets: 0, FIFO errors: 0, HS link CRC errors: 0, MTU errors: 0, Resource errors: 0 Bit errors 10297 CRC/Align errors 2773694594 0 FIFO errors 0 0 Total errors 2786997582 0 lab@MX960_RE0> show snmp mib get ifJnxInErrors.528 ifJnxInErrors.528 = 2773694594