Internet-Draft | Multi-part TLVs | July 2022 |
Kaneriya, et al. | Expires 5 January 2023 | [Page] |
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 [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.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 5 January 2023.¶
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
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 [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.¶
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.¶
Today, for example, the Extended IS Reachability TLV (22) [RFC5305] and MT Intermediate Systems TLV (222) [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.¶
[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.¶
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 [RFC7981] so that implementations can advertise their readiness to participate in this mechanism.¶
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.¶
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
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).¶
The Multi-part TLV Capability is a sub-TLV of the Router Capability TLV [RFC7981]. Nodes that are prepared to receive multi-part TLVs SHOULD advertise this capability. The capability has the format:¶
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+¶
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.¶
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.¶
As an example, consider the Extended IS Reachability TLV (type 22). A neighbor in this TLV is specified by:¶
This acts as the key for this entry. The key is followed by up to 244 octets of sub-TLV information.¶
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.¶
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.¶
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.¶
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.¶
This document requests a code point allocation for the following sub-TLV.¶
IANA is requested to add a new sub-TLV to the IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV [capreg].¶
This document creates no new security issues for IS-IS. Additional instances of existing TLVs expose no new information.¶
Security concerns for IS-IS are addressed in [ISO10589], [RFC5304], and [RFC5310].¶