<?xml version="1.0" encoding="US-ASCII"?><!DOCTYPE rfc><?rfc toc="yes"?><?rfc tocompact="yes"?><?rfc tocdepth="3"?><?rfc tocindent="yes"?><?rfc symrefs="yes"?><?rfc sortrefs="yes"?><?rfc comments="yes"?><?rfc inline="yes"?><?rfc compact="yes"?><?rfc subcompact="no"?><rfc category="std" docName="draft-pkaneria-lsr-multi-tlv-01" ipr="trust200902">  <front>    <title abbrev="Multi-part TLVs">      Multi-part TLVs in IS-IS    </title>    <author fullname="Parag Kaneriya " initials="P." surname="Kaneriya">      <organization>Juniper Networks</organization>      <address>        <postal>          <street>Elnath-Exora Business Park Survey</street>          <city>Bangalore</city>          <region>Karnataka</region>          <code>560103</code>          <country>India</country>        </postal>        <email>pkaneria@juniper.net</email>      </address>    </author>    <author fullname="Tony Li" initials="Tony." surname="Li">      <organization>Juniper Networks</organization>      <address>        <postal>          <street>1133 Innovation Way</street>          <city>Sunnyvale</city>          <region>California</region>          <code>94089</code>          <country>USA</country>        </postal>        <phone></phone>        <email>tony.li@tony.li</email>      </address>    </author>    <author fullname="Antoni Przygienda" initials="Antoni." surname="Przygienda">      <organization>Juniper Networks</organization>      <address>        <postal>          <street>1133 Innovation Way</street>          <city>Sunnyvale</city>          <region>California</region>          <code>94089</code>          <country>USA</country>        </postal>        <email>prz@juniper.net</email>      </address>    </author>    <author fullname="Shraddha Hegde" initials="S." surname="Hegde">      <organization>Juniper Networks</organization>      <address>        <postal>          <street>Elnath-Exora Business Park Survey</street>          <city>Bangalore</city>          <region>Karnataka</region>          <code>560103</code>          <country>India</country>        </postal>        <email>shraddha@juniper.net</email>      </address>    </author>    <author fullname="Chris Bowers" initials="C." surname="Bowers">      <organization>Juniper Networks</organization>      <address>        <postal>          <street>1133 Innovation Way</street>          <city>Sunnyvale</city>          <region>California</region>          <code>94089</code>          <country>USA</country>        </postal>        <email>cbower@juniper.net</email>      </address>    </author>    <author fullname="Les Ginsberg" initials="L" surname="Ginsberg">      <organization>Cisco Systems</organization>      <address>        <postal>          <street>821 Alder Drive</street>          <city>Milpitas</city>          <code>95035</code>          <region>CA</region>          <country>USA</country>        </postal>        <email>ginsberg@cisco.com</email>      </address>    </author>    <date year="2022"/>    <area>Routing Area</area>    <workgroup>LSR Working Group</workgroup>    <keyword>ISIS</keyword>    <keyword>Draft</keyword>    <abstract>      <t>        New technologies are adding new information into IS-IS while        deployment scales are simultaneously increasing, causing the        contents of many critical TLVs to exceed the currently supported        limit of 255 octets.  Extensions such as <xref target="RFC7356"/>        require significant IS-IS changes that could help address the        problem, but a less drastic solution would be beneficial.  This        document codifies the common mechanism of extending the TLV	content space through multiple TLVs.      </t>    </abstract>  </front>  <middle>    <section title="Introduction">      <t>        The continued growth of the Internet has resulted in a commensurate        growth in the scale of service provider networks and the amount of        information carried in IS-IS <xref target="ISO10589"/>        Type-Length-Value (TLV) tuples. Simultaneously, new traffic        engineering technologies are defining new attributes, further adding        to the scaling pressures. The original TLV definition allows for 255        octets of payload, which is becoming increasingly stressful.      </t>      <t>        Some TLV definitions have addressed this by explicitly stating        that a TLV may appear multiple times inside of an        LSP. However, this has not been done for many legacy TLVs,        leaving the situation somewhat ambiguous.  The intent of this        document is to clarify and codify the situation by explicitly        making multiple occurences of a TLV the mechanism for scaling        TLV contents, except where otherwise explicitly stated.      </t>      <t>           Today, for example, the Extended IS Reachability TLV (22)        <xref target="RFC5305"/>        and MT Intermediate Systems TLV (222) <xref target="RFC5120"/>        are TLVs where existing standards do not specify sending        multiple copies and no other mechanism for expanding the        information carrying capacity of the TLV has been specified.      </t>      <t>        <xref target="RFC7356"/> has proposed a 16 bit length field for        TLVs in flooding scoped Protocol Data Units (PDUs), but does        nothing to address legacy implementations that do not yet        implement the full breadth and scope of that RFC.      </t>      <t>        The mechanism described in this document has not been documented        for all TLVs previously, so it is likely that some        implementations would not inter-operate correctly if these        mechanisms were used without caution. To avoid this issue, this        document introduces a new router capability <xref        target="RFC7981"/> so that implementations can advertise their        readiness to participate in this mechanism.      </t>      <t>	The mechanism described in this document has been used	explicitly by some TLVs, so this document is not creating an	unprecedented mechanism. It is specifying a means for	extending TLVs where no extension mechanism has been	previously specified, and defining a default extension	mechanism for future TLVs, if they choose not to specify	another extension mechanism.      </t>    </section>    <section anchor="ReqLang" 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 <xref target="RFC2119">BCP 14</xref>        <xref target="RFC8174"/>        when, and only when, they appear in all capitals, as shown here.      </t>    </section>    <section title="Multi-part TLVs">      <t>	A TLV is a tuple of (Type, Length, Value) and can be	advertised in IS-IS packets. TLVs sometimes contain	information, called a key, that indicates the applicability of	the remaining contents of the TLV.  If a router advertises	multiple TLV tuples with the same Type code in an IS-IS IIH	packet or in the set of LSPs for a level with the same key	value, they are considered a multi-part TLV (MP-TLV).      </t>    </section>    <section title="The Multi-part TLV Capability">      <t>        The Multi-part TLV Capability is a sub-TLV of the        Router Capability TLV <xref target="RFC7981"/>. Nodes that are        prepared to receive multi-part TLVs SHOULD advertise        this capability.  The capability has the format:      </t>      <figure align="center">        <artwork>           0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+          |      Type     |     Length    |          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+        </artwork>      </figure>      <t>        <list style="symbols">          <t>            Type: 1 octect, value XXX.          </t>          <t>            Length: 1 octect, value 0.          </t>        </list>      </t>    </section>    <section title="Procedure for Advertising Multi-part TLVs">      <t>        If all routers in an area advertise the Multi-part TLV        Capability a node MAY advertise multi-part TLVs to        increase space for payload values, unless otherwise        specified by the TLV.      </t>      <t>        If the TLV contains information that specifies the        applicability of its contents (i.e., a key), the key        information SHOULD be replicated in additional TLV instances        so that all contents specific to that key can be advertised.      </t>      <t>        As an example, consider the Extended IS Reachability TLV (type        22).  A neighbor in this TLV is specified by:        <list style="symbols">          <t>            7 octets of system ID and pseudonode number          </t>           <t>             3 octets of default metric          </t>        </list>      </t>      <t>               This acts as the key for this entry.  The key is followed by        up to 244 octets of sub-TLV information.      </t>      <t>        If this is insufficient sub-TLV space, then the node MAY        advertise additional Extended IS Reachability TLVs. The key        information MUST be replicated identically and the additional        sub-TLV space may be populated with additional information.      </t>    </section>     <section title="Procedure for Receiving Multi-part TLVs">      <t>        A node that supports the Multi-part TLV Capability and        receives a multi-part TLV MUST accept all of the        information in all of the parts. The order of arrival and        placement of the TLV parts in LSP fragments is irrelevant. The	placement of the TLV parts in an IIH is irrelevant.      </t>      <t>        The contents of a multi-part TLV MUST be processed as if        they were concatenated.  If the internals of the TLV contain        key information, then replication of the key information        should be taken to indicate that subsequent data MUST be        processed as if the subsequent data were concantenated after a	single copy of the key information.      </t>      <t>        For example, suppose that a node receives an LSP with a        multi-part Extended IS Reachability TLV. The first part        contains key information K with sub-TLVs A, B, and C. The        second part contains key information K with sub-TLVs D, E, and        F. The receiving node must then process this as having key        information K and sub-TLVs A, B, C, D, E, F, or, because        ordering is irrelevant, sub-TLVs D, E, F, A, B, C, or any	other permutation.      </t>    </section>    <section anchor="IANA" title="IANA Considerations">      <t>        This document requests a code point allocation for the following sub-TLV.      </t>      <section title="The Multiple TLV Instance Sub-TLV">          <t>          IANA is requested to add a new sub-TLV to the IS-IS Sub-TLVs for          IS-IS Router CAPABILITY TLV <xref target="capreg"/>.        </t>        <t>          <list style="symbols">            <t>              Value - XXX (TBD by IANA).             </t>            <t>              Description - Multi-part TLV Capability            </t>          </list>        </t>      </section>            </section>    <section anchor="Security" title="Security Considerations">      <t>        This document creates no new security issues for IS-IS. Additional        instances of existing TLVs expose no new information.      </t>      <t>        Security concerns for IS-IS are addressed in <xref        target="ISO10589"/>, <xref target="RFC5304"/>, and <xref        target="RFC5310"/>.      </t>    </section>  </middle>  <back>    <references title="Normative References">      <?rfc include="reference.RFC.2119"?>      <?rfc include='reference.RFC.7981'?>       <?rfc include='reference.RFC.8174'?>      <?rfc include='reference.RFC.5304'?>      <?rfc include='reference.RFC.5310'?>      <reference anchor="ISO10589" target="ISO/IEC 10589:2002">        <front>          <title>            Intermediate system to Intermediate system routing information exchange protocol for use in conjunction with the Protocol for providing the Connectionless-mode Network Service (ISO 8473)          </title>          <author fullname="ISO" initials="" surname="ISO">            <organization>IANA</organization>          </author>          <date month="August" year="1987"/>        </front>      </reference>    </references>    <references title="Informative References">      <?rfc include='reference.RFC.5120'?>      <?rfc include='reference.RFC.5305'?>      <?rfc include='reference.RFC.7356'?>      <reference anchor="capreg" target="https://www.iana.org/assignments/isis-tlv-codepoints/isis-tlv-codepoints.xhtml#isis-tlv-codepoints-242">        <front>          <title>IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV Registry</title>          <author fullname="IANA" initials="" surname="IANA">            <organization>IANA</organization>          </author>          <date month="August" year="1987"/>        </front>      </reference>    </references>  </back></rfc>