
= IS-IS Discovery
:description: Learn more about IS-IS link discovery in {page-component-title} topology mapping, including supported OIDs.

IS-IS links are found in the `isisISAdjTable` (defined in the https://datatracker.ietf.org/doc/html/rfc4444[ISIS-MIB] module).
This table has the information needed to find the Adjacency Intermediate System.
Each entry in this SNMP MIB table represents a unidirectional link from the `Intermediate-System` that is queried to the Adjacent Intermediate Systems running IS-IS and "peering" with the source router.

The information about IS-IS is stored in two tables: `isisElement` and `isisLink`.
`isisElement` contains the `ISISSysID`, a unique identifier of the `Intermediate-System` (the router's name in ISO protocols).

If two routers--IS-A and IS-B--support ISIS-MIB, enlinkd creates two link entries in {page-component-title}: one from IS-A to IS-B (from IS-A's `adjTable`), and the complementary link from IS-B to IS-A (from IS-B's `adjTable`).

You can find generic information about the IS-IS link discovery process in the IS-IS Information box on any device's Node Detail page.

== IS-IS Topology Updater

The IS-IS Topology Updater consolidates IS-IS data and provides the IS-IS OnmsTopology.
Only full bidirectional connections between two IS-IS-supported devices become edges in the topology.
For example, Node A and Node B are connected by an edge if, and only if, there is an IS-IS link in Node A to Node B, and vice versa.

IS-IS links are represented in the ISIS-MIB as in the <<is-is-oids, table of supported OIDs>>.

Information gathered from supported OIDs is stored in the following database tables:

.Database tables related to IS-IS discovery
image::enlinkd/is-is-database.png["Network diagram depicting database tables that are used in IS-IS discovery"]

[[is-is-oids]]
== Supported OIDs

The following OIDs are supported for the discovery and construction of the IS-IS network topology.
The IS-IS Discovery Collector collects them:

[caption=]
.Supported OIDs from the `ISIS-MIB` module
[cols="1,3,1"]
|===
| Name  | Description   | OID

| isisSysID
| ID for this `Intermediate-System`.
This value is appended to each of the area addresses to form the Network Entity Titles.
The derivation of a value for this object is implementation-specific.
Some implementations may automatically assign values and not permit an SNMP write, while others may require the value to be set manually. +
Configured values must survive an agent reboot.
| .1.3.6.1.2.1.138.1.1.1.3.0

| isisSysAdminState
| Administrative state of this `Intermediate-System`.
Setting this object's value to "on" enables the `Intermediate-System`.
Configured values must survive an agent reboot.
| .1.3.6.1.2.1.138.1.1.1.8.0

| isisSysObject
| isisSysObject
| .1.3.6.1.2.1.138.1.1.1

| isisCircIfIndex
| Value of `ifIndex` for the interface to which this circuit corresponds.
You cannot modify this object after creation.
| .1.3.6.1.2.1.138.1.3.2.1.2

| isisCircAdminState
| Administrative state of the circuit.
| .1.3.6.1.2.1.138.1.3.2.1.3

| isisISAdjState
| State of the adjacency.
| .1.3.6.1.2.1.138.1.6.1.1.2

| isisISAdjNeighSNPAAddress
| SNPA address of the neighboring system.
| .1.3.6.1.2.1.138.1.6.1.1.4

| isisISAdjNeighSysType
| Type of the neighboring system.
| .1.3.6.1.2.1.138.1.6.1.1.5

| isisISAdjNeighSysID
| System ID of the neighboring `Intermediate-System`.
| .1.3.6.1.2.1.138.1.6.1.1.6

| isisISAdjNbrExtendedCircID
| 4-byte extended circuit ID learned from the neighbor during three-way handshake, or `0`.
| .1.3.6.1.2.1.138.1.6.1.1.7
|===
