draft-ietf-mpls-entropy-lsp-ping-03.txt | draft-ietf-mpls-entropy-lsp-ping-04.txt | |||
---|---|---|---|---|
Internet Engineering Task Force N. Akiya | MPLS Working Group N. Akiya | |||
Internet-Draft Big Switch Networks | Internet-Draft Big Switch Networks | |||
Updates: 4379, 6424, 6790 (if approved) G. Swallow | Updates: 4379, 6424, 6790 (if approved) G. Swallow | |||
Intended status: Standards Track C. Pignataro | Intended status: Standards Track C. Pignataro | |||
Expires: November 19, 2016 Cisco | Expires: February 12, 2017 Cisco | |||
A. Malis | A. Malis | |||
Huawei Technologies | Huawei Technologies | |||
S. Aldrin | S. Aldrin | |||
May 18, 2016 | August 11, 2016 | |||
Label Switched Path (LSP) and Pseudowire (PW) Ping/Trace over | Label Switched Path (LSP) and Pseudowire (PW) Ping/Trace over | |||
MPLS Network using Entropy Labels (EL) | MPLS Network using Entropy Labels (EL) | |||
draft-ietf-mpls-entropy-lsp-ping-03 | draft-ietf-mpls-entropy-lsp-ping-04 | |||
Abstract | Abstract | |||
The Multiprotocol Label Switching (MPLS) Label Switched Path (LSP) | Multiprotocol Label Switching (MPLS) Label Switched Path (LSP) Ping | |||
Ping and Traceroute are used to exercise specific paths of Equal-Cost | and Traceroute are methods used to test Equal-Cost Multipath (ECMP) | |||
Multipath (ECMP). When LSP is signaled to use Entropy Label (EL) | paths. Ping is known as a connectivity verification method and | |||
described in RFC 6790, the ability for LSP Ping and Traceroute | Traceroute as a fault isolation method, as described in RFC 4379. | |||
operation to discover and exercise ECMP paths has been lost in | When an LSP is signaled using the Entropy Label (EL) described in RFC | |||
scenarios which LSRs apply deviating load balance techniques. One | 6790, the ability for LSP Ping and Traceroute operations to discover | |||
such scenario is when some LSRs apply EL based load balancing while | and exercise ECMP paths is lost for scenarios where LSRs apply | |||
other LSRs apply non-EL based load balancing (ex: IP). Another | different load balancing techniques. One such scenario is when some | |||
scenario is when EL based LSP is stitched with another LSP which can | LSRs apply EL-based load balancing while other LSRs apply non-EL | |||
be EL based or non-EL based. | based load balancing (e.g., IP). Another scenario is when an EL- | |||
based LSP is stitched with another LSP which can be EL-based or non- | ||||
EL based. | ||||
This document extends the MPLS LSP Ping and Traceroute mechanisms to | This document extends the MPLS LSP Ping and Traceroute multipath | |||
restore the ability of exercising specific paths of ECMP over LSP | mechanisms in RFC 6424 to allow the ability of exercising LSPs which | |||
which make use of the Entropy Label. This document updates RFC 4379, | make use of the EL. This document updates RFC 4379, RFC 6424, and | |||
RFC 6424, and RFC 6790. | RFC 6790. | |||
Requirements Language | Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
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 | |||
skipping to change at page 2, line 12 ¶ | skipping to change at page 2, line 15 ¶ | |||
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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on November 19, 2016. | This Internet-Draft will expire on February 12, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.2. Prerequisite . . . . . . . . . . . . . . . . . . . . . . 4 | 1.2. Background . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
1.3. Background . . . . . . . . . . . . . . . . . . . . . . . 4 | ||||
2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3. Multipath Type 9 . . . . . . . . . . . . . . . . . . . . . . 7 | 3. Multipath Type 9 . . . . . . . . . . . . . . . . . . . . . . 7 | |||
4. Pseudowire Tracing . . . . . . . . . . . . . . . . . . . . . 7 | 4. Pseudowire Tracing . . . . . . . . . . . . . . . . . . . . . 7 | |||
5. Initiating LSR Procedures . . . . . . . . . . . . . . . . . . 8 | 5. Entropy Label FEC . . . . . . . . . . . . . . . . . . . . . . 8 | |||
6. Responder LSR Procedures . . . . . . . . . . . . . . . . . . 9 | 6. DS Flags: L and E . . . . . . . . . . . . . . . . . . . . . . 9 | |||
6.1. IP Based Load Balancer & Not Pushing ELI/EL . . . . . . . 10 | 7. New Multipath Information Type: TBD4 . . . . . . . . . . . . 10 | |||
6.2. IP Based Load Balancer & Pushes ELI/EL . . . . . . . . . 11 | 8. Initiating LSR Procedures . . . . . . . . . . . . . . . . . . 11 | |||
6.3. Label Based Load Balancer & Not Pushing ELI/EL . . . . . 12 | 9. Responder LSR Procedures . . . . . . . . . . . . . . . . . . 13 | |||
6.4. Label Based Load Balancer & Pushes ELI/EL . . . . . . . . 12 | 9.1. IP Based Load Balancer & Not Pushing ELI/EL . . . . . . . 14 | |||
6.5. Flow Aware MS-PW Stitching LSR . . . . . . . . . . . . . 13 | 9.2. IP Based Load Balancer & Pushes ELI/EL . . . . . . . . . 14 | |||
7. Entropy Label FEC . . . . . . . . . . . . . . . . . . . . . . 13 | 9.3. Label Based Load Balancer & Not Pushing ELI/EL . . . . . 15 | |||
8. DS Flags: L and E . . . . . . . . . . . . . . . . . . . . . . 14 | 9.4. Label Based Load Balancer & Pushes ELI/EL . . . . . . . . 16 | |||
9. New Multipath Information Type: TBD4 . . . . . . . . . . . . 15 | 9.5. Flow-Aware MS-PW Stitching LSR . . . . . . . . . . . . . 17 | |||
10. Supported and Unsupported Cases . . . . . . . . . . . . . . . 16 | 10. Supported and Unsupported Cases . . . . . . . . . . . . . . . 17 | |||
11. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | |||
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | |||
12.1. DS Flags . . . . . . . . . . . . . . . . . . . . . . . . 19 | 12.1. Entropy Label FEC . . . . . . . . . . . . . . . . . . . 19 | |||
12.2. Multpath Type . . . . . . . . . . . . . . . . . . . . . 19 | 12.2. DS Flags . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
12.3. Entropy Label FEC . . . . . . . . . . . . . . . . . . . 19 | 12.3. Multipath Type . . . . . . . . . . . . . . . . . . . . . 20 | |||
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 | 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 | |||
14. Contributing Authors . . . . . . . . . . . . . . . . . . . . 20 | 14. Contributing Authors . . . . . . . . . . . . . . . . . . . . 20 | |||
15. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 15. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
15.1. Normative References . . . . . . . . . . . . . . . . . . 20 | 15.1. Normative References . . . . . . . . . . . . . . . . . . 20 | |||
15.2. Informative References . . . . . . . . . . . . . . . . . 20 | 15.2. Informative References . . . . . . . . . . . . . . . . . 21 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
1. Introduction | 1. Introduction | |||
1.1. Terminology | 1.1. Terminology | |||
The following acronyms/terminologies are used in this document: | The following acronyms and terms are used in this document: | |||
o MPLS - Multiprotocol Label Switching. | o MPLS - Multiprotocol Label Switching. | |||
o LSP - Label Switched Path. | o LSP - Label Switched Path. | |||
o LSR - Label Switching Router. | o LSR - Label Switching Router. | |||
o FEC - Forwarding Equivalent Class. | o FEC - Forwarding Equivalent Class. | |||
o ECMP - Equal-Cost Multipath. | o ECMP - Equal-Cost Multipath. | |||
o EL - Entropy Label. | o EL - Entropy Label. | |||
o ELI - Entropy Label Indicator. | o ELI - Entropy Label Indicator. | |||
o GAL - Generic Associated Channel Label. | o GAL - Generic Associated Channel Label. | |||
o MS-PW - Multi-Segment Pseudowire. | o MS-PW - Multi-Segment Pseudowire. | |||
o Initiating LSR - LSR which sends MPLS echo request. | o Initiating LSR - LSR which sends an MPLS echo request. | |||
o Responder LSR - LSR which receives MPLS echo request and sends | ||||
MPLS echo reply. | ||||
o IP Based Load Balancer - LSR which load balances on fields from IP | o Responder LSR - LSR which receives an MPLS echo request and sends | |||
header (and possibly fields from upper layers), and does not | an MPLS echo reply. | |||
consider entropy label from label stack (i.e. Flow Label or | ||||
Entropy Label) for load balancing purpose. | ||||
o Label Based Load Balancer - LSR which load balances on entropy | o IP-Based Load Balancer - LSR which load balances on fields from an | |||
label from label stack (i.e. Flow Label or Entropy Label), and | IP header (and possibly fields from upper layers), and does not | |||
does not consider fields from IP header (and possibly fields from | consider an entropy label from an MPLS label stack (i.e., flow | |||
upper layers) for load balancing purpose. | label [RFC6391] or entropy label [RFC6790]) for load balancing | |||
purposes. | ||||
o Label and IP Based Load Balancer - LSR which load balances on both | o Label-Based Load Balancer - LSR which load balances on an entropy | |||
labels from label stack (including Flow Label or Entropy Label if | label from an MPLS label stack (i.e., flow label or entropy | |||
present) and fields from IP header (and possibly fields from upper | label), and does not consider fields from an IP header (and | |||
layers). | possibly fields from upper layers) for load balancing purposes. | |||
1.2. Prerequisite | o Label and IP-Based Load Balancer - LSR which load balances on both | |||
entropy labels from an MPLS label stack and fields from an IP | ||||
header (and possibly fields from upper layers). | ||||
MPLS implementations employ wide variety of load balancing techniques | 1.2. Background | |||
in terms of fields used for hash "keys". The mechanisms in [RFC4379] | ||||
updated by [RFC6424] are designed to provide multipath support for | ||||
subset of techniques. Intent of this document is to restore | ||||
multipath support for those supported techniques which have been | ||||
compromised by the introduction of [RFC6790] (i.e. Entropy Labels). | ||||
Section 10 describes supported and unsupported cases, and it may be | ||||
useful for one to visit this section first. | ||||
1.3. Background | MPLS implementations employ a wide variety of load balancing | |||
techniques in terms of fields used for hash "keys". The mechanisms | ||||
in [RFC4379] and updated by [RFC6424] are designed to provide | ||||
multipath support for a subset of techniques. The intent of this | ||||
document is to provide multipath support for the supported techniques | ||||
which are compromised by the use of ELs [RFC6790]. Section 10 | ||||
describes supported and unsupported cases, and it may be useful for | ||||
the reader to first review this section. | ||||
Section 3.3.1 of [RFC4379] specifies multipath information encoding | The Downstream Detailed Mapping (DDMAP) TLV [RFC6424] provides | |||
in Downstream Mapping (DSMAP) TLV (Section 3.3 of [RFC4379]) and | multipath information which can be used by an LSP Ping initiator to | |||
Downstream Detailed Mapping (DDMAP) TLV (Section 3.3 of [RFC6424]) | trace and validate ECMP paths between an ingress and egress. The | |||
which can be used by LSP Ping initiator to trace and validate all | multipath information encodings defined by [RFC6424] are sufficient | |||
ECMP paths between ingress and egress. While the multipath | when all the LSRs along the path(s), between ingress and egress, | |||
information encoding is common to both the Downstream Mapping (DSMAP) | consider the same set of "keys" as input for load balancing | |||
TLV and the Downstream Detailed Mapping (DDMAP) TLV, the former has | algorithms, e.g. either all IP-based or all label-based. | |||
been deprecated by [RFC6424] and this specification only concerns | ||||
itself with the latter. The multipath information encodings are | ||||
sufficient when all the LSRs along the path(s), between ingress and | ||||
egress, consider same set of "keys" as input for load balancing | ||||
algorithm: all IP based or all label based. | ||||
With introduction of [RFC6790], it is quite normal to see set of LSRs | With the introduction of [RFC6790], some LSRs may perform load | |||
performing load balancing based on EL/ELI while others still follow | balancing based on labels while others may be IP-based. This results | |||
the traditional way (IP based). This results in LSP Ping initiator | in an LSP Ping initiator to not be able to trace and validate all the | |||
not be able to trace and validate all ECMP paths in following | ECMP paths in the following scenarios: | |||
scenarios: | ||||
o One or more transit LSRs along LSP with ELI/EL in label stack do | o One or more transit LSRs along an LSP with ELI/EL in label stack | |||
not perform ECMP load balancing based on EL (hashes based on | do not perform ECMP load balancing based on EL (hashes based on | |||
"keys" including IP destination address). This scenario is not | "keys" including the IP destination address). This scenario is | |||
only possible but quite common due transit LSRs not implementing | not only possible but quite common due to transit LSRs not | |||
[RFC6790] or transit LSRs implementing [RFC6790] but not | implementing [RFC6790] or transit LSRs implementing [RFC6790], but | |||
implementing suggested transit LSR behavior in Section 4.3 of | not implementing the suggested transit LSR behavior in Section 4.3 | |||
[RFC6790]. | of [RFC6790]. | |||
o Two or more LSPs stitched together with at least one of these LSP | o Two or more LSPs stitched together with at least one of these LSPs | |||
pushing ELI/EL in label stack. Such scenarios are described in | pushing ELI/EL into the label stack. | |||
[I-D.ravisingh-mpls-el-for-seamless-mpls]. | ||||
These scenarios will be quite common because every deployment of | These scenarios can be quite common because deployments of [RFC6790] | |||
[RFC6790] will invariably end up with nodes that support ELI/EL and | typically have a mixture of nodes that support ELI/EL and nodes that | |||
nodes that do not. There will typically be areas that support ELI/EL | do not. There will also typically be a mixture of areas that support | |||
and areas that do not. | ELI/EL and areas that do not. | |||
As pointed out in [RFC6790] the procedures of [RFC4379] (and | As pointed out in [RFC6790], the procedures of [RFC4379] (and | |||
consequently of [RFC6424]) with respect to multipath information type | consequently of [RFC6424]) with respect to multipath information type | |||
{9} are incomplete. However [RFC6790] does not actually update | {9} are incomplete. However, [RFC6790] does not actually update | |||
[RFC4379]. Further the specific EL location is not clearly defined, | [RFC4379]. Further, the specific EL location is not clearly defined, | |||
particularly in the case of Flow Aware Pseudowires [RFC6391]. This | particularly in the case of Flow Aware Pseudowires [RFC6391]. This | |||
document defines a new FEC Stack sub-TLV for the Entropy Label. | document defines a new FEC Stack sub-TLV for the entropy label. | |||
Section 3 of this document updates the procedures for multipath | Section 3 of this document updates the procedures for multipath | |||
information type {9} described in [RFC4379] and applicable to | information type {9} described in [RFC4379] and applicable to | |||
[RFC6424]. The rest of this document describes extensions required | [RFC6424]. The rest of this document describes extensions required | |||
to restore ECMP discovery and tracing capabilities for scenarios | to restore ECMP discovery and tracing capabilities for the scenarios | |||
described. | described. | |||
[RFC4379], [RFC6424], and this document will support IP-based load | ||||
balancers and label-based load balancers which limit their hash to | ||||
the first (top-most) or only entropy label in the label stack. Other | ||||
use cases (refer to Section 10) are out of scope. | ||||
2. Overview | 2. Overview | |||
[RFC4379] describes LSP traceroute as an operation where the | [RFC4379] describes LSP traceroute as an operation where the | |||
initiating LSR send a series of MPLS echo requests towards the same | initiating LSR sends a series of MPLS echo requests towards the same | |||
destination. The first packet in the series have the TTL set to 1. | destination. The first packet in the series has the TTL set to 1. | |||
When the echo reply is received from the LSR one hop away the second | When the echo reply is received from the LSR one hop away, the second | |||
echo request in the series is sent with the TTL set to 2, for each | echo request in the series is sent with the TTL set to 2. For each | |||
echo request the TLL is incremented by one until a response is | additional echo request the TLL is incremented by one until a | |||
received from the intended destination. Initiating LSR discovers and | response is received from the intended destination. The initiating | |||
exercises ECMP by obtaining multipath information from each transit | LSR discovers and exercises ECMP by obtaining multipath information | |||
LSR and using specific destination IP address or specific entropy | from each transit LSR and using a specific destination IP address or | |||
label. | specific entropy label. | |||
Notion of {x, y, z} from here on refers to Multipath information | From here on, the notation {x, y, z} refers to multipath information | |||
types x, y or z. | types x, y or z. Multipath information types are defined in | |||
Section 3.3 of [RFC4379]. | ||||
LSP Ping initiating LSR sends MPLS echo request with multipath | The LSR initiating LSP Ping sends an MPLS echo request with multipath | |||
information. This multipath information is described in DDMAP TLV of | information. This multipath information is described in the echo | |||
echo request, and may contain set of IP addresses or set of labels. | request's DDMAP TLV, and may contain a set of IP addresses or a set | |||
Multipath information types {2, 4, 8} carry set of IP addresses and | of labels. Multipath information types {2, 4, 8} carry a set of IP | |||
multipath information type {9} carries set of labels. Responder LSR | addresses, and multipath information type {9} carries a set of | |||
(receiver of MPLS echo request) will determine the subset of | labels. The responder LSR (the receiver of the MPLS echo request) | |||
initiator specified multipath information which load balances to each | will determine the subset of initiator-specified multipath | |||
downstream (outgoing interface). Responder LSR sends MPLS echo reply | information which load balances to each downstream (outgoing | |||
with resulting multipath information per downstream (outgoing | interface). The responder LSR sends an MPLS echo reply with | |||
interface) back to the initiating LSR. Initiating LSR is then able | resulting multipath information per downstream (outgoing interface) | |||
to use specific IP destination address or specific label to exercise | back to the initiating LSR. The initiating LSR is then able to use a | |||
specific IP destination address or a specific label to exercise a | ||||
specific ECMP path on the responder LSR. | specific ECMP path on the responder LSR. | |||
Current behavior is problematic in following scenarios: | Current behavior is problematic in following scenarios: | |||
o Initiating LSR sends IP multipath information, but responder LSR | o The initiating LSR sends IP multipath information, but the | |||
load balances on labels. | responder LSR load balances on labels. | |||
o Initiating LSR sends label multipath information, but responder | o The initiating LSR sends label multipath information, but the | |||
LSR load balances on IP addresses. | responder LSR load balances on IP addresses. | |||
o Initiating LSR sends existing multipath information to LSR which | o The initiating LSR sends existing multipath information to an LSR | |||
pushes ELI/EL in label stack, but the initiating LSR can only | which pushes ELI/EL in the label stack, but the initiating LSR can | |||
continue to discover and exercise specific path of ECMP, if the | only continue to discover and exercise specific paths of the ECMP, | |||
LSR which pushes ELI/EL responds with both IP addresses and | if the LSR which pushes ELI/EL responds with both IP addresses and | |||
associated EL corresponding to each IP address. This is because: | the associated EL corresponding to each IP address. This is | |||
because: | ||||
* ELI/EL pushing LSR that is a stitching point will load balance | * An ELI/EL pushing LSR that is a stitching point will load | |||
based on IP address. | balance based on the IP address. | |||
* Downstream LSR(s) of ELI/EL pushing LSR may load balance based | * Downstream LSR(s) of an ELI/EL pushing LSR may load balance | |||
on ELs. | based on ELs. | |||
o Initiating LSR sends one of existing multipath information to ELI/ | o The initiating LSR sends existing multipath information to an ELI/ | |||
EL pushing LSR, but initiating LSR can only continue to discover | EL pushing LSR, but the initiating LSR can only continue to | |||
and exercise specific path of ECMP if ELI/EL pushing LSR responds | discover and exercise specific paths of ECMP, if the ELI/EL | |||
with both labels and associated EL corresponding to label. This | pushing LSR responds with both labels and associated EL | |||
is because: | corresponding to the label. This is because: | |||
* ELI/EL pushing LSR that is a stitching point will load balance | * An ELI/EL pushing LSR that is a stitching point will load | |||
based on EL from previous LSP and pushes new EL. | balance based on EL from the previous LSP and pushes a new EL. | |||
* Downstream LSR(s) of ELI/EL pushing LSR may load balance based | * Downstream LSR(s) of ELI/EL pushing LSR may load balance based | |||
on new ELs. | on new ELs. | |||
The above scenarios point to how the existing multipath information | The above scenarios demonstrate the existing multipath information is | |||
is insufficient when LSP traceroute is operated on an LSP with | insufficient when LSP traceroute is used on an LSP with entropy | |||
Entropy Labels described by [RFC6790]. Therefore, this document | labels [RFC6790]. This document defines a new multipath information | |||
defines a multipath information type to be used in the DDMAP of MPLS | type to be used in the DDMAP of MPLS echo request/reply packets for | |||
echo request/reply packets in Section 9. | [RFC6790] LSPs. | |||
In addition, responder LSR can reply with empty multipath information | The responder LSR can reply with empty multipath information if no IP | |||
if no IP address set or label set from received multipath information | address is set or label set is received with the multipath | |||
matched load balancing to a downstream. Empty return is also | information. An empty return is also possible if an initiating LSR | |||
possible if initiating LSR sends multipath information of one type, | sends multipath information of one type, IP address or label, but the | |||
IP address or label, but responder LSR load balances on the other | responder LSR load balances on the other type. To disambiguate | |||
type. To disambiguate between the two results, this document | between the two results, this document introduces new flags in the | |||
introduces new flags in the DDMAP TLV to allow responder LSR to | DDMAP TLV to allow the responder LSR to describe the load balancing | |||
describe the load balance technique being used. | technique being used. | |||
It is required that all LSRs along the LSP understand new flags as | All LSRs along the LSP need to be able to understand the new flags | |||
well as new multipath information type. It is also required that | and the new multipath information type. It is also required that the | |||
initiating LSR can select both IP destination address and label to | initiating LSR can select both the IP destination address and label | |||
use on transmitting MPLS echo request packets. Two additional DS | to use when transmitting MPLS echo request packets. Two additional | |||
Flags are defined for the DDMAP TLV in Section 8. These two flags | DS Flags are defined for the DDMAP TLV in Section 6. These two flags | |||
are used by the responder LSR to describe its load balance behavior | are used by the responder LSR to describe its load balance behavior | |||
on received MPLS echo request. | on a received MPLS echo request. | |||
Note that the terms "IP Based Load Balancer", "Label Based Load | Note that the terms "IP-Based Load Balancer" and "Label-Based Load | |||
Balancer" and "Label Based Load Balancer" are in context of how | Balancer" are in context of how a received MPLS echo request is | |||
received MPLS echo request is handled by the responder LSR. | handled by the responder LSR. | |||
3. Multipath Type 9 | 3. Multipath Type 9 | |||
This section defines to which labels multipath type {9} applies. | ||||
[RFC4379] defined multipath type {9} for tracing of LSPs where label | [RFC4379] defined multipath type {9} for tracing of LSPs where label | |||
based load-balancing is used. However, as pointed out in [RFC6790], | based load balancing is used. However, as pointed out in [RFC6790], | |||
the procedures for using this type are incomplete as the specific | the procedures for using this type are incomplete as the specific | |||
location of the label was not defined. It was assumed that the | location of the label was not defined. It was assumed that the | |||
presence of multipath type {9} implied the value of the bottom-of- | presence of multipath type {9} implied the value of the bottom-of- | |||
stack label should be varied by the values indicated by multipath to | stack label should be varied by the values indicated by multipath to | |||
determine their respective out-going interfaces. | determine the respective outgoing interfaces. | |||
Section 7 defines a new FEC-Stack sub-TLV to indicate an entropy | Section 5 defines a new FEC-Stack sub-TLV to indicate an entropy | |||
label. These labels may appear anywhere in a label stack. | label. These labels MAY appear anywhere in a label stack. | |||
Multipath type {9} applies to the first label in the label-stack that | Multipath type {9} applies to the first label in the label stack that | |||
corresponds to an EL-FEC. If no such label is found, it applies to | corresponds to an EL-FEC. If no such label is found, it applies to | |||
the label at the bottom of the label stack. | the label at the bottom of the label stack. | |||
4. Pseudowire Tracing | 4. Pseudowire Tracing | |||
This section defines procedures for tracing pseudowires. These | This section defines procedures for tracing pseudowires. These | |||
procedures pertain to the use of multipath information type {9} as | procedures pertain to the use of multipath information type {9} as | |||
well as type {TBD4}. In all cases below, when a control word is in | well as type {TBD4}. In all cases below, when a control word is in | |||
use the N-flag in the DDMAP MUST be set. Note that when a control | use, the N-flag in the DDMAP MUST be set. Note that when a control | |||
word is not in use the returned DDMAPs may not be accurate. | word is not in use, the returned DDMAPs may not be accurate. | |||
In order to trace a non Flow-Aware Pseudowire the initiator includes | In order to trace a non-flow-aware Pseudowire, the initiator includes | |||
an EL-FEC instead of the appropriate PW-FEC at the bottom of the FEC- | an EL-FEC instead of the appropriate PW-FEC at the bottom of the FEC | |||
Stack. Tracing in this way will cause compliant routers to return | stack. Tracing in this way will cause compliant routers to return | |||
the proper outgoing interface. Note that this procedure only traces | the proper outgoing interface. Note that this procedure only traces | |||
to the end of the MPLS LSP that is under test and will not verify the | to the end of the MPLS LSP that is under test and will not verify the | |||
PW FEC. To actually verify the PW-FEC or in the case of a MS-PW, to | PW FEC. To actually verify the PW FEC or in the case of a MS-PW, to | |||
determine the next pseudowire label value, the initiator MUST repeat | determine the next pseudowire label value, the initiator MUST repeat | |||
that step of the trace, (i.e., repeating the TTL value used) but with | that step of the trace (i.e., repeating the TTL value used) but with | |||
the FEC-Stack modified to contain the appropriate PW-FEC. Note that | the FEC Stack modified to contain the appropriate PW FEC. Note that | |||
these procedures are applicable to scenarios which an initiator is | these procedures are applicable to scenarios where an initiator is | |||
able to vary the bottom label (i.e. pseudowire label). Possible | able to vary the bottom label (i.e., Pseudowire label). Possible | |||
scenarios are tracing multiple non Flow-Aware Pseudowires on the same | scenarios are tracing multiple non-flow-aware Pseudowires on the same | |||
endpoints or tracing a non Flow-Aware Pseudowire provisioned with | endpoints or tracing a non-flow-aware Pseudowire provisioned with | |||
multiple pseudowire labels. | multiple Pseudowire labels. | |||
In order to trace a Flow Aware Pseudowire, the initiator includes an | In order to trace a flow-aware Pseudowire [RFC6391], the initiator | |||
EL-FEC at the bottom of the FEC-Stack and pushes the appropriate PW- | includes an EL FEC at the bottom of the FEC Stack and pushes the | |||
FEC onto the FEC-Stack. | appropriate PW FEC onto the FEC Stack. | |||
In order to trace through non-compliant routers the initiator forms | In order to trace through non-compliant routers, the initiator forms | |||
an MPLS echo request message and includes a DDMAP with multipath type | an MPLS echo request message and includes a DDMAP with multipath type | |||
{9}. For a non Flow-Aware Pseudowire it includes the appropriate PW- | {9}. For a non-flow-aware Pseudowire it includes the appropriate PW | |||
FEC in the FEC-Stack. For a Flow Aware Pseudowire, the initiator | FEC in the FEC Stack. For a flow-aware Pseudowire, the initiator | |||
includes a NIL-FEC at the bottom of the FEC-Stack and pushes the | includes a Nil FEC at the bottom of the FEC Stack and pushes the | |||
appropriate PW-FEC onto the FEC-Stack. | appropriate PW FEC onto the FEC Stack. | |||
5. Initiating LSR Procedures | 5. Entropy Label FEC | |||
In order to facilitate the flow of the following text we speak in | The entropy label indicator (ELI) is a reserved label that has no | |||
terms of a boolean called EL_LSP maintained by the initiating LSR. | explicit FEC associated, and has label value 7 assigned from the | |||
This value controls the multipath information type to be used in | reserved range. Use the Nil FEC as the Target FEC Stack sub-TLV to | |||
transmitted echo request packets. When the initiating LSR is | account for ELI in a Target FEC Stack TLV. | |||
transmitting an echo request packet with DDMAP with a non-zero | ||||
multipath information type, then EL_LSP boolean MUST be consulted to | ||||
determine the multipath information type to use. | ||||
In addition to procedures described in [RFC4379] as updated by | The entropy label (EL) is a special purpose label with the label | |||
Section 3 and [RFC6424], initiating LSR MUST operate with following | value being discretionary (i.e., the label value is not from the | |||
procedures. | reserved range). For LSP verification mechanics to perform its | |||
purpose, it is necessary for a Target FEC Stack sub-TLV to clearly | ||||
describe the EL, particularly in the scenario where the label stack | ||||
does not carry ELI (e.g., flow-aware Pseudowire [RFC6391]). | ||||
Therefore, this document defines an EL FEC sub-TLV (TBD1, see | ||||
Section 12.1) to allow a Target FEC Stack sub-TLV to be added to the | ||||
Target FEC Stack to account for EL. | ||||
The Length is 4. Labels are 20-bit values treated as numbers. | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Label | MBZ | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Figure 1: Entropy Label FEC | ||||
Label is the actual label value inserted in the label stack; the MBZ | ||||
field MUST be zero when sent and ignored on receipt. | ||||
6. DS Flags: L and E | ||||
Two flags, L and E, are added to the DS Flags field of the DDMAP TLV. | ||||
Both flags MUST NOT be set in echo request packets when sending, and | ||||
SHOULD be ignored when received. Zero, one or both new flags MUST be | ||||
set in echo reply packets. | ||||
DS Flags | ||||
-------- | ||||
0 1 2 3 4 5 6 7 | ||||
+-+-+-+-+-+-+-+-+ | ||||
| MBZ |L|E|I|N| | ||||
+-+-+-+-+-+-+-+-+ | ||||
RFC-Editor-Note: Please update the above figure to place the flag E | ||||
in the bit number TBD2 and the flag L in the bit number TBD3. | ||||
Flag Name and Meaning | ||||
---- ---------------- | ||||
L Label-based load balance indicator | ||||
This flag MUST be set to zero in the echo request. An LSR | ||||
which performs load balancing on a label MUST set this | ||||
flag in the echo reply. An LSR which performs load | ||||
balancing on IP MUST NOT set this flag in the echo | ||||
reply. | ||||
E ELI/EL push indicator | ||||
This flag MUST be set to zero in the echo request. An LSR | ||||
which pushes ELI/EL MUST set this flag in the echo | ||||
reply. An LSR which does not push ELI/EL MUST NOT set | ||||
this flag in the echo reply. | ||||
The two flags result in four load balancing techniques which the echo | ||||
reply generating LSR can indicate: | ||||
o {L=0, E=0} LSR load balances based on IP and does not push ELI/EL. | ||||
o {L=0, E=1} LSR load balances based on IP and pushes ELI/EL. | ||||
o {L=1, E=0} LSR load balances based on labels and does not push | ||||
ELI/EL. | ||||
o {L=1, E=1} LSR load balances based on labels and pushes ELI/EL. | ||||
7. New Multipath Information Type: TBD4 | ||||
One new multipath information type is added to be used in DDMAP TLV. | ||||
This new multipath type has the value of TBD4. | ||||
Key Type Multipath Information | ||||
--- ---------------- --------------------- | ||||
TBD4 IP and label set IP addresses and label prefixes | ||||
Multipath type TBD4 is comprised of three sections. The first | ||||
section describes the IP address set. The second section describes | ||||
the label set. The third section describes another label set which | ||||
associates to either the IP address set or the label set specified in | ||||
the other sections. | ||||
Multipath information type TBD4 has following format: | ||||
0 1 2 3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|IPMultipathType| IP Multipath Length | Reserved(MBZ) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
~ ~ | ||||
| (IP Multipath Information) | | ||||
~ ~ | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|LbMultipathType| Label Multipath Length | Reserved(MBZ) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
~ ~ | ||||
| (Label Multipath Information) | | ||||
~ ~ | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Assoc Label Multipath Length | Reserved(MBZ) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
~ ~ | ||||
| (Associated Label Multipath Information) | | ||||
~ ~ | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Figure 2: Multipath Information Type TBD4 | ||||
o IPMultipathType | ||||
* 0 when "IP Multipath Information" is omitted. Otherwise, one | ||||
of the IP multipath information values: {2, 4, 8}. | ||||
o IP Multipath Information | ||||
* This section is omitted when "IPMultipathType" is 0. | ||||
Otherwise, this section reuses IP multipath information from | ||||
[RFC4379]. Specifically, multipath information for values {2, | ||||
4, 8} can be used. | ||||
o LbMultipathType | ||||
* 0 when "Label Multipath Information" is omitted. Otherwise, | ||||
label multipath information value {9}. | ||||
o Label Multipath Information | ||||
* This section is omitted when "LbMultipathType" is 0. | ||||
Otherwise, this section reuses label multipath information from | ||||
[RFC4379]. Specifically, multipath information for value {9} | ||||
can be used. | ||||
o Associated Label Multipath Information | ||||
* "Assoc Label Multipath Length" is a 16 bit field of multipath | ||||
information which indicates the length in octets of the | ||||
associated label multipath information. | ||||
* "Associated Label Multipath Information" is a list of labels | ||||
with each label described in 24 bits. This section MUST be | ||||
omitted in an MPLS echo request message. A midpoint which | ||||
pushes ELI/EL labels SHOULD include "Assoc Label Multipath | ||||
Information" in its MPLS echo reply message, along with either | ||||
"IP Multipath Information" or "Label Multipath Information". | ||||
Each specified associated label described in this section maps | ||||
to a specific IP address OR label described in the "IP | ||||
Multipath Information" section or "Label Multipath Information" | ||||
section. For example, if three IP addresses are specified in | ||||
the "IP Multipath Information" section, then there MUST be | ||||
three labels described in this section. The first label maps | ||||
to the first IP address specified, the second label maps to the | ||||
second IP address specified, and the third label maps to the | ||||
third IP address specified. | ||||
When a section is omitted, the length for that section MUST BE set to | ||||
zero. | ||||
8. Initiating LSR Procedures | ||||
The following procedure is described in terms of an EL_LSP boolean | ||||
maintained by the initiating LSR. This value controls the multipath | ||||
information type to be used in the transmitted echo request packets. | ||||
When the initiating LSR is transmitting an echo request packet with | ||||
DDMAP with a non-zero multipath information type, then the EL_LSP | ||||
boolean MUST be consulted to determine the multipath information type | ||||
to use. | ||||
In addition to procedures described in [RFC4379], as updated by | ||||
Section 3 and [RFC6424], the initiating LSR MUST operate with the | ||||
following procedures: | ||||
o When the initiating LSR pushes ELI/EL, initialize EL_LSP=True. | o When the initiating LSR pushes ELI/EL, initialize EL_LSP=True. | |||
Else set EL_LSP=False. | Else set EL_LSP=False. | |||
o When the initiating LSR is transmitting non-zero multipath | o When the initiating LSR is transmitting a non-zero multipath | |||
information type: | information type: | |||
* If (EL_LSP), the initiating LSR MUST use multipath information | * If (EL_LSP), the initiating LSR MUST use multipath information | |||
type {TBD4} unless same responder LSR cannot handle type | type {TBD4} unless the responder LSR cannot handle type {TBD4}. | |||
{TBD4}. When the initiating LSR is transmitting multipath | When the initiating LSR is transmitting multipath information | |||
information type {TBD4} in this case, both "IP Multipath | type {TBD4}, both "IP Multipath Information" and "Label | |||
Information" and "Label Multipath Information" MUST be | Multipath Information" MUST be included, and "IP Associated | |||
included, and "IP Associated Label Multipath Information" MUST | Label Multipath Information" MUST be omitted (NULL). | |||
be omitted (NULL). | ||||
* Else the initiating LSR MAY use multipath information type {2, | * Else the initiating LSR MAY use multipath information type {2, | |||
4, 8, 9, TBD4}. When the initiating LSR is transmitting | 4, 8, 9, TBD4}. When the initiating LSR is transmitting | |||
multipath information type {TBD4} in this case, "IP Multipath | multipath information type {TBD4} in this case, "IP Multipath | |||
Information" MUST be included, and "Label Multipath | Information" MUST be included, and "Label Multipath | |||
Information" and "IP Associated Label Multipath Information" | Information" and "IP Associated Label Multipath Information" | |||
MUST be omitted (NULL). | MUST be omitted (NULL). | |||
o When the initiating LSR receives echo reply with {L=0, E=1} in DS | o When the initiating LSR receives echo reply with {L=0, E=1} in DS | |||
flags with valid contents, set EL_LSP=True. | flags with valid contents, set EL_LSP=True. | |||
In following conditions, the initiating LSR may have lost the ability | In the following conditions, the initiating LSR may have lost the | |||
to exercise specific ECMP paths. The initiating LSR MAY continue | ability to exercise specific ECMP paths. The initiating LSR MAY | |||
with "best effort". | continue with "best effort" in the following cases: | |||
o Received echo reply contains empty multipath information. | o Received echo reply contains empty multipath information. | |||
o Received echo reply contains {L=0, E=<any>} DS flags, but does not | o Received echo reply contains {L=0, E=<any>} DS flags, but does not | |||
contain IP multipath information. | contain IP multipath information. | |||
o Received echo reply contains {L=1, E=<any>} DS flags, but does not | o Received echo reply contains {L=1, E=<any>} DS flags, but does not | |||
contain label multipath information. | contain label multipath information. | |||
o Received echo reply contains {L=<any>, E=1} DS flags, but does not | o Received echo reply contains {L=<any>, E=1} DS flags, but does not | |||
contain associated label multipath information. | contain associated label multipath information. | |||
o IP multipath information types {2, 4, 8} sent, and received echo | o IP multipath information types {2, 4, 8} sent, and received echo | |||
reply with {L=1, E=0} in DS flags. | reply with {L=1, E=0} in DS flags. | |||
o Multipath information type {TBD4} sent, and received echo reply | o Multipath information type {TBD4} sent, and received echo reply | |||
with multipath information type other than {TBD4}. | with multipath information type other than {TBD4}. | |||
6. Responder LSR Procedures | 9. Responder LSR Procedures | |||
Common Procedures: | Common Procedures: | |||
o The responder LSR receiving an MPLS echo request packet MUST first | o The responder LSR receiving an MPLS echo request packet MUST first | |||
determine whether or not the initiating LSR supports this LSP Ping | determine whether or not the initiating LSR supports this LSP Ping | |||
and Traceroute extension for Entropy Labels. If either of the | and Traceroute extension for Entropy Labels. If either of the | |||
following conditions are met, the responder LSR SHOULD determine | following conditions are met, the responder LSR SHOULD determine | |||
that the initiating LSR supports this LSP Ping and Traceroute | that the initiating LSR supports this LSP Ping and Traceroute | |||
extension for Entropy Labels. | extension for entropy labels. | |||
1. Received MPLS echo request contains the multipath information | 1. Received MPLS echo request contains the multipath information | |||
type {TBD4}. | type {TBD4}. | |||
2. Received MPLS echo request contains a Target FEC Stack TLV | 2. Received MPLS echo request contains a Target FEC Stack TLV | |||
that includes the Entropy Label FEC. | that includes the entropy label FEC. | |||
If the initiating LSR is determined to not support this LSP Ping | If the initiating LSR is determined to not support this LSP Ping | |||
and Traceroute extension for Entropy Labels, then the responder | and Traceroute extension for entropy labels, then the responder | |||
LSR MUST NOT follow further procedures described in this section. | LSR MUST NOT follow further procedures described in this section. | |||
Specifically, MPLS echo reply packets: | Specifically, MPLS echo reply packets: | |||
* MUST have following DS Flags cleared (i.e., not set): "ELI/EL | * MUST have following DS Flags cleared (i.e., not set): "ELI/EL | |||
push indicator" and "Label based load balance indicator". | push indicator" and "Label-based load balance indicator". | |||
* MUST NOT use multipath information type {TBD4}. | * MUST NOT use multipath information type {TBD4}. | |||
o The responder LSR receiving an MPLS echo request packet with | o The responder LSR receiving an MPLS echo request packet with | |||
multipath information type {TBD4} MUST validate following | multipath information type {TBD4} MUST validate the following | |||
contents. Any deviation MUST result in the responder LSR to | contents. Any deviation MUST result in the responder LSR to | |||
consider the packet as malformed and return code 1 (Malformed echo | consider the packet as malformed and return code 1 ("Malformed | |||
request received) in the MPLS echo reply packet. | echo request received") in the MPLS echo reply packet. | |||
* IP multipath information MUST be included. | * IP multipath information MUST be included. | |||
* Label multipath information MAY be included. | * Label multipath information MAY be included. | |||
* IP associated label multipath information MUST be omitted | * IP associated label multipath information MUST be omitted | |||
(NULL). | (NULL). | |||
Following subsections describe expected responder LSR procedures when | The following subsections describe expected responder LSR procedures | |||
echo reply is to include DDMAP TLVs, based on local load balance | when the echo reply is to include DDMAP TLVs, based on the local load | |||
technique being employed. In case the responder LSR performs | balance technique being employed. In case the responder LSR performs | |||
deviating load balance techniques per downstream basis, appropriate | deviating load balance techniques on a per downstream basis, | |||
procedures matching to each downstream load balance technique MUST be | appropriate procedures matched to each downstream load balance | |||
operated. | technique MUST be followed. | |||
6.1. IP Based Load Balancer & Not Pushing ELI/EL | 9.1. IP Based Load Balancer & Not Pushing ELI/EL | |||
o The responder MUST set {L=0, E=0} in DS flags. | o The responder MUST set {L=0, E=0} in DS flags. | |||
o If multipath information type {2, 4, 8} is received, the responder | o If multipath information type {2, 4, 8} is received, the responder | |||
MUST comply with [RFC4379] and [RFC6424]. | MUST comply with [RFC4379] and [RFC6424]. | |||
o If multipath information type {9} is received, the responder MUST | o If multipath information type {9} is received, the responder MUST | |||
reply with multipath type {0}. | reply with multipath type {0}. | |||
o If multipath information type {TBD4} is received, following | o If multipath information type {TBD4} is received, the following | |||
procedures are to be used: | procedures are to be used: | |||
* The responder MUST reply with multipath information type | * The responder MUST reply with multipath information type | |||
{TBD4}. | {TBD4}. | |||
* "Label Multipath Information" and "Associated Label Multipath | * The "Label Multipath Information" and "Associated Label | |||
Information" sections MUST be omitted (NULL). | Multipath Information" sections MUST be omitted (NULL). | |||
* If no matching IP address is found, then "IPMultipathType" | * If no matching IP address is found, then the "IPMultipathType" | |||
field MUST be set to multipath information type {0} and "IP | field MUST be set to multipath information type {0} and the "IP | |||
Multipath Information" section MUST also be omitted (NULL). | Multipath Information" section MUST also be omitted (NULL). | |||
* If at least one matching IP address is found, then | * If at least one matching IP address is found, then the | |||
"IPMultipathType" field MUST be set to appropriate multipath | "IPMultipathType" field MUST be set to appropriate multipath | |||
information type {2, 4, 8} and "IP Multipath Information" | information type {2, 4, 8} and the "IP Multipath Information" | |||
section MUST be included. | section MUST be included. | |||
6.2. IP Based Load Balancer & Pushes ELI/EL | 9.2. IP Based Load Balancer & Pushes ELI/EL | |||
o The responder MUST set {L=0, E=1} in DS flags. | o The responder MUST set {L=0, E=1} in DS flags. | |||
o If multipath information type {9} is received, the responder MUST | o If multipath information type {9} is received, the responder MUST | |||
reply with multipath type {0}. | reply with multipath type {0}. | |||
o If multipath type {2, 4, 8, TBD4} is received, following | o If multipath type {2, 4, 8, TBD4} is received, the following | |||
procedures are to be used: | procedures are to be used: | |||
* The responder MUST respond with multipath type {TBD4}. See | * The responder MUST respond with multipath type {TBD4}. See | |||
Section 9 for details of multipath type {TBD4}. | Section 7 for details of multipath type {TBD4}. | |||
* "Label Multipath Information" section MUST be omitted (i.e. is | ||||
it not there). | ||||
* IP address set specified in received IP multipath information | * The "Label Multipath Information" section MUST be omitted | |||
MUST be used to determine the returning IP/Label pairs. | (i.e., it is not there). | |||
* If received multipath information type was {TBD4}, received | * The IP address set specified in the received IP multipath | |||
"Label Multipath Information" sections MUST NOT be used to | information MUST be used to determine the returning IP/Label | |||
determine the associated label portion of returning IP/Label | ||||
pairs. | pairs. | |||
* If no matching IP address is found, then "IPMultipathType" | * If the received multipath information type was {TBD4}, the | |||
field MUST be set to multipath information type {0} and "IP | received "Label Multipath Information" sections MUST NOT be | |||
used to determine the associated label portion of returning IP/ | ||||
Label pairs. | ||||
* If no matching IP address is found, then the "IPMultipathType" | ||||
field MUST be set to multipath information type {0} and the "IP | ||||
Multipath Information" section MUST be omitted. In addition, | Multipath Information" section MUST be omitted. In addition, | |||
"Assoc Label Multipath Length" MUST be set to 0, and | the "Assoc Label Multipath Length" MUST be set to 0, and the | |||
"Associated Label Multipath Information" section MUST also be | "Associated Label Multipath Information" section MUST also be | |||
omitted. | omitted. | |||
* If at least one matching IP address is found, then | * If at least one matching IP address is found, then the | |||
"IPMultipathType" field MUST be set to appropriate multipath | "IPMultipathType" field MUST be set to appropriate multipath | |||
information type {2, 4, 8} and "IP Multipath Information" | information type {2, 4, 8} and the "IP Multipath Information" | |||
section MUST be included. In addition, "Associated Label | section MUST be included. In addition, the "Associated Label | |||
Multipath Information" section MUST be populated with list of | Multipath Information" section MUST be populated with a list of | |||
labels corresponding to each IP address specified in "IP | labels corresponding to each IP address specified in the "IP | |||
Multipath Information" section. "Assoc Label Multipath Length" | Multipath Information" section. "Assoc Label Multipath Length" | |||
MUST be set to a value representing length in octets of | MUST be set to a value representing the length in octets of the | |||
"Associated Label Multipath Information" field. | "Associated Label Multipath Information" field. | |||
6.3. Label Based Load Balancer & Not Pushing ELI/EL | 9.3. Label Based Load Balancer & Not Pushing ELI/EL | |||
o The responder MUST set {L=1, E=0} in DS flags. | o The responder MUST set {L=1, E=0} in DS flags. | |||
o If multipath information type {2, 4, 8} is received, the responder | o If multipath information type {2, 4, 8} is received, the responder | |||
MUST reply with multipath type {0}. | MUST reply with multipath type {0}. | |||
o If multipath information type {9} is received, the responder MUST | o If multipath information type {9} is received, the responder MUST | |||
comply with [RFC4379] and [RFC6424] as updated by Section 3. | comply with [RFC4379] and [RFC6424] as updated by Section 3. | |||
o If multipath information type {TBD4} is received, following | o If multipath information type {TBD4} is received, the following | |||
procedures are to be used: | procedures are to be used: | |||
* The responder MUST reply with multipath information type | * The responder MUST reply with multipath information type | |||
{TBD4}. | {TBD4}. | |||
* "IP Multipath Information" and "Associated Label Multipath | * The "IP Multipath Information" and "Associated Label Multipath | |||
Information" sections MUST be omitted (NULL). | Information" sections MUST be omitted (NULL). | |||
* If no matching label is found, then "LbMultipathType" field | * If no matching label is found, then the "LbMultipathType" field | |||
MUST be set to multipath information type {0} and "Label | MUST be set to multipath information type {0} and the "Label | |||
Multipath Information" section MUST also be omitted (NULL). | Multipath Information" section MUST also be omitted (NULL). | |||
* If at least one matching label is found, then "LbMultipathType" | * If at least one matching label is found, then the | |||
field MUST be set to appropriate multipath information type {9} | "LbMultipathType" field MUST be set to the appropriate | |||
and "Label Multipath Information" section MUST be included. | multipath information type {9} and the "Label Multipath | |||
Information" section MUST be included. | ||||
6.4. Label Based Load Balancer & Pushes ELI/EL | 9.4. Label Based Load Balancer & Pushes ELI/EL | |||
o The responder MUST set {L=1, E=1} in DS flags. | o The responder MUST set {L=1, E=1} in DS flags. | |||
o If multipath information type {2, 4, 8} is received, the responder | o If multipath information type {2, 4, 8} is received, the responder | |||
MUST reply with multipath type {0}. | MUST reply with multipath type {0}. | |||
o If multipath type {9, TBD4} is received, following procedures are | o If multipath type {9, TBD4} is received, the following procedures | |||
to be used: | are to be used: | |||
* The responder MUST respond with multipath type {TBD4}. | * The responder MUST respond with multipath type {TBD4}. | |||
* "IP Multipath Information" section MUST be omitted. | * The "IP Multipath Information" section MUST be omitted. | |||
* Label set specified in received label multipath information | * The label set specified in the received label multipath | |||
MUST be used to determine the returning Label/Label pairs. | information MUST be used to determine the returning Label/Label | |||
pairs. | ||||
* If received multipath information type was {TBD4}, received | * If received multipath information type was {TBD4}, received | |||
"Label Multipath Information" sections MUST NOT be used to | "Label Multipath Information" sections MUST NOT be used to | |||
determine the associated label portion of returning Label/Label | determine the associated label portion of returning Label/Label | |||
pairs. | pairs. | |||
* If no matching label is found, then "LbMultipathType" field | * If no matching label is found, then the "LbMultipathType" field | |||
MUST be set to multipath information type {0} and "Label | MUST be set to multipath information type {0} and "Label | |||
Multipath Information" section MUST be omitted. In addition, | Multipath Information" section MUST be omitted. In addition, | |||
"Assoc Label Multipath Length" MUST be set to 0, and | "Assoc Label Multipath Length" MUST be set to 0, and the | |||
"Associated Label Multipath Information" section MUST also be | "Associated Label Multipath Information" section MUST also be | |||
omitted. | omitted. | |||
* If at least one matching label is found, then "LbMultipathType" | * If at least one matching label is found, then the | |||
field MUST be set to appropriate multipath information type {9} | "LbMultipathType" field MUST be set to the appropriate | |||
and "Label Multipath Information" section MUST be included. In | multipath information type {9} and the "Label Multipath | |||
addition, "Associated Label Multipath Information" section MUST | Information" section MUST be included. In addition, the | |||
be populated with list of labels corresponding to each label | "Associated Label Multipath Information" section MUST be | |||
specified in "Label Multipath Information" section. "Assoc | populated with a list of labels corresponding to each label | |||
Label Multipath Length" MUST be set to a value representing | specified in the "Label Multipath Information" section. "Assoc | |||
length in octets of "Associated Label Multipath Information" | Label Multipath Length" MUST be set to a value representing the | |||
field. | length in octets of the "Associated Label Multipath | |||
Information" field. | ||||
6.5. Flow Aware MS-PW Stitching LSR | 9.5. Flow-Aware MS-PW Stitching LSR | |||
Stitching LSR that cross-connects Flow Aware Pseudowires behave in | A stitching LSR that cross-connects flow-aware Pseudowires behaves in | |||
one of two ways: | one of two ways: | |||
o Load balances on previous Flow Label, and carries over same Flow | o Load balances on the previous flow label, and carries over the | |||
Label. For this case, stitching LSR is to behave as procedures | same flow label. For this case, the stitching LSR is to behave as | |||
described in Section 6.3. | described in Section 9.3. | |||
o Load balances on previous Flow Label, and replaces Flow Label with | ||||
newly computed. For this case, stitching LSR is to behave as | ||||
procedures described in Section 6.4. | ||||
7. Entropy Label FEC | ||||
Entropy Label Indicator (ELI) is a reserved label that has no | ||||
explicit FEC associated, and has label value 7 assigned from the | ||||
reserved range. Use Nil FEC as Target FEC Stack sub-TLV to account | ||||
for ELI in a Target FEC Stack TLV. | ||||
Entropy Label (EL) is a special purpose label with label value being | ||||
discretionary (i.e. label value may not be from the reserved range). | ||||
For LSP verification mechanics to perform its purpose, it is | ||||
necessary for a Target FEC Stack sub-TLV to clearly describe EL, | ||||
particularly in the scenario where label stack does not carry ELI | ||||
(ex: Flow Aware Pseudowire [RFC6391]). Therefore, this document | ||||
defines a EL FEC to allow a Target FEC Stack sub-TLV to be added to | ||||
the Target FEC Stack to account for EL. | ||||
The Length is 4. Labels are 20-bit values treated as numbers. | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Label | MBZ | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Figure 1: Entropy Label FEC | ||||
Label is the actual label value inserted in the label stack; the MBZ | ||||
fields MUST be zero when sent and ignored on receipt. | ||||
8. DS Flags: L and E | ||||
Two flags, L and E, are added in DS Flags field of the DDMAP TLV. | ||||
Both flags MUST NOT be set in echo request packets when sending, and | ||||
ignored when received. Zero, one or both new flags MUST be set in | ||||
echo reply packets. | ||||
DS Flags | ||||
-------- | ||||
0 1 2 3 4 5 6 7 | ||||
+-+-+-+-+-+-+-+-+ | ||||
| MBZ |L|E|I|N| | ||||
+-+-+-+-+-+-+-+-+ | ||||
RFC-Editor-Note: Please update above figure to place the flag E in | ||||
the bit number TBD2 and the flag L in the bit number TBD3. | ||||
Flag Name and Meaning | ||||
---- ---------------- | ||||
L Label based load balance indicator | ||||
This flag MUST be set to zero in the echo request. LSR | ||||
which performs load balancing on a label MUST set this | ||||
flag in the echo reply. LSR which performs load | ||||
balancing on IP MUST NOT set this flag in the echo | ||||
reply. | ||||
E ELI/EL push indicator | ||||
This flag MUST be set to zero in the echo request. LSR | ||||
which pushes ELI/EL MUST set this flag in the echo | ||||
reply. LSR which does not push ELI/EL MUST NOT set | ||||
this flag in the echo reply. | ||||
Two flags result in four load balancing techniques which echo reply | ||||
generating LSR can indicate: | ||||
o {L=0, E=0} LSR load balances based on IP and does not push ELI/EL. | ||||
o {L=0, E=1} LSR load balances based on IP and pushes ELI/EL. | ||||
o {L=1, E=0} LSR load balances based on label and does not push ELI/ | ||||
EL. | ||||
o {L=1, E=1} LSR load balances based on label and pushes ELI/EL. | ||||
9. New Multipath Information Type: TBD4 | ||||
One new multipath information type is added to be used in DDMAP TLV. | ||||
New multipath type has value of TBD4. | ||||
Key Type Multipath Information | ||||
--- ---------------- --------------------- | ||||
TBD4 IP and label set IP addresses and label prefixes | ||||
Multipath type TBD4 is comprised of three sections. One section to | ||||
describe IP address set. One section to describe label set. One | ||||
section to describe another label set which associates to either IP | ||||
address set or label set specified in the other section. | ||||
Multipath information type TBD4 has following format: | ||||
0 1 2 3 | ||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|IPMultipathType| IP Multipath Length | Reserved(MBZ) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
~ ~ | ||||
| (IP Multipath Information) | | ||||
~ ~ | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|LbMultipathType| Label Multipath Length | Reserved(MBZ) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
~ ~ | ||||
| (Label Multipath Information) | | ||||
~ ~ | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Assoc Label Multipath Length | Reserved(MBZ) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
~ ~ | ||||
| (Associated Label Multipath Information) | | ||||
~ ~ | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
Figure 2: Multipath Information Type TBD4 | ||||
o IPMultipathType | ||||
* 0 when "IP Multipath Information" is omitted. Otherwise one of | ||||
IP multipath information values: {2, 4, 8}. | ||||
o IP Multipath Information | ||||
* This section is omitted when "IPMultipathType" is 0. Otherwise | ||||
this section reuses IP multipath information from [RFC4379]. | ||||
Specifically, multipath information for values {2, 4, 8} can be | ||||
used. | ||||
o LbMultipathType | ||||
* 0 when "Label Multipath Information" is omitted. Otherwise | ||||
label multipath information value {9}. | ||||
o Label Multipath Information | ||||
* This section is omitted when "LbMultipathType" is 0. Otherwise | ||||
this section reuses label multipath information from [RFC4379]. | ||||
Specifically, multipath information for value {9} can be used. | ||||
o Associated Label Multipath Information | ||||
* "Assoc Label Multipath Length" is a 16 bit field of multipath | ||||
information which indicates length in octets of the associated | ||||
label multipath information. | ||||
* "Associated Label Multipath Information" is a list of labels | o Load balances on the previous flow label, and replaces the flow | |||
with each label described in 24 bits. This section MUST be | label with a newly computed label. For this case, the stitching | |||
omitted in an MPLS echo request message. A midpoint which | LSR is to behave as described in Section 9.4. | |||
pushes ELI/EL labels SHOULD include "Assoc Label Multipath | ||||
Information" in its MPLS echo reply message, along with either | ||||
"IP Multipath Information" or "Label Multipath Information". | ||||
Each specified associated label described in this section maps | ||||
to specific IP address OR label described in the "IP Multipath | ||||
Information" section or "Label Multipath Information" section. | ||||
For example, if 3 IP addresses are specified in the "IP | ||||
Multipath Information" section, then there MUST be 3 labels | ||||
described in this section. First label maps to the lowest IP | ||||
address specified, second label maps to the second lowest IP | ||||
address specified and third label maps to the third lowest IP | ||||
address specified. | ||||
10. Supported and Unsupported Cases | 10. Supported and Unsupported Cases | |||
MPLS architecture never defined strict rules on how implementations | The MPLS architecture does not define strict rules on how | |||
are to identify hash "keys" for load balancing purpose. As result, | implementations are to identify hash "keys" for load balancing | |||
implementations may be of following load balancer types: | purpose. As a result, implementations may be of the following load | |||
balancer types: | ||||
1. IP Based Load Balancer. | 1. IP-based load balancer. | |||
2. Label Based Load Balancer. | 2. Label-based load balancer. | |||
3. Label and IP Based Load Balancer. | 3. Label- and IP-based load balancer. | |||
For cases (2) and (3), implementation can include different sets of | For cases (2) and (3), an implementation can include different sets | |||
labels from the label stack for load balancing purpose. Thus | of labels from the label stack for load balancing purpose. Thus the | |||
following sub-cases are possible: | following sub-cases are possible: | |||
a. Entire label stack. | a. Entire label stack. | |||
b. Top N labels from label stack where number of labels in label | b. Top N labels from label stack where the number of labels in label | |||
stack is >N. | ||||
c. Bottom N labels from label stack where number of labels in label | ||||
stack is >N. | stack is >N. | |||
c. Bottom N labels from label stack where the number of labels in | ||||
label stack is >N. | ||||
In a scenario where there is one Flow Label or Entropy Label present | In a scenario where there is one flow label or entropy label present | |||
in the label stack, following further cases are possible for (2b), | in the label stack, the following further cases are possible for | |||
(2c), (3b) and (3c): | (2b), (2c), (3b) and (3c): | |||
1. N labels from label stack include Flow Label or Entropy Label. | 1. N labels from label stack include flow label or entropy label. | |||
2. N labels from label stack does not include Flow Label or Entropy | 2. N labels from label stack do not include flow label or entropy | |||
Label. | label. | |||
Also in a scenario where there are multiple Entropy Labels present in | Also in a scenario where there are multiple entropy labels present in | |||
the label stack, it is possible for implementations to employ | the label stack, it is possible for implementations to employ | |||
deviating techniques: | deviating techniques: | |||
o Search for entropy stops at the first Entropy Label. | o Search for entropy stops at the first entropy label. | |||
o Search for entropy includes any Entropy Label found plus continues | ||||
o Search for entropy includes any entropy label found plus continues | ||||
to search for entropy in the label stack. | to search for entropy in the label stack. | |||
Furthermore, handling of reserved (i.e. special) labels varies among | Furthermore, handling of reserved (i.e., special) labels varies among | |||
implementations: | implementations: | |||
o Reserved labels are used in the hash as any other label would be | o Reserved labels are used in the hash as any other label would be | |||
(a bad practice). | (not a recommended practice). | |||
o Reserved labels are skipped over and, for implementations limited | o Reserved labels are skipped over and, for implementations limited | |||
to N labels, the reserved labels do not count towards the limit of | to N labels, the reserved labels do not count towards the limit of | |||
N. | N. | |||
o Reserved labels are skipped over and, for implementations limited | o Reserved labels are skipped over and, for implementations limited | |||
to N labels, the reserved labels count towards the limit of N. | to N labels, the reserved labels count towards the limit of N. | |||
It is important to point this out since presence of GAL will affect | It is important to point this out since the presence of GAL will | |||
those implementations which include reserved labels for load | affect those implementations which include reserved labels for load | |||
balancing purpose. | balancing purposes. | |||
As can be seen from above, there are many flavors of potential load | As can be seen from the above, there are many types of potential load | |||
balancing implementations. Attempting for any OAM tools to support | balancing implementations. Attempting for any OAM tools to support | |||
ECMP discovery and traversal over all flavors of such will require | ECMP discovery and traversal over all types would require fairly | |||
fairly complex procedures and implementations to support those | complex procedures. Complexities in OAM tools have minimal benefit | |||
complex procedures. Complexities in OAM tools will produce minimal | if the majority of implementations are expected to employ only a | |||
benefits if majority of implementations are expected to employ small | small subset of the cases described above. | |||
subset of cases described above. | ||||
o Section 4.3 of [RFC6790] states that implementations, for load | o Section 4.3 of [RFC6790] states that in implementations, for load | |||
balancing purpose, parsing beyond the label stack after finding | balancing purposes, parsing beyond the label stack after finding | |||
Entropy Label is "limited incremental value". Therefore, it is | an entropy label has "limited incremental value". Therefore, it | |||
expected that most implementations will be of types "IP Based Load | is expected that most implementations will be of types "IP-based | |||
Balancer" or "Label Based Load Balancer". | load balancer" or "Label-based load balancer". | |||
o Section 2.4.5.1 of [RFC7325] recommends that search for entropies | o Section 2.4.5.1 of [RFC7325] recommends that searching for entropy | |||
from the label stack should terminate upon finding the first | labels in the label stack should terminate upon finding the first | |||
Entropy Label. Therefore, it is expected that implementations | entropy label. Therefore, it is expected that implementations | |||
will only include the first (top-most) Entropy Label when there | will only include the first (top-most) entropy label when there | |||
are multiple Entropy Labels in the label stack. | are multiple entropy labels in the label stack. | |||
o It is expected that, in most cases, number of labels in the label | o It is expected that, in most cases, the number of labels in the | |||
stack will not exceed number of labels (N) which implementations | label stack will not exceed number of labels (N) which | |||
can include for load balancing purpose. | implementations can include for load balancing purposes. | |||
o It is expected that labels in the label stack, besides Flow Label | o It is expected that labels in the label stack, besides the flow | |||
and Entropy Label, are constant for the lifetime of a single LSP | label and entropy label, are constant for the lifetime of a single | |||
multipath traceroute operation. Therefore, deviating load | LSP multipath traceroute operation. Therefore, deviating load | |||
balancing implementations with respect to reserved labels should | balancing implementations with respect to reserved labels should | |||
not affect this tool. | not affect this tool. | |||
Thus [RFC4379], [RFC6424] and this document will support cases (1) | Thus [RFC4379], [RFC6424], and this document supports cases (1) and | |||
and (2a1), where only the first (top-most) Entropy Label is included | (2a1), where only the first (top-most) entropy label is included when | |||
when there are multiple Entropy Labels in the label stack. | there are multiple entropy labels in the label stack. | |||
11. Security Considerations | 11. Security Considerations | |||
This document extends LSP Traceroute mechanism to discover and | This document extends the LSP Ping and Traceroute mechanisms to | |||
exercise ECMP paths when LSP uses ELI/EL in label stack. Additional | discover and exercise ECMP paths when an LSP uses ELI/EL in the label | |||
processings are required for responder and initiator nodes. | stack. Additional processing is required for responder and initiator | |||
Responder node that pushes ELI/EL will need to compute and return | nodes. The responder node that pushes ELI/EL will need to compute | |||
multipath data including associated EL. Initiator node will need to | and return multipath data including associated EL. The initiator | |||
store and handle both IP multipath and label multipath information, | node will need to store and handle both IP multipath and label | |||
and include destination IP addresses and/or ELs in MPLS echo request | multipath information, and include destination IP addresses and/or | |||
packet as well as in carried multipath information to downstream | ELs in MPLS echo request packets as well as in multipath information | |||
nodes. Due to additional processing, it is critical that proper | sent to downstream nodes. This document does not itself introduce | |||
security measures described in [RFC4379] and [RFC6424] are followed. | any new security considerations. The security measures described in | |||
[RFC4379], [RFC6424], and [RFC6790] are applicable. [RFC6424] | ||||
provides guidelines if a network operator wants to prevent tracing or | ||||
does not want to expose details of the tunnel and [RFC6790] provides | ||||
guidance on the use of the EL. | ||||
12. IANA Considerations | 12. IANA Considerations | |||
12.1. DS Flags | 12.1. Entropy Label FEC | |||
The IANA is requested to assign a new sub-TLV from the "Sub-TLVs for | ||||
TLV Types 1, 16, and 21" section from the "Multi-Protocol Label | ||||
Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters - TLVs" | ||||
registry ([IANA-MPLS-LSP-PING]). | ||||
Sub-Type Sub-TLV Name Reference | ||||
-------- ------------ --------- | ||||
TBD1 Entropy label FEC this document | ||||
12.2. DS Flags | ||||
The IANA is requested to assign new bit numbers from the "DS flags" | The IANA is requested to assign new bit numbers from the "DS flags" | |||
sub-registry from the "Multi-Protocol Label Switching (MPLS) Label | sub-registry from the "Multi-Protocol Label Switching (MPLS) Label | |||
Switched Paths (LSPs) Ping Parameters - TLVs" registry | Switched Paths (LSPs) Ping Parameters - TLVs" registry | |||
([IANA-MPLS-LSP-PING]). | ([IANA-MPLS-LSP-PING]). | |||
Note: the "DS flags" sub-registry is created by [RFC7537]. | Note: the "DS flags" sub-registry is created by [RFC7537]. | |||
Bit number Name Reference | Bit number Name Reference | |||
---------- ---------------------------------------- --------- | ---------- ---------------------------------------- --------- | |||
TBD2 E: ELI/EL push indicator this document | TBD2 E: ELI/EL push indicator this document | |||
TBD3 L: Label based load balance indicator this document | TBD3 L: Label-based load balance indicator this document | |||
12.2. Multpath Type | 12.3. Multipath Type | |||
The IANA is requested to assign a new value from the "Multipath Type" | The IANA is requested to assign a new value from the "Multipath Type" | |||
sub-registry from the "Multi-Protocol Label Switching (MPLS) Label | sub-registry from the "Multi-Protocol Label Switching (MPLS) Label | |||
Switched Paths (LSPs) Ping Parameters - TLVs" registry | Switched Paths (LSPs) Ping Parameters - TLVs" registry | |||
([IANA-MPLS-LSP-PING]). | ([IANA-MPLS-LSP-PING]). | |||
Note: the "Multipath Type" sub-registry is created by [RFC7537]. | Note: The "Multipath Type" sub-registry is created by [RFC7537]. | |||
Value Meaning Reference | Value Meaning Reference | |||
---------- ---------------------------------------- --------- | ---------- ---------------------------------------- --------- | |||
TBD4 IP and label set this document | TBD4 IP and label set this document | |||
12.3. Entropy Label FEC | ||||
The IANA is requested to assign a new sub-TLV from the "Sub-TLVs for | ||||
TLV Types 1 and 16" section from the "Multi-Protocol Label Switching | ||||
(MPLS) Label Switched Paths (LSPs) Ping Parameters - TLVs" registry | ||||
([IANA-MPLS-LSP-PING]). | ||||
Sub-Type Sub-TLV Name Reference | ||||
-------- ------------ --------- | ||||
TBD1 Entropy Label FEC this document | ||||
13. Acknowledgements | 13. Acknowledgements | |||
Authors would like to thank Loa Andersson, Curtis Villamizar, Daniel | The authors would like to thank Loa Andersson, Curtis Villamizar, | |||
King, Sriganesh Kini and Victor Ji for performing thorough review and | Daniel King, Sriganesh Kini, Victor Ji, and Acee Lindem for | |||
providing valuable comments. | performing thorough reviews and providing valuable comments. | |||
14. Contributing Authors | 14. Contributing Authors | |||
Nagendra Kumar | Nagendra Kumar | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Email: naikumar@cisco.com | Email: naikumar@cisco.com | |||
15. References | 15. References | |||
15.1. Normative References | 15.1. Normative References | |||
skipping to change at page 20, line 25 ¶ | skipping to change at page 20, line 44 ¶ | |||
[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, | |||
<http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
[RFC4379] Kompella, K. and G. Swallow, "Detecting Multi-Protocol | [RFC4379] Kompella, K. and G. Swallow, "Detecting Multi-Protocol | |||
Label Switched (MPLS) Data Plane Failures", RFC 4379, | Label Switched (MPLS) Data Plane Failures", RFC 4379, | |||
DOI 10.17487/RFC4379, February 2006, | DOI 10.17487/RFC4379, February 2006, | |||
<http://www.rfc-editor.org/info/rfc4379>. | <http://www.rfc-editor.org/info/rfc4379>. | |||
[RFC6424] Bahadur, N., Kompella, K., and G. Swallow, "Mechanism for | ||||
Performing Label Switched Path Ping (LSP Ping) over MPLS | ||||
Tunnels", RFC 6424, DOI 10.17487/RFC6424, November 2011, | ||||
<http://www.rfc-editor.org/info/rfc6424>. | ||||
[RFC6790] Kompella, K., Drake, J., Amante, S., Henderickx, W., and | [RFC6790] Kompella, K., Drake, J., Amante, S., Henderickx, W., and | |||
L. Yong, "The Use of Entropy Labels in MPLS Forwarding", | L. Yong, "The Use of Entropy Labels in MPLS Forwarding", | |||
RFC 6790, DOI 10.17487/RFC6790, November 2012, | RFC 6790, DOI 10.17487/RFC6790, November 2012, | |||
<http://www.rfc-editor.org/info/rfc6790>. | <http://www.rfc-editor.org/info/rfc6790>. | |||
[RFC7537] Decraene, B., Akiya, N., Pignataro, C., Andersson, L., and | [RFC7537] Decraene, B., Akiya, N., Pignataro, C., Andersson, L., and | |||
S. Aldrin, "IANA Registries for LSP Ping Code Points", | S. Aldrin, "IANA Registries for LSP Ping Code Points", | |||
RFC 7537, DOI 10.17487/RFC7537, May 2015, | RFC 7537, DOI 10.17487/RFC7537, May 2015, | |||
<http://www.rfc-editor.org/info/rfc7537>. | <http://www.rfc-editor.org/info/rfc7537>. | |||
15.2. Informative References | 15.2. Informative References | |||
[I-D.ravisingh-mpls-el-for-seamless-mpls] | ||||
Singh, R., Shen, Y., and J. Drake, "Entropy label for | ||||
seamless MPLS", draft-ravisingh-mpls-el-for-seamless- | ||||
mpls-04 (work in progress), October 2014. | ||||
[IANA-MPLS-LSP-PING] | [IANA-MPLS-LSP-PING] | |||
IANA, "Multi-Protocol Label Switching (MPLS) Label | IANA, "Multi-Protocol Label Switching (MPLS) Label | |||
Switched Paths (LSPs) Ping Parameters", | Switched Paths (LSPs) Ping Parameters", | |||
<http://www.iana.org/assignments/mpls-lsp-ping-parameters/ | <http://www.iana.org/assignments/mpls-lsp-ping-parameters/ | |||
mpls-lsp-ping-parameters.xhtml>. | mpls-lsp-ping-parameters.xhtml>. | |||
[RFC6391] Bryant, S., Ed., Filsfils, C., Drafz, U., Kompella, V., | [RFC6391] Bryant, S., Ed., Filsfils, C., Drafz, U., Kompella, V., | |||
Regan, J., and S. Amante, "Flow-Aware Transport of | Regan, J., and S. Amante, "Flow-Aware Transport of | |||
Pseudowires over an MPLS Packet Switched Network", | Pseudowires over an MPLS Packet Switched Network", | |||
RFC 6391, DOI 10.17487/RFC6391, November 2011, | RFC 6391, DOI 10.17487/RFC6391, November 2011, | |||
<http://www.rfc-editor.org/info/rfc6391>. | <http://www.rfc-editor.org/info/rfc6391>. | |||
[RFC6424] Bahadur, N., Kompella, K., and G. Swallow, "Mechanism for | ||||
Performing Label Switched Path Ping (LSP Ping) over MPLS | ||||
Tunnels", RFC 6424, DOI 10.17487/RFC6424, November 2011, | ||||
<http://www.rfc-editor.org/info/rfc6424>. | ||||
[RFC7325] Villamizar, C., Ed., Kompella, K., Amante, S., Malis, A., | [RFC7325] Villamizar, C., Ed., Kompella, K., Amante, S., Malis, A., | |||
and C. Pignataro, "MPLS Forwarding Compliance and | and C. Pignataro, "MPLS Forwarding Compliance and | |||
Performance Requirements", RFC 7325, DOI 10.17487/RFC7325, | Performance Requirements", RFC 7325, DOI 10.17487/RFC7325, | |||
August 2014, <http://www.rfc-editor.org/info/rfc7325>. | August 2014, <http://www.rfc-editor.org/info/rfc7325>. | |||
Authors' Addresses | Authors' Addresses | |||
Nobo Akiya | Nobo Akiya | |||
Big Switch Networks | Big Switch Networks | |||
End of changes. 131 change blocks. | ||||
536 lines changed or deleted | 543 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |