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.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |