RFC 9885: Multi-Part TLVs in IS-IS
- P. Kaneriya,
- T. Li,
- A. Przygienda,
- S. Hegde,
- L. Ginsberg
Abstract
New technologies are adding new information into IS-IS while deployment scales are simultaneously increasing. This causes the contents of many critical TLVs to exceed the currently supported limit of 255 octets. This document codifies the common mechanism of extending the TLV content space through multiple TLVs.¶
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2025 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://
1. Introduction
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
Some TLV definitions have addressed this by explicitly stating that a TLV may appear multiple times inside of a Link State PDU (LSP). However, this has not been done for many currently defined TLVs, leaving the situation somewhat ambiguous.¶
For example, [RFC5305] defines the Extended IS reachability TLV (22) and [RFC5120] defines the MT-ISN TLV (222). These documents do not specify sending multiple TLVs for the same object and no other mechanism for expanding the information carrying capacity of the TLV has been specified.¶
The intent of this document is to clarify and codify the situation by explicitly making multiple occurrences of a TLV the standard mechanism for scaling TLV contents. Any future document that proposes a different mechanism for scaling TLV contents for a given codepoint must explain why multiple occurrences of a TLV is not appropriate.¶
This document does not alter the encoding of any TLV where multiple occurrences of a TLV are already defined. Some examples of this are:¶
[RFC7356] has defined a 16-bit Length field for TLVs in flooding scoped Protocol Data Units (PDUs). The problem addressed by this document would likely not be encountered when 16-bit Length TLVs are in use. However, introduction of these new PDU types is not backwards compatible. Therefore, there is a need to address how to expand the information advertised in existing PDUs that use TLVs with 8-bit length fields.¶
The mechanism described in this document has not been documented
for all TLVs previously. This document provides
the necessary protocol definition and discusses potential
interoperabilit
This document specifies a means for extending TLVs where no extension mechanism has been previously explicitly specified. It also specifies this mechanism as the default extension mechanism for future TLVs. The mechanism described in this document is applicable to top level TLVs as well as any level of sub-TLVs that may appear within a top level TLV.¶
2. Requirements Language
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.¶
3. Overview of MP-TLV Applicability to TLVs
A TLV is a tuple of (Type, Length, Value) and can be advertised in IS-IS packets. Both Type and Length fields are one octet in size, which leads to the limitation that a maximum of 255 octets can be sent in a single TLV. TLVs that have certain general characteristics have the potential to require advertisement of more than 255 octets. These generic types are described in more detail in the following subsections.¶
3.1. TLVs that Advertise a List of Objects
Some TLVs are simply a list of objects of a given type. For example, the BFD-Enabled TLV (Type 148) [RFC6213] contains a list of Multi-Topology Identifier (MTID)/ Network Layer Protocol Identifier (NLPID) pairs. If more than 255 octets are required to advertise all of the MTID/NLPID pairs, multiple BFD-Enabled TLVs would be required. The relationship between multiple BFD-Enabled TLVs is established using the TLV type.¶
3.2. TLVs that Advertise Objects with Identifier(s)
Some TLVs support advertisement of objects of a given type, where each object is identified by a unique set of identifiers. In this case, the "key" that uniquely identifies a given object consists of the set of identifiers.¶
3.2.1. Example: Extended IS Reachability
As an example, consider the Extended IS reachability TLV (Type 22) [RFC5305]. A neighbor in this TLV is specified by:¶
The key consists of the 7 octets of system ID and pseudonode number plus the set of link identifiers that are present.¶
3.2.2. Example: Extended IP Reachability
As another example, consider the Extended IP reachability TLV (Type 135) [RFC5305]. A prefix in this TLV is specified by:¶
The above are followed by up to 250 octets of sub-TLV information.¶
The key consists of the 6 bits of prefix length plus 0-4 octets of an IPv4 prefix.¶
4. Multi-Part TLVs
If a router advertises multiple TLV tuples with the same TLV type and the same key (when applicable) in an IS-IS Hello (IIH) packet or in the set of LSPs for a given level, they are considered a Multi-Part TLV (MP-TLV).¶
In the absence of MP-TLV support, when a router receives an MP-TLV, the receiver chooses which TLV will be processed and which TLV will be ignored. Note that this can occur either legitimately as a transient condition when a TLV moves from one LSP to another or as a result of a defect in the sending implementation.¶
In the presence of MP-TLV support, when a router receives an MP-TLV, information from all the TLVs is processed.¶
The encoding of TLVs is not altered by the introduction of MP-TLV
support. In particular, the "key" that is used to identify the set
of TLVs that form an MP-TLV is the same key used in the absence
of MP-TLV support. Also note the definition of the "key" is part
of the specification
NOTE: This document intentionally does not include a definition of the key for each codepoint. To do so would be redundant and risk unintentionally deviating from the definition that already exists in the relevant specifications. Also, the term "key" is a generic term that is not used in the relevant specifications.¶
Each TLV that is part of an MP-TLV MUST be parsable independent of other TLVs in the MP-TLV. Breaking of a single sub-TLV or other data unit across TLVs MUST NOT be done. Breaking of a data unit across TLVs results in an invalid encoding. Guidelines to receivers for handling such a case are specified in [RFC8918].¶
5. Procedure for Receiving Multi-Part TLVs
A router that receives an MP-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. Multiple TLV parts MAY occur in a single LSP or parts MAY occur in different LSPs.¶
The placement of the TLV parts in an IIH is irrelevant.¶
When processing MP-TLVs, implementations MUST NOT impose a minimum length check. Although MP-TLVs SHOULD NOT be sent unless the capacity of a single TLV (255 octets) is exceeded, receivers MUST NOT reject MP-TLVs if senders do not strictly adhere to this constraint. For example, if two MP-TLVs are received, each of which has a length of 100 bytes, the fact that the total amount of data does not exceed 255 bytes MUST NOT cause the TLVs to be rejected. See Section 8.2 for guidance on sending MP-TLVs.¶
The contents of an MP-TLV MUST be processed as if they were concatenated. If the internals of the TLV contain key information, then replication of the key information MUST be taken to indicate that subsequent data MUST be processed as if the subsequent data were concatenated after a single copy of the key information.¶
For example, suppose that a router receives an LSP with a Multi-Part Extended IS reachability TLV. The first part contains key information K with unique sub-TLVs A, B, and C. The second part contains key information K with unique sub-TLVs D, E, and F. The receiving router must then process this as having key information K and unique sub-TLVs A, B, C, D, E, F, or, because ordering is irrelevant, unique sub-TLVs D, E, F, A, B, C, or any other permutation.¶
A TLV may contain information in its fixed part that is not part of the key. For example, the metric in both the Extended IS reachability TLV and the Extended IP Reachability TLV does not specify which object the TLV refers to, and thus is not part of the key. Having inconsistent information in different parts of an MP-TLV is an error.¶
It is also possible that information that is not part of the fixed part of a TLV can be duplicated, e.g., a sub-TLV that is intended to only appear once appears multiple times and has inconsistent values. This could occur within the same TLV or in different parts of an MP-TLV. This is also an error.¶
The document defining the TLV should specify how to handle such cases. If such a document is not explicit in how to handle such cases, the following procedure is defined:¶
6. Specification of Applicability of Multi-Part TLVs
As mentioned in Section 1, existing specifications for some TLVs have explicitly stated that the use of MP-TLV procedures are applicable to that codepoint. However, MP-TLV procedures are potentially applicable to any codepoint that allows sub-TLVs to be included as part of the information advertised. MP-TLV procedures may also be applicable to codepoints that do not support sub-TLVs, but which define an unbounded number of attributes that may be advertised within a single codepoint. An example of the latter is GMPLS-SRLG as defined in [RFC5307].¶
The lack
of explicit indication of applicability of MP-TLV procedures
for all codepoints to which such procedures could be applied
contributes to potential interoperabilit
This document makes explicit the applicability of MP-TLV procedures for all existing codepoints defined for the IS-IS protocol by extending existing and relevant IANA protocol registries to include an explicit indication of applicability of MP-TLV procedures for each codepoint. See Section 9. Therefore, any new codepoints defined by future protocol extensions will explicitly indicate the applicability of MP-TLV procedures to the new codepoints.¶
7. MP-TLV Capability Advertisement
Introduction of the use of MP-TLV for codepoints where the existing specifications have not explicitly defined MP-TLV support can be extremely disruptive to network operations in cases where not all routers in the network support MP-TLV for those codepoints. Partial deployment can easily result in traffic loss and/or other unexpected behaviors that may be hard to diagnose.¶
For example, if there are multiple TLVs associated with the advertisement of a neighbor and an implementation does not process all of the link attributes advertised, then constrained path calculations based on those attributes are likely to produce incorrect or unexpected results. This could produce forwarding loops or dropped traffic.¶
As an aid to network operators when diagnosing such situations, a new sub-TLV of the IS-IS Router CAPABILITY TLV [RFC7981] is defined:¶
MP-TLV Support for TLVs with Implicit Support¶
Routers that support MP-TLV for codepoints for which existing specifications do not explicitly define such support, but for which MP-TLV is applicable, SHOULD include this sub-TLV in a Router CAPABILITY TLV.¶
Scope of the associated Router CAPABILITY TLV is per level (S-bit clear) [RFC7981].¶
This advertisement is for informational purposes only. IS-IS protocol implementations MUST NOT alter what is sent or how what is received is processed based on these advertisements.¶
The sub-TLV intentionally does not provide a syntax to specify MP-TLV support on a per-codepoint basis. It is presumed that if such support is provided that it applies to all relevant codepoints. It is understood that in reality, a given implementation might limit MP-TLV support to particular codepoints based on the needs of the deployment scenarios in which it is used. Therefore, diligence is still required on the part of the operator to ensure that configurations which require the sending of an MP-TLV for a given codepoint are not introduced on any router in the network until all routers in the network support MP-TLV for the relevant codepoints.¶
The Router CAPABILITY TLV is meant to advertise capabilities that are of direct use to the IS-IS protocol. The MP-TLV Support sub-TLV advertises management information, which is not of direct use to the protocol. The intent is to provide information that may be of use to a network operator. This exception to the intended use of the Router CAPABILITY TLV is introduced to help mitigate the potential disruptiveness associated with the introduction of MP-TLV support in cases where such support has not been explicitly defined. This is not intended to introduce a generic new use case for the Router CAPABILITY TLV.¶
NOTE: A more appropriate and robust mechanism to provide detailed information on what a given implementation supports is to utilize YANG to define Protocol Implementation Conformance Statement (PICS). An example of this can be found in [PICS-YANG].¶
8. Deployment Considerations
Sending of MP-TLVs in the presence of routers that do not
correctly process such advertisements can result in
interoperabilit
While it is not in scope for this document to mandate how
implementations provide the means to prevent (or at least make less
likely) partial deployment of MP-TLV for a given codepoint, it is
important to emphasize the need to assist operators in avoiding
inadvertent problematic deployment scenarios. Providing appropriate
controls to enable/disable the sending of MP-TLVs as discussed
in Section 8.1 is important to avoid interoperabilit
8.1. Controls and Alarms
It is RECOMMENDED that implementations that support the sending of MP-TLVs provide configuration controls that enable/disable generation of MP-TLVs. Given that MP-TLV support in a given implementation may vary on a per-TLV basis, these controls SHOULD provide support at a per-codepoint granularity. For example, an implementation might support MP-TLVs for IS Extended Reachability but not for IP Reachability.¶
Implementations that support disablement of MP-TLVs MUST log the following occurrences:¶
Network operators SHOULD NOT enable MP-TLVs until ensuring that all implementations that will receive the MP-TLVs are capable of interpreting them correctly as described in Section 5.¶
8.2. Restrictions on Generation of MP-TLVs
This section discusses restrictions on sending of MP-TLVs. When applying these restrictions, it is assumed that it has already been determined that sending of MP-TLVs is allowed based on the setting of the controls discussed in Section 8.1.¶
Sending a single TLV with all the information about an object is preferable to sending multiple TLVs. It is simpler and more efficient to parse information from a single TLV than to combine the information from multiple TLVs. Implementations SHOULD NOT send multiple TLVs unless MP-TLV is applicable to the TLV and the amount of information that is required to be sent exceeds the capacity of a single TLV. For example, when additional space is required in an existing TLV, as long as there is space in the TLV, information SHOULD NOT be split into multiple TLVs. If there is no space in the current LSP to fit the now larger TLV, the TLV SHOULD be moved to a new LSP.¶
9. IANA Considerations
9.1. MP-TLV Support Sub-TLV
IANA has registered the following codepoint from the
"IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV" registry (see <https://
9.2. Extension to IS-IS Top-Level TLV Registries
IANA has extended a number of registries within the "IS-IS TLV Codepoints" registry group to include a column that indicates whether the MP-TLV procedures described in this document are applicable to that codepoint. "Y" indicates that MP-TLV is applicable. "N" indicates MP-TLV is not applicable.¶
The following subsections provide the initial contents of the new column for a number of existing registries. The initial values for MP-TLV applicability defined in the following subsections are based on the rule that MP-TLV is applicable to any codepoint that supports sub-TLVs, without regard to whether the sub-TLVs that are currently defined are sufficient to require MP-TLVs to be sent.¶
To access the relevant IANA registry, search for the registry name associated with each subsection at <https://
9.2.1. MP-TLV for IS-IS Top-Level TLV Codepoints
IANA has added the MP column to the "IS-IS Top-Level TLV Codepoints" registry and populated it as shown in Table 1.¶
9.2.2. MP-TLV for IS-IS Sub-TLVs for Reverse Metric TLV
IANA has added the MP column to the "IS-IS Sub-TLVs for Reverse Metric TLV" registry and populated it as shown in Table 2.¶
9.2.3. MP-TLV for IS-IS Sub-TLVs for TLVs Advertising Neighbor Information
IANA has added the MP column to the "IS-IS Sub-TLVs for TLVs Advertising Neighbor Information" registry and populated it as shown in Table 3.¶
9.2.4. MP-TLV for IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability
IANA has added the MP column to the "IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability" registry and populated it as shown in Table 4.¶
9.2.5. MP-TLV for IS-IS Sub-TLVs for MT-Capability TLV
IANA has added the MP column to the "IS-IS Sub-TLVs for MT-Capability TLV" registry and populated it as shown in Table 5.¶
9.2.6. MP-TLV for IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV
IANA has added the MP column to the "IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV" registry and populated it as shown in Table 6.¶
9.2.7. IS-IS Sub-Sub-TLVs for SRv6 Capabilities Sub-TLV
IANA has added the MP column to the "IS-IS Sub-Sub-TLVs for SRv6 Capabilities Sub-TLV" registry and populated it as shown in Table 7.¶
9.2.8. MP-TLV IS-IS Sub-Sub-TLVs for BIER Info Sub-TLV
IANA has added the MP column to the "IS-IS Sub-Sub-TLVs for BIER Info Sub-TLV" registry and populated it as shown in Table 8.¶
9.2.9. MP-TLV for IS-IS Sub-TLVs for Segment Identifier/Label Binding TLVs
IANA has added the MP column to the "IS-IS Sub-TLVs for Segment Identifier
9.2.10. MP-TLV for IS-IS Sub-Sub-TLV Codepoints for Application-Specific Link Attributes
IANA has added the MP column to the "IS-IS Sub-Sub-TLV Codepoints for Application
9.2.11. MP-TLV for IS-IS Sub-TLVs for Application-Specific SRLG TLV
IANA has added the MP column to the "IS-IS Sub-TLVs for Application
9.2.12. MP-TLV for IS-IS Sub-Sub-TLVs for SRv6 SID Sub-TLVs
IANA has added the MP column to the "IS-IS Sub-Sub-TLVs for SRv6 SID Sub-TLVs" registry and populated it as shown in Table 12.¶
9.2.13. MP-TLV for IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV
IANA has added the MP column to the "IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV" registry and populated it as shown in Table 13.¶
9.2.14. MP-TLV for IS-IS Sub-Sub-TLVs for Flood Reflection Discovery Sub-TLV
IANA has added the MP column to the "IS-IS Sub-Sub-TLVs for Flood Reflection Discovery Sub-TLV" registry and populated it as shown in Table 14.¶
10. Security Considerations
This document creates no new security issues for IS-IS. Additional instances of existing TLVs expose no new information.¶
Note that support for MP-TLV may result in an implementation being more robust in handling unexpected occurrences of MP-TLV.¶
Security concerns for IS-IS are addressed in [ISO10589], [RFC5304], and [RFC5310].¶
11. References
11.1. Normative References
- [ISO10589]
-
ISO/IEC, "Information technology - Telecommunicati
ons 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 , ISO/IEC 10589:2002, , <https://-mode network service (ISO 8473)" www >..iso .org /standard /30932 .html - [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC5120]
-
Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi Topology (MT) Routing in Intermediate System to Intermediate Systems (IS-ISs)", RFC 5120, DOI 10
.17487 , , <https:///RFC5120 www >..rfc -editor .org /info /rfc5120 - [RFC5304]
-
Li, T. and R. Atkinson, "IS-IS Cryptographic Authentication", RFC 5304, DOI 10
.17487 , , <https:///RFC5304 www >..rfc -editor .org /info /rfc5304 - [RFC5305]
-
Li, T. and H. Smit, "IS-IS Extensions for Traffic Engineering", RFC 5305, DOI 10
.17487 , , <https:///RFC5305 www >..rfc -editor .org /info /rfc5305 - [RFC5307]
-
Kompella, K., Ed. and Y. Rekhter, Ed., "IS-IS Extensions in Support of Generalized Multi-Protocol Label Switching (GMPLS)", RFC 5307, DOI 10
.17487 , , <https:///RFC5307 www >..rfc -editor .org /info /rfc5307 - [RFC5310]
-
Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R., and M. Fanto, "IS-IS Generic Cryptographic Authentication", RFC 5310, DOI 10
.17487 , , <https:///RFC5310 www >..rfc -editor .org /info /rfc5310 - [RFC6119]
-
Harrison, J., Berger, J., and M. Bartlett, "IPv6 Traffic Engineering in IS-IS", RFC 6119, DOI 10
.17487 , , <https:///RFC6119 www >..rfc -editor .org /info /rfc6119 - [RFC6213]
-
Hopps, C. and L. Ginsberg, "IS-IS BFD-Enabled TLV", RFC 6213, DOI 10
.17487 , , <https:///RFC6213 www >..rfc -editor .org /info /rfc6213 - [RFC7356]
-
Ginsberg, L., Previdi, S., and Y. Yang, "IS-IS Flooding Scope Link State PDUs (LSPs)", RFC 7356, DOI 10
.17487 , , <https:///RFC7356 www >..rfc -editor .org /info /rfc7356 - [RFC7981]
-
Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions for Advertising Router Information", RFC 7981, DOI 10
.17487 , , <https:///RFC7981 www >..rfc -editor .org /info /rfc7981 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC8202]
-
Ginsberg, L., Previdi, S., and W. Henderickx, "IS-IS Multi-Instance", RFC 8202, DOI 10
.17487 , , <https:///RFC8202 www >..rfc -editor .org /info /rfc8202 - [RFC8918]
-
Ginsberg, L., Wells, P., Li, T., Przygienda, T., and S. Hegde, "Invalid TLV Handling in IS-IS", RFC 8918, DOI 10
.17487 , , <https:///RFC8918 www >..rfc -editor .org /info /rfc8918 - [RFC9479]
-
Ginsberg, L., Psenak, P., Previdi, S., Henderickx, W., and J. Drake, "IS-IS Application
-Specific Link Attributes" , RFC 9479, DOI 10.17487 , , <https:///RFC9479 www >..rfc -editor .org /info /rfc9479
11.2. Informative References
- [PICS-YANG]
-
Qu, Y., Ginsberg, L., Przygienda, A., Decraene, B., and Y. Zhu, "YANG Model for IS-IS Protocol Implementation Conformance Statement (PICS)", Work in Progress, Internet-Draft, draft
-ietf , , <https://-lsr -isis -pics -yang -02 datatracker >..ietf .org /doc /html /draft -ietf -lsr -isis -pics -yang -02
Contributors
The following individual made a substantial contribution to the content of this document and should be considered a coauthor:¶