| < draft-ietf-idr-te-lsp-distribution-08.txt | draft-ietf-idr-te-lsp-distribution-09.txt > | |||
|---|---|---|---|---|
| Network Working Group S. Previdi, Ed. | Network Working Group S. Previdi, Ed. | |||
| Internet-Draft Cisco Systems, Inc. | Internet-Draft | |||
| Intended status: Standards Track J. Dong, Ed. | Intended status: Standards Track K. Talaulikar | |||
| Expires: June 29, 2018 M. Chen | Expires: December 31, 2018 Cisco Systems, Inc. | |||
| J. Dong, Ed. | ||||
| M. Chen | ||||
| Huawei Technologies | Huawei Technologies | |||
| H. Gredler | H. Gredler | |||
| RtBrick Inc. | RtBrick Inc. | |||
| J. Tantsura | J. Tantsura | |||
| Individual | Nuage Networks | |||
| December 26, 2017 | June 29, 2018 | |||
| Distribution of Traffic Engineering (TE) Policies and State using BGP-LS | Distribution of Traffic Engineering (TE) Policies and State using BGP-LS | |||
| draft-ietf-idr-te-lsp-distribution-08 | draft-ietf-idr-te-lsp-distribution-09 | |||
| Abstract | Abstract | |||
| This document describes a mechanism to collect the Traffic | This document describes a mechanism to collect the Traffic | |||
| Engineering and Policy information that is locally available in a | Engineering and Policy information that is locally available in a | |||
| router and advertise it into BGP-LS updates. Such information can be | node and advertise it into BGP-LS updates. Such information can be | |||
| used by external components for path computation, re-optimization, | used by external components for path computation, re-optimization, | |||
| service placement, network visualization, etc. | service placement, network visualization, etc. | |||
| Requirements Language | 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", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 46 ¶ | skipping to change at page 1, line 48 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on June 29, 2018. | This Internet-Draft will expire on December 31, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Carrying TE Policy Information in BGP . . . . . . . . . . . . 5 | 2. Carrying TE Policy Information in BGP . . . . . . . . . . . . 5 | |||
| 2.1. TE Policy Information . . . . . . . . . . . . . . . . . . 5 | 3. TE Policy NLRI . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 2.2. TE Policy NLRI . . . . . . . . . . . . . . . . . . . . . 5 | 4. TE Policy Descriptors . . . . . . . . . . . . . . . . . . . . 7 | |||
| 2.2.1. TE Policy Descriptors . . . . . . . . . . . . . . . . 7 | 4.1. Tunnel Identifier (Tunnel ID) . . . . . . . . . . . . . . 7 | |||
| 2.3. TE Policy State . . . . . . . . . . . . . . . . . . . . . 12 | 4.2. LSP Identifier (LSP ID) . . . . . . . . . . . . . . . . . 7 | |||
| 2.3.1. RSVP Objects . . . . . . . . . . . . . . . . . . . . 14 | 4.3. IPv4/IPv6 Tunnel Head-End Address . . . . . . . . . . . . 8 | |||
| 2.3.2. PCE Objects . . . . . . . . . . . . . . . . . . . . . 15 | 4.4. IPv4/IPv6 Tunnel Tail-End Address . . . . . . . . . . . . 8 | |||
| 2.3.3. SR TE Policy Sub-TLVs . . . . . . . . . . . . . . . . 16 | 4.5. SR Policy Candidate Path Descriptor . . . . . . . . . . . 9 | |||
| 3. Operational Considerations . . . . . . . . . . . . . . . . . 22 | 4.6. Local MPLS Cross Connect . . . . . . . . . . . . . . . . 11 | |||
| 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | 4.6.1. MPLS Cross Connect Interface . . . . . . . . . . . . 12 | |||
| 4.1. BGP-LS NLRI-Types . . . . . . . . . . . . . . . . . . . . 22 | 4.6.2. MPLS Cross Connect FEC . . . . . . . . . . . . . . . 13 | |||
| 4.2. BGP-LS Protocol-IDs . . . . . . . . . . . . . . . . . . . 23 | 5. MPLS-TE Policy State TLV . . . . . . . . . . . . . . . . . . 14 | |||
| 4.3. BGP-LS Descriptors TLVs . . . . . . . . . . . . . . . . . 23 | 5.1. RSVP Objects . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 4.4. BGP-LS LSP-State TLV Path Origin . . . . . . . . . . . . 23 | 5.2. PCEP Objects . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 4.5. BGP-LS LSP-State TLV Dataplane . . . . . . . . . . . . . 24 | 6. SR Policy State TLVs . . . . . . . . . . . . . . . . . . . . 17 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | 6.1. SR Binding SID . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24 | 6.2. SR Candidate Path State . . . . . . . . . . . . . . . . . 19 | |||
| 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 24 | 6.3. SR Candidate Path Name . . . . . . . . . . . . . . . . . 21 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 25 | 6.4. SR Candidate Path Constraints . . . . . . . . . . . . . . 21 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 25 | 6.4.1. SR Affinity Constraint . . . . . . . . . . . . . . . 23 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 26 | 6.4.2. SR SRLG Constraint . . . . . . . . . . . . . . . . . 24 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 | 6.4.3. SR Bandwidth Constraint . . . . . . . . . . . . . . . 24 | |||
| 6.4.4. SR Disjoint Group Constraint . . . . . . . . . . . . 25 | ||||
| 6.5. SR Segment List . . . . . . . . . . . . . . . . . . . . . 27 | ||||
| 6.6. SR Segment . . . . . . . . . . . . . . . . . . . . . . . 29 | ||||
| 6.6.1. Segment Descriptors . . . . . . . . . . . . . . . . . 31 | ||||
| 6.7. SR Segment List Metric . . . . . . . . . . . . . . . . . 37 | ||||
| 7. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 39 | ||||
| 8. Manageability Considerations . . . . . . . . . . . . . . . . 40 | ||||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40 | ||||
| 9.1. BGP-LS NLRI-Types . . . . . . . . . . . . . . . . . . . . 40 | ||||
| 9.2. BGP-LS Protocol-IDs . . . . . . . . . . . . . . . . . . . 40 | ||||
| 9.3. BGP-LS TLVs . . . . . . . . . . . . . . . . . . . . . . . 41 | ||||
| 9.4. BGP-LS SR Policy Protocol Origin . . . . . . . . . . . . 41 | ||||
| 9.5. BGP-LS TE State Path Origin . . . . . . . . . . . . . . . 42 | ||||
| 9.6. BGP-LS TE State Dataplane . . . . . . . . . . . . . . . . 42 | ||||
| 9.7. BGP-LS SR Segment Descriptors . . . . . . . . . . . . . . 43 | ||||
| 9.8. BGP-LS Metric Type . . . . . . . . . . . . . . . . . . . 43 | ||||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 44 | ||||
| 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 44 | ||||
| 12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 44 | ||||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 44 | ||||
| 13.1. Normative References . . . . . . . . . . . . . . . . . . 44 | ||||
| 13.2. Informative References . . . . . . . . . . . . . . . . . 46 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 47 | ||||
| 1. Introduction | 1. Introduction | |||
| In many network environments, traffic engineering policies are | In many network environments, traffic engineering policies are | |||
| instantiated into various forms: | instantiated into various forms: | |||
| o MPLS Traffic Engineering Label Switched Paths (TE-LSPs). | o MPLS Traffic Engineering Label Switched Paths (TE-LSPs). | |||
| o IP based tunnels (IP in IP, GRE, etc). | o IP based tunnels (IP in IP, GRE, etc). | |||
| o Segment Routing Traffic Engineering Policies (SR TE Policy) as | o Segment Routing Policies (SR Policy) as defined in | |||
| defined in [I-D.previdi-idr-segment-routing-te-policy] | [I-D.ietf-spring-segment-routing-policy] | |||
| o Local cross-connect configuration | o Local MPLS cross-connect configuration | |||
| All this information can be grouped into the same term: TE Policies. | All this information can be grouped into the same term: TE Policies. | |||
| In the rest of this document we refer to TE Policies as the set of | In the rest of this document we refer to TE Policies as the set of | |||
| information related to the various instantiation of polices: MPLS TE | information related to the various instantiation of polices: MPLS TE | |||
| LSPs, IP tunnels (IPv4 or IPv6), SR TE Policies, etc. | LSPs, IP tunnels (IPv4 or IPv6), SR Policies, etc. | |||
| TE Polices are generally instantiated by the head-end and are based | TE Polices are generally instantiated at the head-end and are based | |||
| on either local configuration or controller based programming of the | on either local configuration or controller based programming of the | |||
| node using various protocols and APIs, e.g., PCEP or BGP. | node using various APIs and protocols, e.g., PCEP or BGP. | |||
| In many network environments, the configuration and state of each TE | In many network environments, the configuration and state of each TE | |||
| Policy that is available in the network is required by a controller | Policy that is available in the network is required by a controller | |||
| which allows the network operator to optimize several functions and | which allows the network operator to optimize several functions and | |||
| operations through the use of a controller aware of both topology and | operations through the use of a controller aware of both topology and | |||
| state information. | state information. | |||
| One example of a controller is the stateful Path Computation Element | One example of a controller is the stateful Path Computation Element | |||
| (PCE) [I-D.ietf-pce-stateful-pce], which could provide benefits in | (PCE) [RFC8231], which could provide benefits in path reoptimization. | |||
| path reoptimization. While some extensions are proposed in Path | While some extensions are proposed in Path Computation Element | |||
| Computation Element Communication Protocol (PCEP) for the Path | Communication Protocol (PCEP) for the Path Computation Clients (PCCs) | |||
| Computation Clients (PCCs) to report the LSP states to the PCE, this | to report the LSP states to the PCE, this mechanism may not be | |||
| mechanism may not be applicable in a management-based PCE | applicable in a management-based PCE architecture as specified in | |||
| architecture as specified in section 5.5 of [RFC4655]. As | section 5.5 of [RFC4655]. As illustrated in the figure below, the | |||
| illustrated in the figure below, the PCC is not an LSR in the routing | PCC is not an LSR in the routing domain, thus the head-end nodes of | |||
| domain, thus the head-end nodes of the TE-LSPs may not implement the | the TE-LSPs may not implement the PCEP protocol. In this case a | |||
| PCEP protocol. In this case a general mechanism to collect the TE- | general mechanism to collect the TE-LSP states from the ingress LERs | |||
| LSP states from the ingress LERs is needed. This document proposes | is needed. This document proposes an TE Policy state collection | |||
| an TE Policy state collection mechanism complementary to the | mechanism complementary to the mechanism defined in [RFC8231]. | |||
| mechanism defined in [I-D.ietf-pce-stateful-pce]. | ||||
| ----------- | ----------- | |||
| | ----- | | | ----- | | |||
| Service | | TED |<-+-----------> | Service | | TED |<-+-----------> | |||
| Request | ----- | TED synchronization | Request | ----- | TED synchronization | |||
| | | | | mechanism (for example, | | | | | mechanism (for example, | |||
| v | | | routing protocol) | v | | | routing protocol) | |||
| ------------- Request/ | v | | ------------- Request/ | v | | |||
| | | Response| ----- | | | | Response| ----- | | |||
| | NMS |<--------+> | PCE | | | | NMS |<--------+> | PCE | | | |||
| skipping to change at page 4, line 28 ¶ | skipping to change at page 4, line 37 ¶ | |||
| v | v | |||
| ---------- Signaling ---------- | ---------- Signaling ---------- | |||
| | Head-End | Protocol | Adjacent | | | Head-End | Protocol | Adjacent | | |||
| | Node |<---------->| Node | | | Node |<---------->| Node | | |||
| ---------- ---------- | ---------- ---------- | |||
| Figure 1. Management-Based PCE Usage | Figure 1. Management-Based PCE Usage | |||
| In networks with composite PCE nodes as specified in section 5.1 of | In networks with composite PCE nodes as specified in section 5.1 of | |||
| [RFC4655], PCE is implemented on several routers in the network, and | [RFC4655], PCE is implemented on several routers in the network, and | |||
| the PCCs in the network can use the mechanism described in | the PCCs in the network can use the mechanism described in [RFC8231] | |||
| [I-D.ietf-pce-stateful-pce] to report the TE Policy information to | to report the TE Policy information to the PCE nodes. An external | |||
| the PCE nodes. An external component may also need to collect the TE | component may also need to collect the TE Policy information from all | |||
| Policy information from all the PCEs in the network to obtain a | the PCEs in the network to obtain a global view of the LSP state in | |||
| global view of the LSP state in the network. | the network. | |||
| In multi-area or multi-AS scenarios, each area or AS can have a child | In multi-area or multi-AS scenarios, each area or AS can have a child | |||
| PCE to collect the TE Policies in its own domain, in addition, a | PCE to collect the TE Policies in its own domain, in addition, a | |||
| parent PCE needs to collect TE Policy information from multiple child | parent PCE needs to collect TE Policy information from multiple child | |||
| PCEs to obtain a global view of LSPs inside and across the domains | PCEs to obtain a global view of LSPs inside and across the domains | |||
| involved. | involved. | |||
| In another network scenario, a centralized controller is used for | In another network scenario, a centralized controller is used for | |||
| service placement. Obtaining the TE Policy state information is | service placement. Obtaining the TE Policy state information is | |||
| quite important for making appropriate service placement decisions | quite important for making appropriate service placement decisions | |||
| with the purpose to both meet the application's requirements and | with the purpose to both meet the application's requirements and | |||
| utilize network resources efficiently. | utilize network resources efficiently. | |||
| The Network Management System (NMS) may need to provide global | The Network Management System (NMS) may need to provide global | |||
| visibility of the TE Policies in the network as part of the network | visibility of the TE Policies in the network as part of the network | |||
| visualization function. | visualization function. | |||
| BGP has been extended to distribute link-state and traffic | BGP has been extended to distribute link-state and traffic | |||
| engineering information to external components [RFC7752]. Using the | engineering information to external components [RFC7752]. Using the | |||
| same protocol to collect Traffic Engineering and Policy information | same protocol to collect Traffic Engineering Policy and state | |||
| is desirable for these external components since this avoids | information is desirable for these external components since this | |||
| introducing multiple protocols for network information collection. | avoids introducing multiple protocols for network information | |||
| This document describes a mechanism to distribute traffic engineering | collection. This document describes a mechanism to distribute | |||
| and policy information (MPLS, IPv4 and IPv6) to external components | traffic engineering policy information (MPLS, SR, IPv4 and IPv6) to | |||
| using BGP-LS. | external components using BGP-LS. | |||
| 2. Carrying TE Policy Information in BGP | 2. Carrying TE Policy Information in BGP | |||
| 2.1. TE Policy Information | ||||
| TE Policy information is advertised in BGP UPDATE messages using the | TE Policy information is advertised in BGP UPDATE messages using the | |||
| MP_REACH_NLRI and MP_UNREACH_NLRI attributes [RFC4760]. The "Link- | MP_REACH_NLRI and MP_UNREACH_NLRI attributes [RFC4760]. The "Link- | |||
| State NLRI" defined in [RFC7752] is extended to carry the TE Policy | State NLRI" defined in [RFC7752] is extended to carry the TE Policy | |||
| information. BGP speakers that wish to exchange TE Policy | information. BGP speakers that wish to exchange TE Policy | |||
| information MUST use the BGP Multiprotocol Extensions Capability Code | information MUST use the BGP Multiprotocol Extensions Capability Code | |||
| (1) to advertise the corresponding (AFI, SAFI) pair, as specified in | (1) to advertise the corresponding (AFI, SAFI) pair, as specified in | |||
| [RFC4760]. A new TLV carried in the Link_State Attribute defined in | [RFC4760]. New TLVs carried in the Link_State Attribute defined in | |||
| [RFC7752] is also defined in order to carry the attributes of a TE | [RFC7752] are also defined in order to carry the attributes of a TE | |||
| Policy (Section 2.3). | Policy in the subsequent sections. | |||
| The format of "Link-State NLRI" is defined in [RFC7752]. A new "NLRI | ||||
| Type" is defined for TE Policy Information as following: | ||||
| o NLRI Type: TE Policy NLRI (suggested codepoint value 5, to be | ||||
| assigned by IANA). | ||||
| [RFC7752] defines the BGP-LS NLRI as follows: | The format of "Link-State NLRI" is defined in [RFC7752] 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | NLRI Type | Total NLRI Length | | | NLRI Type | Total NLRI Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| // Link-State NLRI (variable) // | // Link-State NLRI (variable) // | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| This document defines a new NLRI-Type and its format: the TE Policy | A new "NLRI Type" is defined for TE Policy Information as following: | |||
| NLRI defined in the following section. | ||||
| 2.2. TE Policy NLRI | o NLRI Type: TE Policy NLRI (value TBD see IANA Considerations | |||
| Section 9.1). | ||||
| The TE Policy NLRI (NLRI Type 5. Suggested value, to be assigned by | The format of this new NLRI type is defined in Section 3 below. | |||
| IANA) is shown in the following figure: | ||||
| 3. TE Policy NLRI | ||||
| This document defines the new TE Policy NLRI-Type and its 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 | | |||
| | (64 bits) | | | (64 bits) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Headend (Node Descriptors) // | // Headend (Node Descriptors) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // TE Policy Descriptors (variable) // | // TE Policy Descriptors (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Protocol-ID field specifies the component that owns the TE Policy | o Protocol-ID field specifies the component that owns the TE Policy | |||
| state in the advertising node. The following Protocol-IDs are | state in the advertising node. The following new Protocol-IDs are | |||
| defined (suggested values, to be assigned by IANA) and apply to | defined (values TBD see IANA Considerations Section 9.2) and apply | |||
| the TE Policy NLRI: | to the TE Policy NLRI: | |||
| +-------------+----------------------------------+ | +-------------+----------------------------------+ | |||
| | Protocol-ID | NLRI information source protocol | | | Protocol-ID | NLRI information source protocol | | |||
| +-------------+----------------------------------+ | +-------------+----------------------------------+ | |||
| | 8 | RSVP-TE | | | TBD | RSVP-TE | | |||
| | 9 | Segment Routing | | | TBD | Segment Routing | | |||
| +-------------+----------------------------------+ | +-------------+----------------------------------+ | |||
| o "Identifier" is an 8 octet value as defined in [RFC7752]. | o "Identifier" is an 8 octet value as defined in [RFC7752]. | |||
| o "Headend" consists of a Node Descriptor defined in [RFC7752]. | o "Headend" consists of a Node Descriptor defined in [RFC7752]. | |||
| o "TE Policy Descriptors" consists of: | o "TE Policy Descriptors" consists of (values TBD see IANA | |||
| Considerations Section 9.3): | ||||
| +-----------+----------------------------------+ | +-----------+----------------------------------+ | |||
| | Codepoint | Descriptor TLV | | | Codepoint | Descriptor TLVs | | |||
| +-----------+----------------------------------+ | +-----------+----------------------------------+ | |||
| | 267 | Tunnel ID | | | TBD | Tunnel ID | | |||
| | 268 | LSP ID | | | TBD | LSP ID | | |||
| | 269 | IPv4/6 Tunnel Head-end address | | | TBD | IPv4/6 Tunnel Head-end address | | |||
| | 270 | IPv4/6 Tunnel Tail-end address | | | TBD | IPv4/6 Tunnel Tail-end address | | |||
| | 271 | SR TE Policy | | | TBD | SR Policy Candidate Path | | |||
| | 272 | Local Cross Connect | | | TBD | Local MPLS Cross Connect | | |||
| +-----------+----------------------------------+ | +-----------+----------------------------------+ | |||
| 2.2.1. TE Policy Descriptors | 4. TE Policy Descriptors | |||
| This sections defines the TE Policy Descriptors TLVs. | This sections defines the TE Policy Descriptors TLVs which are used | |||
| to describe the TE Policy being advertised by using the new BGP-LS TE | ||||
| Policy NLRI type defined in Section 3. | ||||
| 2.2.1.1. Tunnel Identifier (Tunnel ID) | 4.1. Tunnel Identifier (Tunnel ID) | |||
| The Tunnel Identifier TLV contains the Tunnel ID defined in [RFC3209] | The Tunnel Identifier TLV contains the Tunnel ID defined in [RFC3209] | |||
| and has the following format: | and is used for RSVP-TE protocol TE Policies. It has the following | |||
| format: | ||||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Tunnel ID | | | Tunnel ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type: To be assigned by IANA (suggested value: 267) | o Type: TBD (see IANA Considerations Section 9.3) | |||
| o Length: 2 octets. | o Length: 2 octets. | |||
| o Tunnel ID: 2 octets as defined in [RFC3209]. | o Tunnel ID: 2 octets as defined in [RFC3209]. | |||
| 2.2.1.2. LSP Identifier (LSP ID) | 4.2. LSP Identifier (LSP ID) | |||
| The LSP Identifier TLV contains the LSP ID defined in [RFC3209] and | The LSP Identifier TLV contains the LSP ID defined in [RFC3209] and | |||
| has the following format: | is used for RSVP-TE protocol TE Policies. It has the following | |||
| format: | ||||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | LSP ID | | | LSP ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type: To be assigned by IANA (suggested value: 268) | o Type: TBD (see IANA Considerations Section 9.3) | |||
| o Length: 2 octets. | o Length: 2 octets. | |||
| o LSP ID: 2 octets as defined in [RFC3209]. | o LSP ID: 2 octets as defined in [RFC3209]. | |||
| 2.2.1.3. IPv4/IPv6 Tunnel Head-End Address | 4.3. IPv4/IPv6 Tunnel Head-End Address | |||
| The IPv4/IPv6 Tunnel Head-End Address TLV contains the Tunnel Head- | The IPv4/IPv6 Tunnel Head-End Address TLV contains the Tunnel Head- | |||
| End Address defined in [RFC3209] and has following format: | End Address defined in [RFC3209] and is used for RSVP-TE protocol TE | |||
| Policies. It has following format: | ||||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // IPv4/IPv6 Tunnel Head-End Address (variable) // | // IPv4/IPv6 Tunnel Head-End Address (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type: To be assigned by IANA (suggested value: 269) | o Type: TBD (see IANA Considerations Section 9.3) | |||
| o Length: 4 or 16 octets. | o Length: 4 or 16 octets. | |||
| When the IPv4/IPv6 Tunnel Head-end Address TLV contains an IPv4 | When the IPv4/IPv6 Tunnel Head-end Address TLV contains an IPv4 | |||
| address, its length is 4 (octets). | address, its length is 4 (octets). | |||
| When the IPv4/IPv6 Tunnel Head-end Address TLV contains an IPv6 | When the IPv4/IPv6 Tunnel Head-end Address TLV contains an IPv6 | |||
| address, its length is 16 (octets). | address, its length is 16 (octets). | |||
| 2.2.1.4. IPv4/IPv6 Tunnel Tail-End Address | 4.4. IPv4/IPv6 Tunnel Tail-End Address | |||
| The IPv4/IPv6 Tunnel Tail-End Address TLV contains the Tunnel Tail- | The IPv4/IPv6 Tunnel Tail-End Address TLV contains the Tunnel Tail- | |||
| End Address defined in [RFC3209] and has following format: | End Address defined in [RFC3209] and is used for RSVP-TE protocol TE | |||
| Policies. It has following format: | ||||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // IPv4/IPv6 Tunnel Tail-End Address (variable) // | // IPv4/IPv6 Tunnel Tail-End Address (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type: To be assigned by IANA (suggested value: 270) | o Type: TBD (see IANA Considerations Section 9.3) | |||
| o Length: 4 or 16 octets. | o Length: 4 or 16 octets. | |||
| When the IPv4/IPv6 Tunnel Tail-end Address TLV contains an IPv4 | When the IPv4/IPv6 Tunnel Tail-end Address TLV contains an IPv4 | |||
| address, its length is 4 (octets). | address, its length is 4 (octets). | |||
| When the IPv4/IPv6 Tunnel Tail-end Address TLV contains an IPv6 | When the IPv4/IPv6 Tunnel Tail-end Address TLV contains an IPv6 | |||
| address, its length is 16 (octets). | address, its length is 16 (octets). | |||
| 2.2.1.5. SR TE Policy TLV | 4.5. SR Policy Candidate Path Descriptor | |||
| The SR TE Policy TLV identifies a SR TE Policy as defined in | The SR Policy Candidate Path Descriptor TLV identifies a Segment | |||
| [I-D.previdi-idr-segment-routing-te-policy] and has the following | Routing Policy candidate path (CP) as defined in | |||
| [I-D.ietf-spring-segment-routing-policy] and has the following | ||||
| format: | format: | |||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Distinguisher (4 octets) | | |Protocol-origin| Flags | RESERVED | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Endpoint (4 or 16 octets) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Policy Color (4 octets) | | | Policy Color (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Endpoint (4 or 16 octets) | | | Originator AS Number (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Originator Address (4 or 16 octets) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Discriminator (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type: To be assigned by IANA (suggested value: 271) | o Type: TBD (see IANA Considerations Section 9.3) | |||
| o Length: variable (valid values are 24, 36 or 48 octets) | ||||
| o Length: 12 octets. | o Protocol-Origin : 1 octet field which identifies the protocol or | |||
| component which is responsible for the instantiation of this path. | ||||
| Following protocol-origin codepoints are defined in this document. | ||||
| o Distinguisher, Policy Color and Endpoint are defined in | +------------+---------------------------------------------------------+ | |||
| [I-D.previdi-idr-segment-routing-te-policy]. | | Code Point | Protocol Origin | | |||
| +------------+---------------------------------------------------------+ | ||||
| | 1 | PCEP | | ||||
| | 2 | BGP SR Policy | | ||||
| | 3 | Local (via CLI, Yang model through NETCONF, gRPC, etc.) | | ||||
| +------------+---------------------------------------------------------+ | ||||
| 2.2.1.6. MPLS Cross Connect | o Flags: 1 octet field with following bit positions defined. Other | |||
| bits SHOULD be cleared by originator and MUST be ignored by | ||||
| receiver. | ||||
| The MPLS Cross Connect TLV identifies a local MPLS state in the form | 0 1 2 3 4 5 6 7 | |||
| of incoming label and interface followed by an outgoing label and | +-+-+-+-+-+-+-+-+ | |||
| interface. Outgoing interface may appear multiple times (for | |E|O| | | |||
| multicast states). | +-+-+-+-+-+-+-+-+ | |||
| The Local Cross Connect TLV has the following format: | where: | |||
| * E-Flag : Indicates the encoding of endpoint as IPv6 address | ||||
| when SET and IPv4 address when CLEAR | ||||
| * O-Flag : Indicates the encoding of originator address as IPv6 | ||||
| address when SET and IPv4 address when CLEAR | ||||
| o Reserved : 2 octets which SHOULD be set to 0 by originator and | ||||
| MUST be ignored by receiver. | ||||
| o Endpoint : 4 or 16 octets (as indicated by the flags) containing | ||||
| the address of the endpoint of the SR Policy | ||||
| o Color : 4 octets that indicates the color of the SR Policy | ||||
| o Originator ASN : 4 octets to carry the 4 byte encoding of the ASN | ||||
| of the originator. Refer [I-D.ietf-spring-segment-routing-policy] | ||||
| Sec 2.4 for details. | ||||
| o Originator Address : 4 or 16 octets (as indicated by the flags) to | ||||
| carry the address of the originator. Refer | ||||
| [I-D.ietf-spring-segment-routing-policy] Sec 2.4 for details. | ||||
| o Discriminator : 4 octets to carry the discrimator of the path. | ||||
| Refer [I-D.ietf-spring-segment-routing-policy] Sec 2.5 for | ||||
| details. | ||||
| 4.6. Local MPLS Cross Connect | ||||
| The Local MPLS Cross Connect TLV identifies a local MPLS state in the | ||||
| form of incoming label and interface followed by an outgoing label | ||||
| and interface. Outgoing interface may appear multiple times (for | ||||
| multicast states). It is used with Protocol ID set to "Static | ||||
| Configuration" value 5 as defined in [RFC7752]. | ||||
| The Local MPLS Cross Connect TLV has the following format: | ||||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Incoming label (4 octets) | | | Incoming label (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Outgoing label (4 octets) | | | Outgoing label (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Sub-TLVs (variable) // | // Sub-TLVs (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type: To be assigned by IANA (suggested value: 271) | o Type: TBD (see IANA Considerations Section 9.3) | |||
| o Length: variable. | o Length: variable. | |||
| o Incoming and Outgoing labels: 4 octets each. | o Incoming and Outgoing labels: 4 octets each. | |||
| o Sub-TLVs: following Sub-TLVs are defined: | o Sub-TLVs: following Sub-TLVs are defined: | |||
| * Interface Sub-TLV | * Interface Sub-TLV | |||
| * Forwarding Equivalent Class (FEC) | * Forwarding Equivalent Class (FEC) | |||
| The MPLS Cross Connect TLV: | The Local MPLS Cross Connect TLV: | |||
| MUST have an incoming label. | MUST have an incoming label. | |||
| MUST have an outgoing label. | MUST have an outgoing label. | |||
| MAY contain an Interface Sub-TLV having the I-flag set. | MAY contain an Interface Sub-TLV having the I-flag set. | |||
| MUST contain at least one Interface Sub-TLV having the I-flag | MUST contain at least one Interface Sub-TLV having the I-flag | |||
| unset. | unset. | |||
| MAY contain multiple Interface Sub-TLV having the I-flag unset. | MAY contain multiple Interface Sub-TLV having the I-flag unset. | |||
| This is the case of a multicast MPLS cross connect. | This is the case of a multicast MPLS cross connect. | |||
| MAY contain a FEC Sub-TLV. | MAY contain a FEC Sub-TLV. | |||
| 2.2.1.6.1. MPLS Cross Connect Sub-TLVs | The following sub-TLVs are defined for the Local MPLS Cross Connect | |||
| 2.2.1.6.1.1. Interface Sub-TLV | TLV (values TBD see IANA Considerations Section 9.3): | |||
| The Interface sub-TLV is optional and contains the identifier of the | +-----------+----------------------------------+ | |||
| interface (incoming or outgoing) in the form of an IPv4 address or an | | Codepoint | Descriptor TLV | | |||
| IPv6 address. | +-----------+----------------------------------+ | |||
| | TBD | MPLS Cross Connect Interface | | ||||
| | TBD | MPLS Cross Connect FEC | | ||||
| +-----------+----------------------------------+ | ||||
| The Interface sub-TLV has the following format: | These are defined in the following sub-sections. | |||
| 4.6.1. MPLS Cross Connect Interface | ||||
| The MPLS Cross Connect Interface sub-TLV is optional and contains the | ||||
| identifier of the interface (incoming or outgoing) in the form of an | ||||
| IPv4 address or an IPv6 address. | ||||
| The MPLS Cross Connect Interface sub-TLV has the following format: | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| | Flags | | | Flags | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Local Interface Identifier (4 octets) | | | Local Interface Identifier (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Interface Address (4 or 16 octets) // | // Interface Address (4 or 16 octets) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type: To be assigned by IANA (suggested value: 1) | o Type: TBD (see IANA Considerations Section 9.3) | |||
| o Length: 9 or 21. | o Length: 9 or 21. | |||
| o Flags: 1 octet of flags defined as follows: | o Flags: 1 octet of flags defined as follows: | |||
| 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |I| | | |I| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| * I-Flag is the Interface flag. When set, the Interface Sub-TLV | * I-Flag is the Interface flag. When set, the Interface Sub-TLV | |||
| describes an incoming interface. If the I-flag is not set, | describes an incoming interface. If the I-flag is not set, | |||
| then the Interface Sub-TLV describes an outgoing interface. | then the Interface Sub-TLV describes an outgoing interface. | |||
| o Local Interface Identifier: a 4 octet identifier. | o Local Interface Identifier: a 4 octet identifier. | |||
| o Interface address: a 4 octet IPv4 address or a 16 octet IPv6 | o Interface address: a 4 octet IPv4 address or a 16 octet IPv6 | |||
| address. | address. | |||
| 2.2.1.6.1.2. Forwarding Equivalent Class (FEC) Sub-TLV | 4.6.2. MPLS Cross Connect FEC | |||
| The FEC sub-TLV is optional and contains the FEC associated to the | The MPLS Cross Connect FEC sub-TLV is optional and contains the FEC | |||
| incoming label. | associated to the incoming label. | |||
| The FEC sub-TLV has the following format: | The MPLS Cross Connect FEC sub-TLV has the following format: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Flags | Masklength | Prefix (variable) // | | Flags | Masklength | Prefix (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Prefix (variable) // | // Prefix (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| o Type: To be assigned by IANA (suggested value: 2) | o Type: TBD (see IANA Considerations Section 9.3) | |||
| o Length: variable. | o Length: variable. | |||
| o Flags: 1 octet of flags defined as follows: | o Flags: 1 octet of flags defined as follows: | |||
| 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |4| | | |4| | | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 12, line 46 ¶ | skipping to change at page 14, line 21 ¶ | |||
| * 4-Flag is the IPv4 flag. When set, the FEC Sub-TLV describes | * 4-Flag is the IPv4 flag. When set, the FEC Sub-TLV describes | |||
| an IPv4 FEC. If the 4-flag is not set, then the FEC Sub-TLV | an IPv4 FEC. If the 4-flag is not set, then the FEC Sub-TLV | |||
| describes an IPv6 FEC. | describes an IPv6 FEC. | |||
| o Mask Length: 1 octet of prefix length. | o Mask Length: 1 octet of prefix length. | |||
| o Prefix: an IPv4 or IPv6 prefix whose mask length is given by the " | o Prefix: an IPv4 or IPv6 prefix whose mask length is given by the " | |||
| Mask Length" field. | Mask Length" field. | |||
| 2.3. TE Policy State | 5. MPLS-TE Policy State TLV | |||
| A new TLV called "TE Policy State TLV" (codepoint to be assigned by | A new TLV called "MPLS-TE Policy State TLV", is used to describe the | |||
| IANA), is used to describe the characteristics of the TE Policy, | characteristics of the MPLS-TE Policy and it is carried in the | |||
| which is carried in the optional non-transitive BGP Attribute | optional non-transitive BGP Attribute "LINK_STATE Attribute" defined | |||
| "LINK_STATE Attribute" defined in [RFC7752]. These TE Policy | in [RFC7752]. These MPLS-TE Policy characteristics include the | |||
| characteristics include the characteristics and attributes of the | characteristics and attributes of the policy, it's dataplane, | |||
| policy, it's dataplane, explicit path, Quality of Service (QoS) | explicit path, Quality of Service (QoS) parameters, route | |||
| parameters, route information, the protection mechanisms, etc. | information, the protection mechanisms, etc. | |||
| The MPLS-TE Policy State TLV has the following format: | ||||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Path-origin | Dataplane | RESERVED | | | Path-origin | Dataplane | RESERVED | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // TE Policy State Sub-TLVs (variable) // | // MPLS-TE Policy State Objects (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| where: | where: | |||
| TE Policy State TLV | MPLS-TE Policy State TLV | |||
| o Type: Suggested value 1158 (to be assigned by IANA) | o Type: TBD (see IANA Considerations Section 9.3) | |||
| o Length: the total length of the TE Policy State TLV not including | o Length: the total length of the MPLS-TE Policy State TLV not | |||
| Type and Length fields. | including Type and Length fields. | |||
| o Path-origin: identifies the component (or protocol) from which the | o Path-origin: identifies the component (or protocol) from which the | |||
| contained object originated. This allows for objects defined in | contained object originated. This allows for objects defined in | |||
| different components to be collected while avoiding the possible | different components to be collected while avoiding the possible | |||
| code collisions among these components. Following path-origin | codepoint collisions among these components. Following path- | |||
| codepoints are defined in this document (suggested values, to be | origin codepoints are defined in this document. | |||
| assigned by IANA). | ||||
| +----------+------------------+ | +----------+------------------+ | |||
| | Code | Path | | | Code | Path | | |||
| | Point | Origin | | | Point | Origin | | |||
| +----------+------------------+ | +----------+------------------+ | |||
| | 1 | RSVP-TE | | | 1 | RSVP-TE | | |||
| | 2 | PCE | | | 2 | PCEP | | |||
| | 3 | BGP SR TE Policy | | | 3 | Local/Static | | |||
| | 4 | NETCONF | | ||||
| | 5 | Static | | ||||
| +----------+------------------+ | +----------+------------------+ | |||
| o Dataplane: describes to which dataplane the policy is applied to. | o Dataplane: describes to which dataplane the policy is applied to. | |||
| The following dataplane values are defined: | The following dataplane values are defined in this document: | |||
| +----------+------------------+ | +----------+------------------+ | |||
| | Code | Dataplane | | | Code | Dataplane | | |||
| | Point | | | | Point | | | |||
| +----------+------------------+ | +----------+------------------+ | |||
| | 1 | MPLS-IPv4 | | | 1 | MPLS-IPv4 | | |||
| | 2 | MPLS-IPv6 | | | 2 | MPLS-IPv6 | | |||
| | 3 | IPv6 | | ||||
| +----------+------------------+ | +----------+------------------+ | |||
| o RESERVED: 16-bit field field. SHOULD be set to 0 on transmission | o RESERVED: 16-bit field. SHOULD be set to 0 on transmission and | |||
| and MUST be ignored on receipt. | MUST be ignored on receipt. | |||
| TE Policy State sub-TLVs: objects as defined in [RFC3209],[RFC3473], | o TE Policy State Objects: Rather than replicating all these objects | |||
| [RFC5440] and [I-D.previdi-idr-segment-routing-te-policy]. Rather | in this document, the semantics and encodings of the objects as | |||
| than replicating all these objects in this document, the semantics | defined in RSVP-TE and PCEP are reused. | |||
| and encodings of the objects are reused. These objects are carried | ||||
| in the "TE Policy State Information" with the following format. | ||||
| 2.3.1. RSVP Objects | The state information is carried in the "MPLS-TE Policy State | |||
| Objects" with the following format as described in the sub-sections | ||||
| below. | ||||
| RSVP-TE objects are encoded in the "Value" field of the LSP State TLV | 5.1. RSVP Objects | |||
| and consists of MPLS TE LSP objects defined in RSVP-TE [RFC3209] | ||||
| [RFC3473]. Rather than replicating all MPLS TE LSP related objects | RSVP-TE objects are encoded in the "MPLS-TE Policy State Objects" | |||
| in this document, the semantics and encodings of the MPLS TE LSP | field of the MPLS-TE Policy State TLV and consists of MPLS TE LSP | |||
| objects are re-used. These MPLS TE LSP objects are carried in the | objects defined in RSVP-TE [RFC3209] [RFC3473]. Rather than | |||
| LSP State TLV. | replicating all MPLS TE LSP related objects in this document, the | |||
| semantics and encodings of the MPLS TE LSP objects are re-used. | ||||
| These MPLS TE LSP objects are carried in the MPLS-TE Policy State | ||||
| TLV. | ||||
| When carrying RSVP-TE objects, the "Path-Origin" field is set to | When carrying RSVP-TE objects, the "Path-Origin" field is set to | |||
| "RSVP-TE". | "RSVP-TE". | |||
| The following RSVP-TE Objects are defined: | The following RSVP-TE Objects are defined: | |||
| o SENDER_TSPEC and FLOW_SPEC [RFC2205] | o SENDER_TSPEC and FLOW_SPEC [RFC2205] | |||
| o SESSION_ATTRIBUTE [RFC3209] | o SESSION_ATTRIBUTE [RFC3209] | |||
| skipping to change at page 15, line 26 ¶ | skipping to change at page 16, line 48 ¶ | |||
| o ADMIN_STATUS Object [RFC3473] | o ADMIN_STATUS Object [RFC3473] | |||
| o LABEL_REQUEST Object [RFC3209][RFC3473] | o LABEL_REQUEST Object [RFC3209][RFC3473] | |||
| For the MPLS TE LSP Objects listed above, the corresponding sub- | For the MPLS TE LSP Objects listed above, the corresponding sub- | |||
| objects are also applicable to this mechanism. Note that this list | objects are also applicable to this mechanism. Note that this list | |||
| is not exhaustive, other MPLS TE LSP objects which reflect specific | is not exhaustive, other MPLS TE LSP objects which reflect specific | |||
| characteristics of the MPLS TE LSP can also be carried in the LSP | characteristics of the MPLS TE LSP can also be carried in the LSP | |||
| state TLV. | state TLV. | |||
| 2.3.2. PCE Objects | 5.2. PCEP Objects | |||
| PCE objects are encoded in the "Value" field of the MPLS TE LSP State | PCEP objects are encoded in the "MPLS-TE Policy State Objects" field | |||
| TLV and consists of PCE objects defined in [RFC5440]. Rather than | of the MPLS-TE Policy State TLV and consists of PCEP objects defined | |||
| replicating all MPLS TE LSP related objects in this document, the | in [RFC5440]. Rather than replicating all MPLS TE LSP related | |||
| semantics and encodings of the MPLS TE LSP objects are re-used. | objects in this document, the semantics and encodings of the MPLS TE | |||
| These MPLS TE LSP objects are carried in the LSP State TLV. | LSP objects are re-used. These MPLS TE LSP objects are carried in | |||
| the MPLS-TE Policy State TLV. | ||||
| When carrying PCE objects, the "Path-Origin" field is set to "PCE". | When carrying PCEP objects, the "Path-Origin" field is set to "PCEP". | |||
| The following PCE Objects are defined: | The following PCEP Objects are defined: | |||
| o METRIC Object [RFC5440] | o METRIC Object [RFC5440] | |||
| o BANDWIDTH Object [RFC5440] | o BANDWIDTH Object [RFC5440] | |||
| For the MPLS TE LSP Objects listed above, the corresponding sub- | For the MPLS TE LSP Objects listed above, the corresponding sub- | |||
| objects are also applicable to this mechanism. Note that this list | objects are also applicable to this mechanism. Note that this list | |||
| is not exhaustive, other MPLS TE LSP objects which reflect specific | is not exhaustive, other MPLS TE LSP objects which reflect specific | |||
| characteristics of the MPLS TE LSP can also be carried in the LSP | characteristics of the MPLS TE LSP can also be carried in the TE | |||
| state TLV. | Policy State TLV. | |||
| 2.3.3. SR TE Policy Sub-TLVs | 6. SR Policy State TLVs | |||
| Segment Routing Traffic Engineering Policy (SR TE Policy) as | Segment Routing Policy (SR Policy) architecture is specified in | |||
| described in [I-D.previdi-idr-segment-routing-te-policy]makes use of | [I-D.ietf-spring-segment-routing-policy]. A SR Policy can comprise | |||
| the Tunnel Encapsulation Attribute defined in | of one or more candidate paths (CP) of which at a given time one and | |||
| [I-D.ietf-idr-tunnel-encaps] and defines following sub-TLVs: | only one may be active (i.e. installed in forwarding and usable for | |||
| steering of traffic). Each CP in turn may have one or more SID-List | ||||
| of which one or more may be active; when multiple are active then | ||||
| traffic is load balanced over them. | ||||
| o Preference | This section defines the various TLVs which enable the headend to | |||
| report the state of an SR Policy, its CP(s), SID-List(s) and their | ||||
| status. These TLVs are carried in the optional non-transitive BGP | ||||
| Attribute "LINK_STATE Attribute" defined in [RFC7752] and enable the | ||||
| same consistent form of reporting for SR Policy state irrespective of | ||||
| the Protocol-Origin used to provision the policy. Detailed procedure | ||||
| is described in Section 7 . | ||||
| o Binding SID | 6.1. SR Binding SID | |||
| o Weight | The SR Binding SID (BSID) TLV provides the BSID and its attributes | |||
| for the SR Policy CP. The TLV MAY also optionally contain the | ||||
| Provisioned BSID value for reporting when explicitly provisioned. | ||||
| o Segment List | The TLV has the following format: | |||
| o Segment | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | BSID Flags | RESERVED | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Binding SID (4 or 16 octets) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Provisioned Binding SID (optional, 4 or 16 octets) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| The equivalent sub-TLVs are defined hereafter and carried in the TE | where: | |||
| Policy State TLV. When carrying SR TE Policy objects, the "Path- | ||||
| Origin" field is set to "BGP SR TE Policy". | ||||
| 2.3.3.1. Preference Object | o Type: TBD (see IANA Considerations Section 9.3) | |||
| The Preference sub-TLV has the following format: | o Length: variable (valid values are 12, 16, 24 or 40 octets) | |||
| o BSID Flags: 2 octet field that indicates attribute and status of | ||||
| the Binding SID (BSID) associated with this CP. The following bit | ||||
| positions are defined and the semantics are described in detail in | ||||
| [I-D.ietf-spring-segment-routing-policy]. Other bits SHOULD be | ||||
| cleared by originator and MUST be ignored by receiver. | ||||
| 0 1 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| |D|B|U|S|L|F| | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| * D-Flag : Indicates the dataplane for the BSIDs and if they are | ||||
| 16 octet SRv6 SID when SET and are 4 octet SR/MPLS label value | ||||
| when CLEAR. | ||||
| * B-Flag : Indicates the allocation of the value in the BSID | ||||
| field when SET and indicates that BSID is not allocated when | ||||
| CLEAR. | ||||
| * U-Flag : Indicates the provisioned BSID value is unavailable | ||||
| when SET. | ||||
| * S-Flag : Indicates the BSID value in use is specified or | ||||
| provisioned value when SET and dynamically allocated value when | ||||
| CLEAR. | ||||
| * L-Flag : Indicates the BSID value is from the Segment Routing | ||||
| Local Block (SRLB) of the headend node when SET and is from the | ||||
| local label pool when CLEAR | ||||
| * F-Flag : Indicates the BSID value is one allocated from dynamic | ||||
| range due to fallback (e.g. when specified BSID is unavailable) | ||||
| when SET. | ||||
| o RESERVED: 2 octets. SHOULD be set to 0 by originator and MUST be | ||||
| ignored by receiver. | ||||
| o Binding SID: It indicates the operational or allocated BSID value | ||||
| for the CP based on the status flags. | ||||
| o Provisioned BSID: Optional field used to report the explicitly | ||||
| provisioned BSID value as indicated by the S-Flag being SET. | ||||
| The BSID fields above are 4 octet carrying the MPLS Label or 16 | ||||
| octets carrying the SRv6 SID based on the BSID D-flag. When carrying | ||||
| the MPLS Label, as shown in the figure below, the TC, S and TTL | ||||
| (total of 12 bits) are RESERVED and SHOULD be set to 0 by originator | ||||
| and MUST be ignored by the receiver. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Label | TC |S| TTL | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| 6.2. SR Candidate Path State | ||||
| The SR Candidate Path (CP) State TLV provides the operational status | ||||
| and attributes of the SR Policy at the CP level. The TLV has the | ||||
| following format: | ||||
| 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 | Flags | RESERVED | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Priority | RESERVED | Flags | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Preference (4 octets) | | | Preference (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| All fields, including type and length, are defined in | where: | |||
| [I-D.previdi-idr-segment-routing-te-policy]. | ||||
| 2.3.3.2. SR TE Binding SID Sub-TLV | o Type: TBD (see IANA Considerations Section 9.3) | |||
| The Binding SID sub-TLV has the following format: | o Length: 12 octets | |||
| o Priority : 1 octet value which indicates the priority of the CP | ||||
| o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be | ||||
| ignored by receiver. | ||||
| o Flags: 2 octet field that indicates attribute and status of the | ||||
| CP. The following bit positions are defined and the semantics are | ||||
| described in detail in [I-D.ietf-spring-segment-routing-policy]. | ||||
| Other bits SHOULD be cleared by originator and MUST be ignored by | ||||
| receiver. | ||||
| 0 1 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| |S|A|B|E|V|O|D|C|I|T| | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| * S-Flag : Indicates the CP is in administrative shut state when | ||||
| SET | ||||
| * A-Flag : Indicates the CP is the active path (i.e. one | ||||
| provisioned in the forwarding plane) for the SR Policy when SET | ||||
| * B-Flag : Indicates the CP is the backup path (i.e. one | ||||
| identified for path protection of the active path) for the SR | ||||
| Policy when SET | ||||
| * E-Flag : Indicates that the CP has been evaluated for validity | ||||
| (e.g. headend may evaluate CPs based on their preferences) when | ||||
| SET | ||||
| * V-Flag : Indicates the CP has at least one valid SID-List when | ||||
| SET | ||||
| * O-Flag : Indicates the CP was instantiated by the headend due | ||||
| to an on-demand-nexthop trigger based on local template when | ||||
| SET | ||||
| * D-Flag : Indicates the CP was delegated for computation to a | ||||
| PCE/controller when SET | ||||
| * C-Flag : Indicates the CP was provisioned by a PCE/controller | ||||
| when SET | ||||
| * I-Flag : Indicates the CP will perform the "drop upon invalid" | ||||
| behavior when no other active path is available for this SR | ||||
| Policy and this path is the one with best preference amongst | ||||
| the available CPs. | ||||
| * T-Flag : Indicates the CP has been marked as eligible for use | ||||
| as Transit Policy on the headend when SET | ||||
| o Preference : 4 octet value which indicates the preference of the | ||||
| CP | ||||
| 6.3. SR Candidate Path Name | ||||
| The SR Candidate Path Name TLV is an optional TLV that is used to | ||||
| carry the symbolic name associated with the candidate path. The TLV | ||||
| has the following format: | ||||
| 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 | Flags | RESERVED | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Binding SID (variable, optional) | | | Candidate Path Symbolic Name (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| All fields, including type and length, are defined in | ||||
| [I-D.previdi-idr-segment-routing-te-policy]. | ||||
| [I-D.previdi-idr-segment-routing-te-policy] specifies the Binding SID | where: | |||
| sub-TLV which carries an indication of which value to allocate as | ||||
| Binding SID to the SR TE Policy. In the context of the BGP-LS | ||||
| extensions defined in this document, the Binding SID sub-TLV to the | ||||
| reciever of the , the Binding SID TLThe Binding SID sub-TLV contains | ||||
| the Binding SID the originator of the BGP-LS update has allocated to | ||||
| the corresponding SR TE Policy. | ||||
| In the context of BGP-LS, the Binding SID sub-TLV defined in this | o Type: TBD (see IANA Considerations Section 9.3) | |||
| document, contains the effective value of the Binding SID that the | ||||
| router allocated to the SR TE Policy. The router is the SR TE Policy | ||||
| receiver (as described in | ||||
| [I-D.previdi-idr-segment-routing-te-policy]) and it is also the | ||||
| originator of the corresponding BGP-LS update with the extensions | ||||
| defined in this document. | ||||
| 2.3.3.3. Weight Sub-TLV | o Length: variable | |||
| The Weight sub-TLV has the following format: | o CP Name : Symbolic name for the CP. It is a string of printable | |||
| ASCII characters without a NULL terminator. | ||||
| 6.4. SR Candidate Path Constraints | ||||
| The SR Candidate Path Constraints TLV is an optional TLV that is used | ||||
| to report the contraints associated with the candidate path. The | ||||
| constraints are generally applied to a dynamic candidate path which | ||||
| is computed by the headend. The constraints may also be applied to | ||||
| an explicit path where the headend is expected to validate that the | ||||
| path expresses satisfies the specified constraints and the path is to | ||||
| be invalidated by the headend when the constraints are no longer met | ||||
| (e.g. due to topology changes). | ||||
| The TLV has the following format: | ||||
| 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 | Flags | RESERVED | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Weight | | | Flags | Algorithm | RESERVED | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | sub-TLVs (variable) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| All fields, including type and length, are defined in | where: | |||
| [I-D.previdi-idr-segment-routing-te-policy]. | ||||
| 2.3.3.4. Segment List Sub-TLV | o Type: TBD (see IANA Considerations Section 9.3) | |||
| The Segment List object contains sub-TLVs (which in fact are sub-sub- | o Length: variable | |||
| TLVs) and has following format: | ||||
| 0 1 2 3 | o Flags: 2 octet field that indicates the constraints that are being | |||
| applied to the CP. The following bit positions are defined and | ||||
| the other bits SHOULD be cleared by originator and MUST be ignored | ||||
| by receiver. | ||||
| 0 1 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| |D|P|U|A| | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| * A-Flag : Indicates that the CP needs to use SRv6 dataplane when | ||||
| SET and SR/MPLS dataplane when CLEAR | ||||
| * P-Flag : Indicates that the CP needs to use only protected SIDs | ||||
| when SET | ||||
| * U-Flag : Indicates that the CP needs to use only unprotected | ||||
| SIDs when SET | ||||
| * A-Flag : Indicates that the CP needs to use the SIDs belonging | ||||
| to the specified SR Algorithm only when SET | ||||
| o Algorithm : Indicates the algorithm that is preferred to be used | ||||
| when the path is setup. When the A-flag is SET then the path is | ||||
| strictly using the specified algorithm SIDs only. | ||||
| o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be | ||||
| ignored by receiver. | ||||
| o sub-TLVs: optional sub-TLVs MAY be included in this TLV to | ||||
| describe other constraints. | ||||
| The following constraint sub-TLVs are defined for the SR CP | ||||
| Constraints TLV. | ||||
| 6.4.1. SR Affinity Constraint | ||||
| The SR Affinity Constraint sub-TLV is an optional sub-TLV that is | ||||
| used to carry the affinity constraints [RFC2702] associated with the | ||||
| candidate path. The affinity is expressed in terms of Extended Admin | ||||
| Group (EAG) as defined in [RFC7308]. The TLV has the following | ||||
| format: | ||||
| 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 | RESERVED | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // sub-TLVs // | | Excl-Any-Size | Incl-Any-Size | Incl-All-Size | RESERVED | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Exclude-Any EAG (optional, variable) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Include-Any EAG (optional, variable) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Include-All EAG (optional, variable) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| o All fields, including type and length, are defined in | ||||
| [I-D.previdi-idr-segment-routing-te-policy]. | ||||
| o Length is the total length (not including the Type and Length | where: | |||
| fields) of the sub-TLVs encoded within the Segment List sub-TLV. | ||||
| o sub-objects: | o Type: TBD (see IANA Considerations Section 9.3) | |||
| * An optional single Weight sub-TLV. | o Length: variable, dependent on the size of the Extended Admin | |||
| Group. MUST be a multiple of 4 octets. | ||||
| * One or more Segment sub-TLVs. | o Exclude-Any-Size : one octet to indicate the size of Exclude-Any | |||
| EAG bitmask size in multiples of 4 octets. (e.g. value 0 | ||||
| indicates the Exclude-Any EAG field is skipped, value 1 indicates | ||||
| that 4 octets of Exclude-Any EAG is included) | ||||
| The Segment List sub-TLV is mandatory. | o Include-Any-Size : one octet to indicate the size of Include-Any | |||
| EAG bitmask size in multiples of 4 octets. (e.g. value 0 | ||||
| indicates the Include-Any EAG field is skipped, value 1 indicates | ||||
| that 4 octets of Include-Any EAG is included) | ||||
| Multiple occurrences of the Segment List sub-TLV MAY appear in the SR | o Include-All-Size : one octet to indicate the size of Include-All | |||
| TE Policy. | EAG bitmask size in multiples of 4 octets. (e.g. value 0 | |||
| indicates the Include-All EAG field is skipped, value 1 indicates | ||||
| that 4 octets of Include-All EAG is included) | ||||
| 2.3.3.5. Segment Sub-TLV | o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be | |||
| ignored by receiver. | ||||
| The Segment sub-TLV describes a single segment in a segment list | o Exclude-Any EAG : the bitmask used to represent the affinities to | |||
| (i.e.: a single element of the explicit path). Multiple Segment sub- | be excluded from the path. | |||
| TLVs constitute an explicit path of the SR TE Policy. | ||||
| [I-D.previdi-idr-segment-routing-te-policy] defines 8 different types | o Include-Any EAG : the bitmask used to represent the affinities to | |||
| of Segment Sub-TLVs: | be included in the path. | |||
| Type 1: SID only, in the form of MPLS Label | o Include-All EAG : the bitmask used to represent the all affinities | |||
| Type 2: SID only, in the form of IPv6 address | to be included in the path. | |||
| Type 3: IPv4 Node Address with optional SID | ||||
| Type 4: IPv6 Node Address with optional SID | ||||
| Type 5: IPv4 Address + index with optional SID | ||||
| Type 6: IPv4 Local and Remote addresses with optional SID | ||||
| Type 7: IPv6 Address + index with optional SID | ||||
| Type 8: IPv6 Local and Remote addresses with optional SID | ||||
| 2.3.3.5.1. Type 1: SID only, in the form of MPLS Label | 6.4.2. SR SRLG Constraint | |||
| The Type-1 Segment Sub-TLV encodes a single SID in the form of an | The SR SRLG Constraint sub-TLV is an optional sub-TLV that is used to | |||
| MPLS label. The format is as follows: | carry the Shared Risk Link Group (SRLG) values [RFC4202] that are to | |||
| be excluded from the candidate path. The TLV has the following | ||||
| format: | ||||
| 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 | Flags | RESERVED | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Label | TC |S| TTL | | | SRLG Values (variable, multiples of 4 octets) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type, Length and values are defined in | ||||
| [I-D.previdi-idr-segment-routing-te-policy]. | ||||
| 2.3.3.5.2. Type 2: SID only, in the form of IPv6 address | where: | |||
| The Type-2 Segment Sub-TLV encodes a single SID in the form of an | o Type: TBD (see IANA Considerations Section 9.3) | |||
| IPv6 address. The format is as follows: | ||||
| o Length: variable, dependent on the number of SRLGs encoded. MUST | ||||
| be a multiple of 4 octets. | ||||
| o SRLG Values : One or more SRLG values (each of 4 octets). | ||||
| 6.4.3. SR Bandwidth Constraint | ||||
| The SR Bandwidth Constraint sub-TLV is an optional sub-TLV that is | ||||
| used to indicate the desired bandwidth availability that needs to be | ||||
| ensured for the candidate path. The TLV has the following format: | ||||
| 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 | Flags | RESERVED | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // IPv6 SID (16 octets) // | | Bandwidth | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type, Length and values are defined in | where: | |||
| [I-D.previdi-idr-segment-routing-te-policy]. | ||||
| 2.3.3.5.3. Type 3: IPv4 Node Address with optional SID | o Type: TBD (see IANA Considerations Section 9.3) | |||
| The Type-3 Segment Sub-TLV encodes an IPv4 node address and an | o Length: 8 octects | |||
| optional SID in the form of either an MPLS label or an IPv6 address. | ||||
| The format is as follows: | o Bandwidth : 4 octets which specify the desired bandwidth in unit | |||
| of bytes per second in IEEE floating point format. | ||||
| 6.4.4. SR Disjoint Group Constraint | ||||
| The SR Disjoint Group Constraint sub-TLV is an optional sub-TLV that | ||||
| is used to carry the disjointness constraint associated with the | ||||
| candidate path. The disjointness between two SR Policy Candidate | ||||
| Paths is expressed by associating them with the same disjoint group | ||||
| identifier and then specifying the type of disjointness required | ||||
| between their paths. The computation is expected to achieve the | ||||
| highest level of disjointness requested and when that is not possible | ||||
| then fallback to a lesser level progressively based on the levels | ||||
| indicated. | ||||
| The TLV has the following format: | ||||
| 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 | Flags | RESERVED | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IPv4 Node Address (4 octets) | | | Request-Flags | Status-Flags | RESERVED | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // SID (optional, 4 or 16 octets) // | | Disjoint Group Identifier | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type, Length and values are defined in | where: | |||
| [I-D.previdi-idr-segment-routing-te-policy]. | ||||
| 2.3.3.5.4. Type 4: IPv6 Node Address with optional SID | o Type: TBD (see IANA Considerations Section 9.3) | |||
| The Type-4 Segment Sub-TLV encodes an IPv6 node address and an | o Length: 12 octets | |||
| optional SID in the form of either an MPLS label or an IPv6 address. | o Request Flags : one octet to indicate the level of disjointness | |||
| The format is as follows: | requested as specified in the form of flags. The following flags | |||
| are defined and the other bits SHOULD be cleared by originator and | ||||
| MUST be ignored by receiver. | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| |S|N|L|F|I| | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| * S-Flag : Indicates that SRLG disjointness is requested | ||||
| * N-Flag : Indicates that node disjointness is requested when | ||||
| * L-Flag : Indicates that link disjointness is requested when | ||||
| * F-Flag : Indicates that the computation may fallback to a lower | ||||
| level of disjointness amongst the ones requested when all | ||||
| cannot be achieved | ||||
| * I-Flag : Indicates that the computation may fallback to the | ||||
| default best path (e.g. IGP path) in case of none of the | ||||
| desired disjointness can be achieved. | ||||
| o Status Flags : one octet to indicate the level of disjointness | ||||
| that has been achieved by the computation as specified in the form | ||||
| of flags. The following flags are defined and the other bits | ||||
| SHOULD be cleared by originator and MUST be ignored by receiver. | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| |S|N|L|F|I|X| | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| * S-Flag : Indicates that SRLG disjointness is achieved | ||||
| * N-Flag : Indicates that node disjointness is achieved | ||||
| * L-Flag : Indicates that link disjointness is achieved | ||||
| * F-Flag : Indicates that the computation has fallen back to a | ||||
| lower level of disjointness that requested. | ||||
| * I-Flag : Indicates that the computation has fallen back to the | ||||
| best path (e.g. IGP path) and disjointness has not been | ||||
| achieved | ||||
| * X-Flag : Indicates that the disjointness constraint could not | ||||
| be achieved and hence path has been invalidated | ||||
| o RESERVED: 2 octets. SHOULD be set to 0 by originator and MUST be | ||||
| ignored by receiver. | ||||
| o Disjointness Group Identifier : 4 octet value that is the group | ||||
| identifier for a set of disjoint paths | ||||
| 6.5. SR Segment List | ||||
| The SR Segment List TLV is used to report the SID-List(s) of a | ||||
| candidate path. The TLV has following format: | ||||
| 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 | Flags | RESERVED | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // IPv6 Node Address (16 octets) // | | Flags | Algorithm | RESERVED | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // SID (optional, 4 or 16 octets) // | | Weight (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | sub-TLVs (variable) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type, Length and values are defined in | where: | |||
| [I-D.previdi-idr-segment-routing-te-policy]. | ||||
| 2.3.3.5.5. Type 5: IPv4 Address + index with optional SID | o Type: TBD (see IANA Considerations Section 9.3) | |||
| The Type-5 Segment Sub-TLV encodes an IPv4 node address, an interface | o Length: variable | |||
| index and an optional SID in the form of either an MPLS label or an | ||||
| IPv6 address. The format is as follows: | o Flags: 1 octet field that indicates attribute and status of the | |||
| SID-List.The following bit positions are defined and the semantics | ||||
| are described in detail in | ||||
| [I-D.ietf-spring-segment-routing-policy]. Other bits SHOULD be | ||||
| cleared by originator and MUST be ignored by receiver. | ||||
| 0 1 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| |D|E|C|V|R|C|A| | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| * D-Flag : Indicates the SID-List is comprised of SRv6 SIDs when | ||||
| SET and indicates it is comprised of SR/MPLS labels when CLEAR. | ||||
| * E-Flag : Indicates that SID-List is an explicit path when SET | ||||
| and indicates dynamic path when CLEAR. | ||||
| * C-Flag : Indicates that SID-List has been computed for a | ||||
| dynamic path when SET. It is always reported as SET for | ||||
| explicit paths. | ||||
| * V-Flag : Indicates the SID-List has passed verification or its | ||||
| verification was not required when SET and failed verification | ||||
| when CLEAR. | ||||
| * R-Flag : Indicates that the first Segment has been resolved | ||||
| when SET and failed resolution when CLEAR. | ||||
| * C-Flag : Indicates that the computation for the dynamic path | ||||
| failed when SET and succeeded (or not required in case of | ||||
| explicit path) when CLEAR | ||||
| * A-Flag : Indicates that all the SIDs in the SID-List belong to | ||||
| the specified algorithm when SET. | ||||
| o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be | ||||
| ignored by receiver. | ||||
| o Algorithm: 1 octet that indicates the algorithm of the SIDs used | ||||
| in the SID-List when the A-flag is SET. | ||||
| o Weight: 4 octet field that indicates the weight associated with | ||||
| the SID-List for weighted load-balancing | ||||
| o Sub-TLVs : variable and contains the ordered set of Segments and | ||||
| any other optional attributes associated with the specific SID- | ||||
| List. | ||||
| The SR Segment sub-TLV (defined in Section 6.6) is the only currently | ||||
| defined sub-TLV for use with the SR Segment List TLV and it MUST be | ||||
| included as an ordered set of sub-TLVs within the SR Segment List TLV | ||||
| when the SID-List is not empty. A SID-List may be empty in certain | ||||
| cases (e.g. for a dynamic path) where the headend has not yet | ||||
| performed the computation and hence not derived the segments required | ||||
| for the path; in such cases, the SR Segment List TLV SHOULD NOT | ||||
| include any SR Segment sub-TLVs. | ||||
| 6.6. SR Segment | ||||
| The SR Segment sub-TLV describes a single segment in a SID-List. One | ||||
| or more instances of this sub-TLV in an ordered manner constitute a | ||||
| SID-List for a SR Policy candidate path. It is a sub-TLV of the SR | ||||
| Segment List TLV and has following format: | ||||
| 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 | Flags | RESERVED | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IfIndex (4 octets) | | | Segment Type | RESERVED | Flags | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | SID (4 or 16 octets) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| // SID Descriptor (variable) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| // Sub-TLVs (variable) // | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| o Type: TBD (see IANA Considerations Section 9.3) | ||||
| o Length: variable | ||||
| o Segment Type : 1 octet which indicates the type of segment (refer | ||||
| Section 6.6.1 for details) | ||||
| o RESERVED: 1 octet. SHOULD be set to 0 by originator and MUST be | ||||
| ignored by receiver. | ||||
| o Flags: 2 octet field that indicates attribute and status of the | ||||
| Segment and its SID. The following bit positions are defined and | ||||
| the semantics are described in detail in | ||||
| [I-D.ietf-spring-segment-routing-policy]. Other bits SHOULD be | ||||
| cleared by originator and MUST be ignored by receiver. | ||||
| 0 1 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| |S|E|V|R|A| | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| * S-Flag : Indicates the presence of SID value in the SID field | ||||
| when SET and that no value is indicated when CLEAR. | ||||
| * E-Flag : Indicates the SID value is explicitly provisioned | ||||
| value (locally on headend or via controller/PCE) when SET and | ||||
| is a dynamically resolved value by headend when CLEAR | ||||
| * V-Flag : Indicates the SID has passed verification or did not | ||||
| require verification when SET and failed verification when | ||||
| CLEAR. | ||||
| * R-Flag : Indicates the SID has been resolved or did not require | ||||
| resolution (e.g. because it is not the first SID) when SET and | ||||
| failed resolution when CLEAR. | ||||
| * A-Flag : Indicates that the Algorithm indicated in the Segment | ||||
| descriptor is valid when SET. When CLEAR, it indicates that | ||||
| the headend is unable to determine the algorithm of the SID. | ||||
| o SID : 4 octet carrying the MPLS Label or 16 octets carrying the | ||||
| SRv6 SID based on the F-flag. When carrying the MPLS Label, as | ||||
| shown in the figure below, the TC, S and TTL (total of 12 bits) | ||||
| are RESERVED and SHOULD be set to 0 by originator and MUST be | ||||
| ignored by the receiver. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Label | TC |S| TTL | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| o SID Descriptor : variable size SID descriptor based on the type of | ||||
| segment (refer Section 6.6.1 for details) | ||||
| o Sub-Sub-TLVs : variable and contains any other optional attributes | ||||
| associated with the specific SID-List. | ||||
| Currently no Sub-Sub-TLV of the SR Segment sub-TLV is defined. | ||||
| 6.6.1. Segment Descriptors | ||||
| [I-D.ietf-spring-segment-routing-policy] section 4 defines multiple | ||||
| types of segments and their description. This section defines the | ||||
| encoding of the Segment Descriptors for each of those Segment types | ||||
| to be used in the Segment sub-TLV describes previously in | ||||
| Section 6.6. | ||||
| The following types are currently defined (suggested values, to be | ||||
| assigned by IANA): | ||||
| +-------+--------------------------------------------------------------+ | ||||
| | Type | Segment Description | | ||||
| +-------+--------------------------------------------------------------+ | ||||
| | 0 | Invalid | | ||||
| | 1 | SR-MPLS Label | | ||||
| | 2 | SRv6 SID as IPv6 address | | ||||
| | 3 | SR-MPLS Prefix SID as IPv4 Node Address | | ||||
| | 4 | SR-MPLS Prefix SID as IPv6 Node Global Address | | ||||
| | 5 | SR-MPLS Adjacency SID as IPv4 Node Address & Local | | ||||
| | | Interface ID | | ||||
| | 6 | SR-MPLS Adjacency SID as IPv4 Local & Remote Interface | | ||||
| | | Addresses | | ||||
| | 7 | SR-MPLS Adjacency SID as pair of IPv6 Global Address & | | ||||
| | | Interface ID for Local & Remote nodes | | ||||
| | 8 | SR-MPLS Adjacency SID as pair of IPv6 Global Addresses for | | ||||
| | | the Local & Remote Interface | | ||||
| | 9 | SRv6 END SID as IPv6 Node Global Address | | ||||
| | 10 | SRv6 END.X SID as pair of IPv6 Global Address & Interface ID | | ||||
| | | for Local & Remote nodes | | ||||
| | 11 | SRv6 END.X SID as pair of IPv6 Global Addresses for the | | ||||
| | | Local & Remote Interface | | ||||
| +-------+--------------------------------------------------------------+ | ||||
| 6.6.1.1. Type 1: SR-MPLS Label | ||||
| The Segment is SR-MPLS type and is specified simply as the label. | ||||
| The format of its Segment Descriptor is as follows: | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| | Algorithm | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| Where: | ||||
| o Algorithm: 1 octet value that indicates the algorithm used for | ||||
| picking the SID. This is valid only when the A-flag has been SET | ||||
| in the Segment TLV. | ||||
| 6.6.1.2. Type 2: SRv6 SID | ||||
| The Segment is SRv6 type and is specified simply as the SRv6 SID | ||||
| address. The format of its Segment Descriptor is as follows: | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| | Algorithm | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| Where: | ||||
| o Algorithm: 1 octet value that indicates the algorithm used for | ||||
| picking the SID. This is valid only when the A-flag has been SET | ||||
| in the Segment TLV. | ||||
| 6.6.1.3. Type 3: SR-MPLS Prefix SID for IPv4 | ||||
| The Segment is SR-MPLS Prefix SID type and is specified as an IPv4 | ||||
| node address. The format of its Segment Descriptor is as follows: | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| | Algorithm | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IPv4 Node Address (4 octets) | | | IPv4 Node Address (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // SID (optional, 4 or 16 octets) // | ||||
| Where: | ||||
| o Algorithm: 1 octet value that indicates the algorithm used for | ||||
| picking the SID | ||||
| o IPv4 Node Address: 4 octet value which carries the IPv4 address | ||||
| associated with the node | ||||
| 6.6.1.4. Type 4: SR-MPLS Prefix SID for IPv6 | ||||
| The Segment is SR-MPLS Prefix SID type and is specified as an IPv6 | ||||
| global address. The format of its Segment Descriptor is as follows: | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| | Algorithm | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | IPv6 Node Global Address (16 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type, Length and values are defined in | Where: | |||
| [I-D.previdi-idr-segment-routing-te-policy]. | ||||
| 2.3.3.5.6. Type 6: IPv4 Local and Remote addresses with optional SID | o Algorithm: 1 octet value that indicates the algorithm used for | |||
| picking the SID | ||||
| The Type-6 Segment Sub-TLV encodes an IPv4 node address, an adjacency | o IPv6 Node Global Address: 16 octet value which carries the IPv6 | |||
| local address, an adjacency remote address and an optional SID in the | global address associated with the node | |||
| form of either an MPLS label or an IPv6 address. The format is as | ||||
| follows: | 6.6.1.5. Type 5: SR-MPLS Adjacency SID for IPv4 with Interface ID | |||
| The Segment is SR-MPLS Adjacency SID type and is specified as an IPv4 | ||||
| node address along with the local interface ID on that node. The | ||||
| format of its Segment Descriptor 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 | Flags | RESERVED | | | IPv4 Node Address (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Local IPv4 Address (4 octets) | | | Local Interface ID (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Remote IPv4 Address (4 octets) | | ||||
| Where: | ||||
| o IPv4 Node Address: 4 octet value which carries the IPv4 address | ||||
| associated with the node | ||||
| o Local Interface ID : 4 octet value which carries the local | ||||
| interface ID of the node identified by the Node Address | ||||
| 6.6.1.6. Type 6: SR-MPLS Adjacency SID for IPv4 with Interface Address | ||||
| The Segment is SR-MPLS Adjacency SID type and is specified as a pair | ||||
| of IPv4 local and remote addresses. The format of its Segment | ||||
| Descriptor is as follows: | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // SID (4 or 16 octets) // | | IPv4 Local Address (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | IPv4 Remote Address (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type, Length and values are defined in | Where: | |||
| [I-D.previdi-idr-segment-routing-te-policy]. | ||||
| 2.3.3.5.7. Type 7: IPv6 Address + index with optional SID | o IPv4 Local Address: 4 octet value which carries the local IPv4 | |||
| address associated with the node | ||||
| The Type-7 Segment Sub-TLV encodes an IPv6 node address, an interface | o IPv4 Remote Address: 4 octet value which carries the remote IPv4 | |||
| index and an optional SID in the form of either an MPLS label or an | address associated with the node's neighbor. This is optional and | |||
| IPv6 address. The format is as follows: | MAY be set to 0 when not used (e.g. when identifying point-to- | |||
| point links). | ||||
| 6.6.1.7. Type 7: SR-MPLS Adjacency SID for IPv6 with interface ID | ||||
| The Segment is SR-MPLS Adjacency SID type and is specified as a pair | ||||
| of IPv6 global address and interface ID for local and remote nodes. | ||||
| The format of its Segment Descriptor 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 | Flags | RESERVED | | | IPv6 Local Node Global Address (16 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IfIndex (4 octets) | | | Local Node Interface ID (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // IPv6 Node Address (16 octets) // | | IPv6 Remote Node Global Address (16 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // SID (optional, 4 or 16 octets) // | | Remote Node Interface ID (4 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type, Length and values are defined in | Where: | |||
| [I-D.previdi-idr-segment-routing-te-policy]. | ||||
| 2.3.3.5.8. Type 8: IPv6 Local and Remote addresses with optional SID | o IPv6 Local Node Global Address: 16 octet value which carries the | |||
| IPv6 global address associated with the local node | ||||
| The Type-8 Segment Sub-TLV encodes an IPv6 node address, an adjacency | o Local Node Interface ID : 4 octet value which carries the | |||
| local address, an adjacency remote address and an optional SID in the | interface ID of the local node identified by the Local Node | |||
| form of either an MPLS label or an IPv6 address. The format is as | Address | |||
| follows: | ||||
| o IPv6 Remote Node Global Address: 16 octet value which carries the | ||||
| IPv6 global address associated with the remote node. This is | ||||
| optional and MAY be set to 0 when not used (e.g. when identifying | ||||
| point-to-point links). | ||||
| o Remote Node Interface ID : 4 octet value which carries the | ||||
| interface ID of the remote node identified by the Remote Node | ||||
| Address. This is optional and MAY be set to 0 when not used (e.g. | ||||
| when identifying point-to-point links). | ||||
| 6.6.1.8. Type 8: SR-MPLS Adjacency SID for IPv6 with interface address | ||||
| The Segment is SR-MPLS Adjacency SID type and is specified as a pair | ||||
| of IPv6 Global addresses for local and remote interface addresses. | ||||
| The format of its Segment Descriptor 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 | Flags | RESERVED | | | Global IPv6 Local Interface Address (16 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Local IPv6 Address (16 octets) // | | Global IPv6 Remote Interface Address (16 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Remote IPv6 Address (16 octets) // | ||||
| Where: | ||||
| o IPv6 Local Address: 16 octet value which carries the local IPv6 | ||||
| address associated with the node | ||||
| o IPv6 Remote Address: 16 octet value which carries the remote IPv6 | ||||
| address associated with the node's neighbor | ||||
| 6.6.1.9. Type 9: SRv6 END SID as IPv6 Node Address | ||||
| The Segment is SRv6 END SID type and is specified as an IPv6 global | ||||
| address. The format of its Segment Descriptor is as follows: | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| | Algorithm | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // SID (4 or 16 octets) // | | IPv6 Node Global Address (16 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type, Length and values are defined in | Where: | |||
| [I-D.previdi-idr-segment-routing-te-policy]. | ||||
| 3. Operational Considerations | o Algorithm: 1 octet value that indicates the algorithm used for | |||
| picking the SID | ||||
| The Existing BGP operational procedures apply to this document. No | o IPv6 Node Global Address: 16 octet value which carries the IPv6 | |||
| new operation procedures are defined in this document. The | global address associated with the node | |||
| operational considerations as specified in [RFC7752] apply to this | ||||
| document. | 6.6.1.10. Type 10: SRv6 END.X SID as interface ID | |||
| The Segment is SRv6 END.X SID type and is specified as a pair of IPv6 | ||||
| global address and interface ID for local and remote nodes. The | ||||
| format of its Segment Descriptor is as follows: | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | IPv6 Local Node Global Address (16 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Local Node Interface ID (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | IPv6 Remote Node Global Address (16 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Remote Node Interface ID (4 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Where: | ||||
| o IPv6 Local Node Global Address: 16 octet value which carries the | ||||
| IPv6 global address associated with the local node | ||||
| o Local Node Interface ID : 4 octet value which carries the | ||||
| interface ID of the local node identified by the Local Node | ||||
| Address | ||||
| o IPv6 Remote Node Global Address: 16 octet value which carries the | ||||
| IPv6 global address associated with the remote node. This is | ||||
| optional and MAY be set to 0 when not used (e.g. when identifying | ||||
| point-to-point links). | ||||
| o Remote Node Interface ID : 4 octet value which carries the | ||||
| interface ID of the remote node identified by the Remote Node | ||||
| Address. This is optional and MAY be set to 0 when not used (e.g. | ||||
| when identifying point-to-point links). | ||||
| 6.6.1.11. Type 11: SRv6 END.X SID as interface address | ||||
| The Segment is SRv6 END.X SID type and is specified as a pair of IPv6 | ||||
| Global addresses for local and remote interface addresses. The | ||||
| format of its Segment Descriptor is as follows: | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Global IPv6 Local Interface Address (16 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Global IPv6 Remote Interface Address (16 octets) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Where: | ||||
| o IPv6 Local Address: 16 octet value which carries the local IPv6 | ||||
| address associated with the node | ||||
| o IPv6 Remote Address: 16 octet value which carries the remote IPv6 | ||||
| address associated with the node's neighbor | ||||
| 6.7. SR Segment List Metric | ||||
| The SR Segment List Metric sub-TLV describes the metric used for | ||||
| computation of the SID-List. It is used to report the type of metric | ||||
| used in the computation of a dynamic path either on the headend or | ||||
| when the path computation is delegated to a PCE/controller. When the | ||||
| path computation is done on the headend, it is also used to report | ||||
| the calculated metric for the path. | ||||
| It is a sub-TLV of the SR Segment List TLV and has following format: | ||||
| 0 1 2 3 | ||||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type | Length | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Metric Type | Flags | RESERVED | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Metric Margin | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Metric Bound | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Metric Value | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| o Type: TBD (see IANA Considerations Section 9.3) | ||||
| o Length: variable | ||||
| o Metric Type : 1 octet field which identifies the type of metric | ||||
| used for path computation. Following metric type codepoints are | ||||
| defined in this document. | ||||
| +------------+-----------------------------------------+ | ||||
| | Code Point | Metric Type | | ||||
| +------------+-----------------------------------------+ | ||||
| | 0 | IGP Metric | | ||||
| | 1 | Min Unidirectional Link Delay [RFC7471] | | ||||
| | 2 | TE Metric [RFC3630] | | ||||
| +------------+-----------------------------------------+ | ||||
| o Flags: 1 octet field that indicates the validity of the metric | ||||
| fields and their semantics. The following bit positions are | ||||
| defined and the other bits SHOULD be cleared by originator and | ||||
| MUST be ignored by receiver. | ||||
| 0 1 2 3 4 5 6 7 | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| |M|A|B|V| | | ||||
| +-+-+-+-+-+-+-+-+ | ||||
| where: | ||||
| * M-Flag : Indicates that the metric margin allowed for path | ||||
| computation is specified when SET | ||||
| * A-Flag : Indicates that the metric margin is specified as an | ||||
| absolute value when SET and is expressed as a percentage of the | ||||
| minimum metric when CLEAR. | ||||
| * B-Flag : Indicates that the metric bound allowed for the path | ||||
| is specified when SET. | ||||
| * V-Flag : Indicates that the metric value computed is being | ||||
| reported when SET. | ||||
| o RESERVED: 2 octets. SHOULD be set to 0 by originator and MUST be | ||||
| ignored by receiver. | ||||
| o Metric Margin : 4 octets which indicate the metric margin value | ||||
| when M-flag is SET. The metric margin is specified as either an | ||||
| absolute value or as a percentage of the minimum computed path | ||||
| metric based on the A-flag. The metric margin loosens the | ||||
| criteria for minimum metric path calculation up to the specified | ||||
| metric to accomodate for other factors such as bandwidth | ||||
| availability, minimal SID stack depth and maximizing of ECMP for | ||||
| the SR path computed. | ||||
| o Metric Bound : 4 octects which indicate the maximum metric value | ||||
| that is allowed when B-flag is SET. If the computed path metric | ||||
| crosses the specified bound value then the path is considered as | ||||
| invalid. | ||||
| o Metric Value : 4 octets which indicate the metric value of the | ||||
| computed path when V-flag is SET. This value is available and | ||||
| reported when the computation is successful and a valid path is | ||||
| available. | ||||
| 7. Procedures | ||||
| The BGP-LS advertisements for the TE Policy NLRI are originated by | ||||
| the headend node for the TE Policies that are instantiated on its | ||||
| local node. | ||||
| For MPLS TE LSPs signaled via RSVP-TE, the NLRI descriptor TLVs as | ||||
| specified in Section 4.1, Section 4.2, Section 4.3 and Section 4.4 | ||||
| are used. Then the TE LSP state is encoded in the BGP-LS Attribute | ||||
| field as MPLS-TE Policy State TLV as described in Section 5. The | ||||
| RSVP-TE objects that reflect the state of the LSP are included as | ||||
| defined in Section 5.1. When the TE LSP is setup with the help of | ||||
| PCEP signaling then another MPLS-TE Policy State TLV SHOULD be used | ||||
| to to encode the related PCEP objects corresponding to the LSP as | ||||
| defined in Section 5.2. | ||||
| For SR Policies, the NLRI descriptor TLV as specified in Section 4.5 | ||||
| is used. An SR Policy candidate path (CP) may be instantiated on the | ||||
| headend node via a local configuration, PCEP or BGP SR Policy | ||||
| signaling and this is indicated via the SR Protocol Origin. Then the | ||||
| SR Policy Candidate Path's attribute and state is encoded in the BGP- | ||||
| LS Attribute field as SR Policy State TLVs and sub-TLVs as described | ||||
| in Section 6. The SR Candidate Path State TLV as defined in | ||||
| Section 6.2 is included to report the state of the CP. The SR BSID | ||||
| TLV as defined in Section 6.1 is included to report the BSID of the | ||||
| CP when one is either provisioned or allocated by the headend. The | ||||
| constraints for the SR Policy Candidate Path are reported using the | ||||
| SR Candidate Path Constraints TLV as described in Section 6.4.The SR | ||||
| Segment List TLV is included for each of the SID-List(s) associated | ||||
| with the CP. Each SR Segment List TLV in turn includes SR Segment | ||||
| sub-TLV(s) to report the segment(s) and their status. The SR Segment | ||||
| List Metric sub-TLV is used to report the metric values and | ||||
| constraints for the specific SID List. | ||||
| When the SR Policy CP is setup with the help of PCEP signaling then | ||||
| another MPLS-TE Policy State TLV MAY be used to to encode the related | ||||
| PCEP objects corresponding to the LSP as defined in Section 5.2 | ||||
| specifically to report information and status that is not covered by | ||||
| the defined TLVs under Section 6. In the event of a conflict of | ||||
| information, the receiver MUST prefer the information originated via | ||||
| TLVs defined in Section 6 over the PCEP objects reported via the TE | ||||
| Policy State TLV. | ||||
| 8. Manageability Considerations | ||||
| The Existing BGP operational and management procedures apply to this | ||||
| document. No new procedures are defined in this document. The | ||||
| considerations as specified in [RFC7752] apply to this document. | ||||
| In general, it is assumed that the TE Policy head-end nodes are | In general, it is assumed that the TE Policy head-end nodes are | |||
| responsible for the distribution of TE Policy state information, | responsible for the distribution of TE Policy state information, | |||
| while other nodes, e.g. the nodes in the path of a policy, MAY report | while other nodes, e.g. the nodes in the path of a policy, MAY report | |||
| the TE Policy information (if available) when needed. For example, | the TE Policy information (if available) when needed. For example, | |||
| the border routers in the inter-domain case will also distribute LSP | the border routers in the inter-domain case will also distribute LSP | |||
| state information since the ingress node may not have the complete | state information since the ingress node may not have the complete | |||
| information for the end-to-end path. | information for the end-to-end path. | |||
| 4. IANA Considerations | 9. IANA Considerations | |||
| This document requires new IANA assigned codepoints. | This document requires new IANA assigned codepoints. | |||
| 4.1. BGP-LS NLRI-Types | 9.1. BGP-LS NLRI-Types | |||
| IANA maintains a registry called "Border Gateway Protocol - Link | IANA maintains a registry called "Border Gateway Protocol - Link | |||
| State (BGP-LS) Parameters" with a sub-registry called "BGP-LS NLRI- | State (BGP-LS) Parameters" with a sub-registry called "BGP-LS NLRI- | |||
| Types". | Types". | |||
| The following codepoints is suggested (to be assigned by IANA): | The following codepoints is suggested (to be assigned by IANA): | |||
| +------+----------------------------+---------------+ | +------+----------------------------+---------------+ | |||
| | Type | NLRI Type | Reference | | | Type | NLRI Type | Reference | | |||
| +------+----------------------------+---------------+ | +------+----------------------------+---------------+ | |||
| | 5 | TE Policy NLRI type | this document | | | 5 | TE Policy NLRI type | this document | | |||
| +------+----------------------------+---------------+ | +------+----------------------------+---------------+ | |||
| 4.2. BGP-LS Protocol-IDs | 9.2. BGP-LS Protocol-IDs | |||
| IANA maintains a registry called "Border Gateway Protocol - Link | IANA maintains a registry called "Border Gateway Protocol - Link | |||
| State (BGP-LS) Parameters" with a sub-registry called "BGP-LS | State (BGP-LS) Parameters" with a sub-registry called "BGP-LS | |||
| Protocol-IDs". | Protocol-IDs". | |||
| The following Protocol-ID codepoints are suggested (to be assigned by | The following Protocol-ID codepoints are suggested (to be assigned by | |||
| IANA): | IANA): | |||
| +-------------+----------------------------------+---------------+ | +-------------+----------------------------------+---------------+ | |||
| | Protocol-ID | NLRI information source protocol | Reference | | | Protocol-ID | NLRI information source protocol | Reference | | |||
| +-------------+----------------------------------+---------------+ | +-------------+----------------------------------+---------------+ | |||
| | 8 | RSVP-TE | this document | | | 8 | RSVP-TE | this document | | |||
| | 9 | Segment Routing | this document | | | 9 | Segment Routing | this document | | |||
| +-------------+----------------------------------+---------------+ | +-------------+----------------------------------+---------------+ | |||
| 4.3. BGP-LS Descriptors TLVs | 9.3. BGP-LS TLVs | |||
| IANA maintains a registry called "Border Gateway Protocol - Link | IANA maintains a registry called "Border Gateway Protocol - Link | |||
| State (BGP-LS) Parameters" with a sub-registry called "Node Anchor, | State (BGP-LS) Parameters" with a sub-registry called "Node Anchor, | |||
| Link Descriptor and Link Attribute TLVs". | Link Descriptor and Link Attribute TLVs". | |||
| The following TLV codepoints are suggested (to be assigned by IANA): | The following TLV codepoints are suggested (to be assigned by IANA): | |||
| +----------+--------------------------------------+---------------+ | +----------+----------------------------------------+---------------+ | |||
| | TLV Code | Description | Value defined | | | TLV Code | Description | Value defined | | |||
| | Point | | in | | | Point | | in | | |||
| +----------+--------------------------------------+---------------+ | +----------+----------------------------------------+---------------+ | |||
| | 1158 | TE Policy State TLV | this document | | | TBD | Tunnel ID TLV | this document | | |||
| | 267 | Tunnel ID TLV | this document | | | TBD | LSP ID TLV | this document | | |||
| | 268 | LSP ID TLV | this document | | | TBD | IPv4/6 Tunnel Head-end address TLV | this document | | |||
| | 269 | IPv4/6 Tunnel Head-end address TLV | this document | | | TBD | IPv4/6 Tunnel Tail-end address TLV | this document | | |||
| | 270 | IPv4/6 Tunnel Tail-end address TLV | this document | | | TBD | SR Policy CP Descriptor TLV | this document | | |||
| | 271 | SR TE Policy Identifier TLV | this document | | | TBD | MPLS Local Cross Connect TLV | this document | | |||
| +----------+--------------------------------------+---------------+ | | TBD | MPLS Cross Connect Interface TLV | this document | | |||
| | TBD | MPLS Cross Connect FEC TLV | this document | | ||||
| | TBD | MPLS-TE Policy State TLV | this document | | ||||
| | TBD | SR BSID TLV | this document | | ||||
| | TBD | SR CP State TLV | this document | | ||||
| | TBD | SR CP Name TLV | this document | | ||||
| | TBD | SR CP Constraints TLV | this document | | ||||
| | TBD | SR Segment List TLV | this document | | ||||
| | TBD | SR Segment sub-TLV | this document | | ||||
| | TBD | SR Segment List Metric sub-TLV | this document | | ||||
| | TBD | SR Affinity Constraint sub-TLV | this document | | ||||
| | TBD | SR SRLG Constraint sub-TLV | this document | | ||||
| | TBD | SR Bandwidth Constraint sub-TLV | this document | | ||||
| | TBD | SR Disjoint Group Constraint sub-TLV | this document | | ||||
| +----------+----------------------------------------+---------------+ | ||||
| 4.4. BGP-LS LSP-State TLV Path Origin | 9.4. BGP-LS SR Policy Protocol Origin | |||
| This document requests IANA to maintain a new sub-registry under | This document requests IANA to maintain a new sub-registry under | |||
| "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new | "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new | |||
| registry is called "Path Origin" and contains the codepoints | registry is called "SR Policy Protocol Origin" and contains the | |||
| allocated to the "Path Origin" field defined in Section 2.3. The | codepoints allocated to the "Protocol Origin" field defined in | |||
| Section 4.5. The registry contains the following codepoints | ||||
| (suggested values, to be assigned by IANA): | ||||
| +------------+---------------------------------------------------------+ | ||||
| | Code Point | Protocol Origin | | ||||
| +------------+---------------------------------------------------------+ | ||||
| | 1 | PCEP | | ||||
| | 2 | BGP SR Policy | | ||||
| | 3 | Local (via CLI, Yang model through NETCONF, gRPC, etc.) | | ||||
| +------------+---------------------------------------------------------+ | ||||
| 9.5. BGP-LS TE State Path Origin | ||||
| This document requests IANA to maintain a new sub-registry under | ||||
| "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new | ||||
| registry is called "TE State Path Origin" and contains the codepoints | ||||
| allocated to the "Path Origin" field defined in Section 5. The | ||||
| registry contains the following codepoints (suggested values, to be | registry contains the following codepoints (suggested values, to be | |||
| assigned by IANA): | assigned by IANA): | |||
| +----------+------------------+ | +----------+------------------+ | |||
| | Code | Path | | | Code | Path | | |||
| | Point | Origin | | | Point | Origin | | |||
| +----------+------------------+ | +----------+------------------+ | |||
| | 1 | RSVP-TE | | | 1 | RSVP-TE | | |||
| | 2 | PCE | | | 2 | PCEP | | |||
| | 3 | BGP SR TE Policy | | | 3 | Local/Static | | |||
| | 4 | NETCONF | | ||||
| | 5 | Static | | ||||
| +----------+------------------+ | +----------+------------------+ | |||
| 4.5. BGP-LS LSP-State TLV Dataplane | 9.6. BGP-LS TE State Dataplane | |||
| This document requests IANA to maintain a new sub-registry under | This document requests IANA to maintain a new sub-registry under | |||
| "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new | "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new | |||
| registry is called "Dataplane" and contains the codepoints allocated | registry is called "TE State Dataplane" and contains the codepoints | |||
| to the "dataplane" field defined in Section 2.3. The registry | allocated to the "dataplane" field defined in Section 5. The | |||
| contains the following codepoints (suggested values, to be assigned | registry contains the following codepoints (suggested values, to be | |||
| by IANA): | assigned by IANA): | |||
| +----------+------------------+ | +----------+------------------+ | |||
| | Code | Dataplane | | | Code | Dataplane | | |||
| | Point | | | | Point | | | |||
| +----------+------------------+ | +----------+------------------+ | |||
| | 1 | MPLS-IPv4 | | | 1 | MPLS-IPv4 | | |||
| | 2 | MPLS-IPv6 | | | 2 | MPLS-IPv6 | | |||
| | 3 | IPv6 | | ||||
| +----------+------------------+ | +----------+------------------+ | |||
| 5. Security Considerations | 9.7. BGP-LS SR Segment Descriptors | |||
| This document requests IANA to maintain a new sub-registry under | ||||
| "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new | ||||
| registry is called "SR Segment Descriptor Types" and contains the | ||||
| codepoints allocated to the "Segment Type" field defined in | ||||
| Section 6.6 and described in Section 6.6.1. The registry contains | ||||
| the following codepoints (suggested values, to be assigned by IANA): | ||||
| +-------+--------------------------------------------------------------+ | ||||
| | Code | Segment Description | | ||||
| | Point | | | ||||
| +-------+--------------------------------------------------------------+ | ||||
| | 0 | Invalid | | ||||
| | 1 | SR-MPLS Label | | ||||
| | 2 | SRv6 SID as IPv6 address | | ||||
| | 3 | SR-MPLS Prefix SID as IPv4 Node Address | | ||||
| | 4 | SR-MPLS Prefix SID as IPv6 Node Global Address | | ||||
| | 5 | SR-MPLS Adjacency SID as IPv4 Node Address & Local | | ||||
| | | Interface ID | | ||||
| | 6 | SR-MPLS Adjacency SID as IPv4 Local & Remote Interface | | ||||
| | | Addresses | | ||||
| | 7 | SR-MPLS Adjacency SID as pair of IPv6 Global Address & | | ||||
| | | Interface ID for Local & Remote nodes | | ||||
| | 8 | SR-MPLS Adjacency SID as pair of IPv6 Global Addresses for | | ||||
| | | the Local & Remote Interface | | ||||
| | 9 | SRv6 END SID as IPv6 Node Global Address | | ||||
| | 10 | SRv6 END.X SID as pair of IPv6 Global Address & Interface ID | | ||||
| | | for Local & Remote nodes | | ||||
| | 11 | SRv6 END.X SID as pair of IPv6 Global Addresses for the | | ||||
| | | Local & Remote Interface | | ||||
| +-------+--------------------------------------------------------------+ | ||||
| 9.8. BGP-LS Metric Type | ||||
| This document requests IANA to maintain a new sub-registry under | ||||
| "Border Gateway Protocol - Link State (BGP-LS) Parameters". The new | ||||
| registry is called "Metric Type" and contains the codepoints | ||||
| allocated to the "metric type" field defined in Section 6.7. The | ||||
| registry contains the following codepoints (suggested values, to be | ||||
| assigned by IANA): | ||||
| +------------+-----------------------------------------+ | ||||
| | Code Point | Metric Type | | ||||
| +------------+-----------------------------------------+ | ||||
| | 0 | IGP Metric | | ||||
| | 1 | Min Unidirectional Link Delay [RFC7471] | | ||||
| | 2 | TE Metric [RFC3630] | | ||||
| +------------+-----------------------------------------+ | ||||
| 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 [RFC6952] for details. | affect the BGP security model. See [RFC6952] for details. | |||
| 6. Acknowledgements | 11. Acknowledgements | |||
| The authors would like to thank Dhruv Dhody, Mohammed Abdul Aziz | The authors would like to thank Dhruv Dhody, Mohammed Abdul Aziz | |||
| Khalid, Lou Berger, Acee Lindem, Siva Sivabalan, Arjun Sreekantiah, | Khalid, Lou Berger, Acee Lindem, Siva Sivabalan, Arjun Sreekantiah, | |||
| and Dhanendra Jain for their review and valuable comments. | and Dhanendra Jain for their review and valuable comments. | |||
| 7. Contributors | 12. Contributors | |||
| The following people have substantially contributed to the editing of | The following people have substantially contributed to the editing of | |||
| this document: | this document: | |||
| Ketan Talaulikar | ||||
| Cisco Systems | ||||
| Email: ketant@cisco.com | ||||
| Clarence Filsfils | Clarence Filsfils | |||
| Cisco Systems | Cisco Systems | |||
| Email: cfilsfil@cisco.com | Email: cfilsfil@cisco.com | |||
| 8. References | 13. References | |||
| 8.1. Normative References | 13.1. Normative References | |||
| [I-D.ietf-spring-segment-routing-policy] | ||||
| Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d., | ||||
| bogdanov@google.com, b., and P. Mattes, "Segment Routing | ||||
| Policy Architecture", draft-ietf-spring-segment-routing- | ||||
| policy-01 (work in progress), June 2018. | ||||
| [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>. | |||
| [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. | [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. | |||
| Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 | Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 | |||
| Functional Specification", RFC 2205, DOI 10.17487/RFC2205, | Functional Specification", RFC 2205, DOI 10.17487/RFC2205, | |||
| September 1997, <https://www.rfc-editor.org/info/rfc2205>. | September 1997, <https://www.rfc-editor.org/info/rfc2205>. | |||
| skipping to change at page 26, line 27 ¶ | skipping to change at page 46, line 11 ¶ | |||
| Element (PCE) Communication Protocol (PCEP)", RFC 5440, | Element (PCE) Communication Protocol (PCEP)", RFC 5440, | |||
| DOI 10.17487/RFC5440, March 2009, | DOI 10.17487/RFC5440, March 2009, | |||
| <https://www.rfc-editor.org/info/rfc5440>. | <https://www.rfc-editor.org/info/rfc5440>. | |||
| [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and | [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and | |||
| S. Ray, "North-Bound Distribution of Link-State and | S. Ray, "North-Bound Distribution of Link-State and | |||
| Traffic Engineering (TE) Information Using BGP", RFC 7752, | Traffic Engineering (TE) Information Using BGP", RFC 7752, | |||
| DOI 10.17487/RFC7752, March 2016, | DOI 10.17487/RFC7752, March 2016, | |||
| <https://www.rfc-editor.org/info/rfc7752>. | <https://www.rfc-editor.org/info/rfc7752>. | |||
| 8.2. Informative References | 13.2. Informative References | |||
| [I-D.ietf-idr-tunnel-encaps] | [RFC2702] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and J. | |||
| Rosen, E., Patel, K., and G. Velde, "The BGP Tunnel | McManus, "Requirements for Traffic Engineering Over MPLS", | |||
| Encapsulation Attribute", draft-ietf-idr-tunnel-encaps-07 | RFC 2702, DOI 10.17487/RFC2702, September 1999, | |||
| (work in progress), July 2017. | <https://www.rfc-editor.org/info/rfc2702>. | |||
| [I-D.ietf-pce-stateful-pce] | [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering | |||
| Crabbe, E., Minei, I., Medved, J., and R. Varga, "PCEP | (TE) Extensions to OSPF Version 2", RFC 3630, | |||
| Extensions for Stateful PCE", draft-ietf-pce-stateful- | DOI 10.17487/RFC3630, September 2003, | |||
| pce-21 (work in progress), June 2017. | <https://www.rfc-editor.org/info/rfc3630>. | |||
| [I-D.previdi-idr-segment-routing-te-policy] | [RFC4202] Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions | |||
| Previdi, S., Filsfils, C., Mattes, P., Rosen, E., and S. | in Support of Generalized Multi-Protocol Label Switching | |||
| Lin, "Advertising Segment Routing Policies in BGP", draft- | (GMPLS)", RFC 4202, DOI 10.17487/RFC4202, October 2005, | |||
| previdi-idr-segment-routing-te-policy-07 (work in | <https://www.rfc-editor.org/info/rfc4202>. | |||
| progress), June 2017. | ||||
| [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation | |||
| Element (PCE)-Based Architecture", RFC 4655, | Element (PCE)-Based Architecture", RFC 4655, | |||
| DOI 10.17487/RFC4655, August 2006, | DOI 10.17487/RFC4655, August 2006, | |||
| <https://www.rfc-editor.org/info/rfc4655>. | <https://www.rfc-editor.org/info/rfc4655>. | |||
| [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of | [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of | |||
| BGP, LDP, PCEP, and MSDP Issues According to the Keying | BGP, LDP, PCEP, and MSDP Issues According to the Keying | |||
| and Authentication for Routing Protocols (KARP) Design | and Authentication for Routing Protocols (KARP) Design | |||
| Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, | Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, | |||
| <https://www.rfc-editor.org/info/rfc6952>. | <https://www.rfc-editor.org/info/rfc6952>. | |||
| [RFC7308] Osborne, E., "Extended Administrative Groups in MPLS | ||||
| Traffic Engineering (MPLS-TE)", RFC 7308, | ||||
| DOI 10.17487/RFC7308, July 2014, | ||||
| <https://www.rfc-editor.org/info/rfc7308>. | ||||
| [RFC7471] Giacalone, S., Ward, D., Drake, J., Atlas, A., and S. | ||||
| Previdi, "OSPF Traffic Engineering (TE) Metric | ||||
| Extensions", RFC 7471, DOI 10.17487/RFC7471, March 2015, | ||||
| <https://www.rfc-editor.org/info/rfc7471>. | ||||
| [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | ||||
| Computation Element Communication Protocol (PCEP) | ||||
| Extensions for Stateful PCE", RFC 8231, | ||||
| DOI 10.17487/RFC8231, September 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8231>. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Stefano Previdi (editor) | Stefano Previdi (editor) | |||
| Cisco Systems, Inc. | ||||
| Email: stefano@previdi.net | Email: stefano@previdi.net | |||
| Ketan Talaulikar | ||||
| Cisco Systems, Inc. | ||||
| Email: ketant@cisco.com | ||||
| Jie Dong (editor) | Jie Dong (editor) | |||
| Huawei Technologies | Huawei Technologies | |||
| Huawei Campus, No. 156 Beiqing Rd. | Huawei Campus, No. 156 Beiqing Rd. | |||
| Beijing 100095 | Beijing 100095 | |||
| China | China | |||
| Email: jie.dong@huawei.com | Email: jie.dong@huawei.com | |||
| Mach(Guoyi) Chen | Mach(Guoyi) Chen | |||
| Huawei Technologies | Huawei Technologies | |||
| skipping to change at page 27, line 40 ¶ | skipping to change at page 47, line 44 ¶ | |||
| China | China | |||
| Email: mach.chen@huawei.com | Email: mach.chen@huawei.com | |||
| Hannes Gredler | Hannes Gredler | |||
| RtBrick Inc. | RtBrick Inc. | |||
| Email: hannes@rtbrick.com | Email: hannes@rtbrick.com | |||
| Jeff Tantsura | Jeff Tantsura | |||
| Individual | Nuage Networks | |||
| Email: jefftant@gmail.com | Email: jefftant.ietf@gmail.com | |||
| End of changes. 197 change blocks. | ||||
| 384 lines changed or deleted | 1351 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||