<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc5120 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5120.xml">
<!ENTITY rfc5304 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5304.xml">
<!ENTITY rfc5305 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5305.xml">
<!ENTITY rfc5310 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5310.xml">
<!ENTITY rfc7356 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7356.xml">
<!ENTITY rfc8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">

]>
<?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-00"
     ipr="trust200902" consensus="true">
  <front>
    <title abbrev="Multi-TLV">
      Multiple TLV Instances 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 month="Jan" year="2022" day="21"/>
    <area>Routing Area</area>
    <workgroup>LSR Working Group</workgroup>
    <keyword>ISIS</keyword>
    <keyword>Draft</keyword>
    <abstract>
      <t>
	Emerging technologies are adding information into IS-IS TLVs
		  at a steady pace while
	deployment scales are simultaneously increasing. This causes 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 space
	through multiple TLV instances.
      </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 inadequate.
      </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 ambiguous.  The intent of this document
	is to clarify the situation by explicitly defining the use of
	multiple instances of TLVs as the mechanism for scaling TLV
	contents, except where explicitly prohibited.
      </t>
      <t>   
	Today, as an 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 the behavior
		  expected when
	multiple copies of the TLV are present
		  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>
    </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="Procedure for Advertising Multiple TLV Instances">
      <t>
	If the TLV contains information that specifies the
	applicability of its contents (i.e., a key), the key
	information MUST be replicated in additional TLV instances
	so that all contents specific to that key can be
	identified. This allows more sub-TLVs to be advertised for the
	same key information. The specification of the key for a given
	TLV is out of scope for this document.
      </t>
      <t>
	This should be applied recursively. If a TLV is structured
	with sub-TLVs and sub-sub-TLVs, then replication of key
	information allows for the advertisement of additional sub-TLVs
	and sub-sub-TLVs for that key.
      </t>
      <t>
	Note: If the fixed portion of a TLV includes information
	that is NOT part of the key and the non-key elements of the
	fixed portion of the TLV (metric and other bits in the control
	octet in the example below) differ, the values in the first TLV
	present in the lowest numbered LSP MUST be used.
      </t>
      <t>
	As an example, consider the Extended IP Reachability TLV (type
	135).  A prefix in this TLV is specified by:
	<list style="symbols">
	  <t>
	    4 octets of metric information
	  </t>
	  <t>
	    1 octet of control information which includes 6 bits
	    specifying the prefix length
	  </t>
	  <t>
	    0-4 octets of IPv4 prefix
	  </t>
	</list>
	followed by up to 250 octets of sub-TLV information.
      </t>
      <t>	
	The key consists of the 6 bits of prefix length and the 0-4
	octets of IPv4 prefix.
      </t>
      <t>
	If this is insufficient sub-TLV space, then the node MAY
	advertise additional instances of the Extended IS Reachability
	TLV. The key information MUST be replicated identically and
	the additional sub-TLV space may be populated with additional
	information. The complete information for a given key in such
	cases is the joined set of all the carried information under
	the key in all the TLV instances.
      </t>
    </section>

    <section title="Procedure for Receiving Multiple TLV Instances">
      <t>
	A node that receives multiple TLV instances MUST accept all of
	the information in all of the instances. The order of arrival
	and placement of the TLV instances in LSP fragments MUST NOT
	change the behavior of the node once all the fragments have
	been received.
      </t>
      <t>
	The contents of multiple TLV instances of the same type should
	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 should be processed as if the subsequent data were
	concatenated.
      </t>
      <t>
	Specifically, if a TLV is structured with sub-TLVs and key
	information is replicated, then the sub-TLVs should be
	processed as if they were concatenated.
      </t>
      <t>
	This process should be applied recursively. If a TLV is
	structured with sub-TLVs and sub-sub-TLVs with replicated key
	information at all levels, then sub-sub-TLVs should be processed
	as if they were concatenated.
      </t>
      <t>
	For example, suppose that a node received an LSP with multiple
	instances of the Extended IS Reachability TLV. The first
	instance contained key information K with sub-TLVs A, B, and
	C. The second instance contained key information K with
	sub-TLVs D, E, and F. The receiving node should 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.
      </t>
    </section>

    <section title="Operational Considerations">
      <t>
	The generation of multiple TLVs for a given object is
	triggered by more information than will fit into a single
	TLV. If multiple TLVs are advertised in the presence of nodes
	which do not support multiple TLVs, operation of routing in
	the network is likely to be compromised.
      </t>
    </section>

    <section title="IANA Considerations">
      <t>
	This document makes no requests of IANA.
      </t>
    </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">
      &rfc2119;
      &rfc5304;
      &rfc5310;
      &rfc8174;
      <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">
      &rfc5120;
      &rfc5305;
      &rfc7356;
    </references>
  </back>
</rfc>

