Multi-part TLVs in IS-IS
Parag Kaneriya
Juniper Networks
Elnath-Exora Business Park Survey
Bangalore
Karnataka
560103
India
pkaneria@juniper.net
Tony Li
Juniper Networks
1133 Innovation Way
Sunnyvale
California
94089
USA
tony.li@tony.li
Antoni Przygienda
Juniper Networks
1133 Innovation Way
Sunnyvale
California
94089
USA
prz@juniper.net
Shraddha Hegde
Juniper Networks
Elnath-Exora Business Park Survey
Bangalore
Karnataka
560103
India
shraddha@juniper.net
Les Ginsberg
Cisco Systems
ginsberg@cisco.com
2024
Routing Area
LSR Working Group
ISIS
Draft
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 exist that 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.

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-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.
This document does not alter the encoding of any TLV where multiple occurrences of a TLV are already defined. As of this writing, the authors are aware of the following TLVs that fall into this category:
Router Capability TLV (Type 242) [RFC7981]
Application-Specific SRLG (Type 238) [RFC9479]
Instance Identifier (type 7) [RFC8202]
Application-Specific Link Attributes (sub-TLV Type 16) [RFC9479]
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 TLVs for the same object 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 this does not address how to expand the information advertised when using the existing 8-bit length TLVs.
The mechanism described in this document has not been documented for all TLVs previously, so it is likely that some implementations would not interoperate correctly if these mechanisms were used without caution.
The mechanism described in this document has been used explicitly by some implementations, 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 mechanism described in this document is applicable to top level TLVs as well as any level of sub-TLVs which may appear within a top level TLV.

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 [RFC8174] when, and only when, they appear in all capitals, as shown here.

Multi-part TLVs
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).

Procedure for Advertising Multi-part TLVs
Network operators should not enable Multi-part TLVs until ensuring that all implementations that will receive the Multi-part TLVs are capable of interpreting them correctly.
If a Multi-part 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.

Example: Extended IS Reachability
As an example, consider the Extended IS Reachability TLV (type 22). A neighbor in this TLV is specified by:
- 7 octets of system ID and pseudonode number
- 3 octets of default metric
- Optionally one or more of the following link identifiers:
  - IPv4 interface address and IPv4 neighbor address as specified in [RFC5305]
  - IPv6 interface address and IPv6 neighbor address as specified in [RFC6119]
  - Link Local/Remote Identifiers as specified in [RFC5307]
The key consists of the 7 octets of system ID and pseudonode number plus the set of link identifiers which are present.
If the remaining space in the TLV is insufficient to advertise all other sub-TLVs, then the node MAY advertise additional Extended IS Reachability TLVs. The following key information MUST be replicated in each of the additional Extended IS Reachability TLVs:
- 7 octets of system ID and pseudonode number
- The set of link identifiers SHOULD be identical in all TLVs which are part of the MP-TLV set.

Example: Extended IP Reachability
As another example, consider the Extended IP Reachability TLV (type 135) [RFC5305]. A prefix in this TLV is specified by:
- 4 octets of metric information
- 1 octet of control information which includes 6 bits specifying the prefix length
- 0-4 octets of IPv4 prefix
followed by up to 250 octets of sub-TLV information.
The key consists of the 6 bits of prefix length and the 0-4 octets of IPv4 prefix.
If this is insufficient sub-TLV space, then the node MAY advertise additional instances of the Extended IP Reachability TLV. The key information MUST be replicated identically. 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.

Procedure for Receiving Multi-part TLVs
A node that 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. 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. See Section 7.3 for guidance when sending MP-TLVs.
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 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 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.
If the internals of the TLV do NOT include key information, the relevant key can be found in the parent TLV.
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 a MP-TLV is an error.
It is also possible that information which is NOT part of the fixed part of a TLV can be duplicated e.g., the same sub-TLV could appear multiple times whether within the same TLV or in different parts of an MP-TLV. This is also an error.
Specifying how to handle such cases is the responsibility of the document which defines the TLV. If such a document is not explicit in how to handle such cases, it is RECOMMENDED that the first occurrence in the lowest numbered LSP be used. In the case of IIHs, it is RECOMMENDED that the first occurrence in the IIH be used.

Specification of Applicability of Multi-part TLV
As mentioned in Section 1, existing specifications for some TLVs have explicitly stated that the use of Multi-Part TLV procedures are applicable to that codepoint. However, Multi-Part TLV procedures are potentially applicable to any codepoint that allows sub-TLVs to be included as part of the information advertised. Multi-part procedures may also be applicable to codepoints which do not support sub-TLVs, but which define an unbounded number of attributes which may be advertised in a single codepoint. An example of the latter is GMPLS-SRLG as defined in [RFC5307].
The lack of explicit indication of applicability of Multi-Part TLV procedures to all codepoints to which such procedures could be applied contributes to potential interoperability problems if/when the need arises to advertise more than 255 octets of information for such a codepoint.
This document makes explicit the applicability of Multi-Part 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 Multi-Part TLV procedures for each codepoint. See Section 8. This guarantees that any new codepoints defined by future protocol extensions will explicitly indicate the applicability of Multi-Part TLV procedures to the new codepoints.

Deployment Considerations
Sending of MP-TLVs in the presence of nodes which do not correctly process such advertisements can result in interoperablity issues, including incorrect forwarding of packets. This section discusses best practices which SHOULD be used when a deployment requires the use of MP-TLVs for codepoints for which existing specifications do not explicitly indicate MP-TLV support.
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 7.1 is important to avoid interoperability issues.

Recommended Controls and Alarms
It is RECOMMENDED that implementations which support the sending of MP-TLVs provide configuration controls to 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 support per codepoint granularity. For example, an implementation might support MP-TLVs for IS Extended Reachability but not for IP Reachability.
Implementations which support disablement of MP-TLVs MUST report alarms under the following conditions:
- If an MP-TLV is received when use of MP-TLVs is disabled.
- If local LSP generation requires the use of MP-TLVs when generation of MP-TLVs is disabled.

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 nodes in the network support MP-TLV for those codepoints. Partial deployment can easily result in traffic loss and/or other unexpected behaviors which may be hard to diagnose.
As an aid to network operators, a new sub-TLV of the IS-IS Router CAPABILITY TLV [RFC7981] is defined:

MP-TLV Support for TLVs with implicit support

Type 30 (suggested - to be assigned by IANA)    1 octet
Length 0                                        1 octet

Nodes which 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).
This advertisement is for informational purposes only. 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 MP-TLV for a given codepoint are not introduced on any node in the network until all nodes in the network support MP-TLV for the relevant codepoints.
The Router Capability TLV is meant to advertise capabilities which are of direct use to the IS-IS protocol. The MP-TLV Support sub-TLV advertises management information, not of direct use to the protocol. The intent is to provide information which 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 that with the introduction of explicit specification of MP-TLV applicability for codepoints (see Section 8), implicit MP-TLV support will never occur in the future. Where MP-TLV support is explicitly defined, conformant implementations MUST support MP-TLV.

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 7.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 which 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.

IANA Considerations

MP-TLV Support sub-TLV
This document requests the following code point from the "IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV" registry:

Type: 30 (suggested)
Description: MP-TLV Support for TLVs with implicit support
MP-TLV Applicability: N
Reference: This document Section 7.2

Extension to IS-IS Top Level TLV Registries
This document requests that IANA extend a number of registries under the "IS-IS TLV Codepoints" registries 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 sub-sections 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 sub-sections are based on the rule that MP-TLV is applicable to any codepoint which supports sub-TLVs, without regard to whether the sub-TLVs which are currently defined are sufficient to require MP-TLVs to be sent.

MP-TLV for IS-IS Top-Level TLV Codepoints
IS-IS Top-Level TLV Codepoints
Value | Name | MP
0 | Reserved |
1 | Area Addresses | N
2 | IIS Neighbors | N
3 | ES Neighbors | N
4 | Part. DIS | N
5 | Prefix Neighbors | N
6 | IIS Neighbors | N
7 | Instance Identifier | Y
8 | Padding | N
9 | LSP Entries | N
10 | Authentication | N
11 | ESN TLV | N
12 | Opt. Checksum | N
13 | Purge Originator Identification | N
14 | LSPBufferSize | N
15 | Router-Fingerprint | N
16 | Reverse Metric | N
17 | IS-IS Area Node IDs TLV | N
18 | IS-IS Flooding Path TLV | N
19 | IS-IS Flooding Request TLV | N
20 | Area Proxy | N
21 | Flooding Parameters TLV | N
22 | Extended IS reachability | Y
23 | IS Neighbor Attribute | Y
24 | IS Alias ID | N
25 | L2 Bundle Member Attributes | Y
26 | Unassigned |
27 | SRv6 Locator | Y
28 | Zone ID | N
29-41 | Unassigned |
42 | DECnet Phase IV | N
43-65 | Unassigned |
66 | Lucent Proprietary | N
67-125 | Unassigned |
126 | IPv4 Algorithm Prefix Reachability TLV | N
127 | IPv6 Algorithm Prefix Reachability TLV | N
128 | IP Int. Reach | N
129 | Prot. Supported | N
130 | IP Ext. Address | N
131 | IDRPI | N
132 | IP Intf. Address | N
133 | Illegal | N
134 | Traffic Engineering router ID | N
135 | Extended IP reachability | Y
136 | Unassigned |
137 | Dynamic Name | N
138 | GMPLS-SRLG | Y
139 | IPv6 SRLG | N
140 | IPv6 TE Router ID | N
141 | inter-AS reachability information | Y
142 | GADDR-TLV | Y
143 | MT-Port-Cap-TLV | Y
144 | MT-Capability TLV | Y
145 | TRILL Neighbor TLV | N
146 | Unassigned |
147 | MAC-RI TLV | Y
148 | BFD-Enabled TLV | Y
149 | Segment Identifier / Label Binding | Y
150 | Multi-Topology Segment Identifier / Label Binding | Y
151-160 | Unassigned |
161 | Flood Reflection | N
162-175 | Unassigned |
176 | Nortel Proprietary | N
177 | Nortel Proprietary | N
178-210 | Unassigned |
211 | Restart TLV | N
212-221 | Unassigned |
222 | MT-ISN | Y
223 | MT IS Neighbor Attribute | Y
224-228 | Unassigned |
229 | M-Topologies | N
230-231 | Unassigned |
232 | IPv6 Intf. Addr. | N
233 | IPv6 Global Interface Address TLV | N
234 | Unassigned |
235 | MT IP. Reach | Y
236 | IPv6 IP. Reach | Y
237 | MT IPv6 IP. Reach | Y
238 | Application-Specific SRLG | Y
239 | Unassigned |
240 | P2P 3-Way Adj. State | N
241 | Unassigned |
242 | IS-IS Router CAPABILITY TLV | Y
243 | Scope Flooding Support | N
244-250 | Unassigned |
251 | Generic Information | Y
252-65535 | Unassigned |

MP-TLV for IS-IS Sub-TLVs for Reverse Metric TLV
IS-IS Sub-TLVs for Reverse Metric TLV
Value | Name | MP
0 | Reserved |
1-17 | Unassigned |
18 | Traffic Engineering Metric | N
19-255 | Unassigned |

MP-TLV for IS-IS Sub-TLVs for TLVs Advertising Neighbor Information
IS-IS Sub-TLVs for TLVs Advertising Neighbor Information
Value | Name | MP
0-2 | Unassigned |
3 | Administrative group (color) | N
4 | Link Local/Remote Identifiers | N
5 | Unassigned |
6 | IPv4 interface address | N
7 | Unassigned |
8 | IPv4 neighbor address | N
9 | Maximum link bandwidth | N
10 | Maximum reservable link bandwidth | N
11 | Unreserved bandwidth | N
12 | IPv6 Interface Address | N
13 | IPv6 Neighbor Address | N
14 | Extended Administrative Group | N
15 | Link MSD | Y
16 | Application-Specific Link Attributes | Y
17 | Generic Metric | N
18 | TE Default metric | N
19 | Link-attributes | N
20 | Link Protection Type | N
21 | Interface Switching Capability Descriptor | Y
22 | Bandwidth Constraints | N
23 | Unconstrained TE LSP Count (sub-)TLV | N
24 | Remote AS Number | N
25 | IPv4 Remote ASBR Identifier | N
26 | IPv6 Remote ASBR Identifier | N
27 | Interface Adjustment Capability Descriptor (IACD) | Y
28 | MTU | N
29 | SPB-Metric | N
30 | SPB-A-OALG | Y
31 | Adjacency Segment Identifier | N
32 | LAN Adjacency Segment Identifier | N
33 | Unidirectional Link Delay | N
34 | Min/Max Unidirectional Link Delay | N
35 | Unidirectional Delay Variation | N
36 | Unidirectional Link Loss | N
37 | Unidirectional Residual Bandwidth | N
38 | Unidirectional Available Bandwidth | N
39 | Unidirectional Utilized Bandwidth | N
40 | RTM Capability | N
41 | L2 Bundle Member Adj-SID | Y
42 | L2 Bundle Member LAN Adj-SID | Y
43 | SRv6 End.X SID | Y
44 | SRv6 LAN End.X SID | Y
45 | IPv6 Local ASBR Identifier | N
46-160 | Unassigned |
161 | Flood Reflector Adjacency | N
162-249 | Unassigned |
250-254 | Reserved for Cisco-specific extensions |
255 | Reserved for future expansion |

MP-TLV for IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability
IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability
Value | Name | MP
0 | Unassigned |
1 | 32-bit Administrative Tag Sub-TLV | Y
2 | 64-bit Administrative Tag Sub-TLV | Y
3 | Prefix Segment Identifier | N
4 | Prefix Attribute Flags | N
5 | SRv6 End SID | Y
6 | Flexible Algorithm Prefix Metric (FAPM) | N
7-10 | Unassigned |
11 | IPv4 Source Router ID | N
12 | IPv6 Source Router ID | N
13-31 | Unassigned |
32 | BIER Info | Y
32-255 | Unassigned |

MP-TLV for IS-IS Sub-TLVs for MT-Capability TLV
IS-IS Sub-TLVs for MT-Capability TLV
Value | Name | MP
0 | Reserved |
1 | SPB-Inst | N
2 | SPB-I-OALG | Y
3 | SPBM-SI | Y
4 | SPBV-ADDR | Y
5 | Unassigned |
6 | NICKNAME | Y
7 | TREES | N
8 | TREE-RT-IDs | Y
9 | TREE-USE-IDs | Y
10 | INT-VLAN | Y
11-12 | Unassigned |
13 | TRILL-VER | N
14 | VLAN-GROUP | Y
15 | INT-LABEL | Y
16 | RBCHANNELS | Y
17 | AFFINITY | Y
18 | LABEL-GROUP | Y
19-20 | Unassigned |
21 | Topology sub-TLV | Y
22 | Hop sub-TLV | N
23 | Bandwidth Constraint sub-TLV | N
24 | Bandwidth Assignment sub-TLV | N
25 | Timestamp sub-TLV | N
26-254 | Unassigned |
255 | Reserved |

MP-TLV for IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV
IS-IS Sub-TLVs for IS-IS Router CAPABILITY TLV
Value | Name | MP
0 | Reserved |
1 | TE Node Capability Descriptor | N
2 | Segment Routing Capability | N
3 | TE-MESH-GROUP TLV (IPv4) | Y
4 | TE-MESH-GROUP TLV (IPv6) | Y
5 | PCED sub-TLV | N
6 | NICKNAME | Y
7 | TREES | N
8 | TREE-RT-IDs | Y
9 | TREE-USE-IDs | Y
10 | INT-VLAN | Y
11 | IPv4 TE Router ID | N
12 | IPv6 TE Router ID | N
13 | TRILL-VER | N
14 | VLAN-GROUP | Y
15 | INT-LABEL | Y
16 | RBCHANNELS | Y
17 | AFFINITY | Y
18 | LABEL-GROUP | Y
19 | Segment Routing Algorithm | N
20 | S-BFD Discriminators | N
21 | Node-Admin-Tag | N
22 | Segment Routing Local Block (SRLB) | N
23 | Node MSD | Y
24 | Segment Routing Mapping Server Preference (SRMS Preference) | N
25 | SRv6 Capabilities | N
26 | Flexible Algorithm Definition (FAD) | N
27 | IS-IS Area Leader Sub-TLV | N
28 | IS-IS Dynamic Flooding Sub-TLV | N
29 | IP Algorithm Sub-TLV | N
30-160 | Unassigned |
161 | Flood Reflection Discovery | Y
162-255 | Unassigned |

IS-IS Sub-Sub-TLVs for SRv6 Capabilities Sub-TLV
IS-IS Sub-Sub-TLVs for SRv6 Capabilities Sub-TLV
Value | Name | MP
0 | Reserved |
1-255 | Unassigned |

MP-TLV IS-IS Sub-Sub-TLVs for BIER Info Sub-TLV
IS-IS Sub-Sub-TLVs for BIER Info Sub-TLV
Value | Name | MP
0 | Unassigned |
1 | BIER MPLS Encapsulation | N
2-255 | Unassigned |

MP-TLV for IS-IS Sub-TLVs for Segment Identifier/Label Binding TLVs
IS-IS Sub-TLVs for Segment Identifier/Label Binding TLVs
Value | Name | MP
0 | Reserved |
1 | SID/Label | N
2 | Unassigned |
3 | Prefix Segment Identifier | N
4-255 | Unassigned |

MP-TLV for IS-IS Sub-Sub-TLV Codepoints for Application-Specific Link Attributes
IS-IS Sub-Sub-TLV Codepoints for Application-Specific Link Attributes
Value | Name | MP
0-2 | Unassigned |
3 | Administrative group (color) | N
4-8 | Unassigned |
9 | Maximum link bandwidth | N
10 | Maximum reservable link bandwidth | N
11 | Unreserved bandwidth | N
12-13 | Unassigned |
14 | Extended Administrative Group | N
15-16 | Unassigned |
17 | Generic Metric | Y
18 | TE Default Metric | N
19-32 | Unassigned |
33 | Unidirectional Link Delay | N
34 | Min/Max Unidirectional Link Delay | N
35 | Unidirectional Delay Variation | N
36 | Unidirectional Link Loss | N
37 | Unidirectional Residual Bandwidth | N
38 | Unidirectional Available Bandwidth | N
39 | Unidirectional Utilized Bandwidth | N
40-255 | Unassigned |

MP-TLV for IS-IS Sub-TLVs for Application-Specific SRLG TLV
IS-IS Sub-TLVs for Application-Specific SRLG TLV
Value | Name | MP
0-3 | Unassigned |
4 | Link Local/Remote Identifiers | N
5 | Unassigned |
6 | IPv4 interface address | N
7 | Unassigned |
8 | IPv4 neighbor address | N
9-11 | Unassigned |
12 | IPv6 Interface Address | N
13 | IPv6 Neighbor Address | N
14-255 | Unassigned |

MP-TLV for IS-IS Sub-Sub-TLVs for SRv6 SID Sub-TLVs
IS-IS Sub-Sub-TLVs for SRv6 SID Sub-TLVs
Value | Name | MP
0 | Reserved |
1 | SRv6 SID Structure | N
2-255 | Unassigned |

MP-TLV for IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV
IS-IS Sub-Sub-TLVs for Flexible Algorithm Definition Sub-TLV
Value | Name | MP
0 | Reserved |
1 | Flexible Algorithm Exclude Admin Group | N
2 | Flexible Algorithm Include-Any Admin Group | N
3 | Flexible Algorithm Include-All Admin Group | N
4 | Flexible Algorithm Definition Flags | N
5 | Flexible Algorithm Exclude SRLG | N
6 | IS-IS Exclude Minimum Bandwidth | N
7 | IS-IS Exclude Maximum Delay | N
8 | IS-IS Reference Bandwidth | N
9 | IS-IS Threshold Metric | N
10-255 | Unassigned |

MP-TLV for IS-IS Sub-Sub-TLVs for Flood Reflection Discovery Sub-TLV
IS-IS Sub-Sub-TLVs for Flood Reflection Discovery Sub-TLV
Value | Name | MP
0-160 | Unassigned |
161 | Flood Reflection Discovery Tunnel Encapsulation Attribute | N
162-255 | Unassigned |

Security Considerations
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].

Contributors
The following people gave a substantial contribution to the content of this document and should be considered coauthors:
Chris Bowers
cbowers107@gmail.com

Normative References
[ISO10589]

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)
ISO
IANA
August 1987
[RFC7981]
[RFC9479]
[RFC8202]
[RFC5305]
[RFC5120]
[RFC7356]
[RFC8174]
[RFC6119]
[RFC5307]
[RFC5304]
[RFC5310]