Internet-Draft | IGP L2 bundle for SRv6 | October 2024 |
Dong & Hu | Expires 24 April 2025 | [Page] |
There are deployments where the Layer-3 interface on which IGP operates is a Layer-2 interface bundle. Existing IGP advertisements only support advertising link attributes of the Layer-3 interface. If entities external to IGP wish to control traffic flows on the individual physical links that comprise the Layer-2 interface bundle, link attribute information about the bundle members is advertised by IGP extensions for Layer-2 (L2) bundle.¶
When Segment Routing over IPv6 (SRv6) is used with Layer-2 interface bundle to control traffic flows on the individual member links, the SRv6 SIDs which represent the Layer 2 member links of the L2 bundle needs to be advertised in IGP.¶
This document proposes the IGP extensions to advertise the SRv6 SIDs of the Layer 2 (L2) bundle member links.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].¶
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 24 April 2025.¶
Copyright (c) 2024 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.¶
There are deployments where the Layer-3 interface on which an IGP adjacency is established is a Layer-2 interface bundle, for instance, a Link Aggregation Group (LAG) [IEEE802.1AX]. This reduces the number of adjacencies that need to be maintained by the routing protocol in cases where there are parallel links between the neighbors. Entities external to IS-IS such as Path Computation Elements (PCEs) [RFC4655] may wish to control traffic flows on individual members of the underlying Layer-2 bundle. In order to do so, link attribute information about individual bundle members is required.¶
[RFC8668] and [RFC9356] specify the IGP extensions to advertise link attribute information for each of the L2 Bundle members which comprise the Layer-3 interface, in which the encoding and advertisement of SR-MPLS adjacency SIDs of each bundle member link is defined. When SRv6 is used with Layer-2 interface bundle, to control traffic flows on the individual member links, the SRv6 SIDs which represent the Layer-2 member links of the L2 bundle needs to be advertised.¶
This document proposes the IGP extensions to advertise the SRv6 SIDs of the Layer-2 (L2) bundle member links.¶
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 BCP14 RFC 2119 [RFC2119] RFC 8174 [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
As defined in [RFC8986], the SRv6 End.X behavior means "Endpoint with cross-connect to an array of layer-3 adjacencies". An SRv6 SID associated with a Layer 2 bundle member link of an L3 adjacency can be considered as an instance of the End.X SID, which identifies a subset of the L3 adjacency. Thus separate End.X SID can be allocated for each L2 bundle member link.¶
This section defines the IS-IS sub-TLVs to advertise SRv6 SIDs for L2 Bundle Members. Following the encoding mechanism used in [RFC8668] for the advertisement of SR-MPLS adj-SIDs for L2 Bundle Members, this allows the advertisement of a set of SRv6 End.X SIDs (one per L2 Bundle Member) in a single sub-TLV.¶
[RFC9352] defines the SRv6 End.X SID sub-TLV to advertise an SRv6 SID associated with a point-to-point adjacency. This document defines a new sub-TLV of called "L2 Bundle Member SRv6 End.X SIDs" to advertise the SRv6 End.X SIDs for the L2 Bundle Members. This sub-TLV is allowed to be carried in TLV 25 "L2 Bundle Member Attributes" only. The format of the sub-TLV is as below:¶
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | Algorithm | Weight | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Endpoint Behavior | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID #1 (128 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID #2 (128 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID #n (128 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Sub-sub-tlv-len| Sub-sub-TLVs (variable) . . . | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+¶
Where:¶
Type: TBA.¶
Length: Variable.¶
Flags: 1 octet. The format is the same as the Flags field in the SRv6 End.X SID sub-TLV as defined in [RFC9352].¶
Algorithm: 1 octet. The algorithm values are defined in the IGP Algorithm Type registry.¶
Weight: 1 octet. The value represents the weight of the SID for the purpose of load balancing.¶
Endpoint Behavior: 2 octets. It SHOULD be set to the End.X.¶
SIDs. One or multiple 16-octet SRv6 SIDs. The number of the SIDs is determined by the "Number of L2 Bundle Member Descriptors" field as defined in [RFC8668].¶
Sub-sub-tlv-length: 1 octet. Number of octets used by sub-sub-TLVs.¶
Optional Sub-sub-TLVs: Supported sub-sub-TLVs are specified in Section 11.6 of [RFC9352].¶
Multiple L2 Bundle Member SRv6 End.X SID Sub-TLV may be required in order to advertise all the SRv6 End.X SIDs associated with the member links of an L2 bundle.¶
[RFC9352] defines the SRv6 LAN End.X SID sub-TLV to advertise an SRv6 SID associated with a LAN adjacency. This document defines a new sub-TLV called "L2 Bundle Member SRv6 LAN End.X SIDs" to advertise the SRv6 LAN End.XU SIDs for the L2 Bundle Members. The format of the sub-TLV is as below:¶
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Neighbor System-ID (ID length octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | Algorithm | Weight | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Endpoint Behavior | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID #1 (128 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID #2 (128 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SID #n (128 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Sub-sub-tlv-len| Sub-sub-TLVs (variable) . . . | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+¶
Where:¶
Type: TBA.¶
Length: Variable.¶
Neighbor System-ID: IS-IS System-ID of length "ID Length" as defined in [ISO10589].¶
Flags: 1 octet, the format is the same as the Flags field in the SRv6 End.X SID sub-TLV as defined in [RFC9352].¶
Algorithm: 1 octet. The algorithm values are defined in the IGP Algorithm Type registry.¶
Weight: 1 octet. The value represents the weight of the End.X SID for the purpose of load balancing.¶
Endpoint Behavior: 2 octets. It SHOULD be set to the End.X function.¶
SIDs. One or multiple 16-octet SRv6 SIDs. The number of the SIDs is determined by the "Number of L2 Bundle Member Descriptors" field as defined in [RFC8668].¶
Sub-sub-tlv-length: 1 octet. Number of octets used by sub-sub-TLVs.¶
Optional Sub-sub-TLVs: Supported sub-sub-TLVs are specified in Section 11.6 of [RFC9352].¶
This section describes the mechanism to advertise SRv6 SIDs for L2 Bundle Members in OSPF. In [RFC9356], the SR-MPLS Adjacency SID sub-TLVs for the L3 adjacency is reused for the advertisement of Adjacency SIDs of L2 Bundle Members. For SRv6 data plane , the SRv6 End.X SID sub-TLV and SRv6 LAN End.X SID Sub-TLV as defined in [RFC9513] are reused for the advertisement of SRv6 End.X SIDs of the L2 bundle members. Thus in OSPFv3, the L2 Bundle Member Attributes sub-TLV shares the sub-TLVs defined for SRv6 under the E-Router-Link TLV .¶
IANA is requested to assign two new code points from the IS-IS "Sub-TLVs for TLVs 22, 23, 25, 141, 222, and 223" registry.¶
+------+--------------------------+----+----+----+-----+-----+-----+ | Type | Description | 22 | 23 | 25 | 141 | 222 | 223 | +======+==========================+====+====+====+=====+=====+=====+ | TBD | L2 Bundle Member SRv6 | n | n | y | n | n | n | | | End.X SID | | | | | | | +------+--------------------------+----+----+----+-----+-----+-----+ | TBD | L2 Bundle Member SRv6 | n | n | y | n | n | n | | | LAN End.X SID | | | | | | | +------+--------------------------+----+----+----+-----+-----+-----+¶
In the "OSPFv3 Extended- LSA Sub-TLVs" registry, IANA has already set the L2BM flag for the code points 30, 31 and 32 to "Y", per the request of [RFC9513].¶
The security considerations in [RFC8668] and [RFC9356] apply. This document introduces no additional security vulnerabilities to IS-IS and OSPF.¶
The authors would like to thank Zhenbin Li for the review and discussion of this document.¶