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/ |