Skip to main content
  1. Network Articles/
  2. IS-IS Articles/

IS-IS Flooding and LSDB Synchronisation

Table of Contents

IS-IS Flooding and LSDB Synchronisation

IS-IS route computation assumes every router holds the same link state database (LSDB). If even one router keeps stale information, that router picks a different path, and the result is a loop or a black hole.

Two mechanisms keep them in step: flooding, which hands LSPs around, and SNPs (Sequence Numbers PDUs), which compare what each side holds. This article works through what a router does with an LSP it receives, what the SRM and SSN flags are for, and how the machinery differs between point-to-point and broadcast media, checking each against ISO/IEC 10589:2002 and captures from IOS XR.

The life of an LSP itself (origination, periodic refresh, fragmentation, expiry) is covered in IS-IS LSPs and the Link State Database.

The basic flooding rule

Clause 7.3.14.1 states the mechanism: each Intermediate system propagates an LSP to every neighbouring Intermediate system except the one it arrived from, and duplicates are detected and discarded.

Because nothing goes back out of the circuit it came in on, the same LSP does not circulate forever even when the links form a ring. Duplicate detection falls out of the newer/older comparison (7.3.16): an LSP identical to the one already held is not propagated.

What a router does with a received LSP

Clause 7.3.15.1 e) compares the received LSP with the database contents and takes one of three branches.

Received LSPAction
NewerStore it in the database and set SRM on every circuit except the one it arrived on. Clear SRM on the receiving circuit
SameClear SRM on the receiving circuit (this is the acknowledgement)
OlderSet SRM on the receiving circuit, sending the newer copy back, and clear SSN on that circuit

In the “newer” and “same” branches, SSN is set on the receiving circuit only if that circuit is not a broadcast one. That is why an acknowledging PSNP comes back on a point-to-point link and not on a LAN.

Sending the newer copy back when an older one arrives is what makes flooding self-repairing. A router that has fallen behind is pushed the current version by its neighbours.

The newer/older decision runs sequence number, then remaining lifetime of zero, then checksum; it is covered in IS-IS LSPs and the Link State Database.

The SRM and SSN flags

Clause 7.3.15 defines two flags held per LSP, per circuit.

FlagMeaningWhen it clears
SRM (Send Routeing Message)This LSP must be sent on this circuitOn broadcast, as soon as it is transmitted. On point-to-point, when an LSP or an SNP is received
SSN (Send Sequence Numbers)This LSP must be reported in a PSNPAs soon as the PSNP is transmitted

That difference in clearing is exactly what makes the two media behave differently. On point-to-point, an LSP whose SRM stays set is retransmitted every minimumLSPTransmissionInterval (5 seconds, 7.3.15.5) and only stops when a PSNP comes back. Without an acknowledgement it keeps sending.

The standard also names cases where SRM must not be set: an LSP with sequence number zero, and a circuit whose externalDomain is true. An LSP larger than the circuit’s dataLinkBlockSize is not propagated and raises lSPTooLargeToPropagate.

The flags are internal implementation state and do not appear in a listing such as show isis database. IOS XR does record them in the isis process trace buffer, though, so show isis trace all | include UPD_LSP_SET_SRM reads back which LSP had SRM set on which circuit. The lab in this article uses that to check the standard’s wording.

SNPs are used differently on each medium

A CSNP (Complete Sequence Numbers PDU) is a table of contents for the whole LSDB; a PSNP (Partial Sequence Numbers PDU) covers part of it. Both list LSP ID, sequence number, remaining lifetime and checksum in TLV 9 (LSP Entries).

ItemPoint-to-pointBroadcast
CSNPOnly when the adjacency initialises (7.3.15.3 b)The DIS sends one every completeSNPInterval (10 seconds by default)
PSNPAcknowledges a received LSPA non-DIS requests what it lacks (every partialSNPInterval)
If one is lostRetransmit every 5 seconds (7.3.15.5)Noticed at the next periodic CSNP

Point-to-point needs no periodic CSNP because each LSP can be acknowledged individually with a PSNP. There is only one peer, so tracking what was sent and what arrived is enough.

Broadcast has many peers, and acknowledging one at a time would put a PSNP on the wire per router. Instead the DIS distributes the table of contents periodically and whoever is missing something asks for it with a PSNP. The DIS and pseudonodes are covered in IS-IS DIS and Pseudonodes.

Verification on real devices

Test environment

R1 - R2 is point-to-point, and R2 - R3 - R4 form a broadcast LAN. All four are level-2-only in area 49.0001, so one lab covers both media. The LAN has three routers so that two of them are non-DIS.

RouterNETLo0Links
R149.0001.0010.0100.1001.001.1.1.1/32Gi0/0/0/0 10.1.2.1 (p2p)
R249.0001.0020.0200.2002.002.2.2.2/32Gi0/0/0/1 10.1.2.2 (p2p) / Gi0/0/0/0 10.2.0.2 (LAN)
R349.0001.0030.0300.3003.003.3.3.3/32Gi0/0/0/0 10.2.0.3 (LAN)
R449.0001.0040.0400.4004.004.4.4.4/32Gi0/0/0/0 10.2.0.4 (LAN)

The STEPs

STEPOperationWhat it confirms
0Defaults, stable stateNo CSNP on the point-to-point link; the DIS sending periodic CSNPs on the LAN
1Add Loopback1 (172.16.1.1/32) on R1The order in which the LSP travels R1 to R2 to the LAN, and that it is not sent back out of the receiving circuit
2Shut down R1 - R2, add Loopback2 on R1, then bring it back upThe CSNP when the adjacency comes back, detecting what is missing, and resynchronising
3Revert everything (final state)Matches STEP 0

STEP 0: no periodic CSNP on point-to-point

With nothing changed, each link was captured for 10 minutes. The PDU breakdown:

PDUp2p (R1 - R2)LAN (R2 - R3 - R4)
IIH139342
LSP34
CSNP069
PSNP30

Not one CSNP crossed the point-to-point link, and not one PSNP crossed the LAN. That CSNPs are sent on a point-to-point circuit only at initialisation (7.3.15.3 b), and that a non-DIS sends no PSNP while nothing is missing, both show up directly in the counts.

All 69 CSNPs on the LAN came from R2, the DIS, at intervals of 7.5 to 10.0 seconds (mean 8.8). They fall below the 10-second completeSNPInterval default because of the jitter required by clause 10.1.

On the point-to-point link, each LSP sent during those 10 minutes is paired with a PSNP.

STEP 0 p2p: tshark -n -t ad -r isis-flooding-step0-p2p.pcap -Y 'isis.type==20 or isis.type==27'
    7 2026-09-10 20:07:10.374921 52:54:00:ed:a5:21 → 09:00:2b:00:00:05 ISIS LSP 80 L2 LSP, LSP-ID: 0020.0200.2002.01-00, Sequence: 0x00000006, Lifetime:  1200s
    8 2026-09-10 20:07:10.879176 52:54:00:fa:e5:1c → 09:00:2b:00:00:05 ISIS PSNP 52 L2 PSNP, Source-ID: 0010.0100.1001.00
   17 2026-09-10 20:07:42.394397 52:54:00:ed:a5:21 → 09:00:2b:00:00:05 ISIS LSP 107 L2 LSP, LSP-ID: 0040.0400.4004.00-00, Sequence: 0x00000007, Lifetime:  1200s
   18 2026-09-10 20:07:42.898614 52:54:00:fa:e5:1c → 09:00:2b:00:00:05 ISIS PSNP 52 L2 PSNP, Source-ID: 0010.0100.1001.00
  141 2026-09-10 20:16:27.922463 52:54:00:ed:a5:21 → 09:00:2b:00:00:05 ISIS LSP 130 L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000009, Lifetime:  1200s
  142 2026-09-10 20:16:28.426389 52:54:00:fa:e5:1c → 09:00:2b:00:00:05 ISIS PSNP 52 L2 PSNP, Source-ID: 0010.0100.1001.00

A PSNP comes back about half a second after the LSP, in all three pairs. That is the point-to-point acknowledgement, and SRM stays set until it arrives.

Download the STEP 0 point-to-point capture (10 minutes)

Download the STEP 0 LAN capture (10 minutes)

STEP 1: nothing goes back out of the receiving circuit

Loopback1 (172.16.1.1/32) was added on R1 and advertised into IS-IS.

R1 at STEP 1 (excerpt from show running-config)
interface Loopback1
 ipv4 address 172.16.1.1 255.255.255.255
!
router isis 1
 is-type level-2-only
 net 49.0001.0010.0100.1001.00
 log adjacency changes
 address-family ipv4 unicast
 !
 interface Loopback0
  passive
  address-family ipv4 unicast
  !
 !
 interface Loopback1
  passive
  address-family ipv4 unicast
  !
 !
 interface GigabitEthernet0/0/0/0
  point-to-point
  address-family ipv4 unicast
  !
 !
!

Both links were captured at the same time and merged into one file with mergecap. R2 has a different MAC address on each interface, so the source MAC says which side it sent on.

STEP 1: tshark -n -t ad -r isis-flooding-step1-both.pcap -Y 'isis.type==20 or isis.type==27'
   12 2026-09-10 20:37:48.833480 52:54:00:fa:e5:1c → 09:00:2b:00:00:05 ISIS LSP 119 L2 LSP, LSP-ID: 0010.0100.1001.00-00, Sequence: 0x0000000b, Lifetime:  1200s
   13 2026-09-10 20:37:48.836933 52:54:00:e7:1e:24 → 01:80:c2:00:00:15 ISIS LSP 119 L2 LSP, LSP-ID: 0010.0100.1001.00-00, Sequence: 0x0000000b, Lifetime:  1200s
   15 2026-09-10 20:37:49.337207 52:54:00:ed:a5:21 → 09:00:2b:00:00:05 ISIS PSNP 52 L2 PSNP, Source-ID: 0020.0200.2002.00
MAC addressWhere
52:54:00:fa:e5:1cR1 Gi0/0/0/0 (p2p)
52:54:00:ed:a5:21R2 Gi0/0/0/1 (p2p)
52:54:00:e7:1e:24R2 Gi0/0/0/0 (LAN)

R1 sends the LSP (0010.0100.1001.00-00, sequence 0x0000000b) onto the point-to-point link at 20:37:48.833480, and 3.5 milliseconds later, at 20:37:48.836933, R2 sends it onto the LAN with the same LSP ID and sequence number. The same LSP never reappears on the point-to-point link. That is clause 7.3.14.1: propagate to every circuit except the one it arrived on.

Half a second after that, at 20:37:49.337207, R2 returns a PSNP on the point-to-point link. The relay onto the LAN took 3.5 milliseconds; the acknowledgement waited 500. Propagation is immediate, acknowledgement is batched.

The destination MAC differs by medium as well: 09:00:2b:00:00:05 on the point-to-point link, 01:80:c2:00:00:15 (AllL2ISs) on the LAN.

Download the capture behind the tshark output above (both links merged)

R2’s internal trace records the decision itself.

Trace from R2's isis process (four lines for this LSP, in time order, from the attached step1_r2_trace.txt)
Sep 10 11:37:48.835 isis/1/upd 0/RP0/CPU0 t4290  isis_upd_lsp_acceptance:1105                             UPD_LSP_ACCEPT_NEW_NEWER Upd Type: LSP L2 0010.0100.1001.00-00 Gi0/0/0/1
Sep 10 11:37:48.835 isis/1/upd 0/RP0/CPU0 t4290  isis_upd_lsp_set_all_srm:1252                            UPD_LSP_SET_SRM Upd Type: LSP L2 0010.0100.1001.00-00 Gi0/0/0/0
Sep 10 11:37:49.335 isis/1/upd 0/RP0/CPU0 t4290  isis_upd_lsp_send_psnp_walker:2235                       UPD_PSNP_SEND_ENTRY L2 Gi0/0/0/1 0010.0100.1001.00-00
Sep 10 11:37:49.335 isis/1/std 0/RP0/CPU0 t4290  isis_upd_psnp_send:2167                                  UPD_PSNP_SEND_SUMMARY L2 Gi0/0/0/1

The “newer” branch of 7.3.15.1 e) appears as three separate actions.

TraceMeaningMatching packet
UPD_LSP_ACCEPT_NEW_NEWER ... Gi0/0/0/1Received on the point-to-point link, judged newer than the local copyNo.12 above
UPD_LSP_SET_SRM ... Gi0/0/0/0The only circuit listed is Gi0/0/0/0, which is not the receiving circuitNo.13 above
UPD_PSNP_SEND_ENTRY ... Gi0/0/0/1A PSNP is sent on the receiving circuit (the result of SSN)No.15 above

Only the LAN-side Gi0/0/0/0 is listed as having SRM set; the receiving Gi0/0/0/1 is not. The flags do not appear in any show table, but the operations on them can be observed this way.

STEP 2: a CSNP only when the adjacency returns

R1 - R2 was shut down, Loopback2 (172.16.2.1/32) was added on R1 while it was detached, and the link was restored with no shutdown. The two databases while the link was down:

LSDBs while the link is down (top: R1, bottom: R2)
RP/0/RP0/CPU0:R1#show isis database
Thu Sep 10 11:47:20.598 UTC

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x0000000d   0x6199        1158 /*            0/0/0
R2.00-00              0x0000000b   0x5d2e        923  /1200         0/0/0
R2.01-00              0x00000008   0x02d1        353  /1200         0/0/0
R3.00-00              0x00000009   0x3a85        1011 /1200         0/0/0
R4.00-00              0x00000009   0xbad9        558  /1200         0/0/0

 Total Level-2 LSP count: 5     Local Level-2 LSP count: 1

RP/0/RP0/CPU0:R2#show isis database
Thu Sep 10 11:47:25.809 UTC

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00              0x0000000b   0xa225        622  /1200         0/0/0
R2.00-00            * 0x0000000c   0xf54d        1112 /*            0/0/0
R2.01-00              0x00000008   0x02d1        348  /*            0/0/0
R3.00-00              0x00000009   0x3a85        1005 /1200         0/0/0
R4.00-00              0x00000009   0xbad9        552  /1200         0/0/0

 Total Level-2 LSP count: 5     Local Level-2 LSP count: 1

These outputs are attached as R1 and R2. They disagree in both directions. R1 has advanced its own LSP to 0x0000000d, while R2’s copy of R1 is still 0x0000000b. Conversely R2 has moved its own to 0x0000000c, while R1’s copy is 0x0000000b. Each side simultaneously holds information newer than its neighbour’s and information older than it.

The point-to-point link immediately after it returns:

STEP 2 p2p: tshark -n -t ad -r isis-flooding-step2-p2p.pcap -Y 'isis.type==20 or isis.type==25 or isis.type==27'
   25 2026-09-10 20:47:43.258357 52:54:00:fa:e5:1c → 09:00:2b:00:00:05 ISIS CSNP 132 L2 CSNP, Source-ID: 0010.0100.1001.00, Start LSP-ID: 0000.0000.0000.00-00, End LSP-ID: ffff.ffff.ffff.ff-ff
   26 2026-09-10 20:47:43.261362 52:54:00:ed:a5:21 → 09:00:2b:00:00:05 ISIS LSP 130 L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000d, Lifetime:  1199s
   27 2026-09-10 20:47:43.765201 52:54:00:fa:e5:1c → 09:00:2b:00:00:05 ISIS PSNP 52 L2 PSNP, Source-ID: 0010.0100.1001.00
   28 2026-09-10 20:47:44.258382 52:54:00:fa:e5:1c → 09:00:2b:00:00:05 ISIS LSP 131 L2 LSP, LSP-ID: 0010.0100.1001.00-00, Sequence: 0x0000000f, Lifetime:  1199s
   29 2026-09-10 20:47:44.258599 52:54:00:fa:e5:1c → 09:00:2b:00:00:05 ISIS LSP 80 L2 LSP, LSP-ID: 0020.0200.2002.01-00, Sequence: 0x00000008, Lifetime:   330s
   30 2026-09-10 20:47:44.258728 52:54:00:fa:e5:1c → 09:00:2b:00:00:05 ISIS LSP 107 L2 LSP, LSP-ID: 0030.0300.3003.00-00, Sequence: 0x00000009, Lifetime:   987s
   31 2026-09-10 20:47:44.258970 52:54:00:fa:e5:1c → 09:00:2b:00:00:05 ISIS LSP 107 L2 LSP, LSP-ID: 0040.0400.4004.00-00, Sequence: 0x00000009, Lifetime:   534s
   32 2026-09-10 20:47:44.261847 52:54:00:ed:a5:21 → 09:00:2b:00:00:05 ISIS PSNP 52 L2 PSNP, Source-ID: 0020.0200.2002.00
   34 2026-09-10 20:47:44.347718 52:54:00:ed:a5:21 → 09:00:2b:00:00:05 ISIS CSNP 132 L2 CSNP, Source-ID: 0020.0200.2002.00, Start LSP-ID: 0000.0000.0000.00-00, End LSP-ID: ffff.ffff.ffff.ff-ff
   35 2026-09-10 20:47:44.762934 52:54:00:ed:a5:21 → 09:00:2b:00:00:05 ISIS PSNP 100 L2 PSNP, Source-ID: 0020.0200.2002.00
   38 2026-09-10 20:47:55.692508 52:54:00:ed:a5:21 → 09:00:2b:00:00:05 ISIS LSP 80 L2 LSP, LSP-ID: 0020.0200.2002.01-00, Sequence: 0x00000009, Lifetime:  1200s
   39 2026-09-10 20:47:56.197774 52:54:00:fa:e5:1c → 09:00:2b:00:00:05 ISIS PSNP 52 L2 PSNP, Source-ID: 0010.0100.1001.00
   40 2026-09-10 20:47:59.270912 52:54:00:ed:a5:21 → 09:00:2b:00:00:05 ISIS LSP 107 L2 LSP, LSP-ID: 0040.0400.4004.00-00, Sequence: 0x0000000a, Lifetime:  1200s
   41 2026-09-10 20:47:59.775063 52:54:00:fa:e5:1c → 09:00:2b:00:00:05 ISIS PSNP 52 L2 PSNP, Source-ID: 0010.0100.1001.00

Resynchronisation runs in this order.

  1. 20:47:43.258357 R1 sends a CSNP (No.25). Start LSPID 0000.0000.0000.00-00 and End LSPID ffff.ffff.ffff.ff-ff make it a single table of contents covering the whole database
  2. 20:47:43.261362 R2 reads that CSNP, sees that its own LSP is stale on the far side, and sends 0x0000000d back (No.26). This is 7.3.15.2 c): send what is newer than the CSNP reported
  3. 20:47:44.258382 onwards, R1 sends four LSPs together (No.28 to 31), following clause 7.3.17: when a point-to-point circuit starts, set SRM on every LSP. R2’s own LSP (0020.0200.2002.00-00) is the only one missing, because R1 had just received a newer copy of it
  4. 20:47:44.347718 R2 sends its CSNP too (No.34)

Across this seven-minute capture, only two CSNPs crossed the point-to-point link, No.25 and No.34. Not one periodic CSNP followed.

Download the STEP 2 point-to-point capture (7 minutes)

Download the STEP 2 LAN capture (7 minutes)

STEP 3: reverting

Loopback1 and Loopback2 were removed from both IS-IS and the interface configuration. All four running-config files match STEP 0.

Verification configs and show output

Each STEP was captured from all four routers as four files per router. The verification config is the ..._run.txt (the final state is the one from the last STEP).

FileContents
..._show.txtshow version, show interface description, show route, and the show isis set (interface, neighbors detail, database detail, topology, adjacency-log, spf-log, lsp-log, statistics)
..._log.txtshow logging narrowed to that STEP. A logmsg marker is placed at the start of each STEP and its timestamp passed to show logging start
..._run.txtshow running-config at that STEP (the verification config for that STEP)
..._trace.txtshow isis trace all filtered to the flooding events (UPD_LSP_ACCEPT, UPD_LSP_SET_SRM, UPD_SNP_ENTRY, UPD_CSNP, UPD_PSNP)
step2_..._linkdown.txtshow isis database on R1 and R2 while the link is down in STEP 2, recording the divergence before it is repaired

STEP 0: Initial state

Routershowsyslogrunning-configtrace
R1showlogruntrace
R2showlogruntrace
R3showlogruntrace
R4showlogruntrace

STEP 1: Add Loopback1 (172.16.1.1/32) on R1

Routershowsyslogrunning-configtrace
R1showlogruntrace
R2showlogruntrace
R3showlogruntrace
R4showlogruntrace

STEP 2: Shut down R1 - R2, add Loopback2, then no shutdown

Routershowsyslogrunning-configtrace
R1showlogruntrace
R2showlogruntrace
R3showlogruntrace
R4showlogruntrace

STEP 3: Revert everything (final state)

Routershowsyslogrunning-configtrace
R1showlogruntrace
R2showlogruntrace
R3showlogruntrace
R4showlogruntrace

References

StandardTitleSummary
ISO/IEC 10589:2002 (second edition)Intermediate System to Intermediate System intra-domain routeing information exchange protocolThe IS-IS specification itself. This article draws on 7.3.14.1 for the basic flooding rule, 7.3.14.2 for the action on receipt, 7.3.15 for the SRM and SSN flag definitions, 7.3.15.1 for the three branches, 7.3.15.3 for when CSNPs are sent, 7.3.15.4 for PSNPs, 7.3.15.5 for the retransmission interval, and 7.3.17 for acknowledgement.
RFC 1195Use of OSI IS-IS for Routing in TCP/IP and Dual EnvironmentsThe extension that carries IP routes.
RFC 1142OSI IS-IS Intra-domain Routing ProtocolA republication of the ISO Draft Proposal (1990), now Historic. It must not be cited in place of ISO/IEC 10589 (RFC 7142).
RFC 7142Reclassification of RFC 1142 to HistoricStates that the document to cite is ISO/IEC 10589:2002, second edition.

Related articles