Description

The user reported they were unable to fetch ISIS interface status.

Symptoms

Polling OID: 1.3.6.1.2.1.138.1.6.1.1.2 for down ISIS interface status return "nan" value.
image.png
 

Solution

Earlier, the user was polling OID: 1.3.6.1.2.1.138.1.6.1.1.2 which would give equivalent information of "show isis adjacency" but this is not the correct way to poll ISIS interface status.

"show isis adjacency" holds information about the adjacency formed between the neighbor. If ISIS is up on both routers and they accept the hello messages for adjacency, this entry gets populated in this table.

If you poll for this interface using OID: 1.3.6.1.2.1.138.1.6.1.1.2, it will return value from below

Syntax:INTEGER
down(1) --------------->> Problem between the links, interface down, etc.
initializing(2) --------->> When routers are negotiating hellos
up(3)      --------------->> When adjacency is UP
failed(4)
If, due to some problem between the links, isis interface goes down on the remote router, then isis adjacency will also go down. It will reflect in the "show isis adjacency" table as being down until the hold timer expires and will return the value "down(1)" if the user is polling. Once the timer is expired, the entry will be deleted, and if the user is still polling the down interface, it will return the value as "nan" (not a number).

Below is an example.
image.png
So using the above OID for isis interface status polling is not reliable.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

There is another MIB OID: isisCircExistState  (1.3.6.1.2.1.138.1.3.2.1.4). This MIB tells you whether the circuit is serviceable or not (link state of interface). This works only when the line protocol is down. This MIB is equivalent to "show isis interface"

Description:
The existence state of this circuit. Setting the state to 'notInService' halts the generation and processing of IS-IS protocol PDUs on this circuit. Setting the state to destroy will also erase any configuration associated with the circuit. Support for 'createAndWait' and 'notInService' is not required.

Return Value:
active(1)
notInService(2)
notReady(3)
createAndGo(4)
createAndWait(5)
destroy(6)
Here we need to focus on only 2 values: "active(1)" and "notInService(2)"

******************* Below is an example: *********************

We will focus on interface ae200

++++++++++++ Topology +++++++++++++++
R1 <------ ae200 -------> R2

++++++++++++ ISIS adjacency UP for ae200 +++++++++++++++

>> ISIS adjacency and interface both are UP.
>> MIB is returning value "active(1)" for ae200 SNMP index: 1082
R1> show interfaces extensive | match 1082 | match snmp
  Logical interface ae200.0 (Index 339) (SNMP ifIndex 1082) (Generation 174)

R1> show interfaces terse | match ae200
xe-2/0/0.0              up    up   aenet    --> ae200.0
ae200                   up    up
ae200.0                 up    up   inet     129.134.32.19/31

R1> show isis adjacency | match "Inter|ae200"
Interface             System         L State        Hold (secs) SNPA
ae200.0               jtac-ptx10002-60c-r2005-re0 2 Up       26

R1> show isis interface | match "data|level|ae200"
IS-IS interface database:
Interface             L CirID Level 1 DR        Level 2 DR        L1/L2 Metric
ae200.0               2   0x1 Disabled          Point to Point        100/400

R1> show snmp mib walk 1.3.6.1.2.1.138.1.3.2.1.4 | match 1082
isisCircExistState.1082 = 1
++++++++++++ Disable interface ae200 on remote router R2 +++++++++++++++

>> We can see on R1 interface ae200 is in "up down" state. Line protocol is "down". This can be due to any reason like R2 router down, R2 FPC hard error or hard down or pfe disable or config disable, optics issue, cable issue etc which brings down line protocol.
>> ISIS adjacency went down and the entry will be removed after hold time expire.
>> ISIS interface went down just after R2 interface was disabled.
>> MIB is returning value "notInService(2)" for down ae200 interface.
R1> show interfaces terse | match ae200                   
xe-2/0/0.0              up    down aenet    --> ae200.0
ae200                   up    down
ae200.0                 up    down inet     129.134.32.19/31

R1> show isis adjacency | match "Inter|ae200"                   
Interface             System         L State        Hold (secs) SNPA
ae200.0               jtac-ptx10002-60c-r2005-re0 2 Down      0

R1> show isis adjacency | match "Inter|ae200"   
Interface             System         L State        Hold (secs) SNPA
ae200.0               jtac-ptx10002-60c-r2005-re0 2 Down      0

R1> show isis adjacency | match "Inter|ae200" | refresh 2
---(refreshed at 2024-05-21 12:05:28 IST)---
Interface             System         L State        Hold (secs) SNPA
---(refreshed at 2024-05-21 12:05:30 IST)---
Interface             System         L State        Hold (secs) SNPA

R1> show snmp mib walk 1.3.6.1.2.1.138.1.3.2.1.4 | match 1082   
isisCircExistState.1082 = 2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 

JTAC has suggested the user to use MIB: 1.3.6.1.2.1.138.1.3.2.1.4 for ISIS interface status and highlighted the importance of line protocol status.

 

 
 

Modification History

2024-05-21 : Article Created