draft-ietf-idr-segment-routing-te-policy-09.txt   draft-ietf-idr-segment-routing-te-policy-10.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: November 29, 2020 K. Talaulikar, Ed. Expires: May 6, 2021 K. Talaulikar, Ed.
Cisco Systems Cisco Systems
P. Mattes P. Mattes
Microsoft Microsoft
E. Rosen E. Rosen
Juniper Networks Juniper Networks
D. Jain D. Jain
S. Lin S. Lin
Google Google
May 28, 2020 November 2, 2020
Advertising Segment Routing Policies in BGP Advertising Segment Routing Policies in BGP
draft-ietf-idr-segment-routing-te-policy-09 draft-ietf-idr-segment-routing-te-policy-10
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 (SR) Policy. An SR advertise a candidate path of a Segment Routing (SR) Policy. An SR
Policy is a set of candidate paths, each consisting of one or more Policy is a set of candidate paths, each 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 48 skipping to change at page 1, line 48
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 29, 2020. This Internet-Draft will expire on May 6, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5
2. SR Policy Encoding . . . . . . . . . . . . . . . . . . . . . 5 2. SR Policy Encoding . . . . . . . . . . . . . . . . . . . . . 6
2.1. SR Policy SAFI and NLRI . . . . . . . . . . . . . . . . . 5 2.1. SR Policy SAFI and NLRI . . . . . . . . . . . . . . . . . 6
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 . . . . . . . . . . . . . . . . . . . 9
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 . . . . . . . . . . . . . . . . . 10
2.4.3. Segment List Sub-TLV . . . . . . . . . . . . . . . . 11 2.4.3. SRv6 Binding SID Sub-TLV . . . . . . . . . . . . . . 11
2.4.4. Explicit NULL Label Policy Sub-TLV . . . . . . . . . 24 2.4.4. Segment List Sub-TLV . . . . . . . . . . . . . . . . 13
2.4.5. Policy Priority Sub-TLV . . . . . . . . . . . . . . . 25 2.4.5. Explicit NULL Label Policy Sub-TLV . . . . . . . . . 27
2.4.6. Policy Candidate Path Name Sub-TLV . . . . . . . . . 26 2.4.6. Policy Priority Sub-TLV . . . . . . . . . . . . . . . 29
3. Color Extended Community . . . . . . . . . . . . . . . . . . 27 2.4.7. Policy Candidate Path Name Sub-TLV . . . . . . . . . 30
4. SR Policy Operations . . . . . . . . . . . . . . . . . . . . 27 2.4.8. Policy Name Sub-TLV . . . . . . . . . . . . . . . . . 31
4.1. Advertisement of SR Policies . . . . . . . . . . . . . . 28 3. Color Extended Community . . . . . . . . . . . . . . . . . . 31
4.2. Reception of an SR Policy NLRI . . . . . . . . . . . . . 28 4. SR Policy Operations . . . . . . . . . . . . . . . . . . . . 32
4.2.1. Acceptance of an SR Policy NLRI . . . . . . . . . . . 28 4.1. Advertisement of SR Policies . . . . . . . . . . . . . . 32
4.2.2. Usable SR Policy NLRI . . . . . . . . . . . . . . . . 29 4.2. Reception of an SR Policy NLRI . . . . . . . . . . . . . 32
4.2.3. Passing a usable SR Policy NLRI to the SRPM . . . . . 29 4.2.1. Acceptance of an SR Policy NLRI . . . . . . . . . . . 33
4.2.4. Propagation of an SR Policy . . . . . . . . . . . . . 30 4.2.2. Usable SR Policy NLRI . . . . . . . . . . . . . . . . 33
5. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 30 4.2.3. Passing a usable SR Policy NLRI to the SRPM . . . . . 34
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 4.2.4. Propagation of an SR Policy . . . . . . . . . . . . . 34
5. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 34
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35
6.1. Existing Registry: Subsequent Address Family Identifiers 6.1. Existing Registry: Subsequent Address Family Identifiers
(SAFI) Parameters . . . . . . . . . . . . . . . . . . . . 32 (SAFI) Parameters . . . . . . . . . . . . . . . . . . . . 36
6.2. Existing Registry: BGP Tunnel Encapsulation Attribute 6.2. Existing Registry: BGP Tunnel Encapsulation Attribute
Tunnel Types . . . . . . . . . . . . . . . . . . . . . . 32 Tunnel Types . . . . . . . . . . . . . . . . . . . . . . 36
6.3. Existing Registry: BGP Tunnel Encapsulation Attribute 6.3. Existing Registry: BGP Tunnel Encapsulation Attribute
sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 32 sub-TLVs . . . . . . . . . . . . . . . . . . . . . . . . 36
6.4. New Registry: SR Policy List Sub-TLVs . . . . . . . . . . 32
6.5. New Registry: SR Policy Binding SID Flags . . . . . . . . 33 6.4. Existing Registry: Color Extended Community Flags . . . . 37
6.6. New Registry: SR Policy Segment Flags . . . . . . . . . . 33 6.5. New Registry: SR Policy Segment List Sub-TLVs . . . . . . 37
6.7. New Registry: Color Extended Community Field . . . . . . 34 6.6. New Registry: SR Policy Binding SID Flags . . . . . . . . 38
6.8. Guidance for Designated Experts . . . . . . . . . . . . . 34 6.7. New Registry: SR Policy SRv6 Binding SID Flags . . . . . 38
7. Security Considerations . . . . . . . . . . . . . . . . . . . 34 6.8. New Registry: SR Policy Segment Flags . . . . . . . . . . 39
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 35 6.9. Guidance for Designated Experts . . . . . . . . . . . . . 39
9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 35 7. Security Considerations . . . . . . . . . . . . . . . . . . . 39
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 36 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 40
10.1. Normative References . . . . . . . . . . . . . . . . . . 36 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 40
10.2. Informational References . . . . . . . . . . . . . . . . 37 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 41
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 38 10.1. Normative References . . . . . . . . . . . . . . . . . . 41
10.2. Informational References . . . . . . . . . . . . . . . . 42
Appendix A. Deprecated Segment Sub-TLVs . . . . . . . . . . . . 43
A.1. Type B-Deprecated: SID only, in the form of IPv6 address 43
A.2. Type I-Deprecated: IPv6 Node Address with optional SRv6
SID . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
A.3. Type J-Deprecated: IPv6 Address + Interface ID for local
and remote pair for SRv6 with optional SID . . . . . . . 44
A.4. Type K-Deprecated: IPv6 Local and Remote addresses for
SRv6 with optional SID . . . . . . . . . . . . . . . . . 46
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 46
1. Introduction 1. Introduction
Segment Routing (SR) [RFC8402] allows a headend node to steer a Segment Routing (SR) [RFC8402] allows a headend node to steer a
packet flow along any path. Intermediate per-flow states are packet flow along any path. Intermediate per-flow states are
eliminated thanks to source routing. eliminated thanks to source routing.
The headend node is said to steer a flow into a SR Policy. The headend node is said to steer a flow into a 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 IPv6 (known as SRv6) data plane instantiations of Segment MPLS and IPv6 (known as SRv6) data plane instantiations of Segment
Routing with their respective representations of segments as SR-MPLS Routing with their respective representations of segments as SR-MPLS
SID and SRv6 SID as described in [RFC8402]. SID and SRv6 SID as described in [RFC8402].
[I-D.filsfils-spring-sr-policy-considerations] describes some of the The SR Policy related functionality described in
implementation aspects of the SR Policy Headend Architecture and [I-D.ietf-spring-segment-routing-policy] can be conceptually viewed
introduces the notion of an SR Policy Module (SRPM) that performs the as being incorporated in an SR Policy Module (SRPM). Following is a
functionality as highlighted in section 2 of reminder of the high-level functionality of SRPM:
[I-D.ietf-spring-segment-routing-policy]:
o The SRPM may learn multiple candidate paths for an SR Policy via o Learning multiple candidate paths for an SR Policy via various
various mechanisms (CLI, NetConf, PCEP or BGP). mechanisms (CLI, NetConf, PCEP or BGP).
o The SRPM selects the best candidate path for the SR Policy. o Selection of the best candidate path for an SR Policy.
o The SRPM binds a BSID to the selected candidate path of the SR o Binding BSID to the selected candidate path of an SR Policy.
Policy.
o The SRPM installs the selected candidate path and its BSID in the o Installation of 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 describes the functionality that resides in the BGP The document describes the functionality that provided by BGP and, as
process and, as appropriate, provides references for the appropriate, provides references for the functionality which is
functionality which is outside the scope of BGP (i.e. resides within outside the scope of BGP (i.e. resides within SRPM on the headend
SRPM on the headend node). node).
This document specifies a way of representing SR Policy candidate This document specifies a way of representing SR Policy candidate
paths in BGP UPDATE messages. BGP can then be used to propagate the paths in BGP UPDATE messages. BGP can then be used to propagate the
SR Policy candidate paths to the headend nodes in the network. The SR Policy candidate paths to the headend nodes in the network. The
usual BGP rules for BGP propagation and "bestpath selection" are usual BGP rules for BGP propagation and "bestpath selection" are
used. At the headend of a specific policy, this will result in one used. At the headend of a specific policy, this will result in one
or more candidate paths being installed into the "BGP table". These or more candidate paths being installed into the "BGP table". These
paths are then passed to the SRPM. The SRPM may compare them to paths are then passed to the SRPM. The SRPM may compare them to
candidate paths learned via other mechanisms, and will choose one or candidate paths learned via other mechanisms, and will choose one or
more paths to be installed in the data plane. BGP itself does not more paths to be installed in the data plane. BGP itself does not
skipping to change at page 5, line 14 skipping to change at page 5, line 23
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
identifies an SR Policy. identifies an SR Policy candidate path.
o A new Tunnel Type identifier for SR Policy, and a set of sub-TLVs o A new Tunnel Type identifier for SR Policy, and a set of sub-TLVs
to be inserted into the Tunnel Encapsulation Attribute (as defined to be inserted into the Tunnel Encapsulation Attribute (as defined
in [I-D.ietf-idr-tunnel-encaps]) specifying segment lists of the in [I-D.ietf-idr-tunnel-encaps]) specifying segment lists of the
SR Policy, as well as other information about the SR Policy. SR Policy candidate path, as well as other information 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 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
skipping to change at page 6, line 41 skipping to change at page 6, line 50
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 candidate path is carried in a BGP
[RFC4271] using BGP multiprotocol extensions [RFC4760] with an AFI of UPDATE message [RFC4271] using BGP multiprotocol extensions [RFC4760]
1 or 2 (IPv4 or IPv6) and with a SAFI of 73. with an AFI of 1 or 2 (IPv4 or IPv6) and with a SAFI of 73.
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
skipping to change at page 7, line 40 skipping to change at page 7, line 49
o From the Route Origin Community [RFC4360] if present and carrying o From the Route Origin Community [RFC4360] if present and carrying
an IP Address an IP Address
o As the BGP Originator ID [RFC4456] if present o As the BGP Originator ID [RFC4456] if present
o As the BGP Router-ID of the peer from which the update was o As the BGP Router-ID of the peer from which the update was
received as a last resort. received as a last resort.
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 Candidate Path is encoded in the Tunnel
Attribute defined in [I-D.ietf-idr-tunnel-encaps] using a new Tunnel- Encapsulation Attribute defined in [I-D.ietf-idr-tunnel-encaps] using
Type called SR Policy Type with codepoint 15. a new Tunnel-Type called SR Policy Type with codepoint 15.
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
SRv6 Binding SID
Preference Preference
Priority Priority
Policy Name Policy Name
Policy Candidate Path Name
Explicit NULL Label Policy (ENLP) Explicit NULL Label Policy (ENLP)
Segment List Segment List
Weight Weight
Segment Segment
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. o Tunnel-Type is set to 15.
o Preference, Binding SID, Priority, Policy Name, ENLP, Segment- o Preference, Binding SID, SRv6 Binding SID, Priority, Policy Name,
List, Weight and Segment sub-TLVs are defined in this document. Policy Candidate Path Name, ENLP, Segment-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". of type "SR Policy".
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
skipping to change at page 9, line 8 skipping to change at page 9, line 8
The Remote Endpoint and Color Sub-TLVs of the Tunnel Encapsulation The Remote Endpoint and Color Sub-TLVs of the Tunnel Encapsulation
Attribute are not used for SR Policy encodings and therefore their Attribute are not used for SR Policy encodings and therefore their
value is irrelevant in the context of the SR Policy SAFI NLRI. If value is irrelevant in the context of the SR Policy SAFI NLRI. If
present, the Remote Endpoint sub-TLV and the Color sub-TLV MUST be present, the Remote Endpoint sub-TLV and the Color sub-TLV MUST be
ignored by the BGP speaker. ignored by the BGP speaker.
2.4. SR Policy Sub-TLVs 2.4. SR Policy Sub-TLVs
This section specifies the sub-TLVs defined for encoding the This section specifies the sub-TLVs defined for encoding the
information about the SR Policy. information about the SR Policy Candidate Path.
Preference, Binding SID, Segment-List, Priority, Policy Name and Preference, Binding SID, SRv6 Binding SID, Segment-List, Priority,
Explicit NULL Label Policy are the new sub-TLVs of the BGP Tunnel Policy Name, Policy Candidate Path Name and Explicit NULL Label
Encapsulation Attribute [I-D.ietf-idr-tunnel-encaps] being defined in Policy are the new sub-TLVs of the BGP Tunnel Encapsulation Attribute
this section. [I-D.ietf-idr-tunnel-encaps] being defined in this section.
Weight and Segment are sub-TLVs of the new Segment-List sub-TLV Weight and Segment are sub-TLVs of the new Segment-List sub-TLV
mentioned above. mentioned above.
None of the sub-TLVs defined in the following sub-sections have any None of the sub-TLVs defined in the following sub-sections have any
effect on the BGP bestpath selection or propagation procedures. effect on the BGP bestpath selection or propagation procedures.
These sub-TLVs are not used by BGP and are instead passed on to SRPM These sub-TLVs are not used by BGP and are instead passed on to SRPM
as SR Policy Candidate Path information for further processing as SR Policy Candidate Path information for further processing
described in [I-D.ietf-spring-segment-routing-policy] . 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 is used to carry the preference of the SR The Preference sub-TLV is used to carry the preference of the SR
Policy candidate path. The contents of this sub-TLV are used by the Policy candidate path. The contents of this sub-TLV 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. once in the SR Policy encoding.
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 18 skipping to change at page 10, line 18
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 used to signal the binding SID related The Binding SID sub-TLV is used to signal the binding SID related
information of the SR Policy candidate path. The contents of this 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. once in the SR Policy encoding.
When the Binding SID sub-TLV is used to signal an SRv6 SID, the
choice of its SRv6 Endpoint Behavior
[I-D.ietf-spring-srv6-network-programming] to be instantiated is left
to the headend node. It is RECOMMENDED that the SRv6 Binding SID
sub-TLV defined in Section 2.4.3, that enables the specification of
the SRv6 Endpoint Behavior, be used for signaling of an SRv6 Binding
SID for an SR Policy candidate path.
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 in the new o Flags: 1 octet of flags. Following flags are defined in the new
registry "SR Policy Binding SID Flags" as described in registry "SR Policy Binding SID Flags" as described in
Section 6.5: Section 6.6:
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].
skipping to change at page 11, line 28 skipping to change at page 11, line 33
SHOULD be set to zero and MUST be ignored. 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 SRv6 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. SRv6 Binding SID Sub-TLV
The SRv6 Binding SID sub-TLV is used to signal the SRv6 Binding SID
related information of the SR Policy candidate path. It enables the
specification of the SRv6 Endpoint Behavior
[I-D.ietf-spring-srv6-network-programming] to be instantiated on the
headend node. The contents of this sub-TLV are used by the SRPM as
described in section 6 in [I-D.ietf-spring-segment-routing-policy].
The SRv6 Binding SID sub-TLV is optional. More than one SRv6 Binding
SIDs MAY be signalled in the same SR Policy encoding to indicate one
or more SRv6 SIDs, each with potentially different SRv6 Endpoint
Behaviors to be instantiated.
The SRv6 Binding SID sub-TLV has the following format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SRv6 Binding SID (16 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 Endpoint Behavior and SID Structure (optional) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:
o Type: TBD
o Length is variable
o Flags: 1 octet of flags. Following flags are defined in the new
registry "SR Policy Binding SID Flags" as described in
Section 6.7:
0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|S|I|B| |
+-+-+-+-+-+-+-+-+
where:
* S-Flag: This flag encodes the "Specified-BSID-only" behavior.
It is used by SRPM as described in section 6.2.3 in
[I-D.ietf-spring-segment-routing-policy].
* I-Flag: This flag encodes the "Drop Upon Invalid" behavior. It
is used by SRPM as described in section 8.2 in
[I-D.ietf-spring-segment-routing-policy].
* B-Flag: This flag, when set, indicates the presence of the SRv6
Endpoint Behavior and SID Structure encoding specified in
Section 2.4.4.2.13.
* Unused bits in the Flag octet SHOULD be set to zero upon
transmission and MUST be ignored upon receipt.
o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt.
o SRv6 Binding SID: Contains a 16-octet SRv6 SID.
o SRv6 Endpoint Behavior and SID Structure: Optional, as defined in
Section 2.4.4.2.13.
2.4.4. 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.
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 encoding. The ordering of Segment List sub-TLVs, each
encoding a Segment List, does not matter. sub-TLV 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:
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 |
skipping to change at page 12, line 33 skipping to change at page 14, line 11
o sub-TLVs currently defined: 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
beyond the scope of BGP and performed by the SRPM as described in beyond the scope of BGP and performed by the SRPM as described in
section 5 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.4.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. inside the Segment List sub-TLV.
The Weight sub-TLV has the following format: The Weight sub-TLV has the following format:
skipping to change at page 13, line 26 skipping to change at page 14, line 44
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 set to zero 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.
2.4.3.2. Segment Sub-TLVs 2.4.4.2. Segment Sub-TLVs
A Segment sub-TLV describes a single segment in a segment list (i.e., A Segment sub-TLV describes a single segment in a segment list (i.e.,
a single element of the explicit path). One or more Segment sub-TLVs a single element of the explicit path). One or more Segment sub-TLVs
constitute an explicit path of the SR Policy. The contents of these constitute an explicit path of the SR Policy candidate path. The
sub-TLVs are used only by the SRPM as described in section 4 in contents of these sub-TLVs are used only by the SRPM as described in
[I-D.ietf-spring-segment-routing-policy]. section 4 in [I-D.ietf-spring-segment-routing-policy].
The Segment sub-TLVs are optional and MAY appear multiple times in The Segment sub-TLVs are optional and MAY appear multiple times in
the Segment List sub-TLV. the Segment List sub-TLV.
[I-D.ietf-spring-segment-routing-policy] defines several Segment [I-D.ietf-spring-segment-routing-policy] defines several Segment
Types: Types:
Type A: SID only, in the form of MPLS Label Type A: SID only, in the form of MPLS Label
Type B: SID only, in the form of IPv6 address Type B: SID only, in the form of IPv6 address
Type C: IPv4 Node Address with optional SID Type C: IPv4 Node Address with optional SID
skipping to change at page 14, line 4 skipping to change at page 15, line 24
Type D: IPv6 Node Address with optional SID for SR MPLS Type D: IPv6 Node Address with optional SID for SR MPLS
Type E: IPv4 Address and index with optional SID Type E: IPv4 Address and index with optional SID
Type F: IPv4 Local and Remote addresses 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 Type G: IPv6 Address and index for local and remote pair with optional
SID for SR MPLS SID for SR MPLS
Type H: IPv6 Local and Remote addresses 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 I: IPv6 Node Address with optional SID for SRv6
Type J: IPv6 Address and index for local and remote pair with optional Type J: IPv6 Address and index for local and remote pair with optional
SID for SRv6 SID for SRv6
Type K: IPv6 Local and Remote addresses for SRv6 Type K: IPv6 Local and Remote addresses for SRv6
The follow sub-sections specify the sub-TLV used for encoding each of The follow sub-sections specify the sub-TLV used for encoding each of
these Segment Types. these Segment Types.
2.4.3.2.1. Type A: SID only, in the form of MPLS Label 2.4.4.2.1. Type A: SID only, in the form of MPLS Label
The Type A Segment Sub-TLV encodes a single SR-MPLS SID. The format The Type A Segment Sub-TLV encodes a single SR-MPLS SID. 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. o Type: 1.
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.4.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be set to zero 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.
skipping to change at page 15, line 10 skipping to change at page 16, line 32
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 B: SID only, in the form of IPv6 address 2.4.4.2.2. Type B: SID only, in the form of IPv6 address
The Type B Segment Sub-TLV encodes a single SRv6 SID. The format is The Type B Segment Sub-TLV encodes a single SRv6 SID. 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) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 Endpoint Behavior and SID Structure (optional) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 2. o Type: 13.
o Length is 18. o Length is variable.
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.4.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be set to zero 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.
2.4.3.2.3. Type C: IPv4 Node Address with optional SID o SRv6 Endpoint Behavior and SID Structure: Optional, as defined in
Section 2.4.4.2.13.
The TLV 2 defined for advertisement of Segment Type B in the earlier
versions of this document has been deprecated to avoid backward
compatibility issues (refer Appendix A for details).
2.4.4.2.3. Type C: IPv4 Node Address with optional SID
The Type C 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 SR-MPLS SID. The format is as follows: and an optional SR-MPLS 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 | SR Algorithm | | Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Node Address (4 octets) | | IPv4 Node Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 3. o Type: 3.
o Length is 10 when the SR-MPLS SID is present else is 6. 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.4.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 [RFC8402], when A-Flag as defined in section 3.1.1 in [RFC8402], when A-Flag as defined in
Section 2.4.3.2.12 is present. SR Algorithm is used by SRPM as Section 2.4.4.2.12 is present. SR Algorithm is used by 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 set to zero on transmission and MUST encoded, this field SHOULD be set to zero on transmission and MUST
be 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 SR-MPLS SID: optional, 4 octet field containing label, TC, S and o SR-MPLS SID: optional, 4 octet field containing label, TC, S and
TTL as defined in Section 2.4.3.2.1. TTL as defined in Section 2.4.4.2.1.
2.4.3.2.4. Type D: IPv6 Node Address with optional SID for SR MPLS 2.4.4.2.4. Type D: IPv6 Node Address with optional SID for SR MPLS
The Type D 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 SR-MPLS SID. The format is as follows: and an optional SR-MPLS 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 | SR Algorithm | | Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Node Address (16 octets) // // IPv6 Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 4 o Type: 4
o Length is 22 when the SR-MPLS SID is present else is 18. 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.4.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 [RFC8402], when A-Flag as defined in section 3.1.1 in [RFC8402], when A-Flag as defined in
Section 2.4.3.2.12 is present. SR Algorithm is used by SRPM as Section 2.4.4.2.12 is present. SR Algorithm is used by 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 set to zero on transmission and MUST encoded, this field SHOULD be set to zero on transmission and MUST
be 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 SR-MPLS SID: optional, 4 octet field containing label, TC, S and o SR-MPLS SID: optional, 4 octet field containing label, TC, S and
TTL as defined in Section 2.4.3.2.1. TTL as defined in Section 2.4.4.2.1.
2.4.3.2.5. Type E: IPv4 Address + Local Interface ID with optional SID 2.4.4.2.5. Type E: IPv4 Address + Local Interface ID with optional SID
The Type E 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 SR-MPLS interface Identifier (Local Interface ID) and an optional SR-MPLS
SID. 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 17, line 36 skipping to change at page 19, line 23
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 5. o Type: 5.
o Length is 14 when the SR-MPLS SID is present else is 10. 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.4.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be set to zero 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
[RFC8664]. [RFC8664].
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 SR-MPLS SID: optional, 4 octet field containing label, TC, S and o SR-MPLS SID: optional, 4 octet field containing label, TC, S and
TTL as defined in Section 2.4.3.2.1. TTL as defined in Section 2.4.4.2.1.
2.4.3.2.6. Type F: IPv4 Local and Remote addresses with optional SID 2.4.4.2.6. Type F: IPv4 Local and Remote addresses with optional SID
The Type F 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 SR-MPLS SID. The format is adjacency remote address and an optional SR-MPLS SID. 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 18, line 29 skipping to change at page 20, line 23
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 6. o Type: 6.
o Length is 14 when the SR-MPLS SID is present else is 10. 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.4.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be set to zero 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 SR-MPLS SID: optional, 4 octet field containing label, TC, S and o SR-MPLS SID: optional, 4 octet field containing label, TC, S and
TTL as defined in Section 2.4.3.2.1. TTL as defined in Section 2.4.4.2.1.
2.4.3.2.7. Type G: IPv6 Address + Interface ID for local and remote 2.4.4.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 G 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 SR-MPLS SID. The identifier (Remote Interface ID) and an optional SR-MPLS SID. 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
skipping to change at page 19, line 27 skipping to change at page 21, line 27
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 7 o Type: 7
o Length is 46 when the SR-MPLS SID is present else is 42. 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.4.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be set to zero 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
[RFC8664]. [RFC8664].
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
[RFC8664]. The value MAY be set to zero when the local node [RFC8664]. The value MAY be set to zero when the local node
address and interface identifiers are sufficient to describe the address and interface identifiers are sufficient to describe the
link. link.
o IPv6 Remote Node Address: a 16 octet IPv6 address. The value MAY o IPv6 Remote Node Address: a 16 octet IPv6 address. The value MAY
be set to zero when the local node address and interface be set to zero when the local node address and interface
identifiers are sufficient to describe the link. identifiers are sufficient to describe the link.
o SR-MPLS SID: optional, 4 octet field containing label, TC, S and o SR-MPLS SID: optional, 4 octet field containing label, TC, S and
TTL as defined in Section 2.4.3.2.1. TTL as defined in Section 2.4.4.2.1.
2.4.3.2.8. Type H: IPv6 Local and Remote addresses with optional SID 2.4.4.2.8. Type H: IPv6 Local and Remote addresses with optional SID
for SR MPLS for SR MPLS
The Type H 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 SR-MPLS SID. The format is adjacency remote address and an optional SR-MPLS SID. 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 |
skipping to change at page 20, line 30 skipping to change at page 22, line 30
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 8 o Type: 8
o Length is 38 when the SR-MPLS SID is present else is 34. 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.4.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be set to zero 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 SR-MPLS SID: optional, 4 octet field containing label, TC, S and o SR-MPLS SID: optional, 4 octet field containing label, TC, S and
TTL as defined in Section 2.4.3.2.1. TTL as defined in Section 2.4.4.2.1.
2.4.3.2.9. Type I: IPv6 Node Address with optional SRv6 SID 2.4.4.2.9. Type I: IPv6 Node Address with optional SRv6 SID
The Type I 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 SRv6 SID. The format is as follows: and an optional SRv6 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 | SR Algorithm | | Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Node Address (16 octets) // // IPv6 Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (optional, 16 octets) // // SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 Endpoint Behavior and SID Structure (optional) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 10 o Type: 14
o Length is 34 when the SRv6 SID is present else is 18. o Length is variable.
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.4.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 [RFC8402], when A-Flag as defined in section 3.1.1 in [RFC8402], when A-Flag as defined in
Section 2.4.3.2.12 is present. SR Algorithm is used by SRPM as Section 2.4.4.2.12 is present. SR Algorithm is used by 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 set to zero on transmission and MUST encoded, this field SHOULD be set to zero on transmission and MUST
be 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 SRv6 SID: optional, 16 octet IPv6 address. o SRv6 SID: optional, 16 octet IPv6 address.
2.4.3.2.10. Type J: IPv6 Address + Interface ID for local and remote o SRv6 Endpoint Behavior and SID Structure: Optional, as defined in
Section 2.4.4.2.13.
The TLV 10 defined for advertisement of Segment Type I in the earlier
versions of this document has been deprecated to avoid backward
compatibility issues (refer Appendix A for details).
2.4.4.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 J 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 SRv6 SID. The format is as follows: Interface ID) and an optional SRv6 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 | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 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) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (optional, 16 octets) // // SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 Endpoint Behavior and SID Structure (optional) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 11. o Type: 15
o Length is 58 when the SRv6 SID is present else is 42. o Length is variable.
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.4.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on o SR Algorithm: 1 octet specifying SR Algorithm as described in
transmission and MUST be ignored on receipt. section 3.1.1 in [RFC8402], when A-Flag as defined in
Section 2.4.4.2.12 is present. SR Algorithm is used by SRPM as
described in section 4 in
[I-D.ietf-spring-segment-routing-policy]. When A-Flag is not
encoded, this field SHOULD be set to zero on 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
[RFC8664]. [RFC8664].
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
[RFC8664]. The value MAY be set to zero when the local node [RFC8664]. The value MAY be set to zero when the local node
address and interface identifiers are sufficient to describe the address and interface identifiers are sufficient to describe the
link. link.
o IPv6 Remote Node Address: a 16 octet IPv6 address. The value MAY o IPv6 Remote Node Address: a 16 octet IPv6 address. The value MAY
be set to zero when the local node address and interface be set to zero when the local node address and interface
identifiers are sufficient to describe the link. identifiers are sufficient to describe the link.
o SRv6 SID: optional, 16 octet IPv6 address. o SRv6 SID: optional, 16 octet IPv6 address.
2.4.3.2.11. Type K: IPv6 Local and Remote addresses for SRv6 with o SRv6 Endpoint Behavior and SID Structure: Optional, as defined in
Section 2.4.4.2.13.
The TLV 11 defined for advertisement of Segment Type J in the earlier
versions of this document has been deprecated to avoid backward
compatibility issues (refer Appendix A for details).
2.4.4.2.11. Type K: IPv6 Local and Remote addresses for SRv6 with
optional SID optional SID
The Type K 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 SRv6 SID. The format is as adjacency remote address 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 | RESERVED | | Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Local IPv6 Address (16 octets) // // Local IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Remote IPv6 Address (16 octets) // // Remote IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (optional, 16 octets) // // SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 Endpoint Behavior and SID Structure (optional) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
o Type: 12 . o Type: 16
o Length is 50 when the SRv6 SID is present else is 34. o Length is variable.
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.4.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on o SR Algorithm: 1 octet specifying SR Algorithm as described in
transmission and MUST be ignored on receipt. section 3.1.1 in [RFC8402], when A-Flag as defined in
Section 2.4.4.2.12 is present. SR Algorithm is used by SRPM as
described in section 4 in
[I-D.ietf-spring-segment-routing-policy]. When A-Flag is not
encoded, this field SHOULD be set to zero on 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 SRv6 SID: optional, 16 octet IPv6 address. o SRv6 SID: optional, 16 octet IPv6 address.
2.4.3.2.12. Segment Flags o SRv6 Endpoint Behavior and SID Structure: Optional, as defined in
Section 2.4.4.2.13.
The TLV 12 defined for advertisement of Segment Type K in the earlier
versions of this document has been deprecated to avoid backward
compatibility issues (refer Appendix A for details).
2.4.4.2.12. Segment Flags
The Segment Types sub-TLVs described above MAY contain following The Segment Types sub-TLVs described above MAY contain following
flags in the "Flags" field defined in Section 6.6: flags in the "Flags" field defined in Section 6.8:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|V|A| | |V|A|S|B| |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
where: where:
V-Flag: This flag is used by SRPM for the purpose of "SID V-Flag: This flag, when set, is used by SRPM for the purpose of
verification" as described in Section 5.1 in "SID verification" as described in Section 5.1 in
[I-D.ietf-spring-segment-routing-policy]. [I-D.ietf-spring-segment-routing-policy].
A-Flag: This flag indicates the presence of SR Algorithm id in the A-Flag: This flag, when set, indicates the presence of SR
"SR Algorithm" field applicable to various Segment Types. SR Algorithm id in the "SR Algorithm" field applicable to various
Algorithm is used by SRPM as described in section 4 in Segment Types. SR Algorithm is used by SRPM as described in
[I-D.ietf-spring-segment-routing-policy]. section 4 in [I-D.ietf-spring-segment-routing-policy].
S-Flag: This flag, when set, indicates the presence of the SR-MPLS
or SRv6 SID depending on the segment type.
B-Flag: This flag, when set, indicates the presence of the SRv6
Endpoint Behavior and SID Structure encoding specified in
Section 2.4.4.2.13.
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.
The following applies to the Segment Flags: The following applies to the Segment Flags:
o V-Flag is applicable to all Segment Types. o V-Flag is applicable to all Segment Types.
o A-Flag is applicable to Segment Types 3, 4 and 9. If A-Flag o A-Flag is applicable to Segment Types C, D, I, J and K. If A-Flag
appears with any other Segment Type, it MUST be ignored. appears with Segment Types A, B, E, F, G and H, it MUST be
ignored.
2.4.4. Explicit NULL Label Policy Sub-TLV o S-Flag is applicable to Segment Types C, D, E, F, G, H, I, J and
K. If S-Flag appears with Segment Types A or B, it MUST be
ignored.
o B-Flag is applicable to Segment Types B, I, J and K. If B-Flag
appears with Segment Types A, C, D, E, F, G and H, it MUST be
ignored.
2.4.4.2.13. SRv6 SID Endpoint Behavior and Structure
The Segment Types sub-TLVs described above MAY contain the SRv6
Endpoint Behavior and SID Structure
[I-D.ietf-spring-srv6-network-programming] encoding as described
below:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Endpoint Behavior | LB Length | LN Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Fun. Length | Arg. Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:
Endpoint Behavior: 2 octets. The SRv6 Endpoint Behavior code
point for this SRv6 SID as defined in section 9.2 of
[I-D.ietf-spring-srv6-network-programming]. When set with the
value 0, the choice of SRv6 Endpoint Behavior is left to the
headend.
LB Length: 1 octet. SRv6 SID Locator Block length in bits.
LN Length: 1 octet. SRv6 SID Locator Node length in bits.
Function Length: 1 octet. SRv6 SID Function length in bits.
Argument Length: 1 octet. SRv6 SID Arguments length in bits.
2.4.5. Explicit NULL Label Policy Sub-TLV
In order to steer an unlabeled IP packet into an SR policy, it is In order to steer an unlabeled IP packet into an SR policy, it is
necessary to create a label stack for that packet, and to push one or necessary to create a label stack for that packet, and to push one or
more labels onto that stack. more labels onto that stack.
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. the SR Policy encoding.
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 |
skipping to change at page 25, line 46 skipping to change at page 29, line 24
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 behavior 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.6. 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 contents of this sub-TLV are used by the SRPM as described in
section 2.11 in [I-D.ietf-spring-segment-routing-policy]. 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. once in the SR Policy encoding.
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: 15 Type: 15
Length: 2. Length: 2.
Priority: a 1-octet value. Priority: a 1-octet value.
RESERVED: 1 octet of reserved bits. SHOULD be set to zero 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 Candidate Path Name Sub-TLV 2.4.7. Policy Candidate Path Name Sub-TLV
An operator MAY set the Policy Candidate Path Name sub-TLV to attach An operator MAY set the Policy Candidate Path Name sub-TLV to attach
a symbolic name to the SR Policy candidate path. a symbolic name to the SR Policy candidate path.
Usage of Policy Candidate Path Name sub-TLV is described in section Usage of Policy Candidate Path Name sub-TLV is described in section
2.6 in [I-D.ietf-spring-segment-routing-policy]. 2.6 in [I-D.ietf-spring-segment-routing-policy].
The Policy Candidate Path Name sub-TLV may exceed 255 bytes length The Policy Candidate Path Name sub-TLV may exceed 255 bytes length
due to long policy name. Therefore a 2-octet length is required. due to long name. Therefore a 2-octet length is required. According
According to [I-D.ietf-idr-tunnel-encaps], the first bit of the sub- to [I-D.ietf-idr-tunnel-encaps], the first bit of the sub-TLV
TLV codepoint defines the size of the length field. Therefore, for codepoint defines the size of the length field. Therefore, for the
the Policy Candidate Path Name sub-TLV a code point of 128 or higher Policy Candidate Path Name sub-TLV a code point of 128 or higher is
is used. used.
It is RECOMMENDED that the size of the symbolic name be limited to It is RECOMMENDED that the size of the symbolic name be limited to
255 bytes. Implementations MAY choose to truncate long names to 255 255 bytes. Implementations MAY choose to truncate long names to 255
bytes when signaling via BGP. bytes when signaling via BGP.
The Policy Candidate Path Name sub-TLV is optional and it MUST NOT The Policy Candidate Path Name sub-TLV is optional and it MUST NOT
appear more than once in the SR Policy TLV. appear more than once in the SR Policy encoding.
The Policy Candidate Path Name sub-TLV has following format: The Policy Candidate Path 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 Candidate Path Name // // Policy Candidate Path Name //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 27, line 26 skipping to change at page 31, line 5
Length: Variable. Length: Variable.
RESERVED: 1 octet of reserved bits. SHOULD be set to zero 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 Candidate Path Name: Symbolic name for the SR Policy Policy Candidate Path Name: Symbolic name for the SR Policy
candidate path without a NULL terminator as specified in section candidate path without a NULL terminator as specified in section
2.6 of [I-D.ietf-spring-segment-routing-policy]. 2.6 of [I-D.ietf-spring-segment-routing-policy].
2.4.8. Policy Name Sub-TLV
An operator MAY set the Policy Name sub-TLV to associate a symbolic
name with the SR Policy for which the candidate path is being
advertised via the SR Policy NLRI.
Usage of Policy Name sub-TLV is described in section 2.1 of
[I-D.ietf-spring-segment-routing-policy].
The Policy Name sub-TLV may exceed 255 bytes length due to long
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
defines the size of the length field. Therefore, for the Policy Name
sub-TLV a code point of 128 or higher is used.
The Policy Name sub-TLV is optional and it MUST NOT appear more than
once in the SR Policy encoding.
The Policy Name sub-TLV has following format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Policy Name //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where:
Type: TBD
Length: Variable.
RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt.
Policy Name: Symbolic name for the policy. It SHOULD be a string
of printable ASCII characters, without a NULL terminator.
3. Color Extended 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, two bits from the RESERVED field (as the traffic into an SR Policy, two bits from the Flags field (as
defined in [I-D.ietf-idr-tunnel-encaps]) are used as follows: defined in [I-D.ietf-idr-tunnel-encaps]) are 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, BGP is not the actual consumer of an
not the BGP process. The BGP process is in charge of the origination SR Policy NLRI. BGP is in charge of the origination and propagation
and propagation of the SR Policy NLRI but its installation and use is of the SR Policy NLRI but its installation and use is outside the
outside the scope of BGP. The details of SR Policy installation and scope of BGP. The details of SR Policy installation and use are
use are specified in [I-D.ietf-spring-segment-routing-policy]. specified in [I-D.ietf-spring-segment-routing-policy].
4.1. Advertisement of SR Policies 4.1. Advertisement of SR Policies
Typically, but not limited to, an SR Policy is computed by a Typically, but not limited to, an SR Policy is computed by a
controller or a path computation engine (PCE) and originated by a BGP controller or a path computation engine (PCE) and originated by a BGP
speaker on its behalf. 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 for 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 allows 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 update.
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 first determines if On reception of an SR Policy NLRI, a BGP speaker first determines if
it is acceptable and then 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 MUST When a BGP speaker receives an SR Policy NLRI from a neighbor it MUST
first determine if it's acceptable. The following rules apply: first determine if it's acceptable. The following rules apply in
addition to the validation described in Section 5:
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 or both. If a router supporting this specification format or both. If a router supporting this specification
receives an SR Policy update with no route-target extended receives an SR Policy update with no route-target extended
skipping to change at page 31, line 37 skipping to change at page 36, line 8
following existing registries: following existing registries:
o Subsequent Address Family Identifiers (SAFI) Parameters registry o Subsequent Address Family Identifiers (SAFI) Parameters registry
o BGP Tunnel Encapsulation Attribute Tunnel Types registry under the o BGP Tunnel Encapsulation Attribute Tunnel Types registry under the
BGP Parameters registry BGP Parameters registry
o BGP Tunnel Encapsulation Attribute sub-TLVs registry under the BGP o BGP Tunnel Encapsulation Attribute sub-TLVs registry under the BGP
Parameters registry Parameters registry
o Color Extended Community Flags registry under the BGP Extended
Communities registry
This document also requests creation of the following new registries: This document also requests creation of the following new registries:
o SR Policy List Sub-TLVs under the BGP Parameters registry o SR Policy Segment List Sub-TLVs under the BGP Parameters registry
o SR Policy Binding SID Flags under the BGP Parameters registry o SR Policy Binding SID Flags under the BGP Parameters registry
o SR Policy Segment Flags under the BGP Parameters registry o SR Policy Segment Flags under the BGP Parameters registry
o Color Extended Community Field under the BGP Extended Communities
registry
6.1. Existing Registry: Subsequent Address Family Identifiers (SAFI) 6.1. Existing Registry: Subsequent Address Family Identifiers (SAFI)
Parameters Parameters
This document defines a new SAFI in the registry "Subsequent Address This document defines a new SAFI in the registry "Subsequent Address
Family Identifiers (SAFI) Parameters" that has been assigned a Family Identifiers (SAFI) Parameters" that has been assigned a
codepoint by IANA as follows: codepoint by IANA as follows:
Codepoint Description Reference Codepoint Description Reference
----------------------------------------------- -----------------------------------------------
73 SR Policy SAFI This document 73 SR Policy SAFI This document
skipping to change at page 32, line 36 skipping to change at page 37, line 9
6.3. Existing Registry: BGP Tunnel Encapsulation Attribute sub-TLVs 6.3. Existing Registry: BGP Tunnel Encapsulation Attribute sub-TLVs
This document defines new sub-TLVs in the registry "BGP Tunnel This document defines new sub-TLVs in the registry "BGP Tunnel
Encapsulation Attribute sub-TLVs" that has been assigned codepoints Encapsulation Attribute sub-TLVs" that has been assigned codepoints
by IANA as follows: by IANA as follows:
Codepoint Description Reference Codepoint Description Reference
------------------------------------------------------ ------------------------------------------------------
12 Preference sub-TLV This document 12 Preference sub-TLV This document
13 Binding SID sub-TLV This document 13 Binding SID sub-TLV This document
128 Segment List sub-TLV This document
14 ENLP sub-TLV This document 14 ENLP sub-TLV This document
15 Priority sub-TLV This document 15 Priority sub-TLV This document
TBD SRv6 Binding SID sub-TLV This document
128 Segment List sub-TLV This document
129 Policy CP Name sub-TLV This document 129 Policy CP Name sub-TLV This document
TBD Policy Name sub-TLV This document
6.4. New Registry: SR Policy List Sub-TLVs 6.4. Existing Registry: Color Extended Community Flags
This document requests allocations in the registry called "Color
Extended Community Flags" under the "BGP Tunnel Encapsulation
Parameters" grouping.
Following bits are to be allocated:
Bit
Position Description Reference
------------------------------------------------------------------
0-1 Color-only bits This document
6.5. New Registry: SR Policy Segment List Sub-TLVs
This document requests creation of a new registry called "SR Policy This document requests creation of a new registry called "SR Policy
List Sub-TLVs". The allocation policy of this registry is Segment List Sub-TLVs". The allocation policy of this registry is
"Specification Required" according to [RFC8126]. "Specification Required" according to [RFC8126].
Following initial Sub-TLV codepoints are assigned by this document: Following initial Sub-TLV codepoints are assigned by this document:
Value Description Reference Value Description Reference
------------------------------------------------------------------------ ------------------------------------------------------------------------
1 Type A MPLS SID sub-TLV This document 1 Type A MPLS SID sub-TLV This document
2 Type B SRv6 SID sub-TLV This document 2 Deprecated This document
3 Type C IPv4 Node and 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 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 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 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 7 Type G IPv6 Node, index for remote and local pair This document
and SID for SR-MPLS sub-TLV and SID for SR-MPLS sub-TLV
8 Type H IPv6 Local/Remote addresses and SID sub-TLV This document 8 Type H IPv6 Local/Remote addresses and SID sub-TLV This document
9 Weight sub-TLV This document 9 Weight sub-TLV This document
10 Type I IPv6 Node and SID for SRv6 sub-TLV This document 10 Deprecated This document
11 Type J IPv6 Node, index for remote and local pair This document 11 Deprecated This document
12 Deprecated This document
13 Type B SRv6 SID sub-TLV This document
14 Type I IPv6 Node and SID for SRv6 sub-TLV This document
15 Type J IPv6 Node, index for remote and local pair This document
and SID for SRv6 sub-TLV and SID for SRv6 sub-TLV
12 Type K IPv6 Local/Remote addresses and SID for This document 16 Type K IPv6 Local/Remote addresses and SID for This document
SRv6 sub-TLV SRv6 sub-TLV
6.5. New Registry: SR Policy Binding SID Flags 6.6. New Registry: SR Policy Binding SID Flags
This document requests creation of a new registry called "SR Policy This document requests creation of a new registry called "SR Policy
Binding SID Flags". The allocation policy of this registry is Binding SID Flags". The allocation policy of this registry is
"Specification Required" according to [RFC8126]. "Specification Required" according to [RFC8126].
Following flags are defined: Following flags are defined:
Bit Description Reference Bit Description Reference
----------------------------------------------------------------- -----------------------------------------------------------------
0 Specified-BSID-Only Flag (S-Flag) This document 0 Specified-BSID-Only Flag (S-Flag) This document
1 Drop Upon Invalid Flag (I-Flag) This document 1 Drop Upon Invalid Flag (I-Flag) This document
2-7 Unassigned 2-7 Unassigned
6.6. New Registry: SR Policy Segment Flags 6.7. New Registry: SR Policy SRv6 Binding SID Flags
This document requests creation of a new registry called "SR Policy This document requests creation of a new registry called "SR Policy
Segment Flags". The allocation policy of this registry is SRv6 Binding SID Flags". The allocation policy of this registry is
"Specification Required" according to [RFC8126]. "Specification Required" according to [RFC8126].
Following Flags are defined: Following flags are defined:
Bit Description Reference Bit Description Reference
------------------------------------------------------------------ -----------------------------------------------------------------
0 Segment Verification Flag (V-Flag) This document 0 Specified-BSID-Only Flag (S-Flag) This document
1 SR Algorithm Flag (A-Flag) This document 1 Drop Upon Invalid Flag (I-Flag) This document
2-7 Unassigned 2 SRv6 Endpoint Behavior &
SID Structure Flag (B-Flag) This document
3-7 Unassigned
6.7. New Registry: Color Extended Community Field 6.8. New Registry: SR Policy Segment Flags
This document requests creation of a new registry called "Color This document requests creation of a new registry called "SR Policy
Extended Community Field". The allocation policy of this registry is Segment Flags". The allocation policy of this registry is
"Specification Required" according to [RFC8126]. "Specification Required" according to [RFC8126].
Following bits are defined in this 2 octet field: Following Flags are defined:
Bit Description Reference Bit Description Reference
------------------------------------------------------------------ ------------------------------------------------------------------
0-1 Color-only bits This document 0 Segment Verification Flag (V-Flag) This document
2-15 Unassigned 1 SR Algorithm Flag (A-Flag) This document
2 SID Specified Flag (S-Flag) This document
3 SRv6 Endpoint Behavior &
SID Structure Flag (B-Flag) This document
4-7 Unassigned
6.8. Guidance for Designated Experts 6.9. Guidance for Designated Experts
In all cases of review by the Designated Expert (DE) described here, In all cases of review by the Designated Expert (DE) described here,
the DE is expected to ascertain the existence of suitable the DE is expected to ascertain the existence of suitable
documentation (a specification) as described in [RFC8126]. The DE is documentation (a specification) as described in [RFC8126]. The DE is
also expected to check the clarity of purpose and use of the also expected to check the clarity of purpose and use of the
requested code points. Additionally, the DE must verify that any requested code points. Additionally, the DE must verify that any
request for one of these code points has been made available for 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 review and comment within the IETF: the DE will post the request to
the IDR Working Group mailing list (or a successor mailing list the IDR Working Group mailing list (or a successor mailing list
designated by the IESG). If the request comes from within the IETF, designated by the IESG). If the request comes from within the IETF,
skipping to change at page 36, line 15 skipping to change at page 41, line 27
Cisco Systems Cisco Systems
US US
Email: gdawra.ietf@gmail.com 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., and S. Ramachandra, "The BGP Tunnel Patel, K., Velde, G., Sangli, S., and J. Scudder, "The BGP
Encapsulation Attribute", draft-ietf-idr-tunnel-encaps-15 Tunnel Encapsulation Attribute", draft-ietf-idr-tunnel-
(work in progress), December 2019. encaps-19 (work in progress), September 2020.
[I-D.ietf-spring-segment-routing-policy] [I-D.ietf-spring-segment-routing-policy]
Filsfils, C., Sivabalan, S., Voyer, D., Bogdanov, A., and Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and
P. Mattes, "Segment Routing Policy Architecture", draft- P. Mattes, "Segment Routing Policy Architecture", draft-
ietf-spring-segment-routing-policy-07 (work in progress), ietf-spring-segment-routing-policy-09 (work in progress),
May 2020. November 2020.
[I-D.ietf-spring-srv6-network-programming]
Filsfils, C., Camarillo, P., Leddy, J., Voyer, D.,
Matsushima, S., and Z. Li, "SRv6 Network Programming",
draft-ietf-spring-srv6-network-programming-24 (work in
progress), October 2020.
[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 37, line 32 skipping to change at page 42, line 46
July 2018, <https://www.rfc-editor.org/info/rfc8402>. July 2018, <https://www.rfc-editor.org/info/rfc8402>.
[RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., [RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W.,
and J. Hardwick, "Path Computation Element Communication and J. Hardwick, "Path Computation Element Communication
Protocol (PCEP) Extensions for Segment Routing", RFC 8664, Protocol (PCEP) Extensions for Segment Routing", RFC 8664,
DOI 10.17487/RFC8664, December 2019, DOI 10.17487/RFC8664, December 2019,
<https://www.rfc-editor.org/info/rfc8664>. <https://www.rfc-editor.org/info/rfc8664>.
10.2. Informational References 10.2. Informational References
[I-D.filsfils-spring-sr-policy-considerations]
Filsfils, C., Talaulikar, K., Krol, P., Horneffer, M., and
P. Mattes, "SR Policy Implementation and Deployment
Considerations", draft-filsfils-spring-sr-policy-
considerations-05 (work in progress), April 2020.
[RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis",
RFC 4272, DOI 10.17487/RFC4272, January 2006, RFC 4272, DOI 10.17487/RFC4272, January 2006,
<https://www.rfc-editor.org/info/rfc4272>. <https://www.rfc-editor.org/info/rfc4272>.
[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>.
[RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of
BGP, LDP, PCEP, and MSDP Issues According to the Keying BGP, LDP, PCEP, and MSDP Issues According to the Keying
and Authentication for Routing Protocols (KARP) Design and Authentication for Routing Protocols (KARP) Design
Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013,
<https://www.rfc-editor.org/info/rfc6952>. <https://www.rfc-editor.org/info/rfc6952>.
Appendix A. Deprecated Segment Sub-TLVs
This section describes the encoding of Segment Sub-TLVs that were
specified in a previous version of this document and subsequently
deprecated.
A.1. Type B-Deprecated: SID only, in the form of IPv6 address
The Type B-Deprecated Segment Sub-TLV encodes a single SRv6 SID. The
format is as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:
o Type: 2.
o Length is 18.
o Flags: 1 octet of flags as defined in Section 2.4.4.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt.
o SRv6 SID: 16 octets of IPv6 address.
A.2. Type I-Deprecated: IPv6 Node Address with optional SRv6 SID
The Type I-Deprecated Segment Sub-TLV encodes an IPv6 node address,
SR Algorithm and an optional SRv6 SID. The format is as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:
o Type: 10.
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.4.2.12.
o SR Algorithm: 1 octet specifying SR Algorithm as described in
section 3.1.1 in [RFC8402], when A-Flag as defined in
Section 2.4.4.2.12 is present. SR Algorithm is used by SRPM as
described in section 4 in
[I-D.ietf-spring-segment-routing-policy]. When A-Flag is not
encoded, this field SHOULD be set to zero on transmission and MUST
be ignored on receipt.
o IPv6 Node Address: a 16 octet IPv6 address.
o SRv6 SID: optional, 16 octet IPv6 address.
A.3. Type J-Deprecated: IPv6 Address + Interface ID for local and
remote pair for SRv6 with optional SID
The Type J-Deprecated Segment Sub-TLV encodes an IPv6 Link Local
adjacency with local node address, a local interface identifier
(Local Interface ID), remote IPv6 node address, a remote interface
identifier (Remote Interface ID) and an optional SRv6 SID. The
format is as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Local Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Remote Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:
o Type: 11.
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.4.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt.
o Local Interface ID: 4 octets of interface index as defined in
[RFC8664].
o IPv6 Local Node Address: a 16 octet IPv6 address.
o Remote Interface ID: 4 octets of interface index as defined in
[RFC8664]. The value MAY be set to zero when the local node
address and interface identifiers are sufficient to describe the
link.
o IPv6 Remote Node Address: a 16 octet IPv6 address. The value MAY
be set to zero when the local node address and interface
identifiers are sufficient to describe the link.
o SRv6 SID: optional, 16 octet IPv6 address.
A.4. Type K-Deprecated: IPv6 Local and Remote addresses for SRv6 with
optional SID
The Type K-Deprecated Segment Sub-TLV encodes an adjacency local
address, an adjacency remote address and an optional SRv6 SID. The
format is as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Local IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Remote IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:
o Type: 12.
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.4.2.12.
o RESERVED: 1 octet of reserved bits. SHOULD be set to zero on
transmission and MUST be ignored on receipt.
o Local IPv6 Address: a 16 octet IPv6 address.
o Remote IPv6 Address: a 16 octet IPv6 address.
o SRv6 SID: optional, 16 octet IPv6 address.
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 Cisco Systems
Brussels Brussels
BE BE
Email: cfilsfil@cisco.com Email: cfilsfil@cisco.com
Ketan Talaulikar (editor) Ketan Talaulikar (editor)
Cisco Systems Cisco Systems
India India
 End of changes. 127 change blocks. 
193 lines changed or deleted 592 lines changed or added

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