< draft-ietf-spring-srv6-network-programming-23.txt   draft-ietf-spring-srv6-network-programming-24.txt >
SPRING C. Filsfils, Ed. SPRING C. Filsfils, Ed.
Internet-Draft P. Camarillo, Ed. Internet-Draft P. Camarillo, Ed.
Intended status: Standards Track Cisco Systems, Inc. Intended status: Standards Track Cisco Systems, Inc.
Expires: April 3, 2021 J. Leddy Expires: April 10, 2021 J. Leddy
Individual Contributor Individual Contributor
D. Voyer D. Voyer
Bell Canada Bell Canada
S. Matsushima S. Matsushima
SoftBank SoftBank
Z. Li Z. Li
Huawei Technologies Huawei Technologies
September 30, 2020 October 7, 2020
SRv6 Network Programming SRv6 Network Programming
draft-ietf-spring-srv6-network-programming-23 draft-ietf-spring-srv6-network-programming-24
Abstract Abstract
The SRv6 Network Programming framework enables a network operator or The SRv6 Network Programming framework enables a network operator or
an application to specify a packet processing program by encoding a an application to specify a packet processing program by encoding a
sequence of instructions in the IPv6 packet header. sequence of instructions in the IPv6 packet header.
Each instruction is implemented on one or several nodes in the Each instruction is implemented on one or several nodes in the
network and identified by an SRv6 Segment Identifier in the packet. network and identified by an SRv6 Segment Identifier in the packet.
skipping to change at page 1, line 47 skipping to change at page 1, line 47
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 April 3, 2021. This Internet-Draft will expire on April 10, 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
skipping to change at page 2, line 34 skipping to change at page 2, line 34
2.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 5
3. SRv6 SID . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. SRv6 SID . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. SID Format . . . . . . . . . . . . . . . . . . . . . . . 6 3.1. SID Format . . . . . . . . . . . . . . . . . . . . . . . 6
3.2. SID Allocation within an SR domain . . . . . . . . . . . 7 3.2. SID Allocation within an SR domain . . . . . . . . . . . 7
3.3. SID Reachability . . . . . . . . . . . . . . . . . . . . 9 3.3. SID Reachability . . . . . . . . . . . . . . . . . . . . 9
4. SR Endpoint Behaviors . . . . . . . . . . . . . . . . . . . . 10 4. SR Endpoint Behaviors . . . . . . . . . . . . . . . . . . . . 10
4.1. End: Endpoint . . . . . . . . . . . . . . . . . . . . . . 11 4.1. End: Endpoint . . . . . . . . . . . . . . . . . . . . . . 11
4.1.1. Upper-Layer Header . . . . . . . . . . . . . . . . . 12 4.1.1. Upper-Layer Header . . . . . . . . . . . . . . . . . 12
4.2. End.X: Layer-3 Cross-Connect . . . . . . . . . . . . . . 12 4.2. End.X: Layer-3 Cross-Connect . . . . . . . . . . . . . . 12
4.3. End.T: Specific IPv6 Table Lookup . . . . . . . . . . . . 13 4.3. End.T: Specific IPv6 Table Lookup . . . . . . . . . . . . 13
4.4. End.DX6: Decapsulation and IPv6 Cross-Connect . . . . . . 13 4.4. End.DX6: Decapsulation and IPv6 Cross-Connect . . . . . . 14
4.5. End.DX4: Decapsulation and IPv4 Cross-Connect . . . . . . 14 4.5. End.DX4: Decapsulation and IPv4 Cross-Connect . . . . . . 15
4.6. End.DT6: Decapsulation and Specific IPv6 Table Lookup . . 15 4.6. End.DT6: Decapsulation and Specific IPv6 Table Lookup . . 16
4.7. End.DT4: Decapsulation and Specific IPv4 Table Lookup . . 16 4.7. End.DT4: Decapsulation and Specific IPv4 Table Lookup . . 17
4.8. End.DT46: Decapsulation and Specific IP Table Lookup . . 17 4.8. End.DT46: Decapsulation and Specific IP Table Lookup . . 18
4.9. End.DX2: Decapsulation and L2 Cross-Connect . . . . . . . 18 4.9. End.DX2: Decapsulation and L2 Cross-Connect . . . . . . . 19
4.10. End.DX2V: Decapsulation and VLAN L2 Table Lookup . . . . 19 4.10. End.DX2V: Decapsulation and VLAN L2 Table Lookup . . . . 20
4.11. End.DT2U: Decapsulation and Unicast MAC L2 Table Lookup . 20 4.11. End.DT2U: Decapsulation and Unicast MAC L2 Table Lookup . 20
4.12. End.DT2M: Decapsulation and L2 Table Flooding . . . . . . 21 4.12. End.DT2M: Decapsulation and L2 Table Flooding . . . . . . 21
4.13. End.B6.Encaps: Endpoint Bound to an SRv6 Policy w/ Encaps 21 4.13. End.B6.Encaps: Endpoint Bound to an SRv6 Policy w/ Encaps 22
4.14. End.B6.Encaps.Red: End.B6.Encaps with Reduced SRH . . . . 23 4.14. End.B6.Encaps.Red: End.B6.Encaps with Reduced SRH . . . . 24
4.15. End.BM: Endpoint Bound to an SR-MPLS Policy . . . . . . . 23 4.15. End.BM: Endpoint Bound to an SR-MPLS Policy . . . . . . . 24
4.16. Flavors . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.16. Flavors . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.16.1. PSP: Penultimate Segment Pop of the SRH . . . . . . 24 4.16.1. PSP: Penultimate Segment Pop of the SRH . . . . . . 25
4.16.2. USP: Ultimate Segment Pop of the SRH . . . . . . . . 27 4.16.2. USP: Ultimate Segment Pop of the SRH . . . . . . . . 28
4.16.3. USD: Ultimate Segment Decapsulation . . . . . . . . 27 4.16.3. USD: Ultimate Segment Decapsulation . . . . . . . . 28
5. SR Policy Headend Behaviors . . . . . . . . . . . . . . . . . 28 5. SR Policy Headend Behaviors . . . . . . . . . . . . . . . . . 29
5.1. H.Encaps: SR Headend with Encapsulation in an SRv6 Policy 29 5.1. H.Encaps: SR Headend with Encapsulation in an SRv6 Policy 30
5.2. H.Encaps.Red: H.Encaps with Reduced Encapsulation . . . . 29 5.2. H.Encaps.Red: H.Encaps with Reduced Encapsulation . . . . 30
5.3. H.Encaps.L2: H.Encaps Applied to Received L2 Frames . . . 30 5.3. H.Encaps.L2: H.Encaps Applied to Received L2 Frames . . . 31
5.4. H.Encaps.L2.Red: H.Encaps.Red Applied to Received L2 5.4. H.Encaps.L2.Red: H.Encaps.Red Applied to Received L2
frames . . . . . . . . . . . . . . . . . . . . . . . . . 30 frames . . . . . . . . . . . . . . . . . . . . . . . . . 31
6. Counters . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6. Counters . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7. Flow-based Hash Computation . . . . . . . . . . . . . . . . . 31 7. Flow-based Hash Computation . . . . . . . . . . . . . . . . . 32
8. Control Plane . . . . . . . . . . . . . . . . . . . . . . . . 31 8. Control Plane . . . . . . . . . . . . . . . . . . . . . . . . 32
8.1. IGP . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 8.1. IGP . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.2. BGP-LS . . . . . . . . . . . . . . . . . . . . . . . . . 32 8.2. BGP-LS . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.3. BGP IP/VPN/EVPN . . . . . . . . . . . . . . . . . . . . . 32 8.3. BGP IP/VPN/EVPN . . . . . . . . . . . . . . . . . . . . . 33
8.4. Summary . . . . . . . . . . . . . . . . . . . . . . . . . 32 8.4. Summary . . . . . . . . . . . . . . . . . . . . . . . . . 33
9. Security Considerations . . . . . . . . . . . . . . . . . . . 34 9. Security Considerations . . . . . . . . . . . . . . . . . . . 35
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35
10.1. Ethernet Next Header Type . . . . . . . . . . . . . . . 34 10.1. Ethernet Next Header Type . . . . . . . . . . . . . . . 35
10.2. SRv6 Endpoint Behaviors Registry . . . . . . . . . . . . 34 10.2. SRv6 Endpoint Behaviors Registry . . . . . . . . . . . . 35
10.2.1. Initial Registrations . . . . . . . . . . . . . . . 35 10.2.1. Initial Registrations . . . . . . . . . . . . . . . 36
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 36 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 37
12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 36 12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 38
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 39 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 41
13.1. Normative References . . . . . . . . . . . . . . . . . . 39 13.1. Normative References . . . . . . . . . . . . . . . . . . 41
13.2. Informative References . . . . . . . . . . . . . . . . . 40 13.2. Informative References . . . . . . . . . . . . . . . . . 41
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 43
1. Introduction 1. Introduction
Segment Routing [RFC8402] leverages the source routing paradigm. An Segment Routing [RFC8402] leverages the source routing paradigm. An
ingress node steers a packet through an ordered list of instructions, ingress node steers a packet through an ordered list of instructions,
called segments. Each one of these instructions represents a called segments. Each one of these instructions represents a
function to be called at a specific location in the network. A function to be called at a specific location in the network. A
function is locally defined on the node where it is executed and may function is locally defined on the node where it is executed and may
range from simply moving forward in the Segment List to any complex range from simply moving forward in the Segment List to any complex
user-defined behavior. Network programming combines segment routing user-defined behavior. Network programming combines segment routing
skipping to change at page 12, line 19 skipping to change at page 12, line 19
S01. If (Upper-Layer Header type is allowed by local configuration) { S01. If (Upper-Layer Header type is allowed by local configuration) {
S02. Proceed to process the Upper-layer Header S02. Proceed to process the Upper-layer Header
S03. } Else { S03. } Else {
S04. Send an ICMP Parameter Problem to the Source Address, S04. Send an ICMP Parameter Problem to the Source Address,
Code 4 (SR Upper-layer Header Error), Code 4 (SR Upper-layer Header Error),
Pointer set to the offset of the Upper-layer Header, Pointer set to the offset of the Upper-layer Header,
Interrupt packet processing and discard the packet. Interrupt packet processing and discard the packet.
S05 } S05 }
Notes: Allowing processing of specific Upper-Layer Headers types is useful
S01. As an example, an operator may not wish to have any TCP traffic for OAM. As an example, an operator might permit pinging of SIDs.
destined to a local SID, but may want to enable ICMPv6 packet To do this they may enable local configuration to allow Upper-layer
processing for OAM purposes. Header type 58 (ICMPv6).
It is RECOMMENDED that an implementation of local configuration only
allows Upper-layer Header processing of types that do not result in
the packet being forwarded (e.g. ICMPv6).
4.2. End.X: Layer-3 Cross-Connect 4.2. End.X: Layer-3 Cross-Connect
The "Endpoint with cross-connect to an array of layer-3 adjacencies" The "Endpoint with cross-connect to an array of layer-3 adjacencies"
behavior (End.X for short) is a variant of the End behavior. behavior (End.X for short) is a variant of the End behavior.
It is the SRv6 instantiation of an Adjacency-SID [RFC8402] and its It is the SRv6 instantiation of an Adjacency-SID [RFC8402] and its
main use is for traffic-engineering policies. main use is for traffic-engineering policies.
Any SID instance of this behavior is associated with a set, J, of one Any SID instance of this behavior is associated with a set, J, of one
skipping to change at page 34, line 27 skipping to change at page 35, line 27
services. Additionally, [RFC8754] defines an HMAC TLV permitting SR services. Additionally, [RFC8754] defines an HMAC TLV permitting SR
Endpoint Nodes in the SR domain to verify that the SRH applied to a Endpoint Nodes in the SR domain to verify that the SRH applied to a
packet was selected by an authorized party and to ensure that the packet was selected by an authorized party and to ensure that the
segment list is not modified after generation, regardless of the segment list is not modified after generation, regardless of the
number of segments in the segment list. When enabled by local number of segments in the segment list. When enabled by local
configuration, HMAC processing occurs at the beginning of SRH configuration, HMAC processing occurs at the beginning of SRH
processing as defined in [RFC8754] Section 2.1.2.1 . processing as defined in [RFC8754] Section 2.1.2.1 .
This document introduces SRv6 Endpoint and SR Policy Headend This document introduces SRv6 Endpoint and SR Policy Headend
behaviors for implementation on SRv6 capable nodes in the network. behaviors for implementation on SRv6 capable nodes in the network.
As such, this document does not introduce any new security The headend policy definition should be consistent with the specific
considerations. behavior used and any local configuration (as specified in
Section 4.1.1). As such, this document does not introduce any new
security considerations.
10. IANA Considerations 10. IANA Considerations
10.1. Ethernet Next Header Type 10.1. Ethernet Next Header Type
This document requests IANA to allocate, in the "Protocol Numbers" This document requests IANA to allocate, in the "Protocol Numbers"
registry (https://www.iana.org/assignments/protocol-numbers/protocol- registry (https://www.iana.org/assignments/protocol-numbers/protocol-
numbers.xhtml), a new value for "Ethernet" with the following numbers.xhtml), a new value for "Ethernet" with the following
definition: The value 143 in the Next Header field of an IPv6 header definition: The value 143 in the Next Header field of an IPv6 header
or any extension header indicates that the payload is an Ethernet or any extension header indicates that the payload is an Ethernet
 End of changes. 9 change blocks. 
47 lines changed or deleted 53 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/