| rfc9552.original | rfc9552.txt | |||
|---|---|---|---|---|
| Inter-Domain Routing K. Talaulikar, Ed. | Internet Engineering Task Force (IETF) K. Talaulikar, Ed. | |||
| Internet-Draft Cisco Systems | Request for Comments: 9552 Cisco Systems | |||
| Obsoletes: 7752, 9029 (if approved) 25 August 2023 | Obsoletes: 7752, 9029 December 2023 | |||
| Intended status: Standards Track | Category: Standards Track | |||
| Expires: 26 February 2024 | ISSN: 2070-1721 | |||
| Distribution of Link-State and Traffic Engineering Information Using BGP | Distribution of Link-State and Traffic Engineering Information Using BGP | |||
| draft-ietf-idr-rfc7752bis-17 | ||||
| Abstract | Abstract | |||
| In many environments, a component external to a network is called | In many environments, a component external to a network is called | |||
| upon to perform computations based on the network topology and the | upon to perform computations based on the network topology and the | |||
| current state of the connections within the network, including | current state of the connections within the network, including | |||
| Traffic Engineering (TE) information. This is information typically | Traffic Engineering (TE) information. This is information typically | |||
| distributed by IGP routing protocols within the network. | distributed by IGP routing protocols within the network. | |||
| This document describes a mechanism by which link-state and TE | This document describes a mechanism by which link-state and TE | |||
| information can be collected from networks and shared with external | information can be collected from networks and shared with external | |||
| components using the BGP routing protocol. This is achieved using a | components using the BGP routing protocol. This is achieved using a | |||
| BGP Network Layer Reachability Information (NLRI) encoding format. | BGP Network Layer Reachability Information (NLRI) encoding format. | |||
| The mechanism applies to physical and virtual (e.g., tunnel) IGP | The mechanism applies to physical and virtual (e.g., tunnel) IGP | |||
| links. The mechanism described is subject to policy control. | links. The mechanism described is subject to policy control. | |||
| Applications of this technique include Application-Layer Traffic | Applications of this technique include Application-Layer Traffic | |||
| Optimization (ALTO) servers and Path Computation Elements (PCEs). | Optimization (ALTO) servers and Path Computation Elements (PCEs). | |||
| This document obsoletes RFC7752 by completely replacing that | This document obsoletes RFC 7752 by completely replacing that | |||
| document. It makes some small changes and clarifications to the | document. It makes some small changes and clarifications to the | |||
| previous specification. This document also obsoletes RFC9029 by | previous specification. This document also obsoletes RFC 9029 by | |||
| incorporating the updates that it made to RFC7752. | incorporating the updates that it made to RFC 7752. | |||
| 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 | This document is a product of the Internet Engineering Task Force | |||
| Task Force (IETF). Note that other groups may also distribute | (IETF). It represents the consensus of the IETF community. It has | |||
| working documents as Internet-Drafts. The list of current Internet- | received public review and has been approved for publication by the | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | Information about the current status of this document, any errata, | |||
| and may be updated, replaced, or obsoleted by other documents at any | and how to provide feedback on it may be obtained at | |||
| time. It is inappropriate to use Internet-Drafts as reference | https://www.rfc-editor.org/info/rfc9552. | |||
| material or to cite them other than as "work in progress." | ||||
| This Internet-Draft will expire on 26 February 2024. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2023 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 6 | 1.1. Requirements Language | |||
| 2. Motivation and Applicability . . . . . . . . . . . . . . . . 6 | 2. Motivation and Applicability | |||
| 2.1. MPLS-TE with PCE . . . . . . . . . . . . . . . . . . . . 6 | 2.1. MPLS-TE with PCE | |||
| 2.2. ALTO Server Network API . . . . . . . . . . . . . . . . . 7 | 2.2. ALTO Server Network API | |||
| 3. BGP Speaker Roles for BGP-LS . . . . . . . . . . . . . . . . 8 | 3. BGP Speaker Roles for BGP-LS | |||
| 4. Advertising IGP Information into BGP-LS . . . . . . . . . . . 10 | 4. Advertising IGP Information into BGP-LS | |||
| 5. Carrying Link-State Information in BGP . . . . . . . . . . . 10 | 5. Carrying Link-State Information in BGP | |||
| 5.1. TLV Format . . . . . . . . . . . . . . . . . . . . . . . 11 | 5.1. TLV Format | |||
| 5.2. The Link-State NLRI . . . . . . . . . . . . . . . . . . . 12 | 5.2. The Link-State NLRI | |||
| 5.2.1. Node Descriptors . . . . . . . . . . . . . . . . . . 16 | 5.2.1. Node Descriptors | |||
| 5.2.2. Link Descriptors . . . . . . . . . . . . . . . . . . 20 | 5.2.2. Link Descriptors | |||
| 5.2.3. Prefix Descriptors . . . . . . . . . . . . . . . . . 24 | 5.2.3. Prefix Descriptors | |||
| 5.3. The BGP-LS Attribute . . . . . . . . . . . . . . . . . . 26 | 5.3. The BGP-LS Attribute | |||
| 5.3.1. Node Attribute TLVs . . . . . . . . . . . . . . . . . 27 | 5.3.1. Node Attribute TLVs | |||
| 5.3.2. Link Attribute TLVs . . . . . . . . . . . . . . . . . 31 | 5.3.2. Link Attribute TLVs | |||
| 5.3.3. Prefix Attribute TLVs . . . . . . . . . . . . . . . . 36 | 5.3.3. Prefix Attribute TLVs | |||
| 5.4. Private Use . . . . . . . . . . . . . . . . . . . . . . . 41 | 5.4. Private Use | |||
| 5.5. BGP Next-Hop Information . . . . . . . . . . . . . . . . 41 | 5.5. BGP Next-Hop Information | |||
| 5.6. Inter-AS Links . . . . . . . . . . . . . . . . . . . . . 42 | 5.6. Inter-AS Links | |||
| 5.7. OSPF Virtual Links and Sham Links . . . . . . . . . . . . 42 | 5.7. OSPF Virtual Links and Sham Links | |||
| 5.8. OSPFv2 Type 4 Summary LSA & OSPFv3 Inter-Area Router | 5.8. OSPFv2 Type 4 Summary-LSA & OSPFv3 Inter-Area-Router-LSA | |||
| LSA . . . . . . . . . . . . . . . . . . . . . . . . . . 42 | 5.9. Handling of Unreachable IGP Nodes | |||
| 5.9. Handling of Unreachable IGP Nodes . . . . . . . . . . . . 43 | 5.10. Router-ID Anchoring Example: ISO Pseudonode | |||
| 5.10. Router-ID Anchoring Example: ISO Pseudonode . . . . . . . 44 | 5.11. Router-ID Anchoring Example: OSPF Pseudonode | |||
| 5.11. Router-ID Anchoring Example: OSPF Pseudonode . . . . . . 45 | 5.12. Router-ID Anchoring Example: OSPFv2 to IS-IS Migration | |||
| 5.12. Router-ID Anchoring Example: OSPFv2 to IS-IS Migration . 46 | 6. Link to Path Aggregation | |||
| 6. Link to Path Aggregation . . . . . . . . . . . . . . . . . . 47 | 6.1. Example: No Link Aggregation | |||
| 6.1. Example: No Link Aggregation . . . . . . . . . . . . . . 47 | 6.2. Example: ASBR to ASBR Path Aggregation | |||
| 6.2. Example: ASBR to ASBR Path Aggregation . . . . . . . . . 48 | 6.3. Example: Multi-AS Path Aggregation | |||
| 6.3. Example: Multi-AS Path Aggregation . . . . . . . . . . . 48 | 7. IANA Considerations | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 49 | 7.1. BGP-LS Registries | |||
| 7.1. BGP-LS Registries . . . . . . . . . . . . . . . . . . . . 49 | 7.1.1. BGP-LS NLRI Types Registry | |||
| 7.1.1. BGP-LS NLRI Types Registry . . . . . . . . . . . . . 49 | 7.1.2. BGP-LS Protocol-IDs Registry | |||
| 7.1.2. BGP-LS Protocol-IDs Registry . . . . . . . . . . . . 50 | 7.1.3. BGP-LS Well-Known Instance-IDs Registry | |||
| 7.1.3. BGP-LS Well-Known Instance-IDs Registry . . . . . . . 51 | 7.1.4. BGP-LS Node Flags Registry | |||
| 7.1.4. BGP-LS Node Flags Registry . . . . . . . . . . . . . 51 | 7.1.5. BGP-LS MPLS Protocol Mask Registry | |||
| 7.1.5. BGP-LS MPLS Protocol Mask Registry . . . . . . . . . 52 | 7.1.6. BGP-LS IGP Prefix Flags Registry | |||
| 7.1.6. BGP-LS IGP Prefix Flags Registry . . . . . . . . . . 53 | 7.1.7. BGP-LS TLVs Registry | |||
| 7.1.7. BGP-LS TLVs Registry . . . . . . . . . . . . . . . . 53 | 7.2. Guidance for Designated Experts | |||
| 7.2. Guidance for Designated Experts . . . . . . . . . . . . . 54 | 8. Manageability Considerations | |||
| 8. Manageability Considerations . . . . . . . . . . . . . . . . 55 | 8.1. Operational Considerations | |||
| 8.1. Operational Considerations . . . . . . . . . . . . . . . 55 | 8.1.1. Operations | |||
| 8.1.1. Operations . . . . . . . . . . . . . . . . . . . . . 55 | 8.1.2. Installation and Initial Setup | |||
| 8.1.2. Installation and Initial Setup . . . . . . . . . . . 56 | 8.1.3. Migration Path | |||
| 8.1.3. Migration Path . . . . . . . . . . . . . . . . . . . 56 | ||||
| 8.1.4. Requirements for Other Protocols and Functional | 8.1.4. Requirements for Other Protocols and Functional | |||
| Components . . . . . . . . . . . . . . . . . . . . . 56 | Components | |||
| 8.1.5. Impact on Network Operation . . . . . . . . . . . . . 56 | 8.1.5. Impact on Network Operation | |||
| 8.1.6. Verifying Correct Operation . . . . . . . . . . . . . 57 | 8.1.6. Verifying Correct Operation | |||
| 8.2. Management Considerations . . . . . . . . . . . . . . . . 57 | 8.2. Management Considerations | |||
| 8.2.1. Management Information . . . . . . . . . . . . . . . 57 | 8.2.1. Management Information | |||
| 8.2.2. Fault Management . . . . . . . . . . . . . . . . . . 57 | 8.2.2. Fault Management | |||
| 8.2.3. Configuration Management . . . . . . . . . . . . . . 59 | 8.2.3. Configuration Management | |||
| 8.2.4. Accounting Management . . . . . . . . . . . . . . . . 60 | 8.2.4. Accounting Management | |||
| 8.2.5. Performance Management . . . . . . . . . . . . . . . 60 | 8.2.5. Performance Management | |||
| 8.2.6. Security Management . . . . . . . . . . . . . . . . . 60 | 8.2.6. Security Management | |||
| 9. TLV/Sub-TLV Code Points Summary . . . . . . . . . . . . . . . 61 | 9. TLV/Sub-TLV Code Points Summary | |||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 63 | 10. Security Considerations | |||
| 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 64 | 11. References | |||
| 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 64 | 11.1. Normative References | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 65 | 11.2. Informative References | |||
| 13.1. Normative References . . . . . . . . . . . . . . . . . . 65 | Appendix A. Changes from RFC 7752 | |||
| 13.2. Informative References . . . . . . . . . . . . . . . . . 68 | Acknowledgements | |||
| Appendix A. Changes from RFC 7752 . . . . . . . . . . . . . . . 70 | Contributors | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 72 | Author's Address | |||
| 1. Introduction | 1. Introduction | |||
| The contents of a Link-State Database (LSDB) or of an IGP's Traffic | The contents of a Link-State Database (LSDB) or of an IGP's Traffic | |||
| Engineering Database (TED) describe only the links and nodes within | Engineering Database (TED) describe only the links and nodes within | |||
| an IGP area. Some applications, such as end-to-end Traffic | an IGP area. Some applications, such as end-to-end Traffic | |||
| Engineering (TE), would benefit from visibility outside one area or | Engineering (TE), would benefit from visibility outside one area or | |||
| Autonomous System (AS) to make better decisions. | Autonomous System (AS) to make better decisions. | |||
| The IETF has defined the Path Computation Element (PCE) [RFC4655] as | The IETF has defined the Path Computation Element (PCE) [RFC4655] as | |||
| a mechanism for achieving the computation of end-to-end TE paths that | a mechanism for achieving the computation of end-to-end TE paths that | |||
| cross the visibility of more than one TED or that requires CPU- | crosses the visibility of more than one TED or that requires CPU- | |||
| intensive or coordinated computations. The IETF has also defined the | intensive or coordinated computations. The IETF has also defined the | |||
| ALTO server [RFC5693] as an entity that generates an abstracted | ALTO server [RFC5693] as an entity that generates an abstracted | |||
| network topology and provides it to network-aware applications. | network topology and provides it to network-aware applications. | |||
| Both a PCE and an ALTO server need to gather information about the | Both a PCE and an ALTO server need to gather information about the | |||
| topologies and capabilities of the network to be able to fulfill | topologies and capabilities of the network to be able to fulfill | |||
| their function. | their function. | |||
| This document describes a mechanism by which link-state and TE | This document describes a mechanism by which link-state and TE | |||
| information can be collected from networks and shared with external | information can be collected from networks and shared with external | |||
| skipping to change at page 4, line 26 ¶ | skipping to change at line 163 ¶ | |||
| encoding format. The mechanism applies to physical and virtual | encoding format. The mechanism applies to physical and virtual | |||
| (e.g., tunnel) links. The mechanism described is subject to policy | (e.g., tunnel) links. The mechanism described is subject to policy | |||
| control. | control. | |||
| A router maintains one or more databases for storing link-state | A router maintains one or more databases for storing link-state | |||
| information about nodes and links in any given area. Link attributes | information about nodes and links in any given area. Link attributes | |||
| stored in these databases include: local/remote IP addresses, local/ | stored in these databases include: local/remote IP addresses, local/ | |||
| remote interface identifiers, link IGP metric, link TE metric, link | remote interface identifiers, link IGP metric, link TE metric, link | |||
| bandwidth, reservable bandwidth, per Class-of-Service (CoS) class | bandwidth, reservable bandwidth, per Class-of-Service (CoS) class | |||
| reservation state, preemption, and Shared Risk Link Groups (SRLGs). | reservation state, preemption, and Shared Risk Link Groups (SRLGs). | |||
| The router's BGP Link-State (BGP-LS) process can retrieve topology | The router's BGP - Link State (BGP-LS) process can retrieve topology | |||
| from these LSDBs and distribute it to a consumer, either directly or | from these LSDBs and distribute it to a consumer, either directly or | |||
| via a peer BGP speaker (typically a dedicated Route Reflector), using | via a peer BGP Speaker (typically a dedicated route reflector), using | |||
| the encoding specified in this document. | the encoding specified in this document. | |||
| An illustration of the collection of link-state and TE information | An illustration of the collection of link-state and TE information | |||
| and its distribution to consumers is shown in Figure 1 below. | and its distribution to consumers is shown in Figure 1 below. | |||
| +-----------+ | +-----------+ | |||
| | Consumer | | | Consumer | | |||
| +-----------+ | +-----------+ | |||
| ^ | ^ | |||
| | | | | |||
| skipping to change at page 5, line 30 ¶ | skipping to change at line 196 ¶ | |||
| | BGP | | BGP | | BGP | | | BGP | | BGP | | BGP | | |||
| | Speaker | | Speaker | . . . | Speaker | | | Speaker | | Speaker | . . . | Speaker | | |||
| | R1 | | R2 | | Rn | | | R1 | | R2 | | Rn | | |||
| +-----------+ +-----------+ +-----------+ | +-----------+ +-----------+ +-----------+ | |||
| ^ ^ ^ | ^ ^ ^ | |||
| | | | | | | | | |||
| IGP IGP IGP | IGP IGP IGP | |||
| Figure 1: Collection of Link-State and TE Information | Figure 1: Collection of Link-State and TE Information | |||
| A BGP speaker may apply a configurable policy to the information that | A BGP Speaker may apply a configurable policy to the information that | |||
| it distributes. Thus, it may distribute the real physical topology | it distributes. Thus, it may distribute the real physical topology | |||
| from the LSDB or the TED. Alternatively, it may create an abstracted | from the LSDB or the TED. Alternatively, it may create an abstracted | |||
| topology, where virtual, aggregated nodes are connected by virtual | topology, where virtual, aggregated nodes are connected by virtual | |||
| paths. Aggregated nodes can be created, for example, out of multiple | paths. Aggregated nodes can be created, for example, out of multiple | |||
| routers in a Point of Presence (POP). Abstracted topology can also | routers in a Point of Presence (POP). Abstracted topology can also | |||
| be a mix of physical and virtual nodes and physical and virtual | be a mix of physical and virtual nodes and physical and virtual | |||
| links. Furthermore, the BGP speaker can apply policy to determine | links. Furthermore, the BGP Speaker can apply policy to determine | |||
| when information is updated to the consumer so that there is a | when information is updated to the consumer so that there is a | |||
| reduction in information flow from the network to the consumers. | reduction in information flow from the network to the consumers. | |||
| Mechanisms through which topologies can be aggregated or virtualized | Mechanisms through which topologies can be aggregated or virtualized | |||
| are outside the scope of this document. | are outside the scope of this document. | |||
| This document focuses on the specifications related to the | This document focuses on the specifications related to the | |||
| origination of IGP-derived information and their propagation via BGP- | origination of IGP-derived information and their propagation via BGP- | |||
| LS. It also describes the advertisement into BGP-LS of information, | LS. It also describes the advertisement into BGP-LS of information, | |||
| either configured or derived, that is local to a node. In general, | either configured or derived, that is local to a node. In general, | |||
| the procedures in this document form part of the base BGP-LS protocol | the procedures in this document form part of the base BGP-LS protocol | |||
| skipping to change at page 6, line 13 ¶ | skipping to change at line 225 ¶ | |||
| introduced into BGP-LS. | introduced into BGP-LS. | |||
| This document obsoletes [RFC7752] by completely replacing that | This document obsoletes [RFC7752] by completely replacing that | |||
| document. It makes some small changes and clarifications to the | document. It makes some small changes and clarifications to the | |||
| previous specification as documented in Appendix A. | previous specification as documented in Appendix A. | |||
| 1.1. Requirements Language | 1.1. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2. Motivation and Applicability | 2. Motivation and Applicability | |||
| This section describes use cases from which the requirements can be | This section describes use cases from which the requirements can be | |||
| derived. | derived. | |||
| 2.1. MPLS-TE with PCE | 2.1. MPLS-TE with PCE | |||
| As described in [RFC4655], a PCE can be used to compute MPLS-TE paths | As described in [RFC4655], a PCE can be used to compute MPLS-TE paths | |||
| skipping to change at page 6, line 44 ¶ | skipping to change at line 256 ¶ | |||
| then its own TED lacks visibility of the complete topology. That | then its own TED lacks visibility of the complete topology. That | |||
| means that the router cannot determine the end-to-end path and | means that the router cannot determine the end-to-end path and | |||
| cannot even select the right exit router (Area Border Router | cannot even select the right exit router (Area Border Router | |||
| (ABR)) for an optimal path. This is an issue for large-scale | (ABR)) for an optimal path. This is an issue for large-scale | |||
| networks that need to segment their core networks into distinct | networks that need to segment their core networks into distinct | |||
| areas but still want to take advantage of MPLS-TE. | areas but still want to take advantage of MPLS-TE. | |||
| Previous solutions used per-domain path computation [RFC5152]. The | Previous solutions used per-domain path computation [RFC5152]. The | |||
| source router could only compute the path for the first area because | source router could only compute the path for the first area because | |||
| the router only has full topological visibility for the first area | the router only has full topological visibility for the first area | |||
| along the path, but not for subsequent areas. Per-domain path | along the path but not for subsequent areas. Per-domain path | |||
| computation uses a technique called "loose-hop-expansion" [RFC3209] | computation selects the exit ABR and other ABRs or AS Border Routers | |||
| and selects the exit ABR and other ABRs or AS Border Routers (ASBRs) | (ASBRs) as loose-hops [RFC3209] and using the IGP-computed shortest | |||
| using the IGP-computed shortest path topology for the remainder of | path topology for the remainder of the path. This may lead to | |||
| the path. This may lead to suboptimal paths, makes alternate/back-up | suboptimal paths, makes alternate/back-up path computation hard, and | |||
| path computation hard, and might result in no TE path being found | might result in no TE path being found when one does exist. | |||
| when one does exist. | ||||
| The PCE presents a computation server that may have visibility into | The PCE presents a computation server that may have visibility into | |||
| more than one IGP area or AS, or may cooperate with other PCEs to | more than one IGP area or AS or may cooperate with other PCEs to | |||
| perform distributed path computation. The PCE needs access to the | perform distributed path computation. The PCE needs access to the | |||
| TED for the area(s) it serves, but [RFC4655] does not describe how | TED for the area(s) it serves, but [RFC4655] does not describe how | |||
| this is achieved. Many implementations make the PCE a passive | this is achieved. Many implementations make the PCE a passive | |||
| participant in the IGP so that it can learn the latest state of the | participant in the IGP so that it can learn the latest state of the | |||
| network, but this may be sub-optimal when the network is subject to a | network, but this may be suboptimal when the network is subject to a | |||
| high degree of churn or when the PCE is responsible for multiple | high degree of churn or when the PCE is responsible for multiple | |||
| areas. | areas. | |||
| The following figure shows how a PCE can get its TED information | The following figure shows how a PCE can get its TED information | |||
| using the mechanism described in this document. | using the mechanism described in this document. | |||
| +----------+ +---------+ | +----------+ +---------+ | |||
| | ----- | | BGP | | | ----- | | BGP | | |||
| | | TED |<-+-------------------------->| Speaker | | | | TED |<-+-------------------------->| Speaker | | |||
| | ----- | TED synchronization | | | | ----- | TED synchronization | | | |||
| skipping to change at page 7, line 52 ¶ | skipping to change at line 310 ¶ | |||
| to configurable policy, and distributed to the PCE as necessary. | to configurable policy, and distributed to the PCE as necessary. | |||
| 2.2. ALTO Server Network API | 2.2. ALTO Server Network API | |||
| An ALTO server [RFC5693] is an entity that generates an abstracted | An ALTO server [RFC5693] is an entity that generates an abstracted | |||
| network topology and provides it to network-aware applications over a | network topology and provides it to network-aware applications over a | |||
| web-service-based API. Example applications are peer-to-peer (P2P) | web-service-based API. Example applications are peer-to-peer (P2P) | |||
| clients or trackers, or Content Distribution Networks (CDNs). The | clients or trackers, or Content Distribution Networks (CDNs). The | |||
| abstracted network topology comes in the form of two maps: a Network | abstracted network topology comes in the form of two maps: a Network | |||
| Map that specifies the allocation of prefixes to Partition | Map that specifies the allocation of prefixes to Partition | |||
| Identifiers (PIDs), and a Cost Map that specifies the cost between | Identifiers (PIDs) and a Cost Map that specifies the cost between | |||
| PIDs listed in the Network Map. For more details, see [RFC7285]. | PIDs listed in the Network Map. For more details, see [RFC7285]. | |||
| ALTO abstract network topologies can be auto-generated from the | ALTO abstract network topologies can be auto-generated from the | |||
| physical topology of the underlying network. The generation would | physical topology of the underlying network. The generation would | |||
| typically be based on policies and rules set by the operator. Both | typically be based on policies and rules set by the operator. Both | |||
| prefix and TE data are required: prefix data is required to generate | prefix and TE data are required: prefix data is required to generate | |||
| ALTO Network Maps and TE (topology) data is required to generate ALTO | ALTO Network Maps and TE (topology) data is required to generate ALTO | |||
| Cost Maps. Prefix data is carried and originated in BGP, and TE data | Cost Maps. Prefix data is carried and originated in BGP, and TE data | |||
| is originated and carried in an IGP. The mechanism defined in this | is originated and carried in an IGP. The mechanism defined in this | |||
| document provides a single interface through which an ALTO server can | document provides a single interface through which an ALTO server can | |||
| retrieve all the necessary prefixes and network topology data from | retrieve all the necessary prefixes and network topology data from | |||
| the underlying network. Note that an ALTO server can use other | the underlying network. Note that an ALTO server can use other | |||
| mechanisms to get network data, for example, peering with multiple | mechanisms to get network data, for example, peering with multiple | |||
| IGP and BGP speakers. | IGP and BGP Speakers. | |||
| The following figure shows how an ALTO server can get network | The following figure shows how an ALTO server can get network | |||
| topology information from the underlying network using the mechanism | topology information from the underlying network using the mechanism | |||
| described in this document. | described in this document. | |||
| +--------+ | +--------+ | |||
| | Client |<--+ | | Client |<--+ | |||
| +--------+ | | +--------+ | | |||
| | ALTO +--------+ Topology +---------+ | | ALTO +--------+ Topology +---------+ | |||
| +--------+ | Protocol | ALTO | Sync Mechanism | BGP | | +--------+ | Protocol | ALTO | Sync Mechanism | BGP | | |||
| skipping to change at page 8, line 39 ¶ | skipping to change at line 346 ¶ | |||
| +--------+ | | | | | | +--------+ | | | | | | |||
| | +--------+ +---------+ | | +--------+ +---------+ | |||
| +--------+ | | +--------+ | | |||
| | Client |<--+ | | Client |<--+ | |||
| +--------+ | +--------+ | |||
| Figure 3: ALTO Server Using Network Topology Information | Figure 3: ALTO Server Using Network Topology Information | |||
| 3. BGP Speaker Roles for BGP-LS | 3. BGP Speaker Roles for BGP-LS | |||
| In the illustration shown in Figure 1, the BGP Speakers can be seen | In Figure 1, the BGP Speakers can be seen playing different roles in | |||
| playing different roles in the distribution of information using BGP- | the distribution of information using BGP-LS. This section | |||
| LS. This section introduces terms that explain the different roles | introduces terms that explain the different roles of the BGP Speakers | |||
| of the BGP Speakers which are then used through the rest of this | that are then used throughout the rest of this document. | |||
| document. | ||||
| * BGP-LS Producer: The term BGP-LS Producer refers to a BGP Speaker | BGP-LS Producer: The term BGP-LS Producer refers to a BGP Speaker | |||
| that is originating link-state information into BGP. The BGP | that is originating link-state information into BGP. BGP Speakers | |||
| Speakers R1, R2, ... Rn, originate link-state information from | R1, R2, ... Rn originate link-state information from their | |||
| their underlying link-state IGP protocols into BGP-LS. If R1 and | underlying link-state IGP protocols into BGP-LS. If R1 and R2 are | |||
| R2 are in the same IGP flooding domain, then they would ordinarily | in the same IGP flooding domain, then they would ordinarily | |||
| originate the same link-state information into BGP-LS. R1 may | originate the same link-state information into BGP-LS. R1 may | |||
| also originate information from sources other than IGP, e.g. its | also originate information from sources other than IGP, e.g., its | |||
| local node information. | local node information. | |||
| * BGP-LS Consumer: The term BGP-LS Consumer refers to a consumer | BGP-LS Consumer: The term BGP-LS Consumer refers to a consumer | |||
| application/process and not a BGP Speaker. The BGP Speakers RR1 | application/process and not a BGP Speaker. BGP Speakers RR1 and | |||
| and Rn are handing off the BGP-LS information that they have | Rn are handing off the BGP-LS information that they have collected | |||
| collected to a consumer application. The BGP protocol | to a consumer application. The BGP protocol implementation and | |||
| implementation and the consumer application may be on the same or | the consumer application may be on the same or different nodes. | |||
| different nodes. This document only covers the BGP | This document only covers the BGP implementation. The consumer | |||
| implementation. The consumer application and the design of the | application and the design of the interface between BGP and the | |||
| interface between BGP and the consumer application may be | consumer application may be implementation specific and are | |||
| implementation specific and are outside the scope of this | outside the scope of this document. The communication of | |||
| document. The communication of information MUST be unidirectional | information MUST be unidirectional (i.e., from a BGP Speaker to | |||
| (i.e., from a BGP Speaker to the BGP-LS Consumer application) and | the BGP-LS Consumer application), and a BGP-LS Consumer MUST NOT | |||
| a BGP-LS Consumer MUST NOT be able to send information to a BGP | be able to send information to a BGP Speaker for origination into | |||
| Speaker for origination into BGP-LS. | BGP-LS. | |||
| * BGP-LS Propagator: The term BGP-LS Propagator refers to a BGP | BGP-LS Propagator: The term BGP-LS Propagator refers to a BGP | |||
| Speaker that is performing BGP protocol processing on the link- | Speaker that is performing BGP protocol processing on the link- | |||
| state information. The BGP Speaker RRm propagates the BGP-LS | state information. BGP Speaker RRm propagates the BGP-LS | |||
| information between the BGP Speaker Rn and the BGP Speaker RR1. | information between BGP Speaker Rn and BGP Speaker RR1. The BGP | |||
| The BGP implementation on RRm is propagating BGP-LS information. | implementation on RRm is propagating BGP-LS information. It | |||
| It performs handling of BGP-LS UPDATE messages and performs the | performs handling of BGP-LS UPDATE messages and performs the BGP | |||
| BGP Decision Process as part of deciding what information is to be | Decision Process as part of deciding what information is to be | |||
| propagated. Similarly, the BGP Speaker RR1 is receiving BGP-LS | propagated. Similarly, BGP Speaker RR1 is receiving BGP-LS | |||
| information from R1, R2, and RRm and propagating the information | information from R1, R2, and RRm and propagating the information | |||
| to the BGP-LS Consumer after performing BGP Decision Process. | to the BGP-LS Consumer after performing BGP Decision Process. | |||
| The above roles are not mutually exclusive. The same BGP Speaker may | The above roles are not mutually exclusive. The same BGP Speaker may | |||
| be the BGP-LS Producer for some link-state information and BGP-LS | be the BGP-LS Producer for some link-state information and BGP-LS | |||
| Propagator for some other link-state information while also providing | Propagator for some other link-state information while also providing | |||
| this information to a BGP-LS Consumer. | this information to a BGP-LS Consumer. | |||
| The rest of this document refers to the role when describing | The rest of this document refers to the role when describing | |||
| procedures that are specific to that role. When the role is not | procedures that are specific to that role. When the role is not | |||
| specified, then the said procedure applies to all BGP Speakers. | specified, then the said procedure applies to all BGP Speakers. | |||
| 4. Advertising IGP Information into BGP-LS | 4. Advertising IGP Information into BGP-LS | |||
| The origination and propagation of IGP link-state information via BGP | The origination and propagation of IGP link-state information via BGP | |||
| needs to provide a consistent and accurate view of the topology of | needs to provide a consistent and accurate view of the topology of | |||
| the IGP domain. BGP-LS provides an abstraction of the IGP specifics | the IGP domain. BGP-LS provides an abstraction of the IGP specifics, | |||
| and BGP-LS Consumers may be varied types of applications. | and BGP-LS Consumers may be varied types of applications. | |||
| The link-state information advertised in BGP-LS from the IGPs is | The link-state information advertised in BGP-LS from the IGPs is | |||
| derived from the IGP LSDB built using the OSPF Link State | derived from the IGP LSDB built using the OSPF Link-State | |||
| Advertisements (LSAs) or the IS-IS Link State Packets (LSPs). | Advertisements (LSAs) or the IS-IS Link-State Packets (LSPs). | |||
| However, it does not serve as a verbatim reflection of the | However, it does not serve as a verbatim reflection of the | |||
| originating router's LSDB. It does not include the LSA/LSP sequence | originating router's LSDB. It does not include the LSA/LSP sequence | |||
| number information since a single link-state object may be put | number information since a single link-state object may be put | |||
| together with information that is coming from multiple LSAs/LSPs. | together with information that is coming from multiple LSAs/LSPs. | |||
| Also, not all of the information carried in LSAs/LSPs may be required | Also, not all of the information carried in LSAs/LSPs may be required | |||
| or suitable for advertisement via BGP-LS (e.g., ASBR reachability in | or suitable for advertisement via BGP-LS (e.g., ASBR reachability in | |||
| OSPF, OSPF virtual links, link-local scoped information, etc.). The | OSPF, OSPF virtual links, link-local-scoped information, etc.). The | |||
| LSAs/LSPs that are purged or max-aged are not included in the BGP-LS | LSAs/LSPs that are purged or aged out are not included in the BGP-LS | |||
| advertisement even though they may be present in the LSDB (e.g., for | advertisement even though they may be present in the LSDB (e.g., for | |||
| the IGP flooding purposes). The information from the LSAs/LSPs that | the IGP flooding purposes). The information from the LSAs/LSPs that | |||
| is invalid or malformed or that which needs to be ignored per the | is invalid or malformed or that which needs to be ignored per the | |||
| respective IGP protocol specifications are also not included in the | respective IGP protocol specifications are also not included in the | |||
| BGP-LS advertisement. | BGP-LS advertisement. | |||
| The details of the interface between IGPs and BGP for the | The details of the interface between IGPs and BGP for the | |||
| advertisement of link-state information are outside the scope of this | advertisement of link-state information are outside the scope of this | |||
| document. In some cases, the information derived from IGP processing | document. In some cases, the information derived from IGP processing | |||
| (e.g., combination of link-state object from across multiple LSAs/ | (e.g., combination of link-state object from across multiple LSAs/ | |||
| LSPs, leveraging reachability and two-way connectivity checks, etc.) | LSPs, leveraging reachability and two-way connectivity checks, etc.) | |||
| is required for advertisement of link-state information into BGP-LS. | is required for the advertisement of link-state information into BGP- | |||
| LS. | ||||
| 5. Carrying Link-State Information in BGP | 5. Carrying Link-State Information in BGP | |||
| The link-state information is carried in BGP UPDATE messages as: (1) | The link-state information is carried in BGP UPDATE messages as: (1) | |||
| BGP NLRI information carried within MP_REACH_NLRI and MP_UNREACH_NLRI | BGP NLRI information carried within MP_REACH_NLRI and MP_UNREACH_NLRI | |||
| attributes that describes link, node, or prefix object, and (2) a BGP | attributes that describes link, node, or prefix objects and (2) a BGP | |||
| path attribute (BGP-LS Attribute) that carries properties of the | path attribute (BGP-LS Attribute) that carries properties of the | |||
| link, node, or prefix objects such as the link and prefix metric or | link, node, or prefix objects such as the link and prefix metric, | |||
| auxiliary Router-IDs of nodes, etc. | auxiliary Router-IDs of nodes, etc. | |||
| It is desirable to keep the dependencies on the protocol source of | It is desirable to keep the dependencies on the protocol source of | |||
| this attribute to a minimum and represent any content in an IGP- | this attribute to a minimum and represent any content in an IGP- | |||
| neutral way, such that applications that want to learn about a link- | neutral way, such that applications that want to learn about a link- | |||
| state topology do not need to know about any OSPF or IS-IS protocol | state topology do not need to know about any OSPF or IS-IS protocol | |||
| specifics. | specifics. | |||
| This section mainly describes the procedures for a BGP-LS Producer to | This section mainly describes the procedures for a BGP-LS Producer to | |||
| originate link-state information into BGP-LS. | originate link-state information into BGP-LS. | |||
| skipping to change at page 11, line 29 ¶ | skipping to change at line 468 ¶ | |||
| Figure 4: TLV Format | Figure 4: TLV Format | |||
| The Length field defines the length of the value portion in octets | The Length field defines the length of the value portion in octets | |||
| (thus, a TLV with no value portion would have a length of zero). The | (thus, a TLV with no value portion would have a length of zero). The | |||
| TLV is not padded to 4-octet alignment. Unknown and unsupported | TLV is not padded to 4-octet alignment. Unknown and unsupported | |||
| types MUST be preserved and propagated within both the NLRI and the | types MUST be preserved and propagated within both the NLRI and the | |||
| BGP-LS Attribute. The presence of unknown or unexpected TLVs MUST | BGP-LS Attribute. The presence of unknown or unexpected TLVs MUST | |||
| NOT result in the NLRI or the BGP-LS Attribute being considered | NOT result in the NLRI or the BGP-LS Attribute being considered | |||
| malformed. An example of an unexpected TLV is when a TLV is received | malformed. An example of an unexpected TLV is when a TLV is received | |||
| along with an update for a link state object other than the one that | along with an update for a link-state object other than the one that | |||
| the TLV is specified as associated with. | the TLV is specified as associated with. | |||
| To compare NLRIs with unknown TLVs, all TLVs within the NLRI MUST be | To compare NLRIs with unknown TLVs, all TLVs within the NLRI MUST be | |||
| ordered in ascending order by TLV Type. If there are multiple TLVs | ordered in ascending order by TLV Type. If there are multiple TLVs | |||
| of the same type within a single NLRI, then the TLVs sharing the same | of the same type within a single NLRI, then the TLVs sharing the same | |||
| type MUST be first in ascending order based on the length field | type MUST be first in ascending order based on the Length field | |||
| followed by ascending order based on the value field. Comparison of | followed by ascending order based on the Value field. Comparison of | |||
| the value fields is performed by treating the entire field as opaque | the Value fields is performed by treating the entire field as opaque | |||
| binary data and ordered lexicographically (i.e., treating each byte | binary data and ordered lexicographically (i.e., treating each byte | |||
| of binary data as a symbol to compare, with the symbols ordered by | of binary data as a symbol to compare, with the symbols ordered by | |||
| their numerical value). NLRIs having TLVs which do not follow the | their numerical value). NLRIs having TLVs that do not follow the | |||
| above ordering rules MUST be considered as malformed by a BGP-LS | above ordering rules MUST be considered as malformed by a BGP-LS | |||
| Propagator. This insistence on canonical ordering ensures that | Propagator. This insistence on canonical ordering ensures that | |||
| multiple variant copies of the same NLRI from multiple BGP-LS | multiple variant copies of the same NLRI from multiple BGP-LS | |||
| Producers and the ambiguity arising therefrom is prevented. | Producers and the ambiguity arising therefrom is prevented. | |||
| For both the NLRI and BGP-LS Attribute parts, all TLVs are considered | For both the NLRI and BGP-LS Attribute parts, all TLVs are considered | |||
| as optional except where explicitly specified as mandatory or | as optional except where explicitly specified as mandatory or | |||
| required in specific conditions. | required in specific conditions. | |||
| The TLVs within the BGP-LS Attribute SHOULD be ordered in ascending | The TLVs within the BGP-LS Attribute SHOULD be ordered in ascending | |||
| order by TLV type. BGP-LS Attribute with unordered TLVs MUST NOT be | order by TLV type. The BGP-LS Attribute with unordered TLVs MUST NOT | |||
| considered malformed. | be considered malformed. | |||
| The origination of the same link-state information by multiple BGP-LS | The origination of the same link-state information by multiple BGP-LS | |||
| Producers may result in differences and inconsistencies due to the | Producers may result in differences and inconsistencies due to the | |||
| inclusion or exclusion of optional TLVs. Different optional TLVs in | inclusion or exclusion of optional TLVs. Different optional TLVs in | |||
| the NLRI results in multiple NLRIs being generated for the same link- | the NLRI results in multiple NLRIs being generated for the same link- | |||
| state object. Different optional TLVs in the BGP-LS Attribute may | state object. Different optional TLVs in the BGP-LS Attribute may | |||
| result in the propagation of partial information. To address these | result in the propagation of partial information. To address these | |||
| inconsistencies, the BGP-LS Consumer will need to recognize and merge | inconsistencies, the BGP-LS Consumer will need to recognize and merge | |||
| the duplicate information, or to deal with missing information. The | the duplicate information or deal with missing information. The | |||
| deployment of BGP-LS Producers that consistently originate the same | deployment of BGP-LS Producers that consistently originate the same | |||
| set of optional TLVs is recommended to mitigate such situations. | set of optional TLVs is recommended to mitigate such situations. | |||
| 5.2. The Link-State NLRI | 5.2. The Link-State NLRI | |||
| The MP_REACH_NLRI and MP_UNREACH_NLRI attributes are BGP's containers | The MP_REACH_NLRI and MP_UNREACH_NLRI attributes are BGP's containers | |||
| for carrying opaque information. This specification defines three | for carrying opaque information. This specification defines three | |||
| Link-State NLRI types that describe either a node, a link, or a | Link-State NLRI types that describe either a node, a link, or a | |||
| prefix. | prefix. | |||
| All non-VPN link, node, and prefix information SHALL be encoded using | All non-VPN link, node, and prefix information SHALL be encoded using | |||
| AFI 16388 / SAFI 71. VPN link, node, and prefix information SHALL be | AFI 16388 / SAFI 71. VPN link, node, and prefix information SHALL be | |||
| encoded using AFI 16388 / SAFI 72. | encoded using AFI 16388 / SAFI 72. | |||
| For two BGP speakers to exchange Link-State NLRI, they MUST use BGP | For two BGP Speakers to exchange Link-State NLRI, they MUST use BGP | |||
| Capabilities Advertisement to ensure that they are both capable of | Capabilities Advertisement to ensure that they are both capable of | |||
| properly processing such NLRI. This is done as specified in | properly processing such NLRI. This is done as specified in | |||
| [RFC4760], by using capability code 1 (multiprotocol BGP), with AFI | [RFC4760] by using capability code 1 (multiprotocol BGP), with AFI | |||
| 16388 / SAFI 71 for BGP-LS, and AFI 16388 / SAFI 72 for BGP-LS-VPN. | 16388 / SAFI 71 for BGP-LS and AFI 16388 / SAFI 72 for BGP-LS-VPN. | |||
| New Link-State NLRI Types may be introduced in the future. Since | New Link-State NLRI types may be introduced in the future. Since | |||
| supported NLRI type values within the address family are not | supported NLRI type values within the address family are not | |||
| expressed in the Multiprotocol BGP (MP-BGP) capability [RFC4760], it | expressed in the Multiprotocol BGP (MP-BGP) capability [RFC4760], it | |||
| is possible that a BGP speaker has advertised support for BGP-LS but | is possible that a BGP Speaker has advertised support for BGP-LS but | |||
| does not support a particular Link-State NLRI type. To allow the | does not support a particular Link-State NLRI type. To allow the | |||
| introduction of new Link-State NLRI types seamlessly in the future, | introduction of new Link-State NLRI types seamlessly in the future | |||
| without the need for upgrading all BGP speakers in the propagation | without the need for upgrading all BGP Speakers in the propagation | |||
| path (e.g., a route reflector), this document deviates from the | path (e.g., a route reflector), this document deviates from the | |||
| default handling behavior specified by section 5.4 (paragraph 2) of | default handling behavior specified by Section 5.4 (paragraph 2) of | |||
| [RFC7606] for Link-State address-family. An implementation MUST | [RFC7606] for Link-State address family. An implementation MUST | |||
| handle unknown Link-State NLRI types as opaque objects and MUST | handle unknown Link-State NLRI types as opaque objects and MUST | |||
| preserve and propagate them. | preserve and propagate them. | |||
| The format of the Link-State NLRI is shown in the following figures. | The format of the Link-State NLRI is shown in the following figures. | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | NLRI Type | Total NLRI Length | | | NLRI Type | Total NLRI Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 14, line 42 ¶ | skipping to change at line 622 ¶ | |||
| // Local Node Descriptors TLV (variable) // | // Local Node Descriptors TLV (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Remote Node Descriptors TLV (variable) // | // Remote Node Descriptors TLV (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Link Descriptors TLVs (variable) // | // Link Descriptors TLVs (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 8: The Link NLRI Format | Figure 8: The Link NLRI Format | |||
| The IPv4 and IPv6 Prefix NLRIs (NLRI Type = 3 and Type = 4) use the | The IPv4 and IPv6 Prefix NLRIs (NLRI Type = 3 and Type = 4) use the | |||
| same format, as shown in the following figure. | same format as shown in the following figure. | |||
| 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 | | |||
| + (8 octets) + | + (8 octets) + | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 16, line 18 ¶ | skipping to change at line 686 ¶ | |||
| same IGP routing instance should have the same BGP-LS Instance-ID. | same IGP routing instance should have the same BGP-LS Instance-ID. | |||
| NLRIs with different BGP-LS Instance-IDs are considered to be from | NLRIs with different BGP-LS Instance-IDs are considered to be from | |||
| different IGP routing instances. | different IGP routing instances. | |||
| To support multiple IGP instances, an implementation needs to support | To support multiple IGP instances, an implementation needs to support | |||
| the configuration of unique BGP-LS Instance-IDs at the routing | the configuration of unique BGP-LS Instance-IDs at the routing | |||
| protocol instance level. The BGP-LS Instance-ID 0 is RECOMMENDED to | protocol instance level. The BGP-LS Instance-ID 0 is RECOMMENDED to | |||
| be used when there is only a single protocol instance in the network | be used when there is only a single protocol instance in the network | |||
| where BGP-LS is operational. The network operator MUST assign the | where BGP-LS is operational. The network operator MUST assign the | |||
| same BGP-LS Instance-IDs on all BGP-LS Producers within a given IGP | same BGP-LS Instance-IDs on all BGP-LS Producers within a given IGP | |||
| domain. Unique BGP-LS Instance-ID MUST be assigned to routing | domain. Unique BGP-LS Instance-IDs MUST be assigned to routing | |||
| protocol instances operating in different IGP domains. This can | protocol instances operating in different IGP domains. This can | |||
| allow the BGP-LS Consumer to build an accurate segregated multi- | allow the BGP-LS Consumer to build an accurate segregated multi- | |||
| domain topology based on the BGP-LS Instance-ID. | domain topology based on the BGP-LS Instance-ID. | |||
| When the above-described semantics and recommendations are not | When the above-described semantics and recommendations are not | |||
| followed, a BGP-LS Consumer may see more than one link-state objects | followed, a BGP-LS Consumer may see more than one link-state object | |||
| for the same node, link, or prefix (each with a different BGP-LS | for the same node, link, or prefix (each with a different BGP-LS | |||
| Instance-ID) when there are multiple BGP-LS Producers deployed. This | Instance-ID) when there are multiple BGP-LS Producers deployed. This | |||
| may also result in the BGP-LS Consumers getting an inaccurate | may also result in the BGP-LS Consumers getting an inaccurate | |||
| network-wide topology. | network-wide topology. | |||
| Each Node Descriptor, Link Descriptor, and Prefix Descriptor consists | Each Node Descriptor, Link Descriptor, and Prefix Descriptor consists | |||
| of one or more TLVs, as described in the following sections. These | of one or more TLVs, as described in the following sections. These | |||
| Descriptor TLVs are applicable for the Node, Link, and Prefix NLRI | Descriptor TLVs are applicable for the Node, Link, and Prefix NLRI | |||
| Types for the protocols that are listed in Table 2. Documents | Types for the protocols that are listed in Table 2. Documents | |||
| extending BGP-LS specifications with new NLRI Types and/or protocols | extending BGP-LS specifications with new NLRI Types and/or protocols | |||
| MUST specify the NLRI Descriptors for them. | MUST specify the NLRI descriptors for them. | |||
| When adding, removing, or modifying a TLV/sub-TLV from a Link-State | When adding, removing, or modifying a TLV/sub-TLV from a Link-State | |||
| NLRI, the BGP-LS Producer MUST withdraw the old NLRI by including it | NLRI, the BGP-LS Producer MUST withdraw the old NLRI by including it | |||
| in the MP_UNREACH_NLRI. Not doing so can result in duplicate and in- | in the MP_UNREACH_NLRI. Not doing so can result in duplicate and | |||
| consistent link-state objects hanging around in the BGP-LS table. | inconsistent link-state objects hanging around in the BGP-LS table. | |||
| 5.2.1. Node Descriptors | 5.2.1. Node Descriptors | |||
| Each link is anchored by a pair of Router-IDs that are used by the | Each link is anchored by a pair of Router-IDs that are used by the | |||
| underlying IGP, namely, a 48-bit ISO System-ID for IS-IS and a 32-bit | underlying IGP, namely a 48-bit ISO System-ID for IS-IS and a 32-bit | |||
| Router-ID for OSPFv2 and OSPFv3. An IGP may use one or more | Router-ID for OSPFv2 and OSPFv3. An IGP may use one or more | |||
| additional auxiliary Router-IDs, mainly for Traffic Engineering | additional auxiliary Router-IDs, mainly for Traffic Engineering | |||
| purposes. For example, IS-IS may have one or more IPv4 and IPv6 TE | purposes. For example, IS-IS may have one or more IPv4 and IPv6 TE | |||
| Router-IDs [RFC5305] [RFC6119]. When configured, these auxiliary TE | Router-IDs [RFC5305] [RFC6119]. When configured, these auxiliary TE | |||
| Router-IDs (TLV 1028/1029) MUST be included in the node attribute | Router-IDs (TLV 1028/1029) MUST be included in the node attribute | |||
| described in Section 5.3.1 and MAY be included in the link attribute | described in Section 5.3.1 and MAY be included in the link attribute | |||
| described in Section 5.3.2. The advertisement of the TE Router-IDs | described in Section 5.3.2. The advertisement of the TE Router-IDs | |||
| can help a BGP-LS Consumer to correlate multiple link-state objects | can help a BGP-LS Consumer to correlate multiple link-state objects | |||
| (e.g. in different IGP instances or areas/levels) to the same node in | (e.g., in different IGP instances or areas/levels) to the same node | |||
| the network. | in the network. | |||
| It is desirable that the Router-ID assignments inside the Node | It is desirable that the Router-ID assignments inside the Node | |||
| Descriptors are globally unique. However, there may be Router-ID | Descriptors are globally unique. However, there may be Router-ID | |||
| spaces (e.g., ISO) where no global registry exists, or worse, Router- | spaces (e.g., ISO) where no global registry exists, or worse, Router- | |||
| IDs have been allocated following the private-IP allocation described | IDs have been allocated following the private-IP allocation described | |||
| in [RFC1918]. BGP-LS uses the Autonomous System (AS) Number to | in [RFC1918]. BGP-LS uses the Autonomous System Number to | |||
| disambiguate the Router-IDs, as described in Section 5.2.1.1. | disambiguate the Router-IDs, as described in Section 5.2.1.1. | |||
| 5.2.1.1. Globally Unique Node/Link/Prefix Identifiers | 5.2.1.1. Globally Unique Node/Link/Prefix Identifiers | |||
| One problem that needs to be addressed is the ability to identify an | One problem that needs to be addressed is the ability to identify an | |||
| IGP node globally (by "globally", we mean within the BGP-LS database | IGP node globally (by "globally", we mean within the BGP-LS database | |||
| collected by all BGP-LS speakers that talk to each other). This can | collected by all BGP-LS Speakers that talk to each other). This can | |||
| be expressed through the following two requirements: | be expressed through the following two requirements: | |||
| (A) The same node MUST NOT be represented by two keys (otherwise, | (A) The same node MUST NOT be represented by two keys (otherwise, | |||
| one node will look like two nodes). | one node will look like two nodes). | |||
| (B) Two different nodes MUST NOT be represented by the same key | (B) Two different nodes MUST NOT be represented by the same key | |||
| (otherwise, two nodes will look like one node). | (otherwise, two nodes will look like one node). | |||
| We define an "IGP domain" to be the set of nodes (hence, by extension | We define an "IGP domain" to be the set of nodes (hence, by | |||
| links and prefixes) within which each node has a unique IGP | extension, links and prefixes) within which each node has a unique | |||
| representation by using the combination of OSPF Area-ID, Router-ID, | IGP representation by using the combination of OSPF Area-ID, Router- | |||
| Protocol-ID, Multi-Topology ID, and BGP-LS Instance-ID. The problem | ID, Protocol-ID, Multi-Topology Identifier (MT-ID), and BGP-LS | |||
| is that BGP may receive node/link/prefix information from multiple | Instance-ID. The problem is that BGP may receive node/link/prefix | |||
| independent "IGP domains", and we need to distinguish between them. | information from multiple independent "IGP domains", and we need to | |||
| Moreover, we can't assume there is always one and only one IGP domain | distinguish between them. Moreover, we can't assume there is always | |||
| per AS. During IGP transitions, it may happen that two redundant | one and only one IGP domain per AS. During IGP transitions, it may | |||
| IGPs are in place. | happen that two redundant IGPs are in place. | |||
| Furthermore, in deployments where BGP-LS is used to advertise | Furthermore, in deployments where BGP-LS is used to advertise | |||
| topology from multiple-ASes, the AS Number is used to distinguish | topology from multiple ASes, the Autonomous System Number (ASN) is | |||
| topology information reported from different ASes. | used to distinguish topology information reported from different | |||
| ASes. | ||||
| The BGP-LS Instance-ID carried in the Identifier field as described | The BGP-LS Instance-ID carried in the Identifier field, as described | |||
| earlier along with a set of sub-TLVs described in Section 5.2.1.4, | earlier along with a set of sub-TLVs described in Section 5.2.1.4, | |||
| allows specification of a flexible key for any given node/link | allows specification of a flexible key for any given node/link | |||
| information such that the global uniqueness of the NLRI is ensured. | information such that the global uniqueness of the NLRI is ensured. | |||
| Since the BGP-LS Instance-ID is operator assigned, its allocation | Since the BGP-LS Instance-ID is operator assigned, its allocation | |||
| scheme can ensure that each IGP domain is uniquely identified even | scheme can ensure that each IGP domain is uniquely identified even | |||
| across a multi-AS network. | across a multi-AS network. | |||
| 5.2.1.2. Local Node Descriptors | 5.2.1.2. Local Node Descriptors | |||
| The Local Node Descriptors TLV contains Node Descriptors for the node | The Local Node Descriptors TLV contains Node Descriptors for the node | |||
| anchoring the local end of the link. This is a mandatory TLV in all | anchoring the local end of the link. This is a mandatory TLV in all | |||
| three types of NLRIs (node, link, and prefix). The Type is 256. The | three types of NLRIs (node, link, and prefix). The Type is 256. The | |||
| length of this TLV is variable. The value contains one or more Node | length of this TLV is variable. The value contains one or more Node | |||
| Descriptor Sub-TLVs defined in Section 5.2.1.4. | Descriptor sub-TLVs defined in Section 5.2.1.4. | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| // Node Descriptor Sub-TLVs (variable) // | // Node Descriptor Sub-TLVs (variable) // | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 10: Local Node Descriptors TLV Format | Figure 10: Local Node Descriptors TLV Format | |||
| 5.2.1.3. Remote Node Descriptors | 5.2.1.3. Remote Node Descriptors | |||
| The Remote Node Descriptors TLV contains Node Descriptors for the | The Remote Node Descriptors TLV contains Node Descriptors for the | |||
| node anchoring the remote end of the link. This is a mandatory TLV | node anchoring the remote end of the link. This is a mandatory TLV | |||
| for Link NLRIs. The type is 257. The length of this TLV is | for Link NLRIs. The Type is 257. The length of this TLV is | |||
| variable. The value contains one or more Node Descriptor Sub-TLVs | variable. The value contains one or more Node Descriptor sub-TLVs | |||
| defined in Section 5.2.1.4. | defined in Section 5.2.1.4. | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| // Node Descriptor Sub-TLVs (variable) // | // Node Descriptor Sub-TLVs (variable) // | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 11: Remote Node Descriptors TLV Format | Figure 11: Remote Node Descriptors TLV Format | |||
| 5.2.1.4. Node Descriptor Sub-TLVs | 5.2.1.4. Node Descriptor Sub-TLVs | |||
| The Node Descriptor Sub-TLV type code points and lengths are listed | The Node Descriptor sub-TLV type code points and lengths are listed | |||
| in the following table: | in the following table: | |||
| +====================+================================+==========+ | +====================+================================+==========+ | |||
| | Sub-TLV Code Point | Description | Length | | | Sub-TLV Code Point | Description | Length | | |||
| +====================+================================+==========+ | +====================+================================+==========+ | |||
| | 512 | Autonomous System | 4 | | | 512 | Autonomous System | 4 | | |||
| +--------------------+--------------------------------+----------+ | +--------------------+--------------------------------+----------+ | |||
| | 513 | BGP-LS Identifier (deprecated) | 4 | | | 513 | BGP-LS Identifier (deprecated) | 4 | | |||
| +--------------------+--------------------------------+----------+ | +--------------------+--------------------------------+----------+ | |||
| | 514 | OSPF Area-ID | 4 | | | 514 | OSPF Area-ID | 4 | | |||
| skipping to change at page 19, line 25 ¶ | skipping to change at line 833 ¶ | |||
| +--------------------+--------------------------------+----------+ | +--------------------+--------------------------------+----------+ | |||
| Table 3: Node Descriptor Sub-TLVs | Table 3: Node Descriptor Sub-TLVs | |||
| The sub-TLV values in Node Descriptor TLVs are defined as follows: | The sub-TLV values in Node Descriptor TLVs are defined as follows: | |||
| Autonomous System: Opaque value (32-bit AS Number). This is an | Autonomous System: Opaque value (32-bit AS Number). This is an | |||
| optional TLV. The value SHOULD be set to the AS Number associated | optional TLV. The value SHOULD be set to the AS Number associated | |||
| with the BGP process originating the link-state information. An | with the BGP process originating the link-state information. An | |||
| implementation MAY provide a configuration option on the BGP-LS | implementation MAY provide a configuration option on the BGP-LS | |||
| Producer to use a different value; e.g., to avoid collisions when | Producer to use a different value, e.g., to avoid collisions when | |||
| using private AS numbers. | using private AS Numbers. | |||
| BGP-LS Identifier: Opaque value (32-bit ID). This is an optional | BGP-LS Identifier: Opaque value (32-bit ID). This is an optional | |||
| TLV which has been deprecated by this document (refer to | TLV that has been deprecated by this document (refer to Appendix A | |||
| Appendix A for more details). It MAY be advertised for | for more details). It MAY be advertised for compatibility with | |||
| compatibility with [RFC7752] implementations. See the final | [RFC7752] implementations. See the final paragraph of this | |||
| paragraph of this section for further considerations and | section for further considerations and a recommended default | |||
| recommended default value. | value. | |||
| OSPF Area-ID: Used to identify the 32-bit area to which the | OSPF Area-ID: Used to identify the 32-bit area to which the | |||
| information advertised in the NLRI belongs. This is a mandatory | information advertised in the NLRI belongs. This is a mandatory | |||
| TLV when originating information from OSPF that is derived from | TLV when originating information from OSPF that is derived from | |||
| area-scope LSAs. The OSPF Area Identifier allows different NLRIs | area-scope LSAs. The OSPF Area Identifier allows different NLRIs | |||
| of the same router to be differentiated on a per-area basis. It | of the same router to be differentiated on a per-area basis. It | |||
| is not used for NLRIs when carrying information that is derived | is not used for NLRIs when carrying information that is derived | |||
| from AS-scope LSAs as that information is not associated with a | from AS-scope LSAs as that information is not associated with a | |||
| specific area. | specific area. | |||
| IGP Router-ID: Opaque value. This is a mandatory TLV when | IGP Router-ID: Opaque value. This is a mandatory TLV when | |||
| originating information from IS-IS, OSPF, direct or static. For | originating information from IS-IS, OSPF, 'Direct', or 'Static | |||
| an IS-IS non-pseudonode, this contains a 6-octet ISO Node-ID (ISO | configuration'. For an IS-IS non-pseudonode, this contains a | |||
| system-ID). For an IS-IS pseudonode corresponding to a LAN, this | 6-octet ISO Node-ID (ISO System-ID). For an IS-IS pseudonode | |||
| contains the 6-octet ISO Node-ID of the Designated Intermediate | corresponding to a LAN, this contains the 6-octet ISO Node-ID of | |||
| System (DIS) followed by a 1-octet, nonzero PSN identifier (7 | the Designated Intermediate System (DIS) followed by a 1-octet, | |||
| octets in total). For an OSPFv2 or OSPFv3 non-pseudonode, this | nonzero PSN identifier (7 octets in total). For an OSPFv2 or | |||
| contains the 4-octet Router-ID. For an OSPFv2 pseudonode | OSPFv3 non-pseudonode, this contains the 4-octet Router-ID. For | |||
| representing a LAN, this contains the 4-octet Router-ID of the | an OSPFv2 pseudonode representing a LAN, this contains the 4-octet | |||
| Designated Router (DR) followed by the 4-octet IPv4 address of the | Router-ID of the Designated Router (DR) followed by the 4-octet | |||
| DR's interface to the LAN (8 octets in total). Similarly, for an | IPv4 address of the DR's interface to the LAN (8 octets in total). | |||
| OSPFv3 pseudonode, this contains the 4-octet Router-ID of the DR | Similarly, for an OSPFv3 pseudonode, this contains the 4-octet | |||
| followed by the 4-octet interface identifier of the DR's interface | Router-ID of the DR followed by the 4-octet interface identifier | |||
| to the LAN (8 octets in total). The TLV size in combination with | of the DR's interface to the LAN (8 octets in total). The TLV | |||
| the protocol identifier enables the decoder to determine the type | size in combination with the protocol identifier enables the | |||
| of the node. For Direct or Static configuration, the value SHOULD | decoder to determine the type of the node. For 'Direct' or | |||
| be taken from an IPv4 or IPv6 address (e.g. loopback interface) | 'Static configuration', the value SHOULD be taken from an IPv4 or | |||
| configured on the node. When the node is running an IGP protocol, | IPv6 address (e.g., loopback interface) configured on the node. | |||
| an implementation MAY choose to use the IGP Router-ID for direct | When the node is running an IGP protocol, an implementation MAY | |||
| or static. | choose to use the IGP Router-ID for 'Direct' or 'Static | |||
| configuration'. | ||||
| There MUST be at most one instance of each sub-TLV type present in | At most, there MUST be one instance of each sub-TLV type present in | |||
| any Node Descriptor. The sub-TLVs within a Node Descriptor MUST be | any Node Descriptor. The sub-TLVs within a Node Descriptor MUST be | |||
| arranged in ascending order by sub-TLV type. This needs to be done | arranged in ascending order by sub-TLV type. This needs to be done | |||
| to compare NLRIs, even when an implementation encounters an unknown | to compare NLRIs, even when an implementation encounters an unknown | |||
| sub-TLV. Using stable sorting, an implementation can do a binary | sub-TLV. Using stable sorting, an implementation can do a binary | |||
| comparison of NLRIs and hence allow incremental deployment of new key | comparison of NLRIs and hence allow incremental deployment of new key | |||
| sub-TLVs. | sub-TLVs. | |||
| The BGP-LS Identifier was introduced by [RFC7752] and its use is | The BGP-LS Identifier was introduced by [RFC7752], and its use is | |||
| being deprecated by this document. Implementations SHOULD support | being deprecated by this document. Implementations SHOULD support | |||
| the advertisement of this sub-TLV for backward compatibility in | the advertisement of this sub-TLV for backward compatibility in | |||
| deployments where there are BGP-LS Producer implementations that | deployments where there are BGP-LS Producer implementations that | |||
| conform to [RFC7752] to ensure consistency of NLRI encoding for link- | conform to [RFC7752] to ensure consistency of NLRI encoding for link- | |||
| state objects. The default value of 0 is RECOMMENDED to be used when | state objects. The default value of 0 is RECOMMENDED to be used when | |||
| a BGP-LS Producer includes this sub-TLV when originating information | a BGP-LS Producer includes this sub-TLV when originating information | |||
| into BGP-LS. Implementations SHOULD provide an option to configure | into BGP-LS. Implementations SHOULD provide an option to configure | |||
| this value for backward compatibility reasons. As a reminder, the | this value for backward compatibility reasons. As a reminder, the | |||
| use of the BGP-LS Instance-ID that is carried in the Identifier field | use of the BGP-LS Instance-ID that is carried in the Identifier field | |||
| is the way of segregation of link-state objects of different IGP | is the way of segregation of link-state objects of different IGP | |||
| skipping to change at page 21, line 18 ¶ | skipping to change at line 919 ¶ | |||
| is similar to the 'two-way connectivity check' that is performed by | is similar to the 'two-way connectivity check' that is performed by | |||
| link-state IGPs. | link-state IGPs. | |||
| An implementation MAY suppress the advertisement of a Link NLRI, | An implementation MAY suppress the advertisement of a Link NLRI, | |||
| corresponding to a half-link, from a link-state IGP unless the IGP | corresponding to a half-link, from a link-state IGP unless the IGP | |||
| has verified that the link is being reported in the IS-IS LSP or OSPF | has verified that the link is being reported in the IS-IS LSP or OSPF | |||
| Router LSA by both the nodes connected by that link. This 'two-way | Router LSA by both the nodes connected by that link. This 'two-way | |||
| connectivity check' is performed by link-state IGPs during their | connectivity check' is performed by link-state IGPs during their | |||
| computation and can be leveraged before passing information for any | computation and can be leveraged before passing information for any | |||
| half-link that is reported from these IGPs into BGP-LS. This ensures | half-link that is reported from these IGPs into BGP-LS. This ensures | |||
| that only those Link State IGP adjacencies which are established get | that only those link-state IGP adjacencies that are established get | |||
| reported via Link NLRIs. Such a 'two-way connectivity check' could | reported via Link NLRIs. Such a 'two-way connectivity check' could | |||
| be also required in certain cases (e.g., with OSPF) to obtain the | also be required in certain cases (e.g., with OSPF) to obtain the | |||
| proper link identifiers of the remote node. | proper link identifiers of the remote node. | |||
| The format and semantics of the Value fields in most Link Descriptor | The format and semantics of the Value fields in most Link Descriptor | |||
| TLVs correspond to the format and semantics of value fields in IS-IS | TLVs correspond to the format and semantics of Value fields in IS-IS | |||
| Extended IS Reachability sub-TLVs, defined in [RFC5305], [RFC5307], | Extended IS Reachability sub-TLVs, which are defined in [RFC5305], | |||
| and [RFC6119]. Although the encodings for Link Descriptor TLVs were | [RFC5307], and [RFC6119]. Although the encodings for Link Descriptor | |||
| originally defined for IS-IS, the TLVs can carry data sourced by | TLVs were originally defined for IS-IS, the TLVs can carry data | |||
| either IS-IS or OSPF. | sourced by either IS-IS or OSPF. | |||
| The following TLVs are defined as Link Descriptors in the Link NLRI: | The following TLVs are defined as Link Descriptors in the Link NLRI: | |||
| +================+===================+============+===============+ | +================+===================+============+=============+ | |||
| | TLV Code Point | Description | IS-IS TLV/ | Reference | | | TLV Code Point | Description | IS-IS TLV/ | Reference | | |||
| | | | Sub-TLV | (RFC/Section) | | | | | Sub-TLV | | | |||
| +================+===================+============+===============+ | +================+===================+============+=============+ | |||
| | 258 | Link Local/Remote | 22/4 | [RFC5307] / | | | 258 | Link Local/Remote | 22/4 | [RFC5307], | | |||
| | | Identifiers | | 1.1 | | | | Identifiers | | Section 1.1 | | |||
| +----------------+-------------------+------------+---------------+ | +----------------+-------------------+------------+-------------+ | |||
| | 259 | IPv4 interface | 22/6 | [RFC5305] / | | | 259 | IPv4 interface | 22/6 | [RFC5305], | | |||
| | | address | | 3.2 | | | | address | | Section 3.2 | | |||
| +----------------+-------------------+------------+---------------+ | +----------------+-------------------+------------+-------------+ | |||
| | 260 | IPv4 neighbor | 22/8 | [RFC5305] / | | | 260 | IPv4 neighbor | 22/8 | [RFC5305], | | |||
| | | address | | 3.3 | | | | address | | Section 3.3 | | |||
| +----------------+-------------------+------------+---------------+ | +----------------+-------------------+------------+-------------+ | |||
| | 261 | IPv6 interface | 22/12 | [RFC6119] / | | | 261 | IPv6 interface | 22/12 | [RFC6119], | | |||
| | | address | | 4.2 | | | | address | | Section 4.2 | | |||
| +----------------+-------------------+------------+---------------+ | +----------------+-------------------+------------+-------------+ | |||
| | 262 | IPv6 neighbor | 22/13 | [RFC6119] / | | | 262 | IPv6 neighbor | 22/13 | [RFC6119], | | |||
| | | address | | 4.3 | | | | address | | Section 4.3 | | |||
| +----------------+-------------------+------------+---------------+ | +----------------+-------------------+------------+-------------+ | |||
| | 263 | Multi-Topology | --- | Section | | | 263 | Multi-Topology | --- | Section | | |||
| | | Identifier | | 5.2.2.1 | | | | Identifier | | 5.2.2.1 | | |||
| +----------------+-------------------+------------+---------------+ | +----------------+-------------------+------------+-------------+ | |||
| Table 4: Link Descriptor TLVs | Table 4: Link Descriptor TLVs | |||
| The information about a link present in the LSA/LSP originated by the | The information about a link present in the LSA/LSP originated by the | |||
| local node of the link determines the set of TLVs in the Link | local node of the link determines the set of TLVs in the Link | |||
| Descriptor of the link. | Descriptor of the link. | |||
| If interface and neighbor addresses, either IPv4 or IPv6, are | If interface and neighbor addresses, either IPv4 or IPv6, are | |||
| present, then the interface/neighbor address TLVs MUST be | present, then the interface/neighbor address TLVs MUST be | |||
| included, and the Link Local/Remote Identifiers TLV MUST NOT be | included, and the Link Local/Remote Identifiers TLV MUST NOT be | |||
| included in the Link Descriptor. The Link Local/Remote | included in the Link Descriptor. The Link Local/Remote | |||
| Identifiers TLV MAY be included in the link attribute when | Identifiers TLV MAY be included in the link attribute when | |||
| available. IPv4/IPv6 link-local addresses MUST NOT be carried in | available. IPv4/IPv6 link-local addresses MUST NOT be carried in | |||
| the IPv4/IPv6 interface/neighbor address TLVs (259/260/261/262) as | the IPv4/IPv6 interface/neighbor address TLVs (259/260/261/262) as | |||
| descriptors of a link as they are not considered unique. | descriptors of a link since they are not considered unique. | |||
| If interface and neighbor addresses are not present and the link | If interface and neighbor addresses are not present and the link | |||
| local/remote identifiers are present, then the Link Local/Remote | local/remote identifiers are present, then the Link Local/Remote | |||
| Identifiers TLV MUST be included in the Link Descriptor. The Link | Identifiers TLV MUST be included in the Link Descriptor. The Link | |||
| Local/Remote Identifiers MUST be included in the Link Descriptor | Local/Remote identifiers MUST be included in the Link Descriptor | |||
| also in the case of links having only IPv6 link-local addressing | and in the case of links having only IPv6 link-local addressing on | |||
| on them. | them. | |||
| The Multi-Topology Identifier TLV MUST be included as a Link | The Multi-Topology Identifier TLV MUST be included as a Link | |||
| Descriptor if the underlying IGP link object is associated with a | Descriptor if the underlying IGP link object is associated with a | |||
| non-default topology. | non-default topology. | |||
| The TLVs/sub-TLVs corresponding to the interface addresses and/or the | The TLVs/sub-TLVs corresponding to the interface addresses and/or the | |||
| local/remote identifiers may not always be signaled in the IGPs | local/remote identifiers may not always be signaled in the IGPs | |||
| unless their advertisement is enabled specifically. In such cases, | unless their advertisement is enabled specifically. In such cases, | |||
| it is valid to advertise a BGP-LS Link NLRI without any of these | it is valid to advertise a BGP-LS Link NLRI without any of these | |||
| identifiers. | identifiers. | |||
| 5.2.2.1. Multi-Topology ID | 5.2.2.1. Multi-Topology Identifier | |||
| The Multi-Topology ID (MT-ID) TLV carries one or more IS-IS or OSPF | The Multi-Topology Identifier (MT-ID) TLV carries one or more IS-IS | |||
| Multi-Topology IDs for a link, node, or prefix. | or OSPF Multi-Topology Identifiers for a link, node, or prefix. | |||
| The semantics of the IS-IS MT-ID are defined in sections 7.1 and 7.2 | The semantics of the IS-IS MT-ID are defined in Sections 7.1 and 7.2 | |||
| of [RFC5120]. The semantics of the OSPF MT-ID are defined in section | of [RFC5120]. The semantics of the OSPF MT-ID are defined in | |||
| 3.7 of [RFC4915]. If the value in the MT-ID TLV is derived from | Section 3.7 of [RFC4915]. If the value in the MT-ID TLV is derived | |||
| OSPF, then the upper R bits of the MT-ID field MUST be set to 0 and | from OSPF, then the upper R bits of the MT-ID field MUST be set to 0 | |||
| only the values from 0 to 127 are valid for the MT-ID. | and only the values from 0 to 127 are valid for the MT-ID. | |||
| The format of the MT-ID TLV is shown in the following figure. | The format of the MT-ID TLV is shown in the following figure. | |||
| 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=2*n | | | Type | Length=2*n | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| |R R R R| Multi-Topology ID 1 | .... // | |R R R R| Multi-Topology ID 1 | .... // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // .... |R R R R| Multi-Topology ID n | | // .... |R R R R| Multi-Topology ID n | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 12: Multi-Topology ID TLV Format | Figure 12: Multi-Topology Identifier TLV Format | |||
| where Type is 263, Length is 2*n, and n is the number of MT-IDs | The Type is 263, the length is 2*n, and n is the number of MT-IDs | |||
| carried in the TLV. | carried in the TLV. | |||
| The MT-ID TLV MAY be included as a Link Descriptor, a Prefix | The MT-ID TLV MAY be included as a Link Descriptor, as a Prefix | |||
| Descriptor, or in the BGP-LS Attribute of a Node NLRI. When included | Descriptor, or in the BGP-LS Attribute of a Node NLRI. When included | |||
| as a Link or Prefix Descriptor, only a single MT-ID TLV containing | as a Link or Prefix Descriptor, only a single MT-ID TLV containing | |||
| the MT-ID of the topology where the link or the prefix is reachable | the MT-ID of the topology where the link or the prefix is reachable | |||
| is allowed. In case one wants to advertise multiple topologies for a | is allowed. In case one wants to advertise multiple topologies for a | |||
| given Link Descriptor or Prefix Descriptor, multiple NLRIs MUST be | given Link or Prefix Descriptor, multiple NLRIs MUST be generated | |||
| generated where each NLRI contains a single unique MT-ID. When used | where each NLRI contains a single unique MT-ID. When used as a Link | |||
| as a Link or Prefix Descriptor for IS-IS, the Bits R are reserved and | or Prefix Descriptor for IS-IS, the Bits R are reserved and MUST be | |||
| MUST be set to 0 (as per section 7.2 of [RFC5120]) when originated | set to 0 (as per Section 7.2 of [RFC5120]) when originated and | |||
| and ignored on receipt. | ignored on receipt. | |||
| In the BGP-LS Attribute of a Node NLRI, one MT-ID TLV containing the | In the BGP-LS Attribute of a Node NLRI, one MT-ID TLV containing the | |||
| array of MT-IDs of all topologies where the node is reachable is | array of MT-IDs of all topologies where the node is reachable is | |||
| allowed. When used in the Node Attribute TLV for IS-IS, the Bits R | allowed. When used in the Node Attribute TLV for IS-IS, the Bits R | |||
| are set as per section 7.1 of [RFC5120]. | are set as per Section 7.1 of [RFC5120]. | |||
| 5.2.3. Prefix Descriptors | 5.2.3. Prefix Descriptors | |||
| The Prefix Descriptor field is a set of Type/Length/Value (TLV) | The Prefix Descriptor field is a set of Type/Length/Value (TLV) | |||
| triplets. Prefix Descriptor TLVs uniquely identify an IPv4 or IPv6 | triplets. Prefix Descriptor TLVs uniquely identify an IPv4 or IPv6 | |||
| prefix originated by a node. The following TLVs are defined as | prefix originated by a node. The following TLVs are defined as | |||
| Prefix Descriptors in the IPv4/IPv6 Prefix NLRI: | Prefix Descriptors in the IPv4/IPv6 Prefix NLRI: | |||
| +================+=================+==========+===============+ | +================+===========================+==========+===========+ | |||
| | TLV Code Point | Description | Length | Reference | | | TLV Code Point | Description | Length | Reference | | |||
| | | | | (RFC/Section) | | +================+===========================+==========+===========+ | |||
| +================+=================+==========+===============+ | | 263 | Multi-Topology | variable | Section | | |||
| | 263 | Multi-Topology | variable | Section | | | | Identifier | | 5.2.2.1 | | |||
| | | Identifier | | 5.2.2.1 | | +----------------+---------------------------+----------+-----------+ | |||
| +----------------+-----------------+----------+---------------+ | | 264 | OSPF Route Type | 1 | Section | | |||
| | 264 | OSPF Route Type | 1 | Section | | | | | | 5.2.3.1 | | |||
| | | | | 5.2.3.1 | | +----------------+---------------------------+----------+-----------+ | |||
| +----------------+-----------------+----------+---------------+ | | 265 | IP Reachability | variable | Section | | |||
| | 265 | IP Reachability | variable | Section | | | | Information | | 5.2.3.2 | | |||
| | | Information | | 5.2.3.2 | | +----------------+---------------------------+----------+-----------+ | |||
| +----------------+-----------------+----------+---------------+ | ||||
| Table 5: Prefix Descriptor TLVs | Table 5: Prefix Descriptor TLVs | |||
| The Multi-Topology Identifier TLV MUST be included in the Prefix | The Multi-Topology Identifier TLV MUST be included in the Prefix | |||
| Descriptor if the underlying IGP prefix object is associated with a | Descriptor if the underlying IGP prefix object is associated with a | |||
| non-default topology. | non-default topology. | |||
| 5.2.3.1. OSPF Route Type | 5.2.3.1. OSPF Route Type | |||
| The OSPF Route Type TLV is an optional TLV corresponding to Prefix | The OSPF Route Type TLV is an optional TLV corresponding to Prefix | |||
| NLRIs originated from OSPF. It is used to identify the OSPF route | NLRIs originated from OSPF. It is used to identify the OSPF route | |||
| type of the prefix. An OSPF prefix MAY be advertised in the OSPF | type of the prefix. An OSPF prefix MAY be advertised in the OSPF | |||
| domain with multiple route types. The Route Type TLV allows the | domain with multiple route types. The Route Type TLV allows the | |||
| discrimination of these advertisements. The OSPF Route Type TLV MUST | discrimination of these advertisements. The OSPF Route Type TLV MUST | |||
| be included in the advertisement when the type is either being | be included in the advertisement when the type is either being | |||
| signaled explicitly in the underlying LSA or can be determined via | signaled explicitly in the underlying LSA or can be determined via | |||
| another LSA for the same prefix when it is not signaled explicitly | another LSA for the same prefix when it is not signaled explicitly | |||
| (e.g., in the case of OSPFv2 Extended Prefix Opaque LSA [RFC7684]). | (e.g., in the case of OSPFv2 Extended Prefix Opaque LSA [RFC7684]). | |||
| The route type advertised in the OSPFv2 Extended Prefix TLV (section | The route type advertised in the OSPFv2 Extended Prefix TLV | |||
| 2.1 of [RFC7684]) does not make a distinction between Type 1 and 2 | (Section 2.1 of [RFC7684]) does not make a distinction between Type 1 | |||
| for AS external and NSSA external routes. In this case, the route | and 2 for AS external and Not-So-Stubby Area (NSSA) external routes. | |||
| type to be used in the BGP-LS advertisement can be determined by | In this case, the route type to be used in the BGP-LS advertisement | |||
| checking the OSPFv2 External or NSSA External LSA for the prefix. A | can be determined by checking the OSPFv2 External or NSSA External | |||
| similar check for the base OSPFv2 LSAs can be done to determine the | LSA for the prefix. A similar check for the base OSPFv2 LSAs can be | |||
| route type to be used when the route type value 0 is carried in the | done to determine the route type to be used when the route type value | |||
| OSPFv2 Extended Prefix TLV. | 0 is carried in the OSPFv2 Extended Prefix TLV. | |||
| The format of the OSPF Route Type TLV is shown in the following | The format of the OSPF Route Type TLV is shown in the following | |||
| figure. | figure. | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Route Type | | | Route Type | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| Figure 13: OSPF Route Type TLV Format | Figure 13: OSPF Route Type TLV Format | |||
| where the Type and Length fields of the TLV are defined in Table 5. | The Type and Length fields of the TLV are defined in Table 5. The | |||
| The OSPF Route Type field follows the route types defined in the OSPF | Route Type field follows the route types defined in the OSPF protocol | |||
| protocol and can be one of the following: | and can be one of the following: | |||
| * Intra-Area (0x1) | * Intra-Area (0x1) | |||
| * Inter-Area (0x2) | * Inter-Area (0x2) | |||
| * External 1 (0x3) | * External 1 (0x3) | |||
| * External 2 (0x4) | * External 2 (0x4) | |||
| * NSSA 1 (0x5) | * NSSA 1 (0x5) | |||
| * NSSA 2 (0x6) | * NSSA 2 (0x6) | |||
| 5.2.3.2. IP Reachability Information | 5.2.3.2. IP Reachability Information | |||
| The IP Reachability Information TLV is a mandatory TLV for IPv4 & | The IP Reachability Information TLV is a mandatory TLV for IPv4 & | |||
| IPv6 Prefix NLRI types. The TLV contains one IP address prefix (IPv4 | IPv6 Prefix NLRI types. The TLV contains one IP address prefix (IPv4 | |||
| or IPv6) originally advertised in the IGP topology. A router SHOULD | or IPv6) originally advertised in the IGP topology. A router SHOULD | |||
| advertise an IP Prefix NLRI for each of its BGP next-hops. The | advertise an IP Prefix NLRI for each of its BGP next hops. The | |||
| format of the IP Reachability Information TLV is shown in the | format of the IP Reachability Information TLV is shown in the | |||
| following figure: | following figure: | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Prefix Length | IP Prefix (variable) // | | Prefix Length | IP Prefix (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 14: IP Reachability Information TLV Format | Figure 14: IP Reachability Information TLV Format | |||
| The Type and Length fields of the TLV are defined in Table 5. The | The Type and Length fields of the TLV are defined in Table 5. The | |||
| following two fields determine the reachability information of the | following two fields determine the reachability information of the | |||
| address family. The Prefix Length field contains the length of the | address family. The Prefix Length field contains the length of the | |||
| prefix in bits. The IP Prefix field contains an IP address prefix, | prefix in bits. The IP Prefix field contains an IP address prefix | |||
| followed by the minimum number of trailing bits needed to make the | followed by the minimum number of trailing bits needed to make the | |||
| end of the field fall on an octet boundary. Any trailing bits MUST | end of the field fall on an octet boundary. Any trailing bits MUST | |||
| be set to 0. Thus, the IP Prefix field contains the most significant | be set to 0. Thus, the IP Prefix field contains the most significant | |||
| octets of the prefix, i.e., 1 octet for prefix length 1 up to 8, 2 | octets of the prefix, i.e., 1 octet for prefix length 1 up to 8, 2 | |||
| octets for prefix length 9 to 16, 3 octets for prefix length 17 up to | octets for prefix length 9 up to 16, 3 octets for prefix length 17 up | |||
| 24, 4 octets for prefix length 25 up to 32, etc. | to 24, 4 octets for prefix length 25 up to 32, etc. | |||
| 5.3. The BGP-LS Attribute | 5.3. The BGP-LS Attribute | |||
| The BGP-LS Attribute (assigned value 29 by IANA) is an optional, non- | The BGP-LS Attribute (assigned value 29 by IANA) is an optional, non- | |||
| transitive BGP attribute that is used to carry link, node, and prefix | transitive BGP Attribute that is used to carry link, node, and prefix | |||
| parameters and attributes. It is defined as a set of Type/Length/ | parameters and attributes. It is defined as a set of Type/Length/ | |||
| Value (TLV) triplets, described in the following section. This | Value (TLV) triplets, as described in the following section. This | |||
| attribute SHOULD only be included with Link-State NLRIs. The use of | attribute SHOULD only be included with Link-State NLRIs. The use of | |||
| this attribute for other address families is outside the scope of | this attribute for other address families is outside the scope of | |||
| this document. | this document. | |||
| The Node Attribute TLVs, Link Attribute TLVs, and Prefix Attribute | The Node Attribute TLVs, Link Attribute TLVs, and Prefix Attribute | |||
| TLVs are sets of TLVs that may be encoded in the BGP-LS Attribute | TLVs are sets of TLVs that may be encoded in the BGP-LS Attribute | |||
| associated with a Node NLRI, Link NLRI, and Prefix NLRI respectively. | associated with a Node NLRI, Link NLRI, and Prefix NLRI respectively. | |||
| The size of the BGP-LS Attribute may potentially grow large depending | The size of the BGP-LS Attribute may potentially grow large, | |||
| on the amount of link-state information associated with a single | depending on the amount of link-state information associated with a | |||
| Link-State NLRI. The BGP specification [RFC4271] mandates a maximum | single Link-State NLRI. The BGP specification [RFC4271] mandates a | |||
| BGP message size of 4096 octets. It is RECOMMENDED that an | maximum BGP message size of 4096 octets. It is RECOMMENDED that an | |||
| implementation supports [RFC8654] to accommodate a larger size of | implementation supports [RFC8654] to accommodate a larger size of | |||
| information within the BGP-LS Attribute. BGP-LS Producers MUST | information within the BGP-LS Attribute. BGP-LS Producers MUST | |||
| ensure that the TLVs included in the BGP-LS Attribute does not result | ensure that the TLVs included in the BGP-LS Attribute does not result | |||
| in a BGP UPDATE message for a single Link-State NLRI that crosses the | in a BGP UPDATE message for a single Link-State NLRI that crosses the | |||
| maximum limit for a BGP message. | maximum limit for a BGP message. | |||
| An implementation MAY adopt mechanisms to avoid this problem that may | An implementation MAY adopt mechanisms to avoid this problem that may | |||
| be based the BGP-LS Consumer applications' requirement; these | be based on the BGP-LS Consumer applications' requirement; these | |||
| mechanisms are beyond the scope of this specification. However, if | mechanisms are beyond the scope of this specification. However, if | |||
| an implementation chooses to mitigate the problem by excluding some | an implementation chooses to mitigate the problem by excluding some | |||
| TLVs from the BGP-LS Attribute, this exclusion SHOULD be done | TLVs from the BGP-LS Attribute, this exclusion SHOULD be done | |||
| consistently by all BGP-LS Producers within a given BGP-LS domain. | consistently by all BGP-LS Producers within a given BGP-LS domain. | |||
| In the event of inconsistent exclusion of TLVs from the BGP-LS | In the event of inconsistent exclusion of TLVs from the BGP-LS | |||
| Attribute, the result would be a differing set of attributes of the | Attribute, the result would be a differing set of attributes of the | |||
| link-state object being propagated to BGP-LS Consumers based on the | link-state object being propagated to BGP-LS Consumers based on the | |||
| BGP decision process at BGP-LS Propagators. | BGP Decision Process at BGP-LS Propagators. | |||
| When a BGP-LS Propagator finds that it is exceeding the maximum BGP | When a BGP-LS Propagator finds that it is exceeding the maximum BGP | |||
| message size due to the addition or update of some other BGP | message size due to the addition or update of some other BGP | |||
| Attribute (e.g. AS_PATH), it MUST consider the BGP-LS Attribute to | Attribute (e.g., AS_PATH), it MUST consider the BGP-LS Attribute to | |||
| be malformed, apply the "Attribute Discard" error-handling approach | be malformed, apply the 'Attribute Discard' error-handling approach | |||
| [RFC7606], and handle the propagation as described in Section 8.2.2. | [RFC7606], and handle the propagation as described in Section 8.2.2. | |||
| When a BGP-LS Propagator needs to perform "Attribute Discard" for | When a BGP-LS Propagator needs to perform 'Attribute Discard' for | |||
| reducing the BGP UPDATE message size as specified in section 4 of | reducing the BGP UPDATE message size as specified in Section 4 of | |||
| [RFC8654], it MUST first discard the BGP-LS Attribute to enable the | [RFC8654], it MUST first discard the BGP-LS Attribute to enable the | |||
| detection and diagnosis of this error condition as discussed in | detection and diagnosis of this error condition as discussed in | |||
| Section 8.2.2. This brings the deployment consideration that the | Section 8.2.2. This brings the deployment consideration that the | |||
| consistent propagation of BGP-LS information with a BGP UPDATE | consistent propagation of BGP-LS information with a BGP UPDATE | |||
| message size larger than 4096 octets can only happen along a set of | message size larger than 4096 octets can only happen along a set of | |||
| BGP Speakers that all support [RFC8654]. | BGP Speakers that all support the contents of [RFC8654]. | |||
| 5.3.1. Node Attribute TLVs | 5.3.1. Node Attribute TLVs | |||
| The following Node Attribute TLVs are defined for the BGP-LS | The following Node Attribute TLVs are defined for the BGP-LS | |||
| Attribute associated with a Node NLRI: | Attribute associated with a Node NLRI: | |||
| +================+================+==========+===============+ | +================+================+==========+=============+ | |||
| | TLV Code Point | Description | Length | Reference | | | TLV Code Point | Description | Length | Reference | | |||
| | | | | (RFC/Section) | | +================+================+==========+=============+ | |||
| +================+================+==========+===============+ | | 263 | Multi-Topology | variable | Section | | |||
| | 263 | Multi-Topology | variable | Section | | | | Identifier | | 5.2.2.1 | | |||
| | | Identifier | | 5.2.2.1 | | +----------------+----------------+----------+-------------+ | |||
| +----------------+----------------+----------+---------------+ | | 1024 | Node Flag Bits | 1 | Section | | |||
| | 1024 | Node Flag Bits | 1 | Section | | | | | | 5.3.1.1 | | |||
| | | | | 5.3.1.1 | | +----------------+----------------+----------+-------------+ | |||
| +----------------+----------------+----------+---------------+ | | 1025 | Opaque Node | variable | Section | | |||
| | 1025 | Opaque Node | variable | Section | | | | Attribute | | 5.3.1.5 | | |||
| | | Attribute | | 5.3.1.5 | | +----------------+----------------+----------+-------------+ | |||
| +----------------+----------------+----------+---------------+ | | 1026 | Node Name | variable | Section | | |||
| | 1026 | Node Name | variable | Section | | | | | | 5.3.1.3 | | |||
| | | | | 5.3.1.3 | | +----------------+----------------+----------+-------------+ | |||
| +----------------+----------------+----------+---------------+ | | 1027 | IS-IS Area | variable | Section | | |||
| | 1027 | IS-IS Area | variable | Section | | | | Identifier | | 5.3.1.2 | | |||
| | | Identifier | | 5.3.1.2 | | +----------------+----------------+----------+-------------+ | |||
| +----------------+----------------+----------+---------------+ | | 1028 | IPv4 Router-ID | 4 | [RFC5305], | | |||
| | 1028 | IPv4 Router-ID | 4 | [RFC5305] / | | | | of Local Node | | Section 4.3 | | |||
| | | of Local Node | | 4.3 | | +----------------+----------------+----------+-------------+ | |||
| +----------------+----------------+----------+---------------+ | | 1029 | IPv6 Router-ID | 16 | [RFC6119], | | |||
| | 1029 | IPv6 Router-ID | 16 | [RFC6119] / | | | | of Local Node | | Section 4.1 | | |||
| | | of Local Node | | 4.1 | | +----------------+----------------+----------+-------------+ | |||
| +----------------+----------------+----------+---------------+ | ||||
| Table 6: Node Attribute TLVs | Table 6: Node Attribute TLVs | |||
| 5.3.1.1. Node Flag Bits TLV | 5.3.1.1. Node Flag Bits TLV | |||
| The Node Flag Bits TLV carries a bitmask describing node attributes. | The Node Flag Bits TLV carries a bitmask describing node attributes. | |||
| The value is a 1 octet length bit array of flags, where each bit | The value is a 1-octet-length bit array of flags, where each bit | |||
| represents a node operational state or attribute. | represents a node-operational state or attribute. | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| |O|T|E|B|R|V| | | |O|T|E|B|R|V| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| Figure 15: Node Flag Bits TLV Format | Figure 15: Node Flag Bits TLV Format | |||
| The bits are defined as follows: | The bits are defined as follows: | |||
| +=====+==============+============+ | +=====+==============+============+ | |||
| | Bit | Description | Reference | | | Bit | Description | Reference | | |||
| +=====+==============+============+ | +=====+==============+============+ | |||
| | 'O' | Overload Bit | [ISO10589] | | | 'O' | Overload Bit | [ISO10589] | | |||
| +-----+--------------+------------+ | +-----+--------------+------------+ | |||
| | 'T' | Attached Bit | [ISO10589] | | | 'A' | Attached Bit | [ISO10589] | | |||
| +-----+--------------+------------+ | +-----+--------------+------------+ | |||
| | 'E' | External Bit | [RFC2328] | | | 'E' | External Bit | [RFC2328] | | |||
| +-----+--------------+------------+ | +-----+--------------+------------+ | |||
| | 'B' | ABR Bit | [RFC2328] | | | 'B' | ABR Bit | [RFC2328] | | |||
| +-----+--------------+------------+ | +-----+--------------+------------+ | |||
| | 'R' | Router Bit | [RFC5340] | | | 'R' | Router Bit | [RFC5340] | | |||
| +-----+--------------+------------+ | +-----+--------------+------------+ | |||
| | 'V' | V6 Bit | [RFC5340] | | | 'V' | V6 Bit | [RFC5340] | | |||
| +-----+--------------+------------+ | +-----+--------------+------------+ | |||
| skipping to change at page 29, line 49 ¶ | skipping to change at line 1280 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // IS-IS Area Identifier (variable) // | // IS-IS Area Identifier (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 16: IS-IS Area Identifier TLV Format | Figure 16: IS-IS Area Identifier TLV Format | |||
| 5.3.1.3. Node Name TLV | 5.3.1.3. Node Name TLV | |||
| The Node Name TLV is optional. The encoding semantics for the node | The Node Name TLV is optional. The encoding semantics for the node | |||
| name has been borrowed from [RFC5301]. The Value field identifies | name has been borrowed from [RFC5301]. The Value field identifies | |||
| the symbolic name of the router node. This symbolic name can either | the symbolic name of the router node. This symbolic name can be the | |||
| be the Fully Qualified Domain Name (FQDN) for the router, or it can | Fully Qualified Domain Name (FQDN) for the router, a substring of the | |||
| be a substring of the FQDN (e.g., a hostname), or it can be any | FQDN (e.g., a hostname), or any string that an operator wants to use | |||
| string that an operator wants to use for the router. The use of FQDN | for the router. The use of the FQDN or a substring of it is strongly | |||
| or a substring of it is strongly RECOMMENDED. The maximum length of | RECOMMENDED. The maximum length of the Node Name TLV is 255 octets. | |||
| the Node Name TLV is 255 octets. | ||||
| The Value field is encoded in 7-bit ASCII. If a user interface for | The Value field is encoded in 7-bit ASCII. If a user interface for | |||
| configuring or displaying this field permits Unicode characters, that | configuring or displaying this field permits Unicode characters, then | |||
| the user interface is responsible for applying the ToASCII and/or | the user interface is responsible for applying the ToASCII and/or | |||
| ToUnicode algorithm as described in [RFC5890] to achieve the correct | ToUnicode algorithm as described in [RFC5890] to achieve the correct | |||
| format for transmission or display. | format for transmission or display. | |||
| [RFC5301] describes an IS-IS-specific extension and [RFC5642] | [RFC5301] describes an IS-IS-specific extension, and [RFC5642] | |||
| describes an OSPF extension for the advertisement of Node Name which | describes an OSPF extension for the advertisement of the node name, | |||
| may be encoded in the Node Name TLV. | which may be encoded in the Node Name TLV. | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Node Name (variable) // | // Node Name (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 17: Node Name Format | Figure 17: Node Name Format | |||
| skipping to change at page 31, line 13 ¶ | skipping to change at line 1338 ¶ | |||
| definition for incremental deployment and transition. | definition for incremental deployment and transition. | |||
| In the case of OSPF, this TLV MUST NOT be used to advertise TLVs | In the case of OSPF, this TLV MUST NOT be used to advertise TLVs | |||
| other than those in the OSPF Router Information (RI) LSA [RFC7770]. | other than those in the OSPF Router Information (RI) LSA [RFC7770]. | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Opaque node attributes (variable) // | // Opaque Node Attributes (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 18: Opaque Node Attribute Format | Figure 18: Opaque Node Attribute Format | |||
| The type is as specified in Table 6. Length is variable. | The Type is as specified in Table 6. The length is variable. | |||
| 5.3.2. Link Attribute TLVs | 5.3.2. Link Attribute TLVs | |||
| Link Attribute TLVs are TLVs that may be encoded in the BGP-LS | Link Attribute TLVs are TLVs that may be encoded in the BGP-LS | |||
| Attribute with a Link NLRI. Each 'Link Attribute' is a Type/Length/ | Attribute with a Link NLRI. Each 'Link Attribute' is a Type/Length/ | |||
| Value (TLV) triplet formatted as defined in Section 5.1. The format | Value (TLV) triplet formatted as defined in Section 5.1. The format | |||
| and semantics of the Value fields in some Link Attribute TLVs | and semantics of the Value fields in some Link Attribute TLVs | |||
| correspond to the format and semantics of the Value fields in IS-IS | correspond to the format and semantics of the Value fields in IS-IS | |||
| Extended IS Reachability sub-TLVs, defined in [RFC5305] and | Extended IS Reachability sub-TLVs, which are defined in [RFC5305] and | |||
| [RFC5307]. Other Link Attribute TLVs are defined in this document. | [RFC5307]. Other Link Attribute TLVs are defined in this document. | |||
| Although the encodings for Link Attribute TLVs were originally | Although the encodings for Link Attribute TLVs were originally | |||
| defined for IS-IS, the TLVs can carry data sourced by either IS-IS or | defined for IS-IS, the TLVs can carry data sourced by either IS-IS or | |||
| OSPF. | OSPF. | |||
| The following Link Attribute TLVs are defined for the BGP-LS | The following Link Attribute TLVs are defined for the BGP-LS | |||
| Attribute associated with a Link NLRI: | Attribute associated with a Link NLRI: | |||
| +================+=================+============+===============+ | +================+=================+============+=============+ | |||
| | TLV Code Point | Description | IS-IS TLV/ | Reference | | | TLV Code Point | Description | IS-IS TLV/ | Reference | | |||
| | | | Sub-TLV | (RFC/Section) | | | | | Sub-TLV | | | |||
| +================+=================+============+===============+ | +================+=================+============+=============+ | |||
| | 1028 | IPv4 Router-ID | 134/--- | [RFC5305] / | | | 1028 | IPv4 Router-ID | 134/--- | [RFC5305], | | |||
| | | of Local Node | | 4.3 | | | | of Local Node | | Section 4.3 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1029 | IPv6 Router-ID | 140/--- | [RFC6119] / | | | 1029 | IPv6 Router-ID | 140/--- | [RFC6119], | | |||
| | | of Local Node | | 4.1 | | | | of Local Node | | Section 4.1 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1030 | IPv4 Router-ID | 134/--- | [RFC5305] / | | | 1030 | IPv4 Router-ID | 134/--- | [RFC5305], | | |||
| | | of Remote Node | | 4.3 | | | | of Remote Node | | Section 4.3 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1031 | IPv6 Router-ID | 140/--- | [RFC6119] / | | | 1031 | IPv6 Router-ID | 140/--- | [RFC6119], | | |||
| | | of Remote Node | | 4.1 | | | | of Remote Node | | Section 4.1 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1088 | Administrative | 22/3 | [RFC5305] / | | | 1088 | Administrative | 22/3 | [RFC5305], | | |||
| | | group (color) | | 3.1 | | | | group (color) | | Section 3.1 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1089 | Maximum link | 22/9 | [RFC5305] / | | | 1089 | Maximum link | 22/9 | [RFC5305], | | |||
| | | bandwidth | | 3.4 | | | | bandwidth | | Section 3.4 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1090 | Max. reservable | 22/10 | [RFC5305] / | | | 1090 | Max. reservable | 22/10 | [RFC5305], | | |||
| | | link bandwidth | | 3.5 | | | | link bandwidth | | Section 3.5 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1091 | Unreserved | 22/11 | [RFC5305] / | | | 1091 | Unreserved | 22/11 | [RFC5305], | | |||
| | | bandwidth | | 3.6 | | | | bandwidth | | Section 3.6 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1092 | TE Default | 22/18 | Section | | | 1092 | TE Default | 22/18 | Section | | |||
| | | Metric | | 5.3.2.3 | | | | Metric | | 5.3.2.3 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1093 | Link Protection | 22/20 | [RFC5307] / | | | 1093 | Link Protection | 22/20 | [RFC5307], | | |||
| | | Type | | 1.2 | | | | Type | | Section 1.2 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1094 | MPLS Protocol | --- | Section | | | 1094 | MPLS Protocol | --- | Section | | |||
| | | Mask | | 5.3.2.2 | | | | Mask | | 5.3.2.2 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1095 | IGP Metric | --- | Section | | | 1095 | IGP Metric | --- | Section | | |||
| | | | | 5.3.2.4 | | | | | | 5.3.2.4 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1096 | Shared Risk | --- | Section | | | 1096 | Shared Risk | --- | Section | | |||
| | | Link Group | | 5.3.2.5 | | | | Link Group | | 5.3.2.5 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1097 | Opaque Link | --- | Section | | | 1097 | Opaque Link | --- | Section | | |||
| | | Attribute | | 5.3.2.6 | | | | Attribute | | 5.3.2.6 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| | 1098 | Link Name | --- | Section | | | 1098 | Link Name | --- | Section | | |||
| | | | | 5.3.2.7 | | | | | | 5.3.2.7 | | |||
| +----------------+-----------------+------------+---------------+ | +----------------+-----------------+------------+-------------+ | |||
| Table 8: Link Attribute TLVs | Table 8: Link Attribute TLVs | |||
| 5.3.2.1. IPv4/IPv6 Router-ID TLVs | 5.3.2.1. IPv4/IPv6 Router-ID TLVs | |||
| The local/remote IPv4/IPv6 Router-ID TLVs are used to describe | The local/remote IPv4/IPv6 Router-ID TLVs are used to describe | |||
| auxiliary Router-IDs that the IGP might be using, e.g., for TE | auxiliary Router-IDs that the IGP might be using, e.g., for TE | |||
| purposes. All auxiliary Router-IDs of both the local and the remote | purposes. All auxiliary Router-IDs of both the local and the remote | |||
| node MUST be included in the link attribute of each Link NLRI. If | node MUST be included in the link attribute of each Link NLRI. If | |||
| there is more than one auxiliary Router-ID of a given type, then | there is more than one auxiliary Router-ID of a given type, then | |||
| skipping to change at page 34, line 19 ¶ | skipping to change at line 1482 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | TE Default Link Metric | | | TE Default Link Metric | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 20: TE Default Metric TLV Format | Figure 20: TE Default Metric TLV Format | |||
| 5.3.2.4. IGP Metric TLV | 5.3.2.4. IGP Metric TLV | |||
| The IGP Metric TLV carries the metric for this link. The length of | The IGP Metric TLV carries the metric for this link. The length of | |||
| this TLV is variable, depending on the metric width of the underlying | this TLV is variable, depending on the metric width of the underlying | |||
| protocol. IS-IS small metrics are of 6-bit size, but are encoded in | protocol. IS-IS small metrics are 6 bits in size but are encoded in | |||
| a 1 octet field; therefore the two most significant bits of the field | a 1-octet field; therefore, the two most significant bits of the | |||
| MUST be set to 0 by the originator and MUST be ignored by the | field MUST be set to 0 by the originator and MUST be ignored by the | |||
| receiver. OSPF link metrics have a length of 2 octets. IS-IS wide | receiver. OSPF link metrics have a length of 2 octets. IS-IS wide | |||
| metrics have a length of 3 octets. | metrics have a length of 3 octets. | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // IGP Link Metric (variable length) // | // IGP Link Metric (variable length) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 35, line 20 ¶ | skipping to change at line 1522 ¶ | |||
| | Shared Risk Link Group Value | | | Shared Risk Link Group Value | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // ............ // | // ............ // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Shared Risk Link Group Value | | | Shared Risk Link Group Value | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 22: Shared Risk Link Group TLV Format | Figure 22: Shared Risk Link Group TLV Format | |||
| The SRLG TLV for OSPF-TE is defined in [RFC4203]. In IS-IS, the SRLG | The SRLG TLV for OSPF-TE is defined in [RFC4203]. In IS-IS, the SRLG | |||
| information is carried in two different TLVs: the IPv4 (SRLG) TLV | information is carried in two different TLVs: the GMPLS-SRLG TLV (for | |||
| (Type 138) defined in [RFC5307] and the IPv6 SRLG TLV (Type 139) | IPv4) (Type 138) defined in [RFC5307] and the IPv6 SRLG TLV (Type | |||
| defined in [RFC6119]. Both IPv4 and IPv6 SRLG information is carried | 139) defined in [RFC6119]. Both IPv4 and IPv6 SRLG information is | |||
| in a single TLV. | carried in a single TLV. | |||
| 5.3.2.6. Opaque Link Attribute TLV | 5.3.2.6. Opaque Link Attribute TLV | |||
| The Opaque Link Attribute TLV is an envelope that transparently | The Opaque Link Attribute TLV is an envelope that transparently | |||
| carries optional Link Attribute TLVs advertised by a router. An | carries optional Link Attribute TLVs advertised by a router. An | |||
| originating router shall use this TLV for encoding information | originating router shall use this TLV for encoding information | |||
| specific to the protocol advertised in the NLRI header Protocol-ID | specific to the protocol advertised in the NLRI header Protocol-ID | |||
| field or new protocol extensions to the protocol as advertised in the | field or new protocol extensions to the protocol as advertised in the | |||
| NLRI header Protocol-ID field for which there is no protocol-neutral | NLRI header Protocol-ID field for which there is no protocol-neutral | |||
| representation in the BGP Link-State NLRI. The primary use of the | representation in the BGP Link-State NLRI. The primary use of the | |||
| skipping to change at page 36, line 10 ¶ | skipping to change at line 1554 ¶ | |||
| information carried using TLVs other than those in the OSPFv2 | information carried using TLVs other than those in the OSPFv2 | |||
| Extended Link Opaque LSA [RFC7684]. In the case of OSPFv3, this TLV | Extended Link Opaque LSA [RFC7684]. In the case of OSPFv3, this TLV | |||
| MUST NOT be used to advertise TLVs other than those in the OSPFv3 E- | MUST NOT be used to advertise TLVs other than those in the OSPFv3 E- | |||
| Router-LSA or E-Link-LSA [RFC8362]. | Router-LSA or E-Link-LSA [RFC8362]. | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Opaque link attributes (variable) // | // Opaque Link Attributes (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 23: Opaque Link Attribute TLV Format | Figure 23: Opaque Link Attribute TLV Format | |||
| 5.3.2.7. Link Name TLV | 5.3.2.7. Link Name TLV | |||
| The Link Name TLV is optional. The Value field identifies the | The Link Name TLV is optional. The Value field identifies the | |||
| symbolic name of the router link. This symbolic name can either be | symbolic name of the router link. This symbolic name can be the FQDN | |||
| the FQDN for the link, or it can be a substring of the FQDN, or it | for the link, a substring of the FQDN, or any string that an operator | |||
| can be any string that an operator wants to use for the link. The | wants to use for the link. The use of the FQDN or a substring of it | |||
| use of FQDN or a substring of it is strongly RECOMMENDED. The | is strongly RECOMMENDED. The maximum length of the Link Name TLV is | |||
| maximum length of the Link Name TLV is 255 octets. | 255 octets. | |||
| The Value field is encoded in 7-bit ASCII. If a user interface for | The Value field is encoded in 7-bit ASCII. If a user interface for | |||
| configuring or displaying this field permits Unicode characters, that | configuring or displaying this field permits Unicode characters, then | |||
| the user interface is responsible for applying the ToASCII and/or | the user interface is responsible for applying the ToASCII and/or | |||
| ToUnicode algorithm as described in [RFC5890] to achieve the correct | ToUnicode algorithm as described in [RFC5890] to achieve the correct | |||
| format for transmission or display. | format for transmission or display. | |||
| How a router derives and injects link names is outside of the scope | How a router derives and injects link names is outside of the scope | |||
| of this document. | of this document. | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 38, line 37 ¶ | skipping to change at line 1667 ¶ | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Route Tags (one or more) // | // Route Tags (one or more) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 26: IGP Route Tag TLV Format | Figure 26: IGP Route Tag TLV Format | |||
| Length is a multiple of 4. | The length is a multiple of 4. | |||
| The Value field contains one or more Route Tags as learned in the IGP | The Value field contains one or more Route Tags as learned in the IGP | |||
| topology. | topology. | |||
| 5.3.3.3. Extended IGP Route Tag TLV | 5.3.3.3. IGP Extended Route Tag TLV | |||
| The Extended IGP Route Tag TLV carries IS-IS Extended Route Tags of | The IGP Extended Route Tag TLV carries IS-IS Extended Route Tags of | |||
| the prefix [RFC5130] and is encoded as follows: | the prefix [RFC5130] and is encoded 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Extended Route Tag (one or more) // | // Extended Route Tag (one or more) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 27: Extended IGP Route Tag TLV Format | Figure 27: IGP Extended Route Tag TLV Format | |||
| Length is a multiple of 8. | The length is a multiple of 8. | |||
| The Extended Route Tag field contains one or more Extended Route Tags | The Extended Route Tag field contains one or more Extended Route Tags | |||
| as learned in the IGP topology. | as learned in the IGP topology. | |||
| 5.3.3.4. Prefix Metric TLV | 5.3.3.4. Prefix Metric TLV | |||
| The Prefix Metric TLV is an optional attribute and may only appear | The Prefix Metric TLV is an optional attribute and may only appear | |||
| once. If present, it carries the metric of the prefix as known in | once. If present, it carries the metric of the prefix as known in | |||
| the IGP topology as described in Section 4 of [RFC5305] (and | the IGP topology, as described in Section 4 of [RFC5305] (and | |||
| therefore represents the reachability cost to the prefix). If not | therefore represents the reachability cost to the prefix). If not | |||
| present, it means that the prefix is advertised without any | present, it means that the prefix is advertised without any | |||
| reachability. | reachability. | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Metric | | | Metric | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 28: Prefix Metric TLV Format | Figure 28: Prefix Metric TLV Format | |||
| Length is 4. | The length is 4. | |||
| 5.3.3.5. OSPF Forwarding Address TLV | 5.3.3.5. OSPF Forwarding Address TLV | |||
| The OSPF Forwarding Address TLV [RFC2328] [RFC5340] carries the OSPF | The OSPF Forwarding Address TLV [RFC2328] [RFC5340] carries the OSPF | |||
| forwarding address as known in the original OSPF advertisement. The | forwarding address as known in the original OSPF advertisement. The | |||
| forwarding address can be either IPv4 or IPv6. | forwarding address can be either IPv4 or IPv6. | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Forwarding Address (variable) // | // Forwarding Address (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 29: OSPF Forwarding Address TLV Format | Figure 29: OSPF Forwarding Address TLV Format | |||
| Length is 4 for an IPv4 forwarding address, and 16 for an IPv6 | The length is 4 for an IPv4 forwarding address and 16 for an IPv6 | |||
| forwarding address. | forwarding address. | |||
| 5.3.3.6. Opaque Prefix Attribute TLV | 5.3.3.6. Opaque Prefix Attribute TLV | |||
| The Opaque Prefix Attribute TLV is an envelope that transparently | The Opaque Prefix Attribute TLV is an envelope that transparently | |||
| carries optional Prefix Attribute TLVs advertised by a router. An | carries optional Prefix Attribute TLVs advertised by a router. An | |||
| originating router shall use this TLV for encoding information | originating router shall use this TLV for encoding information | |||
| specific to the protocol advertised in the NLRI header Protocol-ID | specific to the protocol advertised in the NLRI header Protocol-ID | |||
| field or new protocol extensions to the protocol as advertised in the | field or it shall use new protocol extensions for the protocol as | |||
| NLRI header Protocol-ID field for which there is no protocol-neutral | advertised in the NLRI header Protocol-ID field for which there is no | |||
| representation in the BGP Link-State NLRI. The primary use of the | protocol-neutral representation in the BGP Link-State NLRI. The | |||
| Opaque Prefix Attribute TLV is to bridge the document lag between a | primary use of the Opaque Prefix Attribute TLV is to bridge the | |||
| new IGP link-state attribute and its protocol-neutral BGP-LS | document lag between a new IGP link-state attribute and its protocol- | |||
| extension being defined. Once the protocol-neutral BGP-LS extensions | neutral BGP-LS extension being defined. Once the protocol-neutral | |||
| are defined, the BGP-LS implementations may still need to advertise | BGP-LS extensions are defined, the BGP-LS implementations may still | |||
| the information both within the Opaque Attribute TLV and the new TLV | need to advertise the information both within the Opaque Attribute | |||
| definition for incremental deployment and transition. | TLV and the new TLV definition for incremental deployment and | |||
| transition. | ||||
| In the case of OSPFv2, this TLV MUST NOT be used to advertise | In the case of OSPFv2, this TLV MUST NOT be used to advertise | |||
| information carried using TLVs other than those in the OSPFv2 | information carried using TLVs other than those in the OSPFv2 | |||
| Extended Prefix Opaque LSA [RFC7684]. In the case of OSPFv3, this | Extended Prefix Opaque LSA [RFC7684]. In the case of OSPFv3, this | |||
| TLV MUST NOT be used to advertise TLVs other than those in the OSPFv3 | TLV MUST NOT be used to advertise TLVs other than those in the OSPFv3 | |||
| E-Inter-Area-Prefix-LSA, E-Intra-Area-Prefix-LSA, E-AS-External- | E-Inter-Area-Prefix-LSA, E-Intra-Area-Prefix-LSA, E-AS-External-LSA, | |||
| Prefix-LSA, and E-NSSA-LSA [RFC8362]. | and E-NSSA-LSA [RFC8362]. | |||
| The format of the TLV is as follows: | The format of the TLV is 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Opaque Prefix Attributes (variable) // | // Opaque Prefix Attributes (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 30: Opaque Prefix Attribute TLV Format | Figure 30: Opaque Prefix Attribute TLV Format | |||
| The type is as specified in Table 10. Length is variable. | The Type is as specified in Table 10. The length is variable. | |||
| 5.4. Private Use | 5.4. Private Use | |||
| TLVs for Vendor Private use are supported using the code point range | TLVs for Vendor Private Use are supported using the code point range | |||
| reserved as indicated in Section 7. For such TLV use in the NLRI or | reserved as indicated in Section 7. For such TLV use in the NLRI or | |||
| BGP-LS Attribute, the format as described in Section 5.1 is to be | BGP-LS Attribute, the format described in Section 5.1 is to be used | |||
| used and a 4-octet field MUST be included as the first field in the | and a 4-octet field MUST be included as the first field in the value | |||
| value to carry the Enterprise Code. For a private use NLRI Type, a 4 | to carry the Enterprise Code. For a private use NLRI type, a 4-octet | |||
| octet field MUST be included as the first field in the NLRI | field MUST be included as the first field in the NLRI immediately | |||
| immediately following the Total NLRI Length field of the Link-State | following the Total NLRI Length field of the Link-State NLRI format | |||
| NLRI format as described in Section 5.2 to carry the Enterprise Code | as described in Section 5.2 to carry the Enterprise Code [ENTNUM]. | |||
| [ENTNUM]. This enables the use of vendor-specific extensions without | This enables the use of vendor-specific extensions without conflicts. | |||
| conflicts. | ||||
| Multiple instances of private-use TLVs MAY appear in the BGP-LS | Multiple instances of private-use TLVs MAY appear in the BGP-LS | |||
| Attribute. | Attribute. | |||
| 5.5. BGP Next-Hop Information | 5.5. BGP Next-Hop Information | |||
| BGP link-state information for both IPv4 and IPv6 networks can be | BGP link-state information for both IPv4 and IPv6 networks can be | |||
| carried over either an IPv4 BGP session or an IPv6 BGP session. If | carried over either an IPv4 BGP session or an IPv6 BGP session. If | |||
| an IPv4 BGP session is used, then the next-hop in the MP_REACH_NLRI | an IPv4 BGP session is used, then the next hop in the MP_REACH_NLRI | |||
| SHOULD be an IPv4 address. Similarly, if an IPv6 BGP session is | SHOULD be an IPv4 address. Similarly, if an IPv6 BGP session is | |||
| used, then the next-hop in the MP_REACH_NLRI SHOULD be an IPv6 | used, then the next hop in the MP_REACH_NLRI SHOULD be an IPv6 | |||
| address. Usually, the next-hop will be set to the local endpoint | address. Usually, the next hop will be set to the local endpoint | |||
| address of the BGP session. The next-hop address MUST be encoded as | address of the BGP session. The next-hop address MUST be encoded as | |||
| described in [RFC4760]. The Length field of the next-hop address | described in [RFC4760]. The Length field of the next-hop address | |||
| will specify the next-hop address family. If the next-hop length is | will specify the next-hop address family. If the next-hop length is | |||
| 4, then the next-hop is an IPv4 address; if the next-hop length is | 4, then the next hop is an IPv4 address; if the next-hop length is | |||
| 16, then it is a global IPv6 address; and if the next-hop length is | 16, then it is a global IPv6 address; and if the next-hop length is | |||
| 32, then there is one global IPv6 address followed by a link-local | 32, then there is one global IPv6 address followed by an IPv6 link- | |||
| IPv6 address. The link-local IPv6 address should be used as | local address. The IPv6 link-local address should be used as | |||
| described in [RFC2545]. For VPN Subsequent Address Family Identifier | described in [RFC2545]. For VPN Subsequent Address Family Identifier | |||
| (SAFI), as per custom, an 8-byte Route Distinguisher set to all zero | (SAFI), as per custom, an 8-byte Route Distinguisher set to all zero | |||
| is prepended to the next-hop. | is prepended to the next hop. | |||
| The BGP Next-Hop is used by each BGP-LS speaker to validate the NLRI | The BGP Next-Hop is used by each BGP-LS Speaker to validate the NLRI | |||
| it receives. In case identical NLRIs are sourced by multiple BGP-LS | it receives. In case identical NLRIs are sourced by multiple BGP-LS | |||
| Producers, the BGP Next-Hop is used to tiebreak as per the standard | Producers, the BGP Next-Hop is used to tiebreak as per the standard | |||
| BGP path decision process. This specification doesn't mandate any | BGP path decision process. This specification doesn't mandate any | |||
| rule regarding the rewrite of the BGP Next-Hop. | rule regarding the rewrite of the BGP Next-Hop. | |||
| 5.6. Inter-AS Links | 5.6. Inter-AS Links | |||
| The main source of TE information is the IGP, which is not active on | The main source of TE information is the IGP, which is not active on | |||
| inter-AS links. In some cases, the IGP may have information of | inter-AS links. In some cases, the IGP may have information of | |||
| inter-AS links [RFC5392] [RFC9346]. In other cases, an | inter-AS links [RFC5392] [RFC9346]. In other cases, an | |||
| implementation SHOULD provide a means to inject inter-AS links into | implementation SHOULD provide a means to inject inter-AS links into | |||
| BGP-LS. The exact mechanism used to advertise the inter-AS links is | BGP-LS. The exact mechanism used to advertise the inter-AS links is | |||
| outside the scope of this document. | outside the scope of this document. | |||
| 5.7. OSPF Virtual Links and Sham Links | 5.7. OSPF Virtual Links and Sham Links | |||
| In an OSPF [RFC2328] [RFC5340] network, OSPF virtual links serve to | In an OSPF [RFC2328] [RFC5340] network, OSPF virtual links serve to | |||
| connect physically separate components of the backbone to establish/ | connect physically separate components of the backbone to establish/ | |||
| maintain continuity of the backbone area. While OSPF virtual links | maintain continuity of the backbone area. While OSPF virtual links | |||
| are modeled as point-to-point unnumbered links in the OSPF topology, | are modeled as point-to-point, unnumbered links in the OSPF topology, | |||
| their characteristics and purpose are different from other types of | their characteristics and purpose are different from other types of | |||
| links in the OSPF topology. They are advertised using a distinct | links in the OSPF topology. They are advertised using a distinct | |||
| "virtual link" type in OSPF LSAs. The mechanism for the | "virtual link" type in OSPF LSAs. The mechanism for the | |||
| advertisement of OSPF virtual links via BGP-LS is outside the scope | advertisement of OSPF virtual links via BGP-LS is outside the scope | |||
| of this document. | of this document. | |||
| In an OSPF network, sham links [RFC4577] [RFC6565] are used to | In an OSPF network, sham links [RFC4577] [RFC6565] are used to | |||
| provide intra-area connectivity between VPN Routing and Forwarding | provide intra-area connectivity between VPN Routing and Forwarding | |||
| (VRF) instances on PE routers over the VPN provider's network. These | (VRF) instances on Provider Edge (PE) routers over the VPN provider's | |||
| links are advertised in OSPF as point-to-point unnumbered links and | network. These links are advertised in OSPF as point-to-point, | |||
| represent connectivity over a service provider network using | unnumbered links and represent connectivity over a service provider | |||
| encapsulation mechanisms like MPLS. As such, the mechanism for the | network using encapsulation mechanisms like MPLS. As such, the | |||
| advertisement of OSPF sham links follows the same procedures as other | mechanism for the advertisement of OSPF sham links follows the same | |||
| point-to-point unnumbered links as described previously in this | procedures as other point-to-point, unnumbered links as described | |||
| document. | previously in this document. | |||
| 5.8. OSPFv2 Type 4 Summary LSA & OSPFv3 Inter-Area Router LSA | 5.8. OSPFv2 Type 4 Summary-LSA & OSPFv3 Inter-Area-Router-LSA | |||
| OSPFv2 [RFC2328] defines the Type 4 Summary LSA and OSPFv3 [RFC5340] | OSPFv2 [RFC2328] defines the type 4 summary-LSA and OSPFv3 [RFC5340] | |||
| the Inter-area-router-LSA for an Area Border Router (ABR) to | defines the inter-area-router-LSA for an Area Border Router (ABR) to | |||
| advertise reachability to an AS Border Router (ASBR) that is external | advertise reachability to an AS Border Router (ASBR) that is external | |||
| to the area yet internal to the AS. The nature of information | to the area yet internal to the AS. The nature of information | |||
| advertised by OSPF using this type of LSA does not map to either a | advertised by OSPF using this type of LSA does not map to either a | |||
| node or a link or a prefix as discussed in this document. Therefore, | node, a link, or a prefix as discussed in this document. Therefore, | |||
| the mechanism for the advertisement of the information carried by | the mechanism for the advertisement of the information carried by | |||
| these LSAs is outside the scope of this document. | these LSAs is outside the scope of this document. | |||
| 5.9. Handling of Unreachable IGP Nodes | 5.9. Handling of Unreachable IGP Nodes | |||
| Consider an OSPF network as shown in Figure 31, where R2 and R3 are | Consider an OSPF network as shown in Figure 31, where R2 and R3 are | |||
| the BGP-LS Producers and also the OSPF Area Border Routers (ABRs). | the BGP-LS Producers and also the OSPF Area Border Routers (ABRs). | |||
| The link between R2 and R3 is in area 0 while the other links are in | The link between R2 and R3 is in area 0, while the other links are in | |||
| area 1 as indicated by the a0 and a1 references respectively against | area 1 as indicated by the a0 and a1 references respectively against | |||
| the links. | the links. | |||
| A BGP-LS Consumer talks to a BGP route reflector RR0 which is a BGP- | A BGP-LS Consumer talks to BGP route reflector RR0, which is a BGP-LS | |||
| LS Propagator that is aggregating the BGP-LS feed from the BGP-LS | Propagator that is aggregating the BGP-LS feed from BGP-LS Producers | |||
| Producers R2 and R3. Here R2 and R3 provide a redundant topology | R2 and R3. Here, R2 and R3 provide a redundant topology feed via | |||
| feed via BGP-LS to RR0. Normally, RR0 would receive two identical | BGP-LS to RR0. Normally, RR0 would receive two identical copies of | |||
| copies of all the Link-State NLRIs from both R2 and R3 and it would | all the Link-State NLRIs from both R2 and R3 and it would pick one of | |||
| pick one of them (say R2) based on the standard BGP Decision Process. | them (say R2) based on the standard BGP Decision Process. | |||
| BGP-LS Consumer | BGP-LS Consumer | |||
| ^ | ^ | |||
| | | | | |||
| RR0 | RR0 | |||
| (BGP Route Reflector) | (BGP Route Reflector) | |||
| / \ | / \ | |||
| / \ | / \ | |||
| a1 / a0 \ a1 | a1 / a0 \ a1 | |||
| R1 ------ R2 -------- R3 ------ R4 | R1 ------ R2 -------- R3 ------ R4 | |||
| a1 | | a1 | a1 | | a1 | |||
| | | | | | | |||
| R5 ---------------------------- R6 | R5 ---------------------------- R6 | |||
| a1 | a1 | |||
| Figure 31: Incorrect Reporting due to BGP Path Selection | Figure 31: Incorrect Reporting Due to BGP Path Selection | |||
| Consider a scenario where the link between R5 and R6 is lost (thereby | Consider a scenario where the link between R5 and R6 is lost (thereby | |||
| partitioning the area 1) and its impact on the OSPF LSDB at R2 and | partitioning the area 1), and consider its impact on the OSPF LSDB at | |||
| R3. | R2 and R3. | |||
| Now, R5 will remove the link R5-R6 from its Router LSA, and this | Now, R5 will remove the link R5-R6 from its Router LSA, and this | |||
| updated LSA is available at R2. R2 also has a stale copy of R6's | updated LSA is available at R2. R2 also has a stale copy of R6's | |||
| Router LSA that still has the link R6-R5 in it. Based on this view | Router LSA that still has the link R6-R5 in it. Based on this view | |||
| in its LSDB, R2 will advertise only the half-link R6-R5 that it | in its LSDB, R2 will advertise only the half-link R6-R5 that it | |||
| derives from R6's stale Router LSA. | derives from R6's stale Router LSA. | |||
| At the same time, R6 has removed the link R6-R5 from its Router LSA, | At the same time, R6 has removed the link R6-R5 from its Router LSA, | |||
| and this updated LSA is available at R3. Similarly, R3 also has a | and this updated LSA is available at R3. Similarly, R3 also has a | |||
| stale copy of R5's Router LSA having the link R5-R6 in it. Based on | stale copy of R5's Router LSA having the link R5-R6 in it. Based on | |||
| its LSDB, R3 will advertise only the half-link R5-R6 that it has | its LSDB, R3 will advertise only the half-link R5-R6 that it derives | |||
| derived from R5's stale Router LSA. | from R5's stale Router LSA. | |||
| Now, the BGP-LS Consumer receives both the Link NLRIs corresponding | Now, the BGP-LS Consumer receives both the Link NLRIs corresponding | |||
| to the half-links from R2 and R3 via RR0. When viewed together, it | to the half-links from R2 and R3 via RR0. When viewed together, it | |||
| would not detect or realize that area 1 is partitioned. Also, if R2 | would not detect or realize that area 1 is partitioned. Also, if R2 | |||
| continues to report Node and Prefix NLRIs corresponding to the stale | continues to report Node and Prefix NLRIs corresponding to the stale | |||
| copy of R4 and R6's Router LSAs then RR0 could prefer them over the | copy of R4's and R6's Router LSAs, then RR0 could prefer them over | |||
| valid Node and Prefix NLRIs for R4 and R6 that it is receiving from | the valid Node and Prefix NLRIs for R4 and R6 that it is receiving | |||
| R3 depending on RR0's BGP decision process. This would result in the | from R3 depending on RR0's BGP Decision Process. This would result | |||
| BGP-LS Consumer getting stale and inaccurate topology information. | in the BGP-LS Consumer getting stale and inaccurate topology | |||
| This problem scenario is avoided if R2 were to not advertise the | information. This problem scenario is avoided if R2 were to not | |||
| link-state information corresponding to R4 and R6 and if R3 were to | advertise the link-state information corresponding to R4 and R6 and | |||
| not advertise similarly for R1 and R5. | if R3 were to not advertise similarly for R1 and R5. | |||
| A BGP-LS Producer SHOULD withdraw all link-state objects advertised | A BGP-LS Producer SHOULD withdraw all link-state objects advertised | |||
| by it in BGP when the node that originated its corresponding LSP/LSAs | by it in BGP when the node that originated its corresponding LSPs/ | |||
| is determined to have become unreachable in the IGP. An | LSAs is determined to have become unreachable in the IGP. An | |||
| implementation MAY continue to advertise link-state objects | implementation MAY continue to advertise link-state objects | |||
| corresponding to unreachable nodes in a deployment use-case where the | corresponding to unreachable nodes in a deployment use case where the | |||
| BGP-LS Consumer is interested in receiving a topology feed | BGP-LS Consumer is interested in receiving a topology feed | |||
| corresponding to a complete IGP LSDB view. In such deployments, it | corresponding to a complete IGP LSDB view. In such deployments, it | |||
| is expected that the problem described above is mitigated by the BGP- | is expected that the problem described above is mitigated by the BGP- | |||
| LS Consumer via appropriate handling of such a topology feed in | LS Consumer via appropriate handling of such a topology feed in | |||
| addition to the use of either a direct BGP peering with the BGP-LS | addition to the use of either a direct BGP peering with the BGP-LS | |||
| Producer nodes or mechanisms such as [RFC7911] when using RRs. | Producer nodes or mechanisms such as those described in [RFC7911] | |||
| Details of these mechanisms are outside the scope of this document. | when using RRs. Details of these mechanisms are outside the scope of | |||
| this document. | ||||
| If the BGP-LS Producer does withdraw link-state objects associated | If the BGP-LS Producer does withdraw link-state objects associated | |||
| with an IGP node based on the failure of reachability check for that | with an IGP node based on the failure of reachability check for that | |||
| node, then it MUST re-advertise those link-state objects after that | node, then it MUST re-advertise those link-state objects after that | |||
| node becomes reachable again in the IGP domain. | node becomes reachable again in the IGP domain. | |||
| 5.10. Router-ID Anchoring Example: ISO Pseudonode | 5.10. Router-ID Anchoring Example: ISO Pseudonode | |||
| The encoding of a broadcast LAN in IS-IS provides a good example of | The encoding of a broadcast LAN in IS-IS provides a good example of | |||
| how Router-IDs are encoded. Consider Figure 32. This represents a | how Router-IDs are encoded. Consider Figure 32. This represents a | |||
| Broadcast LAN between a pair of routers. The "real" (non-pseudonode) | broadcast LAN between a pair of routers. The "real" (non-pseudonode) | |||
| routers have both an IPv4 Router-ID and IS-IS Node-ID. The | routers have both an IPv4 Router-ID and an IS-IS Node-ID. The | |||
| pseudonode does not have an IPv4 Router-ID. Node1 is the DIS for the | pseudonode does not have an IPv4 Router-ID. Node1 is the DIS for the | |||
| LAN. Two unidirectional links (Node1, Pseudonode1) and (Pseudonode1, | LAN. Two unidirectional links, (Node1, Pseudonode1) and | |||
| Node2) are being generated. | (Pseudonode1, Node2), are being generated. | |||
| The Link NLRI of (Node1, Pseudonode1) is encoded as follows. The IGP | The Link NLRI of (Node1, Pseudonode1) is encoded as follows. The IGP | |||
| Router-ID TLV of the local Node Descriptor is 6 octets long and | Router-ID TLV of the local Node Descriptor is 6 octets long and | |||
| contains the ISO-ID of Node1, 1920.0000.2001. The IGP Router-ID TLV | contains the ISO-ID of Node1, 1920.0000.2001. The IGP Router-ID TLV | |||
| of the remote Node Descriptor is 7 octets long and contains the ISO- | of the remote Node Descriptor is 7 octets long and contains the ISO- | |||
| ID of Pseudonode1, 1920.0000.2001.02. The BGP-LS Attribute of this | ID of Pseudonode1, 1920.0000.2001.02. The BGP-LS Attribute of this | |||
| link contains one local IPv4 Router-ID TLV (TLV type 1028) containing | link contains one local IPv4 Router-ID TLV (TLV type 1028) containing | |||
| 192.0.2.1, the IPv4 Router-ID of Node1. | 192.0.2.1, the IPv4 Router-ID of Node1. | |||
| The Link NLRI of (Pseudonode1, Node2) is encoded as follows. The IGP | The Link NLRI of (Pseudonode1, Node2) is encoded as follows. The IGP | |||
| skipping to change at page 45, line 25 ¶ | skipping to change at line 1968 ¶ | |||
| |1920.0000.2001.00|--->|1920.0000.2001.02|--->|1920.0000.2002.00| | |1920.0000.2001.00|--->|1920.0000.2001.02|--->|1920.0000.2002.00| | |||
| | 192.0.2.1 | | | | 192.0.2.2 | | | 192.0.2.1 | | | | 192.0.2.2 | | |||
| +-----------------+ +-----------------+ +-----------------+ | +-----------------+ +-----------------+ +-----------------+ | |||
| Figure 32: IS-IS Pseudonodes | Figure 32: IS-IS Pseudonodes | |||
| 5.11. Router-ID Anchoring Example: OSPF Pseudonode | 5.11. Router-ID Anchoring Example: OSPF Pseudonode | |||
| The encoding of a broadcast LAN in OSPF provides a good example of | The encoding of a broadcast LAN in OSPF provides a good example of | |||
| how Router-IDs and local Interface IPs are encoded. Consider | how Router-IDs and local Interface IPs are encoded. Consider | |||
| Figure 33. This represents a Broadcast LAN between a pair of | Figure 33. This represents a broadcast LAN between a pair of | |||
| routers. The "real" (non-pseudonode) routers have both an IPv4 | routers. The "real" (non-pseudonode) routers have both an IPv4 | |||
| Router-ID and an Area Identifier. The pseudonode does have an IPv4 | Router-ID and an Area Identifier. The pseudonode does have an IPv4 | |||
| Router-ID, an IPv4 Interface Address (for disambiguation), and an | Router-ID, an IPv4 Interface Address (for disambiguation), and an | |||
| OSPF Area. Node1 is the DR for the LAN; hence, its local IP address | OSPF Area. Node1 is the DR for the LAN; hence, its local IP address | |||
| 198.51.100.1 is used as both the Router-ID and Interface IP for the | 198.51.100.1 is used as both the Router-ID and Interface IP for the | |||
| pseudonode keys. Two unidirectional links, (Node1, Pseudonode1) and | pseudonode keys. Two unidirectional links, (Node1, Pseudonode1) and | |||
| (Pseudonode1, Node2), are being generated. | (Pseudonode1, Node2), are being generated. | |||
| The Link NLRI of (Node1, Pseudonode1) is encoded as follows: | The Link NLRI of (Node1, Pseudonode1) is encoded as follows: | |||
| * Local Node Descriptor | * Local Node Descriptor | |||
| TLV #515: IGP Router-ID: 192.0.2.1 | TLV #515: IGP Router-ID: 192.0.2.1 | |||
| TLV #514: OSPF Area-ID: ID:0.0.0.0 | TLV #514: OSPF Area-ID: ID:0.0.0.0 | |||
| * Remote Node Descriptor | * Remote Node Descriptor | |||
| TLV #515: IGP Router-ID: 192.0.2.1:198.51.100.1 | TLV #515: IGP Router-ID: 192.0.2.1:198.51.100.1 | |||
| TLV #514: OSPF Area-ID: ID:0.0.0.0 | TLV #514: OSPF Area-ID: ID:0.0.0.0 | |||
| The Link NLRI of (Pseudonode1, Node2) is encoded as follows: | The Link NLRI of (Pseudonode1, Node2) is encoded as follows: | |||
| * Local Node Descriptor | * Local Node Descriptor | |||
| TLV #515: IGP Router-ID: 192.0.2.1:198.51.100.1 | TLV #515: IGP Router-ID: 192.0.2.1:198.51.100.1 | |||
| TLV #514: OSPF Area-ID: ID:0.0.0.0 | ||||
| TLV #514: OSPF Area-ID: ID:0.0.0.0 | ||||
| * Remote Node Descriptor | * Remote Node Descriptor | |||
| TLV #515: IGP Router-ID: 192.0.2.2 | TLV #515: IGP Router-ID: 192.0.2.2 | |||
| TLV #514: OSPF Area-ID: ID:0.0.0.0 | TLV #514: OSPF Area-ID: ID:0.0.0.0 | |||
| 198.51.100.1/24 198.51.100.2/24 | 198.51.100.1/24 198.51.100.2/24 | |||
| +-------------+ +-------------+ +-------------+ | +-------------+ +-------------+ +-------------+ | |||
| | Node1 | | Pseudonode1 | | Node2 | | | Node1 | | Pseudonode1 | | Node2 | | |||
| | 192.0.2.1 |--->| 192.0.2.1 |--->| 192.0.2.2 | | | 192.0.2.1 |--->| 192.0.2.1 |--->| 192.0.2.2 | | |||
| | | |198.51.100.1 | | | | | | |198.51.100.1 | | | | |||
| | Area 0 | | Area 0 | | Area 0 | | | Area 0 | | Area 0 | | Area 0 | | |||
| +-------------+ +-------------+ +-------------+ | +-------------+ +-------------+ +-------------+ | |||
| Figure 33: OSPF Pseudonodes | Figure 33: OSPF Pseudonodes | |||
| The LAN subnet 198.51.100.0/24 is not included in the Router LSA of | The LAN subnet 198.51.100.0/24 is not included in the Router LSA of | |||
| Node1 or Node2. The Network LSA for this LAN advertised by the DR | Node1 or Node2. The Network LSA for this LAN advertised by the DR | |||
| Node1 contains the subnet mask for the LAN along with the DR address. | Node1 contains the subnet mask for the LAN along with the DR address. | |||
| A Prefix NLRI corresponding to the LAN subnet is advertised with the | A Prefix NLRI corresponding to the LAN subnet is advertised with the | |||
| Pseudonode1 used as the Local node using the DR address and the | Pseudonode1 used as the local node using the DR address and the | |||
| subnet mask from the Network LSA. | subnet mask from the Network LSA. | |||
| 5.12. Router-ID Anchoring Example: OSPFv2 to IS-IS Migration | 5.12. Router-ID Anchoring Example: OSPFv2 to IS-IS Migration | |||
| Graceful migration from one IGP to another requires coordinated | Graceful migration from one IGP to another requires coordinated | |||
| operation of both protocols during the migration period. Such | operation of both protocols during the migration period. Such | |||
| coordination requires identifying a given physical link in both IGPs. | coordination requires identifying a given physical link in both IGPs. | |||
| The IPv4 Router-ID provides that "glue", which is present in the Node | The IPv4 Router-ID provides that "glue", which is present in the Node | |||
| Descriptors of the OSPF Link NLRI and in the link attribute of the | Descriptors of the OSPF Link NLRI and in the link attribute of the | |||
| IS-IS Link NLRI. | IS-IS Link NLRI. | |||
| Consider a point-to-point link between two routers, A and B, that | Consider a point-to-point link between two routers, A and B, which | |||
| initially were OSPFv2-only routers and then IS-IS is enabled on them. | initially were OSPFv2-only routers and then had IS-IS enabled on | |||
| Node A has IPv4 Router-ID and ISO-ID; node B has IPv4 Router-ID, IPv6 | them. Node A has IPv4 Router-ID and ISO-ID; node B has IPv4 Router- | |||
| Router-ID, and ISO-ID. Each protocol generates one Link NLRI for the | ID, IPv6 Router-ID, and ISO-ID. Each protocol generates one Link | |||
| link (A, B), both of which are carried by BGP-LS. The OSPFv2 Link | NLRI for the link (A, B), both of which are carried by BGP-LS. The | |||
| NLRI for the link is encoded with the IPv4 Router-ID of nodes A and B | OSPFv2 Link NLRI for the link is encoded with the IPv4 Router-ID of | |||
| in the local and remote Node Descriptors, respectively. The IS-IS | nodes A and B in the local and remote Node Descriptors, respectively. | |||
| Link NLRI for the link is encoded with the ISO-ID of nodes A and B in | The IS-IS Link NLRI for the link is encoded with the ISO-ID of nodes | |||
| the local and remote Node Descriptors, respectively. In addition, | A and B in the local and remote Node Descriptors, respectively. In | |||
| the BGP-LS Attribute of the IS-IS Link NLRI contains the TLV type | addition, the BGP-LS Attribute of the IS-IS Link NLRI contains the | |||
| 1028 containing the IPv4 Router-ID of node A, TLV type 1030 | TLV type 1028 containing the IPv4 Router-ID of node A, TLV type 1030 | |||
| containing the IPv4 Router-ID of node B, and TLV type 1031 containing | containing the IPv4 Router-ID of node B, and TLV type 1031 containing | |||
| the IPv6 Router-ID of node B. In this case, by using IPv4 Router-ID, | the IPv6 Router-ID of node B. In this case, by using IPv4 Router-ID, | |||
| the link (A, B) can be identified in both the IS-IS and OSPF | the link (A, B) can be identified in both the IS-IS and OSPF | |||
| protocols. | protocols. | |||
| 6. Link to Path Aggregation | 6. Link to Path Aggregation | |||
| Distribution of all links available on the global Internet is | Distribution of all links available on the global Internet is | |||
| certainly possible; however, it is not desirable from a scaling and | certainly possible; however, it is not desirable from a scaling and | |||
| privacy point of view. Therefore, an implementation may support a | privacy point of view. Therefore, an implementation may support a | |||
| skipping to change at page 47, line 39 ¶ | skipping to change at line 2065 ¶ | |||
| aggregated set of link properties between a pair of non-adjacent | aggregated set of link properties between a pair of non-adjacent | |||
| nodes. The actual methods to compute the path properties (of | nodes. The actual methods to compute the path properties (of | |||
| bandwidth, metric, etc.) are outside the scope of this document. The | bandwidth, metric, etc.) are outside the scope of this document. The | |||
| decision of whether to advertise all specific links or aggregated | decision of whether to advertise all specific links or aggregated | |||
| links is an operator's policy choice. To highlight the varying | links is an operator's policy choice. To highlight the varying | |||
| levels of exposure, the following deployment examples are discussed. | levels of exposure, the following deployment examples are discussed. | |||
| 6.1. Example: No Link Aggregation | 6.1. Example: No Link Aggregation | |||
| Consider Figure 34. Both AS1 and AS2 operators want to protect their | Consider Figure 34. Both AS1 and AS2 operators want to protect their | |||
| inter-AS {R1, R3}, {R2, R4} links using RSVP-FRR LSPs. If R1 wants | inter-AS {R1, R3}, {R2, R4} links using RSVP - Fast Reroute (RSVP- | |||
| to compute its link-protection LSP to R3, it needs to "see" an | FRR) LSPs. If R1 wants to compute its link-protection LSP to R3, it | |||
| alternate path to R3. Therefore, the AS2 operator exposes its | needs to "see" an alternate path to R3. Therefore, the AS2 operator | |||
| topology. All BGP-TE-enabled routers in AS1 "see" the full topology | exposes its topology. All BGP-TE-enabled routers in AS1 "see" the | |||
| of AS2 and therefore can compute a backup path. Note that the | full topology of AS2 and therefore can compute a backup path. Note | |||
| computing router decides if the direct link between {R3, R4} or the | that the computing router decides if the direct link between {R3, R4} | |||
| {R4, R5, R3} path is used. | or the {R4, R5, R3} path is used. | |||
| AS1 : AS2 | AS1 : AS2 | |||
| : | : | |||
| R1-------R3 | R1-------R3 | |||
| | : | \ | | : | \ | |||
| | : | R5 | | : | R5 | |||
| | : | / | | : | / | |||
| R2-------R4 | R2-------R4 | |||
| : | : | |||
| : | : | |||
| skipping to change at page 49, line 19 ¶ | skipping to change at line 2127 ¶ | |||
| | : : vR0 | | : : vR0 | |||
| | : : / | | : : / | |||
| R2-------R4----- | R2-------R4----- | |||
| : : | : : | |||
| : : | : : | |||
| Figure 36: Multi-AS Aggregation | Figure 36: Multi-AS Aggregation | |||
| 7. IANA Considerations | 7. IANA Considerations | |||
| As this document obsoletes [RFC7752] and [RFC9029], IANA is requested | As this document obsoletes [RFC7752] and [RFC9029], IANA has updated | |||
| to change all registration information that references those | all registration information that references those documents to | |||
| documents to instead reference this document. | instead reference this document. | |||
| IANA has assigned address family number 16388 (BGP-LS) in the | IANA has assigned address family number 16388 (BGP-LS) in the | |||
| "Address Family Numbers" registry. | "Address Family Numbers" registry. | |||
| IANA has assigned SAFI values 71 (BGP-LS) and 72 (BGP-LS-VPN) in the | IANA has assigned SAFI values 71 (BGP-LS) and 72 (BGP-LS-VPN) in the | |||
| "SAFI Values" registry under the "Subsequent Address Family | "SAFI Values" registry under the "Subsequent Address Family | |||
| Identifiers (SAFI) Parameters" registry group. | Identifiers (SAFI) Parameters" registry group. | |||
| IANA has assigned value 29 (BGP-LS Attribute) in the "BGP Path | IANA has assigned value 29 (BGP-LS Attribute) in the "BGP Path | |||
| Attributes" registry under the "Border Gateway Protocol (BGP) | Attributes" registry under the "Border Gateway Protocol (BGP) | |||
| skipping to change at page 49, line 44 ¶ | skipping to change at line 2152 ¶ | |||
| IANA has created a "Border Gateway Protocol - Link-State (BGP-LS) | IANA has created a "Border Gateway Protocol - Link-State (BGP-LS) | |||
| Parameters" registry group at <https://www.iana.org/assignments/bgp- | Parameters" registry group at <https://www.iana.org/assignments/bgp- | |||
| ls-parameters>. | ls-parameters>. | |||
| This section also incorporates all the changes to the allocation | This section also incorporates all the changes to the allocation | |||
| procedures for the BGP-LS IANA registry group as well as the | procedures for the BGP-LS IANA registry group as well as the | |||
| guidelines for designated experts introduced by [RFC9029]. | guidelines for designated experts introduced by [RFC9029]. | |||
| 7.1. BGP-LS Registries | 7.1. BGP-LS Registries | |||
| All of the registries listed in the following subsections are BGP-LS | All of the registries listed in the following subsections are | |||
| specific and are accessible under this registry. | specific to BGP-LS and are accessible under this registry. | |||
| 7.1.1. BGP-LS NLRI Types Registry | 7.1.1. BGP-LS NLRI Types Registry | |||
| The "BGP-LS NLRI Types" registry has been set up for assignment for | The "BGP-LS NLRI Types" registry has been set up for assignment for | |||
| the two-octet sized code-points for BGP-LS NLRI types and populated | the two-octet-sized code points for BGP-LS NLRI types and populated | |||
| with the values shown below: | with the values shown below: | |||
| +=============+===========================+=================+ | +=============+===========================+===========+ | |||
| | Type | NLRI Type | Reference | | | Type | NLRI Type | Reference | | |||
| +=============+===========================+=================+ | +=============+===========================+===========+ | |||
| | 0 | Reserved | [This document] | | | 0 | Reserved | RFC 9552 | | |||
| +-------------+---------------------------+-----------------+ | +-------------+---------------------------+-----------+ | |||
| | 1 | Node NLRI | [This document] | | | 1 | Node NLRI | RFC 9552 | | |||
| +-------------+---------------------------+-----------------+ | +-------------+---------------------------+-----------+ | |||
| | 2 | Link NLRI | [This document] | | | 2 | Link NLRI | RFC 9552 | | |||
| +-------------+---------------------------+-----------------+ | +-------------+---------------------------+-----------+ | |||
| | 3 | IPv4 Topology Prefix NLRI | [This document] | | | 3 | IPv4 Topology Prefix NLRI | RFC 9552 | | |||
| +-------------+---------------------------+-----------------+ | +-------------+---------------------------+-----------+ | |||
| | 4 | IPv6 Topology Prefix NLRI | [This document] | | | 4 | IPv6 Topology Prefix NLRI | RFC 9552 | | |||
| +-------------+---------------------------+-----------------+ | +-------------+---------------------------+-----------+ | |||
| | 65000-65535 | Private Use | [This document] | | | 65000-65535 | Private Use | RFC 9552 | | |||
| +-------------+---------------------------+-----------------+ | +-------------+---------------------------+-----------+ | |||
| Table 12: BGP-LS NLRI Types | Table 12: BGP-LS NLRI Types | |||
| A range is reserved for Private Use [RFC8126]. All other allocations | A range is reserved for Private Use [RFC8126]. All other allocations | |||
| within the registry are to be made using the "Expert Review" policy | within the registry are to be made using the "Expert Review" policy | |||
| [RFC8126] that requires documentation of the proposed use of the | [RFC8126], which requires documentation of the proposed use of the | |||
| allocated value and approval by the Designated Expert assigned by the | allocated value and approval by the designated expert assigned by the | |||
| IESG. | IESG. | |||
| 7.1.2. BGP-LS Protocol-IDs Registry | 7.1.2. BGP-LS Protocol-IDs Registry | |||
| The "BGP-LS Protocol-IDs" registry has been set up for assignment for | The "BGP-LS Protocol-IDs" registry has been set up for assignment for | |||
| the one-octet sized code-points for BGP-LS Protocol-IDs and populated | the one-octet-sized code points for BGP-LS Protocol-IDs and populated | |||
| with the values shown below: | with the values shown below: | |||
| +=============+==================================+=================+ | +=============+==================================+===========+ | |||
| | Protocol-ID | NLRI information source protocol | Reference | | | Protocol-ID | NLRI information source protocol | Reference | | |||
| +=============+==================================+=================+ | +=============+==================================+===========+ | |||
| | 0 | Reserved | [This document] | | | 0 | Reserved | RFC 9552 | | |||
| +-------------+----------------------------------+-----------------+ | +-------------+----------------------------------+-----------+ | |||
| | 1 | IS-IS Level 1 | [This document] | | | 1 | IS-IS Level 1 | RFC 9552 | | |||
| +-------------+----------------------------------+-----------------+ | +-------------+----------------------------------+-----------+ | |||
| | 2 | IS-IS Level 2 | [This document] | | | 2 | IS-IS Level 2 | RFC 9552 | | |||
| +-------------+----------------------------------+-----------------+ | +-------------+----------------------------------+-----------+ | |||
| | 3 | OSPFv2 | [This document] | | | 3 | OSPFv2 | RFC 9552 | | |||
| +-------------+----------------------------------+-----------------+ | +-------------+----------------------------------+-----------+ | |||
| | 4 | Direct | [This document] | | | 4 | Direct | RFC 9552 | | |||
| +-------------+----------------------------------+-----------------+ | +-------------+----------------------------------+-----------+ | |||
| | 5 | Static configuration | [This document] | | | 5 | Static configuration | RFC 9552 | | |||
| +-------------+----------------------------------+-----------------+ | +-------------+----------------------------------+-----------+ | |||
| | 6 | OSPFv3 | [This document] | | | 6 | OSPFv3 | RFC 9552 | | |||
| +-------------+----------------------------------+-----------------+ | +-------------+----------------------------------+-----------+ | |||
| | 200-255 | Private Use | [This document] | | | 200-255 | Private Use | RFC 9552 | | |||
| +-------------+----------------------------------+-----------------+ | +-------------+----------------------------------+-----------+ | |||
| Table 13: BGP-LS Protocol-IDs | Table 13: BGP-LS Protocol-IDs | |||
| A range is reserved for Private Use [RFC8126]. All other allocations | A range is reserved for Private Use [RFC8126]. All other allocations | |||
| within the registry are to be made using the "Expert Review" policy | within the registry are to be made using the "Expert Review" policy | |||
| [RFC8126] that requires documentation of the proposed use of the | [RFC8126], which requires documentation of the proposed use of the | |||
| allocated value and approval by the Designated Expert assigned by the | allocated value and approval by the designated expert assigned by the | |||
| IESG. | IESG. | |||
| 7.1.3. BGP-LS Well-Known Instance-IDs Registry | 7.1.3. BGP-LS Well-Known Instance-IDs Registry | |||
| The "BGP-LS Well-Known Instance-IDs" registry that was set up via | The "BGP-LS Well-Known Instance-IDs" registry that was set up via | |||
| [RFC7752] is no longer required. IANA is requested to mark this | [RFC7752] is no longer required. IANA has marked this registry | |||
| registry as obsolete and to change its registration procedure to | obsolete and changed its registration procedure to "registry closed". | |||
| "registry closed". | ||||
| 7.1.4. BGP-LS Node Flags Registry | 7.1.4. BGP-LS Node Flags Registry | |||
| The "BGP-LS Node Flags" registry is requested to be created for the | The "BGP-LS Node Flags" registry has been created for the one-octet- | |||
| one octet-sized flags field of the Node Flag Bits TLV (1024) and | sized flags field of the Node Flag Bits TLV (1024) and populated with | |||
| populated with the initial values shown below: | the initial values shown below: | |||
| +=====+======================+=================+ | +=====+======================+===========+ | |||
| | Bit | Description | Reference | | | Bit | Description | Reference | | |||
| +=====+======================+=================+ | +=====+======================+===========+ | |||
| | 0 | Overload Bit (O-bit) | [This document] | | | 0 | Overload Bit (O-bit) | RFC 9552 | | |||
| +-----+----------------------+-----------------+ | +-----+----------------------+-----------+ | |||
| | 1 | Attached Bit (A-bit) | [This document] | | | 1 | Attached Bit (A-bit) | RFC 9552 | | |||
| +-----+----------------------+-----------------+ | +-----+----------------------+-----------+ | |||
| | 2 | External Bit (E-bit) | [This document] | | | 2 | External Bit (E-bit) | RFC 9552 | | |||
| +-----+----------------------+-----------------+ | +-----+----------------------+-----------+ | |||
| | 3 | ABR Bit (B-bit) | [This document] | | | 3 | ABR Bit (B-bit) | RFC 9552 | | |||
| +-----+----------------------+-----------------+ | +-----+----------------------+-----------+ | |||
| | 4 | Router Bit (R-bit) | [This document] | | | 4 | Router Bit (R-bit) | RFC 9552 | | |||
| +-----+----------------------+-----------------+ | +-----+----------------------+-----------+ | |||
| | 5 | V6 Bit (V-bit) | [This document] | | | 5 | V6 Bit (V-bit) | RFC 9552 | | |||
| +-----+----------------------+-----------------+ | +-----+----------------------+-----------+ | |||
| | 6-7 | Unassigned | [This document] | | | 6-7 | Unassigned | | | |||
| +-----+----------------------+-----------------+ | +-----+----------------------+-----------+ | |||
| Table 14: BGP-LS Node Flags | Table 14: BGP-LS Node Flags | |||
| Allocations within the registry are to be made using the "Expert | Allocations within the registry are to be made using the "Expert | |||
| Review" policy [RFC8126] that requires documentation of the proposed | Review" policy [RFC8126], which requires documentation of the | |||
| use of the allocated value and approval by the Designated Expert | proposed use of the allocated value and approval by the designated | |||
| assigned by the IESG. | expert assigned by the IESG. | |||
| 7.1.5. BGP-LS MPLS Protocol Mask Registry | 7.1.5. BGP-LS MPLS Protocol Mask Registry | |||
| The "BGP-LS MPLS Protocol Mask" registry is requested to be created | The "BGP-LS MPLS Protocol Mask" registry has been created for the | |||
| for the one octet-sized flags field of the MPLS Protocol Mask TLV | one-octet-sized flags field of the MPLS Protocol Mask TLV (1094) and | |||
| (1094) and populated with the initial values shown below: | populated with the initial values shown below: | |||
| +=====+===========================================+=================+ | +=====+===========================================+===========+ | |||
| | Bit | Description | Reference | | | Bit | Description | Reference | | |||
| +=====+===========================================+=================+ | +=====+===========================================+===========+ | |||
| | 0 | Label Distribution Protocol (L-bit) | [This document] | | | 0 | Label Distribution Protocol (L-bit) | RFC 9552 | | |||
| +-----+-------------------------------------------+-----------------+ | +-----+-------------------------------------------+-----------+ | |||
| | 1 | Extension to RSVP for LSP Tunnels | [This document] | | | 1 | Extension to RSVP for LSP Tunnels (R-bit) | RFC 9552 | | |||
| | | (R-bit) | | | +-----+-------------------------------------------+-----------+ | |||
| +-----+-------------------------------------------+-----------------+ | | 2-7 | Unassigned | | | |||
| | 2-7 | Unassigned | [This document] | | +-----+-------------------------------------------+-----------+ | |||
| +-----+-------------------------------------------+-----------------+ | ||||
| Table 15: BGP-LS MPLS Protocol Mask | Table 15: BGP-LS MPLS Protocol Mask | |||
| Allocations within the registry are to be made using the "Expert | Allocations within the registry are to be made using the "Expert | |||
| Review" policy [RFC8126] that requires documentation of the proposed | Review" policy [RFC8126], which requires documentation of the | |||
| use of the allocated value and approval by the Designated Expert | proposed use of the allocated value and approval by the designated | |||
| assigned by the IESG. | expert assigned by the IESG. | |||
| 7.1.6. BGP-LS IGP Prefix Flags Registry | 7.1.6. BGP-LS IGP Prefix Flags Registry | |||
| The "BGP-LS IGP Prefix Flags" registry is requested to be created for | The "BGP-LS IGP Prefix Flags" registry has been created for the one- | |||
| the one octet-sized flags field of the IGP Flags TLV (1152) and | octet-sized flags field of the IGP Flags TLV (1152) and populated | |||
| populated with the initial values shown below: | with the initial values shown below: | |||
| +=====+===================================+=================+ | +=====+===================================+===========+ | |||
| | Bit | Description | Reference | | | Bit | Description | Reference | | |||
| +=====+===================================+=================+ | +=====+===================================+===========+ | |||
| | 0 | IS-IS Up/Down Bit (D-bit) | [This document] | | | 0 | IS-IS Up/Down Bit (D-bit) | RFC 9552 | | |||
| +-----+-----------------------------------+-----------------+ | +-----+-----------------------------------+-----------+ | |||
| | 1 | OSPF "no unicast" Bit (N-bit) | [This document] | | | 1 | OSPF "no unicast" Bit (N-bit) | RFC 9552 | | |||
| +-----+-----------------------------------+-----------------+ | +-----+-----------------------------------+-----------+ | |||
| | 2 | OSPF "local address" Bit (L-bit) | [This document] | | | 2 | OSPF "local address" Bit (L-bit) | RFC 9552 | | |||
| +-----+-----------------------------------+-----------------+ | +-----+-----------------------------------+-----------+ | |||
| | 3 | OSPF "propagate NSSA" Bit (P-bit) | [This document] | | | 3 | OSPF "propagate NSSA" Bit (P-bit) | RFC 9552 | | |||
| +-----+-----------------------------------+-----------------+ | +-----+-----------------------------------+-----------+ | |||
| | 4-7 | Unassigned | [This document] | | | 4-7 | Unassigned | | | |||
| +-----+-----------------------------------+-----------------+ | +-----+-----------------------------------+-----------+ | |||
| Table 16: BGP-LS IGP Prefix Flags | Table 16: BGP-LS IGP Prefix Flags | |||
| Allocations within the registry are to be made using the "Expert | Allocations within the registry are to be made using the "Expert | |||
| Review" policy [RFC8126] that requires documentation of the proposed | Review" policy [RFC8126], which requires documentation of the | |||
| use of the allocated value and approval by the Designated Expert | proposed use of the allocated value and approval by the designated | |||
| assigned by the IESG. | expert assigned by the IESG. | |||
| 7.1.7. BGP-LS TLVs Registry | 7.1.7. BGP-LS TLVs Registry | |||
| The "BGP-LS Node Descriptor, Link Descriptor, Prefix Descriptor, and | The "BGP-LS Node Descriptor, Link Descriptor, Prefix Descriptor, and | |||
| Attribute TLVs" registry was created via [RFC7752]. This document | Attribute TLVs" registry was created via [RFC7752]. Per this | |||
| requests IANA to rename that registry to "BGP-LS NLRI and Attribute | document, IANA has renamed that registry to "BGP-LS NLRI and | |||
| TLVs" and to remove the column for "IS-IS TLV/Sub-TLV". The | Attribute TLVs" and removed the column for "IS-IS TLV/Sub-TLV". The | |||
| registration procedures are as below: | registration procedures are as follows: | |||
| +================+================================+ | +================+================================+ | |||
| | TLV Code Point | Registration Process | | | TLV Code Point | Registration Process | | |||
| +================+================================+ | +================+================================+ | |||
| | 0-255 | Reserved (not to be allocated) | | | 0-255 | Reserved (not to be allocated) | | |||
| +----------------+--------------------------------+ | +----------------+--------------------------------+ | |||
| | 256-64999 | Expert Review | | | 256-64999 | Expert Review | | |||
| +----------------+--------------------------------+ | +----------------+--------------------------------+ | |||
| | 65000-65535 | Private Use | | | 65000-65535 | Private Use | | |||
| +----------------+--------------------------------+ | +----------------+--------------------------------+ | |||
| Table 17: BGP-LS TLVs Registration Process | Table 17: BGP-LS TLVs Registration Process | |||
| A range is reserved for Private Use [RFC8126]. All other allocations | A range is reserved for Private Use [RFC8126]. All other allocations | |||
| except for the reserved range within the registry are to be made | except for the reserved range within the registry are to be made | |||
| using the "Expert Review" policy [RFC8126] that requires | using the "Expert Review" policy [RFC8126], which requires | |||
| documentation of the proposed use of the allocated value and approval | documentation of the proposed use of the allocated value and approval | |||
| by the Designated Expert assigned by the IESG. | by the designated expert assigned by the IESG. | |||
| The registry was pre-populated with the values shown in Table 18 and | The registry was pre-populated with the values shown in Table 18, and | |||
| the reference for all those allocations should be changed to this | the reference for each allocation has been changed to this document | |||
| document and the respective section where those TLVs are specified. | and the respective section where those TLVs are specified. | |||
| 7.2. Guidance for Designated Experts | 7.2. Guidance for Designated Experts | |||
| In all cases of review by the designated expert described here, the | In all cases of review by the designated expert described here, the | |||
| designated expert is expected to check the clarity of purpose and use | designated expert is expected to check the clarity of purpose and use | |||
| of the requested code points. The following points apply to the | of the requested code points. The following points apply to the | |||
| registries discussed in this document: | registries discussed in this document: | |||
| 1. Application for a code point allocation may be made to the | 1. Application for a code point allocation may be made to the | |||
| designated experts at any time and MUST be accompanied by | designated experts at any time and MUST be accompanied by | |||
| technical documentation explaining the use of the code point. | technical documentation explaining the use of the code point. | |||
| Such documentation SHOULD be presented in the form of an | Such documentation SHOULD be presented in the form of an | |||
| Internet-Draft, but MAY arrive in any form that can be reviewed | Internet-Draft but MAY arrive in any form that can be reviewed | |||
| and exchanged among reviewers. | and exchanged among reviewers. | |||
| 2. The designated experts SHOULD only consider requests that arise | 2. The designated experts SHOULD only consider requests that arise | |||
| from Internet-Drafts that have already been accepted as working | from Internet-Drafts that have already been accepted as working | |||
| group documents or that are planned for progression as AD- | group documents or that are planned for progression as AD- | |||
| Sponsored documents in the absence of a suitably chartered | Sponsored documents in the absence of a suitably chartered | |||
| working group. | working group. | |||
| 3. In the case of working group documents, the designated experts | 3. In the case of working group documents, the designated experts | |||
| MUST check with the working group chairs that there is a | MUST check with the working group chairs that there is a | |||
| skipping to change at page 55, line 14 ¶ | skipping to change at line 2384 ¶ | |||
| 6. The designated expert MUST ensure that any request for a code | 6. The designated expert MUST ensure that any request for a code | |||
| point does not conflict with work that is active or already | point does not conflict with work that is active or already | |||
| published within the IETF. | published within the IETF. | |||
| 7. Once the designated experts have approved, IANA will update the | 7. Once the designated experts have approved, IANA will update the | |||
| registry by marking the allocated code points with a reference to | registry by marking the allocated code points with a reference to | |||
| the associated document. | the associated document. | |||
| 8. In the event that the document is a working group document or is | 8. In the event that the document is a working group document or is | |||
| AD-Sponsored, and that document fails to progress to publication | AD-Sponsored and fails to progress to publication as an RFC, the | |||
| as an RFC, the working group chairs or AD SHOULD contact IANA to | working group chairs or AD SHOULD contact IANA to coordinate | |||
| coordinate about marking the code points as deprecated. A | about marking the code points as deprecated. A deprecated code | |||
| deprecated code point is not marked as allocated for use and is | point is not marked as allocated for use and is not available for | |||
| not available for allocation in a future document. The WG chairs | allocation in a future document. The WG chairs may inform IANA | |||
| may inform IANA that a deprecated code point can be completely | that a deprecated code point can be completely deallocated (i.e., | |||
| deallocated (i.e., made available for new allocations) at any | made available for new allocations) at any time after it has been | |||
| time after it has been deprecated if there is a shortage of | deprecated if there is a shortage of unallocated code points in | |||
| unallocated code points in the registry. | the registry. | |||
| 8. Manageability Considerations | 8. Manageability Considerations | |||
| This section is structured as recommended in [RFC5706]. | This section is structured as recommended in [RFC5706]. | |||
| 8.1. Operational Considerations | 8.1. Operational Considerations | |||
| 8.1.1. Operations | 8.1.1. Operations | |||
| Existing BGP operational procedures apply. No new operation | Existing BGP operational procedures apply. No new operation | |||
| skipping to change at page 55, line 44 ¶ | skipping to change at line 2414 ¶ | |||
| information present in this document carries purely application-level | information present in this document carries purely application-level | |||
| data that has no immediate impact on the corresponding forwarding | data that has no immediate impact on the corresponding forwarding | |||
| state computed by BGP. As such, any churn in reachability | state computed by BGP. As such, any churn in reachability | |||
| information has a different impact than regular BGP updates, which | information has a different impact than regular BGP updates, which | |||
| need to change the forwarding state for an entire router. | need to change the forwarding state for an entire router. | |||
| Distribution of the BGP-LS NLRIs SHOULD be handled by dedicated route | Distribution of the BGP-LS NLRIs SHOULD be handled by dedicated route | |||
| reflectors in most deployments providing a level of isolation and | reflectors in most deployments providing a level of isolation and | |||
| fault containment between different BGP address families. In the | fault containment between different BGP address families. In the | |||
| event of dedicated route reflectors not being available, other | event of dedicated route reflectors not being available, other | |||
| alternate mechanisms like separation of BGP instances or separate BGP | alternate mechanisms like separation of BGP instances or separate BGP | |||
| sessions (e.g. using different addresses for peering) for Link-State | sessions (e.g., using different addresses for peering) for Link-State | |||
| information distribution SHOULD be used. | information distribution SHOULD be used. | |||
| It is RECOMMENDED that operators deploying BGP-LS enable two or more | It is RECOMMENDED that operators deploying BGP-LS enable two or more | |||
| BGP-LS Producers in each IGP flooding domain to achieve redundancy in | BGP-LS Producers in each IGP flooding domain to achieve redundancy in | |||
| the origination of link-state information into BGP-LS. It is also | the origination of link-state information into BGP-LS. It is also | |||
| RECOMMENDED that operators ensure BGP peering designs that ensure | RECOMMENDED that operators ensure BGP peering designs that ensure | |||
| redundancy in the BGP update propagation paths (e.g., using at least | redundancy in the BGP update propagation paths (e.g., using at least | |||
| a pair of route reflectors) and ensuring that BGP-LS Consumers are | a pair of route reflectors) and ensure that BGP-LS Consumers are | |||
| receiving the topology information from at least two BGP-LS Speakers. | receiving the topology information from at least two BGP-LS Speakers. | |||
| In a multi-domain IGP network, the correct provisioning of the BGP-LS | In a multi-domain IGP network, the correct provisioning of the BGP-LS | |||
| Instance-IDs on the BGP-LS Producers is required for consistent | Instance-IDs on the BGP-LS Producers is required for consistent | |||
| reporting of the multi-domain link-state topology. Refer to | reporting of the multi-domain link-state topology. Refer to | |||
| Section 5.2 for more details. | Section 5.2 for more details. | |||
| 8.1.2. Installation and Initial Setup | 8.1.2. Installation and Initial Setup | |||
| Configuration parameters defined in Section 8.2.3 SHOULD be | Configuration parameters defined in Section 8.2.3 SHOULD be | |||
| skipping to change at page 57, line 17 ¶ | skipping to change at line 2475 ¶ | |||
| Existing BGP procedures apply. In addition, an implementation SHOULD | Existing BGP procedures apply. In addition, an implementation SHOULD | |||
| allow an operator to: | allow an operator to: | |||
| * List neighbors with whom the speaker is exchanging Link-State | * List neighbors with whom the speaker is exchanging Link-State | |||
| NLRIs. | NLRIs. | |||
| 8.2. Management Considerations | 8.2. Management Considerations | |||
| 8.2.1. Management Information | 8.2.1. Management Information | |||
| The IDR working group has documented and continues to document parts | The IDR Working Group has documented and continues to document parts | |||
| of the Management Information Base and YANG models for managing and | of the Management Information Base and YANG models for managing and | |||
| monitoring BGP speakers and the sessions between them. It is | monitoring BGP Speakers and the sessions between them. It is | |||
| currently believed that the BGP session running BGP-LS is not | currently believed that the BGP session running BGP-LS is not | |||
| substantially different from any other BGP session and can be managed | substantially different from any other BGP session and can be managed | |||
| using the same data models. | using the same data models. | |||
| 8.2.2. Fault Management | 8.2.2. Fault Management | |||
| This section describes the fault management actions, as described in | This section describes the fault management actions, as described in | |||
| [RFC7606], that are to be performed for the handling of BGP UPDATE | [RFC7606], that are to be performed for the handling of BGP UPDATE | |||
| messages for BGP-LS. | messages for BGP-LS. | |||
| A Link-State NLRI MUST NOT be considered malformed or invalid based | A Link-State NLRI MUST NOT be considered malformed or invalid based | |||
| on the inclusion/exclusion of TLVs or contents of the TLV fields | on the inclusion/exclusion of TLVs or contents of the TLV fields | |||
| (i.e. semantic errors), as described in Section 5.1 and Section 5.2. | (i.e., semantic errors), as described in Sections 5.1 and 5.2. | |||
| A BGP-LS Speaker MUST perform the following syntactic validation of | A BGP-LS Speaker MUST perform the following syntactic validation of | |||
| the Link-State NLRI to determine if it is malformed. | the Link-State NLRI to determine if it is malformed. | |||
| * The sum of all TLVs lengths found in the BGP MP_REACH_NLRI | * The sum of all TLV lengths found in the BGP MP_REACH_NLRI | |||
| attribute corresponds to the BGP MP_REACH_NLRI length. | attribute corresponds to the BGP MP_REACH_NLRI length. | |||
| * The sum of all TLVs lengths found in the BGP MP_UNREACH_NLRI | * The sum of all TLV lengths found in the BGP MP_UNREACH_NLRI | |||
| attribute corresponds to the BGP MP_UNREACH_NLRI length. | attribute corresponds to the BGP MP_UNREACH_NLRI length. | |||
| * The sum of all TLVs lengths found in a Link-State NLRI corresponds | * The sum of all TLV lengths found in a Link-State NLRI corresponds | |||
| to the Total NLRI Length field of all its Descriptors. | to the Total NLRI Length field of all its descriptors. | |||
| * The length of the TLVs and, when the TLV is recognized then, the | * The length of the TLVs and, when the TLV is recognized then, the | |||
| length of its sub-TLVs in the NLRI is valid. | length of its sub-TLVs in the NLRI are valid. | |||
| * The syntactic correctness of the NLRI fields been verified as per | * The syntactic correctness of the NLRI fields has been verified as | |||
| [RFC7606]. | per [RFC7606]. | |||
| * The rule regarding the ordering of TLVs been followed as described | * The rule regarding the ordering of TLVs has been followed as | |||
| in Section 5.1. | described in Section 5.1. | |||
| * For NLRIs carrying either a Local or Remote Node Descriptor TLV, | * For NLRIs carrying either a Local or Remote Node Descriptor TLV, | |||
| there is not more than one instance of a sub-TLV present. | there is not more than one instance of a sub-TLV present. | |||
| When the error that is determined allows for the router to skip the | When the error that is determined allows for the router to skip the | |||
| malformed NLRI(s) and continue the processing of the rest of the BGP | malformed NLRI(s) and continue the processing of the rest of the BGP | |||
| UPDATE message (e.g. when the TLV ordering rule is violated), then it | UPDATE message (e.g., when the TLV ordering rule is violated), then | |||
| MUST handle such malformed NLRIs as 'NLRI discard' (i.e., processing | it MUST handle such malformed NLRIs as 'NLRI discard' (i.e., | |||
| similar to what is described in section 5.4 of [RFC7606]). In other | processing similar to what is described in Section 5.4 of [RFC7606]). | |||
| cases, where the error in the NLRI encoding results in the inability | In other cases, where the error in the NLRI encoding results in the | |||
| to process the BGP UPDATE message (e.g. length related encoding | inability to process the BGP UPDATE message (e.g., length-related | |||
| errors), then the router SHOULD handle such malformed NLRIs as 'AFI/ | encoding errors), then the router SHOULD handle such malformed NLRIs | |||
| SAFI disable' when other AFI/SAFI besides BGP-LS are being advertised | as 'AFI/SAFI disable' when other AFI/SAFI besides BGP-LS are being | |||
| over the same session. Alternately, the router MUST perform a | advertised over the same session. Alternately, the router MUST | |||
| 'session reset' when the session is only being used for BGP-LS or if | perform a 'session reset' when the session is only being used for | |||
| 'AFI/SAFI disable' action is not possible. | BGP-LS or if 'AFI/SAFI disable' action is not possible. | |||
| A BGP-LS Attribute MUST NOT be considered malformed or invalid based | A BGP-LS Attribute MUST NOT be considered malformed or invalid based | |||
| on the inclusion/exclusion of TLVs or contents of the TLV fields | on the inclusion/exclusion of TLVs or contents of the TLV fields | |||
| (i.e. semantic errors), as described in Section 5.1 and Section 5.3. | (i.e., semantic errors), as described in Sections 5.1 and 5.3. | |||
| A BGP-LS Speaker MUST perform the following syntactic validation of | A BGP-LS Speaker MUST perform the following syntactic validation of | |||
| the BGP-LS Attribute to determine if it is malformed. | the BGP-LS Attribute to determine if it is malformed. | |||
| * The sum of all TLVs lengths found in the BGP-LS Attribute | * The sum of all TLV lengths found in the BGP-LS Attribute | |||
| corresponds to the BGP-LS Attribute length. | corresponds to the BGP-LS Attribute length. | |||
| * The syntactic correctness of the Attributes (including BGP-LS | * The syntactic correctness of the Attributes (including the BGP-LS | |||
| Attribute) been verified as per [RFC7606]. | Attribute) have been verified as per [RFC7606]. | |||
| * The length of each TLV and, when the TLV is recognized then, the | * The length of each TLV and, when the TLV is recognized then, the | |||
| length of its sub-TLVs in the BGP-LS Attribute is valid. | length of its sub-TLVs in the BGP-LS Attribute are valid. | |||
| When the error that is determined allows for the router to skip the | When the error that is determined allows for the router to skip the | |||
| malformed BGP-LS Attribute and continue the processing of the rest of | malformed BGP-LS Attribute and continue the processing of the rest of | |||
| the BGP UPDATE message (e.g. when the BGP-LS Attribute length and the | the BGP UPDATE message (e.g., when the BGP-LS Attribute length and | |||
| total Path Attribute Length are correct but some TLV/sub-TLV length | the total Path Attribute Length are correct but some TLV/sub-TLV | |||
| within the BGP-LS Attribute is invalid), then it MUST handle such | length within the BGP-LS Attribute is invalid), then it MUST handle | |||
| malformed BGP-LS Attribute as 'Attribute Discard'. In other cases, | such malformed BGP-LS Attribute as 'Attribute Discard'. In other | |||
| where the error in the BGP-LS Attribute encoding results in the | cases, where the error in the BGP-LS Attribute encoding results in | |||
| inability to process the BGP UPDATE message then the handling is the | the inability to process the BGP UPDATE message, the handling is the | |||
| same as described above for the malformed NLRI. | same as described above for the malformed NLRI. | |||
| Note that the 'Attribute Discard' action results in the loss of all | Note that the 'Attribute Discard' action results in the loss of all | |||
| TLVs in the BGP-LS Attribute and not the removal of a specific | TLVs in the BGP-LS Attribute and not the removal of a specific | |||
| malformed TLV. The removal of specific malformed TLVs may give a | malformed TLV. The removal of specific malformed TLVs may give a | |||
| wrong indication to a BGP-LS Consumer of that specific information | wrong indication to a BGP-LS Consumer of that specific information | |||
| being deleted or not available. | being deleted or not available. | |||
| When a BGP Speaker receives an UPDATE message with Link-State NLRI(s) | When a BGP Speaker receives an UPDATE message with Link-State NLRI(s) | |||
| in the MP_REACH_NLRI but without the BGP-LS Attribute, it is most | in the MP_REACH_NLRI but without the BGP-LS Attribute, it is most | |||
| skipping to change at page 59, line 32 ¶ | skipping to change at line 2582 ¶ | |||
| An implementation SHOULD log a message for any errors found during | An implementation SHOULD log a message for any errors found during | |||
| syntax validation for further analysis. | syntax validation for further analysis. | |||
| A BGP-LS Propagator, even when it has a coexisting BGP-LS Consumer on | A BGP-LS Propagator, even when it has a coexisting BGP-LS Consumer on | |||
| the same node, should not perform semantic validation of the Link- | the same node, should not perform semantic validation of the Link- | |||
| State NLRI or the BGP-LS Attribute to determine if it is malformed or | State NLRI or the BGP-LS Attribute to determine if it is malformed or | |||
| invalid. Some types of semantic validation that are not to be | invalid. Some types of semantic validation that are not to be | |||
| performed by a BGP-LS Propagator are as follows (and this is not to | performed by a BGP-LS Propagator are as follows (and this is not to | |||
| be considered as an exhaustive list): | be considered as an exhaustive list): | |||
| * presence of mandatory TLV | * presence of a mandatory TLV | |||
| * the length of a fixed-length TLV correct or the length of a | * the length of a fixed-length TLV is correct or the length of a | |||
| variable length TLV is valid or permissible | variable length TLV is valid or permissible | |||
| * the values of TLV fields are valid or permissible | * the values of TLV fields are valid or permissible | |||
| * the inclusion and use of TLVs/sub-TLVs with specific Link-State | * the inclusion and use of TLVs/sub-TLVs with specific Link-State | |||
| NLRI types is valid | NLRI types is valid | |||
| Each TLV may indicate the valid and permissible values and their | Each TLV may indicate the valid and permissible values and their | |||
| semantics that can be used only by a BGP-LS Consumer for its semantic | semantics that can be used only by a BGP-LS Consumer for its semantic | |||
| validation. However, the handling of any errors may be specific to | validation. However, the handling of any errors may be specific to | |||
| skipping to change at page 60, line 21 ¶ | skipping to change at line 2619 ¶ | |||
| Base (RIB). | Base (RIB). | |||
| An implementation SHOULD allow the operator to create abstracted | An implementation SHOULD allow the operator to create abstracted | |||
| topologies that are advertised to neighbors and create different | topologies that are advertised to neighbors and create different | |||
| abstractions for different neighbors. | abstractions for different neighbors. | |||
| An implementation MUST allow the operator to configure an 8-octet | An implementation MUST allow the operator to configure an 8-octet | |||
| BGP-LS Instance-ID. Refer to Section 5.2 for guidance to the | BGP-LS Instance-ID. Refer to Section 5.2 for guidance to the | |||
| operator for the configuration of BGP-LS Instance-ID. | operator for the configuration of BGP-LS Instance-ID. | |||
| An implementation SHOULD allow the operator to configure ASN and BGP- | An implementation SHOULD allow the operator to configure Autonomous | |||
| LS identifiers (refer to Section 5.2.1.4). | System Number (ASN) and BGP-LS identifiers (refer to | |||
| Section 5.2.1.4). | ||||
| An implementation SHOULD allow the operator to configure limiting of | An implementation SHOULD allow the operator to configure limiting the | |||
| maximum size of a BGP-LS UPDATE message to 4096 bytes on a BGP-LS | maximum size of a BGP-LS UPDATE message to 4096 bytes on a BGP-LS | |||
| Producer or to allow larger values when they know that [RFC8654] is | Producer or to allow larger values when they know that [RFC8654] is | |||
| supported on all BGP-LS Speakers. | supported on all BGP-LS Speakers. | |||
| 8.2.4. Accounting Management | 8.2.4. Accounting Management | |||
| Not Applicable. | Not Applicable. | |||
| 8.2.5. Performance Management | 8.2.5. Performance Management | |||
| skipping to change at page 61, line 33 ¶ | skipping to change at line 2681 ¶ | |||
| | | Identifiers | | | | | Identifiers | | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 259 | IPv4 interface address | Section 5.2.2 | | | 259 | IPv4 interface address | Section 5.2.2 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 260 | IPv4 neighbor address | Section 5.2.2 | | | 260 | IPv4 neighbor address | Section 5.2.2 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 261 | IPv6 interface address | Section 5.2.2 | | | 261 | IPv6 interface address | Section 5.2.2 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 262 | IPv6 neighbor address | Section 5.2.2 | | | 262 | IPv6 neighbor address | Section 5.2.2 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 263 | Multi-Topology ID | Section 5.2.2.1 | | | 263 | Multi-Topology | Section 5.2.2.1 | | |||
| | | Identifier | | | ||||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 264 | OSPF Route Type | Section 5.2.3 | | | 264 | OSPF Route Type | Section 5.2.3.1 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 265 | IP Reachability | Section 5.2.3 | | | 265 | IP Reachability | Section 5.2.3.2 | | |||
| | | Information | | | | | Information | | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 512 | Autonomous System | Section 5.2.1.4 | | | 512 | Autonomous System | Section 5.2.1.4 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 513 | BGP-LS Identifier | Section 5.2.1.4 | | | 513 | BGP-LS Identifier | Section 5.2.1.4 | | |||
| | | (deprecated) | | | | | (deprecated) | | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 514 | OSPF Area-ID | Section 5.2.1.4 | | | 514 | OSPF Area-ID | Section 5.2.1.4 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 515 | IGP Router-ID | Section 5.2.1.4 | | | 515 | IGP Router-ID | Section 5.2.1.4 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 1024 | Node Flag Bits | Section 5.3.1.1 | | | 1024 | Node Flag Bits | Section 5.3.1.1 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 1025 | Opaque Node Attribute | Section 5.3.1.5 | | | 1025 | Opaque Node Attribute | Section 5.3.1.5 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 1026 | Node Name | Section 5.3.1.3 | | | 1026 | Node Name | Section 5.3.1.3 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 1027 | IS-IS Area Identifier | Section 5.3.1.2 | | | 1027 | IS-IS Area Identifier | Section 5.3.1.2 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 1028 | IPv4 Router-ID of Local | Section 5.3.1.4 / | | | 1028 | IPv4 Router-ID of Local | Sections 5.3.1.4 | | |||
| | | Node | Section 5.3.2.1 | | | | Node | and 5.3.2.1 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 1029 | IPv6 Router-ID of Local | Section 5.3.1.4 / | | | 1029 | IPv6 Router-ID of Local | Sections 5.3.1.4 | | |||
| | | Node | Section 5.3.2.1 | | | | Node | and 5.3.2.1 | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 1030 | IPv4 Router-ID of | Section 5.3.2.1 | | | 1030 | IPv4 Router-ID of | Section 5.3.2.1 | | |||
| | | Remote Node | | | | | Remote Node | | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 1031 | IPv6 Router-ID of | Section 5.3.2.1 | | | 1031 | IPv6 Router-ID of | Section 5.3.2.1 | | |||
| | | Remote Node | | | | | Remote Node | | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| | 1088 | Administrative group | Section 5.3.2 | | | 1088 | Administrative group | Section 5.3.2 | | |||
| | | (color) | | | | | (color) | | | |||
| +----------------+-------------------------+-------------------+ | +----------------+-------------------------+-------------------+ | |||
| skipping to change at page 63, line 18 ¶ | skipping to change at line 2764 ¶ | |||
| Table 18: Summary Table of TLV/Sub-TLV Code Points | Table 18: Summary Table of TLV/Sub-TLV Code Points | |||
| 10. Security Considerations | 10. Security Considerations | |||
| Procedures and protocol extensions defined in this document do not | Procedures and protocol extensions defined in this document do not | |||
| affect the BGP security model. See the Security Considerations | affect the BGP security model. See the Security Considerations | |||
| section of [RFC4271] for a discussion of BGP security. Also, refer | section of [RFC4271] for a discussion of BGP security. Also, refer | |||
| to [RFC4272] and [RFC6952] for analysis of security issues for BGP. | to [RFC4272] and [RFC6952] for analysis of security issues for BGP. | |||
| The operator should ensure that a BGP-LS speaker does not accept | The operator should ensure that a BGP-LS Speaker does not accept | |||
| UPDATE messages from a peer that only provides information to a BGP- | UPDATE messages from a peer that only provides information to a BGP- | |||
| LS Consumer by using the policy configuration options discussed in | LS Consumer by using the policy configuration options discussed in | |||
| Section 8.2.3 and Section 8.2.6. Generally, an operator is aware of | Sections 8.2.3 and 8.2.6. Generally, an operator is aware of the | |||
| the BGP-LS speaker's role and link-state peerings. Therefore, the | BGP-LS Speaker's role and link-state peerings. Therefore, the | |||
| operator can protect the BGP-LS speaker from peers sending updates | operator can protect the BGP-LS Speaker from peers sending updates | |||
| that may represent erroneous information, feedback loops, or false | that may represent erroneous information, feedback loops, or false | |||
| input. | input. | |||
| An error or tampering of the link-state information that is | An error or tampering of the link-state information that is | |||
| originated into BGP-LS and propagated through the network for use by | originated into BGP-LS and propagated through the network for use by | |||
| BGP-LS Consumers applications can result in the malfunction of those | BGP-LS Consumers applications can result in the malfunction of those | |||
| applications. Some examples of such risks are the origination of | applications. Some examples of such risks are the origination of | |||
| incorrect information that is not present or consistent with the IGP | incorrect information that is not present or consistent with the IGP | |||
| LSDB at the BGP-LS Producer, incorrect ordering of TLVs in the NLRI | LSDB at the BGP-LS Producer, incorrect ordering of TLVs in the NLRI, | |||
| or inconsistent origination from multiple BGP-LS Producers and | or inconsistent origination from multiple BGP-LS Producers and | |||
| updates to either the NLRI or BGP-LS Attribute during propagation | updates to either the NLRI or BGP-LS Attribute during propagation | |||
| (including discarding due to errors). These are not new risks from a | (including discarding due to errors). These are not new risks from a | |||
| BGP protocol perspective, however, in the case of BGP-LS impact | BGP protocol perspective; however, in the case of BGP-LS, impact | |||
| reflects on the consumer applications instead of BGP routing | reflects on the consumer applications instead of BGP routing | |||
| functionalities. | functionalities. | |||
| Additionally, it may be considered that the export of link-state and | Additionally, it may be considered that the export of link-state and | |||
| TE information as described in this document constitutes a risk to | TE information as described in this document constitutes a risk to | |||
| confidentiality of mission-critical or commercially sensitive | confidentiality of mission-critical or commercially sensitive | |||
| information about the network. BGP peerings are not automatic and | information about the network. BGP peerings are not automatic and | |||
| require configuration; thus, it is the responsibility of the network | require configuration; thus, it is the responsibility of the network | |||
| operator to ensure that only trusted BGP Speakers are configured to | operator to ensure that only trusted BGP Speakers are configured to | |||
| receive such information. Similar security considerations also arise | receive such information. Similar security considerations also arise | |||
| on the interface between BGP Speaker and BGP-LS Consumers, but their | on the interface between BGP Speakers and BGP-LS Consumers, but their | |||
| discussion is outside the scope of this document. | discussion is outside the scope of this document. | |||
| 11. Contributors | 11. References | |||
| The following persons contributed significant text to RFC7752 and | ||||
| this document. They should be considered co-authors. | ||||
| Hannes Gredler | ||||
| Rtbrick | ||||
| Email: hannes@rtbrick.com | ||||
| Jan Medved | ||||
| Cisco Systems Inc. | ||||
| USA | ||||
| Email: jmedved@cisco.com | ||||
| Stefano Previdi | ||||
| Huawei Technologies | ||||
| Italy | ||||
| Email: stefano@previdi.net | ||||
| Adrian Farrel | ||||
| Old Dog Consulting | ||||
| Email: adrian@olddog.co.uk | ||||
| Saikat Ray | ||||
| Individual | ||||
| USA | ||||
| Email: raysaikat@gmail.com | ||||
| 12. Acknowledgements | ||||
| This document update to the BGP-LS specification [RFC7752] is a | ||||
| result of feedback and inputs from the discussions in the IDR working | ||||
| group. It also incorporates certain details and clarifications based | ||||
| on implementation and deployment experience with BGP-LS. | ||||
| Cengiz Alaettinoglu and Parag Amritkar brought forward the need to | ||||
| clarify the advertisement of a LAN subnet for OSPF. | ||||
| We would like to thank Balaji Rajagopalan, Srihari Sangli, Shraddha | ||||
| Hegde, Andrew Stone, Jeff Tantsura, Acee Lindem, Les Ginsberg, Jie | ||||
| Dong, Aijun Wang, Nandan Saha, Joel Halpern, and Gyan Mishra for | ||||
| their review and feedback on this document. Thanks to Tom Petch for | ||||
| his review and comments on the IANA Considerations section. Would | ||||
| also like to thank Jeffrey Haas for his detailed shepherd review and | ||||
| inputs for improving the document. | ||||
| The detailed AD review by Alvaro Retana and his suggestions have | ||||
| helped improve this document significantly. | ||||
| We would like to thank Robert Varga for his significant contribution | ||||
| to RFC7752. | ||||
| We would like to thank Nischal Sheth, Alia Atlas, David Ward, Derek | ||||
| Yeung, Murtuza Lightwala, John Scudder, Kaliraj Vairavakkalai, Les | ||||
| Ginsberg, Liem Nguyen, Manish Bhardwaj, Matt Miller, Mike Shand, | ||||
| Peter Psenak, Rex Fernando, Richard Woundy, Steven Luong, Tamas | ||||
| Mondal, Waqas Alam, Vipin Kumar, Naiming Shen, Carlos Pignataro, | ||||
| Balaji Rajagopalan, Yakov Rekhter, Alvaro Retana, Barry Leiba, and | ||||
| Ben Campbell for their comments on RFC7752. | ||||
| 13. References | ||||
| 13.1. Normative References | 11.1. Normative References | |||
| [ENTNUM] IANA, "Private Enterprise Numbers", | [ENTNUM] IANA, "Private Enterprise Numbers (PENs)", | |||
| <https://www.iana.org/assignments/enterprise-numbers/>. | <https://www.iana.org/assignments/enterprise-numbers/>. | |||
| [ISO10589] International Organization for Standardization, | [ISO10589] ISO, "Information technology - Telecommunications and | |||
| "Intermediate System to Intermediate System intra-domain | information exchange between systems - Intermediate System | |||
| routeing information exchange protocol for use in | to Intermediate System intra-domain routeing information | |||
| conjunction with the protocol for providing the | exchange protocol for use in conjunction with the protocol | |||
| connectionless-mode network service (ISO 8473)", ISO/ | for providing the connectionless-mode network service (ISO | |||
| IEC 10589, November 2002. | 8473)", ISO/IEC 10589:2002, November 2002. | |||
| [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>. | |||
| [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | |||
| DOI 10.17487/RFC2328, April 1998, | DOI 10.17487/RFC2328, April 1998, | |||
| <https://www.rfc-editor.org/info/rfc2328>. | <https://www.rfc-editor.org/info/rfc2328>. | |||
| skipping to change at page 68, line 18 ¶ | skipping to change at line 2943 ¶ | |||
| [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and | [RFC8362] Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and | |||
| F. Baker, "OSPFv3 Link State Advertisement (LSA) | F. Baker, "OSPFv3 Link State Advertisement (LSA) | |||
| Extensibility", RFC 8362, DOI 10.17487/RFC8362, April | Extensibility", RFC 8362, DOI 10.17487/RFC8362, April | |||
| 2018, <https://www.rfc-editor.org/info/rfc8362>. | 2018, <https://www.rfc-editor.org/info/rfc8362>. | |||
| [RFC8654] Bush, R., Patel, K., and D. Ward, "Extended Message | [RFC8654] Bush, R., Patel, K., and D. Ward, "Extended Message | |||
| Support for BGP", RFC 8654, DOI 10.17487/RFC8654, October | Support for BGP", RFC 8654, DOI 10.17487/RFC8654, October | |||
| 2019, <https://www.rfc-editor.org/info/rfc8654>. | 2019, <https://www.rfc-editor.org/info/rfc8654>. | |||
| 13.2. Informative References | 11.2. Informative References | |||
| [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G. | [RFC1918] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G. | |||
| J., and E. Lear, "Address Allocation for Private | J., and E. Lear, "Address Allocation for Private | |||
| Internets", BCP 5, RFC 1918, DOI 10.17487/RFC1918, | Internets", BCP 5, RFC 1918, DOI 10.17487/RFC1918, | |||
| February 1996, <https://www.rfc-editor.org/info/rfc1918>. | February 1996, <https://www.rfc-editor.org/info/rfc1918>. | |||
| [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", | [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", | |||
| RFC 4272, DOI 10.17487/RFC4272, January 2006, | RFC 4272, DOI 10.17487/RFC4272, January 2006, | |||
| <https://www.rfc-editor.org/info/rfc4272>. | <https://www.rfc-editor.org/info/rfc4272>. | |||
| skipping to change at page 70, line 11 ¶ | skipping to change at line 3032 ¶ | |||
| MPLS and GMPLS Traffic Engineering", RFC 9346, | MPLS and GMPLS Traffic Engineering", RFC 9346, | |||
| DOI 10.17487/RFC9346, February 2023, | DOI 10.17487/RFC9346, February 2023, | |||
| <https://www.rfc-editor.org/info/rfc9346>. | <https://www.rfc-editor.org/info/rfc9346>. | |||
| Appendix A. Changes from RFC 7752 | Appendix A. Changes from RFC 7752 | |||
| This section lists the high-level changes from RFC 7752 and provides | This section lists the high-level changes from RFC 7752 and provides | |||
| reference to the document sections wherein those have been | reference to the document sections wherein those have been | |||
| introduced. | introduced. | |||
| 1. Updated the Figure 1 in Section 1 and added Section 3 to | 1. Updated Figure 1 in Section 1 and added Section 3 to illustrate | |||
| illustrate the different roles of a BGP implementation in | the different roles of a BGP implementation in conveying link- | |||
| conveying link-state information. | state information. | |||
| 2. Clarified aspects related to advertisement of link-state | 2. Clarified aspects related to advertisement of link-state | |||
| information from IGPs into BGP-LS in Section 4. | information from IGPs into BGP-LS in Section 4. | |||
| 3. In Section 5.1, clarification about the TLV handling aspects | 3. In Section 5.1, clarified aspects about TLV handling that apply | |||
| that apply to both the NLRI and BGP-LS Attribute parts and those | to both the NLRI and BGP-LS Attribute parts as well as those | |||
| that are applicable only for the NLRI portion. An | that are applicable only for the NLRI portion. An | |||
| implementation may have missed the part about the handling of | implementation may have missed the part about the handling of an | |||
| unknown TLV and so, based on [RFC7606] guidelines, might discard | unknown TLV and so, based on [RFC7606] guidelines, might discard | |||
| the unknown NLRI types. This aspect is now unambiguously | the unknown NLRI types. This aspect is now unambiguously | |||
| clarified in Section 5.2. Also, the TLVs in the BGP-LS | clarified in Section 5.2. Also, the TLVs in the BGP-LS | |||
| Attribute that are not ordered are not to be considered | Attribute that are not ordered are not to be considered | |||
| malformed. | malformed. | |||
| 4. Clarification of mandatory and optional TLVs in both NLRI and | 4. Clarified aspects of mandatory and optional TLVs in both NLRI | |||
| BGP-LS Attribute portions all through the document. | and BGP-LS Attribute portions all through the document. | |||
| 5. Handling of large size of BGP-LS Attribute with growth in BGP-LS | 5. In Section 5.3, the handling of a large-sized BGP-LS Attribute | |||
| information is explained in Section 5.3 along with mitigation of | with growth in BGP-LS information is explained along with | |||
| errors arising out of it. | mitigation of errors arising out of it. | |||
| 6. Clarified that the document describes the NLRI descriptor TLVs | 6. Clarified that the document describes the NLRI descriptor TLVs | |||
| for the protocols and NLRI types specified in this document and | for the protocols and NLRI types specified in this document as | |||
| future BGP-LS extensions must describe the same for other | well as future BGP-LS extensions must describe the same for | |||
| protocols and NLRI types that they introduce. | other protocols and NLRI types that they introduce. | |||
| 7. Clarification on the use of the Identifier field in the Link- | 7. In Section 5.2, clarified the use of the Identifier field in the | |||
| State NLRI in Section 5.2 is provided. It was defined | Link-State NLRI. It was defined ambiguously to refer to only | |||
| ambiguously to refer to only multi-instance IGP on a single link | multi-instance IGP on a single link while it can also be used | |||
| while it can also be used for multiple IGP protocol instances on | for multiple IGP protocol instances on a router. The IANA | |||
| a router. The IANA registry is accordingly being removed. | registry is accordingly being removed. | |||
| 8. The BGP-LS Identifier TLV in the Node Descriptors has been | 8. The BGP-LS Identifier TLV in the Node Descriptors has been | |||
| deprecated. Its use was not well specified by [RFC7752] and | deprecated. Its use was not well specified by [RFC7752], and | |||
| there has been some amount of confusion between implementators | there has been some amount of confusion between implementors on | |||
| on its usage for identification of IGP domains as against the | its usage for identification of IGP domains as against the use | |||
| use of the Identifier field carrying the BGP-LS Instance-ID when | of the Identifier field carrying the BGP-LS Instance-ID when | |||
| running multiple instances of IGP routing protocols. The | running multiple instances of IGP routing protocols. The | |||
| original purpose of the BGP-LS Identifier was that, in | original purpose of the BGP-LS Identifier was that, in | |||
| conjunction with Autonomous System Number (ASN), it would | conjunction with the ASN, it would uniquely identify the BGP-LS | |||
| uniquely identify the BGP-LS domain and that the combination of | domain and that the combination of ASN and BGP-LS ID would be | |||
| ASN and BGP-LS ID would be globally unique. However, the BGP-LS | globally unique. However, the BGP-LS Instance-ID carried in the | |||
| Instance-ID carried in the Identifier field in the fixed part of | Identifier field in the fixed part of the NLRI also provides a | |||
| the NLRI also provides a similar functionality. Hence, the | similar functionality. Hence, the inclusion of the BGP-LS | |||
| inclusion of the BGP-LS Identifier TLV is not necessary. If | Identifier TLV is not necessary. If advertised, all BGP-LS | |||
| advertised, all BGP-LS speakers within an IGP flooding-set (set | Speakers within an IGP flooding-set (set of IGP nodes within | |||
| of IGP nodes within which an LSP/LSA is flooded) had to use the | which an LSP/LSA is flooded) had to use the same (ASN, BGP-LS | |||
| same (ASN, BGP-LS ID) tuple and if an IGP domain consists of | ID) tuple, and if an IGP domain consists of multiple flooding- | |||
| multiple flooding-sets, then all BGP-LS speakers within the IGP | sets, then all BGP-LS Speakers within the IGP domain had to use | |||
| domain had to use the same (ASN, BGP-LS ID) tuple. | the same (ASN, BGP-LS ID) tuple. | |||
| 9. Clarification that the Area-ID TLV is mandatory in the Node | 9. Clarified that the Area-ID TLV is mandatory in the Node | |||
| Descriptor for the origination of information from OSPF except | Descriptor for the origination of information from OSPF except | |||
| for when sourcing information from AS-scope LSAs where this TLV | for when sourcing information from AS-scope LSAs where this TLV | |||
| is not applicable. Also clarified on the IS-IS area and area | is not applicable. Also clarified the IS-IS area and area | |||
| addresses. | addresses. | |||
| 10. Moved MT-ID TLV from the Node Descriptor section to under the | 10. Moved the MT-ID TLV from the Node Descriptor section to under | |||
| Link Descriptor section since it is not a Node Descriptor sub- | the Link Descriptor section since it is not a Node Descriptor | |||
| TLV. Fixed the ambiguity in the encoding of OSPF MT-ID in this | sub-TLV. Fixed the ambiguity in the encoding of OSPF MT-ID in | |||
| TLV. Updated the IS-IS specification reference section and | this TLV. Updated the IS-IS specification reference section and | |||
| describe the differences in the applicability of the R flags | described the differences in the applicability of the R flags | |||
| when MT-ID TLV is used as link descriptor TLV and Prefix | when the MT-ID TLV is used as the Link Descriptor TLV and Prefix | |||
| Attribute TLV. MT-ID TLV use is now elevated to SHOULD when it | Attribute TLV. The MT-ID TLV use is now elevated to SHOULD when | |||
| is enabled in the underlying IGP. | it is enabled in the underlying IGP. | |||
| 11. Clarified that IPv6 Link-Local Addresses are not advertised in | 11. Clarified that IPv6 link-local addresses are not advertised in | |||
| the Link Descriptor TLVs and the local/remote identifiers are to | the Link Descriptor TLVs and the local/remote identifiers are to | |||
| be used instead for links with IPv6 link-local addresses only. | be used instead for links with IPv6 link-local addresses only. | |||
| 12. Update the usage of OSPF Route Type TLV to mandate its use for | 12. Updated the usage of OSPF Route Type TLV to mandate its use for | |||
| OSPF prefixes in Section 5.2.3.1 since this is required for | OSPF prefixes in Section 5.2.3.1 since this is required for | |||
| segregation of intra-area prefixes that are used to reach a node | segregation of intra-area prefixes that are used to reach a node | |||
| (e.g. a loopback) from other types of inter-area and external | (e.g., a loopback) from other types of inter-area and external | |||
| prefixes. | prefixes. | |||
| 13. Clarification of the specific OSPFv2 and OSPFv3 protocol TLV | 13. Clarified the specific OSPFv2 and OSPFv3 protocol TLV space to | |||
| space to be used in the node, link, and prefix opaque attribute | be used in the Node, Link, and Prefix Opaque Attribute TLVs. | |||
| TLVs. | ||||
| 14. Clarification on the length of the Node Flag Bits and IGP Flags | 14. Clarified that the length of the Node Flag Bits and IGP Flags | |||
| TLVs to be one octet. | TLVs are to be one octet. | |||
| 15. Updated the Node Name TLV in Section 5.3.1.3 with the OSPF | 15. Updated the Node Name TLV in Section 5.3.1.3 with the OSPF | |||
| specification. | specification. | |||
| 16. Clarification on the size of the IS-IS Narrow Metric | 16. Clarified the size of the IS-IS Narrow Metric advertisement via | |||
| advertisement via the IGP Metric TLV and the handling of the | the IGP Metric TLV and the handling of the unused bits. | |||
| unused bits. | ||||
| 17. Clarified the advertisement of the prefix corresponding to the | 17. Clarified the advertisement of the prefix corresponding to the | |||
| LAN segment in an OSPF network in Section 5.11. | LAN segment in an OSPF network in Section 5.11. | |||
| 18. Clarified the advertisement and support for OSPF specific | 18. Clarified the advertisement and support for OSPF-specific | |||
| concepts like Virtual links, Sham links, and Type 4 LSAs in | concepts like virtual links, sham links, and Type 4 LSAs in | |||
| Section 5.7 and Section 5.8. | Sections 5.7 and 5.8. | |||
| 19. Introduced Private Use TLV code point space and specified their | 19. Introduced the Private Use TLV code point space and specified | |||
| encoding in Section 5.4. | their encoding in Section 5.4. | |||
| 20. Introduced Section 5.9 where issues related to the consistency | 20. In Section 5.9, introduced where issues related to the | |||
| of reporting IGP link-state along with their solutions are | consistency of reporting IGP link-state along with their | |||
| covered. | solutions are covered. | |||
| 21. Added recommendation for isolation of BGP-LS sessions from other | 21. Added a recommendation for isolation of BGP-LS sessions from | |||
| BGP route exchange to avoid errors and faults in BGP-LS | other BGP route exchanges to avoid errors and faults in BGP-LS | |||
| affecting the normal BGP routing. | affecting the normal BGP routing. | |||
| 22. Updated the Fault Management section with detailed rules based | 22. Updated the Fault Management section with detailed rules based | |||
| on the role of the BGP Speaker in the BGP-LS information | on the role of the BGP Speaker in the BGP-LS information | |||
| propagation flow. | propagation flow. | |||
| 23. Change to the management of BGP-LS IANA registries from | 23. Changed the management of BGP-LS IANA registries from | |||
| "Specification Required" to "Expert Review" along with updated | "Specification Required" to "Expert Review" along with updated | |||
| guidelines for Designated Experts. More specifically the | guidelines for designated experts, more specifically, the | |||
| inclusion of changes introduced via [RFC9029] that is obsoleted | inclusion of changes introduced via [RFC9029] that are obsoleted | |||
| by this document. | by this document. | |||
| 24. Added BGP-LS IANA registries with "Expert Review" policy for the | 24. Added BGP-LS IANA registries with "Expert Review" policy for the | |||
| flag fields of various TLVs that was missed out. Renamed the | flag fields of various TLVs that was missed out. Renamed the | |||
| BGP-LS TLV registry and removed the "IS-IS TLV/Sub-TLV" column | BGP-LS TLV registry and removed the "IS-IS TLV/Sub-TLV" column | |||
| from it. | from it. | |||
| Acknowledgements | ||||
| This document update to the BGP-LS specification [RFC7752] is a | ||||
| result of feedback and input from the discussions in the IDR Working | ||||
| Group. It also incorporates certain details and clarifications based | ||||
| on implementation and deployment experience with BGP-LS. | ||||
| Cengiz Alaettinoglu and Parag Amritkar brought forward the need to | ||||
| clarify the advertisement of a LAN subnet for OSPF. | ||||
| We would like to thank Balaji Rajagopalan, Srihari Sangli, Shraddha | ||||
| Hegde, Andrew Stone, Jeff Tantsura, Acee Lindem, Les Ginsberg, Jie | ||||
| Dong, Aijun Wang, Nandan Saha, Joel Halpern, and Gyan Mishra for | ||||
| their review and feedback on this document. Thanks to Tom Petch for | ||||
| his review and comments on the IANA Considerations section. We would | ||||
| also like to thank Jeffrey Haas for his detailed shepherd review and | ||||
| input for improving the document. | ||||
| The detailed AD review by Alvaro Retana and his suggestions have | ||||
| helped improve this document significantly. | ||||
| We would like to thank Robert Varga for his significant contribution | ||||
| to [RFC7752]. | ||||
| We would like to thank Nischal Sheth, Alia Atlas, David Ward, Derek | ||||
| Yeung, Murtuza Lightwala, John Scudder, Kaliraj Vairavakkalai, Les | ||||
| Ginsberg, Liem Nguyen, Manish Bhardwaj, Matt Miller, Mike Shand, | ||||
| Peter Psenak, Rex Fernando, Richard Woundy, Steven Luong, Tamas | ||||
| Mondal, Waqas Alam, Vipin Kumar, Naiming Shen, Carlos Pignataro, | ||||
| Balaji Rajagopalan, Yakov Rekhter, Alvaro Retana, Barry Leiba, and | ||||
| Ben Campbell for their comments on [RFC7752]. | ||||
| Contributors | ||||
| The following persons contributed significant text to [RFC7752] and | ||||
| this document. They should be considered coauthors. | ||||
| Hannes Gredler | ||||
| Rtbrick | ||||
| Email: hannes@rtbrick.com | ||||
| Jan Medved | ||||
| Cisco Systems Inc. | ||||
| United States of America | ||||
| Email: jmedved@cisco.com | ||||
| Stefano Previdi | ||||
| Huawei Technologies | ||||
| Italy | ||||
| Email: stefano@previdi.net | ||||
| Adrian Farrel | ||||
| Old Dog Consulting | ||||
| Email: adrian@olddog.co.uk | ||||
| Saikat Ray | ||||
| Individual | ||||
| United States of America | ||||
| Email: raysaikat@gmail.com | ||||
| Author's Address | Author's Address | |||
| Ketan Talaulikar (editor) | Ketan Talaulikar (editor) | |||
| Cisco Systems | Cisco Systems | |||
| India | India | |||
| Email: ketant.ietf@gmail.com | Email: ketant.ietf@gmail.com | |||
| End of changes. 238 change blocks. | ||||
| 838 lines changed or deleted | 833 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||