draft-ietf-idr-segment-routing-te-policy-07.txt | draft-ietf-idr-segment-routing-te-policy-08.txt | |||
---|---|---|---|---|
Network Working Group S. Previdi | Network Working Group S. Previdi | |||
Internet-Draft Individual | Internet-Draft Individual | |||
Intended status: Standards Track C. Filsfils | Intended status: Standards Track C. Filsfils | |||
Expires: January 6, 2020 Cisco Systems, Inc. | Expires: May 21, 2020 K. Talaulikar, Ed. | |||
Cisco Systems | ||||
P. Mattes | P. Mattes | |||
Microsoft | Microsoft | |||
E. Rosen | E. Rosen | |||
Juniper Networks | Juniper Networks | |||
D. Jain | D. Jain | |||
S. Lin | S. Lin | |||
July 5, 2019 | November 18, 2019 | |||
Advertising Segment Routing Policies in BGP | Advertising Segment Routing Policies in BGP | |||
draft-ietf-idr-segment-routing-te-policy-07 | draft-ietf-idr-segment-routing-te-policy-08 | |||
Abstract | Abstract | |||
This document defines a new BGP SAFI with a new NLRI in order to | This document defines a new BGP SAFI with a new NLRI in order to | |||
advertise a candidate path of a Segment Routing Policy (SR Policy). | advertise a candidate path of a Segment Routing (SR) Policy. An SR | |||
An SR Policy is a set of candidate paths, each consisting of one or | Policy is a set of candidate paths, each consisting of one or more | |||
more segment lists. The headend of an SR Policy may learn multiple | segment lists. The headend of an SR Policy may learn multiple | |||
candidate paths for an SR Policy. Candidate paths may be learned via | candidate paths for an SR Policy. Candidate paths may be learned via | |||
a number of different mechanisms, e.g., CLI, NetConf, PCEP, or BGP. | a number of different mechanisms, e.g., CLI, NetConf, PCEP, or BGP. | |||
This document specifies the way in which BGP may be used to | This document specifies the way in which BGP may be used to | |||
distribute candidate paths. New sub-TLVs for the Tunnel | distribute SR Policy candidate paths. New sub-TLVs for the Tunnel | |||
Encapsulation Attribute are defined. | Encapsulation Attribute are defined for signaling information about | |||
these candidate paths. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
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 January 6, 2020. | This Internet-Draft will expire on May 21, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 | |||
skipping to change at page 2, line 28 ¶ | skipping to change at page 2, line 28 ¶ | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 | |||
2. SR Policy Encoding . . . . . . . . . . . . . . . . . . . . . 5 | 2. SR Policy Encoding . . . . . . . . . . . . . . . . . . . . . 5 | |||
2.1. SR Policy SAFI and NLRI . . . . . . . . . . . . . . . . . 5 | 2.1. SR Policy SAFI and NLRI . . . . . . . . . . . . . . . . . 5 | |||
2.2. SR Policy and Tunnel Encapsulation Attribute . . . . . . 7 | 2.2. SR Policy and Tunnel Encapsulation Attribute . . . . . . 7 | |||
2.3. Remote Endpoint and Color . . . . . . . . . . . . . . . . 8 | 2.3. Remote Endpoint and Color . . . . . . . . . . . . . . . . 8 | |||
2.4. SR Policy Sub-TLVs . . . . . . . . . . . . . . . . . . . 9 | 2.4. SR Policy Sub-TLVs . . . . . . . . . . . . . . . . . . . 8 | |||
2.4.1. Preference Sub-TLV . . . . . . . . . . . . . . . . . 9 | 2.4.1. Preference Sub-TLV . . . . . . . . . . . . . . . . . 9 | |||
2.4.2. Binding SID Sub-TLV . . . . . . . . . . . . . . . . . 10 | 2.4.2. Binding SID Sub-TLV . . . . . . . . . . . . . . . . . 9 | |||
2.4.3. Segment List Sub-TLV . . . . . . . . . . . . . . . . 11 | 2.4.3. Segment List Sub-TLV . . . . . . . . . . . . . . . . 11 | |||
2.4.4. Explicit NULL Label Policy Sub-TLV . . . . . . . . . 27 | 2.4.4. Explicit NULL Label Policy Sub-TLV . . . . . . . . . 24 | |||
2.4.5. Policy Priority Sub-TLV . . . . . . . . . . . . . . . 29 | 2.4.5. Policy Priority Sub-TLV . . . . . . . . . . . . . . . 25 | |||
2.4.6. Policy Name Sub-TLV . . . . . . . . . . . . . . . . . 29 | 2.4.6. Policy Name Sub-TLV . . . . . . . . . . . . . . . . . 26 | |||
3. Extended Color Community . . . . . . . . . . . . . . . . . . 30 | 3. Color Extended Community . . . . . . . . . . . . . . . . . . 27 | |||
4. SR Policy Operations . . . . . . . . . . . . . . . . . . . . 31 | 4. SR Policy Operations . . . . . . . . . . . . . . . . . . . . 27 | |||
4.1. Configuration and Advertisement of SR Policies . . . . . 31 | 4.1. Advertisement of SR Policies . . . . . . . . . . . . . . 27 | |||
4.2. Reception of an SR Policy NLRI . . . . . . . . . . . . . 31 | 4.2. Reception of an SR Policy NLRI . . . . . . . . . . . . . 28 | |||
4.2.1. Acceptance of an SR Policy NLRI . . . . . . . . . . . 31 | 4.2.1. Acceptance of an SR Policy NLRI . . . . . . . . . . . 28 | |||
4.2.2. Usable SR Policy NLRI . . . . . . . . . . . . . . . . 32 | 4.2.2. Usable SR Policy NLRI . . . . . . . . . . . . . . . . 29 | |||
4.2.3. Passing a usable SR Policy NLRI to the SRPM . . . . . 32 | 4.2.3. Passing a usable SR Policy NLRI to the SRPM . . . . . 29 | |||
4.2.4. Propagation of an SR Policy . . . . . . . . . . . . . 33 | 4.2.4. Propagation of an SR Policy . . . . . . . . . . . . . 29 | |||
4.3. Flowspec and SR Policies . . . . . . . . . . . . . . . . 33 | 5. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 33 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 | |||
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 34 | 6.1. Existing Registry: Subsequent Address Family Identifiers | |||
7. Implementation Status . . . . . . . . . . . . . . . . . . . . 34 | (SAFI) Parameters . . . . . . . . . . . . . . . . . . . . 31 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 | 6.2. Existing Registry: BGP Tunnel Encapsulation Attribute | |||
8.1. Existing Registry: Subsequent Address Family Identifiers | Tunnel Types . . . . . . . . . . . . . . . . . . . . . . 31 | |||
(SAFI) Parameters . . . . . . . . . . . . . . . . . . . . 36 | 6.3. Existing Registry: BGP Tunnel Encapsulation Attribute | |||
8.2. Existing Registry: BGP Tunnel Encapsulation Attribute | sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
Tunnel Types . . . . . . . . . . . . . . . . . . . . . . 36 | 6.4. New Registry: SR Policy List Sub-TLVs . . . . . . . . . . 32 | |||
8.3. Existing Registry: BGP Tunnel Encapsulation Attribute | 6.5. New Registry: SR Policy Binding SID Flags . . . . . . . . 32 | |||
sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 36 | 6.6. New Registry: SR Policy Segment Flags . . . . . . . . . . 33 | |||
8.4. New Registry: SR Policy List Sub-TLVs . . . . . . . . . . 36 | 6.7. New Registry: Color Extended Community Field . . . . . . 33 | |||
8.5. New Registry: SR Policy Binding SID Flags . . . . . . . . 37 | 6.8. Guidance for Designated Experts . . . . . . . . . . . . . 33 | |||
8.6. New Registry: SR Policy Segment Flags . . . . . . . . . . 37 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 34 | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 38 | 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 38 | 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 38 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
10.2. Informational References . . . . . . . . . . . . . . . . 39 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 35 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 40 | 10.2. Informational References . . . . . . . . . . . . . . . . 37 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 37 | ||||
1. Introduction | 1. Introduction | |||
Segment Routing (SR) allows a headend node to steer a packet flow | Segment Routing (SR) [RFC8402] allows a headend node to steer a | |||
along any path. Intermediate per-flow states are eliminated thanks | packet flow along any path. Intermediate per-flow states are | |||
to source routing [I-D.ietf-spring-segment-routing]. | eliminated thanks to source routing. | |||
The headend node is said to steer a flow into a Segment Routing | The headend node is said to steer a flow into a SR Policy. | |||
Policy (SR Policy). | ||||
The header of a packet steered in an SR Policy is augmented with the | The header of a packet steered in an SR Policy is augmented with the | |||
ordered list of segments associated with that SR Policy. | ordered list of segments associated with that SR Policy. | |||
[I-D.ietf-spring-segment-routing-policy] details the concepts of SR | [I-D.ietf-spring-segment-routing-policy] details the concepts of SR | |||
Policy and steering into an SR Policy. These apply equally to the | Policy and steering into an SR Policy. These apply equally to the | |||
MPLS and SRv6 instantiations of segment routing. | MPLS and IPv6 (known as SRv6) data plane instantiations of Segment | |||
Routing with their respective representations of segments as SR-MPLS | ||||
SID and SRv6 SID as described in [RFC8402]. | ||||
[I-D.filsfils-spring-sr-policy-considerations] describes some of the | [I-D.filsfils-spring-sr-policy-considerations] describes some of the | |||
implementation aspects of the SR Policy Headend Architecture and | implementation aspects of the SR Policy Headend Architecture and | |||
introduces the notion of an SR Policy Module (SRPM) that performs the | introduces the notion of an SR Policy Module (SRPM) that performs the | |||
functionality as highlighted in section 2 of | functionality as highlighted in section 2 of | |||
[I-D.ietf-spring-segment-routing-policy]: | [I-D.ietf-spring-segment-routing-policy]: | |||
o The SRPM may learn multiple candidate paths for an SR Policy via | o The SRPM may learn multiple candidate paths for an SR Policy via | |||
various mechanisms (CLI, NetConf, PCEP or BGP). | various mechanisms (CLI, NetConf, PCEP or BGP). | |||
o The SRPM selects the best candidate path for the SR Policy. | o The SRPM selects the best candidate path for the SR Policy. | |||
o The SRPM binds a BSID to the selected candidate path of the SR | o The SRPM binds a BSID to the selected candidate path of the SR | |||
Policy. | Policy. | |||
o The SRPM installs the selected candidate path and its BSID in the | o The SRPM installs the selected candidate path and its BSID in the | |||
forwarding plane. | forwarding plane. | |||
This document specifies the way to use BGP to distribute one or more | This document specifies the way to use BGP to distribute one or more | |||
of the candidate paths of an SR Policy to the headend of that policy. | of the candidate paths of an SR Policy to the headend of that policy. | |||
The document identifies the functionality that resides in the BGP | The document describes the functionality that resides in the BGP | |||
process and for the functionality which is outside the scope of BGP | process and, as appropriate, provides references for the | |||
and lies within SRPM on the headend node, it refers to such, as | functionality which is outside the scope of BGP (i.e. resides within | |||
appropriate. | SRPM on the headend node). | |||
This document specifies a way of representing SR Policies and their | This document specifies a way of representing SR Policy candidate | |||
candidate paths in BGP UPDATE messages. BGP can then be used to | paths in BGP UPDATE messages. BGP can then be used to propagate the | |||
propagate the SR Policies and candidate paths. The usual BGP rules | SR Policy candidate paths to the headend nodes in the network. The | |||
for BGP propagation and "bestpath selection" are used. At the | usual BGP rules for BGP propagation and "bestpath selection" are | |||
headend of a specific policy, this will result in one or more | used. At the headend of a specific policy, this will result in one | |||
candidate paths being installed into the "BGP table". These paths | or more candidate paths being installed into the "BGP table". These | |||
are then passed to the SRPM. The SRPM may compare them to candidate | paths are then passed to the SRPM. The SRPM may compare them to | |||
paths learned via other mechanisms, and will choose one or more paths | candidate paths learned via other mechanisms, and will choose one or | |||
to be installed in the data plane. BGP itself does not install SR | more paths to be installed in the data plane. BGP itself does not | |||
Policy candidate paths into the data plane. | install SR Policy candidate paths into the data plane. | |||
This document defines a new BGP address family (SAFI). In UPDATE | This document defines a new BGP address family (SAFI). In UPDATE | |||
messages of that address family, the NLRI identifies an SR Policy, | messages of that address family, the NLRI identifies an SR Policy | |||
and the attributes encode the segment lists and other details of that | Candidate Path, and the attributes encode the segment lists and other | |||
SR Policy. | details of that SR Policy Candidate Path. | |||
While for simplicity we may write that BGP advertises an SR Policy, | While for simplicity we may write that BGP advertises an SR Policy, | |||
it has to be understood that BGP advertises a candidate path of an SR | it has to be understood that BGP advertises a candidate path of an SR | |||
policy and that this SR Policy might have several other candidate | policy and that this SR Policy might have several other candidate | |||
paths provided via BGP (via an NLRI with a different distinguisher as | paths provided via BGP (via an NLRI with a different distinguisher as | |||
defined in this document), PCEP, NETCONF or local policy | defined in this document), PCEP, NETCONF or local policy | |||
configuration. | configuration. | |||
Typically, a controller defines the set of policies and advertise | Typically, a controller defines the set of policies and advertise | |||
them to policy head-end routers (typically ingress routers). The | them to policy head-end routers (typically ingress routers). The | |||
policy advertisement uses BGP extensions defined in this document. | policy advertisement uses BGP extensions defined in this document. | |||
The policy advertisement is, in most but not all of the cases, | The policy advertisement is, in most but not all of the cases, | |||
tailored for a specific policy head-end. In this case the | tailored for a specific policy head-end. In this case the | |||
advertisement may sent on a BGP session to that head-end and not | advertisement may be sent on a BGP session to that head-end and not | |||
propagated any further. | propagated any further. | |||
Alternatively, a router (i.e., a BGP egress router) advertises SR | Alternatively, a router (i.e., a BGP egress router) advertises SR | |||
Policies representing paths to itself. In this case, it is possible | Policies representing paths to itself. In this case, it is possible | |||
to send the policy to each head-end over a BGP session to that head- | to send the policy to each head-end over a BGP session to that head- | |||
end, without requiring any further propagation of the policy. | end, without requiring any further propagation of the policy. | |||
An SR Policy intended only for the receiver will, in most cases, not | An SR Policy intended only for the receiver will, in most cases, not | |||
traverse any Route Reflector (RR, [RFC4456]). | traverse any Route Reflector (RR, [RFC4456]). | |||
In some situations, it is undesirable for a controller or BGP egress | In some situations, it is undesirable for a controller or BGP egress | |||
router to have a BGP session to each policy head-end. In these | router to have a BGP session to each policy head-end. In these | |||
situations, BGP Route Reflectors may be used to propagate the | situations, BGP Route Reflectors may be used to propagate the | |||
advertisements, or it may be necessary for the advertisement to | advertisements, or it may be necessary for the advertisement to | |||
propagate through a sequence of one or more ASes. To make this | propagate through a sequence of one or more AS. To make this | |||
possible, an attribute needs to be attached to the advertisement that | possible, an attribute needs to be attached to the advertisement that | |||
enables a BGP speaker to determine whether it is intended to be a | enables a BGP speaker to determine whether it is intended to be a | |||
head-end for the advertised policy. This is done by attaching one or | head-end for the advertised policy. This is done by attaching one or | |||
more Route Target Extended Communities to the advertisement | more Route Target Extended Communities to the advertisement | |||
([RFC4360]). | ([RFC4360]). | |||
The BGP extensions for the advertisement of SR Policies include | The BGP extensions for the advertisement of SR Policies include | |||
following components: | following components: | |||
o A new Subsequent Address Family Identifier (SAFI) whose NLRI | o A new Subsequent Address Family Identifier (SAFI) whose NLRI | |||
skipping to change at page 5, line 34 ¶ | skipping to change at page 5, line 35 ¶ | |||
o The Color Extended Community (as defined in | o The Color Extended Community (as defined in | |||
[I-D.ietf-idr-tunnel-encaps]) and used in order to steer traffic | [I-D.ietf-idr-tunnel-encaps]) and used in order to steer traffic | |||
into an SR Policy, as described in section 8.4 in | into an SR Policy, as described in section 8.4 in | |||
[I-D.ietf-spring-segment-routing-policy]. This document | [I-D.ietf-spring-segment-routing-policy]. This document | |||
(Section 3) modifies the format of the Color Extended Community by | (Section 3) modifies the format of the Color Extended Community by | |||
using the two leftmost bits of the RESERVED field. | using the two leftmost bits of the RESERVED field. | |||
1.1. Requirements Language | 1.1. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
document are to be interpreted as described in RFC 2119 [RFC2119]. | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
2. SR Policy Encoding | 2. SR Policy Encoding | |||
2.1. SR Policy SAFI and NLRI | 2.1. SR Policy SAFI and NLRI | |||
A new SAFI is defined: the SR Policy SAFI, (codepoint 73 assigned by | A new SAFI is defined: the SR Policy SAFI with codepoint 73. The AFI | |||
IANA (see Section 8) from the "Subsequent Address Family Identifiers | used MUST be IPv4(1) or IPv6(2). | |||
(SAFI) Parameters" registry). | ||||
The SR Policy SAFI uses a new NLRI defined as follows: | The SR Policy SAFI uses a new NLRI defined as follows: | |||
+------------------+ | +------------------+ | |||
| NLRI Length | 1 octet | | NLRI Length | 1 octet | |||
+------------------+ | +------------------+ | |||
| Distinguisher | 4 octets | | Distinguisher | 4 octets | |||
+------------------+ | +------------------+ | |||
| Policy Color | 4 octets | | Policy Color | 4 octets | |||
+------------------+ | +------------------+ | |||
| Endpoint | 4 or 16 octets | | Endpoint | 4 or 16 octets | |||
+------------------+ | +------------------+ | |||
where: | where: | |||
o NLRI Length: 1 octet of length expressed in bits as defined in | o NLRI Length: 1 octet of length expressed in bits as defined in | |||
[RFC4760]. | [RFC4760]. When AFI = 1 value MUST be 12 and when AFI = 2 value | |||
MUST be 24. | ||||
o Distinguisher: 4-octet value uniquely identifying the policy in | o Distinguisher: 4-octet value uniquely identifying the policy in | |||
the context of <color, endpoint> tuple. The distinguisher has no | the context of <color, endpoint> tuple. The distinguisher has no | |||
semantic value and is solely used by the SR Policy originator to | semantic value and is solely used by the SR Policy originator to | |||
make unique (from an NLRI perspective) multiple occurrences of the | make unique (from an NLRI perspective) multiple candidate paths of | |||
same SR Policy. | the same SR Policy. | |||
o Policy Color: 4-octet value identifying (with the endpoint) the | o Policy Color: 4-octet value identifying (with the endpoint) the | |||
policy. The color is used to match the color of the destination | policy. The color is used to match the color of the destination | |||
prefixes to steer traffic into the SR Policy | prefixes to steer traffic into the SR Policy as specified in | |||
[I-D.ietf-spring-segment-routing-policy]. | [I-D.ietf-spring-segment-routing-policy]. | |||
o Endpoint: identifies the endpoint of a policy. The Endpoint may | o Endpoint: identifies the endpoint of a policy. The Endpoint may | |||
represent a single node or a set of nodes (e.g., an anycast | represent a single node or a set of nodes (e.g., an anycast | |||
address). The Endpoint is an IPv4 (4-octet) address or an IPv6 | address). The Endpoint is an IPv4 (4-octet) address or an IPv6 | |||
(16-octet) address according to the AFI of the NLRI. | (16-octet) address according to the AFI of the NLRI. | |||
The color and endpoint are used to automate the steering of BGP | The color and endpoint are used to automate the steering of BGP | |||
Payload prefixes on SR Policy as described in | Payload prefixes on SR Policy as described in | |||
[I-D.ietf-spring-segment-routing-policy]. | [I-D.ietf-spring-segment-routing-policy]. | |||
The NLRI containing the SR Policy is carried in a BGP UPDATE message | The NLRI containing the SR Policy is carried in a BGP UPDATE message | |||
[RFC4271] using BGP multiprotocol extensions [RFC4760] with an AFI of | [RFC4271] using BGP multiprotocol extensions [RFC4760] with an AFI of | |||
1 or 2 (IPv4 or IPv6) and with a SAFI of 73 (assigned by IANA from | 1 or 2 (IPv4 or IPv6) and with a SAFI of 73. | |||
the "Subsequent Address Family Identifiers (SAFI) Parameters" | ||||
registry). | ||||
An update message that carries the MP_REACH_NLRI or MP_UNREACH_NLRI | An update message that carries the MP_REACH_NLRI or MP_UNREACH_NLRI | |||
attribute with the SR Policy SAFI MUST also carry the BGP mandatory | attribute with the SR Policy SAFI MUST also carry the BGP mandatory | |||
attributes. In addition, the BGP update message MAY also contain any | attributes. In addition, the BGP update message MAY also contain any | |||
of the BGP optional attributes. | of the BGP optional attributes. | |||
The next-hop network address field in SR Policy SAFI (73) updates may | The next-hop network address field in SR Policy SAFI (73) updates may | |||
be either a 4 octet IPv4 address or a 16 octet IPv6 address, | be either a 4 octet IPv4 address or a 16 octet IPv6 address, | |||
independent of the SR Policy AFI. The length field of the next-hop | independent of the SR Policy AFI. The length field of the next-hop | |||
address specifies the next-hop address family. If the next-hop | address specifies the next-hop address family. If the next-hop | |||
length is 4, then the next-hop is an IPv4 address; if the next-hop | length is 4, then the next-hop is an IPv4 address; if the next-hop | |||
length is 16, then it is a global IPv6 address; and if the next-hop | length is 16, then it is a global IPv6 address; and if the next-hop | |||
length is 32, then it has a global IPv6 address followed by a link- | length is 32, then it has a global IPv6 address followed by a link- | |||
local IPv6 address. The setting of the next-hop field and its | local IPv6 address. The setting of the next-hop field and its | |||
attendant processing is governed by standard BGP procedures as | attendant processing is governed by standard BGP procedures as | |||
described in section 3 in [RFC4760]. | described in section 3 in [RFC4760]. | |||
It is important to note that any BGP speaker receiving a BGP message | It is important to note that any BGP speaker receiving a BGP message | |||
with an SR Policy NLRI, will process it only if the NLRI is among the | with an SR Policy NLRI, will process it only if the NLRI is among the | |||
best paths as per the BGP best path selection algorithm. In other | best paths as per the BGP best path selection algorithm. In other | |||
words, this document does not modify the BGP propagation or bestpath | words, this document leverages the existing BGP propagation and | |||
selection rules. | bestpath selection rules. Details of the procedures are described in | |||
Section 4. | ||||
It has to be noted that if several candidate paths of the same SR | It has to be noted that if several candidate paths of the same SR | |||
Policy (endpoint, color) are signaled via BGP to a head-end, it is | Policy (endpoint, color) are signaled via BGP to a head-end, it is | |||
recommended that each NLRI use a different distinguisher. If BGP has | RECOMMENDED that each NLRI use a different distinguisher. If BGP has | |||
installed into the BGP table two advertisements whose respective | installed into the BGP table two advertisements whose respective | |||
NLRIs have the same color and endpoint, but different distinguishers, | NLRIs have the same color and endpoint, but different distinguishers, | |||
both advertisements are passed to the SRPM as different candidate | both advertisements are passed to the SRPM as different candidate | |||
paths. In addition, the originator information corresponding to the | paths along with their respective originator information as described | |||
each candidate path, as described in section 2.4 in | in section 2.4 of [I-D.ietf-spring-segment-routing-policy]. | |||
[I-D.ietf-spring-segment-routing-policy], is passed to the SRPM. | ||||
2.2. SR Policy and Tunnel Encapsulation Attribute | 2.2. SR Policy and Tunnel Encapsulation Attribute | |||
The content of the SR Policy is encoded in the Tunnel Encapsulation | The content of the SR Policy is encoded in the Tunnel Encapsulation | |||
Attribute originally defined in [I-D.ietf-idr-tunnel-encaps] using a | Attribute defined in [I-D.ietf-idr-tunnel-encaps] using a new Tunnel- | |||
new Tunnel-Type TLV (codepoint is 15, assigned by IANA (see | Type called SR Policy Type with codepoint 15. | |||
Section 8) from the "BGP Tunnel Encapsulation Attribute Tunnel Types" | ||||
registry). | ||||
The SR Policy Encoding structure is as follows: | The SR Policy Encoding structure is as follows: | |||
SR Policy SAFI NLRI: <Distinguisher, Policy-Color, Endpoint> | SR Policy SAFI NLRI: <Distinguisher, Policy-Color, Endpoint> | |||
Attributes: | Attributes: | |||
Tunnel Encaps Attribute (23) | Tunnel Encaps Attribute (23) | |||
Tunnel Type: SR Policy | Tunnel Type: SR Policy | |||
Binding SID | Binding SID | |||
Preference | Preference | |||
Priority | Priority | |||
skipping to change at page 8, line 27 ¶ | skipping to change at page 8, line 10 ¶ | |||
Segment | Segment | |||
... | ... | |||
... | ... | |||
where: | where: | |||
o SR Policy SAFI NLRI is defined in Section 2.1. | o SR Policy SAFI NLRI is defined in Section 2.1. | |||
o Tunnel Encapsulation Attribute is defined in | o Tunnel Encapsulation Attribute is defined in | |||
[I-D.ietf-idr-tunnel-encaps]. | [I-D.ietf-idr-tunnel-encaps]. | |||
o Tunnel-Type is set to 15 (assigned by IANA from the "BGP Tunnel | o Tunnel-Type is set to 15. | |||
Encapsulation Attribute Tunnel Types" registry). | ||||
o Preference, Binding SID, Priority, Policy Name, ENLP, Segment- | o Preference, Binding SID, Priority, Policy Name, ENLP, Segment- | |||
List, Weight and Segment sub-TLVs are defined in this document. | List, Weight and Segment sub-TLVs are defined in this document. | |||
o Additional sub-TLVs may be defined in the future. | o Additional sub-TLVs may be defined in the future. | |||
A Tunnel Encapsulation Attribute MUST NOT contain more than one TLV | A Tunnel Encapsulation Attribute MUST NOT contain more than one TLV | |||
of type "SR Policy". If more than one TLV of type "SR Policy" | of type "SR Policy". If more than one TLV of type "SR Policy" | |||
appears, the update is considered malformed and the "treat-as- | appears, the update is considered malformed and the "treat-as- | |||
withdraw" strategy of [RFC7606] is applied. | withdraw" strategy of [RFC7606] is applied. | |||
Multiple occurrences of "Segment List" MAY be encoded within the same | ||||
SR Policy. | ||||
Multiple occurrences of "Segment" MAY be encoded within the same | ||||
Segment List. | ||||
2.3. Remote Endpoint and Color | 2.3. Remote Endpoint and Color | |||
The Remote Endpoint and Color sub-TLVs, as defined in | The Remote Endpoint and Color sub-TLVs, as defined in | |||
[I-D.ietf-idr-tunnel-encaps], MAY also be present in the SR Policy | [I-D.ietf-idr-tunnel-encaps], MAY also be present in the SR Policy | |||
encodings. | encodings. | |||
The Remote Endpoint and Color Sub-TLVs are not used for SR Policy | The Remote Endpoint and Color Sub-TLVs of the Tunnel Encapsulation | |||
encodings and therefore their value is irrelevant in the context of | Attribute are not used for SR Policy encodings and therefore their | |||
the SR Policy SAFI NLRI. If present, the Remote Endpoint sub-TLV and | value is irrelevant in the context of the SR Policy SAFI NLRI. If | |||
the Color sub-TLV MUST be ignored by the BGP speaker. | present, the Remote Endpoint sub-TLV and the Color sub-TLV MUST be | |||
ignored by the BGP speaker. | ||||
2.4. SR Policy Sub-TLVs | 2.4. SR Policy Sub-TLVs | |||
This section defines the SR Policy sub-TLVs. | This section specifies the sub-TLVs defined for encoding the | |||
information about the SR Policy. | ||||
Preference, Binding SID, Segment-List, Priority, Policy Name and | Preference, Binding SID, Segment-List, Priority, Policy Name and | |||
Explicit NULL Label Policy sub-TLVs are assigned from the "BGP Tunnel | Explicit NULL Label Policy are the new sub-TLVs of the BGP Tunnel | |||
Encapsulation Attribute Sub-TLVs" registry. | Encapsulation Attribute [I-D.ietf-idr-tunnel-encaps] being defined in | |||
this section. | ||||
Weight and Segment sub-TLVs are assigned from a new registry defined | Weight and Segment are sub-TLVs of the new Segment-List sub-TLV | |||
in this document and called: "SR Policy List Sub-TLVs". See | mentioned above. | |||
Section 8 for the details of the registry. | ||||
None of the sub-TLVs defined in the following sub-sections have any | ||||
effect on the BGP bestpath selection or propagation procedures. | ||||
These sub-TLVs are not used by BGP and are instead passed on to SRPM | ||||
as SR Policy Candidate Path information for further processing | ||||
described in [I-D.ietf-spring-segment-routing-policy] . | ||||
2.4.1. Preference Sub-TLV | 2.4.1. Preference Sub-TLV | |||
The Preference sub-TLV does not have any effect on the BGP bestpath | The Preference sub-TLV is used to carry the preference of the SR | |||
selection or propagation procedures. The contents of this sub-TLV | Policy candidate path. The contents of this sub-TLV are used by the | |||
are used by the SRPM as described in section 2.7 in | SRPM as described in section 2.7 in | |||
[I-D.ietf-spring-segment-routing-policy]. | [I-D.ietf-spring-segment-routing-policy]. | |||
The Preference sub-TLV is optional and it MUST NOT appear more than | The Preference sub-TLV is optional and it MUST NOT appear more than | |||
once in the SR Policy. If the Preference sub-TLV appears more than | once in the SR Policy. | |||
once, the update is considered malformed and the "treat-as-withdraw" | ||||
strategy of [RFC7606] is applied. | ||||
The Preference sub-TLV has following format: | The Preference sub-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 | Flags | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Preference (4 octets) | | | Preference (4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
skipping to change at page 10, line 5 ¶ | skipping to change at page 9, line 35 ¶ | |||
where: | where: | |||
o Type: 12 | o Type: 12 | |||
o Length: 6. | o Length: 6. | |||
o Flags: 1 octet of flags. None are defined at this stage. Flags | o Flags: 1 octet of flags. None are defined at this stage. Flags | |||
SHOULD be set to zero on transmission and MUST be ignored on | SHOULD be set to zero on transmission and MUST be ignored on | |||
receipt. | receipt. | |||
o RESERVED: 1 octet of reserved bits. SHOULD be unset on | o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
o Preference: a 4-octet value. | o Preference: a 4-octet value. | |||
2.4.2. Binding SID Sub-TLV | 2.4.2. Binding SID Sub-TLV | |||
The Binding SID sub-TLV is not used by BGP. The contents of this | The Binding SID sub-TLV is used to signal the binding SID related | |||
information of the SR Policy candidate path. The contents of this | ||||
sub-TLV are used by the SRPM as described in section 6 in | sub-TLV are used by the SRPM as described in section 6 in | |||
[I-D.ietf-spring-segment-routing-policy]. | [I-D.ietf-spring-segment-routing-policy]. | |||
The Binding SID sub-TLV is optional and it MUST NOT appear more than | The Binding SID sub-TLV is optional and it MUST NOT appear more than | |||
once in the SR Policy. If the Binding SID sub-TLV appears more than | once in the SR Policy. | |||
once, the update is considered malformed and the "treat-as-withdraw" | ||||
strategy of [RFC7606] is applied. | ||||
The Binding SID sub-TLV has the following format: | The Binding SID 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 | Flags | RESERVED | | | Type | Length | Flags | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Binding SID (variable, optional) | | | Binding SID (variable, optional) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
o Type: 13 | o Type: 13 | |||
o Length: specifies the length of the value field not including Type | o Length: specifies the length of the value field not including Type | |||
and Length fields. Can be 2 or 6 or 18. | and Length fields. Can be 2 or 6 or 18. | |||
o Flags: 1 octet of flags. Following flags are defined (to be | o Flags: 1 octet of flags. Following flags are defined in the new | |||
assigned by IANA from the registry "SR Policy Binding SID Flags" | registry "SR Policy Binding SID Flags" as described in | |||
defined in this document Section 8.5): | Section 6.5: | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
|S|I| | | |S|I| | | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
* S-Flag: This flag encodes the "Specified-BSID-only" behavior. | * S-Flag: This flag encodes the "Specified-BSID-only" behavior. | |||
It is used by SRPM as described in section 6.2.3 in | It is used by SRPM as described in section 6.2.3 in | |||
[I-D.ietf-spring-segment-routing-policy]. | [I-D.ietf-spring-segment-routing-policy]. | |||
* I-Flag: This flag encodes the "Drop Upon Invalid" behavior. It | * I-Flag: This flag encodes the "Drop Upon Invalid" behavior. It | |||
is used by SRPM as described in section 8.2 in | is used by SRPM as described in section 8.2 in | |||
[I-D.ietf-spring-segment-routing-policy]. | [I-D.ietf-spring-segment-routing-policy]. | |||
* Unused bits in the Flag octet SHOULD be set to zero upon | * Unused bits in the Flag octet SHOULD be set to zero upon | |||
transmission and MUST be ignored upon receipt. | transmission and MUST be ignored upon receipt. | |||
o RESERVED: 1 octet of reserved bits. SHOULD be unset on | o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
o Binding SID: if length is 2, then no Binding SID is present. | o Binding SID: if length is 2, then no Binding SID is present. If | |||
length is 6 then the Binding SID is encoded in 4 octets using the | ||||
o If length is 6 then the Binding SID contains a 4-octet SID. Below | format below. TC, S, TTL (Total of 12 bits) are RESERVED and | |||
format is used to encode the SID. TC, S, TTL(Total of 12bits) are | SHOULD be set to zero and MUST be ignored. | |||
RESERVED and SHOULD be set to Zero and MUST be ignored. | ||||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Label | TC |S| TTL | | | Label | TC |S| TTL | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
If length is 18 then the Binding SID contains a 16-octet IPv6 SID. | If length is 18 then the Binding SID contains a 16-octet SRv6 SID. | |||
2.4.3. Segment List Sub-TLV | 2.4.3. Segment List Sub-TLV | |||
The Segment List sub-TLV encodes a single explicit path towards the | The Segment List sub-TLV encodes a single explicit path towards the | |||
endpoint as described in section 5.1 in | endpoint as described in section 5.1 in | |||
[I-D.ietf-spring-segment-routing-policy]. The Segment List sub-TLV | [I-D.ietf-spring-segment-routing-policy]. The Segment List sub-TLV | |||
includes the elements of the paths (i.e., segments) as well as an | includes the elements of the paths (i.e., segments) as well as an | |||
optional Weight sub-TLV. | optional Weight sub-TLV. | |||
The Segment List sub-TLV may exceed 255 bytes length due to large | The Segment List sub-TLV may exceed 255 bytes length due to large | |||
number of segments. Therefore a 2-octet length is required. | number of segments. Therefore a 2-octet length is required. | |||
According to [I-D.ietf-idr-tunnel-encaps], the first bit of the sub- | According to [I-D.ietf-idr-tunnel-encaps], the first bit of the sub- | |||
TLV codepoint defines the size of the length field. Therefore, for | TLV codepoint defines the size of the length field. Therefore, for | |||
the Segment List sub-TLV a code point of 128 (or higher) is used. | the Segment List sub-TLV a code point of 128 or higher is used. | |||
See Section 8 for details of codepoints allocation. | ||||
The Segment List sub-TLV is optional and MAY appear multiple times in | The Segment List sub-TLV is optional and MAY appear multiple times in | |||
the SR Policy. The ordering of Segment List sub-TLVs, each sub-TLV | the SR Policy. The ordering of Segment List sub-TLVs, each sub-TLV | |||
encoding a Segment List, does not matter. | encoding a Segment List, does not matter. | |||
The Segment List sub-TLV contains zero or more Segment sub-TLVs and | The Segment List sub-TLV contains zero or more Segment sub-TLVs and | |||
MAY contain a Weight sub-TLV. | MAY contain a Weight sub-TLV. | |||
The Segment List sub-TLV has the following format: | The Segment List sub-TLV has the following format: | |||
skipping to change at page 12, line 20 ¶ | skipping to change at page 11, line 51 ¶ | |||
// sub-TLVs // | // sub-TLVs // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
o Type: 128. | o Type: 128. | |||
o Length: the total length (not including the Type and Length | o Length: the total length (not including the Type and Length | |||
fields) of the sub-TLVs encoded within the Segment List sub-TLV. | fields) of the sub-TLVs encoded within the Segment List sub-TLV. | |||
o RESERVED: 1 octet of reserved bits. SHOULD be unset on | o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
o sub-TLVs: | o sub-TLVs currently defined: | |||
* An optional single Weight sub-TLV. | * An optional single Weight sub-TLV. | |||
* Zero or more Segment sub-TLVs. | * Zero or more Segment sub-TLVs. | |||
Validation of an explicit path encoded by the Segment List sub-TLV is | Validation of an explicit path encoded by the Segment List sub-TLV is | |||
completely within the scope of SRPM as described in section 5 in | beyond the scope of BGP and performed by the SRPM as described in | |||
[I-D.ietf-spring-segment-routing-policy]. | section 5 in [I-D.ietf-spring-segment-routing-policy]. | |||
2.4.3.1. Weight Sub-TLV | 2.4.3.1. Weight Sub-TLV | |||
The Weight sub-TLV specifies the weight associated to a given segment | The Weight sub-TLV specifies the weight associated to a given segment | |||
list. The contents of this sub-TLV are used only by the SRPM as | list. The contents of this sub-TLV are used only by the SRPM as | |||
described in section 2.11 in | described in section 2.11 in | |||
[I-D.ietf-spring-segment-routing-policy]. | [I-D.ietf-spring-segment-routing-policy]. | |||
The Weight sub-TLV is optional and it MUST NOT appear more than once | The Weight sub-TLV is optional and it MUST NOT appear more than once | |||
inside the Segment List sub-TLV. If the Weight sub-TLV appears more | inside the Segment List sub-TLV. | |||
than once, the update is considered malformed and the "treat-as- | ||||
withdraw" strategy of [RFC7606] is applied. | ||||
The Weight sub-TLV has the following format: | The Weight 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 | Flags | RESERVED | | | Type | Length | Flags | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Weight | | | Weight | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
Type: 9 (to be assigned by IANA from the registry "SR Policy List | o Type: 9. | |||
Sub-TLVs" defined in this document). | ||||
Length: 6. | o Length: 6 | |||
Flags: 1 octet of flags. None are defined at this stage. Flags | o Flags: 1 octet of flags. None are defined at this stage. Flags | |||
SHOULD be set to zero on transmission and MUST be ignored on receipt. | SHOULD be set to zero on transmission and MUST be ignored on | |||
receipt. | ||||
RESERVED: 1 octet of reserved bits. SHOULD be unset on transmission | o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
2.4.3.2. Segment Sub-TLV | 2.4.3.2. Segment Sub-TLVs | |||
The Segment sub-TLV describes a single segment in a segment list | A Segment sub-TLV describes a single segment in a segment list (i.e., | |||
(i.e., a single element of the explicit path). Multiple Segment sub- | a single element of the explicit path). One or more Segment sub-TLVs | |||
TLVs constitute an explicit path of the SR Policy. | constitute an explicit path of the SR Policy. The contents of these | |||
sub-TLVs are used only by the SRPM as described in section 4 in | ||||
[I-D.ietf-spring-segment-routing-policy]. | ||||
The Segment sub-TLV is optional and MAY appear multiple times in the | The Segment sub-TLVs are optional and MAY appear multiple times in | |||
Segment List sub-TLV. | the Segment List sub-TLV. | |||
The Segment sub-TLV does not have any effect on the BGP bestpath | [I-D.ietf-spring-segment-routing-policy] defines several Segment | |||
selection or propagation procedures. The contents of this sub-TLV | Types: | |||
are used only by the SRPM as described in section 4 in | ||||
[I-D.ietf-spring-segment-routing-policy]. | ||||
[I-D.ietf-spring-segment-routing-policy] defines several types of | Type A: SID only, in the form of MPLS Label | |||
Segments: | Type B: SID only, in the form of IPv6 address | |||
Type C: IPv4 Node Address with optional SID | ||||
Type D: IPv6 Node Address with optional SID for SR MPLS | ||||
Type E: IPv4 Address and index with optional SID | ||||
Type F: IPv4 Local and Remote addresses with optional SID | ||||
Type G: IPv6 Address and index for local and remote pair with optional | ||||
SID for SR MPLS | ||||
Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS | ||||
Type I: IPv6 Node Address with optional SID for SRv6 | ||||
Type J: IPv6 Address and index for local and remote pair with optional | ||||
SID for SRv6 | ||||
Type K: IPv6 Local and Remote addresses for SRv6 | ||||
Type 1: SID only, in the form of MPLS Label | The follow sub-sections specify the sub-TLV used for encoding each of | |||
Type 2: SID only, in the form of IPv6 address | these Segment Types. | |||
Type 3: IPv4 Node Address with optional SID | ||||
Type 4: IPv6 Node Address with optional SID for SR MPLS | ||||
Type 5: IPv4 Address + index with optional SID | ||||
Type 6: IPv4 Local and Remote addresses with optional SID | ||||
Type 7: IPv6 Address + index for local and remote pair with optional SID for SR MPLS | ||||
Type 8: IPv6 Local and Remote addresses with optional SID for SR MPLS | ||||
Type 9: IPv6 Node Address with optional SID for SRv6 | ||||
Type 10: IPv6 Address + index for local and remote pair with optional SID for SRv6 | ||||
Type 11: IPv6 Local and Remote addresses for SRv6 | ||||
2.4.3.2.1. Type 1: SID only, in the form of MPLS Label | 2.4.3.2.1. Type A: SID only, in the form of MPLS Label | |||
The Type-1 Segment Sub-TLV encodes a single SID in the form of an | The Type A Segment Sub-TLV encodes a single SR-MPLS SID. The format | |||
MPLS label. The format is as follows: | 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 | | | Type | Length | Flags | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Label | TC |S| TTL | | | Label | TC |S| TTL | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
o Type: 1 (to be assigned by IANA from the registry "SR Policy List | o Type: 1. | |||
Sub-TLVs" defined in this document). | ||||
o Length is 6. | o Length is 6. | |||
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | |||
o RESERVED: 1 octet of reserved bits. SHOULD be unset on | o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
o Label: 20 bits of label value. | o Label: 20 bits of label value. | |||
o TC: 3 bits of traffic class. | o TC: 3 bits of traffic class. | |||
o S: 1 bit of bottom-of-stack. | o S: 1 bit of bottom-of-stack. | |||
o TTL: 1 octet of TTL. | o TTL: 1 octet of TTL. | |||
skipping to change at page 15, line 22 ¶ | skipping to change at page 14, line 35 ¶ | |||
sets the TTL field to 255. | sets the TTL field to 255. | |||
o If the originator wants to recommend a value for these fields, it | o If the originator wants to recommend a value for these fields, it | |||
puts those values in the TC and/or TTL fields. | puts those values in the TC and/or TTL fields. | |||
o The receiver MAY override the originator's values for these | o The receiver MAY override the originator's values for these | |||
fields. This would be determined by local policy at the receiver. | fields. This would be determined by local policy at the receiver. | |||
One possible policy would be to override the fields only if the | One possible policy would be to override the fields only if the | |||
fields have the default values specified above. | fields have the default values specified above. | |||
2.4.3.2.2. Type 2: SID only, in the form of IPv6 address | 2.4.3.2.2. Type B: SID only, in the form of IPv6 address | |||
The Type-2 Segment Sub-TLV encodes a single SRv6 SID in the form of | The Type B Segment Sub-TLV encodes a single SRv6 SID. The format is | |||
an IPv6 address. The format is as follows: | 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 | | | Type | Length | Flags | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// SRv6 SID (16 octets) // | // SRv6 SID (16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
o Type: 2 (to be assigned by IANA from the registry "SR Policy List | o Type: 2. | |||
Sub-TLVs" defined in this document). | ||||
o Length is 18. | o Length is 18. | |||
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | |||
o RESERVED: 1 octet of reserved bits. SHOULD be unset on | o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
o SRv6 SID: 16 octets of IPv6 address. | o SRv6 SID: 16 octets of IPv6 address. | |||
The IPv6 Segment Identifier (SRv6 SID) is defined in | 2.4.3.2.3. Type C: IPv4 Node Address with optional SID | |||
[I-D.ietf-6man-segment-routing-header]. | ||||
2.4.3.2.3. Type 3: IPv4 Node Address with optional SID | ||||
The Type-3 Segment Sub-TLV encodes an IPv4 node address, SR Algorithm | The Type C Segment Sub-TLV encodes an IPv4 node address, SR Algorithm | |||
and an optional SID in the form of an MPLS label. The format is as | and an optional SR-MPLS SID. The format is as follows: | |||
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 | SR Algorithm | | | Type | Length | Flags | SR Algorithm | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| IPv4 Node Address (4 octets) | | | IPv4 Node Address (4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID (optional, 4 octets) | | | SR-MPLS SID (optional, 4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
o Type: 3 (to be assigned by IANA from the registry "SR Policy List | o Type: 3. | |||
Sub-TLVs" defined in this document). | ||||
o Length is 6 or 10. | o Length is 10 when the SR-MPLS SID is present else is 6. | |||
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | |||
o SR Algorithm: 1 octet specifying SR Algorithm as described in | o SR Algorithm: 1 octet specifying SR Algorithm as described in | |||
section 3.1.1 in [I-D.ietf-spring-segment-routing], when A-Flag as | section 3.1.1 in [RFC8402], when A-Flag as defined in | |||
defined in Section 2.4.3.2.12 is present. SR Algorithm is used by | Section 2.4.3.2.12 is present. SR Algorithm is used by SRPM as | |||
SRPM as described in section 4 in | described in section 4 in | |||
[I-D.ietf-spring-segment-routing-policy]. When A-Flag is not | [I-D.ietf-spring-segment-routing-policy]. When A-Flag is not | |||
encoded, this field SHOULD be unset on transmission and MUST be | encoded, this field SHOULD be set to zero on transmission and MUST | |||
ignored on receipt. | be ignored on receipt. | |||
o IPv4 Node Address: a 4 octet IPv4 address representing a node. | o IPv4 Node Address: a 4 octet IPv4 address representing a node. | |||
o SID: 4 octet MPLS label. | o SR-MPLS SID: optional, 4 octet field containing label, TC, S and | |||
TTL as defined in Section 2.4.3.2.1. | ||||
The following applies to the Type-3 Segment sub-TLV: | ||||
o The IPv4 Node Address MUST be present. | ||||
o The SID is optional and specifies a 4 octet MPLS SID containing | ||||
label, TC, S and TTL as defined in Section 2.4.3.2.1. | ||||
o If length is 6, then only the IPv4 Node Address is present. | ||||
o If length is 10, then the IPv4 Node Address and the MPLS SID are | ||||
present. | ||||
2.4.3.2.4. Type 4: IPv6 Node Address with optional SID for SR MPLS | 2.4.3.2.4. Type D: IPv6 Node Address with optional SID for SR MPLS | |||
The Type-4 Segment Sub-TLV encodes an IPv6 node address, SR Algorithm | The Type D Segment Sub-TLV encodes an IPv6 node address, SR Algorithm | |||
and an optional SID in the form of an MPLS label. The format is as | and an optional SR-MPLS SID. The format is as follows: | |||
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 | SR Algorithm | | | Type | Length | Flags | SR Algorithm | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// IPv6 Node Address (16 octets) // | // IPv6 Node Address (16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID (optional, 4 octets) | | | SR-MPLS SID (optional, 4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
o Type: 4 (to be assigned by IANA from the registry "SR Policy List | o Type: 4 | |||
Sub-TLVs" defined in this document). | ||||
o Length is 18 or 22. | o Length is 22 when the SR-MPLS SID is present else is 18. | |||
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | |||
o SR Algorithm: 1 octet specifying SR Algorithm as described in | o SR Algorithm: 1 octet specifying SR Algorithm as described in | |||
section 3.1.1 in [I-D.ietf-spring-segment-routing], when A-Flag as | section 3.1.1 in [RFC8402], when A-Flag as defined in | |||
defined in Section 2.4.3.2.12 is present. SR Algorithm is used by | Section 2.4.3.2.12 is present. SR Algorithm is used by SRPM as | |||
SRPM as described in section 4 in | described in section 4 in | |||
[I-D.ietf-spring-segment-routing-policy]. When A-Flag is not | [I-D.ietf-spring-segment-routing-policy]. When A-Flag is not | |||
encoded, this field SHOULD be unset on transmission and MUST be | encoded, this field SHOULD be set to zero on transmission and MUST | |||
ignored on receipt. | be ignored on receipt. | |||
o IPv6 Node Address: a 16 octet IPv6 address representing a node. | o IPv6 Node Address: a 16 octet IPv6 address representing a node. | |||
o SID: 4 octet MPLS label. | o SR-MPLS SID: optional, 4 octet field containing label, TC, S and | |||
TTL as defined in Section 2.4.3.2.1. | ||||
The following applies to the Type-4 Segment sub-TLV: | ||||
o The IPv6 Node Address MUST be present. | ||||
o The SID is optional and specifies a 4 octet MPLS SID containing | ||||
label, TC, S and TTL as defined in Section 2.4.3.2.1. | ||||
o If length is 18, then only the IPv6 Node Address is present. | ||||
o If length is 22, then the IPv6 Node Address and the MPLS SID are | ||||
present. | ||||
2.4.3.2.5. Type 5: IPv4 Address + Local Interface ID with optional SID | 2.4.3.2.5. Type E: IPv4 Address + Local Interface ID with optional SID | |||
The Type-5 Segment Sub-TLV encodes an IPv4 node address, a local | The Type E Segment Sub-TLV encodes an IPv4 node address, a local | |||
interface Identifier (Local Interface ID) and an optional SID in the | interface Identifier (Local Interface ID) and an optional SR-MPLS | |||
form of an MPLS label. The format is as follows: | SID. The format 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 | | | Type | Length | Flags | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Local Interface ID (4 octets) | | | Local Interface ID (4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| IPv4 Node Address (4 octets) | | | IPv4 Node Address (4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID (optional, 4 octets) | | | SR-MPLS SID (optional, 4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
o Type: 5 (to be assigned by IANA from the registry "SR Policy List | o Type: 5. | |||
Sub-TLVs" defined in this document). | ||||
o Length is 10 or 14. | o Length is 14 when the SR-MPLS SID is present else is 10. | |||
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | |||
o RESERVED: 1 octet of reserved bits. SHOULD be unset on | o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
o Local Interface ID: 4 octets of interface index as defined in | o Local Interface ID: 4 octets of interface index as defined in | |||
[I-D.ietf-pce-segment-routing]. | [I-D.ietf-pce-segment-routing]. | |||
o IPv4 Node Address: a 4 octet IPv4 address representing a node. | o IPv4 Node Address: a 4 octet IPv4 address representing a node. | |||
o SID: 4 octet MPLS label. | o SR-MPLS SID: optional, 4 octet field containing label, TC, S and | |||
TTL as defined in Section 2.4.3.2.1. | ||||
The following applies to the Type-5 Segment sub-TLV: | ||||
o The IPv4 Node Address MUST be present. | ||||
o The Local Interface ID MUST be present. | ||||
o The SID is optional and specifies a 4 octet MPLS SID containing | ||||
label, TC, S and TTL as defined in Section 2.4.3.2.1. | ||||
o If length is 10, then the IPv4 Node Address and Local Interface ID | ||||
are present. | ||||
o If length is 14, then the IPv4 Node Address, the Local Interface | ||||
ID and the MPLS SID are present. | ||||
2.4.3.2.6. Type 6: IPv4 Local and Remote addresses with optional SID | 2.4.3.2.6. Type F: IPv4 Local and Remote addresses with optional SID | |||
The Type-6 Segment Sub-TLV encodes an adjacency local address, an | The Type F Segment Sub-TLV encodes an adjacency local address, an | |||
adjacency remote address and an optional SID in the form of an MPLS | adjacency remote address and an optional SR-MPLS SID. The format is | |||
label. The format is as follows: | 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 | | | Type | Length | Flags | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Local IPv4 Address (4 octets) | | | Local IPv4 Address (4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Remote IPv4 Address (4 octets) | | | Remote IPv4 Address (4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID (optional, 4 octets) | | | SR-MPLS SID (optional, 4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
o Type: 6 (to be assigned by IANA from the registry "SR Policy List | o Type: 6. | |||
Sub-TLVs" defined in this document). | ||||
o Length is 10 or 14. | o Length is 14 when the SR-MPLS SID is present else is 10. | |||
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | |||
o RESERVED: 1 octet of reserved bits. SHOULD be unset on | o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
o Local IPv4 Address: a 4 octet IPv4 address. | o Local IPv4 Address: a 4 octet IPv4 address. | |||
o Remote IPv4 Address: a 4 octet IPv4 address. | o Remote IPv4 Address: a 4 octet IPv4 address. | |||
o SID: 4 octet MPLS label. | o SR-MPLS SID: optional, 4 octet field containing label, TC, S and | |||
TTL as defined in Section 2.4.3.2.1. | ||||
The following applies to the Type-6 Segment sub-TLV: | ||||
o The Local IPv4 Address MUST be present and represents an adjacency | ||||
local address. | ||||
o The Remote IPv4 Address MUST be present and represents the remote | ||||
end of the adjacency. | ||||
o The SID is optional and specifies a 4 octet MPLS SID containing | ||||
label, TC, S and TTL as defined in Section 2.4.3.2.1. | ||||
o If length is 10, then only the IPv4 Local and Remote addresses are | ||||
present. | ||||
o If length is 14, then the IPv4 Local address, IPv4 Remote address | ||||
and the MPLS SID are present. | ||||
2.4.3.2.7. Type 7: IPv6 Address + Interface ID for local and remote | 2.4.3.2.7. Type G: IPv6 Address + Interface ID for local and remote | |||
pair with optional SID for SR MPLS | pair with optional SID for SR MPLS | |||
The Type-7 Segment Sub-TLV encodes an IPv6 Link Local adjacency with | The Type G Segment Sub-TLV encodes an IPv6 Link Local adjacency with | |||
IPv6 local node address, a local interface identifier (Local | IPv6 local node address, a local interface identifier (Local | |||
Interface ID), IPv6 remote node address , a remote interface | Interface ID), IPv6 remote node address , a remote interface | |||
identifier (Remote Interface ID) and an optional SID in the form of | identifier (Remote Interface ID) and an optional SR-MPLS SID. The | |||
an MPLS label. The format is as follows: | format 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 | | | Type | Length | Flags | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Local Interface ID (4 octets) | | | Local Interface ID (4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// IPv6 Local Node Address (16 octets) // | // IPv6 Local Node Address (16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Remote Interface ID (4 octets) | | | Remote Interface ID (4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// IPv6 Remote Node Address (16 octets) // | // IPv6 Remote Node Address (16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID (optional, 4 octets) | | | SR-MPLS SID (optional, 4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
o Type: 7 (to be assigned by IANA from the registry "SR Policy List | o Type: 7 | |||
Sub-TLVs" defined in this document). | ||||
o Length is 22, 26, 42 or 46. | o Length is 46 when the SR-MPLS SID is present else is 42. | |||
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | |||
o RESERVED: 1 octet of reserved bits. SHOULD be unset on | o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
o Local Interface ID: 4 octets of interface index as defined in | o Local Interface ID: 4 octets of interface index as defined in | |||
[I-D.ietf-pce-segment-routing]. | [I-D.ietf-pce-segment-routing]. | |||
o IPv6 Local Node Address: a 16 octet IPv6 address. | o IPv6 Local Node Address: a 16 octet IPv6 address. | |||
o Remote Interface ID: 4 octets of interface index as defined in | o Remote Interface ID: 4 octets of interface index as defined in | |||
[I-D.ietf-pce-segment-routing]. | [I-D.ietf-pce-segment-routing]. The value MAY be set to zero when | |||
the local node address and interface identifiers are sufficient to | ||||
o IPv6 Remote Node Address: a 16 octet IPv6 address. | describe the link. | |||
o SID: 4 octet MPLS label. | ||||
The following applies to the Type-7 Segment sub-TLV: | ||||
o The Local Interface ID and IPv6 Local Node Address MUST be | ||||
present. | ||||
o The Remote Interface ID and Remote Node Address pair is optional. | ||||
If Remote Interface ID is present, the Remote Node Address MUST be | ||||
present as well. Similarly, if Remote Node Address is present, | ||||
the Remote Interface ID MUST be present as well. | ||||
o The SID is optional and specifies a 4 octet MPLS SID containing | ||||
label, TC, S and TTL as defined in Section 2.4.3.2.1. | ||||
o If length is 22, then the Local Interface ID and the Local IPv6 | ||||
Address are present. | ||||
o If length is 26, then the Local Interface ID, Local IPv6 Address | ||||
and the MPLS SID are present. | ||||
o If length is 42, then the Local Interface ID, Local IPv6 Node | o IPv6 Remote Node Address: a 16 octet IPv6 address. The value MAY | |||
Address, Remote Interface ID, and the Remote IPv6 Node Address are | be set to zero when the local node address and interface | |||
present. | identifiers are sufficient to describe the link. | |||
o If length is 46, then the Local Interface ID, Local IPv6 Node | o SR-MPLS SID: optional, 4 octet field containing label, TC, S and | |||
Address, Remote Interface ID, Remote IPv6 Node Address and the | TTL as defined in Section 2.4.3.2.1. | |||
MPLS SID are present. | ||||
2.4.3.2.8. Type 8: IPv6 Local and Remote addresses with optional SID | 2.4.3.2.8. Type H: IPv6 Local and Remote addresses with optional SID | |||
for SR MPLS | for SR MPLS | |||
The Type-8 Segment Sub-TLV encodes an adjacency local address, an | The Type H Segment Sub-TLV encodes an adjacency local address, an | |||
adjacency remote address and an optional SID in the form of an MPLS | adjacency remote address and an optional SR-MPLS SID. The format is | |||
label. The format is as follows: | 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 | | | Type | Length | Flags | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// Local IPv6 Address (16 octets) // | // Local IPv6 Address (16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// Remote IPv6 Address (16 octets) // | // Remote IPv6 Address (16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| SID (optional, 4 octets) | | | SR-MPLS SID (optional, 4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
o Type: 8 (to be assigned by IANA from the registry "SR Policy List | o Type: 8 | |||
Sub-TLVs" defined in this document). | ||||
o Length is 34 or 38. | o Length is 38 when the SR-MPLS SID is present else is 34. | |||
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | |||
o RESERVED: 1 octet of reserved bits. SHOULD be unset on | o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
o Local IPv6 Address: a 16 octet IPv6 address. | o Local IPv6 Address: a 16 octet IPv6 address. | |||
o Remote IPv6 Address: a 16 octet IPv6 address. | o Remote IPv6 Address: a 16 octet IPv6 address. | |||
o SID: 4 octet MPLS label. | o SR-MPLS SID: optional, 4 octet field containing label, TC, S and | |||
TTL as defined in Section 2.4.3.2.1. | ||||
The following applies to the Type-8 Segment sub-TLV: | ||||
o The Local IPv6 Address MUST be present and represents an adjacency | ||||
local address. | ||||
o The Remote IPv6 Address MUST be present and represents the remote | ||||
end of the adjacency. | ||||
o The SID is optional and specifies a 4 octet MPLS SID containing | ||||
label, TC, S and TTL as defined in Section 2.4.3.2.1. | ||||
o If length is 34, then only the IPv6 Local and Remote addresses are | ||||
present. | ||||
o If length is 38, then IPv6 Local and Remote addresses and the MPLS | ||||
SID are present. | ||||
2.4.3.2.9. Type 9: IPv6 Node Address with optional SRv6 SID | 2.4.3.2.9. Type I: IPv6 Node Address with optional SRv6 SID | |||
The Type-9 Segment Sub-TLV encodes an IPv6 node address, SR Algorithm | The Type I Segment Sub-TLV encodes an IPv6 node address, SR Algorithm | |||
and an optional SID in the form of an IPv6 address. The format is as | and an optional SRv6 SID. The format is as follows: | |||
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 | SR Algorithm | | | Type | Length | Flags | SR Algorithm | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// IPv6 Node Address (16 octets) // | // IPv6 Node Address (16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// SID (optional, 16 octets) // | // SRv6 SID (optional, 16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
o Type: 10 (to be assigned by IANA from the registry "SR Policy List | o Type: 10 | |||
Sub-TLVs" defined in this document). | ||||
o Length is 18 or 34. | o Length is 34 when the SRv6 SID is present else is 18. | |||
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | |||
o SR Algorithm: 1 octet specifying SR Algorithm as described in | o SR Algorithm: 1 octet specifying SR Algorithm as described in | |||
section 3.1.1 in [I-D.ietf-spring-segment-routing], when A-Flag as | section 3.1.1 in [RFC8402], when A-Flag as defined in | |||
defined in Section 2.4.3.2.12 is present. SR Algorithm is used by | Section 2.4.3.2.12 is present. SR Algorithm is used by SRPM as | |||
SRPM as described in section 4 in | described in section 4 in | |||
[I-D.ietf-spring-segment-routing-policy]. When A-Flag is not | [I-D.ietf-spring-segment-routing-policy]. When A-Flag is not | |||
encoded, this field SHOULD be unset on transmission and MUST be | encoded, this field SHOULD be set to zero on transmission and MUST | |||
ignored on receipt. | be ignored on receipt. | |||
o IPv6 Node Address: a 16 octet IPv6 address. | o IPv6 Node Address: a 16 octet IPv6 address. | |||
o SID: 16 octet IPv6 address. | o SRv6 SID: optional, 16 octet IPv6 address. | |||
The following applies to the Type-9 Segment sub-TLV: | ||||
o The IPv6 Node Address MUST be present. | ||||
o The SID is optional and specifies an SRv6 SID in the form of 16 | ||||
octet IPv6 address. | ||||
o If length is 18, then only the IPv6 Node Address is present. | ||||
o If length is 34, then the IPv6 Node Address and the SRv6 SID are | ||||
present. | ||||
2.4.3.2.10. Type 10: IPv6 Address + Interface ID for local and remote | 2.4.3.2.10. Type J: IPv6 Address + Interface ID for local and remote | |||
pair for SRv6 with optional SID | pair for SRv6 with optional SID | |||
The Type-10 Segment Sub-TLV encodes an IPv6 Link Local adjacency with | The Type J Segment Sub-TLV encodes an IPv6 Link Local adjacency with | |||
local node address, a local interface identifier (Local Interface | local node address, a local interface identifier (Local Interface | |||
ID), remote IPv6 node address , a remote interface identifier (Remote | ID), remote IPv6 node address, a remote interface identifier (Remote | |||
Interface ID) and an optional SID in the form of an IPv6 address. | Interface ID) and an optional SRv6 SID. The format is as follows: | |||
The format 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 | | | Type | Length | Flags | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Local Interface ID (4 octets) | | | Local Interface ID (4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// IPv6 Local Node Address (16 octets) // | // IPv6 Local Node Address (16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Remote Interface ID (4 octets) | | | Remote Interface ID (4 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// IPv6 Remote Node Address (16 octets) // | // IPv6 Remote Node Address (16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// SID (optional, 16 octets) // | // SRv6 SID (optional, 16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
o Type: 11 (to be assigned by IANA from the registry "SR Policy List | o Type: 11. | |||
Sub-TLVs" defined in this document). | ||||
o Length is 22, 38, 42 or 58. | o Length is 58 when the SRv6 SID is present else is 42. | |||
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | |||
o RESERVED: 1 octet of reserved bits. SHOULD be unset on | o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
o Local Interface ID: 4 octets of interface index as defined in | o Local Interface ID: 4 octets of interface index as defined in | |||
[I-D.ietf-pce-segment-routing]. | [I-D.ietf-pce-segment-routing]. | |||
o IPv6 Local Node Address: a 16 octet IPv6 address. | o IPv6 Local Node Address: a 16 octet IPv6 address. | |||
o Remote Interface ID: 4 octets of interface index as defined in | o Remote Interface ID: 4 octets of interface index as defined in | |||
[I-D.ietf-pce-segment-routing]. | [I-D.ietf-pce-segment-routing]. The value MAY be set to zero when | |||
the local node address and interface identifiers are sufficient to | ||||
o IPv6 Remote Node Address: a 16 octet IPv6 address. | describe the link. | |||
o SID: 16 octet IPv6 address. | ||||
The following applies to the Type-10 Segment sub-TLV: | ||||
o The Local Interface ID and the Local IPv6 Node Addresses MUST be | ||||
present. | ||||
o The Remote Interface ID and Remote Node Address pair is optional. | ||||
If Remote Interface ID is present, the Remote Node Address MUST be | ||||
present as well. Similarly, if Remote Node Address is present, | ||||
the Remote Interface ID MUST be present as well. | ||||
o The SID is optional and specifies an SRv6 SID in the form of 16 | ||||
octet IPv6 address. | ||||
o If length is 22, then the Local Interface ID, Local IPv6 Node | ||||
Address, are present. | ||||
o If length is 38, then the Local Interface ID, Local IPv6 Node | ||||
Address and the SRv6 SID are present. | ||||
o If length is 42, then the Local Interface ID, Local IPv6 Node | o IPv6 Remote Node Address: a 16 octet IPv6 address. The value MAY | |||
Address, Remote Interface ID, and the Remote IPv6 Node Address are | be set to zero when the local node address and interface | |||
present. | identifiers are sufficient to describe the link. | |||
o If length is 58, then the Local Interface ID, Local IPv6 Node | o SRv6 SID: optional, 16 octet IPv6 address. | |||
Address, Remote Interface ID, Remote IPv6 Node Address and the | ||||
SRv6 SID are present. | ||||
2.4.3.2.11. Type 11: IPv6 Local and Remote addresses for SRv6 with | 2.4.3.2.11. Type K: IPv6 Local and Remote addresses for SRv6 with | |||
optional SID | optional SID | |||
The Type-11 Segment Sub-TLV encodes an adjacency local address, an | The Type K Segment Sub-TLV encodes an adjacency local address, an | |||
adjacency remote address and an optional SID in the form of IPv6 | adjacency remote address and an optional SRv6 SID. The format is as | |||
address. The format is as follows: | 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 | | | Type | Length | Flags | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// Local IPv6 Address (16 octets) // | // Local IPv6 Address (16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// Remote IPv6 Address (16 octets) // | // Remote IPv6 Address (16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// SID (optional, 16 octets) // | // SRv6 SID (optional, 16 octets) // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
o Type: 12 (to be assigned by IANA from the registry "SR Policy List | o Type: 12 . | |||
Sub-TLVs" defined in this document). | ||||
o Length is 34 or 50. | o Length is 50 when the SRv6 SID is present else is 34. | |||
o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | o Flags: 1 octet of flags as defined in Section 2.4.3.2.12. | |||
o RESERVED: 1 octet of reserved bits. SHOULD be unset on | o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
o Local IPv6 Address: a 16 octet IPv6 address. | o Local IPv6 Address: a 16 octet IPv6 address. | |||
o Remote IPv6 Address: a 16 octet IPv6 address. | o Remote IPv6 Address: a 16 octet IPv6 address. | |||
o SID: 16 octet IPv6 address. | o SRv6 SID: optional, 16 octet IPv6 address. | |||
The following applies to the Type-11 Segment sub-TLV: | ||||
o The Local IPv6 Node Address MUST be present. | ||||
o The Remote IPv6 Node Address MUST be present. | ||||
o The SID is optional and specifies an SRv6 SID in the form of 16 | ||||
octet IPv6 address. | ||||
o If length is 34, then the Local IPv6 Node Address and the Remote | ||||
IPv6 Node Address are present. | ||||
o If length is 50, then the Local IPv6 Node Address, the Remote IPv6 | ||||
Node Address and the SRv6 SID are present. | ||||
2.4.3.2.12. Segment Flags | 2.4.3.2.12. Segment Flags | |||
The Segment Types described above MAY contain following flags in the | The Segment Types sub-TLVs described above MAY contain following | |||
"Flags" field (codes to be assigned by IANA from the registry "SR | flags in the "Flags" field defined in Section 6.6: | |||
Policy Segment Flags" defined in this document Section 8.6): | ||||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
|V|A| | | |V|A| | | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
where: | where: | |||
V-Flag: This flag is used by SRPM for the purpose of "SID | V-Flag: This flag is used by SRPM for the purpose of "SID | |||
verification" as described in Section 5.1 in | verification" as described in Section 5.1 in | |||
skipping to change at page 27, line 35 ¶ | skipping to change at page 24, line 39 ¶ | |||
The Explicit NULL Label Policy (ENLP) sub-TLV is used to indicate | The Explicit NULL Label Policy (ENLP) sub-TLV is used to indicate | |||
whether an Explicit NULL Label [RFC3032] must be pushed on an | whether an Explicit NULL Label [RFC3032] must be pushed on an | |||
unlabeled IP packet before any other labels. | unlabeled IP packet before any other labels. | |||
If an ENLP Sub-TLV is not present, the decision of whether to push an | If an ENLP Sub-TLV is not present, the decision of whether to push an | |||
Explicit NULL label on a given packet is a matter of local | Explicit NULL label on a given packet is a matter of local | |||
configuration. | configuration. | |||
The ENLP sub-TLV is optional and it MUST NOT appear more than once in | The ENLP sub-TLV is optional and it MUST NOT appear more than once in | |||
the SR Policy. If the ENLP sub-TLV appears more than once, the | the SR Policy. | |||
update is considered malformed and the "treat-as-withdraw" strategy | ||||
of [RFC7606] is applied. | ||||
The contents of this sub-TLV are used by the SRPM as described in | The contents of this sub-TLV are used by the SRPM as described in | |||
section 4.1 in [I-D.ietf-spring-segment-routing-policy]. | section 4.1 in [I-D.ietf-spring-segment-routing-policy]. | |||
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 | Flags | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ENLP | | | ENLP | | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
Where: | Where: | |||
Type: TBD1 (to be assigned by IANA from the registry "BGP Tunnel | Type: 14. | |||
Encapsulation Attribute sub-TLVs" defined in this document | ||||
Section 8.3). | ||||
Length: 3. | Length: 3. | |||
Flags: 1 octet of flags. None are defined at this stage. Flags | Flags: 1 octet of flags. None are defined at this stage. Flags | |||
SHOULD be set to zero on transmission and MUST be ignored on | SHOULD be set to zero on transmission and MUST be ignored on | |||
receipt. | receipt. | |||
RESERVED: 1 octet of reserved bits. SHOULD be unset on | RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
ENLP(Explicit NULL Label Policy): Indicates whether Explicit NULL | ENLP (Explicit NULL Label Policy): Indicates whether Explicit NULL | |||
labels are to be pushed on unlabeled IP packets that are being | labels are to be pushed on unlabeled IP packets that are being | |||
steered into a given SR policy. This field has one of the | steered into a given SR policy. This field has one of the | |||
following 4 values: | following values: | |||
0: Reserved. | 0: Reserved. | |||
1: Push an IPv4 Explicit NULL label on an unlabeled IPv4 | 1: Push an IPv4 Explicit NULL label on an unlabeled IPv4 | |||
packet, but do not push an IPv6 Explicit NULL label on an | packet, but do not push an IPv6 Explicit NULL label on an | |||
unlabeled IPv6 packet. | unlabeled IPv6 packet. | |||
2: Push an IPv6 Explicit NULL label on an unlabeled IPv6 | 2: Push an IPv6 Explicit NULL label on an unlabeled IPv6 | |||
packet, but do not push an IPv4 Explicit NULL label on an | packet, but do not push an IPv4 Explicit NULL label on an | |||
unlabeled IPv4 packet. | unlabeled IPv4 packet. | |||
skipping to change at page 28, line 43 ¶ | skipping to change at page 25, line 41 ¶ | |||
3: Push an IPv4 Explicit NULL label on an unlabeled IPv4 | 3: Push an IPv4 Explicit NULL label on an unlabeled IPv4 | |||
packet, and push an IPv6 Explicit NULL label on an unlabeled | packet, and push an IPv6 Explicit NULL label on an unlabeled | |||
IPv6 packet. | IPv6 packet. | |||
4: Do not push an Explicit NULL label. | 4: Do not push an Explicit NULL label. | |||
5 - 255: Reserved. | 5 - 255: Reserved. | |||
The ENLP reserved values may be used for future extensions and | The ENLP reserved values may be used for future extensions and | |||
implementations SHOULD ignore the ENLP Sub-TLV with these values. | implementations SHOULD ignore the ENLP Sub-TLV with these values. | |||
The behavior signaled in this Sub-TLV MAY be overridden by local | ||||
The policy signaled in this Sub-TLV MAY be overridden by local | ||||
configuration. The section 4.1 of | configuration. The section 4.1 of | |||
[I-D.ietf-spring-segment-routing-policy] draft describes the | [I-D.ietf-spring-segment-routing-policy] draft describes the | |||
behavior on the headend for handling of explicit null label. | behavior on the headend for handling of explicit null label. | |||
2.4.5. Policy Priority Sub-TLV | 2.4.5. Policy Priority Sub-TLV | |||
An operator MAY set the Policy Priority sub-TLV to indicate the order | An operator MAY set the Policy Priority sub-TLV to indicate the order | |||
in which the SR policies are re-computed upon topological change. | in which the SR policies are re-computed upon topological change. | |||
The contents of this sub-TLV are used by the SRPM as described in | ||||
The Priority sub-TLV does not have any effect on the BGP bestpath | section 2.11 in [I-D.ietf-spring-segment-routing-policy]. | |||
selection or propagation procedures. The contents of this sub-TLV | ||||
are used by the SRPM as described in section 2.11 in | ||||
[I-D.ietf-spring-segment-routing-policy]. | ||||
The Priority sub-TLV is optional and it MUST NOT appear more than | The Priority sub-TLV is optional and it MUST NOT appear more than | |||
once in the SR Policy TLV. If the Priority sub-TLV appears more than | once in the SR Policy TLV. | |||
once, the update is considered malformed and the "treat-as-withdraw" | ||||
strategy of [RFC7606] is applied. | ||||
The Priority sub-TLV has following format: | The Priority sub-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 | Priority | RESERVED | | | Type | Length | Priority | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Where: | Where: | |||
Type: TBD2 (to be assigned by IANA from the registry "BGP Tunnel | Type: 15 | |||
Encapsulation Attribute sub-TLVs" defined in this document | ||||
Section 8.3). | ||||
Length: 2. | Length: 2. | |||
Priority: a 1-octet value. | Priority: a 1-octet value. | |||
RESERVED: 1 octet of reserved bits. SHOULD be unset on | RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
2.4.6. Policy Name Sub-TLV | 2.4.6. Policy Name Sub-TLV | |||
An operator MAY set the Policy Name sub-TLV to attach a symbolic name | An operator MAY set the Policy Name sub-TLV to attach a symbolic name | |||
to the SR Policy candidate path. | to the SR Policy candidate path. | |||
Usage of Policy Name sub-TLV is described in section 2 in | Usage of Policy Name sub-TLV is described in section 2 in | |||
[I-D.ietf-spring-segment-routing-policy]. | [I-D.ietf-spring-segment-routing-policy]. | |||
The Policy Name sub-TLV may exceed 255 bytes length due to long | The Policy Name sub-TLV may exceed 255 bytes length due to long | |||
policy name. Therefore a 2-octet length is required. According to | policy name. Therefore a 2-octet length is required. According to | |||
[I-D.ietf-idr-tunnel-encaps], the first bit of the sub-TLV codepoint | [I-D.ietf-idr-tunnel-encaps], the first bit of the sub-TLV codepoint | |||
defines the size of the length field. Therefore, for the Policy Name | defines the size of the length field. Therefore, for the Policy Name | |||
sub-TLV a code point of 128 (or higher) is used. See Section 8 for | sub-TLV a code point of 128 or higher is used. | |||
details of codepoints allocation. | ||||
The Policy Name sub-TLV is optional and it MUST NOT appear more than | The Policy Name sub-TLV is optional and it MUST NOT appear more than | |||
once in the SR Policy TLV. If the Policy Name sub-TLV appears more | once in the SR Policy TLV. | |||
than once, the update is considered malformed and the "treat-as- | ||||
withdraw" strategy of [RFC7606] is applied. | ||||
The Policy Name sub-TLV has following format: | The Policy Name sub-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 | RESERVED | | | Type | Length | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// Policy Name // | // Policy Name // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
skipping to change at page 30, line 21 ¶ | skipping to change at page 27, line 4 ¶ | |||
The Policy Name sub-TLV has following format: | The Policy Name sub-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 | RESERVED | | | Type | Length | RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
// Policy Name // | // Policy Name // | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Where: | Where: | |||
Type: TBD3 (to be assigned by IANA from the registry "BGP Tunnel | Type: 129. | |||
Encapsulation Attribute sub-TLVs" defined in this document | ||||
Section 8.3). | ||||
Length: Variable. | Length: Variable. | |||
RESERVED: 1 octet of reserved bits. SHOULD be unset on | RESERVED: 1 octet of reserved bits. SHOULD be set to zero on | |||
transmission and MUST be ignored on receipt. | transmission and MUST be ignored on receipt. | |||
Policy Name: Symbolic name for the policy. It SHOULD be a string | Policy Name: Symbolic name for the policy. It SHOULD be a string | |||
of printable ASCII characters, without a NULL terminator. | of printable ASCII characters, without a NULL terminator. | |||
3. Extended Color Community | 3. Color Extended Community | |||
The Color Extended Community as defined in | The Color Extended Community as defined in | |||
[I-D.ietf-idr-tunnel-encaps] is used to steer traffic into a policy. | [I-D.ietf-idr-tunnel-encaps] is used to steer traffic into a policy. | |||
When the Color Extended Community is used for the purpose of steering | When the Color Extended Community is used for the purpose of steering | |||
the traffic into an SR Policy, the RESERVED field (as defined in | the traffic into an SR Policy, two bits from the RESERVED field (as | |||
[I-D.ietf-idr-tunnel-encaps] is changed as follows: | defined in [I-D.ietf-idr-tunnel-encaps]) is used as follows: | |||
1 | 1 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|C O| RESERVED | | |C O| RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where CO bits are defined as the "Color-Only" bits. | where CO bits are defined as the "Color-Only" bits. | |||
[I-D.ietf-spring-segment-routing-policy] defines the influence of | [I-D.ietf-spring-segment-routing-policy] defines the influence of | |||
these bits on the automated steering of BGP Payload traffic onto SR | these bits on the automated steering of BGP Payload traffic onto SR | |||
Policies. | Policies. | |||
4. SR Policy Operations | 4. SR Policy Operations | |||
As described in this document, the consumer of an SR Policy NLRI is | As described in this document, the consumer of an SR Policy NLRI is | |||
not the BGP process. The BGP process is in charge of the origination | not the BGP process. The BGP process is in charge of the origination | |||
and propagation of the SR Policy NLRI but its installation and use is | and propagation of the SR Policy NLRI but its installation and use is | |||
skipping to change at page 31, line 15 ¶ | skipping to change at page 27, line 42 ¶ | |||
[I-D.ietf-spring-segment-routing-policy] defines the influence of | [I-D.ietf-spring-segment-routing-policy] defines the influence of | |||
these bits on the automated steering of BGP Payload traffic onto SR | these bits on the automated steering of BGP Payload traffic onto SR | |||
Policies. | Policies. | |||
4. SR Policy Operations | 4. SR Policy Operations | |||
As described in this document, the consumer of an SR Policy NLRI is | As described in this document, the consumer of an SR Policy NLRI is | |||
not the BGP process. The BGP process is in charge of the origination | not the BGP process. The BGP process is in charge of the origination | |||
and propagation of the SR Policy NLRI but its installation and use is | and propagation of the SR Policy NLRI but its installation and use is | |||
outside the scope of BGP. The details of SR Policy installation and | outside the scope of BGP. The details of SR Policy installation and | |||
use can be referred from [I-D.ietf-spring-segment-routing-policy]. | use are specified in [I-D.ietf-spring-segment-routing-policy]. | |||
4.1. Configuration and Advertisement of SR Policies | 4.1. Advertisement of SR Policies | |||
Typically, but not limited to, an SR Policy is configured into a | Typically, but not limited to, an SR Policy is computed by a | |||
controller. | controller or a path computation engine (PCE) and originated by a BGP | |||
speaker on its behalf. | ||||
Multiple SR Policy NLRIs may be present with the same <color, | Multiple SR Policy NLRIs may be present with the same <color, | |||
endpoint> tuple but with different content when these SR policies are | endpoint> tuple but with different content when these SR policies are | |||
intended to different head-ends. | intended for different head-ends. | |||
The distinguisher of each SR Policy NLRI prevents undesired BGP route | The distinguisher of each SR Policy NLRI prevents undesired BGP route | |||
selection among these SR Policy NLRIs and allow their propagation | selection among these SR Policy NLRIs and allows their propagation | |||
across route reflectors [RFC4456]. | across route reflectors [RFC4456]. | |||
Moreover, one or more route-target SHOULD be attached to the | Moreover, one or more route-target SHOULD be attached to the | |||
advertisement, where each route-target identifies one or more | advertisement, where each route-target identifies one or more | |||
intended head-ends for the advertised SR policy. | intended head-ends for the advertised SR policy. | |||
If no route-target is attached to the SR Policy NLRI, then it is | If no route-target is attached to the SR Policy NLRI, then it is | |||
assumed that the originator sends the SR Policy update directly | assumed that the originator sends the SR Policy update directly | |||
(e.g., through a BGP session) to the intended receiver. In such | (e.g., through a BGP session) to the intended receiver. In such | |||
case, the NO_ADVERTISE community MUST be attached to the SR Policy | case, the NO_ADVERTISE community MUST be attached to the SR Policy | |||
update. | update. | |||
4.2. Reception of an SR Policy NLRI | 4.2. Reception of an SR Policy NLRI | |||
On reception of an SR Policy NLRI, a BGP speaker MUST determine if | On reception of an SR Policy NLRI, a BGP speaker first determines if | |||
it's first acceptable, then it determines if it is usable. | it is acceptable and then if it is usable. | |||
4.2.1. Acceptance of an SR Policy NLRI | 4.2.1. Acceptance of an SR Policy NLRI | |||
When a BGP speaker receives an SR Policy NLRI from a neighbor it has | When a BGP speaker receives an SR Policy NLRI from a neighbor it MUST | |||
to determine if it's acceptable. The following applies: | first determine if it's acceptable. The following rules apply: | |||
o The SR Policy NLRI MUST include a distinguisher, color and | o The SR Policy NLRI MUST include a distinguisher, color and | |||
endpoint field which implies that the length of the NLRI MUST be | endpoint field which implies that the length of the NLRI MUST be | |||
either 12 or 24 octets (depending on the address family of the | either 12 or 24 octets (depending on the address family of the | |||
endpoint). | endpoint). | |||
o The SR Policy update MUST have either the NO_ADVERTISE community | o The SR Policy update MUST have either the NO_ADVERTISE community | |||
or at least one route-target extended community in IPv4-address | or at least one route-target extended community in IPv4-address | |||
format. If a router supporting this document receives an SR | format. If a router supporting this specification receives an SR | |||
policy update with no route-target extended communities and no | policy update with no route-target extended communities and no | |||
NO_ADVERTISE community, the update MUST NOT be sent to the SRPM. | NO_ADVERTISE community, the update MUST be considered as | |||
Furthermore, it SHOULD be considered to be malformed, and the | malformed. | |||
"treat-as-withdraw" strategy of [RFC7606] is applied. | ||||
o The Tunnel Encapsulation Attribute MUST be attached to the BGP | o The Tunnel Encapsulation Attribute MUST be attached to the BGP | |||
Update and MUST have a Tunnel Type TLV set to SR Policy ( | Update and MUST have a Tunnel Type TLV set to SR Policy (codepoint | |||
codepoint is 15, assigned by IANA (see Section 8) from the "BGP | is 15). | |||
Tunnel Encapsulation Attribute Tunnel Types" registry). | ||||
A router that receives an SR Policy update that is not valid | A router that receives an SR Policy update that is not valid | |||
according to these criteria MUST treat the update as malformed. The | according to these criteria MUST treat the update as malformed and | |||
route MUST NOT be passed to the SRPM, and the "treat-as-withdraw" | the SR Policy candidate path MUST NOT be passed to the SRPM. | |||
strategy of [RFC7606] is applied. | ||||
A unacceptable SR Policy update that has a valid NLRI portion with | ||||
invalid attribute portion MUST be considered as a withdraw of the SR | ||||
Policy. | ||||
4.2.2. Usable SR Policy NLRI | 4.2.2. Usable SR Policy NLRI | |||
If one or more route-targets are present, then at least one route- | A SR Policy update that has been determined to be acceptable is | |||
target MUST match one of the BGP Identifiers of the receiver in order | further evaluated for its usability by the receiving node. | |||
for the update to be considered usable. The BGP Identifier is | ||||
defined in [RFC4271] as a 4 octet IPv4 address. Therefore the route- | ||||
target extended community MUST be of the same format. | ||||
If one or more route-targets are present and no one matches any of | An SR Policy NLRI update without any route-target extended community | |||
the local BGP Identifiers, then, while the SR Policy NLRI is | but having the NO_ADVERTISE community is considered usable. | |||
acceptable, it is not usable on the receiver node. It has to be | ||||
noted that if the receiver has been explicitly configured to do so, | ||||
it MAY propagate the SR Policy NLRI to its neighbors as defined in | ||||
Section 4.2.4. | ||||
The SR Policy candidate paths encoded by the usable SR Policy NLRIs | If one or more route-targets are present, then at least one route- | |||
are sent to the SRPM. | target MUST match the BGP Identifier of the receiver for the update | |||
to be considered usable. The BGP Identifier is defined in [RFC4271] | ||||
as a 4 octet IPv4 address. Therefore, the route-target extended | ||||
community MUST be of the same format. | ||||
If one or more route-targets are present and none matches the local | ||||
BGP Identifier, then, while the SR Policy NLRI is acceptable, it is | ||||
not usable on the receiver node. | ||||
4.2.3. Passing a usable SR Policy NLRI to the SRPM | 4.2.3. Passing a usable SR Policy NLRI to the SRPM | |||
Once BGP has determined that the SR Policy NLRI is usable, BGP passes | Once BGP on the receiving node has determined that the SR Policy NLRI | |||
the SR Policy candidate path to the SRPM. Note that, along with the | is usable, it passes the SR Policy candidate path to the SRPM. Note | |||
candidate path details, BGP also passes the originator information | that, along with the candidate path details, BGP also passes the | |||
for breaking ties in the path-selection process as described in | originator information for breaking ties in the candidate path | |||
section 2.4 in [I-D.ietf-spring-segment-routing-policy]. | selection process as described in section 2.4 in | |||
[I-D.ietf-spring-segment-routing-policy]. | ||||
The SRPM applies the rules defined in section 2 in | The SRPM applies the rules defined in section 2 in | |||
[I-D.ietf-spring-segment-routing-policy] to determine whether the SR | [I-D.ietf-spring-segment-routing-policy] to determine whether the SR | |||
Policy candidate path is valid and to select the best candidate path | Policy candidate path is valid and to select the best candidate path | |||
among the valid SR Policy candidate paths. | among the valid ones for a given SR Policy. | |||
4.2.4. Propagation of an SR Policy | 4.2.4. Propagation of an SR Policy | |||
SR Policy NLRIs that have been determined acceptable and valid can be | ||||
evaluated for propagation, even the ones that are not usable. | ||||
SR Policy NLRIs that have the NO_ADVERTISE community attached to them | ||||
MUST NOT be propagated. | ||||
By default, a BGP node receiving an SR Policy NLRI MUST NOT propagate | By default, a BGP node receiving an SR Policy NLRI MUST NOT propagate | |||
it to any EBGP neighbor. | it to any EBGP neighbor. An implementation MAY provide an explicit | |||
configuration to override this and enable propagation of acceptable | ||||
SR Policy NLRIs to specific EBGP neighbors. | ||||
However, a node MAY be explicitly configured to advertise a received | A BGP node advertises a received SR Policy NLRI to its IBGP neighbors | |||
SR Policy NLRI to neighbors according to normal BGP rules (i.e., EBGP | according to normal IBGP propagation rules. | |||
propagation by an ASBR or iBGP propagation by a Route-Reflector). | ||||
SR Policy NLRIs that have been determined acceptable and valid can be | By default, a BGP node receiving an SR Policy NLRI SHOULD NOT remove | |||
propagated, even the ones that are not usable. | route-target extended community before propagation. An | |||
implementation MAY provide support for configuration to filter and/or | ||||
remove route-target extended community before propagation. | ||||
Only SR Policy NLRIs that do not have the NO_ADVERTISE community | 5. Error Handling | |||
attached to them can be propagated. | ||||
4.3. Flowspec and SR Policies | This section describes the error handling actions, as described in | |||
[RFC7606], that are to be performed for handling of BGP update | ||||
messages for BGP SR Policy SAFI. | ||||
The SR Policy can be carried in context of a Flowspec NLRI | A BGP Speaker MUST perform the following syntactic validation of the | |||
([RFC5575]). In this case, when the redirect to IP next-hop is | SR Policy NLRI to determine if it is malformed. This includes the | |||
specified as in [I-D.ietf-idr-flowspec-redirect-ip], the tunnel to | validation of length of each NLRI and the total length of the | |||
the next-hop is specified by the segment list in the Segment List | MP_REACH_NLRI and MP_UNREACH_NLRI attributes. | |||
sub-TLVs. The Segment List (e.g., label stack or IPv6 segment list) | ||||
is imposed to flows matching the criteria in the Flowspec route to | ||||
steer them towards the next-hop as specified in the SR Policy SAFI | ||||
NLRI. | ||||
5. Contributors | When the error determined allows for the router to skip the malformed | |||
NLRI(s) and continue processing of the rest of the update message, | ||||
then it MUST handle such malformed NLRIs as 'Treat-as-withdraw'. In | ||||
other cases, where the error in the NLRI encoding results in the | ||||
inability to process the BGP update message (e.g. length related | ||||
encoding errors), then the router SHOULD handle such malformed NLRIs | ||||
as 'AFI/SAFI disable' when other AFI/SAFI besides SR Policy are being | ||||
advertised over the same session. Alternately, the router MUST | ||||
perform 'session reset' when the session is only being used for SR | ||||
Policy or when it 'AFI/SAFI disable' action is not possible. | ||||
Kausik Majumdar | The validation of the TLVs/sub-TLVs introduced in this document and | |||
Cisco Systems | defined in their respective sub-sections of Section 2.4 MUST be | |||
US | performed to determine if they are malformed or invalid. The | |||
validation of the Tunnel Encapsulation Attribute itself and the other | ||||
TLVs/sub-TLVs specified in [I-D.ietf-idr-tunnel-encaps] MUST be done | ||||
as described in that document. In case of any error detected, either | ||||
at the attribute or its TLV/sub-TLV level, the "treat-as-withdraw" | ||||
strategy of [RFC7606] MUST be applied. This is because an SR Policy | ||||
update without a valid Tunnel Encapsulation Attribute (comprising of | ||||
all valid TLVs/sub-TLVs) is not usable. | ||||
Email: kmajumda@cisco.com | The validation of the individual fields of the TLVs/sub-TLVs defined | |||
in Section 2.4 are beyond the scope of BGP as they are handled by the | ||||
SRPM as described in the individual TLV/sub-TLV sub-sections. A BGP | ||||
implementation MUST NOT perform semantic verification of such fields | ||||
nor consider the SR Policy update to be invalid or not acceptable/ | ||||
usable on the basis of such a validation. | ||||
Zafar Ali | An implementation SHOULD log an error for any errors found during the | |||
Cisco Systems | above validation for further analysis. | |||
US | ||||
Email: zali@cisco.com | 6. IANA Considerations | |||
Arjun Sreekantiah | ||||
Cisco Systems | ||||
US | ||||
Email: asreekan@cisco.com | This document requests codepoint allocations for new TLVs/sub-TLVs in | |||
following existing registries: | ||||
Acee Lindem | o Subsequent Address Family Identifiers (SAFI) Parameters registry | |||
Cisco Systems | ||||
US | ||||
Email: acee@cisco.com | o BGP Tunnel Encapsulation Attribute Tunnel Types registry under the | |||
BGP Parameters registry | ||||
Siva Sivabalan | o BGP Tunnel Encapsulation Attribute sub-TLVs registry under the BGP | |||
Cisco Systems | Parameters registry | |||
US | ||||
Email: msiva@cisco.com | This document also requests creation of the following new registries: | |||
Imtiyaz Mohammad | o SR Policy List Sub-TLVs under the BGP Parameters registry | |||
Arista Networks | ||||
India | ||||
Email: imtiyaz@arista.com | o SR Policy Binding SID Flags under the BGP Parameters registry | |||
Gaurav Dawra | o SR Policy Segment Flags under the BGP Parameters registry | |||
Cisco Systems | ||||
US | ||||
Email: gdawra.ietf@gmail.com | o Color Extended Community Field under the BGP Extended Communities | |||
registry | ||||
6. Acknowledgments | 6.1. Existing Registry: Subsequent Address Family Identifiers (SAFI) | |||
Parameters | ||||
The authors of this document would like to thank Shyam Sethuram, John | This document defines a new SAFI in the registry "Subsequent Address | |||
Scudder, Przemyslaw Krol, Alex Bogdanov, Nandan Saha and Ketan | Family Identifiers (SAFI) Parameters" that has been assigned a | |||
Talaulikar for their comments and review of this document. | codepoint by IANA as follows: | |||
7. Implementation Status | Codepoint Description Reference | |||
----------------------------------------------- | ||||
73 SR Policy SAFI This document | ||||
Note to RFC Editor: Please remove this section prior to publication, | 6.2. Existing Registry: BGP Tunnel Encapsulation Attribute Tunnel Types | |||
as well as the reference to RFC 7942. | ||||
This section records the status of known implementations of the | This document defines a new Tunnel-Type in the registry "BGP Tunnel | |||
protocol defined by this specification at the time of posting of this | Encapsulation Attribute Tunnel Types" that has been assigned a | |||
Internet-Draft, and is based on a proposal described in [RFC7942]. | codepoint by IANA as follows: | |||
The description of implementations in this section is intended to | ||||
assist the IETF in its decision processes in progressing drafts to | ||||
RFCs. Please note that the listing of any individual implementation | ||||
here does not imply endorsement by the IETF. Furthermore, no effort | ||||
has been spent to verify the information presented here that was | ||||
supplied by IETF contributors. This is not intended as, and must not | ||||
be construed to be, a catalog of available implementations or their | ||||
features. Readers are advised to note that other implementations may | ||||
exist. | ||||
According to [RFC7942], "this will allow reviewers and working groups | Codepoint Description Reference | |||
to assign due consideration to documents that have the benefit of | -------------------------------------------------- | |||
running code, which may serve as evidence of valuable experimentation | 15 SR Policy Type This document | |||
and feedback that have made the implemented protocols more mature. | ||||
It is up to the individual working groups to use this information as | ||||
they see fit". | ||||
Several early implementations exist and will be reported in detail in | 6.3. Existing Registry: BGP Tunnel Encapsulation Attribute sub-TLVs | |||
a forthcoming version of this document. For purposes of early | ||||
interoperability testing, when no FCFS code point was available, | ||||
implementations have made use of the following values: | ||||
o Preference sub-TLV: 12 | This document defines new sub-TLVs in the registry "BGP Tunnel | |||
Encapsulation Attribute sub-TLVs" that has been assigned codepoints | ||||
by IANA as follows: | ||||
o Binding SID sub-TLV: 13 | Codepoint Description Reference | |||
------------------------------------------------------ | ||||
12 Preference sub-TLV This document | ||||
13 Binding SID sub-TLV This document | ||||
128 Segment List sub-TLV This document | ||||
14 ENLP sub-TLV This document | ||||
15 Priority sub-TLV This document | ||||
129 Policy Name sub-TLV This document | ||||
o Segment List sub-TLV: 128 | 6.4. New Registry: SR Policy List Sub-TLVs | |||
When IANA-assigned values are available, implementations will be | This document requests creation of a new registry called "SR Policy | |||
updated to use them. | List Sub-TLVs". The allocation policy of this registry is | |||
"Specification Required" according to [RFC8126]. | ||||
8. IANA Considerations | Following initial Sub-TLV codepoints are assigned by this document: | |||
This document defines new Sub-TLVs in following existing registries: | Value Description Reference | |||
------------------------------------------------------------------------ | ||||
1 Type A MPLS SID sub-TLV This document | ||||
2 Type B SRv6 SID sub-TLV This document | ||||
3 Type C IPv4 Node and SID sub-TLV This document | ||||
4 Type D IPv6 Node and SID for SR-MPLS sub-TLV This document | ||||
5 Type E IPv4 Node, index and SID sub-TLV This document | ||||
6 Type F IPv4 Local/Remote addresses and SID sub-TLV This document | ||||
7 Type G IPv6 Node, index for remote and local pair This document | ||||
and SID for SR-MPLS sub-TLV | ||||
8 Type H IPv6 Local/Remote addresses and SID sub-TLV This document | ||||
9 Weight sub-TLV This document | ||||
10 Type I IPv6 Node and SID for SRv6 sub-TLV This document | ||||
11 Type J IPv6 Node, index for remote and local pair This document | ||||
and SID for SRv6 sub-TLV | ||||
12 Type K IPv6 Local/Remote addresses and SID for This document | ||||
SRv6 sub-TLV | ||||
o Subsequent Address Family Identifiers (SAFI) Parameters | 6.5. New Registry: SR Policy Binding SID Flags | |||
o BGP Tunnel Encapsulation Attribute Tunnel Types | This document requests creation of a new registry called "SR Policy | |||
Binding SID Flags". The allocation policy of this registry is | ||||
"Specification Required" according to [RFC8126]. | ||||
o BGP Tunnel Encapsulation Attribute sub-TLVs | Following flags are defined: | |||
This document also defines following new registries: | Bit Description Reference | |||
----------------------------------------------------------------- | ||||
0 Specified-BSID-Only Flag (S-Flag) This document | ||||
1 Drop Upon Invalid Flag (I-Flag) This document | ||||
2-7 Unassigned | ||||
o SR Policy List Sub-TLVs | 6.6. New Registry: SR Policy Segment Flags | |||
o SR Policy Binding SID Flags | This document requests creation of a new registry called "SR Policy | |||
Segment Flags". The allocation policy of this registry is | ||||
"Specification Required" according to [RFC8126]. | ||||
o SR Policy Segment Flags | Following Flags are defined: | |||
8.1. Existing Registry: Subsequent Address Family Identifiers (SAFI) | Bit Description Reference | |||
Parameters | ------------------------------------------------------------------ | |||
0 Segment Verification Flag (V-Flag) This document | ||||
1 SR Algorithm Flag (A-Flag) This document | ||||
2-7 Unassigned | ||||
This document defines a new SAFI in the registry "Subsequent Address | 6.7. New Registry: Color Extended Community Field | |||
Family Identifiers (SAFI) Parameters" that has been assigned by IANA: | ||||
Codepoint Description Reference | This document requests creation of a new registry called "Color | |||
----------------------------------------------- | Extended Community Field". The allocation policy of this registry is | |||
73 SR Policy SAFI This document | "Specification Required" according to [RFC8126]. | |||
8.2. Existing Registry: BGP Tunnel Encapsulation Attribute Tunnel Types | Following bits are defined in this 2 octet field: | |||
This document defines a new Tunnel-Type in the registry "BGP Tunnel | Bit Description Reference | |||
Encapsulation Attribute Tunnel Types" that has been assigned by IANA: | ------------------------------------------------------------------ | |||
0-1 Color-only bits This document | ||||
2-15 Unassigned | ||||
Codepoint Description Reference | 6.8. Guidance for Designated Experts | |||
-------------------------------------------------- | ||||
15 SR Policy Type This document | ||||
8.3. Existing Registry: BGP Tunnel Encapsulation Attribute sub-TLVs | In all cases of review by the Designated Expert (DE) described here, | |||
the DE is expected to ascertain the existence of suitable | ||||
documentation (a specification) as described in [RFC8126]. The DE is | ||||
also expected to check the clarity of purpose and use of the | ||||
requested code points. Additionally, the DE must verify that any | ||||
request for one of these code points has been made available for | ||||
review and comment within the IETF: the DE will post the request to | ||||
the IDR Working Group mailing list (or a successor mailing list | ||||
designated by the IESG). If the request comes from within the IETF, | ||||
it should be documented in an Internet-Draft. Lastly, the DE must | ||||
ensure that any other request for a code point does not conflict with | ||||
work that is active or already published within the IETF. | ||||
This document defines new sub-TLVs in the registry "BGP Tunnel | 7. Security Considerations | |||
Encapsulation Attribute sub-TLVs" to be assigned by IANA: | ||||
Codepoint Description Reference | The security mechanisms of the base BGP security model apply to the | |||
------------------------------------------------------ | extensions described in this document as well. See the Security | |||
12 Preference sub-TLV This document | Considerations section of [RFC4271] for a discussion of BGP security. | |||
13 Binding SID sub-TLV This document | Also refer to [RFC4272] and [RFC6952] for analysis of security issues | |||
128 Segment List sub-TLV This document | for BGP. | |||
TBD1 ENLP sub-TLV This document | ||||
TBD2 Priority sub-TLV This document | ||||
TBD3 Policy Name sub-TLV This document | ||||
8.4. New Registry: SR Policy List Sub-TLVs | The BGP SR Policy extensions specified in this document enable | |||
traffic engineering and service programming use-cases within the SR | ||||
domain as described in [I-D.ietf-spring-segment-routing-policy] . SR | ||||
operates within a trusted SR domain [RFC8402] and its security | ||||
considerations also apply to BGP sessions when carrying SR Policy | ||||
information. The SR Policies distributed by BGP are expected to be | ||||
used entirely within this trusted SR domain i.e. within a single AS | ||||
or between multiple AS/domains within a single provider network. | ||||
Therefore, precaution is necessary to ensure that the SR Policy | ||||
information advertised via BGP sessions is limited to nodes in a | ||||
secure manner within this trusted SR domain. BGP peering sessions | ||||
for address-families other than SR Policy SAFI may be setup to | ||||
routers outside the SR domain. The isolation of BGP SR Policy SAFI | ||||
peering sessions may be used to ensure that the SR Policy information | ||||
is not advertised by accident or error to an EBGP peering session | ||||
outside the SR domain. | ||||
This document defines a new registry called "SR Policy List Sub- | Additionally, it may be considered that the export of SR Policy | |||
TLVs". The allocation policy of this registry is "First Come First | information as described in this document constitutes a risk to | |||
Served (FCFS)" according to [RFC8126]. | confidentiality of mission-critical or commercially sensitive | |||
information about the network (more specifically endpoint/node | ||||
addresses, SR SIDs and the SR Policies deployed). BGP peerings are | ||||
not automatic and require configuration; thus, it is the | ||||
responsibility of the network operator to ensure that only trusted | ||||
nodes (that include both routers and controller applications) within | ||||
the SR domain are configured to receive such information. | ||||
Following Sub-TLV codepoints are defined: | 8. Acknowledgments | |||
Value Description Reference | The authors of this document would like to thank Shyam Sethuram, John | |||
1 MPLS SID sub-TLV This document | Scudder, Przemyslaw Krol, Alex Bogdanov, Nandan Saha, Bruno Decraene, | |||
2 SRv6 SID sub-TLV This document | Gurusiddesh Nidasesi, Kausik Majumdar, Zafar Ali, Swadesh Agarwal, | |||
3 IPv4 Node and SID sub-TLV This document | Jakob Heitz and Viral Patel for their comments and review of this | |||
4 IPv6 Node and SID for SR-MPLS sub-TLV This document | document. | |||
5 IPv4 Node, index and SID sub-TLV This document | ||||
6 IPv4 Local/Remote addresses and SID sub-TLV This document | ||||
7 IPv6 Node, index for remote and local pair This document | ||||
and SID for SR-MPLS sub-TLV | ||||
8 IPv6 Local/Remote addresses and SID sub-TLV This document | ||||
9 Weight sub-TLV This document | ||||
10 IPv6 Node and SID for SRv6 sub-TLV This document | ||||
11 IPv6 Node, index for remote and local pair This document | ||||
and SID for SRv6 sub-TLV | ||||
12 IPv6 Local/Remote addresses and SID for This document | ||||
SRv6 sub-TLV | ||||
8.5. New Registry: SR Policy Binding SID Flags | 9. Contributors | |||
Arjun Sreekantiah | ||||
Cisco Systems | ||||
US | ||||
This document defines a new registry called "SR Policy Binding SID | Email: asreekan@cisco.com | |||
Flags". The allocation policy of this registry is "First Come First | ||||
Served (FCFS)" according to [RFC8126]. | ||||
Following Flags are defined: | Acee Lindem | |||
Cisco Systems | ||||
US | ||||
Bit Description Reference | Email: acee@cisco.com | |||
0 Specified-BSID-Only Flag (S-Flag) This document | ||||
1 Drop Upon Invalid Flag (I-Flag) This document | ||||
2-7 Unassigned | ||||
8.6. New Registry: SR Policy Segment Flags | Siva Sivabalan | |||
Cisco Systems | ||||
US | ||||
This document defines a new registry called "SR Policy Segment | Email: msiva@cisco.com | |||
Flags". The allocation policy of this registry is "First Come First | ||||
Served (FCFS)" according to [RFC8126]. | ||||
Following Flags are defined: | Imtiyaz Mohammad | |||
Arista Networks | ||||
India | ||||
Bit Description Reference | Email: imtiyaz@arista.com | |||
0 Segment Verification Flag (V-Flag) This document | ||||
1 SR Algorithm Flag (A-Flag) This document | ||||
2-7 Unassigned | ||||
9. Security Considerations | Gaurav Dawra | |||
Cisco Systems | ||||
US | ||||
TBD. | Email: gdawra.ietf@gmail.com | |||
10. References | 10. References | |||
10.1. Normative References | 10.1. Normative References | |||
[I-D.ietf-idr-tunnel-encaps] | [I-D.ietf-idr-tunnel-encaps] | |||
Patel, K., Velde, G., Ramachandra, S., and E. Rosen, "The | Patel, K., Velde, G., and S. Ramachandra, "The BGP Tunnel | |||
BGP Tunnel Encapsulation Attribute", draft-ietf-idr- | Encapsulation Attribute", draft-ietf-idr-tunnel-encaps-14 | |||
tunnel-encaps-12 (work in progress), May 2019. | (work in progress), September 2019. | |||
[I-D.ietf-pce-segment-routing] | [I-D.ietf-pce-segment-routing] | |||
Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., | Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., | |||
and J. Hardwick, "PCEP Extensions for Segment Routing", | and J. Hardwick, "PCEP Extensions for Segment Routing", | |||
draft-ietf-pce-segment-routing-16 (work in progress), | draft-ietf-pce-segment-routing-16 (work in progress), | |||
March 2019. | March 2019. | |||
[I-D.ietf-spring-segment-routing] | ||||
Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., | ||||
Litkowski, S., and R. Shakir, "Segment Routing | ||||
Architecture", draft-ietf-spring-segment-routing-15 (work | ||||
in progress), January 2018. | ||||
[I-D.ietf-spring-segment-routing-policy] | [I-D.ietf-spring-segment-routing-policy] | |||
Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d., | Filsfils, C., Sivabalan, S., Voyer, D., Bogdanov, A., and | |||
bogdanov@google.com, b., and P. Mattes, "Segment Routing | P. Mattes, "Segment Routing Policy Architecture", draft- | |||
Policy Architecture", draft-ietf-spring-segment-routing- | ietf-spring-segment-routing-policy-03 (work in progress), | |||
policy-03 (work in progress), May 2019. | May 2019. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | |||
Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | |||
Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | |||
<https://www.rfc-editor.org/info/rfc3032>. | <https://www.rfc-editor.org/info/rfc3032>. | |||
skipping to change at page 39, line 14 ¶ | skipping to change at page 36, line 35 ¶ | |||
[RFC4360] Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended | [RFC4360] Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended | |||
Communities Attribute", RFC 4360, DOI 10.17487/RFC4360, | Communities Attribute", RFC 4360, DOI 10.17487/RFC4360, | |||
February 2006, <https://www.rfc-editor.org/info/rfc4360>. | February 2006, <https://www.rfc-editor.org/info/rfc4360>. | |||
[RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, | [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, | |||
"Multiprotocol Extensions for BGP-4", RFC 4760, | "Multiprotocol Extensions for BGP-4", RFC 4760, | |||
DOI 10.17487/RFC4760, January 2007, | DOI 10.17487/RFC4760, January 2007, | |||
<https://www.rfc-editor.org/info/rfc4760>. | <https://www.rfc-editor.org/info/rfc4760>. | |||
[RFC5575] Marques, P., Sheth, N., Raszuk, R., Greene, B., Mauch, J., | ||||
and D. McPherson, "Dissemination of Flow Specification | ||||
Rules", RFC 5575, DOI 10.17487/RFC5575, August 2009, | ||||
<https://www.rfc-editor.org/info/rfc5575>. | ||||
[RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. | [RFC7606] Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. | |||
Patel, "Revised Error Handling for BGP UPDATE Messages", | Patel, "Revised Error Handling for BGP UPDATE Messages", | |||
RFC 7606, DOI 10.17487/RFC7606, August 2015, | RFC 7606, DOI 10.17487/RFC7606, August 2015, | |||
<https://www.rfc-editor.org/info/rfc7606>. | <https://www.rfc-editor.org/info/rfc7606>. | |||
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
<https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., | ||||
Decraene, B., Litkowski, S., and R. Shakir, "Segment | ||||
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | ||||
July 2018, <https://www.rfc-editor.org/info/rfc8402>. | ||||
10.2. Informational References | 10.2. Informational References | |||
[I-D.filsfils-spring-sr-policy-considerations] | [I-D.filsfils-spring-sr-policy-considerations] | |||
Filsfils, C., Talaulikar, K., Krol, P., Horneffer, M., and | Filsfils, C., Talaulikar, K., Krol, P., Horneffer, M., and | |||
P. Mattes, "SR Policy Implementation and Deployment | P. Mattes, "SR Policy Implementation and Deployment | |||
Considerations", draft-filsfils-spring-sr-policy- | Considerations", draft-filsfils-spring-sr-policy- | |||
considerations-03 (work in progress), April 2019. | considerations-04 (work in progress), October 2019. | |||
[I-D.ietf-6man-segment-routing-header] | ||||
Filsfils, C., Dukes, D., Previdi, S., Leddy, J., | ||||
Matsushima, S., and d. daniel.voyer@bell.ca, "IPv6 Segment | ||||
Routing Header (SRH)", draft-ietf-6man-segment-routing- | ||||
header-21 (work in progress), June 2019. | ||||
[I-D.ietf-idr-flowspec-redirect-ip] | [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", | |||
Uttaro, J., Haas, J., Texier, M., Andy, A., Ray, S., | RFC 4272, DOI 10.17487/RFC4272, January 2006, | |||
Simpson, A., and W. Henderickx, "BGP Flow-Spec Redirect to | <https://www.rfc-editor.org/info/rfc4272>. | |||
IP Action", draft-ietf-idr-flowspec-redirect-ip-02 (work | ||||
in progress), February 2015. | ||||
[RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route | [RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route | |||
Reflection: An Alternative to Full Mesh Internal BGP | Reflection: An Alternative to Full Mesh Internal BGP | |||
(IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006, | (IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006, | |||
<https://www.rfc-editor.org/info/rfc4456>. | <https://www.rfc-editor.org/info/rfc4456>. | |||
[RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of | |||
Code: The Implementation Status Section", BCP 205, | BGP, LDP, PCEP, and MSDP Issues According to the Keying | |||
RFC 7942, DOI 10.17487/RFC7942, July 2016, | and Authentication for Routing Protocols (KARP) Design | |||
<https://www.rfc-editor.org/info/rfc7942>. | Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, | |||
<https://www.rfc-editor.org/info/rfc6952>. | ||||
Authors' Addresses | Authors' Addresses | |||
Stefano Previdi | Stefano Previdi | |||
Individual | Individual | |||
IT | IT | |||
Email: stefano@previdi.net | Email: stefano@previdi.net | |||
Clarence Filsfils | Clarence Filsfils | |||
Cisco Systems, Inc. | Cisco Systems | |||
Brussels | Brussels | |||
BE | BE | |||
Email: cfilsfil@cisco.com | Email: cfilsfil@cisco.com | |||
Ketan Talaulikar (editor) | ||||
Cisco Systems | ||||
India | ||||
Email: ketant@cisco.com | ||||
Paul Mattes | Paul Mattes | |||
Microsoft | Microsoft | |||
One Microsoft Way | One Microsoft Way | |||
Redmond, WA 98052 | Redmond, WA 98052 | |||
USA | USA | |||
Email: pamattes@microsoft.com | Email: pamattes@microsoft.com | |||
Eric Rosen | Eric Rosen | |||
Juniper Networks | Juniper Networks | |||
End of changes. 246 change blocks. | ||||
713 lines changed or deleted | 586 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/ |