Advertising Layer 2 Bundle Member Link Attributes in IS-IS
Extracted elements (22)
A new TLV (Type 25) is used rather than reusing existing Extended IS Neighbor TLVs (22/222) specifically to ensure that changes to L2 Bundle Member link attribute advertisements do not trigger unnecessary action by the IS-IS Decision Process (ISO 10589). Keeping L2 bundle member data separate from L3 adjacency data avoids unintended SPF recalculations.
The flags in the L2 Bundle Member Adj-SID sub-TLVs (Types 41 and 42) are deliberately kept congruent with the flags defined for L3 Adj-SID sub-TLVs in RFC 8667. This alignment simplifies implementation and reduces the risk of confusion between L2 and L3 Adj-SID flag interpretations.
Two new sub-TLVs (Types 41 and 42) are defined instead of reusing the RFC 8667 Adj-SID sub-TLVs because the existing sub-TLVs support only a single Adj-SID per sub-TLV. Since each L2 Bundle Member is expected to have a unique Adj-SID in most deployments, the new format allows a set of Adj-SIDs (one per member) to be encoded in a single sub-TLV for efficiency.
The L2 Bundle Member Adj-SID sub-TLVs (Types 41 and 42) are explicitly NOT in the category of shared attribute sub-TLVs; each describes per-member SID values. All other existing sub-TLVs in the registry for TLVs 22, 23, 141, 222, and 223 default to the shared attribute category unless otherwise specified.
TLV 25 reuses the sub-TLV space defined for TLVs 22, 23, 141, 222, and 223. Sub-TLVs relating to inter-AS topology (remote AS number, IPv4/IPv6 remote ASBR Identifier, sub-TLVs 24–26), MTU (sub-TLV 28), and RTM Capability (sub-TLV 40) are prohibited (marked 'n') in TLV 25 as they are not meaningful for L2 bundle member links.
If multiple copies of a given shared attribute sub-TLV appear under a single L2 Bundle Member Attribute Descriptor, all copies MUST be ignored. No more than one copy of a given shared attribute sub-TLV may appear within a single L2 Bundle Member Attribute Descriptor.
L2 Bundle Member Attributes advertisements MUST be withdrawn if the advertised link becomes operationally down or is no longer a member of the identified L2 Bundle. An advertisement implies that the identified link is a member of the L2 Bundle and is operationally up.
Parallel-adjacency identification sub-TLVs (used when P-Flag is set) MAY be omitted if no parallel adjacencies to the neighbor exist. Only one of the three allowed sub-TLVs may be used at a time to uniquely identify the L3 adjacency.
Reserved bits in the flags fields of TLV 25, sub-TLV 41, and sub-TLV 42 MUST be set to zero when originated and MUST be ignored when received. The starred (*) bit position in sub-TLVs 41/42 (used in the L3 Adj-SID sub-TLV) SHOULD be sent as 0 and MUST be ignored on receipt.
There MUST be one SID/Index/Label descriptor for each of the L2 Bundle Members advertised under the preceding L2 Bundle Member Attribute Descriptor in both the Adj-SID (Type 41) and LAN Adjacency SID (Type 42) sub-TLVs.
When the P-Flag is set in the Parent L3 Neighbor Descriptor flags field, one and only one of the parallel-adjacency identification sub-TLVs (IPv4 Interface Address sub-TLV 6, IPv6 Interface Address sub-TLV 12, or Link Local/Remote Identifiers sub-TLV 4) MUST be present and MUST immediately follow the flags field.
When the SID/Index/Label field encodes a local label (3 octets, 20 rightmost bits used for the label value), the V- and L-Flags MUST be set. When it encodes a 4-octet index defining the offset in the SID/Label space, V- and L-Flags MUST be unset.
A new TLV (Type 25, L2 Bundle Member Attributes) is introduced to advertise link attributes for individual Layer 2 bundle members associated with a Layer 3 IS-IS adjacency. The TLV contains a Parent L3 Neighbor Descriptor (7-octet System ID + pseudonode ID plus a flags octet) followed by one or more L2 Bundle Attribute Descriptors, each listing Link Local Identifiers and associated sub-TLVs.
The L2 Bundle Member Adjacency Segment Identifier Sub-TLV (Type 41) advertises Adj-SIDs for L2 Bundle Members associated with a point-to-point parent L3 adjacency. It carries a 1-octet flags field (F, V, L, S, P flags), a 1-octet weight, and one SID/Index/Label descriptor per L2 Bundle Member listed in the preceding L2 Bundle Attribute Descriptor.
The L2 Bundle Member LAN Adjacency SID Sub-TLV (Type 42) advertises Adj-SIDs for L2 Bundle Members on a LAN adjacency. It extends the Type 41 format with an additional 6-octet Neighbor System ID field to identify the specific LAN neighbor, followed by the same flags, weight, and per-member SID/Index/Label descriptors.
This document adds TLV value 25 (L2 Bundle Member Attributes) to the IS-IS TLV Codepoints Registry. The registry for Sub-TLVs for TLVs 22, 23, 141, 222, and 223 is renamed to also include TLV 25, and a new column is added indicating whether each existing sub-TLV may appear in TLV 25 (y = not shared, y(s) = shareable, n = prohibited).
Two new sub-TLV entries are added to the IS-IS sub-TLV registry: Type 41 (L2 Bundle Member Adj-SID, valid only in TLV 25) and Type 42 (L2 Bundle Member LAN Adj-SID, valid only in TLV 25). Both are marked 'n' for TLVs 22, 23, 141, 222, and 223.
If IS-IS PDUs are sent over physical links where unauthorized access is possible, attacks against the L2 Bundle Member advertisements are possible. Use of IS-IS cryptographic authentication as defined in RFC 5304 and RFC 5310 is recommended to prevent such attacks.
The advertisements defined in this document are identical in nature to existing IS-IS link attribute advertisements (RFC 4202, RFC 5305, RFC 8570, RFC 8667), applied to L2 bundle member links. No new security issues are introduced beyond those already present in IS-IS link attribute advertising.
The L2 Bundle Member Adj-SID Sub-TLV (Type 41) wire format: Type (1 octet) = 41, Length (1 octet, variable), Flags (1 octet: F|*|V|L|S|P|rr), Weight (1 octet), followed by one SID/Index/Label field per bundle member — either a 3-octet local label (20 rightmost bits used, V- and L-Flags SET) or a 4-octet index (V- and L-Flags unset).
The L2 Bundle Member Attributes TLV (Type 25) wire format consists of: Type (1 octet), Length (1 octet), Parent L3 Neighbor Descriptor (7-octet System ID + pseudonode ID followed by a 1-octet flags field with P-Flag in bit 0), optionally a parallel-adjacency sub-TLV, and one or more L2 Bundle Attribute Descriptors each starting with a 1-octet Length, 1-octet count of bundle members, 4-octet Link Local Identifiers per member, and sub-TLVs.
The L2 Bundle Member LAN Adjacency SID Sub-TLV (Type 42) wire format: Type (1 octet) = 42, Length (1 octet, variable), Neighbor System ID (6 octets), Flags (1 octet: F|*|V|L|S|P|rr), Weight (1 octet), followed by one SID/Index/Label per bundle member — 3-octet local label when V- and L-Flags are SET, or 4-octet index when V- and L-Flags are unset.