| rfc8706xml2.original.xml | rfc8706.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
| <?rfc toc="yes"?> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <?rfc tocompact="yes"?> | ||||
| <?rfc tocdepth="3"?> | <rfc number="8706" xmlns:xi="http://www.w3.org/2001/XInclude" category="std" | |||
| <?rfc tocindent="yes"?> | consensus="true" docName="draft-ietf-lsr-isis-rfc5306bis-09" ipr="trust2009 | |||
| <?rfc symrefs="yes"?> | 02" | |||
| <?rfc sortrefs="yes"?> | obsoletes="5306" updates="" submissionType="IETF" xml:lang="en" | |||
| <?rfc comments="yes"?> | tocInclude="true" symRefs="true" sortRefs="true" version="3"> | |||
| <?rfc inline="yes"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <rfc category="std" docName="draft-ietf-lsr-isis-rfc5306bis-09" | ||||
| ipr="trust200902" obsoletes="5306"> | ||||
| <front> | ||||
| <title abbrev="restart-signalling-for-IS-IS">Restart Signaling for | ||||
| IS-IS</title> | ||||
| <!-- xml2rfc v2v3 conversion 2.33.0 --> | ||||
| <front> | ||||
| <title>Restart Signaling for IS-IS</title> | ||||
| <seriesInfo name="RFC" value="8706" /> | ||||
| <author fullname="Les Ginsberg" initials="L." surname="Ginsberg"> | <author fullname="Les Ginsberg" initials="L." surname="Ginsberg"> | |||
| <organization>Cisco Systems, Inc.</organization> | <organization>Cisco Systems, Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street/> | <street/> | |||
| <city/> | <city/> | |||
| <code/> | <code/> | |||
| <country/> | <country/> | |||
| </postal> | </postal> | |||
| <email>ginsberg@cisco.com</email> | <email>ginsberg@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Paul Wells" initials="P." surname="Wells"> | <author fullname="Paul Wells" initials="P." surname="Wells"> | |||
| <organization>Cisco Systems, Inc.</organization> | <organization>Cisco Systems, Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street/> | <street/> | |||
| <city/> | <city/> | |||
| <region/> | <region/> | |||
| <code/> | <code/> | |||
| <country/> | <country/> | |||
| </postal> | </postal> | |||
| <email>pauwells@cisco.com</email> | <email>pauwells@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="February" year="2020"/> | ||||
| <date day="19" month="September" year="2019"/> | ||||
| <area>Routing</area> | <area>Routing</area> | |||
| <workgroup>IS-IS for IP Internets</workgroup> | <workgroup>IS-IS for IP Internets</workgroup> | |||
| <keyword>IGP</keyword> | <keyword>IGP</keyword> | |||
| <keyword>IS-IS</keyword> | <keyword>IS-IS</keyword> | |||
| <keyword>graceful restart</keyword> | <keyword>graceful restart</keyword> | |||
| <abstract> | <abstract> | |||
| <t>This document describes a mechanism for a restarting router to signal | <t>This document describes a mechanism for a restarting router to signal | |||
| to its neighbors that it is restarting, allowing them to reestablish | to its neighbors that it is restarting, allowing them to reestablish | |||
| their adjacencies without cycling through the down state, while still | their adjacencies without cycling through the DOWN state while still | |||
| correctly initiating database synchronization.</t> | correctly initiating database synchronization.</t> | |||
| <t>This document additionally describes a mechanism for a router to | <t>This document additionally describes a mechanism for a router to | |||
| signal its neighbors that it is preparing to initiate a restart while | signal its neighbors that it is preparing to initiate a restart while | |||
| maintaining forwarding plane state. This allows the neighbors to | maintaining forwarding-plane state. This allows the neighbors to | |||
| maintain their adjacencies until the router has restarted, but also | maintain their adjacencies until the router has restarted but also | |||
| allows the neighbors to bring the adjacencies down in the event of other | allows the neighbors | |||
| to bring the adjacencies down in the event of other | ||||
| topology changes.</t> | topology changes.</t> | |||
| <t>This document additionally describes a mechanism for a restarting | <t>This document additionally describes a mechanism for a restarting | |||
| router to determine when it has achieved Link State Protocol Data Unit | router to determine when it has achieved Link State Protocol Data Unit | |||
| (LSP) database synchronization with its neighbors and a mechanism to | (LSP) database synchronization with its neighbors and a mechanism to | |||
| optimize LSP database synchronization, while minimizing transient | optimize LSP database synchronization while minimizing transient | |||
| routing disruption when a router starts.</t> | routing disruption when a router starts.</t> | |||
| <t>This document obsoletes RFC 5306.</t> | <t>This document obsoletes RFC 5306.</t> | |||
| </abstract> | </abstract> | |||
| <note title="Requirements Language"> | ||||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
| "OPTIONAL" in this document are to be interpreted as described in BCP 14 | ||||
| <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, | ||||
| they appear in all capitals, as shown here.</t> | ||||
| </note> | ||||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Overview"> | <section numbered="true" toc="default"> | |||
| <name>Overview</name> | ||||
| <t>The Intermediate System to Intermediate System (IS-IS) routing | <t>The Intermediate System to Intermediate System (IS-IS) routing | |||
| protocol [RFC1195] [ISO10589] is a link state intra-domain routing | protocol <xref target="RFC1195" format="default"/> <xref | |||
| target="ISO10589" format="default"/> is a link state intra-domain routing | ||||
| protocol. Normally, when an IS-IS router is restarted, temporary | protocol. Normally, when an IS-IS router is restarted, temporary | |||
| disruption of routing occurs due to events in both the restarting router | disruption of routing occurs due to events in both the restarting router | |||
| and the neighbors of the restarting router.</t> | and the neighbors of the restarting router.</t> | |||
| <t>The router that has been restarted computes its own routes before | <t>The router that has been restarted computes its own routes before | |||
| achieving database synchronization with its neighbors. The results of | achieving database synchronization with its neighbors. The results of | |||
| this computation are likely to be non-convergent with the routes | this computation are likely to be non-convergent with the routes | |||
| computed by other routers in the area/domain.</t> | computed by other routers in the area/domain.</t> | |||
| <t>Neighbors of the restarting router detect the restart event and cycle | <t>Neighbors of the restarting router detect the restart event and cycle | |||
| their adjacencies with the restarting router through the down state. The | their adjacencies with the restarting router through the DOWN state. The | |||
| cycling of the adjacency state causes the neighbors to regenerate their | cycling of the adjacency state causes the neighbors to regenerate their | |||
| LSPs describing the adjacency concerned. This in turn causes a temporary | LSPs describing the adjacency concerned. This in turn causes a temporary | |||
| disruption of routes passing through the restarting router.</t> | disruption of routes passing through the restarting router.</t> | |||
| <t>In certain scenarios, the temporary disruption of the routes is | <t>In certain scenarios, the temporary disruption of the routes is | |||
| highly undesirable. This document describes mechanisms to avoid or | highly undesirable. This document describes mechanisms to avoid or | |||
| minimize the disruption due to both of these causes.</t> | minimize the disruption due to both of these causes.</t> | |||
| <t>When an adjacency is reinitialized as a result of a neighbor | <t>When an adjacency is reinitialized as a result of a neighbor | |||
| restarting, a router does three things:</t> | restarting, a router does three things:</t> | |||
| <ol spacing="normal" type="1"> | ||||
| <t><list style="numbers"> | <li>It causes its own LSP(s) to be regenerated, thus triggering | |||
| <t>It causes its own LSP(s) to be regenerated, thus triggering SPF | Shortest Path First (SPF) | |||
| runs throughout the area (or in the case of Level 2, throughout the | runs throughout the area (or in the case of Level 2, throughout the | |||
| domain).</t> | domain).</li> | |||
| <li>It sets SRMflags on its own LSP database on the adjacency | ||||
| <t>It sets SRMflags on its own LSP database on the adjacency | concerned.</li> | |||
| concerned.</t> | <li>In the case of a Point-to-Point link, it transmits a complete set | |||
| of Complete Sequence Number PDUs (CSNPs), over the adjacency.</li> | ||||
| <t>In the case of a Point-to-Point link, it transmits a complete set | </ol> | |||
| of Complete Sequence Number PDUs (CSNPs), over the adjacency.</t> | ||||
| </list></t> | ||||
| <t>In the case of a restarting router process, the first of these is | <t>In the case of a restarting router process, the first of these is | |||
| highly undesirable, but the second is essential in order to ensure | highly undesirable, but the second is essential in order to ensure | |||
| synchronization of the LSP database.</t> | synchronization of the LSP database.</t> | |||
| <t>The third action above minimizes the number of LSPs that must be | <t>The third action above minimizes the number of LSPs that must be | |||
| exchanged and, if made reliable, provides a means of determining when | exchanged and, if made reliable, provides a means of determining when | |||
| the LSP databases of the neighboring routers have been synchronized. | the LSP databases of the neighboring routers have been synchronized. | |||
| This is desirable whether or not the router is being restarted (so that | This is desirable whether or not the router is being restarted (so that | |||
| the overload bit can be cleared in the router's own LSP, for | the overload bit can be cleared in the router's own LSP, for | |||
| example).</t> | example).</t> | |||
| <t>This document describes a mechanism for a restarting router to signal | <t>This document describes a mechanism for a restarting router to signal | |||
| to its neighbors that it is restarting. The mechanism further allows the | to its neighbors that it is restarting. The mechanism further allows the | |||
| neighbors to reestablish their adjacencies with the restarting router | neighbors to reestablish their adjacencies with the restarting router | |||
| without cycling through the down state, while still correctly initiating | without cycling through the DOWN state while still correctly initiating | |||
| database synchronization.</t> | database synchronization.</t> | |||
| <t>This document additionally describes a mechanism for a restarting | <t>This document additionally describes a mechanism for a restarting | |||
| router to determine when it has achieved LSP database synchronization | router to determine when it has achieved LSP database synchronization | |||
| with its neighbors and a mechanism to optimize LSP database | with its neighbors and a mechanism to optimize LSP database | |||
| synchronization and minimize transient routing disruption when a router | synchronization and minimize transient routing disruption when a router | |||
| starts.</t> | starts.</t> | |||
| <t>It is assumed that the three-way handshake <xref target="RFC5303" forma | ||||
| <t>It is assumed that the three-way handshake <xref target="RFC5303"/> | t="default"/> | |||
| is being used on Point-to-Point circuits.</t> | is being used on Point-to-Point circuits.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default" anchor="conventions"> | ||||
| <section title="Conventions Used in This Document"> | <name>Conventions Used in This Document</name> | |||
| <t>If the control and forwarding functions in a router can be maintained | <t>If the control and forwarding functions in a router can be maintained | |||
| independently, it is possible for the forwarding function state to be | independently, it is possible for the forwarding function state to be | |||
| maintained across a resumption of control function operations. This | maintained across a resumption of control function operations. This | |||
| functionality is assumed when the terms "restart/restarting" are used in | functionality is assumed when the terms "restart/restarting" are used in | |||
| this document.</t> | this document.</t> | |||
| <t>The terms "start/starting" are used to refer to a router in which the | <t>The terms "start/starting" are used to refer to a router in which the | |||
| control function has either commenced operations for the first time or | control function has either commenced operations for the first time or | |||
| has resumed operations, but the forwarding functions have not been | has resumed operations, but the forwarding functions have not been | |||
| maintained in a prior state.</t> | maintained in a prior state.</t> | |||
| <t>The terms "(re)start/(re)starting" are used when the text is | <t>The terms "(re)start/(re)starting" are used when the text is | |||
| applicable to both a "starting" and a "restarting" router.</t> | applicable to both a "starting" and a "restarting" router.</t> | |||
| <t>The terms "normal IIH" or "IIH normal" refer to IS-IS Hellos (IIHs) | <t>The terms "normal IIH" or "IIH normal" refer to IS-IS Hellos (IIHs) | |||
| in which the Restart TLV (defined later in this document) has no flags | in which the Restart TLV (defined later in this document) has no flags | |||
| set.</t> | set.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Requirements Language</name> | ||||
| <t> | ||||
| The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | ||||
| IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
| NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | ||||
| RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
| be interpreted as | ||||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
| when, and only when, they appear in all capitals, as shown here. | ||||
| </t> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Approach"> | <name>Approach</name> | |||
| <section title="Timers"> | <section numbered="true" toc="default"> | |||
| <t>Three additional timers, T1, T2, and T3, are required to support | <name>Timers</name> | |||
| <t>Three additional timers (T1, T2, and T3) are required to support | ||||
| the mechanisms defined in this document. Timers T1 and T2 are used | the mechanisms defined in this document. Timers T1 and T2 are used | |||
| both by a restarting router and a starting router. Timer T3 is used | both by a restarting router and a starting router. Timer T3 is used | |||
| only by a restarting router.</t> | only by a restarting router.</t> | |||
| <t>NOTE: These timers are NOT applicable to a router that is | ||||
| <t>NOTE: These timers are NOT applicable to a router which is | ||||
| preparing to do a planned restart.</t> | preparing to do a planned restart.</t> | |||
| <t>An instance of the timer T1 is maintained per interface and | ||||
| <t>An instance of the timer T1 is maintained per interface, and | ||||
| indicates the time after which an unacknowledged (re)start attempt | indicates the time after which an unacknowledged (re)start attempt | |||
| will be repeated. A typical value is 3 seconds.</t> | will be repeated. A typical value is 3 seconds.</t> | |||
| <t>An instance of the timer T2 is maintained for each LSP database | <t>An instance of the timer T2 is maintained for each LSP database | |||
| (LSPDB) present in the system. For example, for a Level 1/2 system, | (LSPDB) present in the system. For example, for a Level 1/2 system, | |||
| there will be an instance of the timer T2 for Level 1 and an instance | there will be an instance of the timer T2 for Level 1 and an instance | |||
| for Level 2. This is the maximum time that the system will wait for | for Level 2. This is the maximum time that the system will wait for | |||
| LSPDB synchronization. A typical value is 60 seconds.</t> | LSPDB synchronization. A typical value is 60 seconds.</t> | |||
| <t>A single instance of the timer T3 is maintained for the entire | <t>A single instance of the timer T3 is maintained for the entire | |||
| system. It indicates the time after which the router will declare that | system. It indicates the time after which the router will declare that | |||
| it has failed to achieve database synchronization (by setting the | it has failed to achieve database synchronization (by setting the | |||
| overload bit in its own LSP). This is initialized to 65535 seconds, | overload bit in its own LSP). This is initialized to 65535 seconds | |||
| but is set to the minimum of the remaining times of received IIHs | but is set to the minimum of the remaining times of received IIHs | |||
| containing a restart TLV with the Restart Acknowledgement (RA) set and | containing a Restart TLV with the Restart Acknowledgement (RA) set and | |||
| an indication that the neighbor has an adjacency in the "UP" state to | an indication that the neighbor has an adjacency in the UP state to | |||
| the restarting router. (See Section 3.2.1a.)</t> | the restarting router. (See <xref target="itema" format="none">item a</x | |||
| ref> in <xref target="useofrrrabitssection"/>.)</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Restart TLV"> | <name>Restart TLV</name> | |||
| <t>A new TLV is defined to be included in IIH PDUs. The TLV includes | <t>A new TLV is defined to be included in IIH PDUs. The TLV includes | |||
| flags that are used to convey information during a (re)start. The | flags that are used to convey information during a (re)start. The | |||
| absence of this TLV indicates that the sender supports none of the | absence of this TLV indicates that the sender supports none of the | |||
| functionality defined in this document. Therefore, if a router | functionality defined in this document. Therefore, if a router | |||
| supports any of the functionality defined in this document it MUST | supports any of the functionality defined in this document it <bcp14>MUS | |||
| include this TLV in all transmitted IIHs.</t> | T</bcp14> include this TLV in all transmitted IIHs.</t> | |||
| <figure> | <dl newline="true" spacing="normal"> | |||
| <artwork><![CDATA[ Type 211 | ||||
| Length: Number of octets in the Value field (1 to (3 + ID Length)) | <dt>Type:</dt><dd>211</dd> | |||
| Value | <dt>Length:</dt><dd>Number of octets in the Value field (1 to (3 + ID | |||
| Length))</dd> | ||||
| No. of octets | <dt>Value:</dt><dd> | |||
| <artwork><![CDATA[ | ||||
| No. of octets | ||||
| +-----------------------+ | +-----------------------+ | |||
| | Flags | 1 | | Flags | 1 | |||
| +-----------------------+ | +-----------------------+ | |||
| | Remaining Time | 2 | | Remaining Time | 2 | |||
| +-----------------------+ | +-----------------------+ | |||
| | Restarting Neighbor ID| ID Length | | Restarting Neighbor ID| ID Length | |||
| +-----------------------+ | +-----------------------+ | |||
| ]]></artwork> | ||||
| Flags (1 octet) | <dl newline="true" spacing="normal"> | |||
| 0 1 2 3 4 5 6 7 | ||||
| +--+--+--+--+--+--+--+--+ | ||||
| |Reserved|PA|PR|SA|RA|RR| | ||||
| +--+--+--+--+--+--+--+--+ | ||||
| RR - Restart Request | <dt>Flags (1 octet)</dt> | |||
| RA - Restart Acknowledgement | <dd> | |||
| SA - Suppress adjacency advertisement | <artwork><![CDATA[ | |||
| PR - Restart is planned | 0 1 2 3 4 5 6 7 | |||
| PA - Planned restart acknowledgement | +--+--+--+--+--+--+--+--+ | |||
| |Reserved|PA|PR|SA|RA|RR| | ||||
| +--+--+--+--+--+--+--+--+ | ||||
| ]]></artwork> | ||||
| Remaining Time (2 octets) | <dl newline="false" spacing="compact"> | |||
| <dt>RR -</dt><dd>Restart Request</dd> | ||||
| <dt>RA -</dt><dd>Restart Acknowledgement</dd> | ||||
| <dt>SA -</dt><dd>Suppress adjacency advertisement</dd> | ||||
| <dt>PR -</dt><dd>Restart is planned</dd> | ||||
| <dt>PA -</dt><dd>Planned restart acknowledgement</dd> | ||||
| </dl> | ||||
| </dd> | ||||
| Remaining holding time (in seconds). | <dt>Remaining Time (2 octets)</dt> | |||
| <dd><t>Remaining Holding Time (in seconds).</t> | ||||
| Required when the RA, PR, or PA bit is set. Otherwise | <t>Required when the RA, PR, or PA bit is set. Otherwise, this field | |||
| this field SHOULD be omitted when sent and | <bcp14>SHOULD</bcp14> be omitted when sent and <bcp14>MUST</bcp14> be ignored | |||
| MUST be ignored when received. | when received.</t> | |||
| </dd> | ||||
| Restarting Neighbor System ID (ID Length octets) | <dt>Restarting Neighbor System ID (ID Length octets)</dt> | |||
| The System ID of the neighbor to which an RA/PA refers. | <dd> | |||
| <t>The System ID of the neighbor to which an RA/PA refers.</t> | ||||
| Required when the RA or PA bit is set. Otherwise | <t>Required when the RA or PA bit is set. Otherwise, | |||
| this field SHOULD be omitted when sent and | this field <bcp14>SHOULD</bcp14> be omitted when sent and | |||
| MUST be ignored when received. | <bcp14>MUST</bcp14> be ignored when received.</t> | |||
| Note: Very early draft versions of the restart functionality | <t>Note: Very early draft versions of the restart functionality | |||
| did not include the Restarting Neighbor System ID in the TLV. | did not include the Restarting Neighbor System ID in the TLV. | |||
| RFC 5306 allowed for the possibility of interoperating with | RFC 5306 allowed for the possibility of interoperating with | |||
| legacy implementations by stating that a router that | legacy implementations by stating that a router that | |||
| is expecting an RA on a LAN circuit should assume that the | is expecting an RA on a LAN circuit should assume that the | |||
| acknowledgement is directed at the local system if the TLV | acknowledgement is directed at the local system if the TLV | |||
| is received with RA set and Restarting Neighbor System ID | is received with RA set and Restarting Neighbor System ID | |||
| is not present. It is an implementation choice whether to | is not present. It is an implementation choice whether to | |||
| continue to accept (on a LAN) a TLV with RA set and | continue to accept (on a LAN) a TLV with RA set and | |||
| Restarting Neighbor System ID absent. Note that the omission | Restarting Neighbor System ID absent. Note that the omission | |||
| of the Restarting Neighbor System ID only introduces ambiguity | of the Restarting Neighbor System ID only introduces ambiguity | |||
| in the case where there are multiple systems on a LAN | in the case where there are multiple systems on a LAN | |||
| simultaneously performing restart. | simultaneously performing restart.</t> | |||
| </dd> | ||||
| ]]></artwork> | </dl> | |||
| </figure> | </dd> | |||
| </dl> | ||||
| <t>The RR and SA flags may both be set in the TLV under the conditions | <t>The RR and SA flags may both be set in the TLV under the conditions | |||
| described in Section 3.3.2. All other combinations where multiple | described in <xref target="adjacencyacqsection"/>. All other combination | |||
| flags are set are invalid and MUST NOT be transmitted. Received TLVs | s where multiple | |||
| which have invalid flag combinations set MUST be ignored.</t> | flags are set are invalid and <bcp14>MUST NOT</bcp14> be transmitted. Re | |||
| ceived TLVs | ||||
| that have invalid flag combinations set <bcp14>MUST</bcp14> be ignored.< | ||||
| /t> | ||||
| <section title="Use of RR and RA Bits"> | <section numbered="true" toc="default" anchor="useofrrrabitssection"> | |||
| <name>Use of RR and RA Bits</name> | ||||
| <t>The RR bit is used by a (re)starting router to signal to its | <t>The RR bit is used by a (re)starting router to signal to its | |||
| neighbors that a (re)start is in progress, that an existing | neighbors that a (re)start is in progress, that an existing | |||
| adjacency SHOULD be maintained even under circumstances when the | adjacency <bcp14>SHOULD</bcp14> be maintained even under circumstances when the | |||
| normal operation of the adjacency state machine would require the | normal operation of the adjacency state machine would require the | |||
| adjacency to be reinitialized, to request a set of CSNPs, and to | adjacency to be reinitialized, to request a set of CSNPs, and to | |||
| request setting of the SRMflags.</t> | request setting of the SRMflags.</t> | |||
| <t>The RA bit is sent by the neighbor of a (re)starting router to | <t>The RA bit is sent by the neighbor of a (re)starting router to | |||
| acknowledge the receipt of a restart TLV with the RR bit set.</t> | acknowledge the receipt of a Restart TLV with the RR bit set.</t> | |||
| <t>When the neighbor of a (re)starting router receives an IIH with | <t>When the neighbor of a (re)starting router receives an IIH with | |||
| the restart TLV having the RR bit set, if there exists on this | the Restart TLV having the RR bit set, if there exists on this | |||
| interface an adjacency in state "UP" with the same System ID, and in | interface an adjacency in the UP state with the same System ID and, in | |||
| the case of a LAN circuit, with the same source LAN address, then, | the case of a LAN circuit, with the same source LAN address, then | |||
| irrespective of the other contents of the "Intermediate System | irrespective of the other contents of the "Intermediate System | |||
| Neighbors" option (LAN circuits) or the "Point-to-Point Three-Way | Neighbors" option (LAN circuits) or the "Point-to-Point Three-Way | |||
| Adjacency" option (Point-to-Point circuits):</t> | Adjacency" option (Point-to-Point circuits):</t> | |||
| <ol spacing="normal" type="a"> | ||||
| <t><list style="letters"> | <li anchor="itema">the state of the adjacency is not changed. If thi | |||
| <t>the state of the adjacency is not changed. If this is the | s is the | |||
| first IIH with the RR bit set that this system has received | first IIH with the RR bit set that this system has received | |||
| associated with this adjacency, then the adjacency is marked as | associated with this adjacency, then the adjacency is marked as | |||
| being in "Restart mode" and the adjacency holding time is | being in "Restart mode" and the adjacency Holding Time is | |||
| refreshed -- otherwise, the holding time is not refreshed. The | refreshed -- otherwise, the Holding Time is not refreshed. The | |||
| "remaining time" transmitted according to (b) below MUST reflect | Remaining Time transmitted according to (b) below <bcp14>MUST</bcp | |||
| 14> reflect | ||||
| the actual time after which the adjacency will now expire. | the actual time after which the adjacency will now expire. | |||
| Receipt of an IIH with the RR bit reset will clear the "Restart | Receipt of an IIH with the RR bit reset will clear the "Restart | |||
| mode" state. This procedure allows the restarting router to | mode" state. This procedure allows the restarting router to | |||
| cause the neighbor to maintain the adjacency long enough for | cause the neighbor to maintain the adjacency long enough for | |||
| restart to successfully complete, while also preventing | restart to successfully complete while also preventing | |||
| repetitive restarts from maintaining an adjacency indefinitely. | repetitive restarts from maintaining an adjacency indefinitely. | |||
| Whether or not an adjacency is marked as being in "Restart mode" | Whether or not an adjacency is marked as being in "Restart mode" | |||
| has no effect on adjacency state transitions.</t> | has no effect on adjacency state transitions.</li> | |||
| <li>immediately (i.e., without waiting for any currently running | ||||
| <t>immediately (i.e., without waiting for any currently running | timer interval to expire but with a small random delay of a few | |||
| timer interval to expire, but with a small random delay of a few | ||||
| tens of milliseconds on LANs to avoid "storms") transmit over | tens of milliseconds on LANs to avoid "storms") transmit over | |||
| the corresponding interface an IIH including the restart TLV | the corresponding interface an IIH including the Restart TLV | |||
| with the RR bit clear and the RA bit set, in the case of | with the RR bit clear and the RA bit set, in the case of | |||
| Point-to-Point adjacencies having updated the "Point-to-Point | Point-to-Point adjacencies having updated the "Point-to-Point | |||
| Three-Way Adjacency" option to reflect any new values received | Three-Way Adjacency" option to reflect any new values received | |||
| from the (re)starting router. (This allows a restarting router | from the (re)starting router. (This allows a restarting router | |||
| to quickly acquire the correct information to place in its | to quickly acquire the correct information to place in its | |||
| hellos.) The "Remaining Time" MUST be set to the current time | hellos.) The Remaining Time <bcp14>MUST</bcp14> be set to the curr ent time | |||
| (in seconds) before the holding timer on this adjacency is due | (in seconds) before the holding timer on this adjacency is due | |||
| to expire. If the corresponding interface is a LAN interface, | to expire. If the corresponding interface is a LAN interface, | |||
| then the Restarting Neighbor System ID SHOULD be set to the | then the Restarting Neighbor System ID <bcp14>SHOULD</bcp14> be se t to the | |||
| System ID of the router from which the IIH with the RR bit set | System ID of the router from which the IIH with the RR bit set | |||
| was received. This is required to correctly associate the | was received. This is required to correctly associate the | |||
| acknowledgement and holding time in the case where multiple | acknowledgement and Holding Time in the case where multiple | |||
| systems on a LAN restart at approximately the same time. This | systems on a LAN restart at approximately the same time. This | |||
| IIH SHOULD be transmitted before any LSPs or SNPs are | IIH <bcp14>SHOULD</bcp14> be transmitted before any LSPs or SNPs a | |||
| transmitted as a result of the receipt of the original IIH.</t> | re | |||
| transmitted as a result of the receipt of the original IIH.</li> | ||||
| <t>if the corresponding interface is a Point-to-Point interface, | <li anchor="itemc">if the corresponding interface is a Point-to-Poin | |||
| t interface, | ||||
| or if the receiving router has the highest LnRouterPriority | or if the receiving router has the highest LnRouterPriority | |||
| (with the highest source MAC (Media Access Control) address | (with the highest source Media Access Control (MAC) address | |||
| breaking ties) among those routers to which the receiving router | breaking ties) among those routers to which the receiving router | |||
| has an adjacency in state "UP" on this interface whose IIHs | has an adjacency in the UP state on this interface whose IIHs | |||
| contain the restart TLV, excluding adjacencies to all routers | contain the Restart TLV, excluding adjacencies to all routers | |||
| which are considered in "Restart mode" (note the actual DIS is | that are considered in "Restart mode" (note the actual | |||
| Designated Intermediate System (DIS) is | ||||
| NOT changed by this process), initiate the transmission over the | NOT changed by this process), initiate the transmission over the | |||
| corresponding interface of a complete set of CSNPs, and set | corresponding interface of a complete set of CSNPs, and set | |||
| SRMflags on the corresponding interface for all LSPs in the | SRMflags on the corresponding interface for all LSPs in the | |||
| local LSP database.</t> | local LSP database.</li> | |||
| </list>Otherwise (i.e., if there was no adjacency in the "UP" | </ol> | |||
| <t>Otherwise (i.e., if there was no adjacency in the UP | ||||
| state to the System ID in question), process the IIH as normal by | state to the System ID in question), process the IIH as normal by | |||
| reinitializing the adjacency and setting the RA bit in the returned | reinitializing the adjacency and setting the RA bit in the returned | |||
| IIH.</t> | IIH.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default" anchor="useofsabitsection"> | ||||
| <section title="Use of the SA Bit"> | <name>Use of the SA Bit</name> | |||
| <t>The SA bit is used by a starting router to request that its | <t>The SA bit is used by a starting router to request that its | |||
| neighbor suppress advertisement of the adjacency to the starting | neighbor suppress advertisement of the adjacency to the starting | |||
| router in the neighbor's LSPs.</t> | router in the neighbor's LSPs.</t> | |||
| <t>A router that is starting has no maintained forwarding function | <t>A router that is starting has no maintained forwarding function | |||
| state. This may or may not be the first time the router has started. | state. This may or may not be the first time the router has started. | |||
| If this is not the first time the router has started, copies of LSPs | If this is not the first time the router has started, copies of LSPs | |||
| generated by this router in its previous incarnation may exist in | generated by this router in its previous incarnation may exist in | |||
| the LSP databases of other routers in the network. These copies are | the LSP databases of other routers in the network. These copies are | |||
| likely to appear "newer" than LSPs initially generated by the | likely to appear "newer" than LSPs initially generated by the | |||
| starting router due to the reinitialization of LSP fragment sequence | starting router due to the reinitialization of LSP fragment sequence | |||
| numbers by the starting router. This may cause temporary blackholes | numbers by the starting router. This may cause temporary blackholes | |||
| to occur until the normal operation of the update process causes the | to occur until the normal operation of the update process causes the | |||
| starting router to regenerate and flood copies of its own LSPs with | starting router to regenerate and flood copies of its own LSPs with | |||
| skipping to change at line 382 ¶ | skipping to change at line 350 ¶ | |||
| likely to appear "newer" than LSPs initially generated by the | likely to appear "newer" than LSPs initially generated by the | |||
| starting router due to the reinitialization of LSP fragment sequence | starting router due to the reinitialization of LSP fragment sequence | |||
| numbers by the starting router. This may cause temporary blackholes | numbers by the starting router. This may cause temporary blackholes | |||
| to occur until the normal operation of the update process causes the | to occur until the normal operation of the update process causes the | |||
| starting router to regenerate and flood copies of its own LSPs with | starting router to regenerate and flood copies of its own LSPs with | |||
| higher sequence numbers. The temporary blackholes can be avoided if | higher sequence numbers. The temporary blackholes can be avoided if | |||
| the starting router's neighbors suppress advertising an adjacency to | the starting router's neighbors suppress advertising an adjacency to | |||
| the starting router until the starting router has been able to | the starting router until the starting router has been able to | |||
| propagate newer versions of LSPs generated by previous | propagate newer versions of LSPs generated by previous | |||
| incarnations.</t> | incarnations.</t> | |||
| <t>When a router receives an IIH with the Restart TLV having the SA | ||||
| <t>When a router receives an IIH with the restart TLV having the SA | bit set, if there exists on this interface an adjacency in the UP stat | |||
| bit set, if there exists on this interface an adjacency in state | e | |||
| "UP" with the same System ID, and in the case of a LAN circuit, with | with the same System ID and, in the case of a LAN circuit, with | |||
| the same source LAN address, then the router MUST suppress | the same source LAN address, then the router <bcp14>MUST</bcp14> suppr | |||
| ess | ||||
| advertisement of the adjacency to the neighbor in its own LSPs. | advertisement of the adjacency to the neighbor in its own LSPs. | |||
| Until an IIH with the SA bit clear has been received, the neighbor | Until an IIH with the SA bit clear has been received, the neighbor | |||
| advertisement MUST continue to be suppressed. If the adjacency | advertisement <bcp14>MUST</bcp14> continue to be suppressed. If the ad | |||
| transitions to the "UP" state, the new adjacency MUST NOT be | jacency | |||
| transitions to the UP state, the new adjacency <bcp14>MUST NOT</bcp14> | ||||
| be | ||||
| advertised until an IIH with the SA bit clear has been received.</t> | advertised until an IIH with the SA bit clear has been received.</t> | |||
| <t>Note that a router that suppresses advertisement of an adjacency | <t>Note that a router that suppresses advertisement of an adjacency | |||
| MUST NOT use this adjacency when performing its SPF calculation. In | <bcp14>MUST NOT</bcp14> use this adjacency when performing its SPF cal culation. In | |||
| particular, if an implementation follows the example guidelines | particular, if an implementation follows the example guidelines | |||
| presented in [ISO10589], Annex C.2.5, Step 0:b) "pre-load TENT with | presented in <xref target="ISO10589" format="default"/>, Annex C.2.5, | |||
| the local adjacency database", the suppressed adjacency MUST NOT be | Step 0:b) "pre-load TENT with | |||
| the local adjacency database", the suppressed adjacency <bcp14>MUST NO | ||||
| T</bcp14> be | ||||
| loaded into TENT.</t> | loaded into TENT.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Use of PR and PA Bits"> | <name>Use of PR and PA Bits</name> | |||
| <t>The PR bit is used by a router which is planning to initiate a | <t>The PR bit is used by a router that is planning to initiate a | |||
| restart to signal to its neighbors that it will be restarting. The | restart to signal to its neighbors that it will be restarting. The | |||
| router sending an IIH with PR bit set SHOULD set the "remaining | router sending an IIH with PR bit set <bcp14>SHOULD</bcp14> set the Re | |||
| time" to a value greater than the expected control plane restart | maining | |||
| time. The PR bit SHOULD remain set in IIHs until the restart is | Time to a value greater than the expected control-plane restart | |||
| time. The PR bit <bcp14>SHOULD</bcp14> remain set in IIHs until the re | ||||
| start is | ||||
| initiated.</t> | initiated.</t> | |||
| <t>The PA bit is sent by the neighbor of a router planning to | <t>The PA bit is sent by the neighbor of a router planning to | |||
| restart to acknowledge receipt of a restart TLV with the PR bit | restart to acknowledge receipt of a Restart TLV with the PR bit | |||
| set.</t> | set.</t> | |||
| <t>When the neighbor of a router planning a restart receives an IIH | <t>When the neighbor of a router planning a restart receives an IIH | |||
| with the restart TLV having the PR bit set, if there exists on this | with the Restart TLV having the PR bit set, if there exists on this | |||
| interface an adjacency in state "UP" with the same System ID, and in | interface an adjacency in the UP state with the same System ID and, in | |||
| the case of a LAN circuit, with the same source LAN address, | the case of a LAN circuit, with the same source LAN address, | |||
| then:</t> | then:</t> | |||
| <ol spacing="normal" type="a"> | ||||
| <t><list style="letters"> | <li>if this is the first IIH with the PR bit set that this system | |||
| <t>if this is the first IIH with the PR bit set that this system | ||||
| has received associated with this adjacency, then the adjacency | has received associated with this adjacency, then the adjacency | |||
| is marked as being in "Planned Restart state" and the adjacency | is marked as being in Planned Restart State and the adjacency | |||
| holding time is refreshed -- otherwise, the holding time is not | Holding Time is refreshed -- otherwise, the Holding Time is not | |||
| refreshed. The holding time SHOULD be set to the "remaining | refreshed. The Holding Time <bcp14>SHOULD</bcp14> be set to the Re | |||
| time" specified in the received IIH with PR set. The "remaining | maining | |||
| time" transmitted according to (b) below MUST reflect the actual | Time specified in the received IIH with PR set. The Remaining | |||
| Time transmitted according to (b) below <bcp14>MUST</bcp14> reflec | ||||
| t the actual | ||||
| time after which the adjacency will now expire. Receipt of an | time after which the adjacency will now expire. Receipt of an | |||
| IIH with the PR bit reset will clear the "Planned Restart state" | IIH with the PR bit reset will clear the Planned Restart State | |||
| and cause the receiving router to set the adjacency hold time to | and cause the receiving router to set the adjacency Holding Time t | |||
| o | ||||
| the locally configured value. This procedure allows the router | the locally configured value. This procedure allows the router | |||
| planning a restart to cause the neighbor to maintain the | planning a restart to cause the neighbor to maintain the | |||
| adjacency long enough for restart to successfully complete. | adjacency long enough for restart to successfully complete. | |||
| Whether or not an adjacency is marked as being in "Planned | Whether or not an adjacency is marked as being in Planned | |||
| Restart state" has no effect on adjacency state transitions.</t> | Restart State has no effect on adjacency state transitions.</li> | |||
| <li>immediately (i.e., without waiting for any currently running | ||||
| <t>immediately (i.e., without waiting for any currently running | ||||
| timer interval to expire, but with a small random delay of a few | timer interval to expire, but with a small random delay of a few | |||
| tens of milliseconds on LANs to avoid "storms") transmit over | tens of milliseconds on LANs to avoid "storms") transmit over | |||
| the corresponding interface an IIH including the restart TLV | the corresponding interface an IIH including the Restart TLV | |||
| with the PR bit clear and the PA bit set. The "Remaining Time" | with the PR bit clear and the PA bit set. The Remaining Time | |||
| MUST be set to the current time (in seconds) before the holding | <bcp14>MUST</bcp14> be set to the current time (in seconds) before | |||
| the holding | ||||
| timer on this adjacency is due to expire. If the corresponding | timer on this adjacency is due to expire. If the corresponding | |||
| interface is a LAN interface, then the Restarting Neighbor | interface is a LAN interface, then the Restarting Neighbor | |||
| System ID SHOULD be set to the System ID of the router from | System ID <bcp14>SHOULD</bcp14> be set to the System ID of the rou ter from | |||
| which the IIH with the PR bit set was received. This is required | which the IIH with the PR bit set was received. This is required | |||
| to correctly associate the acknowledgement and holding time in | to correctly associate the acknowledgement and Holding Time in | |||
| the case where multiple systems on a LAN are planning a restart | the case where multiple systems on a LAN are planning a restart | |||
| at approximately the same time.</t> | at approximately the same time.</li> | |||
| </list></t> | </ol> | |||
| <t>NOTE: Receipt of an IIH with PA bit set indicates to the router | <t>NOTE: Receipt of an IIH with PA bit set indicates to the router | |||
| planning a restart that the neighbor is aware of the planned restart | planning a restart that the neighbor is aware of the planned restart | |||
| and - in the absence of topology changes as described below - will | and -- in the absence of topology changes as described below -- will | |||
| maintain the adjacency for the "remaining time" included in the IIH | maintain the adjacency for the Remaining Time included in the IIH | |||
| with PA set.</t> | with PA set.</t> | |||
| <t>By definition, a restarting router maintains forwarding state | <t>By definition, a restarting router maintains forwarding state | |||
| across the control plane restart (see Section 2). But while a | across the control-plane restart (see <xref target="conventions"/>). B | |||
| control plane restart is in progress it is expected that the | ut while a | |||
| control-plane restart is in progress, it is expected that the | ||||
| restarting router will be unable to respond to topology changes. It | restarting router will be unable to respond to topology changes. It | |||
| is therefore useful to signal a planned restart so that the | is therefore useful to signal a planned restart so that the | |||
| neighbors of the restarting router can determine whether it is safe | neighbors of the restarting router can determine whether it is safe | |||
| to maintain the adjacency if other topology changes occur prior to | to maintain the adjacency if other topology changes occur prior to | |||
| the completion of the restart. Signalling a planned restart in the | the completion of the restart. Signaling a planned restart in the | |||
| absence of maintained forwarding plane state is likely to lead to | absence of maintained forwarding-plane state is likely to lead to | |||
| significant traffic loss and MUST NOT be done.</t> | significant traffic loss and <bcp14>MUST NOT</bcp14> be done.</t> | |||
| <t>Neighbors of the router that have signaled planned restart <bcp14>S | ||||
| <t>Neighbors of the router which has signaled planned restart SHOULD | HOULD</bcp14> | |||
| maintain the adjacency in a planned restart state until it receives | maintain the adjacency in a Planned Restart State until it receives | |||
| an IIH with the RR bit set, receives an IIH with both PR and RR bits | an IIH with the RR bit set, it receives an IIH with both PR and RR bit | |||
| clear, or the adjacency holding time expires - whichever occurs | s | |||
| first. Neighbors which choose not to follow the recommended behavior | clear, or the adjacency Holding Time expires -- whichever occurs | |||
| first. Neighbors that choose not to follow the recommended behavior | ||||
| need to consider the impact on traffic delivery of not using the | need to consider the impact on traffic delivery of not using the | |||
| restarting router for forwarding traffic during the restart | restarting router for forwarding traffic during the restart | |||
| period.</t> | period.</t> | |||
| <t>While the adjacency is in Planned Restart State, some or all of | ||||
| <t>While the adjacency is in planned restart state some or all of | the following actions <bcp14>MAY</bcp14> be taken:</t> | |||
| the following actions MAY be taken:</t> | <ol spacing="normal" type="a"> | |||
| <li>If additional topology changes occur, the adjacency that is | ||||
| <t><list style="letters"> | in Planned Restart State <bcp14>MAY</bcp14> be brought down even t | |||
| <t>if additional topology changes occur, the adjacency which is | hough the | |||
| in planned restart state MAY be brought down even though the | Holding Time has not yet expired. Given that the neighbor that has | |||
| hold time has not yet expired. Given that the neighbor which has | ||||
| signaled a planned restart is not expected to update its | signaled a planned restart is not expected to update its | |||
| forwarding plane in response to signalling of the topology | forwarding plane in response to signaling of the topology | |||
| changes (since it is restarting) traffic which transits that | changes (since it is restarting) traffic that transits that | |||
| node is at risk of being improperly forwarded. On a LAN circuit, | node is at risk of being improperly forwarded. On a LAN circuit, | |||
| if the router in planned restart state is the DIS at any | if the router in Planned Restart State is the DIS at any | |||
| supported level, the adjacency(ies) SHOULD be brought down | supported level, the adjacency or adjacencies <bcp14>SHOULD</bcp14 | |||
| whenever any LSP update is either generated or received, so as | > be brought down | |||
| whenever any LSP update is either generated or received so as | ||||
| to trigger a new DIS election. Failure to do so will compromise | to trigger a new DIS election. Failure to do so will compromise | |||
| the reliability of the Update Process on that circuit. What | the reliability of the update process on that circuit. What | |||
| other criteria are used to determine what topology changes will | other criteria are used to determine what topology changes will | |||
| trigger bringing the adjacency down is a local implementation | trigger bringing the adjacency down is a local implementation | |||
| decision.</t> | decision.</li> | |||
| <li>If a Bidirectional Forwarding Detection (BFD) <xref target="RFC5 | ||||
| <t>if a BFD <xref target="RFC5880"/> session to the neighbor | 880" format="default"/> Session to the neighbor | |||
| which signals a planned restart is in the UP state and | that signals a planned restart is in the UP state and | |||
| subsequently goes DOWN, the event MAY be ignored since it is | subsequently goes down, the event <bcp14>MAY</bcp14> be ignored si | |||
| nce it is | ||||
| possible this is an expected side effect of the restart. Use of | possible this is an expected side effect of the restart. Use of | |||
| the Control Plane Independent state as signalled in BFD control | the Control-Plane Independent state as signaled in BFD control | |||
| packets SHOULD be considered in the decision to ignore a BFD | packets <bcp14>SHOULD</bcp14> be considered in the decision to ign | |||
| Session DOWN event.</t> | ore a BFD | |||
| Session DOWN event.</li> | ||||
| <t>on a Point-to-Point circuit, transmission of LSPs, CSNPs, and | <li>On a Point-to-Point circuit, transmission of LSPs, CSNPs, and | |||
| PSNPs MAY be suppressed. It is expected that the PDUs will not | Partial Sequence Number PDU (PSNPs) <bcp14>MAY</bcp14> be suppress | |||
| be received.</t> | ed. It is expected that the PDUs will not | |||
| </list></t> | be received.</li> | |||
| </ol> | ||||
| <t>Use of the PR bit provides a means to safely support restart | <t>Use of the PR bit provides a means to safely support restart | |||
| periods which are significantly longer than standard holdtimes.</t> | periods that are significantly longer than standard Holding Times.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Adjacency (Re)Acquisition"> | <name>Adjacency (Re)Acquisition</name> | |||
| <t>Adjacency (re)acquisition is the first step in (re)initialization. | <t>Adjacency (re)acquisition is the first step in (re)initialization. | |||
| Restarting and starting routers will make use of the RR bit in the | Restarting and starting routers will make use of the RR bit in the | |||
| restart TLV, though each will use it at different stages of the | Restart TLV, though each will use it at different stages of the | |||
| (re)start procedure.</t> | (re)start procedure.</t> | |||
| <section numbered="true" toc="default" anchor="adjacencyreacqsection"> | ||||
| <section title="Adjacency Reacquisition during Restart"> | <name>Adjacency Reacquisition during Restart</name> | |||
| <t>The restarting router explicitly notifies its neighbor that the | <t>The restarting router explicitly notifies its neighbor that the | |||
| adjacency is being reacquired, and hence that it SHOULD NOT | adjacency is being reacquired and, hence, that it <bcp14>SHOULD NOT</b cp14> | |||
| reinitialize the adjacency. This is achieved by setting the RR bit | reinitialize the adjacency. This is achieved by setting the RR bit | |||
| in the restart TLV. When the neighbor of a restarting router | in the Restart TLV. When the neighbor of a restarting router | |||
| receives an IIH with the restart TLV having the RR bit set, if there | receives an IIH with the Restart TLV having the RR bit set, if there | |||
| exists on this interface an adjacency in state "UP" with the same | exists on this interface an adjacency in the UP state with the same | |||
| System ID, and in the case of a LAN circuit, with the same source | System ID and, in the case of a LAN circuit, with the same source | |||
| LAN address, then the procedures described in Section 3.2.1 are | LAN address, then the procedures described in <xref target="useofrrrab | |||
| itssection"/> are | ||||
| followed.</t> | followed.</t> | |||
| <t>A router that does not support the restart capability will ignore | <t>A router that does not support the restart capability will ignore | |||
| the restart TLV and reinitialize the adjacency as normal, returning | the Restart TLV and reinitialize the adjacency as normal, returning | |||
| an IIH without the restart TLV.</t> | an IIH without the Restart TLV.</t> | |||
| <t>On restarting, a router initializes the timer T3, starts the | <t>On restarting, a router initializes the timer T3, starts the | |||
| timer T2 for each LSPDB, and for each interface (and in the case of | timer T2 for each LSPDB, and for each interface (and in the case of | |||
| a LAN circuit, for each level) starts the timer T1 and transmits an | a LAN circuit, for each level) starts the timer T1 and transmits an | |||
| IIH containing the restart TLV with the RR bit set.</t> | IIH containing the Restart TLV with the RR bit set.</t> | |||
| <t>On a Point-to-Point circuit, the restarting router <bcp14>SHOULD</b | ||||
| <t>On a Point-to-Point circuit, the restarting router SHOULD set the | cp14> set the | |||
| "Adjacency Three-Way State" to "Init", because the receipt of the | "Adjacency Three-Way State" to "Init", because the receipt of the | |||
| acknowledging IIH (with RA set) MUST cause the adjacency to enter | acknowledging IIH (with RA set) <bcp14>MUST</bcp14> cause the adjacenc | |||
| the "UP" state immediately.</t> | y to enter | |||
| the UP state immediately.</t> | ||||
| <t>On a LAN circuit, the LAN-ID assigned to the circuit SHOULD be | <t>On a LAN circuit, the LAN-ID assigned to the circuit <bcp14>SHOULD< | |||
| /bcp14> be | ||||
| the same as that used prior to the restart. In particular, for any | the same as that used prior to the restart. In particular, for any | |||
| circuits for which the restarting router was previously DIS, the use | circuits for which the restarting router was previously DIS, the use | |||
| of a different LAN-ID would necessitate the generation of a new set | of a different LAN-ID would necessitate the generation of a new set | |||
| of pseudonode LSPs, and corresponding changes in all the LSPs | of pseudonode LSPs and corresponding changes in all the LSPs | |||
| referencing them from other routers on the LAN. By preserving the | referencing them from other routers on the LAN. By preserving the | |||
| LAN-ID across the restart, this churn can be prevented. To enable a | LAN-ID across the restart, this churn can be prevented. To enable a | |||
| restarting router to learn the LAN-ID used prior to restart, the | restarting router to learn the LAN-ID used prior to restart, the | |||
| LAN-ID specified in an IIH with RR set MUST be ignored.</t> | LAN-ID specified in an IIH with RR set <bcp14>MUST</bcp14> be ignored. | |||
| </t> | ||||
| <t>Transmission of "normal IIHs" is inhibited until the conditions | <t>Transmission of "normal IIHs" is inhibited until the conditions | |||
| described below are met (in order to avoid causing an unnecessary | described below are met (in order to avoid causing an unnecessary | |||
| adjacency initialization). Upon expiry of the timer T1, it is | adjacency initialization). Upon expiry of the timer T1, it is | |||
| restarted and the IIH is retransmitted as above.</t> | restarted and the IIH is retransmitted as above.</t> | |||
| <t>When a restarting router receives an IIH a local adjacency is | <t>When a restarting router receives an IIH a local adjacency is | |||
| established as usual, and if the IIH contains a restart TLV with the | established as usual, and if the IIH contains a Restart TLV with the | |||
| RA bit set (and on LAN circuits with a Restart Neighbor System ID | RA bit set (and on LAN circuits with a Restart Neighbor System ID | |||
| that matches that of the local system), the receipt of the | that matches that of the local system), the receipt of the | |||
| acknowledgement over that interface is noted. When the RA bit is set | acknowledgement over that interface is noted. When the RA bit is set | |||
| and the state of the remote adjacency is "UP", then the timer T3 is | and the state of the remote adjacency is UP, then the timer T3 is | |||
| set to the minimum of its current value and the value of the | set to the minimum of its current value and the value of the | |||
| "Remaining Time" field in the received IIH.</t> | Remaining Time field in the received IIH.</t> | |||
| <t>On a Point-to-Point link, receipt of an IIH not containing the | <t>On a Point-to-Point link, receipt of an IIH not containing the | |||
| restart TLV is also treated as an acknowledgement, since it | Restart TLV is also treated as an acknowledgement, since it | |||
| indicates that the neighbor is not restart capable. However, since | indicates that the neighbor is not restart capable. However, since | |||
| no CSNP is guaranteed to be received over this interface, the timer | no CSNP is guaranteed to be received over this interface, the timer | |||
| T1 is cancelled immediately without waiting for a complete set of | T1 is canceled immediately without waiting for a complete set of | |||
| CSNPs. Synchronization may therefore be deemed complete even though | CSNPs. Synchronization may therefore be deemed complete even though | |||
| there are some LSPs which are held (only) by this neighbor (see | there are some LSPs that are held (only) by this neighbor (see | |||
| Section 3.4). In this case, we also want to be certain that the | <xref target="dbsyncsection"/>). In this case, we also want to be cert | |||
| ain that the | ||||
| neighbor will reinitialize the adjacency in order to guarantee that | neighbor will reinitialize the adjacency in order to guarantee that | |||
| the SRMflags have been set on its database, thus ensuring eventual | the SRMflags have been set on its database, thus ensuring eventual | |||
| LSPDB synchronization. This is guaranteed to happen except in the | LSPDB synchronization. This is guaranteed to happen except in the | |||
| case where the Adjacency Three-Way State in the received IIH is "UP" | case where the Adjacency Three-Way State in the received IIH is UP | |||
| and the Neighbor Extended Local Circuit ID matches the extended | and the Neighbor Extended Local Circuit ID matches the Extended | |||
| local circuit ID assigned by the restarting router. In this case, | Local Circuit ID assigned by the restarting router. In this case, | |||
| the restarting router MUST force the adjacency to reinitialize by | the restarting router <bcp14>MUST</bcp14> force the adjacency to reini | |||
| setting the local Adjacency Three-Way State to "DOWN" and sending a | tialize by | |||
| setting the local Adjacency Three-Way State to DOWN and sending a | ||||
| normal IIH.</t> | normal IIH.</t> | |||
| <t>In the case of a LAN interface, receipt of an IIH not containing | <t>In the case of a LAN interface, receipt of an IIH not containing | |||
| the restart TLV is unremarkable since synchronization can still | the Restart TLV is unremarkable since synchronization can still | |||
| occur so long as at least one of the non-restarting neighboring | occur so long as at least one of the non-restarting neighboring | |||
| routers on the LAN supports restart. Therefore, T1 continues to run | routers on the LAN supports restart. Therefore, T1 continues to run | |||
| in this case. If none of the neighbors on the LAN are restart | in this case. If none of the neighbors on the LAN are restart | |||
| capable, T1 will eventually expire after the locally defined number | capable, T1 will eventually expire after the locally defined number | |||
| of retries.</t> | of retries.</t> | |||
| <t>In the case of a Point-to-Point circuit, the LocalCircuitID and | ||||
| <t>In the case of a Point-to-Point circuit, the "LocalCircuitID" and | Extended Local Circuit ID information contained in the IIH can be | |||
| "Extended Local Circuit ID" information contained in the IIH can be | ||||
| used immediately to generate an IIH containing the correct three-way | used immediately to generate an IIH containing the correct three-way | |||
| handshake information. The presence of "Neighbor Extended Local | handshake information. The presence of Neighbor Extended Local | |||
| Circuit ID" information that does not match the value currently in | Circuit ID information that does not match the value currently in | |||
| use by the local system is ignored (since the IIH may have been | use by the local system is ignored (since the IIH may have been | |||
| transmitted before the neighbor had received the new value from the | transmitted before the neighbor had received the new value from the | |||
| restarting router), but the adjacency remains in the initializing | restarting router), but the adjacency remains in the initializing | |||
| state until the correct information is received.</t> | state until the correct information is received.</t> | |||
| <t>In the case of a LAN circuit, the source neighbor information | <t>In the case of a LAN circuit, the source neighbor information | |||
| (e.g., SNPAAddress) is recorded and used for adjacency establishment | (e.g., SNPAAddress) is recorded and used for adjacency establishment | |||
| and maintenance as normal.</t> | and maintenance as normal.</t> | |||
| <t>When BOTH a complete set of CSNPs (for each active level, in the | <t>When BOTH a complete set of CSNPs (for each active level, in the | |||
| case of a Point-to-Point circuit) and an acknowledgement have been | case of a Point-to-Point circuit) and an acknowledgement have been | |||
| received over the interface, the timer T1 is cancelled.</t> | received over the interface, the timer T1 is canceled.</t> | |||
| <t>Once the timer T1 has been canceled, subsequent IIHs are | ||||
| <t>Once the timer T1 has been cancelled, subsequent IIHs are | transmitted according to the normal algorithms but including the | |||
| transmitted according to the normal algorithms, but including the | Restart TLV with both RR and RA clear.</t> | |||
| restart TLV with both RR and RA clear.</t> | ||||
| <t>If a LAN contains a mixture of systems, only some of which | <t>If a LAN contains a mixture of systems, only some of which | |||
| support the new algorithm, database synchronization is still | support the new algorithm, database synchronization is still | |||
| guaranteed, but the "old" systems will have reinitialized their | guaranteed, but the "old" systems will have reinitialized their | |||
| adjacencies.</t> | adjacencies.</t> | |||
| <t>If an interface is active but does not have any neighboring | ||||
| <t>If an interface is active, but does not have any neighboring | ||||
| router reachable over that interface, the timer T1 would never be | router reachable over that interface, the timer T1 would never be | |||
| cancelled, and according to Section 3.4.1.1, the SPF would never be | canceled, and according to <xref target="restartingsection"/>, the SPF | |||
| run. Therefore, timer T1 is cancelled after some predetermined | would never be | |||
| number of expirations (which MAY be 1).</t> | run. Therefore, timer T1 is canceled after some predetermined | |||
| number of expirations (which <bcp14>MAY</bcp14> be 1).</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default" anchor="adjacencyacqsection"> | ||||
| <section title="Adjacency Acquisition during Start"> | <name>Adjacency Acquisition during Start</name> | |||
| <t>The starting router wants to ensure that in the event that a | <t>The starting router wants to ensure that in the event that a | |||
| neighboring router has an adjacency to the starting router in the | neighboring router has an adjacency to the starting router in the | |||
| "UP" state (from a previous incarnation of the starting router), | UP state (from a previous incarnation of the starting router), | |||
| this adjacency is reinitialized. The starting router also wants | this adjacency is reinitialized. The starting router also wants | |||
| neighboring routers to suppress advertisement of an adjacency to the | neighboring routers to suppress advertisement of an adjacency to the | |||
| starting router until LSP database synchronization is achieved. This | starting router until LSP database synchronization is achieved. This | |||
| is achieved by sending IIHs with the RR bit clear and the SA bit set | is achieved by sending IIHs with the RR bit clear and the SA bit set | |||
| in the restart TLV. The RR bit remains clear and the SA bit remains | in the Restart TLV. The RR bit remains clear and the SA bit remains | |||
| set in subsequent transmissions of IIHs until the adjacency has | set in subsequent transmissions of IIHs until the adjacency has | |||
| reached the "UP" state and the initial T1 timer interval (see below) | reached the UP state and the initial T1 timer interval (see below) | |||
| has expired.</t> | has expired.</t> | |||
| <t>Receipt of an IIH with the RR bit clear will result in the | <t>Receipt of an IIH with the RR bit clear will result in the | |||
| neighboring router utilizing normal operation of the adjacency state | neighboring router utilizing normal operation of the adjacency state | |||
| machine. This will ensure that any old adjacency on the neighboring | machine. This will ensure that any old adjacency on the neighboring | |||
| router will be reinitialized.</t> | router will be reinitialized.</t> | |||
| <t>Upon receipt of an IIH with the SA bit set, the behavior | <t>Upon receipt of an IIH with the SA bit set, the behavior | |||
| described in Section 3.2.2 is followed.</t> | described in <xref target="useofsabitsection"/> is followed.</t> | |||
| <t>Upon starting, a router starts timer T2 for each LSPDB.</t> | <t>Upon starting, a router starts timer T2 for each LSPDB.</t> | |||
| <t>For each interface (and in the case of a LAN circuit, for each | <t>For each interface (and in the case of a LAN circuit, for each | |||
| level), when an adjacency reaches the "UP" state, the starting | level), when an adjacency reaches the UP state, the starting | |||
| router starts a timer T1 and transmits an IIH containing the restart | router starts a timer T1 and transmits an IIH containing the restart | |||
| TLV with the RR bit clear and SA bit set. Upon expiry of the timer | TLV with the RR bit clear and SA bit set. Upon expiry of the timer | |||
| T1, it is restarted and the IIH is retransmitted with both RR and SA | T1, it is restarted and the IIH is retransmitted with both RR and SA | |||
| bits set (only the RR bit has changed state from earlier IIHs).</t> | bits set (only the RR bit has changed state from earlier IIHs).</t> | |||
| <t>Upon receipt of an IIH with the RR bit set (regardless of whether | <t>Upon receipt of an IIH with the RR bit set (regardless of whether | |||
| or not the SA bit is set), the behavior described in Section 3.2.1 | or not the SA bit is set), the behavior described in <xref target="use ofrrrabitssection"/> | |||
| is followed.</t> | is followed.</t> | |||
| <t>When an IIH is received by the starting router and the IIH | <t>When an IIH is received by the starting router and the IIH | |||
| contains a restart TLV with the RA bit set (and on LAN circuits with | contains a Restart TLV with the RA bit set (and on LAN circuits with | |||
| a Restart Neighbor System ID that matches that of the local system), | a Restart Neighbor System ID that matches that of the local system), | |||
| the receipt of the acknowledgement over that interface is noted.</t> | the receipt of the acknowledgement over that interface is noted.</t> | |||
| <t>On a Point-to-Point link, receipt of an IIH not containing the | <t>On a Point-to-Point link, receipt of an IIH not containing the | |||
| restart TLV is also treated as an acknowledgement, since it | Restart TLV is also treated as an acknowledgement, since it | |||
| indicates that the neighbor is not restart capable. Since the | indicates that the neighbor is not restart capable. Since the | |||
| neighbor will have reinitialized the adjacency, this guarantees that | neighbor will have reinitialized the adjacency, this guarantees that | |||
| SRMflags have been set on its database, thus ensuring eventual LSPDB | SRMflags have been set on its database, thus ensuring eventual LSPDB | |||
| synchronization. However, since no CSNP is guaranteed to be received | synchronization. However, since no CSNP is guaranteed to be received | |||
| over this interface, the timer T1 is cancelled immediately without | over this interface, the timer T1 is canceled immediately without | |||
| waiting for a complete set of CSNPs. Synchronization may therefore | waiting for a complete set of CSNPs. Synchronization may therefore | |||
| be deemed complete even though there are some LSPs that are held | be deemed complete even though there are some LSPs that are held | |||
| (only) by this neighbor (see Section 3.4).</t> | (only) by this neighbor (see <xref target="dbsyncsection"/>).</t> | |||
| <t>In the case of a LAN interface, receipt of an IIH not containing | <t>In the case of a LAN interface, receipt of an IIH not containing | |||
| the restart TLV is unremarkable since synchronization can still | the Restart TLV is unremarkable since synchronization can still | |||
| occur so long as at least one of the non-restarting neighboring | occur so long as at least one of the non-restarting neighboring | |||
| routers on the LAN supports restart. Therefore, T1 continues to run | routers on the LAN supports restart. Therefore, T1 continues to run | |||
| in this case. If none of the neighbors on the LAN are restart | in this case. If none of the neighbors on the LAN are restart | |||
| capable, T1 will eventually expire after the locally defined number | capable, T1 will eventually expire after the locally defined number | |||
| of retries. The usual operation of the update process will ensure | of retries. The usual operation of the update process will ensure | |||
| that synchronization is eventually achieved.</t> | that synchronization is eventually achieved.</t> | |||
| <t>When BOTH a complete set of CSNPs (for each active level, in the | <t>When BOTH a complete set of CSNPs (for each active level, in the | |||
| case of a Point-to-Point circuit) and an acknowledgement have been | case of a Point-to-Point circuit) and an acknowledgement have been | |||
| received over the interface, the timer T1 is cancelled. Subsequent | received over the interface, the timer T1 is canceled. Subsequent | |||
| IIHs sent by the starting router have the RR and RA bits clear and | IIHs sent by the starting router have the RR and RA bits clear and | |||
| the SA bit set in the restart TLV.</t> | the SA bit set in the Restart TLV.</t> | |||
| <t>Timer T1 is canceled after some predetermined number of | ||||
| <t>Timer T1 is cancelled after some predetermined number of | expirations (which <bcp14>MAY</bcp14> be 1).</t> | |||
| expirations (which MAY be 1).</t> | <t>When the T2 timer(s) are canceled or expire, transmission of | |||
| <t>When the T2 timer(s) are cancelled or expire, transmission of | ||||
| "normal IIHs" will begin.</t> | "normal IIHs" will begin.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Multiple Levels"> | <name>Multiple Levels</name> | |||
| <t>A router that is operating as both a Level 1 and a Level 2 router | <t>A router that is operating as both a Level 1 and a Level 2 router | |||
| on a particular interface MUST perform the above operations for each | on a particular interface <bcp14>MUST</bcp14> perform the above operat ions for each | |||
| level.</t> | level.</t> | |||
| <t>On a LAN interface, it <bcp14>MUST</bcp14> send and receive both Le | ||||
| <t>On a LAN interface, it MUST send and receive both Level 1 and | vel 1 and | |||
| Level 2 IIHs and perform the CSNP synchronizations independently for | Level 2 IIHs and perform the CSNP synchronizations independently for | |||
| each level.</t> | each level.</t> | |||
| <t>On a Point-to-Point interface, only a single IIH (indicating | <t>On a Point-to-Point interface, only a single IIH (indicating | |||
| support for both levels) is required, but it MUST perform the CSNP | support for both levels) is required, but it <bcp14>MUST</bcp14> perfo rm the CSNP | |||
| synchronizations independently for each level.</t> | synchronizations independently for each level.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default" anchor="dbsyncsection"> | ||||
| <section title="Database Synchronization"> | <name>Database Synchronization</name> | |||
| <t>When a router is started or restarted, it can expect to receive a | <t>When a router is started or restarted, it can expect to receive a | |||
| complete set of CSNPs over each interface. The arrival of the CSNP(s) | complete set of CSNPs over each interface. The arrival of the CSNP(s) | |||
| is now guaranteed, since an IIH with the RR bit set will be | is now guaranteed, since an IIH with the RR bit set will be | |||
| retransmitted until the CSNP(s) are correctly received.</t> | retransmitted until the CSNP(s) are correctly received.</t> | |||
| <t>The CSNPs describe the set of LSPs that are currently held by each | <t>The CSNPs describe the set of LSPs that are currently held by each | |||
| neighbor. Synchronization will be complete when all these LSPs have | neighbor. Synchronization will be complete when all these LSPs have | |||
| been received.</t> | been received.</t> | |||
| <t>When (re)starting, a router starts an instance of timer T2 for each | <t>When (re)starting, a router starts an instance of timer T2 for each | |||
| LSPDB as described in Section 3.3.1 or Section 3.3.2. In addition to | LSPDB, as described in <xref target="adjacencyreacqsection"/> or <xref t arget="adjacencyacqsection"/>. In addition to | |||
| normal processing of the CSNPs, the set of LSPIDs contained in the | normal processing of the CSNPs, the set of LSPIDs contained in the | |||
| first complete set of CSNPs received over each interface is recorded, | first complete set of CSNPs received over each interface is recorded, | |||
| together with their remaining lifetime. In the case of a LAN | together with their remaining lifetime. In the case of a LAN | |||
| interface, a complete set of CSNPs MUST consist of CSNPs received from | interface, a complete set of CSNPs <bcp14>MUST</bcp14> consist of CSNPs received from | |||
| neighbors that are not restarting. If there are multiple interfaces on | neighbors that are not restarting. If there are multiple interfaces on | |||
| the (re)starting router, the recorded set of LSPIDs is the union of | the (re)starting router, the recorded set of LSPIDs is the union of | |||
| those received over each interface. LSPs with a remaining lifetime of | those received over each interface. LSPs with a remaining lifetime of | |||
| zero are NOT so recorded.</t> | zero are NOT so recorded.</t> | |||
| <t>As LSPs are received (by the normal operation of the update | <t>As LSPs are received (by the normal operation of the update | |||
| process) over any interface, the corresponding LSPID entry is removed | process) over any interface, the corresponding LSPID entry is removed | |||
| (it is also removed if an LSP arrives before the CSNP containing the | (it is also removed if an LSP arrives before the CSNP containing the | |||
| reference). When an LSPID has been held in the list for its indicated | reference). When an LSPID has been held in the list for its indicated | |||
| remaining lifetime, it is removed from the list. When the list of | remaining lifetime, it is removed from the list. When the list of | |||
| LSPIDs is empty and the timer T1 has been cancelled for all the | LSPIDs is empty and the timer T1 has been canceled for all the | |||
| interfaces that have an adjacency at this level, the timer T2 is | interfaces that have an adjacency at this level, the timer T2 is | |||
| cancelled.</t> | canceled.</t> | |||
| <t>At this point, the local database is guaranteed to contain all the | <t>At this point, the local database is guaranteed to contain all the | |||
| LSP(s) (either the same sequence number or a more recent sequence | LSP(s) (either the same sequence number or a more recent sequence | |||
| number) that were present in the neighbors' databases at the time of | number) that were present in the neighbors' databases at the time of | |||
| (re)starting. LSPs that arrived in a neighbor's database after the | (re)starting. LSPs that arrived in a neighbor's database after the | |||
| time of (re)starting may or may not be present, but the normal | time of (re)starting may or may not be present, but the normal | |||
| operation of the update process will guarantee that they will | operation of the update process will guarantee that they will | |||
| eventually be received. At this point, the local database is deemed to | eventually be received. At this point, the local database is deemed to | |||
| be "synchronized".</t> | be "synchronized".</t> | |||
| <t>Since LSPs mentioned in the CSNP(s) with a zero remaining lifetime | <t>Since LSPs mentioned in the CSNP(s) with a zero remaining lifetime | |||
| are not recorded, and those with a short remaining lifetime are | are not recorded and those with a short remaining lifetime are | |||
| deleted from the list when the lifetime expires, cancellation of the | deleted from the list when the lifetime expires, cancellation of the | |||
| timer T2 will not be prevented by waiting for an LSP that will never | timer T2 will not be prevented by waiting for an LSP that will never | |||
| arrive.</t> | arrive.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="LSP Generation and Flooding and SPF Computation"> | <name>LSP Generation and Flooding and SPF Computation</name> | |||
| <t>The operation of a router starting, as opposed to restarting, is | <t>The operation of a router starting, as opposed to restarting, is | |||
| somewhat different. These two cases are dealt with separately | somewhat different. These two cases are dealt with separately | |||
| below.</t> | below.</t> | |||
| <section numbered="true" toc="default" anchor="restartingsection"> | ||||
| <section title="Restarting"> | <name>Restarting</name> | |||
| <t>In order to avoid causing unnecessary routing churn in other | <t>In order to avoid causing unnecessary routing churn in other | |||
| routers, it is highly desirable that the router's own LSPs | routers, it is highly desirable that the router's own LSPs | |||
| generated by the restarting system are the same as those | generated by the restarting system are the same as those | |||
| previously present in the network (assuming no other changes have | previously present in the network (assuming no other changes have | |||
| taken place). It is important therefore not to regenerate and | taken place). It is important therefore not to regenerate and | |||
| flood the LSPs until all the adjacencies have been re-established | flood the LSPs until all the adjacencies have been reestablished | |||
| and any information required for propagation into the local LSPs | and any information required for propagation into the local LSPs | |||
| is fully available. Ideally, the information is loaded into the | is fully available. Ideally, the information is loaded into the | |||
| LSPs in a deterministic way, such that the same information occurs | LSPs in a deterministic way, such that the same information occurs | |||
| in the same place in the same LSP (and hence the LSPs are | in the same place in the same LSP (and hence the LSPs are | |||
| identical to their previous versions). If this can be achieved, | identical to their previous versions). If this can be achieved, | |||
| the new versions may not even cause SPF to be run in other | the new versions may not even cause SPF to be run in other | |||
| systems. However, provided the same information is included in the | systems. However, provided the same information is included in the | |||
| set of LSPs (albeit in a different order, and possibly different | set of LSPs (albeit in a different order, and possibly different | |||
| LSPs), the result of running the SPF will be the same and will not | LSPs), the result of running the SPF will be the same and will not | |||
| cause churn to the forwarding tables.</t> | cause churn to the forwarding tables.</t> | |||
| skipping to change at line 784 ¶ | skipping to change at line 706 ¶ | |||
| and any information required for propagation into the local LSPs | and any information required for propagation into the local LSPs | |||
| is fully available. Ideally, the information is loaded into the | is fully available. Ideally, the information is loaded into the | |||
| LSPs in a deterministic way, such that the same information occurs | LSPs in a deterministic way, such that the same information occurs | |||
| in the same place in the same LSP (and hence the LSPs are | in the same place in the same LSP (and hence the LSPs are | |||
| identical to their previous versions). If this can be achieved, | identical to their previous versions). If this can be achieved, | |||
| the new versions may not even cause SPF to be run in other | the new versions may not even cause SPF to be run in other | |||
| systems. However, provided the same information is included in the | systems. However, provided the same information is included in the | |||
| set of LSPs (albeit in a different order, and possibly different | set of LSPs (albeit in a different order, and possibly different | |||
| LSPs), the result of running the SPF will be the same and will not | LSPs), the result of running the SPF will be the same and will not | |||
| cause churn to the forwarding tables.</t> | cause churn to the forwarding tables.</t> | |||
| <t>In the case of a restarting router, none of the router's own | <t>In the case of a restarting router, none of the router's own | |||
| LSPs are transmitted, nor are the router's own forwarding tables | LSPs are transmitted, nor are the router's own forwarding tables | |||
| updated while the timer T3 is running.</t> | updated while the timer T3 is running.</t> | |||
| <t>Redistribution of inter-level information <bcp14>MUST</bcp14> be | ||||
| <t>Redistribution of inter-level information MUST be regenerated | regenerated | |||
| before this router's LSP is flooded to other nodes. Therefore, the | before this router's LSP is flooded to other nodes. Therefore, the | |||
| Level-n non-pseudonode LSP(s) MUST NOT be flooded until the other | Level-n non-pseudonode LSP(s) <bcp14>MUST NOT</bcp14> be flooded unt il the other | |||
| level's T2 timer has expired and its SPF has been run. This | level's T2 timer has expired and its SPF has been run. This | |||
| ensures that any inter-level information that is to be propagated | ensures that any inter-level information that is to be propagated | |||
| can be included in the Level-n LSP(s).</t> | can be included in the Level-n LSP(s).</t> | |||
| <t>During this period, if one of the router's own (including | <t>During this period, if one of the router's own (including | |||
| pseudonodes) LSPs is received, which the local router does not | pseudonodes) LSPs is received, which the local router does not | |||
| currently have in its own database, it is NOT purged. Under normal | currently have in its own database, it is NOT purged. Under normal | |||
| operation, such an LSP would be purged, since the LSP clearly | operation, such an LSP would be purged, since the LSP clearly | |||
| should not be present in the global LSP database. However, in the | should not be present in the global LSP database. However, in the | |||
| present circumstances, this would be highly undesirable, because | present circumstances, this would be highly undesirable, because | |||
| it could cause premature removal of a router's own LSP -- and | it could cause premature removal of a router's own LSP -- and | |||
| hence churn in remote routers. Even if the local system has one or | hence churn in remote routers. Even if the local system has one or | |||
| more of the router's own LSPs (which it has generated, but not yet | more of the router's own LSPs (which it has generated but not yet | |||
| transmitted), it is still not valid to compare the received LSP | transmitted), it is still not valid to compare the received LSP | |||
| against this set, since it may be that as a result of propagation | against this set, since it may be that as a result of propagation | |||
| between Level 1 and Level 2 (or vice versa), a further router's | between Level 1 and Level 2 (or vice versa), a further router's | |||
| own LSP will need to be generated when the LSP databases have | own LSP will need to be generated when the LSP databases have | |||
| synchronized.</t> | synchronized.</t> | |||
| <t>During this period, a restarting router <bcp14>SHOULD</bcp14> sen | ||||
| <t>During this period, a restarting router SHOULD send CSNPs as it | d CSNPs as it | |||
| normally would. Information about the router's own LSPs MAY be | normally would. Information about the router's own LSPs <bcp14>MAY</ | |||
| included, but if it is included it MUST be based on LSPs that have | bcp14> be | |||
| included, but if it is included, it <bcp14>MUST</bcp14> be based on | ||||
| LSPs that have | ||||
| been received, not on versions that have been generated (but not | been received, not on versions that have been generated (but not | |||
| yet transmitted). This restriction is necessary to prevent | yet transmitted). This restriction is necessary to prevent | |||
| premature removal of an LSP from the global LSP database.</t> | premature removal of an LSP from the global LSP database.</t> | |||
| <t>When the timer T2 expires or is canceled, indicating that | ||||
| <t>When the timer T2 expires or is cancelled indicating that | ||||
| synchronization for that level is complete, the SPF for that level | synchronization for that level is complete, the SPF for that level | |||
| is run in order to derive any information that is required to be | is run in order to derive any information that is required to be | |||
| propagated to another level, but the forwarding tables are not yet | propagated to another level, but the forwarding tables are not yet | |||
| updated.</t> | updated.</t> | |||
| <t>Once the other level's SPF has run and any inter-level | <t>Once the other level's SPF has run and any inter-level | |||
| propagation has been resolved, the router's own LSPs can be | propagation has been resolved, the router's own LSPs can be | |||
| generated and flooded. Any own LSPs that were previously ignored, | generated and flooded. Any own LSPs that were previously ignored, | |||
| but that are not part of the current set of own LSPs (including | but that are not part of the current set of own LSPs (including | |||
| pseudonodes), MUST then be purged. Note that it is possible that a | pseudonodes), <bcp14>MUST</bcp14> then be purged. Note that it is po | |||
| Designated Router change may have taken place, and consequently | ssible that a | |||
| the router SHOULD purge those pseudonode LSPs that it previously | Designated Router change may have taken place and, consequently, | |||
| owned, but that are now no longer part of its set of pseudonode | the router <bcp14>SHOULD</bcp14> purge those pseudonode LSPs that it | |||
| previously | ||||
| owned but that are now no longer part of its set of pseudonode | ||||
| LSPs.</t> | LSPs.</t> | |||
| <t>When all the T2 timers have expired or been canceled, the | ||||
| <t>When all the T2 timers have expired or been cancelled, the | timer T3 is canceled, and the local forwarding tables are | |||
| timer T3 is cancelled and the local forwarding tables are | ||||
| updated.</t> | updated.</t> | |||
| <t>If the timer T3 expires before all the T2 timers have expired | <t>If the timer T3 expires before all the T2 timers have expired | |||
| or been cancelled, this indicates that the synchronization process | or been canceled, this indicates that the synchronization process | |||
| is taking longer than the minimum holding time of the neighbors. | is taking longer than the minimum Holding Time of the neighbors. | |||
| The router's own LSP(s) for levels that have not yet completed | The router's own LSP(s) for levels that have not yet completed | |||
| their first SPF computation are then flooded with the overload bit | their first SPF computation are then flooded with the overload bit | |||
| set to indicate that the router's LSPDB is not yet synchronized | set to indicate that the router's LSPDB is not yet synchronized | |||
| (and therefore other routers MUST NOT compute routes through this | (and therefore other routers <bcp14>MUST NOT</bcp14> compute routes through this | |||
| router). Normal operation of the update process resumes, and the | router). Normal operation of the update process resumes, and the | |||
| local forwarding tables are updated. In order to prevent the | local forwarding tables are updated. In order to prevent the | |||
| neighbor's adjacencies from expiring, IIHs with the normal | neighbor's adjacencies from expiring, IIHs with the normal | |||
| interface value for the holding time are transmitted over all | interface value for the Holding Time are transmitted over all | |||
| interfaces with neither RR nor RA set in the restart TLV. This | interfaces with neither RR nor RA set in the Restart TLV. This | |||
| will cause the neighbors to refresh their adjacencies. The | will cause the neighbors to refresh their adjacencies. The | |||
| router's own LSP(s) will continue to have the overload bit set | router's own LSP(s) will continue to have the overload bit set | |||
| until timer T2 has expired or been cancelled.</t> | until timer T2 has expired or been canceled.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Starting"> | <name>Starting</name> | |||
| <t>In the case of a starting router, as soon as each adjacency is | <t>In the case of a starting router, as soon as each adjacency is | |||
| established, and before any CSNP exchanges, the router's own | established, and before any CSNP exchanges, the router's own | |||
| zeroth LSP is transmitted with the overload bit set. This prevents | zeroth LSP is transmitted with the overload bit set. This prevents | |||
| other routers from computing routes through the router until it | other routers from computing routes through the router until it | |||
| has reliably acquired the complete set of LSPs. The overload bit | has reliably acquired the complete set of LSPs. The overload bit | |||
| remains set in subsequent transmissions of the zeroth LSP (such as | remains set in subsequent transmissions of the zeroth LSP (such as | |||
| will occur if a previous copy of the router's own zeroth LSP is | will occur if a previous copy of the router's own zeroth LSP is | |||
| still present in the network) while any timer T2 is running.</t> | still present in the network) while any timer T2 is running.</t> | |||
| <t>When all the T2 timers have been canceled, the router's own | ||||
| <t>When all the T2 timers have been cancelled, the router's own | LSP(s) <bcp14>MAY</bcp14> be regenerated with the overload bit clear | |||
| LSP(s) MAY be regenerated with the overload bit clear (assuming | (assuming | |||
| the router is not in fact overloaded, and there is no other | the router is not in fact overloaded, and there is no other | |||
| reason, such as incomplete BGP convergence, to keep the overload | reason, such as incomplete BGP convergence, to keep the overload | |||
| bit set) and flooded as normal.</t> | bit set) and flooded as normal.</t> | |||
| <t>Other LSPs owned by this router (including pseudonodes) are | <t>Other LSPs owned by this router (including pseudonodes) are | |||
| generated and flooded as normal, irrespective of the timer T2. The | generated and flooded as normal, irrespective of the timer T2. The | |||
| SPF is also run as normal and the Routing Information Base (RIB) | SPF is also run as normal and the Routing Information Base (RIB) | |||
| and Forwarding Information Base (FIB) updated as routes become | and Forwarding Information Base (FIB) updated as routes become | |||
| available.</t> | available.</t> | |||
| <t>To avoid the possible formation of temporary blackholes, the | <t>To avoid the possible formation of temporary blackholes, the | |||
| starting router sets the SA bit in the restart TLV (as described | starting router sets the SA bit in the Restart TLV (as described | |||
| in Section 3.3.2) in all IIHs that it sends.</t> | in <xref target="adjacencyacqsection"/>) in all IIHs that it sends.< | |||
| /t> | ||||
| <t>When all T2 timers have been cancelled, the starting router | <t>When all T2 timers have been canceled, the starting router | |||
| MUST transmit IIHs with the SA bit clear.</t> | <bcp14>MUST</bcp14> transmit IIHs with the SA bit clear.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="State Tables"> | <name>State Tables</name> | |||
| <t>This section presents state tables that summarize the behaviors | <t>This section presents state tables that summarize the behaviors | |||
| described in this document. Other behaviors, in particular adjacency | described in this document. Other behaviors, in particular adjacency | |||
| state transitions and LSP database update operation, are NOT included in | state transitions and LSP database update operations, are NOT included in | |||
| the state tables except where this document modifies the behaviors | the state tables except where this document modifies the behaviors | |||
| described in <xref target="ISO10589"/> and <xref target="RFC5303"/>.</t> | described in <xref target="ISO10589" format="default"/> and <xref target=" | |||
| RFC5303" format="default"/>.</t> | ||||
| <t>The states named in the columns of the tables below are a mixture of | <t>The states named in the columns of the tables below are a mixture of | |||
| states that are specific to a single adjacency (ADJ suppressed, ADJ Seen | states that are specific to a single adjacency (ADJ suppressed, ADJ Seen | |||
| RA, ADJ Seen CSNP) and states that are indicative of the state of the | RA, ADJ Seen CSNP) and states that are indicative of the state of the | |||
| protocol instance (Running, Restarting, Starting, SPF Wait).</t> | protocol instance (Running, Restarting, Starting, SPF Wait).</t> | |||
| <t>Three state tables are presented from the point of view of a running | <t>Three state tables are presented from the point of view of a running | |||
| router, a restarting router, and a starting router.</t> | router, a restarting router, and a starting router.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Running Router</name> | ||||
| <section title="Running Router"> | <table anchor="table1"> | |||
| <t><figure> | <name>Running Router</name> | |||
| <artwork><![CDATA[ Event | Running | ADJ suppr | <thead> | |||
| essed | <tr> | |||
| ============================================================== | <th>Event</th> | |||
| RX PR | Set Planned Restart | | <th>Running</th> | |||
| | state. | | <th>ADJ suppressed</th> | |||
| | Update hold time | </tr> | |||
| | Send PA | | </thead> | |||
| -------------+----------------------+------------------------- | <tbody> | |||
| RX PR clr | Clear Planned | | <tr> | |||
| and RR clr | Restart State | | <td>RX PR</td> | |||
| | Restore holdtime to | | <td><t>Set Planned Restart State<br/> | |||
| | local value | | Update Holding Time<br/> | |||
| -------------+----------------------+------------------------- | Send PA</t></td> | |||
| RX RR | Maintain ADJ State | | <td></td> | |||
| | Send RA | | </tr> | |||
| | Set SRM,send CSNP | | <tr> | |||
| | (Note 1) | | <td>RX PR clr and RR clr</td> | |||
| | Update Hold Time, | | <td><t>Clear Planned Restart State<br/> | |||
| | set Restart Mode | | Restore Holding Time to local value</t></td> | |||
| | (Note 2) | | <td></td> | |||
| -------------+----------------------+------------------------- | </tr> | |||
| RX RR clr | Clr Restart mode | | <tr> | |||
| -------------+----------------------+------------------------- | ||||
| RX SA | Suppress IS neighbor | | ||||
| | TLV in LSP(s) | | ||||
| | Goto ADJ Suppressed | | ||||
| -------------+----------------------+------------------------- | ||||
| RX SA clr | |Unsuppress IS neighbor | ||||
| | | TLV in LSP(s) | ||||
| | |Goto Running | ||||
| ============================================================== | ||||
| Note 1: CSNPs are sent by routers in accordance with Section 3.2.1c | <td>RX RR</td> | |||
| <td> | ||||
| <t>Maintain ADJ State<br/> | ||||
| Send RA<br/> | ||||
| Set SRM, send CSNP (<xref target="note1" format="none">Note 1</xref>)<br/ | ||||
| > | ||||
| Update Holding Time,<br/> set Restart Mode (<xref target="note2" format=" | ||||
| none">Note 2</xref>)</t> | ||||
| </td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>RX RR clr</td> | ||||
| <td>Clr Restart mode</td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>RX SA</td> | ||||
| <td> | ||||
| <t>Suppress IS neighbor TLV in LSP&wj;(s)<br/> | ||||
| Goto ADJ Suppressed</t> | ||||
| </td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>RX SA clr</td> | ||||
| <td></td> | ||||
| <td> | ||||
| <t>Unsuppress IS neighbor TLV in LSP&wj;(s)<br/> | ||||
| Goto Running</t> | ||||
| </td> | ||||
| </tr> | ||||
| Note 2: If Restart Mode clear | </tbody> | |||
| </table> | ||||
| ]]></artwork> | <ol type="Note %d:"> | |||
| </figure></t> | ||||
| <li anchor="note1">CSNPs are sent by routers in accordance with <xref | ||||
| target="itemc" format="none">item c</xref> in <xref target="useofrrrabitssecti | ||||
| on"/></li> | ||||
| <li anchor="note2">If Restart Mode clear</li> | ||||
| </ol> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Restarting Router</name> | ||||
| <section title="Restarting Router"> | <table anchor="table2"> | |||
| <t><figure> | <name>Restarting Router</name> | |||
| <artwork><![CDATA[ Event | Restarting | ADJ Seen | AD | <thead> | |||
| J Seen | SPF Wait | <tr> | |||
| | | RA | CSNP | | <th>Event</th> | |||
| =================================================================== | <th>Restarting</th> | |||
| Restart | Send PR | | | | <th>ADJ Seen RA</th> | |||
| planned | | | | | <th>ADJ Seen CSNP</th> | |||
| ------------+--------------------+-----------+-----------+------------ | <th>SPF Wait</th> | |||
| Planned | Send PR clr | | | | </tr> | |||
| restart | | | | | </thead> | |||
| canceled | | | | | <tbody> | |||
| ------------+--------------------+-----------+-----------+------------ | <tr> | |||
| RX PA | Proceed with | | | | <td>Restart planned</td> | |||
| | planned restart | | | | <td>Send PR</td> | |||
| ------------+--------------------+-----------+-----------+------------ | <td></td> | |||
| Router | Send IIH/RR | | | | <td></td> | |||
| restarts | ADJ Init | | | | <td></td> | |||
| | Start T1,T2,T3 | | | | </tr> | |||
| ------------+--------------------+-----------+-----------+------------ | <tr> | |||
| RX RR | Send RA | | | | <td>Planned restart canceled</td> | |||
| ------------+--------------------+-----------+-----------+------------ | <td>Send PR clr</td> | |||
| RX RA | Adjust T3 | | Cancel T1 | | <td></td> | |||
| | Goto ADJ Seen RA | | Adjust T3 | | <td></td> | |||
| ----------- +--------------------+-----------+-----------+------------ | <td></td> | |||
| RX CSNP set| Goto ADJ Seen CSNP | Cancel T1 | | | </tr> | |||
| ------------+--------------------+-----------+-----------+------------ | <tr> | |||
| RX IIH w/o | Cancel T1 (Point- | | | | <td>RX PA</td> | |||
| Restart TLV| to-point only) | | | | <td>Proceed with planned restart</td> | |||
| ------------+--------------------+-----------+-----------+------------ | <td></td> | |||
| T1 expires | Send IIH/RR |Send IIH/RR|Send IIH/RR| | <td></td> | |||
| | Restart T1 | Restart T1| Restart T1| | <td></td> | |||
| ------------+--------------------+-----------+-----------+------------ | </tr> | |||
| T1 expires | Send IIH/ | Send IIH/ | Send IIH/ | | <tr> | |||
| nth time | normal | normal | normal | | <td>Router restarts</td> | |||
| ------------+--------------------+-----------+-----------+------------ | <td> | |||
| T2 expires | Trigger SPF | | | | <t>Send IIH/RR<br/> | |||
| | Goto SPF Wait | | | | ADJ Init<br/> | |||
| ------------+--------------------+-----------+-----------+------------ | Start T1, T2, T3</t> | |||
| T3 expires | Set overload bit | | | | </td> | |||
| | Flood local LSPs | | | | <td></td> | |||
| | Update fwd plane | | | | <td></td> | |||
| ------------+--------------------+-----------+-----------+------------ | <td></td> | |||
| LSP DB Sync| Cancel T2, and T3 | | | | </tr> | |||
| | Trigger SPF | | | | <tr> | |||
| | Goto SPF wait | | | | <td>RX RR</td> | |||
| ------------+--------------------+-----------+-----------+------------ | <td>Send RA</td> | |||
| All SPF | | | | Clear | <td></td> | |||
| done | | | | overload bit | <td></td> | |||
| | | | | Update fwd | <td></td> | |||
| | | | | plane | </tr> | |||
| | | | | Flood local | <tr> | |||
| | | | | LSPs | <td>RX RA</td> | |||
| | | | | Goto Running | <td><t>Adjust T3<br/> | |||
| ====================================================================== | Goto ADJ Seen RA</t></td> | |||
| <td></td> | ||||
| <td><t>Cancel T1<br/> | ||||
| Adjust T3</t></td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>RX CSNP set</td> | ||||
| <td>Goto ADJ Seen CSNP</td> | ||||
| <td>Cancel T1</td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>RX IIH w/o Restart TLV</td> | ||||
| <td>Cancel T1 (Point-to-point only)</td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>T1 expires</td> | ||||
| <td> | ||||
| <t>Send IIH/RR<br/> | ||||
| Restart T1</t> | ||||
| </td> | ||||
| <td> | ||||
| <t>Send IIH/RR<br/> | ||||
| Restart T1</t> | ||||
| </td> | ||||
| <td> | ||||
| <t>Send IIH/RR<br/> | ||||
| Restart T1</t> | ||||
| </td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>T1 expires nth time</td> | ||||
| <td>Send IIH/normal</td> | ||||
| <td>Send IIH/normal</td> | ||||
| <td>Send IIH/normal</td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>T2 expires</td> | ||||
| <td><t>Trigger SPF<br/> | ||||
| Goto SPF Wait</t></td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>T3 expires</td> | ||||
| <td><t>Set overload bit<br/> | ||||
| Flood local LSPs<br/> | ||||
| Update fwd plane</t></td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>LSP DB Sync</td> | ||||
| <td><t>Cancel T2 and T3<br/> | ||||
| Trigger SPF<br/> | ||||
| Goto SPF wait</t></td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>All SPF done</td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| <td><t>Clear overload bit<br/> | ||||
| Update fwd plane<br/> | ||||
| Flood local LSPs<br/> | ||||
| Goto Running</t></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| ]]></artwork> | ||||
| </figure></t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Starting Router</name> | ||||
| <section title="Starting Router"> | <table anchor="table3"> | |||
| <t><figure> | <name>Starting Router</name> | |||
| <artwork><![CDATA[ Event | Starting | ADJ Seen RA| | <thead> | |||
| ADJ Seen CSNP | <tr> | |||
| ============================================================= | <th>Event</th> | |||
| Router | Send IIH/SA | | | <th>Starting</th> | |||
| starts | Start T1,T2 | | | <th>ADJ Seen RA</th> | |||
| -------------+-------------------+------------+--------------- | <th>ADJ Seen CSNP</th> | |||
| RX RR | Send RA | | | </tr> | |||
| -------------+-------------------+------------+--------------- | </thead> | |||
| RX RA | Goto ADJ Seen RA | | Cancel T1 | <tbody> | |||
| -------------+-------------------+------------+--------------- | <tr> | |||
| RX CSNP Set | Goto ADJ Seen CSNP| Cancel T1 | | <td>Router starts</td> | |||
| -------------+-------------------+------------+--------------- | <td><t>Send IIH/SA<br/> | |||
| RX IIH w | Cancel T1 | | | Start T1 and T2</t></td> | |||
| no Restart | (Point-to-Point | | | <td></td> | |||
| TLV | only) | | | <td></td> | |||
| -------------+-------------------+------------+--------------- | </tr> | |||
| ADJ UP | Start T1 | | | <tr> | |||
| | Send local LSPs | | | <td>RX RR</td> | |||
| | with overload bit| | | <td>Send RA</td> | |||
| | set | | | <td></td> | |||
| -------------+-------------------+------------+--------------- | <td></td> | |||
| T1 expires | Send IIH/RR |Send IIH/RR | Send IIH/RR | </tr> | |||
| | and SA | and SA | and SA | <tr> | |||
| | Restart T1 |Restart T1 | Restart T1 | <td>RX RA</td> | |||
| -------------+-------------------+------------+--------------- | <td>Goto ADJ Seen RA</td> | |||
| T1 expires | Send IIH/SA |Send IIH/SA | Send IIH/SA | <td></td> | |||
| nth time | | | | <td>Cancel T1</td> | |||
| -------------+-------------------+------------+--------------- | </tr> | |||
| T2 expires | Clear overload bit| | | <tr> | |||
| | Send IIH normal | | | <td>RX CSNP Set</td> | |||
| | Goto Running | | | <td>Goto ADJ Seen CSNP</td> | |||
| -------------+-------------------+------------+--------------- | <td>Cancel T1</td> | |||
| LSP DB Sync | Cancel T2 | | | <td></td> | |||
| | Clear overload bit| | | </tr> | |||
| | Send IIH normal | | | <tr> | |||
| ============================================================== | <td>RX IIH w no Restart TLV</td> | |||
| <td>Cancel T1 (Point-to-Point only)</td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>ADJ UP</td> | ||||
| <td><t>Start T1<br/> | ||||
| Send local LSPs with overload bit set</t></td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>T1 expires</td> | ||||
| <td> | ||||
| <t>Send IIH/RR and SA<br/> | ||||
| Restart T1</t> | ||||
| </td> | ||||
| <td><t>Send IIH/RR and SA<br/> | ||||
| Restart T1</t></td> | ||||
| <td><t>Send IIH/RR and SA<br/> | ||||
| Restart T1</t></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>T1 expires nth time</td> | ||||
| <td>Send IIH/SA</td> | ||||
| <td>Send IIH/SA</td> | ||||
| <td>Send IIH/SA</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>T2 expires</td> | ||||
| <td><t>Clear overload bit<br/> | ||||
| Send IIH normal<br/> | ||||
| Goto Running</t></td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>LSP DB Sync</td> | ||||
| <td><t>Cancel T2<br/> | ||||
| Clear overload bit<br/> | ||||
| Send IIH normal</t></td> | ||||
| <td></td> | ||||
| <td></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| ]]></artwork> | ||||
| </figure></t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="IANA" numbered="true" toc="default"> | ||||
| <section anchor="IANA" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
| <t>This document defines the following IS-IS TLV that is listed in the | <t>This document defines the following IS-IS TLV that is listed in the | |||
| IS-IS TLV codepoint registry:</t> | "IS-IS TLV Codepoints" registry.</t> | |||
| <t><figure> | <table anchor="ianatable" align="left"> | |||
| <artwork><![CDATA[ Type Description IIH L | <thead> | |||
| SP SNP Purge | <tr> | |||
| ---- ------------------------------ --- --- --- ----- | <th>Type</th> | |||
| 211 Restart TLV y n n n | <th>Description</th> | |||
| <th>IIH</th> | ||||
| <th>LSP</th> | ||||
| <th>SNP</th> | ||||
| <th>Purge</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>211</td> | ||||
| <td>Restart TLV</td> | ||||
| <td>y</td> | ||||
| <td>n</td> | ||||
| <td>n</td> | ||||
| <td>n</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| ]]></artwork> | <t>IANA has updated the entry in registry to point to | |||
| </figure>IANA is requested to update the entry in registry to point to | ||||
| this document.</t> | this document.</t> | |||
| </section> | </section> | |||
| <section anchor="Security" numbered="true" toc="default"> | ||||
| <section anchor="Security" title="Security Considerations"> | <name>Security Considerations</name> | |||
| <t>Any new security issues raised by the procedures in this document | <t>Any new security issues raised by the procedures in this document | |||
| depend upon the ability of an attacker to inject a false but apparently | depend upon the ability of an attacker to inject a false but apparently | |||
| valid IIH, the ease/difficulty of which has not been altered.</t> | valid IIH, the ease/difficulty of which has not been altered.</t> | |||
| <t>If the RR bit is set in a false IIH, neighbors who receive such an | <t>If the RR bit is set in a false IIH, neighbors who receive such an | |||
| IIH will continue to maintain an existing adjacency in the "UP" state | IIH will continue to maintain an existing adjacency in the UP state | |||
| and may (re)send a complete set of CSNPs. While the latter action is | and may (re)send a complete set of CSNPs. While the latter action is | |||
| wasteful, neither action causes any disruption in correct protocol | wasteful, neither action causes any disruption in correct protocol | |||
| operation.</t> | operation.</t> | |||
| <t>If the RA bit is set in a false IIH, a (re)starting router that | <t>If the RA bit is set in a false IIH, a (re)starting router that | |||
| receives such an IIH may falsely believe that there is a neighbor on the | receives such an IIH may falsely believe that there is a neighbor on the | |||
| corresponding interface that supports the procedures described in this | corresponding interface that supports the procedures described in this | |||
| document. In the absence of receipt of a complete set of CSNPs on that | document. In the absence of receipt of a complete set of CSNPs on that | |||
| interface, this could delay the completion of (re)start procedures by | interface, this could delay the completion of (re)start procedures by | |||
| requiring the timer T1 to time out the locally defined maximum number of | requiring the timer T1 to time out the locally defined maximum number of | |||
| retries. This behavior is the same as would occur on a LAN where none of | retries. This behavior is the same as would occur on a LAN where none of | |||
| the (re)starting router's neighbors support the procedures in this | the (re)starting router's neighbors support the procedures in this | |||
| document and is covered in Sections 3.3.1 and 3.3.2.</t> | document and is covered in Sections <xref | |||
| target="adjacencyreacqsection" format="counter"/> and <xref | ||||
| target="adjacencyacqsection" format="counter"/>.</t> | ||||
| <t>If the SA bit is set in a false IIH, this could cause suppression of | <t>If the SA bit is set in a false IIH, this could cause suppression of | |||
| the advertisement of an IS neighbor, which could either continue for an | the advertisement of an IS neighbor, which could either continue for an | |||
| indefinite period or occur intermittently with the result being a | indefinite period or occur intermittently with the result being a | |||
| possible loss of reachability to some destinations in the network and/or | possible loss of reachability to some destinations in the network and/or | |||
| increased frequency of LSP flooding and SPF calculation.</t> | increased frequency of LSP flooding and SPF calculation.</t> | |||
| <t>If the PR bit is set in a false IIH, neighbors who receive such an | <t>If the PR bit is set in a false IIH, neighbors who receive such an | |||
| IIH could modify the holding time of an existing adjacency | IIH could modify the Holding Time of an existing adjacency | |||
| inappropriately. In the event of topology changes, the neighbor might | inappropriately. In the event of topology changes, the neighbor might | |||
| also choose to not flood the topology updates and/or bring the adjacency | also choose to not flood the topology updates and/or bring the adjacency | |||
| down in the false belief that the forwarding plane of the router | down in the false belief that the forwarding plane of the router | |||
| identified as the source of the false IIH is not currently processing | identified as the source of the false IIH is not currently processing | |||
| announced topology changes. This would result in unnecessary forwarding | announced topology changes. This would result in unnecessary forwarding | |||
| disruption.</t> | disruption.</t> | |||
| <t>If the PA bit is set in a false IIH, a router that receives such an | <t>If the PA bit is set in a false IIH, a router that receives such an | |||
| IIH may falsely believe that the neighbor on the corresponding interface | IIH may falsely believe that the neighbor on the corresponding interface | |||
| supports the planned restart procedures defined in this document. If | supports the planned restart procedures defined in this document. If | |||
| such a router is planning to restart it might then proceed to initiate a | such a router is planning to restart, it might then proceed to initiate a | |||
| restart in the false expectation that the neighbor has updated its | restart in the false expectation that the neighbor has updated its | |||
| holding time as requested. This may result in the neighbor bringing down | Holding Time as requested. This may result in the neighbor bringing down | |||
| the adjacency while the receiving router is restarting, causing | the adjacency while the receiving router is restarting, causing | |||
| unnecessary disruption to forwarding.</t> | unnecessary disruption to forwarding.</t> | |||
| <t>The possibility of IS-IS PDU spoofing can be reduced by the use of | <t>The possibility of IS-IS PDU spoofing can be reduced by the use of | |||
| authentication as described in [RFC1195] and [ISO10589], and especially | authentication, as described in <xref target="RFC1195" format="default"/> | |||
| the use of cryptographic authentication as described in <xref | and <xref target="ISO10589" format="default"/>, and especially by | |||
| target="RFC5304"/> and <xref target="RFC5310"/>.</t> | the use of cryptographic authentication, as described in <xref target="RFC | |||
| 5304" format="default"/> and <xref target="RFC5310" format="default"/>.</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Manageability Considerations"> | <name>Manageability Considerations</name> | |||
| <t>These extensions that have been designed, developed, and deployed for | <t>These extensions that have been designed, developed, and deployed for | |||
| many years do not have any new impact on management and operation of the | many years do not have any new impact on management and operation of the | |||
| IS-IS protocol via this standardization process.</t> | IS-IS protocol via this standardization process.</t> | |||
| </section> | </section> | |||
| <section anchor="Acknowledgements" title="Acknowledgements"> | ||||
| <t>For RFC 5306 the authors acknowledged contributions made by Jeff | ||||
| Parker, Radia Perlman, Mark Schaefer, Naiming Shen, Nischal Sheth, Russ | ||||
| White, and Rena Yang.</t> | ||||
| <t>The authors of this updated version acknowledge the contribution of | ||||
| Mike Shand, co-auther of RFC 5306.</t> | ||||
| </section> | ||||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references title="Normative References"> | <references> | |||
| <name>Normative References</name> | ||||
| <reference anchor="ISO10589"> | <reference anchor="ISO10589"> | |||
| <front> | <front> | |||
| <title>Intermediate system to Intermediate system intra-domain | <title>Information technology -- Telecommunications and information | |||
| exchange between systems -- Intermediate System to Intermediate System | ||||
| intra-domain | ||||
| routeing information exchange protocol for use in conjunction with | routeing information exchange protocol for use in conjunction with | |||
| the protocol for providing the connectionless-mode Network Service | the protocol for providing the connectionless-mode network service | |||
| (ISO 8473)</title> | (ISO 8473)</title> | |||
| <seriesInfo name="ISO/IEC" value="10589:2002, Second Edition"/> | ||||
| <author> | <author> | |||
| <organization abbrev="ISO">International Organization for | <organization abbrev="ISO">International Organization for | |||
| Standardization</organization> | Standardization</organization> | |||
| </author> | </author> | |||
| <date month="November" year="2002"/> | ||||
| <date month="Nov" year="2002"/> | ||||
| </front> | </front> | |||
| <seriesInfo name="ISO/IEC" value="10589:2002, Second Edition"/> | ||||
| </reference> | </reference> | |||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.119 | ce.RFC.1195.xml"/> | |||
| 5.xml"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | |||
| ce.RFC.2119.xml"/> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.211 | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | |||
| 9.xml"?> | ce.RFC.5303.xml"/> | |||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.530 | ce.RFC.5304.xml"/> | |||
| 3.xml"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | |||
| ce.RFC.5310.xml"/> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.530 | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | |||
| 4.xml"?> | ce.RFC.5880.xml"/> | |||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.531 | ce.RFC.8174.xml"/> | |||
| 0.xml"?> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.588 | ||||
| 0.xml"?> | ||||
| <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.817 | ||||
| 4.xml"?> | ||||
| </references> | </references> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Summary of Changes from RFC 5306"> | <name>Summary of Changes from RFC 5306</name> | |||
| <t>This document extends RFC 5306 by introducing support for signalling | <t>This document extends RFC 5306 by introducing support for signaling | |||
| the neighbors of a restarting router that a planned restart is about to | the neighbors of a restarting router that a planned restart is about to | |||
| occur. This allows the neighbors to be aware of the state of the | occur. This allows the neighbors to be aware of the state of the | |||
| restarting router so that appropriate action may be taken if other | restarting router so that appropriate action may be taken if other | |||
| topology changes occur while the planned restart is in progress. Since | topology changes occur while the planned restart is in progress. Since | |||
| the forwarding plane of the restarting router is maintained based upon | the forwarding plane of the restarting router is maintained based upon | |||
| the pre-restart state of the network, additional topology changes | the pre-restart state of the network, additional topology changes | |||
| introduce the possibility that traffic may be lost if paths via the | introduce the possibility that traffic may be lost if paths via the | |||
| restarting router continue to be used while the restart is in | restarting router continue to be used while the restart is in | |||
| progress.</t> | progress.</t> | |||
| <t>In support of this new functionality, two new flags have been | ||||
| <t>In support of this new functionality two new flags have been | ||||
| introduced:</t> | introduced:</t> | |||
| <t><figure> | <dl newline="false" spacing="normal" indent="2"> | |||
| <artwork><![CDATA[ PR - Restart is planned | <dt>PR -</dt> | |||
| PA - Planned restart acknowledgement | <dd>Restart is planned</dd> | |||
| ]]></artwork> | <dt>PA -</dt> | |||
| </figure></t> | <dd>Planned restart acknowledgement</dd> | |||
| </dl> | ||||
| <t>No changes to the post restart exchange between the restarting router | <t>No changes to the post-restart exchange between the restarting router | |||
| and its neighbors have been introduced.</t> | and its neighbors have been introduced.</t> | |||
| </section> | </section> | |||
| <section anchor="Acknowledgements" numbered="false" toc="default"> | ||||
| <name>Acknowledgements</name> | ||||
| <t>For RFC 5306, the authors acknowledged contributions made by | ||||
| <contact fullname="Jeff Parker"/>, | ||||
| <contact fullname="Radia Perlman"/>, | ||||
| <contact fullname="Mark Schaefer"/>, | ||||
| <contact fullname="Naiming Shen"/>, | ||||
| <contact fullname="Nischal Sheth"/>, | ||||
| <contact fullname="Russ White"/>, and | ||||
| <contact fullname="Rena Yang"/>.</t> | ||||
| <t>The authors of this updated document acknowledge the contribution of | ||||
| <contact fullname="Mike Shand"/>, coauthor of RFC 5306.</t> | ||||
| </section> | ||||
| <!-- [rfced] FYI, we are aware of a defect in the PDF output and have | ||||
| reported it as a ticket for xml2rfc | ||||
| (https://trac.tools.ietf.org/tools/xml2rfc/trac/ticket/489). | ||||
| --> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 256 change blocks. | ||||
| 628 lines changed or deleted | 762 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||