draft-ietf-lsr-isis-srv6-extensions-04.txt | draft-ietf-lsr-isis-srv6-extensions-05.txt | |||
---|---|---|---|---|
Networking Working Group P. Psenak, Ed. | Networking Working Group P. Psenak, Ed. | |||
Internet-Draft C. Filsfils | Internet-Draft C. Filsfils | |||
Intended status: Standards Track Cisco Systems | Intended status: Standards Track Cisco Systems | |||
Expires: July 18, 2020 A. Bashandy | Expires: August 20, 2020 A. Bashandy | |||
Arrcus | Individual | |||
B. Decraene | B. Decraene | |||
Orange | Orange | |||
Z. Hu | Z. Hu | |||
Huawei Technologies | Huawei Technologies | |||
January 15, 2020 | February 17, 2020 | |||
IS-IS Extension to Support Segment Routing over IPv6 Dataplane | IS-IS Extension to Support Segment Routing over IPv6 Dataplane | |||
draft-ietf-lsr-isis-srv6-extensions-04.txt | draft-ietf-lsr-isis-srv6-extensions-05.txt | |||
Abstract | Abstract | |||
Segment Routing (SR) allows for a flexible definition of end-to-end | Segment Routing (SR) allows for a flexible definition of end-to-end | |||
paths by encoding paths as sequences of topological sub-paths, called | paths by encoding paths as sequences of topological sub-paths, called | |||
"segments". Segment routing architecture can be implemented over an | "segments". Segment routing architecture can be implemented over an | |||
MPLS data plane as well as an IPv6 data plane. This draft describes | MPLS data plane as well as an IPv6 data plane. This draft describes | |||
the IS-IS extensions required to support Segment Routing over an IPv6 | the IS-IS extensions required to support Segment Routing over an IPv6 | |||
data plane. | data plane. | |||
skipping to change at page 1, line 49 ¶ | skipping to change at page 1, line 49 ¶ | |||
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 July 18, 2020. | This Internet-Draft will expire on August 20, 2020. | |||
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 | |||
skipping to change at page 2, line 33 ¶ | skipping to change at page 2, line 33 ¶ | |||
2. SRv6 Capabilities sub-TLV . . . . . . . . . . . . . . . . . . 4 | 2. SRv6 Capabilities sub-TLV . . . . . . . . . . . . . . . . . . 4 | |||
3. Advertising Supported Algorithms . . . . . . . . . . . . . . 4 | 3. Advertising Supported Algorithms . . . . . . . . . . . . . . 4 | |||
4. Advertising Maximum SRv6 SID Depths . . . . . . . . . . . . . 5 | 4. Advertising Maximum SRv6 SID Depths . . . . . . . . . . . . . 5 | |||
4.1. Maximum Segments Left MSD Type . . . . . . . . . . . . . 5 | 4.1. Maximum Segments Left MSD Type . . . . . . . . . . . . . 5 | |||
4.2. Maximum End Pop MSD Type . . . . . . . . . . . . . . . . 5 | 4.2. Maximum End Pop MSD Type . . . . . . . . . . . . . . . . 5 | |||
4.3. Maximum H.Encaps MSD Type . . . . . . . . . . . . . . . . 5 | 4.3. Maximum H.Encaps MSD Type . . . . . . . . . . . . . . . . 5 | |||
4.4. Maximum End D MSD Type . . . . . . . . . . . . . . . . . 6 | 4.4. Maximum End D MSD Type . . . . . . . . . . . . . . . . . 6 | |||
5. SRv6 SIDs and Reachability . . . . . . . . . . . . . . . . . 6 | 5. SRv6 SIDs and Reachability . . . . . . . . . . . . . . . . . 6 | |||
6. Advertising Anycast Property . . . . . . . . . . . . . . . . 7 | 6. Advertising Anycast Property . . . . . . . . . . . . . . . . 7 | |||
7. Advertising Locators and End SIDs . . . . . . . . . . . . . . 8 | 7. Advertising Locators and End SIDs . . . . . . . . . . . . . . 8 | |||
7.1. SRv6 Locator TLV Format . . . . . . . . . . . . . . . . . 8 | 7.1. SRv6 Locator TLV Format . . . . . . . . . . . . . . . . . 9 | |||
7.2. SRv6 End SID sub-TLV . . . . . . . . . . . . . . . . . . 10 | 7.2. SRv6 End SID sub-TLV . . . . . . . . . . . . . . . . . . 10 | |||
8. Advertising SRv6 Adjacency SIDs . . . . . . . . . . . . . . . 12 | 8. Advertising SRv6 Adjacency SIDs . . . . . . . . . . . . . . . 12 | |||
8.1. SRv6 End.X SID sub-TLV . . . . . . . . . . . . . . . . . 12 | 8.1. SRv6 End.X SID sub-TLV . . . . . . . . . . . . . . . . . 12 | |||
8.2. SRv6 LAN End.X SID sub-TLV . . . . . . . . . . . . . . . 14 | 8.2. SRv6 LAN End.X SID sub-TLV . . . . . . . . . . . . . . . 14 | |||
9. SRv6 SID Structure Sub-Sub-TLV . . . . . . . . . . . . . . . 15 | 9. SRv6 SID Structure Sub-Sub-TLV . . . . . . . . . . . . . . . 15 | |||
10. Advertising Endpoint Behaviors . . . . . . . . . . . . . . . 16 | 10. Advertising Endpoint Behaviors . . . . . . . . . . . . . . . 16 | |||
11. Implementation Status . . . . . . . . . . . . . . . . . . . . 17 | 11. Implementation Status . . . . . . . . . . . . . . . . . . . . 17 | |||
11.1. Cisco . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 11.1. Cisco . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
11.2. Huawei . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 11.2. Huawei . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
11.3. Juniper . . . . . . . . . . . . . . . . . . . . . . . . 18 | 11.3. Juniper . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
11.4. Interoperability Testing. . . . . . . . . . . . . . . . 18 | 11.4. Interoperability Testing. . . . . . . . . . . . . . . . 18 | |||
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 | 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 | |||
12.1. SRv6 Locator TLV . . . . . . . . . . . . . . . . . . . . 18 | 12.1. SRv6 Locator TLV . . . . . . . . . . . . . . . . . . . . 18 | |||
12.1.1. SRv6 End SID sub-TLV . . . . . . . . . . . . . . . . 18 | 12.1.1. SRv6 End SID sub-TLV . . . . . . . . . . . . . . . . 18 | |||
12.1.2. Revised sub-TLV table . . . . . . . . . . . . . . . 19 | 12.1.2. Revised sub-TLV table . . . . . . . . . . . . . . . 18 | |||
12.2. SRv6 Capabilities sub-TLV . . . . . . . . . . . . . . . 19 | 12.2. SRv6 Capabilities sub-TLV . . . . . . . . . . . . . . . 19 | |||
12.3. SRv6 End.X SID and SRv6 LAN End.X SID sub-TLVs . . . . . 19 | 12.3. SRv6 End.X SID and SRv6 LAN End.X SID sub-TLVs . . . . . 19 | |||
12.4. MSD Types . . . . . . . . . . . . . . . . . . . . . . . 20 | 12.4. MSD Types . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
12.5. Sub-Sub-TLVs for SID Sub-TLVs . . . . . . . . . . . . . 20 | 12.5. Sub-Sub-TLVs for SID Sub-TLVs . . . . . . . . . . . . . 20 | |||
12.6. Prefix Attribute Flags Sub-TLV . . . . . . . . . . . . . 20 | 12.6. Prefix Attribute Flags Sub-TLV . . . . . . . . . . . . . 20 | |||
13. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | 13. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | |||
14. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 21 | 14. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
15. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 | 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
15.1. Normative References . . . . . . . . . . . . . . . . . . 22 | 15.1. Normative References . . . . . . . . . . . . . . . . . . 22 | |||
15.2. Informative References . . . . . . . . . . . . . . . . . 24 | 15.2. Informative References . . . . . . . . . . . . . . . . . 24 | |||
skipping to change at page 3, line 29 ¶ | skipping to change at page 3, line 29 ¶ | |||
Segments are identified through Segment Identifiers (SIDs). | Segments are identified through Segment Identifiers (SIDs). | |||
Segment Routing can be directly instantiated on the IPv6 data plane | Segment Routing can be directly instantiated on the IPv6 data plane | |||
through the use of the Segment Routing Header defined in | through the use of the Segment Routing Header defined in | |||
[I-D.ietf-6man-segment-routing-header]. SRv6 refers to this SR | [I-D.ietf-6man-segment-routing-header]. SRv6 refers to this SR | |||
instantiation on the IPv6 dataplane. | instantiation on the IPv6 dataplane. | |||
The network programming paradigm | The network programming paradigm | |||
[I-D.ietf-spring-srv6-network-programming] is central to SRv6. It | [I-D.ietf-spring-srv6-network-programming] is central to SRv6. It | |||
describes how any behavior can be bound to a SID and how any network | describes how any behavior can be bound to a SID and how any network | |||
program can be expressed as a combination of SID's. | program can be expressed as a combination of SIDs. | |||
This document specifies IS-IS extensions that allow the IS-IS | This document specifies IS-IS extensions that allow the IS-IS | |||
protocol to encode some of these SIDs and their behaviors. | protocol to encode some of these SIDs and their behaviors. | |||
Familiarity with the network programming paradigm | Familiarity with the network programming paradigm | |||
[I-D.ietf-spring-srv6-network-programming] is necessary to understand | [I-D.ietf-spring-srv6-network-programming] is necessary to understand | |||
the extensions specified in this document. | the extensions specified in this document. | |||
This document defines one new top level IS-IS TLV and several new IS- | This document defines one new top level IS-IS TLV and several new IS- | |||
IS sub-TLVs. | IS sub-TLVs. | |||
skipping to change at page 4, line 9 ¶ | skipping to change at page 4, line 9 ¶ | |||
of summary address for the set of topology/algorithm specific SIDs | of summary address for the set of topology/algorithm specific SIDs | |||
instantiated at the node. | instantiated at the node. | |||
The SRv6 End SID sub-TLV, the SRv6 End.X SID sub-TLV, and the SRv6 | The SRv6 End SID sub-TLV, the SRv6 End.X SID sub-TLV, and the SRv6 | |||
LAN End.X SID sub-TLV are used to advertise which SIDs are | LAN End.X SID sub-TLV are used to advertise which SIDs are | |||
instantiated at a node and what Endpoint behavior is bound to each | instantiated at a node and what Endpoint behavior is bound to each | |||
instantiated SID. | instantiated SID. | |||
2. SRv6 Capabilities sub-TLV | 2. SRv6 Capabilities sub-TLV | |||
A node indicates that it has support for SRv6 by advertising a new | A node indicates that it supports the SR Segment Endpoint Node | |||
SRv6 Capabilities sub-TLV of the router capabilities TLV [RFC7981]. | functionality as specified in [I-D.ietf-6man-segment-routing-header] | |||
by advertising a new SRv6 Capabilities sub-TLV of the router | ||||
capabilities TLV [RFC7981]. | ||||
The SRv6 Capabilities sub-TLV may contain optional sub-sub-TLVs. No | The SRv6 Capabilities sub-TLV may contain optional sub-sub-TLVs. No | |||
sub-sub-TLVs are currently defined. | sub-sub-TLVs are currently defined. | |||
The SRv6 Capabilities sub-TLV has the following format: | The SRv6 Capabilities 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 | | | Type | Length | Flags | | |||
skipping to change at page 5, line 30 ¶ | skipping to change at page 5, line 30 ¶ | |||
received packet before applying the Endpoint behavior associated with | received packet before applying the Endpoint behavior associated with | |||
a SID. | a SID. | |||
SRH Max SL Type: 41 (Suggested value - to be assigned by IANA) | SRH Max SL Type: 41 (Suggested value - to be assigned by IANA) | |||
If no value is advertised the supported value is assumed to be 0. | If no value is advertised the supported value is assumed to be 0. | |||
4.2. Maximum End Pop MSD Type | 4.2. Maximum End Pop MSD Type | |||
The Maximum End Pop MSD Type specifies the maximum number of SIDs in | The Maximum End Pop MSD Type specifies the maximum number of SIDs in | |||
the top SRH in an SRH stack to which the router can apply "PSP" or | the SRH to which the router can apply "PSP" or USP" behavior, as | |||
USP" as defined in [I-D.ietf-spring-srv6-network-programming] | defined in [I-D.ietf-spring-srv6-network-programming] flavors. | |||
flavors. | ||||
SRH Max End Pop Type: 42 (Suggested value - to be assigned by IANA) | SRH Max End Pop Type: 42 (Suggested value - to be assigned by IANA) | |||
If the advertised value is zero or no value is advertised | If the advertised value is zero or no value is advertised | |||
then it is assumed that the router cannot apply PSP or USP flavors. | then it is assumed that the router cannot apply PSP or USP flavors. | |||
4.3. Maximum H.Encaps MSD Type | 4.3. Maximum H.Encaps MSD Type | |||
The Maximum H.Encaps MSD Type specifies the maximum number of SIDs | The Maximum H.Encaps MSD Type specifies the maximum number of SIDs | |||
that can be included as part of the "H.Encaps" behavior as defined in | that can be included as part of the "H.Encaps" behavior as defined in | |||
skipping to change at page 6, line 23 ¶ | skipping to change at page 6, line 23 ¶ | |||
IPinIP and SRH encapsulation subject to the SID limitation | IPinIP and SRH encapsulation subject to the SID limitation | |||
specified by the advertised value. | specified by the advertised value. | |||
4.4. Maximum End D MSD Type | 4.4. Maximum End D MSD Type | |||
The Maximum End D MSD Type specifies the maximum number of SIDs in an | The Maximum End D MSD Type specifies the maximum number of SIDs in an | |||
SRH when performing decapsulation associated with "End.Dx" behaviors | SRH when performing decapsulation associated with "End.Dx" behaviors | |||
(e.g., "End.DX6" and "End.DT6") as defined in | (e.g., "End.DX6" and "End.DT6") as defined in | |||
[I-D.ietf-spring-srv6-network-programming]. | [I-D.ietf-spring-srv6-network-programming]. | |||
SRH Max End D Type: 45 (Suggested value - to be assigned by IANA) | SRH Max End D Type: 45 (Suggested value - to be assigned by IANA) | |||
If the advertised value is zero or no value is advertised | If the advertised value is zero or no value is advertised | |||
then it is assumed that the router cannot apply | then it is assumed that the router cannot apply | |||
"End.DX6" or "End.DT6" behaviors if the extension | "End.DX6" or "End.DT6" behaviors if the outer IPv6 header contains an SRH. | |||
header right underneath the outer IPv6 header is an SRH. | ||||
5. SRv6 SIDs and Reachability | 5. SRv6 SIDs and Reachability | |||
As discussed in [I-D.ietf-spring-srv6-network-programming], an SRv6 | As discussed in [I-D.ietf-spring-srv6-network-programming], an SRv6 | |||
Segment Identifier (SID) is 128 bits and consists of Locator, | Segment Identifier (SID) is 128 bits and consists of Locator, | |||
Function and Argument parts. | Function and Argument parts. | |||
A node is provisioned with topology/algorithm specific locators for | A node is provisioned with topology/algorithm specific locators for | |||
each of the topology/algorithm pairs supported by that node. Each | each of the topology/algorithm pairs supported by that node. Each | |||
locator is a covering prefix for all SIDs provisioned on that node | locator is a covering prefix for all SIDs provisioned on that node | |||
skipping to change at page 7, line 5 ¶ | skipping to change at page 7, line 5 ¶ | |||
SRv6 Locator TLV MUST be installed in the forwarding plane of | SRv6 Locator TLV MUST be installed in the forwarding plane of | |||
receiving SRv6 capable routers when the associated topology/algorithm | receiving SRv6 capable routers when the associated topology/algorithm | |||
is supported by the receiving node. | is supported by the receiving node. | |||
Locators are routable and MAY also be advertised in Prefix | Locators are routable and MAY also be advertised in Prefix | |||
Reachability TLVs (236 or 237). | Reachability TLVs (236 or 237). | |||
Locators associated with Flexible Algorithms [I-D.ietf-lsr-flex-algo] | Locators associated with Flexible Algorithms [I-D.ietf-lsr-flex-algo] | |||
SHOULD NOT be advertised in Prefix Reachability TLVs (236 or 237). | SHOULD NOT be advertised in Prefix Reachability TLVs (236 or 237). | |||
Locators associated with algorithm 0 (for all supported topologies) | Locators associated with algorithm 0 and 1 (for all supported | |||
SHOULD be advertised in a Prefix Reachability TLV (236 or 237) so | topologies) SHOULD be advertised in a Prefix Reachability TLV (236 or | |||
that legacy routers (i.e., routers which do NOT support SRv6) will | 237) so that legacy routers (i.e., routers which do NOT support SRv6) | |||
install a forwarding entry for algorithm 0 SRv6 traffic. | will install a forwarding entry for algorithm 0 and 1 SRv6 traffic. | |||
In cases where a locator advertisement is received in both in a | In cases where a locator advertisement is received in both a Prefix | |||
Prefix Reachability TLV and an SRv6 Locator TLV, the Prefix | Reachability TLV and an SRv6 Locator TLV, the Prefix Reachability | |||
Reachability advertisement MUST be preferred when installing entries | advertisement MUST be preferred when installing entries in the | |||
in the forwarding plane. This is to prevent inconsistent forwarding | forwarding plane. This is to prevent inconsistent forwarding entries | |||
entries on SRv6 capable/SRv6 incapable routers. | between SRv6 capable and SRv6 incapable routers. | |||
SRv6 SIDs are advertised as sub-TLVs in the SRv6 Locator TLV except | SRv6 SIDs are advertised as sub-TLVs in the SRv6 Locator TLV except | |||
for SRv6 End.X SIDs/LAN End.X SIDs which are associated with a | for SRv6 End.X SIDs/LAN End.X SIDs which are associated with a | |||
specific Neighbor/Link and are therefore advertised as sub-TLVs in | specific Neighbor/Link and are therefore advertised as sub-TLVs in | |||
TLVs 22, 23, 222, 223, and 141. | TLVs 22, 23, 222, 223, and 141. | |||
SRv6 SIDs are not directly routable and MUST NOT be installed in the | SRv6 SIDs are not directly routable and MUST NOT be installed in the | |||
forwarding plane. Reachability to SRv6 SIDs depends upon the | forwarding plane. Reachability to SRv6 SIDs depends upon the | |||
existence of a covering locator. | existence of a covering locator. | |||
Adherence to the rules defined in this section will assure that SRv6 | Adherence to the rules defined in this section will assure that SRv6 | |||
SIDs associated with a supported topology/algorithm pair will be | SIDs associated with a supported topology/algorithm pair will be | |||
forwarded correctly, while SRv6 SIDs associated with an unsupported | forwarded correctly, while SRv6 SIDs associated with an unsupported | |||
topology/algorithm pair will be dropped. NOTE: The drop behavior | topology/algorithm pair will be dropped. NOTE: The drop behavior | |||
depends on the absence of a default/summary route covering a given | depends on the absence of a default/summary route covering a given | |||
locator. | locator. | |||
In order for forwarding to work correctly, the locator associated | In order for forwarding to work correctly, the locator associated | |||
with SRv6 SID advertisements MUST be the longest match prefix | with SRv6 SID advertisements MUST be the longest match prefix | |||
installed in the forwarding plane for those SIDs. There are a number | installed in the forwarding plane for those SIDs. There are a number | |||
of ways in which this requirement could be compromised | of ways in which this requirement could be compromised. In order to | |||
ensure correct forwarding, network operators should take steps to | ||||
make sure that this requirement is not compromised. | ||||
o Another locator associated with a different topology/algorithm is | o Another locator associated with a different topology/algorithm is | |||
the longest match | the longest match | |||
o A prefix advertisement (i.e., from TLV 236 or 237) is the longest | o A prefix advertisement (i.e., from TLV 236 or 237) is the longest | |||
match | match | |||
6. Advertising Anycast Property | 6. Advertising Anycast Property | |||
Both prefixes and SRv6 Locators may be configured as anycast and as | Both prefixes and SRv6 Locators may be configured as anycast and as | |||
skipping to change at page 8, line 22 ¶ | skipping to change at page 8, line 25 ¶ | |||
The A-flag and the N-flag MUST NOT both be set. | The A-flag and the N-flag MUST NOT both be set. | |||
If both N-flag and A-flag are set in the prefix/SRv6 Locator | If both N-flag and A-flag are set in the prefix/SRv6 Locator | |||
advertisement, the receiving routers MUST ignore the N-flag. | advertisement, the receiving routers MUST ignore the N-flag. | |||
The same prefix/SRv6 Locator can be advertised by multiple routers. | The same prefix/SRv6 Locator can be advertised by multiple routers. | |||
If at least one of them sets the A-Flag in its advertisement, the | If at least one of them sets the A-Flag in its advertisement, the | |||
prefix/SRv6 Locator SHOULD be considered as anycast. | prefix/SRv6 Locator SHOULD be considered as anycast. | |||
Locator that is advertised by a single node and without an A-Flag | ||||
SHOULD be interpreted as a node specific locator. | ||||
All the nodes advertising the same anycast locator MUST instantiate | ||||
the exact same set of SIDs under such anycast locator. Failure to do | ||||
so may result in traffic being black-holed or mis-routed. | ||||
The Prefix Attribute Flags Sub-TLV can be carried in the SRv6 Locator | ||||
TLV as well as the Prefix Reachability TLVs. When a router | ||||
originates both the Prefix Reachability TLV and the SRv6 Locator TLV | ||||
for a given prefix, and the router is originating the Prefix | ||||
Attribute Flags Sub-TLV in one of the TLVs, the router SHOULD | ||||
advertise identical versions of the Prefix Attribute Flags Sub-TLV in | ||||
both TLVs. | ||||
7. Advertising Locators and End SIDs | 7. Advertising Locators and End SIDs | |||
The SRv6 Locator TLV is introduced to advertise SRv6 Locators and End | The SRv6 Locator TLV is introduced to advertise SRv6 Locators and End | |||
SIDs associated with each locator. | SIDs associated with each locator. | |||
This new TLV shares the sub-TLV space defined for TLVs 135, 235, 236 | This new TLV shares the sub-TLV space defined for TLVs 135, 235, 236 | |||
and 237. | and 237. | |||
7.1. SRv6 Locator TLV Format | 7.1. SRv6 Locator TLV Format | |||
The SRv6 Locator TLV has the following format: | The SRv6 Locator 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 |R|R|R|R| MTID | | | Type | Length |R|R|R|R| MTID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type: 27 (Suggested value to be assigned by IANA) | ||||
Length: variable. | ||||
MTID: Multitopology Identifier as defined in [RFC5120]. | ||||
Note that the value 0 is legal. | ||||
Followed by one or more locator entries of the form: | Followed by one or more locator entries of the form: | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metric | | | Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags | Algorithm | | | Flags | Algorithm | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Loc Size | Locator (variable)... | | Loc Size | Locator (variable)... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Sub-tlv-len | Sub-TLVs (variable) . . . | | | Sub-tlv-len | Sub-TLVs (variable) . . . | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Type: 27 (Suggested value to be assigned by IANA) | ||||
Length: variable. | ||||
MTID: Multitopology Identifier as defined in [RFC5120]. | ||||
Note that the value 0 is legal. | ||||
Locator entry: | ||||
Metric: 4 octets. As described in [RFC5305]. | Metric: 4 octets. As described in [RFC5305]. | |||
Flags: 1 octet. The following flags are defined | Flags: 1 octet. The following flags are defined | |||
0 | 0 | |||
0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
|D| Reserved | | |D| Reserved | | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
skipping to change at page 9, line 37 ¶ | skipping to change at page 10, line 11 ¶ | |||
bit MUST be set. Otherwise, this bit MUST be clear. Locators | bit MUST be set. Otherwise, this bit MUST be clear. Locators | |||
with the D bit set MUST NOT be leaked from level-1 to level-2. | with the D bit set MUST NOT be leaked from level-1 to level-2. | |||
This is to prevent looping. | This is to prevent looping. | |||
The remaining bits are reserved for future use. They SHOULD be | The remaining bits are reserved for future use. They SHOULD be | |||
set to zero on transmission and MUST be ignored on receipt. | set to zero on transmission and MUST be ignored on receipt. | |||
Algorithm: 1 octet. Associated algorithm. Algorithm values | Algorithm: 1 octet. Associated algorithm. Algorithm values | |||
are defined in the IGP Algorithm Type registry. | are defined in the IGP Algorithm Type registry. | |||
Loc-Size: 1 octet. Number of bits in the Locator field. | Loc-Size: 1 octet. Number of bits in the SRv6 Locator field. | |||
(1 - 128) | (1 - 128) | |||
Locator: 1-16 octets. This field encodes the advertised SRv6 | Locator: 1-16 octets. This field encodes the advertised SRv6 | |||
Locator. The Locator is encoded in the minimal number of | Locator. The Locator is encoded in the minimal number of | |||
octets for the given number of bits. | octets for the given number of bits. Trailing bits MUST be set | |||
to zero and ignored when received. | ||||
Sub-TLV-length: 1 octet. Number of octets used by sub-TLVs | Sub-TLV-length: 1 octet. Number of octets used by sub-TLVs | |||
Optional sub-TLVs. | Optional sub-TLVs. | |||
7.2. SRv6 End SID sub-TLV | 7.2. SRv6 End SID sub-TLV | |||
The SRv6 End SID sub-TLV is introduced to advertise SRv6 Segment | The SRv6 End SID sub-TLV is introduced to advertise SRv6 Segment | |||
Identifiers (SID) with Endpoint behaviors which do not require a | Identifiers (SID) with Endpoint behaviors which do not require a | |||
particular neighbor in order to be correctly applied | particular neighbor in order to be correctly applied | |||
skipping to change at page 12, line 24 ¶ | skipping to change at page 12, line 24 ¶ | |||
IS-IS Neighbor advertisements are topology specific - but not | IS-IS Neighbor advertisements are topology specific - but not | |||
algorithm specific. End.X SIDs therefore inherit the topology from | algorithm specific. End.X SIDs therefore inherit the topology from | |||
the associated neighbor advertisement, but the algorithm is specified | the associated neighbor advertisement, but the algorithm is specified | |||
in the individual SID. | in the individual SID. | |||
All End.X SIDs MUST be a subnet of a Locator with matching topology | All End.X SIDs MUST be a subnet of a Locator with matching topology | |||
and algorithm which is advertised by the same node in an SRv6 Locator | and algorithm which is advertised by the same node in an SRv6 Locator | |||
TLV. End.X SIDs which do not meet this requirement MUST be ignored. | TLV. End.X SIDs which do not meet this requirement MUST be ignored. | |||
All End.X and LAN End.X SIDs MUST be subsumed by the subnet of a | ||||
Locator with the matching algorithm which is advertised by the same | ||||
node in an SRv6 Locator TLV. End.X SIDs which do not meet this | ||||
requirement MUST be ignored. This ensures that the node advertising | ||||
the End.X or LAN End.X SID is also advertising its corresponding | ||||
Locator with the algorithm that will be used for computing paths | ||||
destined to the SID. | ||||
8.1. SRv6 End.X SID sub-TLV | 8.1. SRv6 End.X SID sub-TLV | |||
This sub-TLV is used to advertise an SRv6 SID associated with a point | This sub-TLV is used to advertise an SRv6 SID associated with a point | |||
to point adjacency. Multiple SRv6 End.X SID sub-TLVs MAY be | to point adjacency. Multiple SRv6 End.X SID sub-TLVs MAY be | |||
associated with the same adjacency. | associated with the same adjacency. | |||
The SRv6 End.X SID sub-TLV has the following format: | The SRv6 End.X 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 | |||
skipping to change at page 16, line 15 ¶ | skipping to change at page 16, line 28 ¶ | |||
LB Length: 1 octet. SRv6 SID Locator Block length in bits. | LB Length: 1 octet. SRv6 SID Locator Block length in bits. | |||
LN Length: 1 octet. SRv6 SID Locator Node length in bits. | LN Length: 1 octet. SRv6 SID Locator Node length in bits. | |||
Fun. Length: 1 octet. SRv6 SID Function length in bits. | Fun. Length: 1 octet. SRv6 SID Function length in bits. | |||
Arg. Length: 1 octet. SRv6 SID Arguments length in bits. | Arg. Length: 1 octet. SRv6 SID Arguments length in bits. | |||
ISIS SRv6 SID Structure Sub-Sub-TLV MUST NOT appear more than once in | ISIS SRv6 SID Structure Sub-Sub-TLV MUST NOT appear more than once in | |||
its parent sub-TLV. If it appears more than once in its parent TLV, | its parent Sub-TLV. If it appears more than once in its parent Sub- | |||
the parent TLV MUST be ignored by the receiver. | TLV, the parent Sub-TLV MUST be ignored by the receiver. | |||
The sum of all four sizes advertised in ISIS SRv6 SID Structure Sub- | ||||
Sub-TLV must be lower or equal to 128 bits. If the sum of all four | ||||
sizes advertised in the ISIS SRv6 SID Structure Sub-Sub-TLV is larger | ||||
than 128 bits, the parent Sub-TLV MUST be ignored by the receiver. | ||||
10. Advertising Endpoint Behaviors | 10. Advertising Endpoint Behaviors | |||
Endpoint behaviors are defined in | Endpoint behaviors are defined in | |||
[I-D.ietf-spring-srv6-network-programming] and | [I-D.ietf-spring-srv6-network-programming] and | |||
[I-D.ietf-6man-spring-srv6-oam]. The codepoints for the Endpoint | [I-D.ietf-6man-spring-srv6-oam]. The codepoints for the Endpoint | |||
behaviors are defined in the "SRv6 Endpoint Behaviors" registry | behaviors are defined in the "SRv6 Endpoint Behaviors" registry | |||
defined in [I-D.ietf-spring-srv6-network-programming]. This section | defined in [I-D.ietf-spring-srv6-network-programming]. This section | |||
lists the Endpoint behaviors and their codepoints, which MAY be | lists the Endpoint behaviors and their codepoints, which MAY be | |||
advertised by IS-IS and the SID sub-TLVs in which each type MAY | advertised by IS-IS and the SID sub-TLVs in which each type MAY | |||
skipping to change at page 18, line 13 ¶ | skipping to change at page 18, line 13 ¶ | |||
Types of SID supported: End, End.X | Types of SID supported: End, End.X | |||
Intra/Inter area/level support: Yes | Intra/Inter area/level support: Yes | |||
Anycast SID support: Yes, no A-flag support (Section 6) | Anycast SID support: Yes, no A-flag support (Section 6) | |||
SID Structure Sub-Sub-TLV: No | SID Structure Sub-Sub-TLV: No | |||
11.3. Juniper | 11.3. Juniper | |||
Juniper's implementation is in beta stage and supports most of the | Juniper's implementation is in beta stage and supports most of the | |||
sections of the this draft. | sections of this draft. | |||
11.4. Interoperability Testing. | 11.4. Interoperability Testing. | |||
EANTC interoperability testing has been performed in April 2019. | EANTC interoperability testing has been performed in April 2019. | |||
Results can be found at EANTC site [1]. | Results can be found at EANTC site [1]. | |||
12. IANA Considerations | 12. IANA Considerations | |||
This document requests allocation for the following TLVs, sub- TLVs, | This document requests allocation for the following TLVs, sub- TLVs, | |||
and sub-sub-TLVs as well updating the ISIS TLV registry and defining | and sub-sub-TLVs as well updating the ISIS TLV registry and defining | |||
skipping to change at page 18, line 47 ¶ | skipping to change at page 18, line 47 ¶ | |||
12.1.1. SRv6 End SID sub-TLV | 12.1.1. SRv6 End SID sub-TLV | |||
This document adds the following new sub-TLV to the (renamed) "Sub- | This document adds the following new sub-TLV to the (renamed) "Sub- | |||
TLVs for TLVs 27, 135, 235, 236 and 237 registry". | TLVs for TLVs 27, 135, 235, 236 and 237 registry". | |||
Value: 5 (suggested - to be assigned by IANA) | Value: 5 (suggested - to be assigned by IANA) | |||
Name: SRv6 End SID | Name: SRv6 End SID | |||
This document requests the creation of a new IANA managed registry | ||||
for sub-sub-TLVs of the SRv6 End SID sub-TLV. The registration | ||||
procedure is "Expert Review" as defined in [RFC7370]. Suggested | ||||
registry name is "sub-sub-TLVs for SRv6 End SID sub-TLV". No sub- | ||||
sub-TLVs are defined by this document except for the reserved value. | ||||
0: Reserved | ||||
1-255: Unassigned | ||||
12.1.2. Revised sub-TLV table | 12.1.2. Revised sub-TLV table | |||
The revised table of sub-TLVs for the (renamed) "Sub-TLVs for TLVs | The revised table of sub-TLVs for the (renamed) "Sub-TLVs for TLVs | |||
27, 135, 235, 236 and 237 registry" is shown below: | 27, 135, 235, 236 and 237 registry" is shown below: | |||
Type 27 135 235 236 237 | Type 27 135 235 236 237 | |||
1 n y y y y | 1 n y y y y | |||
2 n y y y y | 2 n y y y y | |||
3 n y y y y | 3 n y y y y | |||
skipping to change at page 23, line 21 ¶ | skipping to change at page 23, line 21 ¶ | |||
[I-D.ietf-6man-spring-srv6-oam] | [I-D.ietf-6man-spring-srv6-oam] | |||
Ali, Z., Filsfils, C., Matsushima, S., Voyer, D., and M. | Ali, Z., Filsfils, C., Matsushima, S., Voyer, D., and M. | |||
Chen, "Operations, Administration, and Maintenance (OAM) | Chen, "Operations, Administration, and Maintenance (OAM) | |||
in Segment Routing Networks with IPv6 Data plane (SRv6)", | in Segment Routing Networks with IPv6 Data plane (SRv6)", | |||
draft-ietf-6man-spring-srv6-oam-03 (work in progress), | draft-ietf-6man-spring-srv6-oam-03 (work in progress), | |||
December 2019. | December 2019. | |||
[I-D.ietf-spring-srv6-network-programming] | [I-D.ietf-spring-srv6-network-programming] | |||
Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., | Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., | |||
Matsushima, S., and Z. Li, "SRv6 Network Programming", | Matsushima, S., and Z. Li, "SRv6 Network Programming", | |||
draft-ietf-spring-srv6-network-programming-08 (work in | draft-ietf-spring-srv6-network-programming-09 (work in | |||
progress), January 2020. | progress), February 2020. | |||
[ISO10589] | [ISO10589] | |||
Standardization", I. ". O. F., "Intermediate system to | Standardization", I. ". O. F., "Intermediate system to | |||
Intermediate system intra-domain routeing information | Intermediate system intra-domain routeing information | |||
exchange protocol for use in conjunction with the protocol | exchange protocol for use in conjunction with the protocol | |||
for providing the connectionless-mode Network Service (ISO | for providing the connectionless-mode Network Service (ISO | |||
8473), ISO/IEC 10589:2002, Second Edition.", Nov 2002. | 8473), ISO/IEC 10589:2002, Second Edition.", Nov 2002. | |||
[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, | |||
skipping to change at page 25, line 34 ¶ | skipping to change at page 25, line 34 ¶ | |||
Email: ppsenak@cisco.com | Email: ppsenak@cisco.com | |||
Clarence Filsfils | Clarence Filsfils | |||
Cisco Systems | Cisco Systems | |||
Brussels | Brussels | |||
Belgium | Belgium | |||
Email: cfilsfil@cisco.com | Email: cfilsfil@cisco.com | |||
Ahmed Bashandy | Ahmed Bashandy | |||
Arrcus | Individual | |||
Email: abashandy.ietf@gmail.com | Email: abashandy.ietf@gmail.com | |||
Bruno Decraene | Bruno Decraene | |||
Orange | Orange | |||
Issy-les-Moulineaux | Issy-les-Moulineaux | |||
France | France | |||
Email: bruno.decraene@orange.com | Email: bruno.decraene@orange.com | |||
End of changes. 25 change blocks. | ||||
55 lines changed or deleted | 74 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |