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/