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

IS-IS Convergence Timers (SPF / LSP Generation)

Table of Contents

IS-IS Convergence Timers (SPF / LSP Generation)

When a link fails or a metric changes, IS-IS regenerates the LSP, and the routers that receive it recompute their routes with SPF. For a single change, regenerating and recomputing right away converges fastest. When a link keeps flapping, though, repeating both for every change can outrun the CPU and keep the whole network from settling.

IS-IS implementations therefore delay LSP regeneration and SPF on purpose, and lengthen the delay the longer changes keep coming. This article lays out that behavior from the standard, the RFC and Cisco’s descriptions, then checks it on IOS XR from millisecond timestamps.

Periodic LSP regeneration (lsp-refresh-interval) and lifetime (max-lsp-lifetime) are covered in IS-IS LSPs, and full SPF versus partial route calculation, along with how to read show isis spf-log, in IS-IS SPF Calculation and Route Selection.

The standard only defines a hold-down on LSP generation

ISO/IEC 10589:2002 (2nd edition) puts a floor under how often an LSP is regenerated. The end of section 7.3.6 says:

There is a hold down timer (minimumLSPGenerationInterval) on the generation of each individual LSP.

The definition in section 7.3.21 describes minimumLSPGenerationInterval as the time a source IS “shall wait at least this long before re-generating one of its own Link State PDUs”, with 30 seconds as a reasonable setting (also the default in the annex). At the level of the standard this is a fixed hold-down that does not depend on how many changes occur.

An LSP is regenerated when its contents change. The start of the same section 7.3.6 says:

an Intermediate system shall generate an LSP when an event occurs which would cause the information content to change. (…) When such an event occurs the IS shall re-generate changed LSP(s) with a new sequence number.

In other words, only an LSP whose contents changed gets a new sequence number. If changes during a wait cancel out and the LSP ends up identical to the one already sent, no new LSP is sent and the receivers do not run SPF.

For when to run SPF (the Decision Process, in the standard’s terms), the standard defines no timer. It only says the Decision Process is notified when the LSP database changes. How SPF is delayed is left to implementations and to RFCs.

Cisco’s exponential backoff

On IOS XR, spf-interval (SPF) and lsp-gen-interval (LSP generation) each use three values to shape the delay.

ValueMeaning
initial-waitThe wait from the first event until SPF / LSP generation starts
secondary-waitThe base wait for subsequent events, doubled each time
maximum-waitThe upper limit of the wait

Cisco’s IOS XE IS-IS configuration guide describes the doubling and when it resets:

This incremental value will increase exponentially between the incremental events until the maximum value is reached. For example, the incremental value will be (1x incremental value) between the first and second events, (2 x incremental value) between the second and third event, (4 x incremental value) between the third and fourth event, (8 x incremental value) between the fourth and fifth event, and so on, until the configured maximum interval has been reached.

If no new triggers have been received after two times the configured maximum wait-interval value, the network stabilizes, returning to a steady state and fast behavior. The initial wait-time interval will be reinstated.

The defaults are 50 / 200 / 5000 milliseconds for both SPF and LSP generation. Cisco’s note on the default change moved IOS to these values and states that they “are the same as the default values in IOS-XR”.

R1: spf-interval ?
RP/0/RP0/CPU0:R1(config-isis-af)#spf-interval ?

  ietf            Use RFC 8405 backoff algorithm
  initial-wait    Initial delay before running a route calculation in milliseconds, default is 50
  secondary-wait  Secondary delay before running a route calculation in milliseconds, default is 200
  maximum-wait    Maximum delay before running a route calculation in milliseconds, default is 5000
R1: lsp-gen-interval ?
RP/0/RP0/CPU0:R1(config-isis)#lsp-gen-interval ?

  initial-wait    Initial delay before generating an LSP in milliseconds, default is 50
  secondary-wait  Secondary delay before generating an LSP in milliseconds, default is 200
  maximum-wait    Maximum delay before generating an LSP in milliseconds, default is 5000

With initial-wait 1000 secondary-wait 2000 maximum-wait 16000, for example, as long as events keep coming the wait grows 1, 2, 4, 8 and 16 seconds and stops at 16, and after 32 quiet seconds it returns to 1 second. Events that arrive during a wait are all folded into the next single SPF / LSP generation.

IOS XR counts the wait from the end of the previous calculation (or generation). On top of that, it always waits at least initial-wait after a trigger. For each SPF, show isis spf-log detail shows Delay (the time from the first trigger to the calculation) and Next Wait Interval (the wait to use next).

How RFC 8405 delays SPF

RFC 8405 is an algorithm meant to make SPF delay behave the same across link-state IGPs. Unlike Cisco’s exponential backoff, it switches the delay by time since the first event rather than by count. Section 4 gives the reason:

Note that in order to increase the consistency network wide, the algorithm uses a delay (TIME_TO_LEARN_INTERVAL) from the initial IGP event rather than the number of SPF computations performed. Indeed, as all routers may receive the IGP events at different times, we cannot assume that all routers will perform the same number of SPF computations.

The state machine in section 5 has three states.

StateEntered whenSPF delay in this state
QUIETAt startup, or after no events for HOLDDOWN_INTERVALINITIAL_SPF_DELAY
SHORT_WAITAn event arrives in QUIETSHORT_SPF_DELAY
LONG_WAITTIME_TO_LEARN_INTERVAL has passed since entering SHORT_WAITLONG_SPF_DELAY

Section 6 says an implementation that enables this by default SHOULD use INITIAL 50 ms, SHORT 200 ms, LONG 5000 ms, TIME_TO_LEARN 500 ms and HOLDDOWN 10000 ms. On IOS XR, spf-interval ietf switches to this method.

With INITIAL 1 s, SHORT 2 s, LONG 16 s, TIME_TO_LEARN 6 s and HOLDDOWN 20 s, for example, the SPF delay is 2 seconds for the first 6 seconds after the first event and then switches to 16 seconds in a single step. It does not grow through 4 and 8 seconds as Cisco’s method does. After 20 seconds without events it returns to QUIET, and the next event is calculated after 1 second again.

R1: spf-interval ietf ?
RP/0/RP0/CPU0:R1(config-isis-af)#spf-interval ietf ?

  initial-wait       Initial delay before running a route calculation in milliseconds, default is 50
  short-wait         Short delay before running a route calculation in milliseconds, default is 200
  long-wait          Long delay before running a route calculation in milliseconds, default is 5000
  learn-interval     Time To Learn interval for running a route calculation in milliseconds, default is 500
  holddown-interval  Holddown interval for running a route calculation in milliseconds, default is 10000
  level              Set SPF interval for one level only
  <cr>               

Side by side, the two methods look like this.

ItemCisco exponential backoffRFC 8405 (spf-interval ietf)
What lengthens the delayThe number of events since last timeTime since the first event
Delay stepsInitial, then doubling up to the maximumThree steps: INITIAL, SHORT, LONG
Reset conditionNo events for twice the maximumNo events for HOLDDOWN_INTERVAL
Applies to LSP generationlsp-gen-interval uses the same methodDefines SPF only

Lab verification

Lab setup

R1 to R3 are level-2-only (wide) in the single area 49.0001, and every link metric is 10. The software is XRd 26.1.1.

RouterLo0Role
R11.1.1.1/32Observes the SPF delay. Only R1 changes spf-interval
R22.2.2.2/32Generates the events by committing the metric of Gi0/0/0/1 (toward R3) alternately as 20 and 10. Only R2 changes lsp-gen-interval
R33.3.3.3/32Beyond R2. The metric of 3.3.3.3/32 seen from R1 alternates between 30 and 20 with each event

One event is an SSH session to R2 that changes the metric and commits. Back-to-back events end up about 3.5 seconds apart because of the commit processing time. LSP generation times come from R2’s show isis lsp-log and trace, SPF times and delays from R1’s show isis spf-log detail, and the LSPs actually sent from the capture on R1 - R2.

Lab STEPs

STEPChangeWhat to check
0DefaultsR1 reaches R3
1A single event with the defaultsLSP generation on R2 and SPF on R1 both run after about 50 ms
2Set spf-interval on R1 to 1000 / 2000 / 16000 msThe configuration alone runs no SPF
3Ten events about 3.5 seconds apartR1’s SPF wait grows 2, 4, 8, 16 seconds and stops, and LSPs arriving during a wait go into one SPF
4Single events spaced about 22, 46 and 42 seconds apartUnder 32 seconds the wait stays long, at 32 seconds or more it resets
5Revert R1, set lsp-gen-interval on R2 to 1000 / 2000 / 16000 ms and send a burstR2’s LSP generation interval grows 4, 8, 16 seconds, and a generation whose contents came back is not sent
6Revert R2, set R1 to spf-interval ietf and send a burstThe SPF delay switches from 2 to 16 seconds in one step
7Two spaced single events with spf-interval ietf still set, then revert R1 (final state)After HOLDDOWN it is back in QUIET and calculates after 1 second. The configuration matches STEP 0

STEP 0: Defaults

R1 reaches R3’s Lo0 through R2.

STEP 0 R1: traceroute 3.3.3.3
RP/0/RP0/CPU0:R1#traceroute 3.3.3.3 source 1.1.1.1
Tue Sep 15 05:06:36.395 UTC

Type escape sequence to abort.
Tracing the route to 3.3.3.3

 1  10.1.2.2 7 msec  5 msec  5 msec 
 2  10.2.3.3 18 msec  *  10 msec 

STEP 1: A single event with the defaults

R2 builds the LSP 74 ms and 68 ms after the configuration is applied (CFG_APPLY_AREA_EOB_LSP_GEN), which is the 50 ms initial-wait plus processing time.

STEP 1 R2: show isis trace all | include LSP_GEN (excerpt)
Sep 15 05:07:56.746 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:07:56.820 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0
Sep 15 05:08:29.453 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:08:29.521 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0

Both SPFs on R1 show a Delay of about 50 ms. The second comes about 33 seconds after the previous calculation, past twice the 5-second maximum, so the wait has reset to its first value.

STEP 1 R1: show isis spf-log detail (excerpt)
05:07:56.876  FSPF     2     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 50ms (since first trigger)
                         343637ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    200ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:08:29.577  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 51ms (since first trigger)
                         32699ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    200ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0

STEP 2: Set spf-interval on R1 to 1000 / 2000 / 16000 ms

STEP 2 R1: show configuration commit changes last 1
RP/0/RP0/CPU0:R1#show configuration commit changes last 1
Tue Sep 15 05:12:48.974 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
 address-family ipv4 unicast
  spf-interval initial-wait 1000 secondary-wait 2000 maximum-wait 16000
 !
!
end

STEP 3: Ten events about 3.5 seconds apart

R1 runs five SPFs. Next Wait Interval grows 2000, 4000, 8000, 16000 and 16000 ms and stops at 16 seconds. The fourth and fifth show Trigger LSPs of 2 and 3, calculating the LSPs that arrived during the wait together. The second comes 3.5 seconds after the previous calculation, past the 2-second wait, yet it still waits the 1000 ms initial-wait after its trigger.

STEP 3 R1: show isis spf-log detail (excerpt)
05:15:16.526  FSPF     9     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 1001ms (since first trigger)
                         406947ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            9     0
                         ----- -----
    Full Calculation:        9     0
05:15:20.038  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 1000ms (since first trigger)
                         3503ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    4000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:15:24.041  FSPF     2     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 1514ms (since first trigger)
                         4001ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    8000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:15:32.044  FSPF     1     3     4             R2.00-00 LINKGOOD LINKBAD PREFIXGOOD PREFIXBAD
  Delay:                 5818ms (since first trigger)
                         8001ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          2
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    16000ms
  RIB Batches:           1 (0 critical, 0 high, 0 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            1     0
                         ----- -----
    Full Calculation:        1     0
05:15:48.047  FSPF     2     3     6             R2.00-00 LINKGOOD LINKBAD PREFIXGOOD PREFIXBAD
  Delay:                 14522ms (since first trigger)
                         16002ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          3
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    16000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0

LSP generation on R2 keeps the default 50 / 200 / 5000 ms. While the wait is shorter than the event spacing it builds one LSP per event, and once the wait hits the 5-second maximum at 05:15:38 it builds one every 5 seconds. The last one at 05:15:48.527 has a Count of 2, folding the ninth and tenth changes together.

STEP 3 R2: show isis lsp-log
RP/0/RP0/CPU0:R2#show isis lsp-log
Tue Sep 15 05:17:23.341 UTC

  IS-IS 1  Level 2  LSP Generation Log             Capacity: 50, Size: 17

When          Count  Interface          Triggers
--- Tue Sep 15 2026 ---
05:01:47.926      1                     CONFIG
05:01:57.121      1  Lo0                IPUP
05:02:00.833      1                     LSPDBOL
05:02:02.821      1  Gi0/0/0/0          IPUP
05:02:06.829      1  Gi0/0/0/0          SABIT
05:02:12.158      1  Gi0/0/0/1          SABIT
05:07:56.821      1                     CONFIG
05:08:29.521      1                     CONFIG
05:15:15.496      1                     CONFIG
05:15:19.002      1                     CONFIG
05:15:22.522      1                     CONFIG
05:15:26.222      1                     CONFIG
05:15:30.123      1                     CONFIG
05:15:33.518      1                     CONFIG
05:15:38.521      1                     CONFIG
05:15:43.524      1                     CONFIG
05:15:48.527      2                     CONFIG

Those two changes take the metric from 20 back to 10, so the contents match the LSP built at 05:15:43 (sequence number 0x10). No new LSP is sent, and R2’s LSPs in the capture end at 0x10 (No.9 is R1’s own LSP). R1’s database also stays at 0x10.

STEP 3 LSPs on R1 - R2 (tshark, times in UTC)
2	2026-09-15 05:15:15.523138Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000009, Lifetime:  1200s
5	2026-09-15 05:15:19.004251Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000a, Lifetime:  1200s
7	2026-09-15 05:15:22.524528Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000b, Lifetime:  1200s
9	2026-09-15 05:15:22.729221Z	L2 LSP, LSP-ID: 0010.0100.1001.00-00, Sequence: 0x00000006, Lifetime:  1200s
12	2026-09-15 05:15:26.224333Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000c, Lifetime:  1200s
15	2026-09-15 05:15:30.125755Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000d, Lifetime:  1200s
18	2026-09-15 05:15:33.522999Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000e, Lifetime:  1200s
22	2026-09-15 05:15:38.523254Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000000f, Lifetime:  1200s
25	2026-09-15 05:15:43.527054Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000010, Lifetime:  1200s
STEP 3 R1: show isis database
RP/0/RP0/CPU0:R1#show isis database
Tue Sep 15 05:16:52.474 UTC

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x00000006   0xbfd9        1110 /*            0/0/0
R2.00-00              0x00000010   0x661f        1130 /1200         0/0/0
R3.00-00              0x00000005   0xaa97        1046 /1200         0/0/0

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

STEP 4: Single events spaced about 22, 46 and 42 seconds apart

The second SPF comes 22 seconds after the previous calculation, short of twice the 16-second maximum (32 seconds), so Next Wait Interval grows to 4000 ms. The third and fourth, 46 and 42 seconds later, are back at 2000 ms. Every Delay is 1000 ms after the trigger.

STEP 4 R1: show isis spf-log detail (excerpt)
05:19:08.125  FSPF     2     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 1000ms (since first trigger)
                         200076ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:19:30.490  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 1001ms (since first trigger)
                         22363ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    4000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:20:16.925  FSPF     2     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 1000ms (since first trigger)
                         46433ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:20:59.234  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 1000ms (since first trigger)
                         42307ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0

STEP 5: Revert R1, set lsp-gen-interval on R2 to 1000 / 2000 / 16000 ms and send a burst

STEP 5 R2: show configuration commit changes last 1
RP/0/RP0/CPU0:R2#show configuration commit changes last 1
Tue Sep 15 05:23:36.633 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
 lsp-gen-interval initial-wait 1000 secondary-wait 2000 maximum-wait 16000
!
end

The first and second LSP generations on R2 both come about 1000 ms after the configuration is applied. After that the interval from the previous generation grows 4001, 8002, 16002 and 16002 ms and stops at 16 seconds.

STEP 5 R2: show isis trace all | include LSP_GEN (excerpt)
Sep 15 05:23:35.861 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_lsp_gen_interval_verify:3791                    CFG_LEVEL_VERIFY_LSP_GEN_INTERVAL NONE
Sep 15 05:23:35.866 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_lsp_gen_interval_apply:3862                     CFG_LEVEL_APPLY_LSP_GEN_INTERVAL L1
Sep 15 05:23:35.866 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_lsp_gen_interval_apply:3862                     CFG_LEVEL_APPLY_LSP_GEN_INTERVAL L2
Sep 15 05:24:22.541 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:23.553 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0
Sep 15 05:24:26.238 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:27.249 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0
Sep 15 05:24:29.624 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:31.250 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0
Sep 15 05:24:33.653 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:37.335 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:39.252 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0
Sep 15 05:24:41.633 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:45.327 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:48.729 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:52.030 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:24:55.252 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0
Sep 15 05:24:55.340 isis/1/cfg 0/RP0/CPU0 t4386  isis_cfg_if_area_end_of_batch:6869                       CFG_APPLY_AREA_EOB_LSP_GEN
Sep 15 05:25:11.254 isis/1/lsp 0/RP0/CPU0 t4486  isis_upd_lsp_build_system_lsp:5452                       LOCAL_SYSTEM_LBD_LSP_GEN L2 Node Num: 0 0

The generations with a Count of 2 and 4 fold together changes that set the metric and set it back, so their contents equal the previous LSP. Only four of R2’s LSPs, sequence numbers 0x15 to 0x18, appear in the capture (No.167 is R3’s LSP).

STEP 5 R2: show isis lsp-log
RP/0/RP0/CPU0:R2#show isis lsp-log
Tue Sep 15 05:26:32.650 UTC

  IS-IS 1  Level 2  LSP Generation Log             Capacity: 50, Size: 27

When          Count  Interface          Triggers
--- Tue Sep 15 2026 ---
05:01:47.926      1                     CONFIG
05:01:57.121      1  Lo0                IPUP
05:02:00.833      1                     LSPDBOL
05:02:02.821      1  Gi0/0/0/0          IPUP
05:02:06.829      1  Gi0/0/0/0          SABIT
05:02:12.158      1  Gi0/0/0/1          SABIT
05:07:56.821      1                     CONFIG
05:08:29.521      1                     CONFIG
05:15:15.496      1                     CONFIG
05:15:19.002      1                     CONFIG
05:15:22.522      1                     CONFIG
05:15:26.222      1                     CONFIG
05:15:30.123      1                     CONFIG
05:15:33.518      1                     CONFIG
05:15:38.521      1                     CONFIG
05:15:43.524      1                     CONFIG
05:15:48.527      2                     CONFIG
05:19:07.100      1                     CONFIG
05:19:29.484      1                     CONFIG
05:20:15.891      1                     CONFIG
05:20:58.228      1                     CONFIG
05:24:23.554      1                     CONFIG
05:24:27.250      1                     CONFIG
05:24:31.251      1                     CONFIG
05:24:39.252      2                     CONFIG
05:24:55.253      4                     CONFIG
05:25:11.254      1                     CONFIG
STEP 5 LSPs on R1 - R2 (tshark, times in UTC)
15	2026-09-15 05:24:23.556089Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000015, Lifetime:  1200s
17	2026-09-15 05:24:27.252478Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000016, Lifetime:  1200s
20	2026-09-15 05:24:31.253716Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000017, Lifetime:  1200s
31	2026-09-15 05:25:11.257388Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000018, Lifetime:  1200s
167	2026-09-15 05:26:50.729423Z	L2 LSP, LSP-ID: 0030.0300.3003.00-00, Sequence: 0x00000006, Lifetime:  1200s

STEP 6: Revert R2, set R1 to spf-interval ietf and send a burst

STEP 6 R1: show configuration commit changes last 1
RP/0/RP0/CPU0:R1#show configuration commit changes last 1
Tue Sep 15 05:28:17.736 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
 address-family ipv4 unicast
  spf-interval ietf initial-wait 1000 short-wait 2000 long-wait 16000 learn-interval 6000 holddown-interval 20000
 !
!
end

The first SPF is INITIAL from QUIET at 1001 ms and the second is SHORT_WAIT at 2001 ms. From the third LSP (05:29:10.8), which arrives more than 6 seconds after the first (05:29:04), it is in LONG_WAIT, and the third and fourth SPFs wait 16000 ms. The wait jumps from 2 to 16 seconds without passing through 4 or 8.

STEP 6 R1: show isis spf-log detail (excerpt)
05:29:05.027  FSPF     2     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 1001ms (since first trigger)
                         233716ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:29:09.294  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 2001ms (since first trigger)
                         4265ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:29:26.826  FSPF     2     3    10             R2.00-00 LINKGOOD LINKBAD PREFIXGOOD PREFIXBAD
  Delay:                 16000ms (since first trigger)
                         17530ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          5
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    16000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:29:47.225  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 16000ms (since first trigger)
                         20397ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    16000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
STEP 6 LSPs on R1 - R2 (tshark, times in UTC)
15	2026-09-15 05:29:04.023577Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000019, Lifetime:  1200s
18	2026-09-15 05:29:07.291026Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000001a, Lifetime:  1200s
21	2026-09-15 05:29:10.823651Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000001b, Lifetime:  1200s
24	2026-09-15 05:29:14.423362Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000001c, Lifetime:  1200s
27	2026-09-15 05:29:17.700179Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000001d, Lifetime:  1200s
29	2026-09-15 05:29:21.224082Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000001e, Lifetime:  1200s
33	2026-09-15 05:29:26.192004Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x0000001f, Lifetime:  1200s
35	2026-09-15 05:29:31.222896Z	L2 LSP, LSP-ID: 0020.0200.2002.00-00, Sequence: 0x00000020, Lifetime:  1200s
41	2026-09-15 05:29:47.365423Z	L2 LSP, LSP-ID: 0010.0100.1001.00-00, Sequence: 0x00000007, Lifetime:  1200s

STEP 7: Two spaced single events with spf-interval ietf still set, then revert R1 (final state)

Both events come more than 20 seconds after the previous trigger. Past HOLDDOWN it is back in QUIET, so Delay is the INITIAL 1000 ms and Next Wait Interval is the SHORT 2000 ms.

STEP 7 R1: show isis spf-log detail (excerpt)
05:33:42.626  FSPF     2     3     2             R2.00-00 LINKBAD PREFIXBAD
  Delay:                 1000ms (since first trigger)
                         235399ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
05:34:14.805  FSPF     2     3     2             R2.00-00 LINKGOOD PREFIXGOOD
  Delay:                 1000ms (since first trigger)
                         32177ms (since end of last calculation)
  Trigger Link:          R3.00
  Trigger Prefix:        10.2.3.0/24
  Trigger LSPs:          1
  New LSP Arrivals:      0
  SR uloop:              No
  Next Wait Interval:    2000ms
  RIB Batches:           2 (0 critical, 0 high, 1 medium, 1 low)
  Timings (ms):          +--Total--+
                          Real   CPU
    SPT Calculation:         0     0
    Route Update:            2     0
                         ----- -----
    Full Calculation:        2     0
STEP 7 R1: show configuration commit changes last 1
RP/0/RP0/CPU0:R1#show configuration commit changes last 1
Tue Sep 15 05:34:50.548 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
 address-family ipv4 unicast
  no spf-interval ietf initial-wait 1000 short-wait 2000 long-wait 16000 learn-interval 6000 holddown-interval 20000
 !
!
end

The final configuration of all three routers matches STEP 0.

Verification configs and show output

Each STEP was captured from all three routers as separate 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, show route isis, show route 3.3.3.3/32, the show isis set (neighbors, database, database detail, spf-log, spf-log detail, lsp-log, route, adjacency-log, statistics), show running-config router isis and show configuration commit list
..._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. R2 commit times (%MGBL-CONFIG-6-DB_COMMIT) are here too
..._run.txtshow running-config at that STEP (the verification config for that STEP)
..._trace.txtshow isis trace all | include SPF_TRIGGER, include SPF_SPF_SUMMARY and include LSP_GEN
..._ping.txtFrom R1: ping 3.3.3.3 and traceroute 3.3.3.3 (source 1.1.1.1). None for R2 and R3
..._trigger.txtThe SSH session on R2 that generated the events (metric committed alternately as 20 and 10). Only in STEPs that generated events
..._commit.cfgWhat was committed in STEPs that changed a timer (show configuration commit changes last 1). Absent for routers that changed nothing

STEP 0: Defaults

Routershowsyslogrunning-configtracepingtriggercommit
R1showlogruntraceping--
R2showlogruntrace---
R3showlogruntrace---

STEP 1: A single event with the defaults

Routershowsyslogrunning-configtracepingtriggercommit
R1showlogruntraceping--
R2showlogruntrace-trigger-
R3showlogruntrace---

STEP 2: Set spf-interval on R1 to 1000 / 2000 / 16000 ms

Routershowsyslogrunning-configtracepingtriggercommit
R1showlogruntraceping-commit
R2showlogruntrace---
R3showlogruntrace---

STEP 3: Ten events about 3.5 seconds apart

Routershowsyslogrunning-configtracepingtriggercommit
R1showlogruntraceping--
R2showlogruntrace-trigger-
R3showlogruntrace---

STEP 4: Single events spaced about 22, 46 and 42 seconds apart

Routershowsyslogrunning-configtracepingtriggercommit
R1showlogruntraceping--
R2showlogruntrace-trigger / trigger2-
R3showlogruntrace---

STEP 5: Revert R1, set lsp-gen-interval on R2 to 1000 / 2000 / 16000 ms and send a burst

Routershowsyslogrunning-configtracepingtriggercommit
R1showlogruntraceping-commit
R2showlogruntrace-triggercommit
R3showlogruntrace---

STEP 6: Revert R2, set R1 to spf-interval ietf and send a burst

Routershowsyslogrunning-configtracepingtriggercommit
R1showlogruntraceping-commit
R2showlogruntrace-triggercommit
R3showlogruntrace---

STEP 7: Two spaced single events with spf-interval ietf still set, then revert R1 (final state)

Routershowsyslogrunning-configtracepingtriggercommit
R1showlogruntraceping-commit
R2showlogruntrace-trigger-
R3showlogruntrace---

Packet captures were taken per STEP on the R1 - R2 link. They show the time and sequence number of each LSP that R2 sent to R1.

STEPR1 - R2
0pcap
1pcap
2pcap
3pcap
4pcap
5pcap
6pcap
7pcap

Help taken beforehand in a candidate configuration and discarded with abort (nothing committed): R1 help, R2 trace and spf-log detail

References

StandardTitleSummary
ISO/IEC 10589:2002 (2nd edition)Intermediate System to Intermediate System intra-domain routeing information exchange protocolSection 7.3.6 gives LSP generation a hold-down timer (minimumLSPGenerationInterval), and section 7.3.21 defines it with a reasonable value of 30 seconds. It defines no SPF delay.
RFC 8405Shortest Path First (SPF) Back-Off Delay Algorithm for Link-State IGPsSection 3 defines the five parameters, section 4 why time is used, section 5 the QUIET / SHORT_WAIT / LONG_WAIT state machine and section 6 the recommended defaults.
Cisco IP Routing: ISIS Configuration Guide, IOS XE Gibraltar 16.12.xReducing Link Failure and Topology Change Notification Times in IS-IS NetworksExplains that SPF / PRC / LSP generation waits double, and that the initial wait returns after twice the maximum with no events (for IOS XE).
Cisco 8000 IS-IS Configuration GuideIS-IS SPF interval delayExplains that IOS XR’s spf-interval ietf complies with RFC 8405.
Cisco: Change of Default OSPF and IS-IS SPF and Flooding TimersDocument ID 211432Explains that IOS changed its IS-IS spf-interval / prc-interval / lsp-gen-interval defaults to 50 / 200 / 5000 to match IOS XR.

Related articles