Internet-Draft | ELC | October 2025 |
Wen, et al. | Expires 17 April 2026 | [Page] |
The BGP Next Hop Dependent Characteristics Attribute (NHC) provides a way for a BGP speaker to advertise certain characteristics of routes. In particular, it is useful to advertise forwarding plane features.¶
This specification defines an NHC characteristic that can be used to advertise the ability to process the MPLS Entropy Label as an egress LSR for all NLRI advertised in the BGP UPDATE. It updates RFC 6790 and RFC 7447 concerning this BGP signaling.¶
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 17 April 2026.¶
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://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.¶
[I-D.scudder-idr-nhc] provides a way for a BGP speaker to advertise certain characteristics of routes. In particular, it is useful to advertise forwarding plane features.¶
This specification defines an NHC characteristic, called "ELCv3", to advertise the ability to process the Multiprotocol Label Switching (MPLS) Entropy Label as an egress Label Switching Router (LSR) for all NLRI advertised in the BGP UPDATE. It updates [RFC6790] and [RFC7447] with regard to this BGP signaling; this is further discussed in Section 2. ELCv3 is only relevant to NLRI of labeled address families. (The term "labeled address family" is defined in the first paragraph of Section 3.5 of [RFC9012]. In this document, we use the term "labeled NLRI" as a short form of "NLRI of a labeled address family.")¶
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.¶
[I-D.scudder-idr-nhc] defines the NHC as a container for characteristic TLVs. The Entropy Label Characteristic is one such characteristic.¶
When BGP [RFC4271] is used for distributing labeled NLRI as described in, for example, [RFC8277], the route may include the ELCv3 as part of the NHC. The inclusion of this characteristic with a route indicates that the egress of the associated Label Switched Path (LSP) can process entropy labels as an egress LSR for that route -- see Section 4.1 of [RFC6790]. Below, we refer to this for brevity as being "EL-capable."¶
For historical reasons, this characteristic is referred to as "ELCv3", to distinguish it from the prior Entropy Label Capability (ELC) defined in [RFC6790] and deprecated in [RFC7447], and the ELCv2 described in [I-D.scudder-bgp-entropy-label].¶
This section (and its subsections) replaces Section 5.2 of [RFC6790], which was previously deprecated by [RFC7447].¶
The ELCv3 has characteristic code 1, characteristic length 0, and carries no value:¶
When a BGP speaker S has a route R it wishes to advertise with next hop N to its peer, it MAY include the ELCv3 characteristic if it knows that the egress of the associated LSP L is EL-capable; otherwise, it MUST NOT include the ELCv3 characteristic. Specific conditions where S would know that the egress is EL-capable are if S:¶
Is itself the egress, and knows itself to be EL-capable, or¶
Is re-advertising a BGP route it received with a valid ELCv3 characteristic, and is preserving the value of N as received, or¶
Is re-advertising a BGP route it received with a valid ELCv3 characteristic, and is changing the next hop that it has received to N, and knows that this new next hop (normally itself) is EL-capable, or¶
Is re-advertising a BGP route it received with a valid ELCv3 characteristic, and is changing the next hop that it has received to N, and knows (for example, through configuration) that the new next hop (normally itself) even if not EL-capable will simply swap labels without popping the BGP-advertised label stack and processing the label below, as with a transit LSR, or¶
Knows by implementation-specific means that the egress is EL-capable, or¶
Is redistributing a route learned from another protocol, and that other protocol conveyed the knowledge that the egress of L was EL-capable. (For example, this might be known through the Label Distribution Protocol (LDP) ELC TLV, Section 5.1 of [RFC6790].)¶
The ELCv3 MAY be advertised with routes that are labeled, such as those using SAFI 4 [RFC8277]. It MUST NOT be advertised with unlabeled routes.¶
When forming an aggregate (see Section 2.2.2 of [I-D.scudder-idr-nhc]), the aggregate route thus formed MUST NOT include the ELCv3 unless each constituent route would be eligible to include the ELCv3 according to the criteria given above.¶
(Below, we assume that "includes the ELCv3" implies that the containing NHC has passed the checks specified in Section 2.3 of [I-D.scudder-idr-nhc]. If it had not passed, then the NHC would have been discarded and the ELCv3 would be deemed not to have been included.)¶
When a BGP speaker receives an unlabeled route that includes the ELCv3, it MUST discard the ELCv3.¶
When a BGP speaker receives a labeled route, if it includes the ELCv3, that indicates it can safely insert an entropy label into the label stack of the associated LSP. This implies that the receiving BGP speaker, if acting as ingress, MAY insert an entropy label as per Section 4.2 of [RFC6790].¶
The ELCv3 is considered malformed and must be disregarded if its length is other than zero.¶
If more than one instance of the ELCv3 is included in an NHC, instances beyond the first MUST be disregarded.¶
The ELCv3 functionality introduced in this document replaces the "BGP Entropy Label Capability Attribute" (ELC attribute) that was introduced by [RFC6790], and deprecated by [RFC7447]. The latter RFC specifies that the ELC attribute, BGP path attribute 28, "MUST be treated as any other unrecognized optional, transitive attribute". This specification revises that requirement.¶
As the current specification was developed, it became clear that due to incompatibilities between how the ELC attribute is processed by different fielded implementations, the most prudent handling of attribute 28 is not to propagate it as an unrecognized optional, transitive attribute, but to discard it. Therefore, this specification updates [RFC7447] by instead requiring that an implementation that receives the ELC attribute MUST discard any received ELC attribute.¶
[I-D.scudder-idr-nhc] created a new registry called "BGP Next Hop Dependent Characteristic Codes" within the Border Gateway Protocol (BGP) Parameters group and seeded it with values including:¶
Value | Description | Reference | Change Controller |
---|---|---|---|
1 | ELCv3 | (this doc) | IETF |
IANA is requested to update the reference to this document.¶
Insertion of an ELCv3 by an attacker could cause forwarding to fail. Deletion of an ELCv3 by an attacker could cause one path in the network to be overutilized and another to be underutilized. However, we note that an attacker able to accomplish either of these (below, an "on-path attacker") could equally insert or remove any other BGP path attribute or message. The former attack described above denies service for a given route, which can be accomplished by an on-path attacker in any number of ways, even absent ELCv3. The latter attack defeats an optimization but nothing more; it seems dubious that an attacker would go to the trouble of doing so rather than launching some more damaging attack.¶
The authors of this specification thank Randy Bush, Mach Chen, Wes Hardaker, Jeff Haas, Susan Hares, Ketan Talaulikar, and Gyan Mishra for their review and comments.¶
This specification derives from two earlier documents, [I-D.ietf-idr-next-hop-capability] and [I-D.scudder-bgp-entropy-label].¶
[I-D.ietf-idr-next-hop-capability] included the following acknowledgements:¶
The Entropy Label Next-Hop Capability defined in this document is based on the ELC BGP attribute defined in section 5.2 of [RFC6790]. The authors wish to thank John Scudder for the discussions on this topic and Eric Rosen for his in-depth review of this document. The authors wish to thank Jie Dong and Robert Raszuk for their review and comments.¶
[I-D.scudder-bgp-entropy-label] included the following acknowledgements:¶
Thanks to Swadesh Agrawal, Alia Atlas, Bruno Decraene, Martin Djernaes, John Drake, Adrian Farrell, Keyur Patel, Toby Rees, and Ravi Singh, for their discussion of this issue.¶