| rfc9086.original | rfc9086.txt | |||
|---|---|---|---|---|
| Inter-Domain Routing S. Previdi | Internet Engineering Task Force (IETF) S. Previdi | |||
| Internet-Draft Individual | Request for Comments: 9086 Huawei Technologies | |||
| Intended status: Standards Track K. Talaulikar, Ed. | Category: Standards Track K. Talaulikar, Ed. | |||
| Expires: November 17, 2019 C. Filsfils | ISSN: 2070-1721 C. Filsfils | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| K. Patel | K. Patel | |||
| Arrcus, Inc. | Arrcus, Inc. | |||
| S. Ray | S. Ray | |||
| Individual Contributor | Individual | |||
| J. Dong | J. Dong | |||
| Huawei Technologies | Huawei Technologies | |||
| May 16, 2019 | August 2021 | |||
| BGP-LS extensions for Segment Routing BGP Egress Peer Engineering | Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment | |||
| draft-ietf-idr-bgpls-segment-routing-epe-19 | Routing BGP Egress Peer Engineering | |||
| Abstract | Abstract | |||
| Segment Routing (SR) leverages source routing. A node steers a | A node steers a packet through a controlled set of instructions, | |||
| packet through a controlled set of instructions, called segments, by | called segments, by prepending the packet with a list of segment | |||
| prepending the packet with an SR header. A segment can represent any | identifiers (SIDs). A segment can represent any instruction, | |||
| instruction, topological or service-based. SR segments allow | topological or service based. SR segments allow steering a flow | |||
| steering a flow through any topological path and service chain while | through any topological path and service chain while maintaining per- | |||
| maintaining per-flow state only at the ingress node of the SR domain. | flow state only at the ingress node of the SR domain. | |||
| This document describes an extension to BGP Link-State (BGP-LS) for | ||||
| advertisement of BGP Peering Segments along with their BGP peering | ||||
| node information so that efficient BGP Egress Peer Engineering (EPE) | ||||
| policies and strategies can be computed based on Segment Routing. | ||||
| Requirements Language | ||||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | This document describes an extension to Border Gateway Protocol - | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | Link State (BGP-LS) for advertisement of BGP Peering Segments along | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | with their BGP peering node information so that efficient BGP Egress | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | Peer Engineering (EPE) policies and strategies can be computed based | |||
| capitals, as shown here. | on Segment Routing. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| 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 | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on November 17, 2019. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9086. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 2. BGP Peering Segments . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements Language | |||
| 3. BGP-LS NLRI Advertisement for BGP Protocol . . . . . . . . . 5 | 3. BGP Peering Segments | |||
| 3.1. BGP Router-ID and Member AS Number . . . . . . . . . . . 6 | 4. BGP-LS NLRI Advertisement for BGP Protocol | |||
| 3.2. Mandatory BGP Node Descriptors . . . . . . . . . . . . . 6 | 4.1. BGP Router-ID and Member AS Number | |||
| 3.3. Optional BGP Node Descriptors . . . . . . . . . . . . . . 7 | 4.2. Mandatory BGP Node Descriptors | |||
| 4. BGP-LS Attributes for BGP Peering Segments . . . . . . . . . 7 | 4.3. Optional BGP Node Descriptors | |||
| 4.1. Advertisement of the PeerNode SID . . . . . . . . . . . . 10 | 5. BGP-LS Attributes for BGP Peering Segments | |||
| 4.2. Advertisement of the PeerAdj SID . . . . . . . . . . . . 11 | 5.1. Advertisement of the PeerNode SID | |||
| 4.3. Advertisement of the PeerSet SID . . . . . . . . . . . . 12 | 5.2. Advertisement of the PeerAdj SID | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 5.3. Advertisement of the PeerSet SID | |||
| 5.1. New BGP-LS Protocol-ID . . . . . . . . . . . . . . . . . 13 | 6. IANA Considerations | |||
| 5.2. Node Descriptors and Link Attribute TLVs . . . . . . . . 13 | 6.1. New BGP-LS Protocol-ID | |||
| 6. Manageability Considerations . . . . . . . . . . . . . . . . 14 | 6.2. Node Descriptors and Link Attribute TLVs | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 7. Manageability Considerations | |||
| 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 15 | 8. Security Considerations | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 | 9. References | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 9.1. Normative References | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 16 | 9.2. Informative References | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 17 | Acknowledgements | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | Contributors | |||
| Authors' Addresses | ||||
| 1. Introduction | 1. Introduction | |||
| Segment Routing (SR) leverages source routing. A node steers a | Segment Routing (SR) leverages source routing. A node steers a | |||
| packet through a controlled set of instructions, called segments, by | packet through a controlled set of instructions, called segments, by | |||
| prepending the packet with an SR header with segment identifiers | prepending the packet with a list of segment identifiers (SIDs). A | |||
| (SID). A SID can represent any instruction, topological or service- | SID can represent any instruction, topological or service based. SR | |||
| based. SR segments allows to enforce a flow through any topological | segments allows to enforce a flow through any topological path or | |||
| path or service function while maintaining per-flow state only at the | service function while maintaining per-flow state only at the ingress | |||
| ingress node of the SR domain. | node of the SR domain. | |||
| The SR architecture [RFC8402] defines three types of BGP Peering | The SR architecture [RFC8402] defines three types of BGP Peering | |||
| Segments that may be instantiated at a BGP node: | Segments that may be instantiated at a BGP node: | |||
| o Peer Node Segment (PeerNode SID) : instruction to steer to a | * Peer Node Segment (PeerNode SID) : instruction to steer to a | |||
| specific peer node | specific peer node | |||
| o Peer Adjacency Segment (PeerAdj SID) : instruction to steer over a | * Peer Adjacency Segment (PeerAdj SID) : instruction to steer over a | |||
| specific local interface towards a specific peer node | specific local interface towards a specific peer node | |||
| o Peer Set Segment (PeerSet SID) : instruction to load-balance to a | * Peer Set Segment (PeerSet SID) : instruction to load-balance to a | |||
| set of specific peer nodes | set of specific peer nodes | |||
| SR can be directly applied to either to an MPLS dataplane (SR/MPLS) | SR can be directly applied to either an MPLS data plane (SR-MPLS) | |||
| with no change on the forwarding plane or to a modified IPv6 | with no change on the forwarding plane or to a modified IPv6 | |||
| forwarding plane (SRv6). | forwarding plane (SRv6). | |||
| This document describes extensions to the BGP Link-State NLRI (BGP-LS | This document describes extensions to the BGP - Link State Network | |||
| NLRI) and the BGP-LS Attribute defined for BGP-LS [RFC7752] for | Layer Reachability Information (BGP-LS NLRI) and the BGP-LS Attribute | |||
| advertising BGP peering segments from a BGP node along with its | defined for BGP-LS [RFC7752] for advertising BGP peering segments | |||
| peering topology information (i.e., its peers, interfaces, and | from a BGP node along with its peering topology information (i.e., | |||
| peering ASs) to enable computation of efficient BGP Egress Peer | its peers, interfaces, and peering Autonomous Systems (ASes)) to | |||
| Engineering (BGP-EPE) policies and strategies using the SR/MPLS | enable computation of efficient BGP Egress Peer Engineering (BGP-EPE) | |||
| dataplane. The corresponding extensions for SRv6 are specified in | policies and strategies using the SR-MPLS data plane. The | |||
| [I-D.dawra-idr-bgpls-srv6-ext]. | corresponding extensions for SRv6 are specified in [BGPLS-SRV6]. | |||
| [I-D.ietf-spring-segment-routing-central-epe] illustrates a | [RFC9087] illustrates a centralized controller-based BGP Egress Peer | |||
| centralized controller-based BGP Egress Peer Engineering solution | Engineering solution involving SR path computation using the BGP | |||
| involving SR path computation using the BGP Peering Segments. This | Peering Segments. This use case comprises a centralized controller | |||
| use case comprises a centralized controller that learns the BGP | that learns the BGP Peering SIDs via BGP-LS and then uses this | |||
| Peering SIDs via BGP-LS and then uses this information to program a | information to program a BGP-EPE policy at any node in the domain to | |||
| BGP-EPE policy at any node in the domain to perform traffic steering | perform traffic steering via a specific BGP egress node to specific | |||
| via a specific BGP egress node to a specific EBGP peer(s) optionally | External BGP (EBGP) peer(s) optionally also over a specific | |||
| also over a specific interface. The BGP-EPE policy can be realized | interface. The BGP-EPE policy can be realized using the SR Policy | |||
| using the SR Policy framework | framework [SR-POLICY]. | |||
| [I-D.ietf-spring-segment-routing-policy]. | ||||
| This document introduces a new BGP-LS Protocol-ID for BGP and defines | This document introduces a new BGP-LS Protocol-ID for BGP and defines | |||
| new BGP-LS Node and Link Descriptor TLVs to facilitate advertising | new BGP-LS Node and Link Descriptor TLVs to facilitate advertising | |||
| BGP-LS Link NLRI to represent the BGP peering topology. Further, it | BGP-LS Link NLRI to represent the BGP peering topology. Further, it | |||
| specifies the BGP-LS Attribute TLVs for advertisement of the BGP | specifies the BGP-LS Attribute TLVs for advertisement of the BGP | |||
| Peering Segments (i.e., PeerNode SID, PeerAdj SID, and PeerSet SID) | Peering Segments (i.e., PeerNode SID, PeerAdj SID, and PeerSet SID) | |||
| to be advertised in the same BGP-LS Link NLRI. | to be advertised in the same BGP-LS Link NLRI. | |||
| 2. BGP Peering Segments | 2. Requirements Language | |||
| As described in [RFC8402], a BGP-EPE enabled Egress PE node | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| instantiates SR Segments corresponding to its attached peers. These | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| segments are called BGP Peering Segments or BGP Peering SIDs. In | "OPTIONAL" in this document are to be interpreted as described in | |||
| case of EBGP, they enable the expression of source-routed inter- | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| domain paths. | capitals, as shown here. | |||
| 3. BGP Peering Segments | ||||
| As described in [RFC8402], a BGP-EPE-enabled Egress Provider Edge | ||||
| (PE) node instantiates SR Segments corresponding to its attached | ||||
| peers. These segments are called BGP Peering Segments or BGP Peering | ||||
| SIDs. In the case of EBGP, they enable the expression of source- | ||||
| routed interdomain paths. | ||||
| An ingress border router of an AS may compose a list of SIDs to steer | An ingress border router of an AS may compose a list of SIDs to steer | |||
| a flow along a selected path within the AS, towards a selected egress | a flow along a selected path within the AS, towards a selected egress | |||
| border router C of the AS, and to a specific EBGP peer. At minimum, | border router C of the AS, and to a specific EBGP peer. At minimum, | |||
| a BGP-EPE policy applied at an ingress PE involves two SIDs: the Node | a BGP-EPE policy applied at an ingress PE involves two SIDs: the Node | |||
| SID of the chosen egress PE and then the BGP Peering SID for the | SID of the chosen egress PE and then the BGP Peering SID for the | |||
| chosen egress PE peer or peering interface. | chosen egress PE peer or peering interface. | |||
| Each BGP session MUST be described by a PeerNode SID. The | Each BGP session MUST be described by a PeerNode SID. The | |||
| description of the BGP session MAY be augmented by additional PeerAdj | description of the BGP session MAY be augmented by additional PeerAdj | |||
| SIDs. Finally, multiple PeerNode SIDs or PeerAdj SIDs MAY be part of | SIDs. Finally, multiple PeerNode SIDs or PeerAdj SIDs MAY be part of | |||
| the same group/set in order to group EPE resources under a common | the same group/set in order to group EPE resources under a common | |||
| PeerSet SID. These BGP Peering SIDs and their encoding are described | PeerSet SID. These BGP Peering SIDs and their encoding are described | |||
| in detail in Section 4. | in detail in Section 5. | |||
| The following BGP Peering SIDs need to be instantiated on a BGP | The following BGP Peering SIDs need to be instantiated on a BGP | |||
| router for each of its BGP peer sessions that are enabled for Egress | router for each of its BGP peer sessions that are enabled for Egress | |||
| Peer Engineering: | Peer Engineering: | |||
| o One PeerNode SID MUST be instantiated to describe the BGP peer | * One PeerNode SID MUST be instantiated to describe the BGP peer | |||
| session. | session. | |||
| o One or more PeerAdj SID MAY be instantiated corresponding to the | * One or more PeerAdj SID MAY be instantiated corresponding to the | |||
| underlying link(s) to the directly connected BGP peer session. | underlying link(s) to the directly connected BGP peer session. | |||
| o A PeerSet SID MAY be instantiated and additionally associated and | * A PeerSet SID MAY be instantiated and additionally associated and | |||
| shared between one or more PeerNode SIDs or PeerAdj SIDs. | shared between one or more PeerNode SIDs or PeerAdj SIDs. | |||
| While an egress point in a topology usually refers to EBGP sessions | While an egress point in a topology usually refers to EBGP sessions | |||
| between external peers, there's nothing in the extensions defined in | between external peers, there's nothing in the extensions defined in | |||
| this document that would prevent the use of these extensions in the | this document that would prevent the use of these extensions in the | |||
| context of IBGP sessions. However, unlike EBGP sessions which are | context of Internal BGP (IBGP) sessions. However, unlike EBGP | |||
| generally between directly connected BGP routers which are also along | sessions, which are generally between directly connected BGP routers | |||
| the traffic forwarding path, IBGP peer sessions may be setup to BGP | also along the traffic forwarding path, IBGP peer sessions may be set | |||
| routers which are not in the forwarding path. As such, when the IBGP | up to BGP routers that are not in the forwarding path. As such, when | |||
| design includes sessions with route-reflectors, a BGP router SHOULD | the IBGP design includes sessions with route reflectors, a BGP router | |||
| NOT instantiate a BGP Peering SID for those sessions to peer nodes | SHOULD NOT instantiate a BGP Peering SID for those sessions to peer | |||
| which are not in the forwarding path since the purpose of BGP Peering | nodes that are not in the forwarding path since the purpose of BGP | |||
| SID is to steer traffic to that specific peers. Thus, the | Peering SID is to steer traffic to those specific peers. Thus, the | |||
| applicability for IBGP peering may be limited to only those | applicability for IBGP peering may be limited to only those | |||
| deployments where the IBGP peer is also along the forwarding data | deployments where the IBGP peer is also along the forwarding data | |||
| path. | path. | |||
| Any BGP Peering SIDs instantiated on the node are advertised via BGP- | Any BGP Peering SIDs instantiated on the node are advertised via BGP- | |||
| LS Link NLRI type as described in the sections below. An | LS Link NLRI type as described in the sections below. An | |||
| illustration of the BGP Peering SIDs' allocations in a reference BGP | illustration of the BGP Peering SIDs' allocations in a reference BGP | |||
| peering topology along with the information carried in the BGP-LS | peering topology along with the information carried in the BGP-LS | |||
| Link NLRI and its corresponding BGP-LS Attribute are described in | Link NLRI and its corresponding BGP-LS Attribute are described in | |||
| [I-D.ietf-spring-segment-routing-central-epe]. | [RFC9087]. | |||
| 3. BGP-LS NLRI Advertisement for BGP Protocol | 4. BGP-LS NLRI Advertisement for BGP Protocol | |||
| This section describes the BGP-LS NLRI encodings that describe the | This section describes the BGP-LS NLRI encodings that describe the | |||
| BGP peering and link connectivity between BGP routers. | BGP peering and link connectivity between BGP routers. | |||
| This document specifies the advertisement of BGP peering topology | This document specifies the advertisement of BGP peering topology | |||
| information via BGP-LS Link NLRI type which requires use of a new | information via BGP-LS Link NLRI type, which requires use of a new | |||
| BGP-LS Protocol-ID. | BGP-LS Protocol-ID. | |||
| +-------------+----------------------------------+ | +=============+==================================+ | |||
| | Protocol-ID | NLRI information source protocol | | | Protocol-ID | NLRI Information Source Protocol | | |||
| +-------------+----------------------------------+ | +=============+==================================+ | |||
| | 7 | BGP | | | 7 | BGP | | |||
| +-------------+----------------------------------+ | +-------------+----------------------------------+ | |||
| Table 1: BGP-LS Protocol Identifier for BGP | Table 1: BGP-LS Protocol Identifier for BGP | |||
| The use of a new Protocol-ID allows separation and differentiation | The use of a new Protocol-ID allows separation and differentiation | |||
| between the BGP-LS NLRIs carrying BGP information from the BGP-LS | between the BGP-LS NLRIs carrying BGP information from the BGP-LS | |||
| NLRIs carrying IGP link-state information defined in [RFC7752]. | NLRIs carrying IGP link-state information defined in [RFC7752]. | |||
| The BGP Peering information along with their Peering Segments are | The BGP Peering information along with their Peering Segments are | |||
| advertised using BGP-LS Link NLRI type with the Protocol-ID set to | advertised using BGP-LS Link NLRI type with the Protocol-ID set to | |||
| BGP. The BGP-LS Link NLRI type uses the Descriptor TLVs and BGP-LS | BGP. BGP-LS Link NLRI type uses the Descriptor TLVs and BGP-LS | |||
| Attribute TLVs as defined in [RFC7752]. In order to correctly | Attribute TLVs as defined in [RFC7752]. In order to correctly | |||
| describe BGP nodes, new TLVs are defined in this section. | describe BGP nodes, new TLVs are defined in this section. | |||
| [RFC7752] defines Link NLRI Type is as follows: | [RFC7752] defines BGP-LS Link NLRI type as follows: | |||
| 0 1 2 3 | 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 | 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 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| | Protocol-ID | | | Protocol-ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Identifier | | | Identifier | | |||
| | (64 bits) | | | (64 bits) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Local Node Descriptors // | // Local Node Descriptors // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Remote Node Descriptors // | // Remote Node Descriptors // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Link Descriptors // | // Link Descriptors // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: BGP-LS Link NLRI | Figure 1: BGP-LS Link NLRI | |||
| Node Descriptors and Link Descriptors are defined in [RFC7752]. | Node Descriptors and Link Descriptors are defined in [RFC7752]. | |||
| 3.1. BGP Router-ID and Member AS Number | 4.1. BGP Router-ID and Member AS Number | |||
| Two new Node Descriptors TLVs are defined in this document: | Two new Node Descriptor TLVs are defined in this document: | |||
| o BGP Router Identifier (BGP Router-ID): | * BGP Router Identifier (BGP Router-ID): | |||
| Type: 516 | Type: 516 | |||
| Length: 4 octets | Length: 4 octets | |||
| Value: 4 octet unsigned non-zero integer representing the BGP | Value: 4-octet unsigned non-zero integer representing the BGP | |||
| Identifier as defined in [RFC6286]. | Identifier as defined in [RFC6286] | |||
| o Member-AS Number (Member-ASN) | * Member-AS Number (Member-ASN) | |||
| Type: 517 | Type: 517 | |||
| Length: 4 octets | Length: 4 octets | |||
| Value: 4 octet unsigned non-zero integer representing the | Value: 4-octet unsigned non-zero integer representing the | |||
| Member-AS Number [RFC5065]. | Member-AS Number [RFC5065] | |||
| 3.2. Mandatory BGP Node Descriptors | 4.2. Mandatory BGP Node Descriptors | |||
| The following Node Descriptors TLVs MUST be included in BGP-LS NLRI | The following Node Descriptor TLVs MUST be included in BGP-LS NLRI as | |||
| as Local Node Descriptors when distributing BGP information: | Local Node Descriptors when distributing BGP information: | |||
| o BGP Router-ID (TLV 516), which contains a valid BGP Identifier of | * BGP Router-ID (TLV 516), which contains a valid BGP Identifier of | |||
| the local BGP node. | the local BGP node. | |||
| o Autonomous System Number (TLV 512) [RFC7752], which contains the | * Autonomous System Number (TLV 512) [RFC7752], which contains the | |||
| ASN or AS Confederation Identifier (ASN) [RFC5065], if | Autonomous System Number (ASN) or AS Confederation Identifier (an | |||
| confederations are used, of the local BGP node. | ASN) [RFC5065], if confederations are used, of the local BGP node. | |||
| Note that [RFC6286] (section 2.1) requires the BGP identifier | Note that Section 2.1 of [RFC6286] requires the BGP identifier | |||
| (Router-ID) to be unique within an Autonomous System and non-zero. | (Router-ID) to be unique within an Autonomous System and non-zero. | |||
| Therefore, the <ASN, BGP Router-ID> tuple is globally unique. Their | Therefore, the <ASN, BGP Router-ID> tuple is globally unique. Their | |||
| use in the Node Descriptor helps map Link-State NLRIs with BGP | use in the Node Descriptor helps map Link-State NLRIs with BGP | |||
| protocol-ID to a unique BGP router in the administrative domain where | protocol-ID to a unique BGP router in the administrative domain where | |||
| BGP-LS is enabled. | BGP-LS is enabled. | |||
| The following Node Descriptors TLVs MUST be included in BGP-LS Link | The following Node Descriptor TLVs MUST be included in BGP-LS Link | |||
| NLRI as Remote Node Descriptors when distributing BGP information: | NLRI as Remote Node Descriptors when distributing BGP information: | |||
| o BGP Router-ID (TLV 516), which contains the valid BGP Identifier | * BGP Router-ID (TLV 516), which contains the valid BGP Identifier | |||
| of the peer BGP node. | of the peer BGP node. | |||
| o Autonomous System Number (TLV 512) [RFC7752], which contains the | * Autonomous System Number (TLV 512) [RFC7752], which contains the | |||
| ASN or the AS Confederation Identifier (ASN) [RFC5065], if | ASN or the AS Confederation Identifier (an ASN) [RFC5065], if | |||
| confederations are used, of the peer BGP node. | confederations are used, of the peer BGP node. | |||
| 3.3. Optional BGP Node Descriptors | 4.3. Optional BGP Node Descriptors | |||
| The following Node Descriptors TLVs MAY be included in BGP-LS NLRI as | The following Node Descriptor TLVs MAY be included in BGP-LS NLRI as | |||
| Local Node Descriptors when distributing BGP information: | Local Node Descriptors when distributing BGP information: | |||
| o Member-ASN (TLV 517), which contains the ASN of the confederation | * Member-ASN (TLV 517), which contains the ASN of the confederation | |||
| member (i.e., Member-AS Number), if BGP confederations are used, | member (i.e., Member-AS Number), if BGP confederations are used, | |||
| of the local BGP node. | of the local BGP node. | |||
| o Node Descriptors as defined in [RFC7752]. | * Node Descriptors as defined in [RFC7752]. | |||
| The following Node Descriptors TLVs MAY be included in BGP-LS Link | The following Node Descriptor TLVs MAY be included in BGP-LS Link | |||
| NLRI as Remote Node Descriptors when distributing BGP information: | NLRI as Remote Node Descriptors when distributing BGP information: | |||
| o Member-ASN (TLV 517), which contains the ASN of the confederation | * Member-ASN (TLV 517), which contains the ASN of the confederation | |||
| member (i.e., Member-AS Number), if BGP confederations are used, | member (i.e., Member-AS Number), if BGP confederations are used, | |||
| of the peer BGP node. | of the peer BGP node. | |||
| o Node Descriptors as defined in [RFC7752]. | * Node Descriptors as defined in [RFC7752]. | |||
| 4. BGP-LS Attributes for BGP Peering Segments | 5. BGP-LS Attributes for BGP Peering Segments | |||
| This section defines the BGP-LS Attributes corresponding to the | This section defines the BGP-LS Attributes corresponding to the | |||
| following BGP Peer Segment SIDs: | following BGP Peer Segment SIDs: | |||
| Peer Node Segment Identifier (PeerNode SID) | * Peer Node Segment Identifier (PeerNode SID) | |||
| Peer Adjacency Segment Identifier (PeerAdj SID) | ||||
| Peer Set Segment Identifier (PeerSet SID) | * Peer Adjacency Segment Identifier (PeerAdj SID) | |||
| The following new BGP-LS Link attributes TLVs are defined for use | * Peer Set Segment Identifier (PeerSet SID) | |||
| with BGP-LS Link NLRI for advertising BGP Peering SIDs: | ||||
| +----------+---------------------------+ | The following new BGP-LS Link Attribute TLVs are defined for use with | |||
| | TLV Code | Description | | BGP-LS Link NLRI for advertising BGP Peering SIDs: | |||
| | Point | | | ||||
| +----------+---------------------------+ | ||||
| | 1101 | PeerNode SID | | ||||
| | 1102 | PeerAdj SID | | ||||
| | 1103 | PeerSet SID | | ||||
| +----------+---------------------------+ | ||||
| Figure 2: BGP-LS TLV code points for BGP-EPE | +================+==============+ | |||
| | TLV Code Point | Description | | ||||
| +================+==============+ | ||||
| | 1101 | PeerNode SID | | ||||
| +----------------+--------------+ | ||||
| | 1102 | PeerAdj SID | | ||||
| +----------------+--------------+ | ||||
| | 1103 | PeerSet SID | | ||||
| +----------------+--------------+ | ||||
| PeerNode SID, PeerAdj SID, and PeerSet SID have all the same format | Table 2: BGP-LS TLV Code | |||
| defined here below: | Points for BGP-EPE | |||
| PeerNode SID, PeerAdj SID, and PeerSet SID all have the same format | ||||
| as defined below: | ||||
| 0 1 2 3 | 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 | 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 | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flags | Weight | Reserved | | | Flags | Weight | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SID/Label/Index (variable) | | | SID/Label/Index (variable) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 3: BGP Peering SIDs TLV Format | Figure 2: BGP Peering SIDs TLV Format | |||
| o Type: 1101, 1102 or 1103 as listed in Figure 2. | * Type: 1101, 1102, or 1103 as listed in Table 2 | |||
| o Length: variable. Valid values are either 7 or 8 based on the | * Length: variable. Valid values are either 7 or 8 based on whether | |||
| whether the encoding is done as a SID Index or a label. | the encoding is done as a SID Index or a label. | |||
| o Flags: one octet of flags with the following definition: | * Flags: one octet of flags with the following definition: | |||
| 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |V|L|B|P| Rsvd | | |V|L|B|P| Rsvd | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| Figure 4: Peering SID TLV Flags Format | Figure 3: Peering SID TLV Flags Format | |||
| * V-Flag: Value flag. If set, then the SID carries a label | - V-Flag: Value Flag. If set, then the SID carries a label | |||
| value. By default the flag is SET. | value. By default, the flag is SET. | |||
| * L-Flag: Local Flag. If set, then the value/index carried by | - L-Flag: Local Flag. If set, then the value/index carried by | |||
| the SID has local significance. By default the flag is SET. | the SID has local significance. By default, the flag is SET. | |||
| * B-Flag: Backup Flag. If set, the SID refers to a path that is | - B-Flag: Backup Flag. If set, the SID refers to a path that is | |||
| eligible for protection using fast re-route (FRR). The | eligible for protection using fast reroute (FRR). The | |||
| computation of the backup forwarding path and its association | computation of the backup forwarding path and its association | |||
| with the BGP Peering SID forwarding entry is implementation | with the BGP Peering SID forwarding entry is implementation | |||
| specific. [I-D.ietf-spring-segment-routing-central-epe] | specific. Section 3.6 of [RFC9087] discusses some of the | |||
| section 3.6 discusses some of the possible ways of identifying | possible ways of identifying backup paths for BGP Peering SIDs. | |||
| backup paths for BGP Peering SIDs. | ||||
| * P-Flag: Persistent Flag: If set, the SID is persistently | - P-Flag: Persistent Flag: If set, the SID is persistently | |||
| allocated, i.e., the SID value remains consistent across router | allocated, i.e., the SID value remains consistent across router | |||
| restart and session/interface flap. | restart and session/interface flap. | |||
| * Rsvd bits: Reserved for future use and MUST be zero when | - Rsvd bits: Reserved for future use and MUST be zero when | |||
| originated and ignored when received. | originated and ignored when received. | |||
| o Weight: 1 octet. The value represents the weight of the SID for | * Weight: 1 octet. The value represents the weight of the SID for | |||
| the purpose of load balancing. An example use of the weight is | the purpose of load balancing. An example use of the weight is | |||
| described in [RFC8402]. | described in [RFC8402]. | |||
| o SID/Index/Label. According to the TLV length and to the V and L | * SID/Index/Label. According to the TLV length and the V- and | |||
| flags settings, it contains either: | L-Flag settings, it contains either: | |||
| * A 3 octet local label where the 20 rightmost bits are used for | - A 3-octet local label where the 20 rightmost bits are used for | |||
| encoding the label value. In this case, the V and L flags MUST | encoding the label value. In this case, the V- and L-Flags | |||
| be SET. | MUST be SET. | |||
| * A 4 octet index defining the offset in the Segment Routing | - A 4-octet index defining the offset in the Segment Routing | |||
| Global Block (SRGB) [RFC8402] advertised by this router. In | Global Block (SRGB) [RFC8402] advertised by this router. In | |||
| this case, the SRGB MUST be advertised using the extensions | this case, the SRGB MUST be advertised using the extensions | |||
| defined in [I-D.ietf-idr-bgp-ls-segment-routing-ext]. | defined in [RFC9085]. | |||
| The values of the PeerNode SID, PeerAdj SID, and PeerSet SID Sub-TLVs | The values of the PeerNode SID, PeerAdj SID, and PeerSet SID Sub-TLVs | |||
| SHOULD be persistent across router restart. | SHOULD be persistent across router restart. | |||
| When enabled for Egress Peer Engineering, the BGP router MUST include | When enabled for Egress Peer Engineering, the BGP router MUST include | |||
| the PeerNode SID TLV in the BGP-LS Attribute for the BGP-LS Link NLRI | the PeerNode SID TLV in the BGP-LS Attribute for the BGP-LS Link NLRI | |||
| corresponding to its BGP peering sessions. The PeerAdj SID and | corresponding to its BGP peering sessions. The PeerAdj SID and | |||
| PeerSet SID TLVs MAY be included in the BGP-LS Attribute for the BGP- | PeerSet SID TLVs MAY be included in the BGP-LS Attribute for the BGP- | |||
| LS Link NLRI. | LS Link NLRI. | |||
| Additional BGP-LS Link Attribute TLVs, as defined in [RFC7752] MAY be | Additional BGP-LS Link Attribute TLVs as defined in [RFC7752] MAY be | |||
| included with the BGP-LS Link NLRI in order to advertise the | included with the BGP-LS Link NLRI in order to advertise the | |||
| characteristics of the peering link. E.g., one or more interface | characteristics of the peering link, e.g., one or more interface | |||
| addresses (TLV 259 or TLV 261) of the underlying link(s) over which a | addresses (TLV 259 or TLV 261) of the underlying link(s) over which a | |||
| multi-hop BGP peering session is setup may be included in the BGP-LS | multi-hop BGP peering session is set up may be included in the BGP-LS | |||
| Attribute along with the PeerNode SID TLV. | Attribute along with the PeerNode SID TLV. | |||
| 4.1. Advertisement of the PeerNode SID | 5.1. Advertisement of the PeerNode SID | |||
| The PeerNode SID TLV includes a SID associated with the BGP peer node | The PeerNode SID TLV includes a SID associated with the BGP peer node | |||
| that is described by a BGP-LS Link NLRI as specified in Section 3. | that is described by a BGP-LS Link NLRI as specified in Section 4. | |||
| The PeerNode SID, at the BGP node advertising it, has the following | The PeerNode SID, at the BGP node advertising it, has the following | |||
| semantics (as defined in [RFC8402]): | semantics (as defined in [RFC8402]): | |||
| o SR operation: NEXT. | * SR operation: NEXT | |||
| o Next-Hop: the connected peering node to which the segment is | * Next-Hop: the connected peering node to which the segment is | |||
| associated. | associated | |||
| The PeerNode SID is advertised with a BGP-LS Link NLRI, where: | The PeerNode SID is advertised with a BGP-LS Link NLRI, where: | |||
| o Local Node Descriptors include: | * Local Node Descriptors include: | |||
| * Local BGP Router-ID (TLV 516) of the BGP-EPE enabled egress PE. | - Local BGP Router-ID (TLV 516) of the BGP-EPE-enabled Egress PE | |||
| * Local ASN (TLV 512). | - Local ASN (TLV 512) | |||
| o Remote Node Descriptors include: | * Remote Node Descriptors include: | |||
| * Peer BGP Router-ID (TLV 516) (i.e., the peer BGP ID used in the | - Peer BGP Router-ID (TLV 516) (i.e., the peer BGP ID used in the | |||
| BGP session) | BGP session) | |||
| * Peer ASN (TLV 512). | - Peer ASN (TLV 512) | |||
| o Link Descriptors include the addresses used by the BGP session | * Link Descriptors include the addresses used by the BGP session | |||
| encoded using TLVs as defined in [RFC7752]: | encoded using TLVs as defined in [RFC7752]: | |||
| * IPv4 Interface Address (TLV 259) contains the BGP session IPv4 | - IPv4 Interface Address (TLV 259) contains the BGP session IPv4 | |||
| local address. | local address. | |||
| * IPv4 Neighbor Address (TLV 260) contains the BGP session IPv4 | - IPv4 Neighbor Address (TLV 260) contains the BGP session IPv4 | |||
| peer address. | peer address. | |||
| * IPv6 Interface Address (TLV 261) contains the BGP session IPv6 | - IPv6 Interface Address (TLV 261) contains the BGP session IPv6 | |||
| local address. | local address. | |||
| * IPv6 Neighbor Address (TLV 262) contains the BGP session IPv6 | - IPv6 Neighbor Address (TLV 262) contains the BGP session IPv6 | |||
| peer address. | peer address. | |||
| o Link Attribute TLVs include the PeerNode SID TLV as defined in | * Link Attribute TLVs include the PeerNode SID TLV as defined in | |||
| Figure 3. | Figure 2. | |||
| 4.2. Advertisement of the PeerAdj SID | 5.2. Advertisement of the PeerAdj SID | |||
| The PeerAdj SID TLV includes a SID associated with the underlying | The PeerAdj SID TLV includes a SID associated with the underlying | |||
| link to the BGP peer node that is described by a BGP-LS Link NLRI as | link to the BGP peer node that is described by a BGP-LS Link NLRI as | |||
| specified in Section 3. | specified in Section 4. | |||
| The PeerAdj SID, at the BGP node advertising it, has the following | The PeerAdj SID, at the BGP node advertising it, has the following | |||
| semantics (as defined in [RFC8402]): | semantics (as defined in [RFC8402]): | |||
| o SR operation: NEXT. | * SR operation: NEXT | |||
| o Next-Hop: the interface peer address. | * Next-Hop: the interface peer address | |||
| The PeerAdj SID is advertised with a BGP-LS Link NLRI, where: | The PeerAdj SID is advertised with a BGP-LS Link NLRI, where: | |||
| o Local Node Descriptors include: | * Local Node Descriptors include: | |||
| * Local BGP Router-ID (TLV 516) of the BGP-EPE enabled egress PE. | - Local BGP Router-ID (TLV 516) of the BGP-EPE-enabled Egress PE | |||
| * Local ASN (TLV 512). | - Local ASN (TLV 512) | |||
| o Remote Node Descriptors include: | * Remote Node Descriptors include: | |||
| * Peer BGP Router-ID (TLV 516) (i.e., the peer BGP ID used in the | - Peer BGP Router-ID (TLV 516) (i.e., the peer BGP ID used in the | |||
| BGP session). | BGP session) | |||
| * Peer ASN (TLV 512). | - Peer ASN (TLV 512) | |||
| o Link Descriptors MUST include the following TLV, as defined in | * Link Descriptors MUST include the following TLV, as defined in | |||
| [RFC7752]: | [RFC7752]: | |||
| * Link Local/Remote Identifiers (TLV 258) contains the 4-octet | - Link Local/Remote Identifiers (TLV 258) contains the 4-octet | |||
| Link Local Identifier followed by the 4-octet Link Remote | Link Local Identifier followed by the 4-octet Link Remote | |||
| Identifier. The value 0 is used by default when the link | Identifier. The value 0 is used by default when the link | |||
| remote identifier is unknown. | remote identifier is unknown. | |||
| o Additional Link Descriptors TLVs, as defined in [RFC7752], MAY | * Additional Link Descriptors TLVs, as defined in [RFC7752], MAY | |||
| also be included to describe the addresses corresponding to the | also be included to describe the addresses corresponding to the | |||
| link between the BGP routers: | link between the BGP routers: | |||
| * IPv4 Interface Address (Sub-TLV 259) contains the address of | - IPv4 Interface Address (Sub-TLV 259) contains the address of | |||
| the local interface through which the BGP session is | the local interface through which the BGP session is | |||
| established. | established. | |||
| * IPv6 Interface Address (Sub-TLV 261) contains the address of | - IPv6 Interface Address (Sub-TLV 261) contains the address of | |||
| the local interface through which the BGP session is | the local interface through which the BGP session is | |||
| established. | established. | |||
| * IPv4 Neighbor Address (Sub-TLV 260) contains the IPv4 address | - IPv4 Neighbor Address (Sub-TLV 260) contains the IPv4 address | |||
| of the peer interface used by the BGP session. | of the peer interface used by the BGP session. | |||
| * IPv6 Neighbor Address (Sub-TLV 262) contains the IPv6 address | - IPv6 Neighbor Address (Sub-TLV 262) contains the IPv6 address | |||
| of the peer interface used by the BGP session. | of the peer interface used by the BGP session. | |||
| o Link Attribute TLVs include the PeerAdj SID TLV as defined in | * Link Attribute TLVs include the PeerAdj SID TLV as defined in | |||
| Figure 3. | Figure 2. | |||
| 4.3. Advertisement of the PeerSet SID | 5.3. Advertisement of the PeerSet SID | |||
| The PeerSet SID TLV includes a SID that is shared amongst BGP peer | The PeerSet SID TLV includes a SID that is shared amongst BGP peer | |||
| nodes or the underlying links that are described by BGP-LS Link NLRI | nodes or the underlying links that are described by BGP-LS Link NLRI | |||
| as specified in Section 3. | as specified in Section 4. | |||
| The PeerSet SID, at the BGP node advertising it, has the following | The PeerSet SID, at the BGP node advertising it, has the following | |||
| semantics (as defined in [RFC8402]): | semantics (as defined in [RFC8402]): | |||
| o SR operation: NEXT. | * SR operation: NEXT | |||
| o Next-Hop: load balance across any connected interface to any peer | * Next-Hop: load-balance across any connected interface to any peer | |||
| in the associated peer set. | in the associated peer set | |||
| The PeerSet SID TLV containing the same SID value (encoded as defined | The PeerSet SID TLV containing the same SID value (encoded as defined | |||
| in Figure 3) is included in the BGP-LS Attribute for all of the BGP- | in Figure 2) is included in the BGP-LS Attribute for all of the BGP- | |||
| LS Link NLRI corresponding to the PeerNode or PeerAdj segments | LS Link NLRI corresponding to the PeerNode or PeerAdj segments | |||
| associated with the peer set. | associated with the peer set. | |||
| 5. IANA Considerations | 6. IANA Considerations | |||
| This document defines: | This document defines: | |||
| A new Protocol-ID: BGP. The codepoint is from the "BGP-LS | * A new Protocol-ID: BGP. The code point is from the "BGP-LS | |||
| Protocol-IDs" registry. | Protocol-IDs" registry. | |||
| Two new TLVs: BGP-Router-ID and BGP Confederation Member. The | * Two new TLVs: BGP-Router-ID and BGP Confederation Member. The | |||
| codepoints are in the "BGP-LS Node Descriptor, Link Descriptor, | code points are in the "BGP-LS Node Descriptor, Link Descriptor, | |||
| Prefix Descriptor, and Attribute TLVs" registry. | Prefix Descriptor, and Attribute TLVs" registry. | |||
| Three new BGP-LS Attribute TLVs: PeerNode SID, PeerAdj SID and | * Three new BGP-LS Attribute TLVs: PeerNode SID, PeerAdj SID, and | |||
| PeerSet SID. The codepoints are in the "BGP-LS Node Descriptor, | PeerSet SID. The code points are in the "BGP-LS Node Descriptor, | |||
| Link Descriptor, Prefix Descriptor, and Attribute TLVs" registry. | Link Descriptor, Prefix Descriptor, and Attribute TLVs" registry. | |||
| 5.1. New BGP-LS Protocol-ID | 6.1. New BGP-LS Protocol-ID | |||
| This document defines a new value in the registry "BGP-LS Protocol- | This document defines a new value in the registry "BGP-LS Protocol- | |||
| IDs": | IDs": | |||
| +------------------------------------------------------+ | +=============+==================================+===========+ | |||
| | Codepoint | Description | Status | | | Protocol-ID | NLRI information source protocol | Reference | | |||
| +------------------------------------------------------+ | +=============+==================================+===========+ | |||
| | 7 | BGP | Early Allocation by IANA | | | 7 | BGP | RFC 9086 | | |||
| +------------------------------------------------------+ | +-------------+----------------------------------+-----------+ | |||
| Figure 5: BGP Protocol Codepoint | Table 3: BGP-LS Protocol-ID | |||
| 5.2. Node Descriptors and Link Attribute TLVs | 6.2. Node Descriptors and Link Attribute TLVs | |||
| This document defines 5 new TLVs in the registry "BGP-LS Node | This document defines five new TLVs in the registry "BGP-LS Node | |||
| Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs": | Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs": | |||
| o Two new node descriptor TLVs | * Two new Node Descriptor TLVs | |||
| o Three new link attribute TLVs | * Three new Link Attribute TLVs | |||
| All the new 5 codepoints are in the same registry: "BGP-LS Node | All five of the new code points are in the same registry: "BGP-LS | |||
| Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs". | Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute | |||
| TLVs". | ||||
| The following new Node Descriptors TLVs are defined: | The following new Node Descriptor TLVs are defined: | |||
| +-------------------------------------------------------------------+ | +================+==========================+===========+ | |||
| | Codepoint | Description | Status | | | TLV Code Point | Description | Reference | | |||
| +-------------------------------------------------------------------+ | +================+==========================+===========+ | |||
| | 516 | BGP Router-ID | Early Allocation by IANA | | | 516 | BGP Router-ID | RFC 9086 | | |||
| | 517 | BGP Confederation Member | Early Allocation by IANA | | +----------------+--------------------------+-----------+ | |||
| +------------+------------------------------------------------------+ | | 517 | BGP Confederation Member | RFC 9086 | | |||
| +----------------+--------------------------+-----------+ | ||||
| Figure 6: BGP-LS Descriptor TLVs Codepoints | Table 4: BGP-LS Descriptor TLV Code Points | |||
| The following new Link Attribute TLVs are defined: | The following new Link Attribute TLVs are defined: | |||
| +-------------------------------------------------------------------+ | +================+==============+===========+ | |||
| | Codepoint | Description | Status | | | TLV Code Point | Description | Reference | | |||
| +-------------------------------------------------------------------+ | +================+==============+===========+ | |||
| | 1101 | PeerNode SID | Early Allocation by IANA | | | 1101 | PeerNode SID | RFC 9086 | | |||
| | 1102 | PeerAdj SID | Early Allocation by IANA | | +----------------+--------------+-----------+ | |||
| | 1103 | PeerSet SID | Early Allocation by IANA | | | 1102 | PeerAdj SID | RFC 9086 | | |||
| +------------+------------------------------------------------------+ | +----------------+--------------+-----------+ | |||
| | 1103 | PeerSet SID | RFC 9086 | | ||||
| +----------------+--------------+-----------+ | ||||
| Figure 7: BGP-LS Attribute TLVs Codepoints | Table 5: BGP-LS Attribute TLV Code Points | |||
| 6. Manageability Considerations | 7. Manageability Considerations | |||
| The new protocol extensions introduced in this document augment the | The new protocol extensions introduced in this document augment the | |||
| existing IGP topology information BGP-LS distribution [RFC7752] by | existing IGP topology information BGP-LS distribution [RFC7752] by | |||
| adding support for distribution of BGP peering topology information. | adding support for distribution of BGP peering topology information. | |||
| As such, the Manageability Considerations section of [RFC7752] | As such, Section 6 of [RFC7752] (Manageability Considerations) | |||
| applies to these new extensions as well. | applies to these new extensions as well. | |||
| Specifically, the malformed Link-State NLRI and BGP-LS Attribute | Specifically, the malformed Link-State NLRI and BGP-LS Attribute | |||
| tests for syntactic checks in the Fault Management section of | tests for syntactic checks in Section 6.2.2 of [RFC7752] (Fault | |||
| [RFC7752] now apply to the TLVs defined in this document. The | Management) now apply to the TLVs defined in this document. The | |||
| semantic or content checking for the TLVs specified in this document | semantic or content checking for the TLVs specified in this document | |||
| and their association with the BGP-LS NLRI types or their associated | and their association with the BGP-LS NLRI types or their associated | |||
| BGP-LS Attributes is left to the consumer of the BGP-LS information | BGP-LS Attributes is left to the consumer of the BGP-LS information | |||
| (e.g., an application or a controller) and not the BGP protocol. | (e.g., an application or a controller) and not the BGP protocol. | |||
| A consumer of the BGP-LS information retrieves this information from | A consumer of the BGP-LS information retrieves this information from | |||
| a BGP Speaker, over a BGP-LS session (refer Section 1 and 2 of | a BGP Speaker, over a BGP-LS session (refer to Sections 1 and 2 of | |||
| [RFC7752]). The handling of semantic or content errors by the | [RFC7752]). The handling of semantic or content errors by the | |||
| consumer would be dictated by the nature of its application usage and | consumer would be dictated by the nature of its application usage and | |||
| hence is beyond the scope of this document. It may be expected that | is hence beyond the scope of this document. It may be expected that | |||
| an error detected in the NLRI descriptor TLVs would result in that | an error detected in the NLRI Descriptor TLVs would result in that | |||
| specific NLRI update being unusable and hence its update to be | specific NLRI update being unusable and hence its update to be | |||
| discarded along with an error log. While an error in Attribute TLVs | discarded along with an error log, whereas an error in Attribute TLVs | |||
| would result in only that specific attribute being discarded with an | would result in only that specific attribute being discarded with an | |||
| error log. | error log. | |||
| The operator MUST be provided with the options of configuring, | The operator MUST be provided with the options of configuring, | |||
| enabling, and disabling the advertisement of each of the PeerNode | enabling, and disabling the advertisement of each of the PeerNode | |||
| SID, PeerAdj SID, and PeerSet SID as well as control of which | SID, PeerAdj SID, and PeerSet SID as well as control of which | |||
| information is advertised to which internal or external peer. This | information is advertised to which internal or external peer. This | |||
| is not different from what is required by a BGP speaker in terms of | is not different from what is required by a BGP speaker in terms of | |||
| information origination and advertisement. | information origination and advertisement. | |||
| BGP Peering Segments are associated with the normal BGP routing | BGP Peering Segments are associated with the normal BGP routing | |||
| peering sessions. However, the BGP peering information along with | peering sessions. However, the BGP peering information along with | |||
| these Peering Segments themselves are advertised via a distinct BGP- | these Peering Segments themselves are advertised via a distinct BGP- | |||
| LS peering session. It is expected that this isolation as described | LS peering session. It is expected that this isolation as described | |||
| in [RFC7752] is followed when advertising BGP peering topology | in [RFC7752] is followed when advertising BGP peering topology | |||
| information via BGP-LS. | information via BGP-LS. | |||
| BGP-EPE functionality enables the capability for instantiation of an | BGP-EPE functionality enables the capability for instantiation of an | |||
| SR path for traffic engineering a flow via an egress BGP router to a | SR path for traffic engineering a flow via an egress BGP router to a | |||
| specific peer, bypassing the normal BGP best path routing for that | specific peer, bypassing the normal BGP best-path routing for that | |||
| flow and any routing policies implemented in BGP on that egress BGP | flow and any routing policies implemented in BGP on that egress BGP | |||
| router. As with any traffic engineering solution, the controller or | router. As with any traffic-engineering solution, the controller or | |||
| application implementing the policy needs to ensure that there is no | application implementing the policy needs to ensure that there is no | |||
| looping or mis-routing of traffic. Traffic counters corresponding to | looping or misrouting of traffic. Traffic counters corresponding to | |||
| the MPLS label of the BGP Peering SID on the router would indicate | the MPLS label of the BGP Peering SID on the router would indicate | |||
| the traffic being forwarded based on the specific EPE path. | the traffic being forwarded based on the specific EPE path. | |||
| Monitoring these counters and the flows hitting the corresponding | Monitoring these counters and the flows hitting the corresponding | |||
| MPLS forwarding entry would help identify issues, if any, with | MPLS forwarding entry would help identify issues, if any, with | |||
| traffic engineering over the EPE paths. Errors in the encoding or | traffic engineering over the EPE paths. Errors in the encoding or | |||
| decoding of the SR information in the TLVs defined in this document | decoding of the SR information in the TLVs defined in this document | |||
| may result in the unavailability of such information to a Centralized | may result in the unavailability of such information to a Centralized | |||
| EPE Controller or incorrect information being made available to it. | EPE Controller or incorrect information being made available to it. | |||
| This may result in the controller not being able to perform the | This may result in the controller not being able to perform the | |||
| desired SR based optimization functionality or to perform it in an | desired SR-based optimization functionality or performing it in an | |||
| unexpected or inconsistent manner. The handling of such errors by | unexpected or inconsistent manner. The handling of such errors by | |||
| applications like such a controller may be implementation specific | applications like such a controller may be implementation specific | |||
| and out of scope of this document. | and out of scope of this document. | |||
| 7. Security Considerations | 8. Security Considerations | |||
| [RFC7752] defines BGP-LS NLRI to which the extensions defined in this | [RFC7752] defines BGP-LS NLRI to which the extensions defined in this | |||
| document apply. The Security Considerations section of [RFC7752] | document apply. Section 8 of [RFC7752] also applies to these | |||
| also applies to these extensions. The procedures and new TLVs | extensions. The procedures and new TLVs defined in this document, by | |||
| defined in this document, by themselves, do not affect the BGP-LS | themselves, do not affect the BGP-LS security model discussed in | |||
| security model discussed in [RFC7752]. | [RFC7752]. | |||
| BGP-EPE enables engineering of traffic when leaving the | BGP-EPE enables engineering of traffic when leaving the | |||
| administrative domain via an egress BGP router. Therefore precaution | administrative domain via an egress BGP router. Therefore, | |||
| is necessary to ensure that the BGP peering information collected via | precaution is necessary to ensure that the BGP peering information | |||
| BGP-LS is limited to specific consumers in a secure manner. Segment | collected via BGP-LS is limited to specific consumers in a secure | |||
| Routing operates within a trusted domain [RFC8402] and its security | manner. Segment Routing operates within a trusted domain [RFC8402], | |||
| considerations also apply to BGP Peering Segments. The BGP-EPE | and its security considerations also apply to BGP Peering Segments. | |||
| policies are expected to be used entirely within this trusted SR | The BGP-EPE policies are expected to be used entirely within this | |||
| domain (e.g., between multiple AS/domains within a single provider | trusted SR domain (e.g., between multiple AS/domains within a single | |||
| network). | provider network). | |||
| The isolation of BGP-LS peering sessions is also required to ensure | The isolation of BGP-LS peering sessions is also required to ensure | |||
| that BGP-LS topology information (including the newly added BGP | that BGP-LS topology information (including the newly added BGP | |||
| peering topology) is not advertised to an external BGP peering | peering topology) is not advertised to an external BGP peering | |||
| session outside an administrative domain. | session outside an administrative domain. | |||
| 8. Contributors | 9. References | |||
| Mach (Guoyi) Chen | ||||
| Huawei Technologies | ||||
| China | ||||
| Email: mach.chen@huawei.com | ||||
| Acee Lindem | ||||
| Cisco Systems Inc. | ||||
| US | ||||
| Email: acee@cisco.com | ||||
| 9. Acknowledgements | ||||
| The authors would like to thank Jakob Heitz, Howard Yang, Hannes | ||||
| Gredler, Peter Psenak, Arjun Sreekantiah and Bruno Decraene for their | ||||
| feedback and comments. Susan Hares helped in improving the clarity | ||||
| of the document with her substantial contributions during her | ||||
| shepherd's review. The authors would also like to thank Alvaro | ||||
| Retana for his extensive review and comments which helped correct | ||||
| issues and improve the document. | ||||
| 10. References | ||||
| 10.1. Normative References | ||||
| [I-D.ietf-idr-bgp-ls-segment-routing-ext] | 9.1. Normative References | |||
| Previdi, S., Talaulikar, K., Filsfils, C., Gredler, H., | ||||
| and M. Chen, "BGP Link-State extensions for Segment | ||||
| Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-14 | ||||
| (work in progress), May 2019. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC5065] Traina, P., McPherson, D., and J. Scudder, "Autonomous | [RFC5065] Traina, P., McPherson, D., and J. Scudder, "Autonomous | |||
| System Confederations for BGP", RFC 5065, | System Confederations for BGP", RFC 5065, | |||
| DOI 10.17487/RFC5065, August 2007, | DOI 10.17487/RFC5065, August 2007, | |||
| <https://www.rfc-editor.org/info/rfc5065>. | <https://www.rfc-editor.org/info/rfc5065>. | |||
| skipping to change at page 17, line 14 ¶ | skipping to change at line 738 ¶ | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., | [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., | |||
| Decraene, B., Litkowski, S., and R. Shakir, "Segment | Decraene, B., Litkowski, S., and R. Shakir, "Segment | |||
| Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | |||
| July 2018, <https://www.rfc-editor.org/info/rfc8402>. | July 2018, <https://www.rfc-editor.org/info/rfc8402>. | |||
| 10.2. Informative References | [RFC9085] Previdi, S., Talaulikar, K., Ed., Filsfils, C., Gredler, | |||
| H., and M. Chen, "Border Gateway Protocol - Link State | ||||
| (BGP-LS) Extensions for Segment Routing", RFC 9085, | ||||
| DOI 10.17487/RFC9085, August 2021, | ||||
| <https://www.rfc-editor.org/info/rfc9085>. | ||||
| [I-D.dawra-idr-bgpls-srv6-ext] | 9.2. Informative References | |||
| [BGPLS-SRV6] | ||||
| Dawra, G., Filsfils, C., Talaulikar, K., Chen, M., | Dawra, G., Filsfils, C., Talaulikar, K., Chen, M., | |||
| daniel.bernier@bell.ca, d., Uttaro, J., Decraene, B., and | Bernier, D., and B. Decraene, "BGP Link State Extensions | |||
| H. Elmalky, "BGP Link State Extensions for SRv6", draft- | for SRv6", Work in Progress, Internet-Draft, draft-ietf- | |||
| dawra-idr-bgpls-srv6-ext-06 (work in progress), March | idr-bgpls-srv6-ext-08, 8 June 2021, | |||
| 2019. | <https://datatracker.ietf.org/doc/html/draft-ietf-idr- | |||
| bgpls-srv6-ext-08>. | ||||
| [I-D.ietf-spring-segment-routing-central-epe] | [RFC9087] Filsfils, C., Ed., Previdi, S., Dawra, G., Ed., Aries, E., | |||
| Filsfils, C., Previdi, S., Dawra, G., Aries, E., and D. | and D. Afanasiev, "Segment Routing Centralized BGP Egress | |||
| Afanasiev, "Segment Routing Centralized BGP Egress Peer | Peer Engineering", RFC 9087, DOI 10.17487/RFC9087, August | |||
| Engineering", draft-ietf-spring-segment-routing-central- | 2021, <https://www.rfc-editor.org/info/rfc9087>. | |||
| epe-10 (work in progress), December 2017. | ||||
| [I-D.ietf-spring-segment-routing-policy] | [SR-POLICY] | |||
| Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d., | Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and | |||
| bogdanov@google.com, b., and P. Mattes, "Segment Routing | P. Mattes, "Segment Routing Policy Architecture", Work in | |||
| Policy Architecture", draft-ietf-spring-segment-routing- | Progress, Internet-Draft, draft-ietf-spring-segment- | |||
| policy-03 (work in progress), May 2019. | routing-policy-13, 28 May 2021, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-spring- | ||||
| segment-routing-policy-13>. | ||||
| Acknowledgements | ||||
| The authors would like to thank Jakob Heitz, Howard Yang, Hannes | ||||
| Gredler, Peter Psenak, Arjun Sreekantiah, and Bruno Decraene for | ||||
| their feedback and comments. Susan Hares helped in improving the | ||||
| clarity of the document with her substantial contributions during her | ||||
| shepherd's review. The authors would also like to thank Alvaro | ||||
| Retana for his extensive review and comments, which helped correct | ||||
| issues and improve the document. | ||||
| Contributors | ||||
| Mach(Guoyi) Chen | ||||
| Huawei Technologies | ||||
| China | ||||
| Email: mach.chen@huawei.com | ||||
| Acee Lindem | ||||
| Cisco Systems Inc. | ||||
| United States of America | ||||
| Email: acee@cisco.com | ||||
| Authors' Addresses | Authors' Addresses | |||
| Stefano Previdi | Stefano Previdi | |||
| Individual | Huawei Technologies | |||
| Email: stefano@previdi.net | Email: stefano@previdi.net | |||
| Ketan Talaulikar (editor) | Ketan Talaulikar (editor) | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| India | India | |||
| Email: ketant@cisco.com | Email: ketant@cisco.com | |||
| Clarence Filsfils | Clarence Filsfils | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| Brussels | Brussels | |||
| Belgium | Belgium | |||
| Email: cfilsfil@cisco.com | Email: cfilsfil@cisco.com | |||
| Keyur Patel | Keyur Patel | |||
| Arrcus, Inc. | Arrcus, Inc. | |||
| skipping to change at page 18, line 17 ¶ | skipping to change at line 817 ¶ | |||
| Belgium | Belgium | |||
| Email: cfilsfil@cisco.com | Email: cfilsfil@cisco.com | |||
| Keyur Patel | Keyur Patel | |||
| Arrcus, Inc. | Arrcus, Inc. | |||
| Email: Keyur@arrcus.com | Email: Keyur@arrcus.com | |||
| Saikat Ray | Saikat Ray | |||
| Individual Contributor | Individual | |||
| Email: raysaikat@gmail.com | Email: raysaikat@gmail.com | |||
| Jie Dong | Jie Dong | |||
| Huawei Technologies | Huawei Technologies | |||
| Huawei Campus, No. 156 Beiqing Rd. | Huawei Campus, No. 156 Beiqing Rd. | |||
| Beijing 100095 | Beijing | |||
| 100095 | ||||
| China | China | |||
| Email: jie.dong@huawei.com | Email: jie.dong@huawei.com | |||
| End of changes. 161 change blocks. | ||||
| 345 lines changed or deleted | 354 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||