Since the OSPF Grace Opaque LSA is scoped to an interface, what you are 
suggesting really
 isn't necessary. Conceptually, there is a separate LSDB per interface. Some 
implementations
 have avoided this and keep link-scoped LSAs in the the area LSDB. If you do 
this, you need
 to handle the case of multiple link-scoped LSA with the same opaque type and 
ID (or not be
compatible with RFC 5250). 

Thanks,
Acee

> On Jan 21, 2026, at 11:44 PM, Ramachandran Sathianandan 
> <[email protected]> wrote:
> 
> Abstract
> This observation highlights an architectural limitation in RFC 3623 (Graceful 
> OSPF Restart) regarding the construction of Grace-LSAs (Type-9) when multiple 
> adjacencies exist between the same Restarter and Helper pair (parallel 
> links). The current specification does not mandate unique Opaque IDs per 
> link, leading to ambiguous Flush (MaxAge) handling on the Helper. This often 
> forces a fallback to "Grace Timer Expiry" rather than a successful "Graceful 
> Restart" termination.
> 
> Description of Limitation
> RFC 3623, Section 2.1 ("Entering Graceful Restart"), specifies that the 
> Restarter must originate Link-Local Opaque-LSAs (Grace-LSAs). However, the 
> RFC does not enforce a mechanism to ensure the uniqueness of the Link-State 
> ID when multiple Grace-LSAs are generated for the same neighbor on different 
> interfaces.
> 
> In a topology where the Restarter and Helper are connected via multiple 
> back-to-back links in the same area:
> 
> - The Restarter generates a Grace-LSA for each link.
> - If the implementation defaults the Opaque ID (24 bits) to a static value 
> for all instances, the Helper receives multiple Type-9 LSAs with identical 
> Link-State IDs and Advertising Router IDs.
> - Although Type-9 LSAs are link-local, the Helper’s state machine faces 
> ambiguity during the termination phase.
> - When the Restarter completes the restart and flushes the Grace-LSAs, the 
> Helper cannot deterministically map a specific MaxAge LSA event to the 
> corresponding underlying link session if IDs collide.
> 
> Consequently, the Helper fails to process the explicit restart completion 
> signal and retains the Helper state until the Grace Timer expires.
> 
> Reference to Specification
> 
> - RFC 3623, Section 2.1: Does not specify encoding the ifIndex or a unique 
> identifier into the Opaque ID.
> - RFC 5250, Section 3.1: Defines the Opaque ID as an arbitrary value to 
> differentiate LSAs of the same type.
> 
> Proposed Enhancement / Clarification
> To resolve collisions on parallel links and allow for deterministic 
> signaling, I propose that future implementations or updates recommend:
> 
> "When originating Grace-LSAs on multiple interfaces, the Restarter SHOULD 
> ensure the Opaque ID is unique for each link—for example, by encoding the 
> local Interface Index (ifIndex) into the 24-bit Opaque ID field."
> 
> This enhancement would allow the Helper to uniquely identify and flush 
> specific grace sessions, preventing unnecessary timer-based exits.
> 
> Regards,
> Ramachandran Sathianandan
> 
> 
> 
> 
> _______________________________________________
> Lsr mailing list -- [email protected]
> To unsubscribe send an email to [email protected]

_______________________________________________
Lsr mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to