rfc8918xml2.original.xml | rfc8918.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!-- This template is for creating an Internet Draft using xml2rfc, | ||||
which is available here: http://xml.resource.org. --> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | |||
<!-- used by XSLT processors --> | docName="draft-ietf-lsr-isis-invalid-tlv-03" number="8918" | |||
<!-- For a complete list and description of processing instructions (PIs), | ipr="trust200902" updates="5305 6232" obsoletes="" submissionType="IETF" | |||
please see http://xml.resource.org/authoring/README.html. --> | category="std" consensus="true" xml:lang="en" tocInclude="true" | |||
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds | tocDepth="4" symRefs="true" sortRefs="true" version="3"> | |||
might want to use. | ||||
(Here they are set differently than their defaults in xml2rfc v1.32) --> | <!-- xml2rfc v2v3 conversion 2.47.0 --> | |||
<?rfc strict="yes" ?> | ||||
<!-- give errors regarding ID-nits and DTD validation --> | ||||
<!-- control the table of contents (ToC) --> | ||||
<?rfc toc="yes"?> | ||||
<!-- generate a ToC --> | ||||
<?rfc tocdepth="4"?> | ||||
<!-- the number of levels of subsections in ToC. default: 3 --> | ||||
<!-- control references --> | ||||
<?rfc symrefs="yes"?> | ||||
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] --> | ||||
<?rfc sortrefs="yes" ?> | ||||
<!-- sort the reference entries alphabetically --> | ||||
<!-- control vertical white space | ||||
(using these PIs as follows is recommended by the RFC Editor) --> | ||||
<?rfc compact="yes" ?> | ||||
<!-- do not start each main section on a new page --> | ||||
<?rfc subcompact="no" ?> | ||||
<!-- keep one blank line between list items --> | ||||
<!-- end of list of popular I-D processing instructions --> | ||||
<rfc category="std" docName="draft-ietf-lsr-isis-invalid-tlv-03" | ||||
ipr="trust200902" updates="5305 6232"> | ||||
<front> | <front> | |||
<title abbrev="draft-ietf-lsr-isis-invalid-tlv">Invalid TLV Handling in | <title abbrev="Invalid TLV Handling in IS-IS">Invalid TLV Handling in | |||
IS-IS</title> | IS-IS</title> | |||
<seriesInfo name="RFC" value="8918"/> | ||||
<author fullname="Les Ginsberg" initials="L." surname="Ginsberg"> | <author fullname="Les Ginsberg" initials="L." surname="Ginsberg"> | |||
<organization>Cisco Systems</organization> | <organization>Cisco Systems</organization> | |||
<address> | <address> | |||
<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</organization> | <organization>Cisco Systems</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street/> | <street/> | |||
<city/> | <city/> | |||
<region/> | <region/> | |||
<code/> | <code/> | |||
<country/> | <country/> | |||
</postal> | </postal> | |||
<phone/> | <phone/> | |||
<facsimile/> | ||||
<email>pauwells@cisco.com</email> | <email>pauwells@cisco.com</email> | |||
<uri/> | <uri/> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Tony Li" initials="T" surname="Li"> | <author fullname="Tony Li" initials="T" surname="Li"> | |||
<organization>Arista Networks</organization> | <organization>Arista Networks</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>5453 Great America Parkway</street> | <street>5453 Great America Parkway</street> | |||
<city>Santa Clara</city> | <city>Santa Clara</city> | |||
<region>CA</region> | ||||
<region>California</region> | ||||
<code>95054</code> | <code>95054</code> | |||
<country>United States of America</country> | ||||
<country>USA</country> | ||||
</postal> | </postal> | |||
<phone/> | <phone/> | |||
<facsimile/> | ||||
<email>tony.li@tony.li</email> | <email>tony.li@tony.li</email> | |||
<uri/> | <uri/> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Tony Przygienda" initials="T" surname="Przygienda"> | <author fullname="Tony Przygienda" initials="T" surname="Przygienda"> | |||
<organization>Juniper Networks, Inc.</organization> | <organization>Juniper Networks, Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>1194 N. Matilda Ave</street> | <street>1194 N. Matilda Ave</street> | |||
<city>Sunnyvale</city> | <city>Sunnyvale</city> | |||
<region>CA</region> | ||||
<region>California</region> | ||||
<code>94089</code> | <code>94089</code> | |||
<country>United States of America</country> | ||||
<country>USA</country> | ||||
</postal> | </postal> | |||
<phone/> | <phone/> | |||
<facsimile/> | ||||
<email>prz@juniper.net</email> | <email>prz@juniper.net</email> | |||
<uri/> | <uri/> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Shraddha Hegde" initials="S" surname="Hegde"> | <author fullname="Shraddha Hegde" initials="S" surname="Hegde"> | |||
<organization>Juniper Networks, Inc.</organization> | <organization>Juniper Networks, Inc.</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Embassy Business Park</street> | <street>Embassy Business Park</street> | |||
<city>Bangalore</city> | <city>Bangalore</city> | |||
<region>KA</region> | <region>KA</region> | |||
<code>560093</code> | <code>560093</code> | |||
<country>India</country> | <country>India</country> | |||
</postal> | </postal> | |||
<phone/> | <phone/> | |||
<facsimile/> | ||||
<email>shraddha@juniper.net</email> | <email>shraddha@juniper.net</email> | |||
<uri/> | <uri/> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2020" month="September"/> | ||||
<date year="2020"/> | ||||
<area>Routing</area> | <area>Routing</area> | |||
<workgroup>LSR Working Group</workgroup> | <workgroup>LSR Working Group</workgroup> | |||
<keyword>Internet-Draft</keyword> | ||||
<keyword>TLV</keyword> | <keyword>TLV</keyword> | |||
<keyword>IS-IS</keyword> | <keyword>IS-IS</keyword> | |||
<abstract> | <abstract> | |||
<t>Key to the extensibility of the Intermediate System to Intermediate | <t>The key to the extensibility of the Intermediate System to Intermediate | |||
System (IS-IS) protocol has been the handling of unsupported and/or | System (IS-IS) protocol has been the handling of unsupported and/or | |||
invalid Type/Length/Value (TLV) tuples. Although there are explicit | invalid Type-Length-Value (TLV) tuples. Although there are explicit | |||
statements in existing specifications, deployment experience has shown | statements in existing specifications, deployment experience has shown | |||
that there are inconsistencies in the behavior when a TLV which is | that there are inconsistencies in the behavior when a TLV that is | |||
disallowed in a particular Protocol Data Unit (PDU) is received.</t> | disallowed in a particular Protocol Data Unit (PDU) is received.</t> | |||
<t>This document discusses such cases and makes the correct behavior | <t>This document discusses such cases and makes the correct behavior | |||
explicit in order to ensure that interoperability is maximized.</t> | explicit in order to ensure that interoperability is maximized.</t> | |||
<t>This document updates RFCs 5305 and 6232.</t> | ||||
<t>This document updates RFC5305 and RFC6232.</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="Introduction"> | <section numbered="true" toc="default"> | |||
<name>Introduction</name> | ||||
<t>The Intermediate System to Intermediate System (IS-IS) protocol <xref | <t>The Intermediate System to Intermediate System (IS-IS) protocol <xref | |||
target="ISO10589"/> utilizes Type/Length/Value (TLV) encoding for all | target="ISO10589" format="default"/> utilizes Type-Length-Value (TLV) | |||
content in the body of Protocol Data Units (PDUs). New extensions to the | encoding for all content in the body of Protocol Data Units (PDUs). New | |||
protocol are supported by defining new TLVs. In order to allow protocol | extensions to the protocol are supported by defining new TLVs. In order | |||
extensions to be deployed in a backwards compatible way an | to allow protocol extensions to be deployed in a backwards compatible | |||
implementation is required to ignore TLVs that it does not understand. | way, an implementation is required to ignore TLVs that it does not | |||
This behavior is also applied to sub-TLVs <xref target="RFC5305"/>, | understand. This behavior is also applied to sub-TLVs <xref | |||
which are contained within TLVs.</t> | target="RFC5305" format="default"/>, which are contained within | |||
TLVs.</t> | ||||
<t>Also essential to the correct operation of the protocol is having the | <t>Also essential to the correct operation of the protocol is having the | |||
validation of PDUs be independent from the validation of the TLVs | validation of PDUs be independent from the validation of the TLVs | |||
contained in the PDU. PDUs which are valid must be accepted <xref | contained in the PDU. PDUs that are valid must be accepted <xref | |||
target="ISO10589"/> even if an individual TLV contained within that PDU | target="ISO10589" format="default"/> even if an individual TLV contained | |||
is not understood or is invalid in some way (e.g., incorrect syntax, | within that PDU is not understood or is invalid in some way (e.g., | |||
data value out of range, etc.).</t> | incorrect syntax, data value out of range, etc.).</t> | |||
<t>The set of TLVs (and sub-TLVs) that are allowed in each PDU type is | ||||
<t>The set of TLVs (and sub-TLVs) which are allowed in each PDU type is | documented in the "TLV Codepoints Registry" established by <xref | |||
documented in the TLV Codepoints Registry established by <xref | target="RFC3563" format="default"/> and updated by <xref | |||
target="RFC3563"/> and updated by <xref target="RFC6233"/> and <xref | target="RFC6233" format="default"/> and <xref target="RFC7356" | |||
target="RFC7356"/>.</t> | format="default"/>.</t> | |||
<t>This document is intended to clarify some aspects of existing | <t>This document is intended to clarify some aspects of existing | |||
specifications and thereby reduce the occurrence of non-conformant | specifications and, thereby, reduce the occurrence of non-conformant | |||
behavior seen in real world deployments. Although behaviors specified in | behavior seen in real-world deployments. Although behaviors specified in | |||
existing protocol specifications are not changed, the clarifications | existing protocol specifications are not changed, the clarifications | |||
contained in this document serve as updates to RFC 5305 (see Section | contained in this document serve as updates to <xref target="RFC5305"/> | |||
3.3) and RFC 6232 (see Section 3.4).</t> | (see <xref target="app-sub-tlv" format="default"/>) and <xref | |||
target="RFC6232" format="default"/> (see <xref | ||||
target="correct-poi"/>).</t> | ||||
<section numbered="true" toc="default"> | ||||
<name>Requirements Language</name> | ||||
<t> | ||||
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | ||||
"<bcp14>REQUIRED</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 title="TLV Codepoints Registry"> | <section numbered="true" toc="default"> | |||
<t><xref target="RFC3563"/> established the IANA-managed IS-IS TLV | <name>TLV Codepoints Registry</name> | |||
Codepoints Registry for recording assigned TLV code points <xref | <t><xref target="RFC3563" format="default"/> established the | |||
target="TLV_CODEPOINTS"/>. The initial contents of this registry were | IANA-managed "IS-IS TLV Codepoints Registry" for recording assigned TLV | |||
based on <xref target="RFC3359"/>.</t> | codepoints <xref target="TLV_CODEPOINTS" format="default"/>. The | |||
initial contents of this registry were based on <xref target="RFC3359" | ||||
format="default"/>.</t> | ||||
<t>The registry includes a set of columns indicating in which PDU types | <t>The registry includes a set of columns indicating in which PDU types | |||
a given TLV is allowed:</t> | a given TLV is allowed:</t> | |||
<dl newline="false" spacing="normal" indent="8"> | ||||
<t>IIH - TLV is allowed in Intermediate System to Intermediate System | <dt>IIH</dt> | |||
Hello (IIH) PDUs (Point-to-point and LAN)</t> | <dd>TLV is allowed in Intermediate System to Intermediate System | |||
Hello (IIH) PDUs (Point-to-point and LAN)</dd> | ||||
<t>LSP - TLV is allowed in Link State PDUs (LSP)</t> | <dt>LSP</dt> | |||
<dd>TLV is allowed in Link State PDUs (LSPs)</dd> | ||||
<t>SNP - TLV is allowed in Sequence Number PDUs (SNP) (Partial Sequence | <dt>SNP</dt> | |||
Number PDUs (PSNP) and Complete Sequence Number PDUS (CSNP))</t> | <dd>TLV is allowed in Sequence Number PDUs (SNPs) (Partial Sequence | |||
Number PDUs (PSNPs) and Complete Sequence Number PDUs (CSNPs))</dd> | ||||
<t>Purge - TLV is allowed in LSP Purges <xref target="RFC6233"/></t> | <dt>Purge</dt> | |||
<dd>TLV is allowed in LSP Purges <xref target="RFC6233" | ||||
<t>If "Y" is entered in a column it means the TLV is allowed in the | format="default"/></dd> | |||
</dl> | ||||
<t>If "Y" is entered in a column, it means the TLV is allowed in the | ||||
corresponding PDU type.</t> | corresponding PDU type.</t> | |||
<t>If "N" is entered in a column, it means the TLV is not allowed in the | ||||
<t>If "N" is entered in a column it means the TLV is not allowed in the | ||||
corresponding PDU type.</t> | corresponding PDU type.</t> | |||
</section> | </section> | |||
<section anchor="TLV-Acceptance" numbered="true" toc="default"> | ||||
<section anchor="TLV-Acceptance" title="TLV Acceptance in PDUs "> | <name>TLV Acceptance in PDUs</name> | |||
<t>This section describes the correct behavior when a PDU is received | <t>This section describes the correct behavior when a PDU | |||
which contains a TLV which is specified as disallowed in the TLV | that contains a TLV that is specified as disallowed in the "TLV | |||
Codepoints Registry.</t> | Codepoints Registry" is received.</t> | |||
<section numbered="true" toc="default"> | ||||
<section title="Handling of Disallowed TLVs in Received PDUs other than LS | <name>Handling of Disallowed TLVs in Received PDUs Other Than LSP | |||
P Purges"> | Purges</name> | |||
<t><xref target="ISO10589"/> defines the behavior required when a PDU | <t><xref target="ISO10589" format="default"/> defines the behavior | |||
is received containing a TLV which is "not recognised". It states (see | required when a PDU is received containing a TLV that is "not | |||
Sections 9.5 - 9.13):</t> | recognised". It states (see Sections 9.5 - 9.13):</t> | |||
<blockquote> | ||||
<t><figure> | Any codes in a received PDU that are not recognised shall be ignored. | |||
<artwork><![CDATA[ "Any codes in a received PDU that are not | </blockquote> | |||
recognised shall be ignored."]]></artwork> | <t>This is the model to be followed when a TLV that is disallowed is | |||
</figure></t> | received. Therefore, TLVs in a PDU (other than LSP purges) that are | |||
disallowed <bcp14>MUST</bcp14> be ignored and <bcp14>MUST NOT</bcp14> | ||||
<t>This is the model to be followed when a TLV is received which is | cause the PDU itself to be rejected by the receiving IS.</t> | |||
disallowed. Therefore TLVs in a PDU (other than LSP purges) which are | ||||
disallowed MUST be ignored and MUST NOT cause the PDU itself to be | ||||
rejected by the receiving IS.</t> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Special Handling of Disallowed TLVs in Received LSP Purge | <name>Special Handling of Disallowed TLVs in Received LSP Purges</name> | |||
s"> | <t>When purging LSPs, <xref target="ISO10589" format="default"/> | |||
<t>When purging LSPs, <xref target="ISO10589"/> recommends (but does | recommends (but does not require) the body of the LSP (i.e., all TLVs) | |||
not require) the body of the LSP (i.e., all TLVs) be removed before | be removed before generating the purge. LSP purges that have TLVs in | |||
generating the purge. LSP purges which have TLVs in the body are | the body are accepted, though any TLVs that are present are | |||
accepted though any TLVs which are present are ignored.</t> | ignored.</t> | |||
<t>When cryptographic authentication <xref target="RFC5304" | ||||
<t>When cryptographic authentication <xref target="RFC5304"/> was | format="default"/> was introduced, this looseness when processing | |||
introduced, this looseness when processing received purges had to be | received purges had to be addressed in order to prevent attackers from | |||
addressed in order to prevent attackers from being able to initiate a | being able to initiate a purge without having access to the | |||
purge without having access to the authentication key. <xref | authentication key. Therefore, <xref target="RFC5304" | |||
target="RFC5304"/> therefore imposed strict requirements on what TLVs | format="default"/> imposed strict requirements on what TLVs were allowed | |||
were allowed in a purge (authentication only) and specified that:</t> | in a | |||
purge (authentication only) and specified that:</t> | ||||
<t><figure> | <blockquote> | |||
<artwork><![CDATA[ "ISes MUST NOT accept purges that contain TLVs | ISes <bcp14>MUST NOT</bcp14> accept purges that contain TLVs other than the | |||
other than the authentication TLV".]]></artwork> | authentication TLV. | |||
</figure></t> | </blockquote> | |||
<t>This behavior was extended by <xref target="RFC6232" | ||||
<t>This behavior was extended by <xref target="RFC6232"/> which | format="default"/>, which introduced the Purge Originator | |||
introduced the Purge Originator Identification (POI) TLV and <xref | Identification (POI) TLV, and <xref target="RFC6233" format="default"/>, | |||
target="RFC6233"/> which added the "Purge" column to the TLV | which added the "Purge" column to the "TLV Codepoints Registry" to | |||
Codepoints registry to identify all the TLVs which are allowed in | identify all the TLVs that are allowed in purges.</t> | |||
purges.</t> | <t>The behavior specified in <xref target="RFC5304" format="default"/> | |||
is not backwards compatible with the behavior defined by <xref | ||||
<t>The behavior specified in <xref target="RFC5304"/> is not backwards | target="ISO10589" format="default"/>; therefore, it can only be safely | |||
compatible with the behavior defined by <xref target="ISO10589"/> and | enabled when all nodes support cryptographic | |||
therefore can only be safely enabled when all nodes support | authentication. Similarly, the extensions defined by <xref | |||
cryptographic authentication. Similarly, the extensions defined by | target="RFC6232" format="default"/> are not compatible with the | |||
<xref target="RFC6232"/> are not compatible with the behavior defined | behavior defined in <xref target="RFC5304" format="default"/>; | |||
in <xref target="RFC5304"/>, therefore can only be safely enabled when | therefore, they can only be safely enabled when all nodes support the | |||
all nodes support the extensions.</t> | extensions.</t> | |||
<t>When new protocol behaviors are specified that are not backwards | <t>When new protocol behaviors are specified that are not backwards | |||
compatible, it is RECOMMENDED that implementations provide controls | compatible, it is <bcp14>RECOMMENDED</bcp14> that implementations | |||
for their enablement. This serves to prevent interoperability issues | provide controls for their enablement. This serves to prevent | |||
and allow for non-disruptive introduction of the new functionality | interoperability issues and allow for non-disruptive introduction of | |||
into an existing network.</t> | the new functionality into an existing network.</t> | |||
</section> | </section> | |||
<section anchor="app-sub-tlv" numbered="true" toc="default"> | ||||
<section title="Applicability to sub-TLVs"> | <name>Applicability to Sub-TLVs</name> | |||
<t><xref target="RFC5305"/> introduced sub-TLVs, which are TLV tuples | <t><xref target="RFC5305" format="default"/> introduced sub-TLVs, | |||
advertised within the body of a parent TLV. Registries associated with | which are TLV tuples advertised within the body of a parent | |||
sub-TLVs are associated with the TLV Codepoints Registry and specify | TLV. Registries associated with sub-TLVs are associated with the "TLV | |||
in which TLVs a given sub-TLV is allowed. Section 2 of <xref | Codepoints Registry" and specify in which TLVs a given sub-TLV is | |||
target="RFC5305"/> is updated by the following sentence:</t> | allowed. <xref target="RFC5305" sectionFormat="of" section="2"/> is | |||
updated by the following sentence:</t> | ||||
<t><figure> | <blockquote> | |||
<artwork><![CDATA[ "As with TLVs, it is required that sub-TLVs whi | As with TLVs, it is required that sub-TLVs that are disallowed | |||
ch | <bcp14>MUST</bcp14> be ignored on receipt. | |||
are disallowed MUST be ignored on receipt.".]]></artwork> | </blockquote> | |||
</figure></t> | <t>The existing sentence in <xref target="RFC5305" | |||
sectionFormat="of" section="2"/>:</t> | ||||
<t>The existing sentence in Section 2 of <xref target="RFC5305"/> | <blockquote> | |||
:</t> | Unknown sub-TLVs are to be ignored and skipped upon receipt. | |||
</blockquote> | ||||
<t><figure> | ||||
<artwork><![CDATA[ "Unknown sub-TLVs are to be ignored and skipped | ||||
upon | ||||
receipt."]]></artwork> | ||||
</figure></t> | ||||
<t>is replaced by:</t> | <t>is replaced by:</t> | |||
<blockquote> | ||||
<t><figure> | Unknown sub-TLVs <bcp14>MUST</bcp14> be ignored and skipped upon receipt. | |||
<artwork><![CDATA[ "Unknown sub-TLVs MUST be ignored and skipped u | </blockquote> | |||
pon | ||||
receipt."]]></artwork> | ||||
</figure></t> | ||||
</section> | </section> | |||
<section anchor="correct-poi" numbered="true" toc="default"> | ||||
<section title="Correction to POI TLV Registry Entry"> | <name>Correction to POI "TLV Codepoints Registry" Entry</name> | |||
<t>An error was introduced by <xref target="RFC6232"/> when specifying | <t>An error was introduced by <xref target="RFC6232" | |||
in which PDUs the POI TLV is allowed. Section 3 of <xref | format="default"/> when specifying in which PDUs the POI TLV is | |||
target="RFC6232"/> stated:</t> | allowed. <xref target="RFC6232" sectionFormat="of" section="3"/> | |||
states:</t> | ||||
<t><figure> | <blockquote> | |||
<artwork><![CDATA[ "The POI TLV SHOULD be found in all purges and | The POI TLV <bcp14>SHOULD</bcp14> be found in all purges and <bcp14>MUST | |||
MUST NOT be found in LSPs with a non-zero | NOT</bcp14> be found in LSPs with a non-zero Remaining Lifetime. | |||
Remaining Lifetime."]]></artwork> | </blockquote> | |||
</figure></t> | <t>However, the IANA section of the same document states:</t> | |||
<blockquote> | ||||
<t>However, the IANA section of the same document stated:</t> | The additional values for this TLV should be IIH:n, LSP:y, SNP:n, and | |||
Purge:y. | ||||
<t><figure> | </blockquote> | |||
<artwork><![CDATA[ "The additional values for this TLV should be | ||||
IIH:n, LSP:y, SNP:n, and Purge:y."]]></artwork> | ||||
</figure></t> | ||||
<t>The correct setting for "LSP" is "n". This document updates <xref | <t>The correct setting for "LSP" is "n". This document updates <xref | |||
target="RFC6232"/> by correcting that error.</t> | target="RFC6232" format="default"/> by correcting that error.</t> | |||
<t>This document also updates the previously quoted text from <xref | ||||
<t>This document also updates the previously quoted text from Section | target="RFC6232" sectionFormat="of" section="3"/> to be:</t> | |||
3 of <xref target="RFC6232"/> to be:</t> | <blockquote> | |||
The POI TLV <bcp14>SHOULD</bcp14> be sent in all purges and <bcp14>MUST | ||||
<t><figure> | NOT</bcp14> be sent in LSPs with a non-zero Remaining Lifetime. | |||
<artwork><![CDATA[ "The POI TLV SHOULD be sent in all purges and | </blockquote> | |||
MUST NOT be sent in LSPs with a non-zero | ||||
Remaining Lifetime."]]></artwork> | ||||
</figure></t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="LSP_ACCEPTANCE" numbered="true" toc="default"> | ||||
<section anchor="LSP_ACCEPTANCE" | <name>TLV Validation and LSP Acceptance</name> | |||
title="TLV Validation and LSP Acceptance "> | ||||
<t>The correct format of a TLV and its associated sub-TLVs, if | <t>The correct format of a TLV and its associated sub-TLVs, if | |||
applicable, are defined in the document(s) which introduce each | applicable, is defined in the document(s) that introduces each | |||
codepoint. The definition MUST include what action to take when the | codepoint. The definition <bcp14>MUST</bcp14> include what action to | |||
format/content of the TLV does not conform to the specification (e.g., | take when the format/content of the TLV does not conform to the | |||
"MUST be ignored on receipt"). When making use of the information | specification (e.g., "<bcp14>MUST</bcp14> be ignored on receipt"). When | |||
encoded in a given TLV (or sub-TLV) receiving nodes MUST verify that the | making use of the information encoded in a given TLV (or sub-TLV), | |||
TLV conforms to the standard definition. This includes cases where the | receiving nodes <bcp14>MUST</bcp14> verify that the TLV conforms to the | |||
length of a TLV/sub-TLV is incorrect and/or cases where the value field | standard definition. This includes cases where the length of a | |||
does not conform to the defined restrictions.</t> | TLV/sub-TLV is incorrect and/or cases where the value field does not | |||
conform to the defined restrictions.</t> | ||||
<t>However, the unit of flooding for the IS-IS Update process is an LSP. | <t>However, the unit of flooding for the IS-IS Update process is an | |||
The presence of a TLV (or sub-TLV) with content which does not conform | LSP. The presence of a TLV (or sub-TLV) with content that does not | |||
to the relevant specification MUST NOT cause the LSP itself to be | conform to the relevant specification <bcp14>MUST NOT</bcp14> cause the | |||
rejected. Failure to follow this requirement will result in inconsistent | LSP itself to be rejected. Failure to follow this requirement will | |||
LSP Databases on different nodes in the network which will compromise | result in inconsistent LSP Databases on different nodes in the network | |||
the correct operation of the protocol.</t> | that will compromise the correct operation of the protocol.</t> | |||
<t>LSP Acceptance rules are specified in <xref target="ISO10589" | ||||
<t>LSP Acceptance rules are specified in <xref target="ISO10589"/> . | format="default"/>. Acceptance rules for LSP purges are extended by | |||
Acceptance rules for LSP purges are extended by <xref target="RFC5304"/> | <xref target="RFC5304" format="default"/> and <xref target="RFC5310" | |||
<xref target="RFC5310"> and </xref> and are further extended by <xref | format="default"/> and are further extended by <xref | |||
target="RFC6233"/>.</t> | target="RFC6233" format="default"/>.</t> | |||
<t><xref target="ISO10589" format="default"/> also specifies the | ||||
behavior when an LSP is not accepted. | ||||
<t><xref target="ISO10589"/> also specifies the behavior when an LSP is | This behavior is *not* altered by | |||
not accepted. This behavior is NOT altered by extensions to the LSP | extensions to the LSP Acceptance rules, i.e., regardless of the reason | |||
Acceptance rules i.e., regardless of the reason for the rejection of an | for the rejection of an LSP, the Update process on the receiving router | |||
LSP the Update process on the receiving router takes the same | takes the same action.</t> | |||
action.</t> | ||||
</section> | </section> | |||
<section anchor="IANA" numbered="true" toc="default"> | ||||
<section anchor="IANA" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
<t>IANA is requested to add this document as a reference for the TLV | <t>IANA has added this document as a reference for the "TLV | |||
Codepoints Registry.</t> | Codepoints Registry".</t> | |||
<t>IANA has also modified the entry for the Purge Originator | ||||
<t>IANA is also requested to modify the entry for the Purge Originator | Identification TLV in the "TLV Codepoints Registry" to be IIH:n, LSP:n, | |||
Identification TLV in the TLV Codepoints Registry to be:</t> | SNP:n, and Purge:y.</t> | |||
<t>The reference field of the Purge Originator Identification | ||||
<t>IIH:n, LSP:n, SNP:n, and Purge:y.</t> | TLV has been updated to point to this document.</t> | |||
<t>The reference field should be updated to point to this document.</t> | ||||
</section> | </section> | |||
<section anchor="Security" numbered="true" toc="default"> | ||||
<section anchor="Security" title="Security Considerations"> | <name>Security Considerations</name> | |||
<t>As this document makes no changes to the protocol there are no new | <t>As this document makes no changes to the protocol, there are no new | |||
security issues introduced.</t> | security issues introduced.</t> | |||
<t>The clarifications discussed in this document are intended to make it | <t>The clarifications discussed in this document are intended to make it | |||
less likely that implementations will incorrectly process received LSPs, | less likely that implementations will incorrectly process received LSPs, | |||
thereby also making it less likely that a bad actor could exploit a | thereby also making it less likely that a bad actor could exploit a | |||
faulty implementation.</t> | faulty implementation.</t> | |||
<t>Security concerns for IS-IS are discussed in <xref target="ISO10589" | ||||
<t>Security concerns for IS-IS are discussed in <xref | format="default"/>, <xref target="RFC5304" format="default"/>, and <xref | |||
target="ISO10589"/>, <xref target="RFC5304"/>, and <xref | target="RFC5310" format="default"/>.</t> | |||
target="RFC5310"/>.</t> | ||||
</section> | ||||
<section anchor="Acknowledgements" title="Acknowledgements"> | ||||
<t>The authors would like to thank Alvaro Retana.</t> | ||||
<!----> | ||||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | <back> | |||
<references title="Normative References"> | <references> | |||
<reference anchor="ISO10589"> | <name>References</name> | |||
<front> | <references> | |||
<title>Intermediate system to Intermediate system intra-domain | <name>Normative References</name> | |||
routeing information exchange protocol for use in conjunction with | ||||
the protocol for providing the connectionless-mode Network Service | ||||
(ISO 8473)</title> | ||||
<author> | <reference anchor="ISO10589"> | |||
<organization abbrev="ISO">International Organization for | <front> | |||
<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 | ||||
the protocol for providing the connectionless-mode network | ||||
service (ISO 8473)</title> | ||||
<seriesInfo name="ISO/IEC" value="10589:2002, Second Edition"/> | ||||
<author> | ||||
<organization abbrev="ISO">International Organization for | ||||
Standardization</organization> | Standardization</organization> | |||
</author> | </author> | |||
<date month="November" year="2002"/> | ||||
<date month="Nov" year="2002"/> | </front> | |||
</front> | </reference> | |||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
<seriesInfo name="ISO/IEC" value="10589:2002, Second Edition"/> | ence.RFC.2119.xml"/> | |||
</reference> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.3563.xml"/> | ||||
<?rfc include="reference.RFC.2119"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.5304.xml"/> | ||||
<?rfc include="reference.RFC.3563"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.5305.xml"/> | ||||
<?rfc include="reference.RFC.5304"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.5310.xml"/> | ||||
<?rfc include="reference.RFC.5305"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.6232.xml"/> | ||||
<?rfc include="reference.RFC.5310"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.6233.xml"/> | ||||
<?rfc include="reference.RFC.6232"?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.8174.xml"/> | ||||
<?rfc include="reference.RFC.6233"?> | ||||
<?rfc include="reference.RFC.8174"?> | ||||
<reference anchor="TLV_CODEPOINTS"> | ||||
<front> | ||||
<title>IS-IS TLV Codepoints web page | ||||
(https://www.iana.org/assignments/isis-tlv-codepoints/isis-tlv-codepoi | ||||
nts.xhtml)</title> | ||||
<author> | ||||
<organization>IANA</organization> | ||||
</author> | ||||
<date/> | <reference anchor="TLV_CODEPOINTS" | |||
</front> | target="https://www.iana.org/assignments/isis-tlv-codepoints/" | |||
</reference> | > | |||
<front> | ||||
<title>IS-IS TLV Codepoints</title> | ||||
<author> | ||||
<organization>IANA</organization> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.3359.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7356.xml"/> | ||||
</references> | ||||
</references> | </references> | |||
<section anchor="Acknowledgements" numbered="false" toc="default"> | ||||
<name>Acknowledgements</name> | ||||
<t>The authors would like to thank <contact fullname="Alvaro | ||||
Retana"/>.</t> | ||||
<references title="Informative References"> | </section> | |||
<?rfc include="reference.RFC.3359"?> | ||||
<?rfc include="reference.RFC.7356"?> | ||||
<?rfc ?> | ||||
</references> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 79 change blocks. | ||||
374 lines changed or deleted | 280 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |