draft-xu-mpls-sr-over-ip-00.txt | draft-xu-mpls-sr-over-ip-01.txt | |||
---|---|---|---|---|
Network Working Group X. Xu | Network Working Group X. Xu | |||
Internet-Draft Alibaba | Internet-Draft Alibaba | |||
Intended status: Standards Track S. Bryant | Intended status: Standards Track S. Bryant | |||
Expires: September 2, 2018 Huawei | Expires: December 3, 2018 Huawei | |||
A. Farrel | A. Farrel | |||
Juniper | Juniper | |||
A. Bashandy | S. Hassan | |||
Cisco | Cisco | |||
W. Henderickx | W. Henderickx | |||
Nokia | Nokia | |||
Z. Li | Z. Li | |||
Huawei | Huawei | |||
March 1, 2018 | June 1, 2018 | |||
SR-MPLS over IP | SR-MPLS over IP | |||
draft-xu-mpls-sr-over-ip-00 | draft-xu-mpls-sr-over-ip-01 | |||
Abstract | Abstract | |||
MPLS Segment Routing (SR-MPLS in short) is an MPLS data plane-based | MPLS Segment Routing (SR-MPLS in short) is an MPLS data plane-based | |||
source routing paradigm in which the sender of a packet is allowed to | source routing paradigm in which the sender of a packet is allowed to | |||
partially or completely specify the route the packet takes through | partially or completely specify the route the packet takes through | |||
the network by imposing stacked MPLS labels on the packet. SR-MPLS | the network by imposing stacked MPLS labels on the packet. SR-MPLS | |||
could be leveraged to realize a source routing mechanism across MPLS, | could be leveraged to realize a source routing mechanism across MPLS, | |||
IPv4, and IPv6 data planes by using an MPLS label stack as a source | IPv4, and IPv6 data planes by using an MPLS label stack as a source | |||
routing instruction set while preserving backward compatibility with | routing instruction set while preserving backward compatibility with | |||
SR-MPLS. | SR-MPLS. | |||
This document describes how SR-MPLS capable routers and IP-only | This document describes how SR-MPLS capable routers and IP-only | |||
routers can seamlessly co-exist and interoperate through the use of | routers can seamlessly co-exist and interoperate through the use of | |||
SR-MPLS label stacks and IP encapsulation/tunnelling such as MPLS-in- | SR-MPLS label stacks and IP encapsulation/tunneling such as MPLS-in- | |||
UDP [RFC7510]. | UDP as defined in RFC 7510. | |||
Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
"OPTIONAL" in this document are to be interpreted as described in BCP | ||||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on December 3, 2018. | ||||
This Internet-Draft will expire on September 2, 2018. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
3. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
4. Procedures of SR-MPLS over IP . . . . . . . . . . . . . . . . 5 | 4. Procedures of SR-MPLS over IP . . . . . . . . . . . . . . . . 5 | |||
4.1. Forwarding Entry Construction . . . . . . . . . . . . . . 5 | 4.1. Forwarding Entry Construction . . . . . . . . . . . . . . 5 | |||
4.2. Packet Forwarding Procedures . . . . . . . . . . . . . . 7 | 4.2. Packet Forwarding Procedures . . . . . . . . . . . . . . 7 | |||
4.2.1. Packet Forwarding with Penultimate Hop Popping . . . 7 | 4.2.1. Packet Forwarding with Penultimate Hop Popping . . . 8 | |||
4.2.2. Packet Forwarding without Penultimate Hop Popping . . 8 | 4.2.2. Packet Forwarding without Penultimate Hop Popping . . 9 | |||
4.2.3. Additional Forwarding Procedures . . . . . . . . . . 9 | 4.2.3. Additional Forwarding Procedures . . . . . . . . . . 10 | |||
5. Forwarding Details of SR-MPLS over UDP . . . . . . . . . . . 10 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | |||
5.1. Domain Ingress Nodes . . . . . . . . . . . . . . . . . . 11 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
5.2. Legacy Transit Nodes . . . . . . . . . . . . . . . . . . 11 | 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
5.3. On-Path Pass-Through SR Nodes . . . . . . . . . . . . . . 12 | 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | |||
5.4. SR Transit Nodes . . . . . . . . . . . . . . . . . . . . 12 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
5.5. Penultimate SR Transit Nodes . . . . . . . . . . . . . . 13 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 13 | |||
5.5.1. A Note on Segment Routing Paths and Penultimate Hop | 9.2. Informative References . . . . . . . . . . . . . . . . . 15 | |||
Popping . . . . . . . . . . . . . . . . . . . . . . . 14 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
5.6. Domain Egress Nodes . . . . . . . . . . . . . . . . . . . 14 | ||||
6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 15 | ||||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 | ||||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 | ||||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | ||||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | ||||
10.1. Normative References . . . . . . . . . . . . . . . . . . 17 | ||||
10.2. Informative References . . . . . . . . . . . . . . . . . 18 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | ||||
1. Introduction | 1. Introduction | |||
MPLS Segment Routing (SR-MPLS in short) | MPLS Segment Routing (SR-MPLS in short) | |||
[I-D.ietf-spring-segment-routing-mpls] is an MPLS data plane-based | [I-D.ietf-spring-segment-routing-mpls] is an MPLS data plane-based | |||
source routing paradigm in which the sender of a packet is allowed to | source routing paradigm in which the sender of a packet is allowed to | |||
partially or completely specify the route the packet takes through | partially or completely specify the route the packet takes through | |||
the network by imposing stacked MPLS labels on the packet. SR-MPLS | the network by imposing stacked MPLS labels on the packet. SR-MPLS | |||
could be leveraged to realize a source routing mechanism across MPLS, | could be leveraged to realize a source routing mechanism across MPLS, | |||
IPv4, and IPv6 data planes by using an MPLS label stack as a source | IPv4, and IPv6 data planes by using an MPLS label stack as a source | |||
routing instruction set while preserving backward compatibility with | routing instruction set while preserving backward compatibility with | |||
SR-MPLS. More specifically, the source routing instruction set | SR-MPLS. More specifically, the source routing instruction set | |||
information contained in a source routed packet could be uniformly | information contained in a source routed packet could be uniformly | |||
encoded as an MPLS label stack no matter whether the underlay is | encoded as an MPLS label stack no matter whether the underlay is | |||
IPv4, IPv6, or MPLS. | IPv4, IPv6, or MPLS. | |||
This document describes how SR-MPLS capable routers and IP-only | This document describes how SR-MPLS capable routers and IP-only | |||
routers can seamlessly co-exist and interoperate through the use of | routers can seamlessly co-exist and interoperate through the use of | |||
SR-MPLS label stacks and IP encapsulation/tunnelling such as MPLS-in- | SR-MPLS label stacks and IP encapsulation/tunneling such as MPLS-in- | |||
UDP [RFC7510]. | UDP [RFC7510]. | |||
Although the source routing instructions are encoded as MPLS labels, | Although the source routing instructions are encoded as MPLS labels, | |||
this is a hardware convenience rather than an indication that the | this is a hardware convenience rather than an indication that the | |||
whole MPLS protocol stack needs to be deployed. In particular, the | whole MPLS protocol stack needs to be deployed. In particular, the | |||
MPLS control protocols are not used in this or any other form of SR- | MPLS control protocols are not used in this or any other form of SR- | |||
MPLS. | MPLS. | |||
Section 3 describes various use cases for the tunneling SR-MPLS over | Section 3 describes various use cases for the tunneling SR-MPLS over | |||
IP. Section 4 describes a typical application scenario and how the | IP. Section 4 describes a typical application scenario and how the | |||
packet forwarding happens. Section 5 describes the forwarding | packet forwarding happens. | |||
procedures of different elements when UDP encapsulation is adopted | ||||
for source routing. | ||||
2. Terminology | 2. Terminology | |||
This memo makes use of the terms defined in [RFC3031] and | This memo makes use of the terms defined in [RFC3031] and | |||
[I-D.ietf-spring-segment-routing-mpls]. | [I-D.ietf-spring-segment-routing-mpls]. | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
"OPTIONAL" in this document are to be interpreted as described in BCP | ||||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
3. Use Cases | 3. Use Cases | |||
Tunnelling SR-MPLS using IPv4 and/or IPv6 tunnels is useful at least | Tunneling SR-MPLS using IPv4 and/or IPv6 tunnels is useful at least | |||
in the following use cases: | in the following use cases: | |||
o Incremental deployment of the SR-MPLS technology may be | o Incremental deployment of the SR-MPLS technology may be | |||
facilitated by tunnelling SR-MPLS packets across parts of a | facilitated by tunneling SR-MPLS packets across parts of a network | |||
network that are not SR-MPLS enabled using an IP tunneling | that are not SR-MPLS enabled using an IP tunneling mechanism such | |||
mechanism such as MPLS-in-UDP [RFC7510]. The tunnel destination | as MPLS-in-UDP [RFC7510]. The tunnel destination address is the | |||
address is the address of the next SR-MPLS-capable node along the | address of the next SR-MPLS-capable node along the path (i.e., the | |||
path (i.e., the egress of the active node segment). This is shown | egress of the active node segment). This is shown in Figure 1. | |||
in Figure 1. | ||||
________________________ | ________________________ | |||
_______ ( ) _______ | _______ ( ) _______ | |||
( ) ( IP Network ) ( ) | ( ) ( IP Network ) ( ) | |||
( SR-MPLS ) ( ) ( SR-MPLS ) | ( SR-MPLS ) ( ) ( SR-MPLS ) | |||
( Network ) ( ) ( Network ) | ( Network ) ( ) ( Network ) | |||
( -------- -------- ) | ( -------- -------- ) | |||
( | Border | SR-in-UDP Tunnel | Border | ) | ( | Border | SR-in-UDP Tunnel | Border | ) | |||
( | Router |========================| Router | ) | ( | Router |========================| Router | ) | |||
( | R1 | | R2 | ) | ( | R1 | | R2 | ) | |||
( -------- -------- ) | ( -------- -------- ) | |||
( ) ( ) ( ) | ( ) ( ) ( ) | |||
( ) ( ) ( ) | ( ) ( ) ( ) | |||
(_______) ( ) (_______) | (_______) ( ) (_______) | |||
(________________________) | (________________________) | |||
Figure 1: SR-MPLS in UDP to Tunnel Between SR-MPLS Sites | Figure 1: SR-MPLS in UDP to Tunnel Between SR-MPLS Sites | |||
o If encoding of entropy is desired, IP tunneling mechanims that | o If encoding of entropy is desired, IP tunneling mechanisms that | |||
allow encoding of entrpopy, such as MPLS-in-UDP encapsulation | allow encoding of entropy, such as MPLS-in-UDP encapsulation | |||
[RFC7510] where the source port of the UDP header is used as an | [RFC7510] where the source port of the UDP header is used as an | |||
entropy field, may be used to maximize the untilization of ECMP | entropy field, may be used to maximize the utilization of ECMP | |||
and/or UCMP, specially when it is difficult to make use of entropy | and/or UCMP, specially when it is difficult to make use of entropy | |||
label mechanism. Refer to [I-D.ietf-mpls-spring-entropy-label]) | label mechanism. Refer to [I-D.ietf-mpls-spring-entropy-label]) | |||
for more discussion about using entropy label in SR-MPLS. | for more discussion about using entropy label in SR-MPLS. | |||
o Tunneling MPLS into IP provides a transition technology that | o Tunneling MPLS into IP provides a technology that enables SR in an | |||
enables SR in an IPv4 and/or IPv6 network where many routers have | IPv4 and/or IPv6 network where the routers do not support SRv6 | |||
not yet been upgraded to have SRv6 capabilities | capabilities [I-D.ietf-6man-segment-routing-header] and where MPLS | |||
[I-D.ietf-6man-segment-routing-header]. It could be deployed as | forwarding is not an option. This is shown in Figure Figure 2. | |||
an interim until full featured SRv6 is available on more | ||||
platforms. This is shown in Figure 2. | ||||
__________________________________ | __________________________________ | |||
__( IP Network )__ | __( IP Network )__ | |||
__( )__ | __( )__ | |||
( -- -- -- ) | ( -- -- -- ) | |||
-------- -- -- |SR| -- |SR| -- |SR| -- -------- | -------- -- -- |SR| -- |SR| -- |SR| -- -------- | |||
| Ingress| |IR| |IR| | | |IR| | | |IR| | | |IR| | Egress | | | Ingress| |IR| |IR| | | |IR| | | |IR| | | |IR| | Egress | | |||
--->| Router |===========| |======| |======| |======| Router |---> | --->| Router |===========| |======| |======| |======| Router |---> | |||
| SR | | | | | | | | | | | | | | | | | | SR | | | SR | | | | | | | | | | | | | | | | | | SR | | |||
-------- -- -- | | -- | | -- | | -- -------- | -------- -- -- | | -- | | -- | | -- -------- | |||
skipping to change at page 5, line 46 ¶ | skipping to change at page 5, line 46 ¶ | |||
4.1. Forwarding Entry Construction | 4.1. Forwarding Entry Construction | |||
This sub-section describes the how to construct the forwarding | This sub-section describes the how to construct the forwarding | |||
information base (FIB) entry on an SR-MPLS-capable router when some | information base (FIB) entry on an SR-MPLS-capable router when some | |||
or all of the next-hops along the shortest path towards a prefix-SID | or all of the next-hops along the shortest path towards a prefix-SID | |||
are IP-only routers. | are IP-only routers. | |||
Consider router A that receives a labeled packet with top label L(E) | Consider router A that receives a labeled packet with top label L(E) | |||
that corresponds to the prefix-SID SID(E) of prefix P(E) advertised | that corresponds to the prefix-SID SID(E) of prefix P(E) advertised | |||
by router E. Suppose the ith next-hop router (termed NHi) along the | by router E. Suppose the ith next-hop router (termed NHi) along the | |||
shortest path from router A toward SID(E) is not SR-MPLS capable. | shortest path from router A toward SID(E) is not SR-MPLS capable | |||
That is both routers A and E are SR-MPLS capable, but some router NHi | while both routers A and E are SR-MPLS capable. The following | |||
along the shortest path from A to E is not SR-MPLS capable. The | processing steps apply: | |||
following processing steps apply: | ||||
o Router E is SR-MPLS capable so it advertises the SR-Capabilities | o Router E is SR-MPLS capable so it advertises the SR-Capabilities | |||
sub-TLV including the SRGB as described in | sub-TLV including the SRGB as described in | |||
[I-D.ietf-ospf-segment-routing-extensions] and | [I-D.ietf-ospf-segment-routing-extensions] and | |||
[I-D.ietf-isis-segment-routing-extensions]. | [I-D.ietf-isis-segment-routing-extensions]. | |||
o Router E advertises the prefix-SID SID(E) of prefix P(E) so MUST | o Router E advertises the prefix-SID SID(E) of prefix P(E) so MUST | |||
also advertise the encapsulation endpoint and the tunnel type of | also advertise the encapsulation endpoint and the tunnel type of | |||
any tunnel used to reach E. It does this using the mechanisms | any tunnel used to reach E. It does this using the mechanisms | |||
described in [I-D.ietf-isis-encapsulation-cap] or | described in [I-D.ietf-isis-encapsulation-cap] or | |||
skipping to change at page 7, line 18 ¶ | skipping to change at page 7, line 18 ¶ | |||
bound of the SRGB of E | bound of the SRGB of E | |||
* Encapsulate the packet according to the encapsulation | * Encapsulate the packet according to the encapsulation | |||
advertised in [I-D.ietf-isis-encapsulation-cap] or | advertised in [I-D.ietf-isis-encapsulation-cap] or | |||
[I-D.ietf-ospf-encapsulation-cap] | [I-D.ietf-ospf-encapsulation-cap] | |||
* Send the packet towards the next hop NHi. | * Send the packet towards the next hop NHi. | |||
4.2. Packet Forwarding Procedures | 4.2. Packet Forwarding Procedures | |||
[RFC7510] specifies an IP-based encapsulation for MPLS, i.e., MPLS- | ||||
in-UDP, which is applicable in some circumstances where IP-based | ||||
encapsulation for MPLS is required and further fine-grained load | ||||
balancing of MPLS packets over IP networks over Equal-Cost Multipath | ||||
(ECMP) and/or Link Aggregation Groups (LAGs) is required as well. | ||||
This section provides details about the forwarding procedure when | ||||
when UDP encapsulation is adopted for SR-MPLS over IP. | ||||
Nodes that are SR-MPLS capable can process SR-MPLS packets. Not all | ||||
of the nodes in an SR-MPLS domain are SR-MPLS capable. Some nodes | ||||
may be "legacy routers" that cannot handle SR-MPLS packets but can | ||||
forward IP packets. An SR-MPLS-capable node may advertise its | ||||
capabilities using the IGP as described in Section 4. There are six | ||||
types of node in an SR-MPLS domain: | ||||
o Domain ingress nodes that receive packets and encapsulate them for | ||||
transmission across the domain. Those packets may be any payload | ||||
protocol including native IP packets or packets that are already | ||||
MPLS encapsulated. | ||||
o Legacy transit nodes that are IP routers but that are not SR-MPLS | ||||
capable (i.e., are not able to perform segment routing). | ||||
o Transit nodes that are SR-MPLS capable but that are not identified | ||||
by a SID in the SID stack. | ||||
o Transit nodes that are SR-MPLS capable and need to perform SR-MPLS | ||||
routing because they are identified by a SID in the SID stack. | ||||
o The penultimate SR-MPLS capable node on the path that processes | ||||
the last SID on the stack on behalf of the domain egress node. | ||||
o The domain egress node that forwards the payload packet for | ||||
ultimate delivery. | ||||
4.2.1. Packet Forwarding with Penultimate Hop Popping | 4.2.1. Packet Forwarding with Penultimate Hop Popping | |||
The description in this section assumes that the label associated | The description in this section assumes that the label associated | |||
with each prefix-SID is advertised by the owner of the prefix-SID is | with each prefix-SID is advertised by the owner of the prefix-SID is | |||
a Penultimate Hop Popping (PHP) label. That is, the NP flag in OSPF | a Penultimate Hop Popping (PHP) label. That is, the NP flag in OSPF | |||
or the P flag in ISIS associated with the prefix SID is not set. | or the P flag in ISIS associated with the prefix SID is not set. | |||
+-----+ +-----+ +-----+ +-----+ +-----+ | +-----+ +-----+ +-----+ +-----+ +-----+ | |||
| A +-------+ B +-------+ C +--------+ D +--------+ H | | | A +-------+ B +-------+ C +--------+ D +--------+ H | | |||
+-----+ +--+--+ +--+--+ +--+--+ +-----+ | +-----+ +--+--+ +--+--+ +--+--+ +-----+ | |||
skipping to change at page 7, line 48 ¶ | skipping to change at page 8, line 35 ¶ | |||
+--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| L(G) | | UDP | | UDP | | | L(G) | | UDP | | UDP | | |||
+--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| L(H) | | L(H) | |Exp Null| | | L(H) | | L(H) | |Exp Null| | |||
+--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| Packet | ---> | Packet | ---> | Packet | | | Packet | ---> | Packet | ---> | Packet | | |||
+--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
Figure 3: Packet Forwarding Example with PHP | Figure 3: Packet Forwarding Example with PHP | |||
In the example shown in Figure 3, assume that routers A, E, G, and H | In the example shown in Figure 3, assume that routers A, E, G and H | |||
are SR-MPLS-capable while the remaining routers (B, C, D, and F) are | are SR-MPLS-capable while the remaining routers (B, C, D and F) are | |||
only capable of forwarding IP packets. Routers A, E, G, and H | only capable of forwarding IP packets. Routers A, E, G, and H | |||
advertise their Segment Routing related information via IS-IS or | advertise their Segment Routing related information via IS-IS or | |||
OSPF. | OSPF. | |||
Now assume that router A wants to send a packet via the explicit path | Now assume that router A (the Domain ingress) wants to send a packet | |||
{E->G->H}. Router A will impose an MPLS label stack corresponding to | to router H (the Domain egress) via the explicit path {E->G->H}. | |||
that explicit path on the packet. Since the next hop toward router E | Router A will impose an MPLS label stack on the packet that | |||
is only IP-capable, router A replaces the top label (that indicated | corresponds to that explicit path. Since the next hop toward router | |||
router E) with a UDP-based tunnel for MPLS (i.e., MPLS-over-UDP | E is only IP-capable (B is a legacy transit node), router A replaces | |||
[RFC7510]) to router E and then sends the packet. In other words, | the top label (that indicated router E) with a UDP-based tunnel for | |||
router A pops the top label and then encapsulates the MPLS packet in | MPLS (i.e., MPLS-over-UDP [RFC7510]) to router E and then sends the | |||
a UDP tunnel to router E. | packet. In other words, router A pops the top label and then | |||
encapsulates the MPLS packet in a UDP tunnel to router E. | ||||
When the IP-encapsulated MPLS packet arrives at router E, router E | When the IP-encapsulated MPLS packet arrives at router E (which is an | |||
strips the IP-based tunnel header and then process the decapsulated | SR-MPLS-capable transit node), router E strips the IP-based tunnel | |||
MPLS packet. The top label indicates that the packet must be | header and then process the decapsulated MPLS packet. The top label | |||
forwarded toward router G. Since the next hop toward router G is | indicates that the packet must be forwarded toward router G. Since | |||
only IP-capable, router E replaces the current top label with an | the next hop toward router G is only IP-capable, router E replaces | |||
MPLS-over-UDP tunnel toward router G and sends it out. That is, | the current top label with an MPLS-over-UDP tunnel toward router G | |||
router E pops the top label and then encapsulates the MPLS packet in | and sends it out. That is, router E pops the top label and then | |||
a UDP tunnel to router G. | encapsulates the MPLS packet in a UDP tunnel to router G. | |||
When the packet arrives at router G, router G will strip the IP-based | When the packet arrives at router G, router G will strip the IP-based | |||
tunnel header and then process the decapsulated MPLS packet. The top | tunnel header and then process the decapsulated MPLS packet. The top | |||
label indicates that the packet must be forwarded toward router H. | label indicates that the packet must be forwarded toward router H. | |||
Since the next hop toward router H is only IP-capable, router G would | Since the next hop toward router H is only IP-capable (D is a legacy | |||
replace the current top label with an MPLS-over-UDP tunnel toward | transit router), router G would replace the current top label with an | |||
router H and send it out. However, this would leave the original | MPLS-over-UDP tunnel toward router H and send it out. However, since | |||
router G reaches the bottom of the label stack (G is the penultimate | ||||
SR-MPLS capable node on the path) this would leave the original | ||||
packet that router A wanted to send to router H encapsulated in UDP | packet that router A wanted to send to router H encapsulated in UDP | |||
as if it was MPLS even though the original packet could have been any | as if it was MPLS (i.e., with a UDP header and destination port | |||
indicating MPLS) even though the original packet could have been any | ||||
protocol. That is, the final SR-MPLS has been popped exposing the | protocol. That is, the final SR-MPLS has been popped exposing the | |||
payload packet. | payload packet. | |||
To handle this, when a router (here it is router G) pops the final | To handle this, when a router (here it is router G) pops the final | |||
SR-MPLS label, it inserts an explicit null label [RFC3032] before | SR-MPLS label, it inserts an explicit null label [RFC3032] before | |||
encapsulating the packet with an MPLS-over-UDP tunnel toward router H | encapsulating the packet in an MPLS-over-UDP tunnel toward router H | |||
and sending it out. That is, router G pops the top label, discovers | and sending it out. That is, router G pops the top label, discovers | |||
it has reached the bottom of stack, pushes an explicit null label, | it has reached the bottom of stack, pushes an explicit null label, | |||
and then encapsulates the MPLS packet in a UDP tunnel to router H. | and then encapsulates the MPLS packet in a UDP tunnel to router H. | |||
4.2.2. Packet Forwarding without Penultimate Hop Popping | 4.2.2. Packet Forwarding without Penultimate Hop Popping | |||
Figure 4 demonstrates the packet walk in the case where the label | Figure 4 demonstrates the packet walk in the case where the label | |||
associated with each prefix-SID advertised by the owner of the | associated with each prefix-SID advertised by the owner of the | |||
prefix-SID is not a Penultimate Hop Popping (PHP) label (i.e., the | prefix-SID is not a Penultimate Hop Popping (PHP) label (i.e., the | |||
the NP flag in OSPF or the P flag in ISIS associated with the prefix | the NP flag in OSPF or the P flag in ISIS associated with the prefix | |||
SID is set). | SID is set). Apart from the PHP function the roles of the routers is | |||
unchanged from Section 4.2.1. | ||||
+-----+ +-----+ +-----+ +-----+ +-----+ | +-----+ +-----+ +-----+ +-----+ +-----+ | |||
| A +-------+ B +-------+ C +--------+ D +--------+ H | | | A +-------+ B +-------+ C +--------+ D +--------+ H | | |||
+-----+ +--+--+ +--+--+ +--+--+ +-----+ | +-----+ +--+--+ +--+--+ +--+--+ +-----+ | |||
| | | | | | | | |||
| | | | | | | | |||
+--+--+ +--+--+ +--+--+ | +--+--+ +--+--+ +--+--+ | |||
| E +-------+ F +--------+ G | | | E +-------+ F +--------+ G | | |||
+-----+ +-----+ +-----+ | +-----+ +-----+ +-----+ | |||
skipping to change at page 9, line 32 ¶ | skipping to change at page 10, line 32 ¶ | |||
+--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| L(H) | | L(H) | | L(H) | | | L(H) | | L(H) | | L(H) | | |||
+--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| Packet | ---> | Packet | ---> | Packet | | | Packet | ---> | Packet | ---> | Packet | | |||
+--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
Figure 4: Packet Forwarding Example without PHP | Figure 4: Packet Forwarding Example without PHP | |||
As can be seen from the figure, the SR-MPLS label for each segment is | As can be seen from the figure, the SR-MPLS label for each segment is | |||
left in place until the end of the segment where it is popped and the | left in place until the end of the segment where it is popped and the | |||
next instruction is processed. Further description can be found in | next instruction is processed. | |||
Section 5. | ||||
4.2.3. Additional Forwarding Procedures | 4.2.3. Additional Forwarding Procedures | |||
Although the description in the previous two sections is based on the | Non-MPLS Interfaces: Although the description in the previous two | |||
use of prefix-SIDs, tunneling SR-MPLS packets are useful when the top | sections is based on the use of prefix-SIDs, tunneling SR-MPLS | |||
label of a received SR-MPLS packet indicates an adjacncy-SID and the | packets is useful when the top label of a received SR-MPLS packet | |||
corresponding adjacent node to that adjacency-SID is not capable of | indicates an adjacency-SID and the corresponding adjacent node to | |||
MPLS forwarding but can still process SR-MPLS packets. In this | that adjacency-SID is not capable of MPLS forwarding but can still | |||
scenario the top label would be replaced by an IP tunnel toward that | process SR-MPLS packets. In this scenario the top label would be | |||
adjacent node and then forwarded over the corresponding link | replaced by an IP tunnel toward that adjacent node and then | |||
indicated by the adjacency-SID. | forwarded over the corresponding link indicated by the adjacency- | |||
SID. | ||||
When encapsulating an MPLS packet with an IP tunnel header that is | ||||
capable of encoding entropy (such as [RFC7510]), the corresponding | ||||
entropy field (the source port in case UDP tunnel) MAY be filled with | ||||
an entropy value that is generated by the encapsulator to uniquely | ||||
identify a flow. However, what constitutes a flow is locally | ||||
determined by the encapsulator. For instance, if the MPLS label | ||||
stack contains at least one entropy label and the encapsulator is | ||||
capable of reading that entropy label, the entropy label value could | ||||
be directly copied to the source port of the UDP header. Otherwise, | ||||
the encapsulator may have to perform a hash on the whole label stack | ||||
or the five-tuple of the SR-MPLS payload if the payload is determined | ||||
as an IP packet. To avoid re-performing the hash or hunting for the | ||||
entropy label each time the packet is encapsulated in a UDP tunnel it | ||||
MAY be desireable that the entropy value contained in the incoming | ||||
packet (i.e., the UDP source port value) is retained when stripping | ||||
the UDP header and is re-used as the entropy value of the outgoing | ||||
packet. | ||||
5. Forwarding Details of SR-MPLS over UDP | ||||
This section provides supplementary details to the description found | ||||
in Section 4. | ||||
[RFC7510] specifies an IP-based encapsulation for MPLS, i.e., MPLS- | ||||
in-UDP, which is applicable in some circumstances where IP-based | ||||
encapsulation for MPLS is required and further fine-grained load | ||||
balancing of MPLS packets over IP networks over Equal-Cost Multipath | ||||
(ECMP) and/or Link Aggregation Groups (LAGs) is required as well. | ||||
This section provides details about the forwarding procedure when | ||||
when UDP encapsulation is adopted for SR-MPLS over IP. | ||||
Nodes that are SR capable can process SR-MPLS packets. Not all of | ||||
the nodes in an SR domain are SR capable. Some nodes may be "legacy | ||||
routers" that cannot handle SR packets but can forward IP packets. | ||||
An SR capable node may advertise its capabilities using the IGP as | ||||
described in Section 4. There are six types of node in an SR domain: | ||||
o Domain ingress nodes that receive packets and encapsulate them for | ||||
transmission across the domain. Those packets may be any payload | ||||
protocol including native IP packets or packets that are already | ||||
MPLS encapsulated. | ||||
o Legacy transit nodes that are IP routers but that are not SR | ||||
capable (i.e., are not able to perform segment routing). | ||||
o Transit nodes that are SR capable but that are not identified by a | ||||
SID in the SID stack. | ||||
o Transit nodes that are SR capable and need to perform SR routing | ||||
because they are identified by a SID in the SID stack. | ||||
o The penultimate SR capable node on the path that processes the | ||||
last SID on the stack on behalf of the domain egress node. | ||||
o The domain egress node that forwards the payload packet for | ||||
ultimate delivery. | ||||
The following sub-sections describe the processing behavior in each | ||||
case. | ||||
5.1. Domain Ingress Nodes | ||||
Domain ingress nodes receive packets from outside the domain and | ||||
encapsulate them to be forwarded across the domain. Received packets | ||||
may already be SR-MPLS packets (in the case of connecting two SR-MPLS | ||||
networks across a native IP network), or may be native IP or MPLS | ||||
packets. | ||||
In the latter case, the packet is classified by the domain ingress | ||||
node and an SR-MPLS stack is imposed. In the former case the SR-MPLS | ||||
stack is already in the packet. The top entry in the stack is popped | ||||
from the stack and retained for use below. | ||||
The packet is then encapsulated in UDP with the destination port set | ||||
to 6635 to indicate "MPLS-UDP" or to 6636 to indicate "MPLS-UDP-DTLS" | ||||
as described in [RFC7510]. The source UDP port is set randomly or to | ||||
provide entropy as described in [RFC7510] and Section 4.2.3, above. | ||||
The packet is then encapsulated in IP for transmission across the | ||||
network. The IP source address is set to the domain ingress node, | ||||
and the destination address is set to the address corresponding to | ||||
the label that was previously popped from the stack. | ||||
This processing is equivalent to sending the packet out of a virtual | ||||
interface that corresponds to a virtual link between the ingress node | ||||
and the next hop SR node realized by a UDP tunnel. The packet is | ||||
then sent into the IP network and is routed according to the local | ||||
FIB and applying hashing to resolve any ECMP choices. | ||||
5.2. Legacy Transit Nodes | ||||
A legacy transit node is an IP router that has no SR capabilities. | ||||
When such a router receives an SR-MPLS-in-UDP packet it will carry | ||||
out normal TTL processing and if the packet is still live it will | ||||
forward it as it would any other UDP-in-IP packet. The packet will | ||||
be routed toward the destination indicated in the packet header using | ||||
the local FIB and applying hashing to resolve any ECMP choices. | ||||
If the packet is mistakenly addressed to the legacy router, the UDP | ||||
tunnel will be terminated and the packet will be discarded either | ||||
because the MPLS-in-UDP port is not supported or because the | ||||
uncovered top label has not been allocated. This is, however, a | ||||
misconnection and should not occur unless there is a routing error. | ||||
5.3. On-Path Pass-Through SR Nodes | ||||
Just because a node is SR capable and receives an SR-MPLS-in-UDP | ||||
packet does not mean that it performs SR processing on the packet. | ||||
Only routers identified by SIDs in the SR stack need to do such | ||||
processing. | ||||
Routers that are not addressed by the destination address in the IP | ||||
header simply treat the packet as a normal UDP-in-IP packet carrying | ||||
out normal TTL processing and if the packet is still live routing the | ||||
packet according to the local FIB and applying hashing to resolve any | ||||
ECMP choices. | ||||
This is important because it means that the SR stack can be kept | ||||
relatively small and the packet can be steered through the network | ||||
using shortest path first routing between selected SR nodes. | ||||
5.4. SR Transit Nodes | ||||
An SR capable node that is addressed by the top most SID in the stack | ||||
when that is not the last SID in the stack (i.e., the S bit is not | ||||
set) is an SR transit node. When an SR transit node receives an SR- | ||||
MPLS-in-UDP packet that is addressed to it, it acts as follows. | ||||
o Perform TTL processing as normal for an IP packet. | ||||
o Determine that the packet is addressed to the local node. | ||||
o Find that the payload is UDP and that the destination port | ||||
indicates MPLS-in-UDP. | ||||
o Strip the IP and UDP headers. | ||||
o Examine the label at the top of the stack and process according to | ||||
the FIB entry (see Section 4.1. | ||||
* If the top label identifies this node then no PHP was used on | ||||
the incoming segment and the label is popped. Continue the | ||||
processing with the new top label. | ||||
* Retain the value of the top label. | ||||
* If the top label was advertised requesting PHP, pop the label. | ||||
(Note that the case where this is the last label in the stack | ||||
is covered in Section 5.5.) | ||||
o Encapsulate the packet in UDP with the destination port set to | ||||
6635 (or 6636 for DTLS) and the source port set for entropy. The | ||||
entropy value SHOULD be retained from the received UDP header or | ||||
MAY be freshly generated since this is a new UDP tunnel (see | ||||
Section 4.2.3). | ||||
o Encapsulate the packet in IP with the IP source address set to | ||||
this transit router, and the destination address set to the | ||||
address corresponding to the SID for the label value retained | ||||
earlier. | ||||
o Send the packet into the IP network routing the packet according | ||||
to the local FIB and applying hashing to resolve any ECMP choices. | ||||
5.5. Penultimate SR Transit Nodes | ||||
The penultimate SR transit node is an SR transit node as described in | ||||
Section 5.4 where the top label is the last label on the stack. When | ||||
a penultimate SR transit node receives an SR-MPLS-in-UDP packet that | ||||
is addressed to it, it processes as for any other transit node (see | ||||
Section 5.4) except for a special case if PHP is supported for the | ||||
final SID. | ||||
If PHP is allowed for the final SID the penultimate SR transit node | ||||
acts as follows: | ||||
o Perform TTL processing as normal for an IP packet. | ||||
o Determine that the packet is addressed to the local node. | ||||
o Find that the payload is UDP and that the destination port | ||||
indicates MPLS-in-UDP. | ||||
o Strip the IP and UDP headers. | ||||
o Examine the label at the top of the stack and process according to | ||||
the FIB entry (see Section 4.1. | ||||
* If the top label identifies this node then no PHP was used on | ||||
the incoming segment and the label is popped. Continue the | ||||
processing with the new top label. | ||||
* Retain the value of the top label. | ||||
* If the top label was advertised requesting PHP, pop the label. | ||||
This will have been the last label in the stack. Push an | ||||
explicit null label [RFC3032] (0 for IPv4 and 2 for IPv6) with | ||||
bottom of stack (S bit) set. | ||||
o Encapsulate the packet in UDP with the destination port set to | ||||
6635 (or 6636 for DTLS) and the source port set for entropy. The | ||||
entropy value SHOULD be retained from the received UDP header or | ||||
MAY be freshly generated since this is a new UDP tunnel. | ||||
o Encapsulate the packet in IP with the IP source address set to | ||||
this transit router, and the destination address set to the domain | ||||
egress node IP address corresponding to the SID for the label | ||||
value retained earlier. | ||||
o Send the packet into the IP network routing the packet according | ||||
to the local FIB and applying hashing to resolve any ECMP choices. | ||||
5.5.1. A Note on Segment Routing Paths and Penultimate Hop Popping | ||||
End-to-end SR paths are comprised of multiple segments. The end | When to use IP-based Tunnel: The description in the previous two | |||
point of each segment is identified by a SID in the SID stack. In | sections is based on the assumption that MPLS-over-UDP tunnel is | |||
normal SR processing a penultimate hop is the router that performs SR | used when the nexthop towards the next segment is not MPLS- | |||
routing immediately prior to the end-of-segment router. PHP applies | enabled. However, even in the case where the nexthop towards the | |||
at the penultimate router in a segment. | next segment is MPLS-capable, an MPLS-over-UDP tunnel towards the | |||
next segment could still be used instead due to local policies. | ||||
For instance, in the example as described in Figure 4, assume F is | ||||
now an SR-MPLS-capable transit node while all the other | ||||
assumptions keep unchanged, since F is not identified by a SID in | ||||
the stack and an MPLS-over-UDP tunnel is preferred to an MPLS LSP | ||||
according to local policies, router E would replace the current | ||||
top label with an MPLS-over-UDP tunnel toward router G and send it | ||||
out. | ||||
With SR-MPLS-in-UDP encapsulation, each SR segment is achieved using | IP Header Fields: When encapsulating an MPLS packet in UDP, the | |||
an MPLS-in-UDP tunnel that runs the full length of the segment. The | resulting packet is further encapsulated in IP for transmission. | |||
SR SID stack on a packet is only examined at the head and tail ends | IPv4 or IPv6 may be used according to the capabilities of the | |||
of this segment. Thus, each segment is effectively one hop long in | network. The address fields are set as described in Section 3. | |||
the SR overlay network and if there is any PHP processing it takes | The other IP header fields (such as DSCP code point, or IPv6 Flow | |||
place at the head-end of the segment. | Label) on each UDP-encapsulated segment can be set according to | |||
the operator's policy: they may be copied from the header of the | ||||
incoming packet; they may be promoted from the header of the | ||||
payload packet; they may be set according to instructions | ||||
programmed to be associated with the SID; or they may be | ||||
configured dependent on the outgoing interface and payload. | ||||
5.6. Domain Egress Nodes | Entropy and ECMP: When encapsulating an MPLS packet with an IP | |||
tunnel header that is capable of encoding entropy (such as | ||||
[RFC7510]), the corresponding entropy field (the source port in | ||||
case UDP tunnel) MAY be filled with an entropy value that is | ||||
generated by the encapsulator to uniquely identify a flow. | ||||
However, what constitutes a flow is locally determined by the | ||||
encapsulator. For instance, if the MPLS label stack contains at | ||||
least one entropy label and the encapsulator is capable of reading | ||||
that entropy label, the entropy label value could be directly | ||||
copied to the source port of the UDP header. Otherwise, the | ||||
encapsulator may have to perform a hash on the whole label stack | ||||
or the five-tuple of the SR-MPLS payload if the payload is | ||||
determined as an IP packet. To avoid re-performing the hash or | ||||
hunting for the entropy label each time the packet is encapsulated | ||||
in a UDP tunnel it MAY be desirable that the entropy value | ||||
contained in the incoming packet (i.e., the UDP source port value) | ||||
is retained when stripping the UDP header and is re-used as the | ||||
entropy value of the outgoing packet. | ||||
The domain egress acts as follows: | 5. IANA Considerations | |||
o Perform TTL processing as normal for an IP packet. | This document makes no requests for IANA action. | |||
o Determine that the packet is addressed to the local node. | 6. Security Considerations | |||
o Find that the payload is UDP and that the destination port | The security consideration of [RFC8354] and [RFC7510] apply. DTLS | |||
indicates MPLS-in-UDP. | [RFC6347] SHOULD be used where security is needed on an MPLS-SR-over- | |||
UDP segment. | ||||
o Strip the IP and UDP headers. | It is difficult for an attacker to pass a raw MPLS encoded packet | |||
into a network and operators have considerable experience at | ||||
excluding such packets at the network boundaries. | ||||
o Examine the label at the top of the stack and process according to | It is easy for an ingress node to detect any attempt to smuggle an IP | |||
the FIB entry (see Section 4.1. | packet into the network since it would see that the UDP destination | |||
port was set to MPLS. SR packets not having a destination address | ||||
terminating in the network would be transparently carried and would | ||||
pose no security risk to the network under consideration. | ||||
* If the top label identifies this node then no PHP was used on | Where control plane techniques are used (as described in | |||
the incoming segment and the label is popped. Continue the | Authors' Addresses it is important that these protocols are | |||
processing with the new top label. | adequately secured for the environment in which they are run. | |||
* If there is another label it should be the explicit null. Pop | 7. Contributors | |||
it but retain its value. | ||||
o Forward the payload packet according to its type (as potentially | Ahmed Bashandy | |||
indicated by the value of the popped explicit null label) and the | Individual | |||
local routing/forwarding mechanisms. | Email: abashandy.ietf@gmail.com | |||
6. Contributors | ||||
Clarence Filsfils | Clarence Filsfils | |||
Cisco | Cisco | |||
Email: cfilsfil@cisco.com | Email: cfilsfil@cisco.com | |||
John Drake | John Drake | |||
Juniper | Juniper | |||
Email: jdrake@juniper.net | Email: jdrake@juniper.net | |||
Shaowen Ma | Shaowen Ma | |||
Juniper | Juniper | |||
skipping to change at page 17, line 5 ¶ | skipping to change at page 13, line 30 ¶ | |||
Email: gunter.van_de_velde@nokia.com | Email: gunter.van_de_velde@nokia.com | |||
Tal Mizrahi | Tal Mizrahi | |||
Marvell | Marvell | |||
Email: talmi@marvell.com | Email: talmi@marvell.com | |||
Jeff Tantsura | Jeff Tantsura | |||
Individual | Individual | |||
Email: jefftant@gmail.com | Email: jefftant@gmail.com | |||
7. Acknowledgements | 8. Acknowledgements | |||
Thanks to Joel Halpern, Bruno Decraene, Loa Andersson, Ron Bonica, | Thanks to Joel Halpern, Bruno Decraene, Loa Andersson, Ron Bonica, | |||
Eric Rosen, Jim Guichard, and Gunter Van De Velde for their | Eric Rosen, Jim Guichard, and Gunter Van De Velde for their | |||
insightful comments on this draft. | insightful comments on this draft. | |||
8. IANA Considerations | 9. References | |||
No IANA action is required. | ||||
9. Security Considerations | ||||
TBD. | ||||
10. References | ||||
10.1. Normative References | 9.1. Normative References | |||
[I-D.ietf-isis-encapsulation-cap] | [I-D.ietf-isis-encapsulation-cap] | |||
Xu, X., Decraene, B., Raszuk, R., Chunduri, U., Contreras, | Xu, X., Decraene, B., Raszuk, R., Chunduri, U., Contreras, | |||
L., and L. Jalil, "Advertising Tunnelling Capability in | L., and L. Jalil, "Advertising Tunnelling Capability in | |||
IS-IS", draft-ietf-isis-encapsulation-cap-01 (work in | IS-IS", draft-ietf-isis-encapsulation-cap-01 (work in | |||
progress), April 2017. | progress), April 2017. | |||
[I-D.ietf-isis-segment-routing-extensions] | [I-D.ietf-isis-segment-routing-extensions] | |||
Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A., | Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A., | |||
Gredler, H., Litkowski, S., Decraene, B., and J. Tantsura, | Gredler, H., Litkowski, S., Decraene, B., and J. Tantsura, | |||
"IS-IS Extensions for Segment Routing", draft-ietf-isis- | "IS-IS Extensions for Segment Routing", draft-ietf-isis- | |||
segment-routing-extensions-15 (work in progress), December | segment-routing-extensions-16 (work in progress), April | |||
2017. | 2018. | |||
[I-D.ietf-ospf-encapsulation-cap] | [I-D.ietf-ospf-encapsulation-cap] | |||
Xu, X., Decraene, B., Raszuk, R., Contreras, L., and L. | Xu, X., Decraene, B., Raszuk, R., Contreras, L., and L. | |||
Jalil, "The Tunnel Encapsulations OSPF Router | Jalil, "The Tunnel Encapsulations OSPF Router | |||
Information", draft-ietf-ospf-encapsulation-cap-09 (work | Information", draft-ietf-ospf-encapsulation-cap-09 (work | |||
in progress), October 2017. | in progress), October 2017. | |||
[I-D.ietf-ospf-segment-routing-extensions] | [I-D.ietf-ospf-segment-routing-extensions] | |||
Psenak, P., Previdi, S., Filsfils, C., Gredler, H., | Psenak, P., Previdi, S., Filsfils, C., Gredler, H., | |||
Shakir, R., Henderickx, W., and J. Tantsura, "OSPF | Shakir, R., Henderickx, W., and J. Tantsura, "OSPF | |||
Extensions for Segment Routing", draft-ietf-ospf-segment- | Extensions for Segment Routing", draft-ietf-ospf-segment- | |||
routing-extensions-24 (work in progress), December 2017. | routing-extensions-25 (work in progress), April 2018. | |||
[I-D.ietf-spring-segment-routing-mpls] | [I-D.ietf-spring-segment-routing-mpls] | |||
Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., | Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., | |||
Litkowski, S., and R. Shakir, "Segment Routing with MPLS | Litkowski, S., and R. Shakir, "Segment Routing with MPLS | |||
data plane", draft-ietf-spring-segment-routing-mpls-12 | data plane", draft-ietf-spring-segment-routing-mpls-13 | |||
(work in progress), February 2018. | (work in progress), April 2018. | |||
[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>. | |||
[RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol | [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol | |||
Label Switching Architecture", RFC 3031, | Label Switching Architecture", RFC 3031, | |||
DOI 10.17487/RFC3031, January 2001, | DOI 10.17487/RFC3031, January 2001, | |||
<https://www.rfc-editor.org/info/rfc3031>. | <https://www.rfc-editor.org/info/rfc3031>. | |||
[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>. | |||
[RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | ||||
Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, | ||||
January 2012, <https://www.rfc-editor.org/info/rfc6347>. | ||||
[RFC7510] Xu, X., Sheth, N., Yong, L., Callon, R., and D. Black, | [RFC7510] Xu, X., Sheth, N., Yong, L., Callon, R., and D. Black, | |||
"Encapsulating MPLS in UDP", RFC 7510, | "Encapsulating MPLS in UDP", RFC 7510, | |||
DOI 10.17487/RFC7510, April 2015, | DOI 10.17487/RFC7510, April 2015, | |||
<https://www.rfc-editor.org/info/rfc7510>. | <https://www.rfc-editor.org/info/rfc7510>. | |||
[RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., | [RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., | |||
Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute | Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute | |||
Advertisement", RFC 7684, DOI 10.17487/RFC7684, November | Advertisement", RFC 7684, DOI 10.17487/RFC7684, November | |||
2015, <https://www.rfc-editor.org/info/rfc7684>. | 2015, <https://www.rfc-editor.org/info/rfc7684>. | |||
skipping to change at page 18, line 44 ¶ | skipping to change at page 15, line 24 ¶ | |||
[RFC7981] Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions | [RFC7981] Ginsberg, L., Previdi, S., and M. Chen, "IS-IS Extensions | |||
for Advertising Router Information", RFC 7981, | for Advertising Router Information", RFC 7981, | |||
DOI 10.17487/RFC7981, October 2016, | DOI 10.17487/RFC7981, October 2016, | |||
<https://www.rfc-editor.org/info/rfc7981>. | <https://www.rfc-editor.org/info/rfc7981>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
10.2. Informative References | 9.2. Informative References | |||
[I-D.ietf-6man-segment-routing-header] | [I-D.ietf-6man-segment-routing-header] | |||
Previdi, S., Filsfils, C., Raza, K., Dukes, D., Leddy, J., | Previdi, S., Filsfils, C., Leddy, J., Matsushima, S., and | |||
Field, B., daniel.voyer@bell.ca, d., | d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header | |||
daniel.bernier@bell.ca, d., Matsushima, S., Leung, I., | (SRH)", draft-ietf-6man-segment-routing-header-13 (work in | |||
Linkova, J., Aries, E., Kosugi, T., Vyncke, E., Lebrun, | progress), May 2018. | |||
D., Steinberg, D., and R. Raszuk, "IPv6 Segment Routing | ||||
Header (SRH)", draft-ietf-6man-segment-routing-header-08 | ||||
(work in progress), January 2018. | ||||
[I-D.ietf-mpls-spring-entropy-label] | [I-D.ietf-mpls-spring-entropy-label] | |||
Kini, S., Kompella, K., Sivabalan, S., Litkowski, S., | Kini, S., Kompella, K., Sivabalan, S., Litkowski, S., | |||
Shakir, R., and J. Tantsura, "Entropy label for SPRING | Shakir, R., and J. Tantsura, "Entropy label for SPRING | |||
tunnels", draft-ietf-mpls-spring-entropy-label-08 (work in | tunnels", draft-ietf-mpls-spring-entropy-label-11 (work in | |||
progress), January 2018. | progress), May 2018. | |||
[RFC8354] Brzozowski, J., Leddy, J., Filsfils, C., Maglione, R., | ||||
Ed., and M. Townsley, "Use Cases for IPv6 Source Packet | ||||
Routing in Networking (SPRING)", RFC 8354, | ||||
DOI 10.17487/RFC8354, March 2018, | ||||
<https://www.rfc-editor.org/info/rfc8354>. | ||||
Authors' Addresses | Authors' Addresses | |||
Xiaohu Xu | Xiaohu Xu | |||
Alibaba | Alibaba | |||
Email: xiaohu.xxh@alibaba-inc.com | Email: xiaohu.xxh@alibaba-inc.com | |||
Stewart Bryant | Stewart Bryant | |||
Huawei | Huawei | |||
Email: stewart.bryant@gmail.com | Email: stewart.bryant@gmail.com | |||
Adrian Farrel | Adrian Farrel | |||
Juniper | Juniper | |||
Email: afarrel@juniper.net | Email: afarrel@juniper.net | |||
skipping to change at page 19, line 37 ¶ | skipping to change at page 16, line 14 ¶ | |||
Stewart Bryant | Stewart Bryant | |||
Huawei | Huawei | |||
Email: stewart.bryant@gmail.com | Email: stewart.bryant@gmail.com | |||
Adrian Farrel | Adrian Farrel | |||
Juniper | Juniper | |||
Email: afarrel@juniper.net | Email: afarrel@juniper.net | |||
Ahmed Bashandy | Syed Hassan | |||
Cisco | Cisco | |||
Email: bashandy@cisco.com | Email: shassan@cisco.com | |||
Wim Henderickx | Wim Henderickx | |||
Nokia | Nokia | |||
Email: wim.henderickx@nokia.com | Email: wim.henderickx@nokia.com | |||
Zhenbin Li | Zhenbin Li | |||
Huawei | Huawei | |||
Email: lizhenbin@huawei.com | Email: lizhenbin@huawei.com | |||
End of changes. 55 change blocks. | ||||
368 lines changed or deleted | 209 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |