draft-ietf-idr-segment-routing-te-policy-01.txt   draft-ietf-idr-segment-routing-te-policy-02.txt 
Network Working Group S. Previdi, Ed. Network Working Group S. Previdi, Ed.
Internet-Draft C. Filsfils Internet-Draft C. Filsfils
Intended status: Standards Track Cisco Systems, Inc. Intended status: Standards Track D. Jain, Ed.
Expires: June 16, 2018 P. Mattes Expires: September 3, 2018 Cisco Systems, Inc.
P. Mattes
Microsoft Microsoft
E. Rosen E. Rosen
Juniper Networks Juniper Networks
S. Lin S. Lin
Google Google
December 13, 2017 Mar 2, 2018
Advertising Segment Routing Policies in BGP Advertising Segment Routing Policies in BGP
draft-ietf-idr-segment-routing-te-policy-01 draft-ietf-idr-segment-routing-te-policy-02
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 Policy (SR Policy).
An SR Policy is a set of candidate paths consisting of one or more An SR Policy is a set of candidate paths consisting of one or 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
skipping to change at page 1, line 44 skipping to change at page 1, line 45
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 16, 2018. This Internet-Draft will expire on September 3, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 2, line 29 skipping to change at page 2, line 29
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5
2. SR TE Policy Encoding . . . . . . . . . . . . . . . . . . . . 5 2. SR TE Policy Encoding . . . . . . . . . . . . . . . . . . . . 5
2.1. SR TE Policy SAFI and NLRI . . . . . . . . . . . . . . . 5 2.1. SR TE Policy SAFI and NLRI . . . . . . . . . . . . . . . 5
2.2. SR TE Policy and Tunnel Encapsulation Attribute . . . . . 7 2.2. SR TE Policy and Tunnel Encapsulation Attribute . . . . . 7
2.3. Remote Endpoint and Color . . . . . . . . . . . . . . . . 8 2.3. Remote Endpoint and Color . . . . . . . . . . . . . . . . 8
2.4. SR TE Policy Sub-TLVs . . . . . . . . . . . . . . . . . . 8 2.4. SR TE Policy Sub-TLVs . . . . . . . . . . . . . . . . . . 8
2.4.1. Preference sub-TLV . . . . . . . . . . . . . . . . . 8 2.4.1. Preference Sub-TLV . . . . . . . . . . . . . . . . . 8
2.4.2. SR TE Binding SID Sub-TLV . . . . . . . . . . . . . . 9 2.4.2. SR TE Binding SID Sub-TLV . . . . . . . . . . . . . . 9
2.4.3. Segment List Sub-TLV . . . . . . . . . . . . . . . . 10 2.4.3. Segment List Sub-TLV . . . . . . . . . . . . . . . . 10
2.4.4. Explicit NULL Label Policy Sub-TLV . . . . . . . . . 21 2.4.4. Explicit NULL Label Policy Sub-TLV . . . . . . . . . 21
3. Extended Color Community . . . . . . . . . . . . . . . . . . 22 3. Extended Color Community . . . . . . . . . . . . . . . . . . 23
4. SR Policy Operations . . . . . . . . . . . . . . . . . . . . 23 4. SR Policy Operations . . . . . . . . . . . . . . . . . . . . 23
4.1. Configuration and Advertisement of SR TE Policies . . . . 23 4.1. Configuration and Advertisement of SR TE Policies . . . . 23
4.2. Reception of an SR Policy NLRI . . . . . . . . . . . . . 23 4.2. Reception of an SR Policy NLRI . . . . . . . . . . . . . 24
4.2.1. Acceptance of an SR Policy NLRI . . . . . . . . . . . 23 4.2.1. Acceptance of an SR Policy NLRI . . . . . . . . . . . 24
4.2.2. Usable SR Policy NLRI . . . . . . . . . . . . . . . . 24 4.2.2. Usable SR Policy NLRI . . . . . . . . . . . . . . . . 24
4.2.3. Passing a usable SR Policy NLRI to the SRTE Process . 25 4.2.3. Passing a usable SR Policy NLRI to the SRTE Process . 25
4.2.4. Propagation of an SR Policy . . . . . . . . . . . . . 25 4.2.4. Propagation of an SR Policy . . . . . . . . . . . . . 25
4.3. Flowspec and SR Policies . . . . . . . . . . . . . . . . 25 4.3. Flowspec and SR Policies . . . . . . . . . . . . . . . . 25
5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 26 5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 26
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 26 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 26
7. Implementation Status . . . . . . . . . . . . . . . . . . . . 26 7. Implementation Status . . . . . . . . . . . . . . . . . . . . 26
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27
8.1. Existing Registry: Subsequent Address Family Identifiers 8.1. Existing Registry: Subsequent Address Family Identifiers
(SAFI) Parameters . . . . . . . . . . . . . . . . . . . . 28 (SAFI) Parameters . . . . . . . . . . . . . . . . . . . . 28
skipping to change at page 3, line 17 skipping to change at page 3, line 17
10.1. Normative References . . . . . . . . . . . . . . . . . . 29 10.1. Normative References . . . . . . . . . . . . . . . . . . 29
10.2. Informational References . . . . . . . . . . . . . . . . 30 10.2. Informational References . . . . . . . . . . . . . . . . 30
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31
1. Introduction 1. Introduction
Segment Routing (SR) allows a headend node to steer a packet flow Segment Routing (SR) allows a headend node to steer a packet flow
along any path. Intermediate per-flow states are eliminated thanks along any path. Intermediate per-flow states are eliminated thanks
to source routing [I-D.ietf-spring-segment-routing]. to source routing [I-D.ietf-spring-segment-routing].
The headend node is said to steer a flow into an Segment Routing The headend node is said to steer a flow into a Segment Routing
Policy (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.filsfils-spring-segment-routing-policy] details the concepts of [I-D.filsfils-spring-segment-routing-policy] details the concepts of
SR Policy and steering into an SR Policy. These apply equally to the SR Policy and steering into an SR Policy. These apply equally to the
MPLS and SRv6 instantiations of segment routing. MPLS and SRv6 instantiations of segment routing.
As highlighted in section 2 of As highlighted in section 2 of
skipping to change at page 4, line 28 skipping to change at page 4, line 28
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 sent on a BGP session to that head-end and not
propagated any further. propagated any further.
Alternatively, a router (i.e.: an 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
skipping to change at page 5, line 16 skipping to change at page 5, line 16
Attribute (as defined in [I-D.ietf-idr-tunnel-encaps]) specifying Attribute (as defined in [I-D.ietf-idr-tunnel-encaps]) specifying
candidate paths of the SR policy, as well as other information candidate paths of the SR policy, as well as other information
about the SR policy. about the SR policy.
o One or more IPv4 address format route-target extended community o One or more IPv4 address format route-target extended community
([RFC4360]) attached to the SR Policy advertisement and that ([RFC4360]) attached to the SR Policy advertisement and that
indicates the intended head-end of such SR Policy advertisement. indicates the intended head-end of such SR Policy advertisement.
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 into an SR Policy, as described in section 8.4 in
[I-D.filsfils-spring-segment-routing-policy]. This document [I-D.filsfils-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", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
skipping to change at page 6, line 39 skipping to change at page 6, line 39
registry). 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 of the SR Policy SAFI NLRI is set based on the AFI. For The next-hop of the SR Policy SAFI NLRI is set based on the AFI. For
example, if the AFI is set to IPv4 (1), then the next-hop is encoded example, if the AFI is set to IPv4 (1), then the next-hop is encoded
as a 4-byte IPv4 address. If the AFI is set to IPv6 (2), then the as a 4-byte IPv4 address. If the AFI is set to IPv6 (2), then the
next-hop is encoded as a 16-byte IPv6 address of the router. next-hop is encoded as a 16-byte IPv6 address of the router. Setting
of and processing of the next-hop field is governed by standard BGP
procedures as 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 does not modify the BGP propagation or bestpath
selection rules. selection rules.
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 SRTE process. both advertisements are passed to the SRTE process as different
candidate paths. In addition, the originator information
corresponding to the each candidate path, as described in section 2.4
([I-D.filsfils-spring-segment-routing-policy]) is passed to the SRTE
process.
2.2. SR TE Policy and Tunnel Encapsulation Attribute 2.2. SR TE 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 originally defined in [I-D.ietf-idr-tunnel-encaps] using a
new Tunnel-Type TLV (codepoint is 15, assigned by IANA (see new Tunnel-Type TLV (codepoint is 15, assigned by IANA (see
Section 8) from the "BGP Tunnel Encapsulation Attribute Tunnel Types" Section 8) from the "BGP Tunnel Encapsulation Attribute Tunnel Types"
registry). registry).
The SR Policy Encoding structure is as follows: The SR Policy Encoding structure is as follows:
skipping to change at page 8, line 11 skipping to change at page 8, line 17
Multiple occurrences of "Segment" MAY be encoded within the same Multiple occurrences of "Segment" MAY be encoded within the same
Segment List. 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.
If present, the Remote Endpoint sub-TLV MUST match the Endpoint of The Remote Endpoint and Color Sub-TLVs are not used for SR Policy
the SR Policy SAFI NLRI. encodings and therefore their value is irrelevant in the context of
SR Policy SAFI NLRI. If present, the Remote Endpoint sub-TLV and the
If present, the Color sub-TLV MUST match the Policy Color of the SR Color sub-TLV MUST be ignored by the BGP speaker.
Policy SAFI NLRI.
2.4. SR TE Policy Sub-TLVs 2.4. SR TE Policy Sub-TLVs
This section defines the SR Policy sub-TLVs. This section defines the SR Policy sub-TLVs.
Preference, Binding SID, Segment-List are assigned from the "BGP Preference, Binding SID, Segment-List are assigned from the "BGP
Tunnel Encapsulation Attribute sub-TLVs" registry. Tunnel Encapsulation Attribute sub-TLVs" registry.
Weight and Segment Sub-TLVs are assigned from a new registry defined Weight and Segment Sub-TLVs are assigned from a new registry defined
in this document and called: "SR Policy List Sub-TLVs". See in this document and called: "SR Policy List Sub-TLVs". See
Section 8 for the details of the registry. Section 8 for the details of the registry.
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 does not have any effect on the BGP bestpath
selection or propagation procedures. The contents of this sub-TLV selection or propagation procedures. The contents of this sub-TLV
are used by the SRTE process are used by the SRTE process as described in section 2.9 in
([I-D.filsfils-spring-segment-routing-policy]). ([I-D.filsfils-spring-segment-routing-policy]).
The Preference sub-TLV is optional, MUST NOT appear more than once in The Preference sub-TLV is optional, MUST NOT appear more than once in
the SR Policy and has following format: the SR Policy and has following format:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 9, line 12 skipping to change at page 9, line 16
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 unset on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o Preference: a 4-octet value. The highest value is preferred. o Preference: a 4-octet value.
2.4.2. SR TE Binding SID Sub-TLV 2.4.2. SR TE Binding SID Sub-TLV
The Binding SID sub-TLV is not used by BGP. The contents of this The Binding SID sub-TLV is not used by BGP. The contents of this
sub-TLV are used by the SRTE process sub-TLV are used by the SRTE process as described in section 6 in
([I-D.filsfils-spring-segment-routing-policy]). ([I-D.filsfils-spring-segment-routing-policy]).
The Binding SID sub-TLV is optional, MUST NOT appear more than once The Binding SID sub-TLV is optional, MUST NOT appear more than once
in the SR Policy and has the following format: in the SR Policy and 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 10, line 15 skipping to change at page 10, line 19
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 IPv6 SID.
2.4.3. Segment List Sub-TLV 2.4.3. Segment List Sub-TLV
The Segment List TLV encodes a single explicit path towards the The Segment List sub-TLV encodes a single explicit path towards the
endpoint. The Segment List sub-TLV includes the elements of the endpoint as described in section 5.1 in
paths (i.e.: segments) as well as an optional Weight TLV. ([I-D.filsfils-spring-segment-routing-policy]). The Segment List
sub-TLV includes the elements of the paths (i.e., segments) as well
as an 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. See Section 8 for details of codepoints allocation.
The Segment List sub-TLV is mandatory and MAY appear multiple times The Segment List sub-TLV is optional and MAY appear multiple times in
in the SR Policy. the SR Policy.
The Segment-List Sub-TLV MUST contain at least one Segment Sub-TLV The Segment List sub-TLV contains zero or more Segment sub-TLVs and
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:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// sub-TLVs // // sub-TLVs //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 11, line 7 skipping to change at page 11, line 15
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 unset on
transmission and MUST be ignored on receipt. transmission and MUST be ignored on receipt.
o sub-TLVs: o sub-TLVs:
* An optional single Weight sub-TLV. * An optional single Weight sub-TLV.
* One or more Segment sub-TLVs. * Zero or more Segment sub-TLVs.
Validation of an explicit path encoded by the Segment List sub-TLV is
completely in the scope of SRTE process as described in section 5 in
([I-D.filsfils-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 The Weight sub-TLV specifies the weight associated to a given
candidate path (i.e.: a given segment list). The contents of this candidate path (i.e., a given segment list). The contents of this
sub-TLV are used only by the SRTE process sub-TLV are used only by the SRTE process as described in section
([I-D.filsfils-spring-segment-routing-policy]). 2.11 in ([I-D.filsfils-spring-segment-routing-policy]).
The Weight sub-TLV is optional, MUST NOT appear more than once inside The Weight sub-TLV is optional, MUST NOT appear more than once inside
the Segment List sub-TLV, and has the following format: the Segment List sub-TLV, and 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 |
skipping to change at page 11, line 46 skipping to change at page 12, line 11
RESERVED: 1 octet of reserved bits. SHOULD be unset on transmission RESERVED: 1 octet of reserved bits. SHOULD be unset on transmission
and MUST be ignored on receipt. and MUST be ignored on receipt.
2.4.3.2. Segment Sub-TLV 2.4.3.2. Segment Sub-TLV
The Segment sub-TLV describes a single segment in a segment list The Segment sub-TLV describes a single segment in a segment list
(i.e., a single element of the explicit path). Multiple Segment sub- (i.e., a single element of the explicit path). Multiple Segment sub-
TLVs constitute an explicit path of the SR Policy. TLVs constitute an explicit path of the SR Policy.
The Segment sub-TLV is mandatory and MAY appear multiple times in the The Segment sub-TLV is optional and MAY appear multiple times in the
Segment List sub-TLV. Segment List sub-TLV.
The Segment sub-TLV does not have any effect on the BGP bestpath The Segment sub-TLV does not have any effect on the BGP bestpath
selection or propagation procedures. The contents of this sub-TLV selection or propagation procedures. The contents of this sub-TLV
are used only by the SRTE process are used only by the SRTE process as described in section 4 in
([I-D.filsfils-spring-segment-routing-policy]). ([I-D.filsfils-spring-segment-routing-policy]).
[I-D.filsfils-spring-segment-routing-policy] defines several types of [I-D.filsfils-spring-segment-routing-policy] defines several types of
Segment Sub-TLVs: Segment Sub-TLVs:
Type 1: SID only, in the form of MPLS Label Type 1: SID only, in the form of MPLS Label
Type 2: SID only, in the form of IPv6 address Type 2: SID only, in the form of IPv6 address
Type 3: IPv4 Node Address with optional SID Type 3: IPv4 Node Address with optional SID
Type 4: IPv6 Node Address with optional SID Type 4: IPv6 Node Address with optional SID
Type 5: IPv4 Address + index with optional SID Type 5: IPv4 Address + index with optional SID
skipping to change at page 21, line 41 skipping to change at page 22, line 9
more labels onto that stack. more labels onto that stack.
The Explicit NULL Label Policy sub-TLV is used to indicate whether an The Explicit NULL Label Policy sub-TLV is used to indicate whether an
Explicit NULL Label [RFC3032] must be pushed on an unlabeled IP Explicit NULL Label [RFC3032] must be pushed on an unlabeled IP
packet before any other labels. packet before any other labels.
If an Explicit NULL Label Policy Sub-TLV is not present, the decision If an Explicit NULL Label Policy Sub-TLV is not present, the decision
of whether to push an Explicit NULL label on a given packet is a of whether to push an Explicit NULL label on a given packet is a
matter of local policy. matter of local policy.
The contents of this sub-TLV are used by the SRTE The contents of this sub-TLV are used by the SRTE process as
process[I-D.filsfils-spring-segment-routing-policy] described in section 4.1 in
[I-D.filsfils-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:
skipping to change at page 24, line 13 skipping to change at page 24, line 32
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 document 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 SRTE NO_ADVERTISE community, the update MUST NOT be sent to the SRTE
process. Furthermore, it SHOULD be considered to be malformed, process. Furthermore, it SHOULD be considered to be malformed,
and the "treat-as-withdraw" strategy of [RFC7606] applied. and the "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 the Tunnel Type set to SR Policy (value to be Update and MUST have a Tunnel Type TLV set to SR Policy (
assigned by IANA). codepoint is 15, assigned by IANA (see Section 8) from the "BGP
Tunnel Encapsulation Attribute Tunnel Types" registry).
o Within the SR Policy NLRI, at least one Segment List sub-TLV MUST
be present.
o Within the Segment List sub-TLV at least one Segment sub-TLV MUST
be present.
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. The
route MUST NOT be passed to the SRTE process, and the "treat-as- route MUST NOT be passed to the SRTE process, and the "treat-as-
withdraw" strategy of [RFC7606]. withdraw" strategy of [RFC7606] is applied.
The Remote Endpoint and Color sub-TLVs, as defined in
[I-D.ietf-idr-tunnel-encaps], MAY also be present in the SR Policy
NLRI encodings. If present, the Remote Endpoint sub-TLV MUST match
the Endpoint of the SR Policy SAFI NLRI. If they don't match, the SR
Policy advertisement MUST be considered as unacceptable. If present,
the Color sub-TLV MUST match the Policy Color of the SR Policy SAFI
NLRI. If they don't match, the SR Policy advertisement MUST be
considered as unacceptable.
A unacceptable SR Policy update that has a valid NLRI portion with A unacceptable SR Policy update that has a valid NLRI portion with
invalid attribute portion MUST be considered as a withdraw of the SR invalid attribute portion MUST be considered as a withdraw of the SR
Policy. 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- If one or more route-targets are present, then at least one route-
target MUST match one of the BGP Identifiers of the receiver in order target MUST match one of the BGP Identifiers of the receiver in order
for the update to be considered usable. The BGP Identifier is for the update to be considered usable. The BGP Identifier is
skipping to change at page 25, line 19 skipping to change at page 25, line 21
the SR Policy NLRI to its neighbors as defined in Section 4.2.4. the SR Policy NLRI to its neighbors as defined in Section 4.2.4.
Usable SR Policy NLRIs are sent to the Segment Routing Traffic Usable SR Policy NLRIs are sent to the Segment Routing Traffic
Engineering (SRTE) process. The description of the SRTE process is Engineering (SRTE) process. The description of the SRTE process is
outside the scope of this document and it's described in outside the scope of this document and it's described in
[I-D.filsfils-spring-segment-routing-policy]. [I-D.filsfils-spring-segment-routing-policy].
4.2.3. Passing a usable SR Policy NLRI to the SRTE Process 4.2.3. Passing a usable SR Policy NLRI to the SRTE Process
Once BGP has determined that the SR Policy NLRI is usable, BGP passes Once BGP has determined that the SR Policy NLRI is usable, BGP passes
the path to the SRTE process the path to the SRTE process described in
([I-D.filsfils-spring-segment-routing-policy]). ([I-D.filsfils-spring-segment-routing-policy]). Note that, along
with the path details, BGP also passes the originator information for
breaking ties in path-selection process as described in section 2.4
in [I-D.filsfils-spring-segment-routing-policy].
The SRTE process applies the rules defined in The SRTE process applies the rules defined in section 2
[I-D.filsfils-spring-segment-routing-policy]to determine whether a [I-D.filsfils-spring-segment-routing-policy] to determine whether a
path is valid and to select the best path among the valid paths. path is valid and to select the best path among the valid paths.
4.2.4. Propagation of an SR Policy 4.2.4. Propagation of an SR Policy
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.
However, a node MAY be explicitly configured to advertise a received However, a node MAY be explicitly configured to advertise a received
SR Policy NLRI to neighbors according to normal BGP rules (i.e., EBGP SR Policy NLRI to neighbors according to normal BGP rules (i.e., EBGP
propagation by an ASBR or iBGP propagation by a Route-Reflector). propagation by an ASBR or iBGP propagation by a Route-Reflector).
skipping to change at page 26, line 13 skipping to change at page 26, line 17
NLRI. NLRI.
5. Contributors 5. Contributors
Arjun Sreekantiah Arjun Sreekantiah
Cisco Systems Cisco Systems
US US
Email: asreekan@cisco.com Email: asreekan@cisco.com
Dhanendra Jain
Cisco Systems
US
Email: dhjain@cisco.com
Acee Lindem Acee Lindem
Cisco Systems Cisco Systems
US US
Email: acee@cisco.com Email: acee@cisco.com
Siva Sivabalan Siva Sivabalan
Cisco Systems Cisco Systems
US US
skipping to change at page 26, line 41 skipping to change at page 26, line 39
Imtiyaz Mohammad Imtiyaz Mohammad
Arista Networks Arista Networks
India India
Email: imtiyaz@arista.com Email: imtiyaz@arista.com
Gaurav Dawra Gaurav Dawra
Cisco Systems Cisco Systems
US US
Email: gdawra@cisco.com Email: gdawra.ietf@gmail.com
6. Acknowledgments 6. Acknowledgments
The authors of this document would like to thank Shyam Sethuram and The authors of this document would like to thank Shyam Sethuram, John
John Scudder for their comments and review of this document. Scudder, Przemyslaw Krol, Alex Bogdanov, Nandan Saha and Ketan
Talaulikar for their comments and review of this document.
7. Implementation Status 7. Implementation Status
Note to RFC Editor: Please remove this section prior to publication, Note to RFC Editor: Please remove this section prior to publication,
as well as the reference to RFC 7942. as well as the reference to RFC 7942.
This section records the status of known implementations of the This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in [RFC7942]. Internet-Draft, and is based on a proposal described in [RFC7942].
The description of implementations in this section is intended to The description of implementations in this section is intended to
skipping to change at page 27, line 30 skipping to change at page 27, line 30
running code, which may serve as evidence of valuable experimentation running code, which may serve as evidence of valuable experimentation
and feedback that have made the implemented protocols more mature. and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as It is up to the individual working groups to use this information as
they see fit". they see fit".
Several early implementations exist and will be reported in detail in Several early implementations exist and will be reported in detail in
a forthcoming version of this document. For purposes of early a forthcoming version of this document. For purposes of early
interoperability testing, when no FCFS code point was available, interoperability testing, when no FCFS code point was available,
implementations have made use of the following values: implementations have made use of the following values:
o Preference sub-TLV: 6 o Preference sub-TLV: 12
o Binding SID sub-TLV: 7 o Binding SID sub-TLV: 13
o Segment List sub-TLV: 128 o Segment List sub-TLV: 128
When IANA-assigned values are available, implementations will be When IANA-assigned values are available, implementations will be
updated to use them. updated to use them.
8. IANA Considerations 8. IANA Considerations
This document defines new Sub-TLVs in following existing registries: This document defines new Sub-TLVs in following existing registries:
skipping to change at page 29, line 27 skipping to change at page 29, line 27
9. Security Considerations 9. Security Considerations
TBD. TBD.
10. References 10. References
10.1. Normative References 10.1. Normative References
[I-D.ietf-idr-tunnel-encaps] [I-D.ietf-idr-tunnel-encaps]
Rosen, E., Patel, K., and G. Velde, "The BGP Tunnel Rosen, E., Patel, K., and G. Velde, "The BGP Tunnel
Encapsulation Attribute", draft-ietf-idr-tunnel-encaps-07 Encapsulation Attribute", draft-ietf-idr-tunnel-encaps-09
(work in progress), July 2017. (work in progress), February 2018.
[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-11 (work in progress), draft-ietf-pce-segment-routing-11 (work in progress),
November 2017. November 2017.
[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,
skipping to change at page 30, line 33 skipping to change at page 30, line 33
[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>.
10.2. Informational References 10.2. Informational References
[I-D.filsfils-spring-segment-routing-policy] [I-D.filsfils-spring-segment-routing-policy]
Filsfils, C., Sivabalan, S., Raza, K., Liste, J., Clad, Filsfils, C., Sivabalan, S., Raza, K., Liste, J., Clad,
F., Hegde, S., Lin, S., bogdanov@google.com, b., F., Talaulikar, K., Ali, Z., Hegde, S.,
Horneffer, M., Steinberg, D., Decraene, B., and S. daniel.voyer@bell.ca, d., Lin, S., bogdanov@google.com,
Litkowski, "Segment Routing Policy for Traffic b., Krol, P., Horneffer, M., Steinberg, D., Decraene, B.,
Engineering", draft-filsfils-spring-segment-routing- Litkowski, S., and P. Mattes, "Segment Routing Policy for
policy-03 (work in progress), October 2017. Traffic Engineering", draft-filsfils-spring-segment-
routing-policy-05 (work in progress), February 2018.
[I-D.ietf-6man-segment-routing-header] [I-D.ietf-6man-segment-routing-header]
Previdi, S., Filsfils, C., Raza, K., Leddy, J., Field, B., Previdi, S., Filsfils, C., Raza, K., Dukes, D., Leddy, J.,
daniel.voyer@bell.ca, d., daniel.bernier@bell.ca, d., Field, B., daniel.voyer@bell.ca, d.,
Matsushima, S., Leung, I., Linkova, J., Aries, E., Kosugi, daniel.bernier@bell.ca, d., Matsushima, S., Leung, I.,
T., Vyncke, E., Lebrun, D., Steinberg, D., and R. Raszuk, Linkova, J., Aries, E., Kosugi, T., Vyncke, E., Lebrun,
"IPv6 Segment Routing Header (SRH)", draft-ietf-6man- D., Steinberg, D., and R. Raszuk, "IPv6 Segment Routing
segment-routing-header-07 (work in progress), July 2017. Header (SRH)", draft-ietf-6man-segment-routing-header-08
(work in progress), January 2018.
[I-D.ietf-idr-flowspec-redirect-ip] [I-D.ietf-idr-flowspec-redirect-ip]
Uttaro, J., Haas, J., Texier, M., Andy, A., Ray, S., Uttaro, J., Haas, J., Texier, M., Andy, A., Ray, S.,
Simpson, A., and W. Henderickx, "BGP Flow-Spec Redirect to Simpson, A., and W. Henderickx, "BGP Flow-Spec Redirect to
IP Action", draft-ietf-idr-flowspec-redirect-ip-02 (work IP Action", draft-ietf-idr-flowspec-redirect-ip-02 (work
in progress), February 2015. in progress), February 2015.
[I-D.ietf-spring-segment-routing] [I-D.ietf-spring-segment-routing]
Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B.,
Litkowski, S., and R. Shakir, "Segment Routing Litkowski, S., and R. Shakir, "Segment Routing
Architecture", draft-ietf-spring-segment-routing-13 (work Architecture", draft-ietf-spring-segment-routing-15 (work
in progress), October 2017. in progress), January 2018.
[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 [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running
Code: The Implementation Status Section", BCP 205, Code: The Implementation Status Section", BCP 205,
RFC 7942, DOI 10.17487/RFC7942, July 2016, RFC 7942, DOI 10.17487/RFC7942, July 2016,
<https://www.rfc-editor.org/info/rfc7942>. <https://www.rfc-editor.org/info/rfc7942>.
skipping to change at page 31, line 36 skipping to change at page 31, line 42
Email: stefano@previdi.net Email: stefano@previdi.net
Clarence Filsfils Clarence Filsfils
Cisco Systems, Inc. Cisco Systems, Inc.
Brussels Brussels
BE BE
Email: cfilsfil@cisco.com Email: cfilsfil@cisco.com
Dhanendra Jain (editor)
Cisco Systems, Inc.
San Jose
USA
Email: dhjain@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
10 Technology Park Drive 10 Technology Park Drive
Westford, MA 01886 Westford, MA 01886
US US
Email: erosen@juniper.net Email: erosen@juniper.net
Steven Lin Steven Lin
Google Google
 End of changes. 42 change blocks. 
88 lines changed or deleted 94 lines changed or added

This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/