draft-ietf-tsvwg-ecn-mpls-02.txt | rfc5129.txt | |||
---|---|---|---|---|
Network Working Group B. Davie | Network Working Group B. Davie | |||
Internet-Draft Cisco Systems, Inc. | Request for Comments: 5129 Cisco Systems, Inc. | |||
Intended status: Standards Track B. Briscoe | Category: Standards Track B. Briscoe | |||
Expires: April 6, 2008 J. Tay | J. Tay | |||
BT Research | BT Research | |||
October 4, 2007 | January 2008 | |||
Explicit Congestion Marking in MPLS | Explicit Congestion Marking in MPLS | |||
draft-ietf-tsvwg-ecn-mpls-02.txt | ||||
Status of this Memo | ||||
By submitting this Internet-Draft, each author represents that any | ||||
applicable patent or other IPR claims of which he or she is aware | ||||
have been or will be disclosed, and any of which he or she becomes | ||||
aware will be disclosed, in accordance with Section 6 of BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF), its areas, and its working groups. Note that | ||||
other groups may also distribute working documents as Internet- | ||||
Drafts. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | ||||
and may be updated, replaced, or obsoleted by other documents at any | ||||
time. It is inappropriate to use Internet-Drafts as reference | ||||
material or to cite them other than as "work in progress." | ||||
The list of current Internet-Drafts can be accessed at | ||||
http://www.ietf.org/ietf/1id-abstracts.txt. | ||||
The list of Internet-Draft Shadow Directories can be accessed at | ||||
http://www.ietf.org/shadow.html. | ||||
This Internet-Draft will expire on April 6, 2008. | ||||
Copyright Notice | Status of This Memo | |||
Copyright (C) The IETF Trust (2007). | This document specifies an Internet standards track protocol for the | |||
Internet community, and requests discussion and suggestions for | ||||
improvements. Please refer to the current edition of the "Internet | ||||
Official Protocol Standards" (STD 1) for the standardization state | ||||
and status of this protocol. Distribution of this memo is unlimited. | ||||
Abstract | Abstract | |||
RFC 3270 defines how to support the Diffserv architecture in MPLS | RFC 3270 defines how to support the Diffserv architecture in MPLS | |||
networks, including how to encode Diffserv Code Points (DSCPs) in an | networks, including how to encode Diffserv Code Points (DSCPs) in an | |||
MPLS header. DSCPs may be encoded in the EXP field, while other uses | MPLS header. DSCPs may be encoded in the EXP field, while other uses | |||
of that field are not precluded. RFC3270 makes no statement about | of that field are not precluded. RFC3270 makes no statement about | |||
how Explicit Congestion Notification (ECN) marking might be encoded | how Explicit Congestion Notification (ECN) marking might be encoded | |||
in the MPLS header. This draft defines how an operator might define | in the MPLS header. This document defines how an operator might | |||
some of the EXP codepoints for explicit congestion notification, | define some of the EXP codepoints for explicit congestion | |||
without precluding other uses. | notification, without precluding other uses. | |||
Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
document are to be interpreted as described in RFC 2119 [RFC2119]. | ||||
Change History | ||||
[Note to RFC Editor: This section to be removed before publication] | ||||
Changes in this version (draft-ietf-tsvwg-ecn-mpls-02.txt) relative | ||||
to the last (draft-ietf-tsvwg-ecn-mpls-01.txt): | ||||
o Added new text about misordering considerations in Section 6. | ||||
o Swapped order of Section 8 and Section 9. | ||||
o Explained more fully the example of congestion-based traffic | ||||
engineering in Section 9.3. | ||||
o Trimmed the example of PCN in Section 9.4 and updated to latest | ||||
preferred PCN terminology in PCN appendix. | ||||
Changes in draft-ietf-tsvwg-ecn-mpls-01.txt relative to | ||||
draft-ietf-tsvwg-ecn-mpls-00.txt: | ||||
o Moved the detailed discussion of marking procedures for Pre- | ||||
Congestion Notification (PCN) to an appendix. | ||||
o Removed PCN as a motivation for the efficient code-point usage in | ||||
Section 2. | ||||
o Clarified the rationale for preferring the ECT-checking approach | ||||
over the approach of [Floyd] in Section 8.1. | ||||
o Updated discussion of relationship to RFC3168 in Section 7 | ||||
o Removed discussion of re-ECN from Security Considerations. | ||||
o Fixed typos and nits. | ||||
Changes in draft-ietf-tsvwg-ecn-mpls-00.txt relative to | ||||
draft-davie-ecn-mpls-00: | ||||
o Corrected the description of ECN-MPLS marking proposed in | ||||
[Shayman], which closely corresponds to that proposed in this | ||||
document. | ||||
o Pre-congestion notification (PCN) marking is now described in a | ||||
way that does not require normative references to PCN | ||||
specifications. PCN discussion now serves only to illustrate how | ||||
the ECN marking concepts can be extended to cover more complex | ||||
scenarios, with PCN being an example. | ||||
o Added specification of behavior when MPLS encapsulated packets | ||||
cross from an ECN-enabled domain to a domain that is not ECN- | ||||
enabled. | ||||
o Clarified that copying MPLS ECN or PCN marking into exposed IP | ||||
header on egress is not mandatory | ||||
o Fixed typos and nits | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Background . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1.1. Background . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.2. Intent . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1.2. Intent . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
1.3. Terminology . . . . . . . . . . . . . . . . . . . . . . . 6 | 1.3. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2. Use of MPLS EXP Field for ECN . . . . . . . . . . . . . . . . 7 | 2. Use of MPLS EXP Field for ECN . . . . . . . . . . . . . . . . 5 | |||
3. Per-domain ECT checking . . . . . . . . . . . . . . . . . . . 9 | 3. Per-Domain ECT Checking . . . . . . . . . . . . . . . . . . . 7 | |||
4. ECN-enabled MPLS domain . . . . . . . . . . . . . . . . . . . 9 | 4. ECN-Enabled MPLS Domain . . . . . . . . . . . . . . . . . . . 8 | |||
4.1. Pushing (adding) one or more labels to an IP packet . . . 10 | 4.1. Pushing (Adding) One or More Labels to an IP Packet . . . 8 | |||
4.2. Pushing one or more labels onto an MPLS labelled packet . 10 | 4.2. Pushing One or More Labels onto an MPLS Labeled Packet . . 8 | |||
4.3. Congestion experienced in an interior MPLS node . . . . . 10 | 4.3. Congestion Experienced in an Interior MPLS Node . . . . . 8 | |||
4.4. Crossing a Diffserv Domain Boundary . . . . . . . . . . . 10 | 4.4. Crossing a Diffserv Domain Boundary . . . . . . . . . . . 8 | |||
4.5. Popping an MPLS label (not the end of the stack) . . . . . 11 | 4.5. Popping an MPLS Label (Not the End of the Stack) . . . . . 9 | |||
4.6. Popping the last MPLS label in the stack . . . . . . . . . 11 | 4.6. Popping the Last MPLS Label in the Stack . . . . . . . . . 9 | |||
4.7. Diffserv Tunneling Models . . . . . . . . . . . . . . . . 11 | 4.7. Diffserv Tunneling Models . . . . . . . . . . . . . . . . 10 | |||
5. ECN-disabled MPLS domain . . . . . . . . . . . . . . . . . . . 12 | 5. ECN-Disabled MPLS Domain . . . . . . . . . . . . . . . . . . . 10 | |||
6. The use of more codepoints with E-LSPs and L-LSPs . . . . . . 12 | 6. The Use of More Codepoints with E-LSPs and L-LSPs . . . . . . 10 | |||
7. Relationship to tunnel behavior in RFC 3168 . . . . . . . . . 12 | 7. Relationship to Tunnel Behavior in RFC 3168 . . . . . . . . . 11 | |||
8. Deployment Considerations . . . . . . . . . . . . . . . . . . 13 | 8. Deployment Considerations . . . . . . . . . . . . . . . . . . 11 | |||
8.1. Marking non-ECN Capable Packets . . . . . . . . . . . . . 13 | 8.1. Marking Non-ECN-Capable Packets . . . . . . . . . . . . . 11 | |||
8.2. Non-ECN capable routers in an MPLS Domain . . . . . . . . 14 | 8.2. Non-ECN-Capable Routers in an MPLS Domain . . . . . . . . 12 | |||
9. Example Uses . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 9. Example Uses . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
9.1. RFC3168-style ECN . . . . . . . . . . . . . . . . . . . . 14 | 9.1. RFC 3168-Style ECN . . . . . . . . . . . . . . . . . . . . 13 | |||
9.2. ECN Co-existence with Diffserv E-LSPs . . . . . . . . . . 15 | 9.2. ECN Co-Existence with Diffserv E-LSPs . . . . . . . . . . 13 | |||
9.3. Congestion-feedback-based Traffic Engineering . . . . . . 15 | 9.3. Congestion-Feedback-Based Traffic Engineering . . . . . . 14 | |||
9.4. PCN flow admission control and flow termination . . . . . 16 | 9.4. PCN Flow Admission Control and Flow Termination . . . . . 14 | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | |||
11. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 | Appendix A. Extension to Pre-Congestion Notification . . . . . . 16 | |||
Appendix A. Extension to Pre-Congestion Notification . . . . . . 17 | A.1. Label Push onto IP Packet . . . . . . . . . . . . . . . . . 16 | |||
Appendix A.1. Label Push onto IP packet . . . . . . . . . . . . . 18 | A.2. Pushing Additional MPLS Labels . . . . . . . . . . . . . . 16 | |||
Appendix A.2. Pushing Additional MPLS Labels . . . . . . . . . . . 18 | A.3. Admission Control or Flow Termination Marking Inside | |||
Appendix A.3. Admission Control or Flow Termination Marking | MPLS Domain . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
inside MPLS domain . . . . . . . . . . . . . . . . . 18 | A.4. Popping an MPLS Label (Not End of Stack) . . . . . . . . . 17 | |||
Appendix A.4. Popping an MPLS Label (not end of stack) . . . . . . 18 | A.5. Popping the Last MPLS Label to Expose IP Header . . . . . . 17 | |||
Appendix A.5. Popping the last MPLS Label to expose IP header . . 19 | Normative References . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | Informative References . . . . . . . . . . . . . . . . . . . . . . 18 | |||
13.1. Normative References . . . . . . . . . . . . . . . . . . . 19 | ||||
13.2. Informative References . . . . . . . . . . . . . . . . . . 20 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21 | ||||
Intellectual Property and Copyright Statements . . . . . . . . . . 23 | ||||
1. Introduction | 1. Introduction | |||
1.1. Background | 1.1. Background | |||
[RFC3168] defines Explicit Congestion Notification for IP. The | [RFC3168] defines Explicit Congestion Notification (ECN) for IP. The | |||
primary purpose of ECN is to allow congestion to be signalled without | primary purpose of ECN is to allow congestion to be signalled without | |||
dropping packets. | dropping packets. | |||
[RFC3270] defines how to support the Diffserv architecture in MPLS | [RFC3270] defines how to support the Diffserv architecture in MPLS | |||
networks, including how to encode Diffserv Code Points (DSCPs) in an | networks, including how to encode Diffserv Code Points (DSCPs) in an | |||
MPLS header. DSCPs may be encoded in the EXP field, while other uses | MPLS header. DSCPs may be encoded in the EXP field, while other uses | |||
of that field are not precluded. RFC3270 makes no statement about | of that field are not precluded. RFC3270 makes no statement about | |||
how Explicit Congestion Notification (ECN) marking might be encoded | how Explicit Congestion Notification (ECN) marking might be encoded | |||
in the MPLS header. | in the MPLS header. | |||
This draft defines how an operator might define some of the EXP | This document defines how an operator might define some of the EXP | |||
codepoints for explicit congestion notification, without precluding | codepoints for explicit congestion notification, without precluding | |||
other uses. In parallel to the activity defining the addition of ECN | other uses. In parallel to the activity defining the addition of ECN | |||
to IP [RFC3168], two proposals were made to add ECN to MPLS | to IP [RFC3168], two proposals were made to add ECN to MPLS | |||
[Floyd][Shayman]. These proposals, however, fell by the wayside. | [Floyd][Shayman]. These proposals, however, fell by the wayside. | |||
With ECN for IP now being a proposed standard, and developing | With ECN for IP now being a proposed standard, and developing | |||
interest in using pre-congestion notification (PCN) for admission | interest in using pre-congestion notification (PCN) for admission | |||
control and flow termination [I-D.ietf-pcn-architecture], there is | control and flow termination [PCN], there is consequent interest in | |||
consequent interest in being able to support ECN across IP networks | being able to support ECN across IP networks consisting of MPLS- | |||
consisting of MPLS-enabled domains. Therefore it is necessary to | enabled domains. Therefore, it is necessary to specify the protocol | |||
specify the protocol for including ECN in the MPLS shim header, and | for including ECN in the MPLS shim header and the protocol behavior | |||
the protocol behavior of edge MPLS nodes. | of edge MPLS nodes. | |||
We note that in [RFC3168] there are four codepoints used for ECN | We note that in [RFC3168], there are four codepoints used for ECN | |||
marking, which are encoded using two bits of the IP header. The MPLS | marking, which are encoded using two bits of the IP header. The MPLS | |||
EXP field is the logical place to encode ECN codepoints, but with | EXP field is the logical place to encode ECN codepoints, but with | |||
only 3 bits (8 codepoints) available, and with the same field being | only 3 bits (8 codepoints) available, and with the same field being | |||
used to convey DSCP information as well, there is a clear incentive | used to convey DSCP information as well, there is a clear incentive | |||
to conserve the number of codepoints consumed for ECN purposes. | to conserve the number of codepoints consumed for ECN purposes. | |||
Efficient use of the EXP field has been a focus of prior drafts | Efficient use of the EXP field has been a focus of prior documents | |||
[Floyd] [Shayman] and we draw on those efforts in this draft as well. | [Floyd] [Shayman], and we draw on those efforts in this document as | |||
well. | ||||
We also note that [RFC3168] defines default usage of the ECN field | We also note that [RFC3168] defines default usage of the ECN field, | |||
but allows for the possibility that some Diffserv PHBs might include | but it allows for the possibility that some Diffserv Per Hop | |||
different specifications on how the ECN field is to be used. This | Behaviors (PHBs) might include different specifications on how the | |||
draft seeks to preserve that capability. | ECN field is to be used. This document seeks to preserve that | |||
capability. | ||||
1.2. Intent | 1.2. Intent | |||
Our intent is to specify how the MPLS shim header [RFC3032] should | Our intent is to specify how the MPLS shim header [RFC3032] should | |||
denote ECN marking and how MPLS nodes should understand whether the | denote ECN marking and how MPLS nodes should understand whether the | |||
transport for a packet will be ECN capable. We offer this as a | transport for a packet will be ECN capable. We offer this as a | |||
building block, from which to build different congestion notification | building block, from which to build different congestion-notification | |||
systems. We do not intend to specify how the resulting congestion | systems. We do not intend to specify how the resulting congestion | |||
notification is fed back to an upstream node that can mitigate | notification is fed back to an upstream node that can mitigate | |||
congestion. For instance, unlike [Shayman], we do not specify edge- | congestion. For instance, unlike [Shayman], we do not specify edge- | |||
to-edge MPLS domain feedback, but we also do not preclude it. | to-edge MPLS domain feedback, but we also do not preclude it. | |||
Nonetheless, we do specify how the egress node of an MPLS domain | Nonetheless, we do specify how the egress node of an MPLS domain | |||
should copy congestion notification from the MPLS shim into the | should copy congestion notification from the MPLS shim into the | |||
encapsulated IP header if the ECN is to be carried onward towards the | encapsulated IP header if the ECN is to be carried onward towards the | |||
IP receiver. But we do NOT mandate that MPLS congestion notification | IP receiver; but we do *not* mandate that MPLS congestion | |||
must be copied into the IP header for onward transmission. This | notification must be copied into the IP header for onward | |||
draft aims to be generic for any use of congestion notification in | transmission. This document aims to be generic for any use of | |||
MPLS. Support of [RFC3168] is our primary motivation; some | congestion notification in MPLS. Support of [RFC3168] is our primary | |||
additional potential applications to illustrate the flexibility of | motivation; some additional potential applications to illustrate the | |||
our approach are described in Section 9. In particular, we aim to | flexibility of our approach are described in Section 9. In | |||
support possible future schemes that may use more than one level of | particular, we aim to support possible future schemes that may use | |||
congestion marking. | more than one level of congestion marking. | |||
1.3. Terminology | 1.3. Terminology | |||
This document draws freely on the terminology of ECN [RFC3168] and | This document draws freely on the terminology of ECN [RFC3168] and | |||
MPLS [RFC3031]. For ease of reference, we have included some | MPLS [RFC3031]. For ease of reference, we have included some | |||
definitions here, but refer the reader to the references above for | definitions here, but refer the reader to the references above for | |||
complete specifications of the relevant technologies: | complete specifications of the relevant technologies: | |||
o CE: Congestion Experienced. One of the states with which a packet | o CE: Congestion Experienced. One of the states with which a packet | |||
may be marked in a network supporting ECN. A packet is marked in | may be marked in a network supporting ECN. A packet is marked in | |||
this state by an ECN-capable router, to indicate that this router | this state by an ECN-capable router to indicate that this router | |||
was experiencing congestion at the time the packet arrived. | was experiencing congestion at the time the packet arrived. | |||
o ECT: ECN-capable Transport. One of the ECN states which a packet | o ECT: ECN-capable Transport. One of the ECN states that a packet | |||
may be in when it is sent by an end system. An end system marks a | may be in when it is sent by an end system. An end system marks a | |||
packet with an ECT codepoint to indicate that the end-points of | packet with an ECT codepoint to indicate that the endpoints of the | |||
the transport protocol are ECN-capable. A router may not mark a | transport protocol are ECN-capable. A router may not mark a | |||
packet as CE unless the packet was marked ECT when it arrived. | packet as CE unless the packet was marked ECT when it arrived. | |||
o Not-ECT: Not ECN capable transport. An end system marks a packet | o Not-ECT: Not ECN-capable transport. An end system marks a packet | |||
with this codepoint to indicate that the end-points of the | with this codepoint to indicate that the endpoints of the | |||
transport protocol are not ECN-capable. A congested router cannot | transport protocol are not ECN-capable. A congested router cannot | |||
mark such packets as CE, and thus can only drop them to indicate | mark such packets as CE, and thus it can only drop them to | |||
congestion. | indicate congestion. | |||
o EXP field. A 3 bit field in the MPLS label header [RFC3032] which | o EXP field. A 3-bit field in the MPLS label header [RFC3032] that | |||
may be used to convey Diffserv information (and is also used in | may be used to convey Diffserv information (and is also used in | |||
this draft to carry ECN information). | this document to carry ECN information). | |||
o PHP. Penultimate Hop Popping. An MPLS operation in which the | o PHP. Penultimate Hop Popping. An MPLS operation in which the | |||
penultimate Label Switching Router (LSR) on a Label Switched Path | penultimate Label Switching Router (LSR) on a Label Switched Path | |||
(LSP) removes the top label from the packet before forwarding the | (LSP) removes the top label from the packet before forwarding the | |||
packet to the final LSR on the LSP. | packet to the final LSR on the LSP. | |||
Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
document are to be interpreted as described in RFC 2119 [RFC2119]. | ||||
2. Use of MPLS EXP Field for ECN | 2. Use of MPLS EXP Field for ECN | |||
We propose that LSRs configured for explicit congestion notification | We propose that LSRs configured for explicit congestion notification | |||
should use the EXP field in the MPLS shim header. However, [RFC3270] | should use the EXP field in the MPLS shim header. However, [RFC3270] | |||
already defines use of codepoints in the EXP field for differentiated | already defines use of codepoints in the EXP field for differentiated | |||
services. Although it does not preclude other compatible uses of the | services. Although it does not preclude other compatible uses of the | |||
EXP field, this clearly seems to limit the space available for ECN, | EXP field, this clearly seems to limit the space available for ECN, | |||
given the field is only 3 bits (8 codepoints). | given the field is only 3 bits (8 codepoints). | |||
[RFC3270] defines two possible approaches for requesting | [RFC3270] defines two possible approaches for requesting | |||
differentiated service treatment from an LSR. | differentiated service treatment from an LSR: | |||
o In the E-LSP approach, different codepoints of the EXP field in | o In the EXP-Inferred-PSC LSP (E-LSP) approach, different codepoints | |||
the MPLS shim header are used to indicate the packet's per hop | of the EXP field in the MPLS shim header are used to indicate the | |||
behavior (PHB). | packet's per hop behavior (PHB). | |||
o In the L-LSP approach, an MPLS label is assigned for each PHB | o In the Label-Only-Inferred-PSC LSP (L-LSP) approach, an MPLS label | |||
scheduling class (PSC, as defined in [RFC3260], so that an LSR | is assigned for each PHB scheduling class (PSC, as defined in | |||
determines both its forwarding and its scheduling behavior from | [RFC3260], so that an LSR determines both its forwarding and its | |||
the label. | scheduling behavior from the label. | |||
If an MPLS domain uses the L-LSP approach, there is likely to be | If an MPLS domain uses the L-LSP approach, there is likely to be | |||
space in the EXP field for ECN codepoint(s). Where the E-LSP | space in the EXP field for ECN codepoint(s). Where the E-LSP | |||
approach is used, then codepoint space in the EXP field is likely to | approach is used, codepoint space in the EXP field is likely to be | |||
be scarce. This draft focuses on interworking ECN marking with the | scarce. This document focuses on interworking ECN marking with the | |||
E-LSP approach as it is the tougher problem. Consequently the same | E-LSP approach, as it is the tougher problem. Consequently, the same | |||
approach can also be applied with L-LSPs. | approach can also be applied with L-LSPs. | |||
We recommend that explicit congestion notification in MPLS should use | We recommend that explicit congestion notification in MPLS should use | |||
codepoints instead of bits in the EXP field. Since not every PHB | codepoints instead of bits in the EXP field. Since not every PHB | |||
will necessarily require an associated ECN codepoint it would be | will necessarily require an associated ECN codepoint, it would be | |||
wasteful to assign a dedicated bit for ECN. (There may also be cases | wasteful to assign a dedicated bit for ECN. (There may also be cases | |||
where a given PHB might need more than one ECN-like codepoint; see | where a given PHB might need more than one ECN-like codepoint; see | |||
Section 9.4 for an example.) | Section 9.4 for an example). | |||
For each PHB that uses ECN marking, we assume one EXP codepoint will | For each PHB that uses ECN marking, we assume one EXP codepoint will | |||
be defined meaning not congestion marked (Not-CM), and at least one | be defined as not congestion marked (Not-CM), and at least one other | |||
other codepoint will be defined meaning congestion marked (CM). | codepoint will be defined as congestion marked (CM). Therefore, each | |||
Therefore, each PHB that uses ECN marking will consume at least two | PHB that uses ECN marking will consume at least two EXP codepoints, | |||
EXP codepoints. But PHBs that do not use ECN marking will only | but PHBs that do not use ECN marking will only consume one. | |||
consume one. | ||||
Further, we wish to use minimal space in the MPLS shim header to tell | Further, we wish to use minimal space in the MPLS shim header to tell | |||
interior LSRs whether each packet will be received by an ECN-capable | interior LSRs whether each packet will be received by an ECN-capable | |||
transport (ECT). Nonetheless, we must ensure that an end-point that | transport (ECT). Nonetheless, we must ensure that an endpoint that | |||
would not understand an ECN mark will not receive one, otherwise it | would not understand an ECN mark will not receive one, otherwise it | |||
will not be able to respond to congestion as it should. In the past, | will not be able to respond to congestion as it should. In the past, | |||
three solutions to this problem have been proposed: | three solutions to this problem have been proposed: | |||
o One possible approach is for congested LSRs to mark the ECN field | o One possible approach is for congested LSRs to mark the ECN field | |||
in the underlying IP header at the bottom of the label stack. | in the underlying IP header at the bottom of the label stack. | |||
Although many commercial LSRs routinely access the IP header for | Although many commercial LSRs routinely access the IP header for | |||
other reasons (ECMP), there are numerous drawbacks to attempting | other reasons (equal cost multi-path - ECMP), there are numerous | |||
to find an IP header beneath an MPLS label stack. Notably, there | drawbacks to attempting to find an IP header beneath an MPLS label | |||
is the challenge of detecting the absence of an IP header when | stack. Notably, there is the challenge of detecting the absence | |||
non-IP packets are carried on an LSP. Therefore we will not | of an IP header when non-IP packets are carried on an LSP. | |||
consider this approach further. | Therefore, we will not consider this approach further. | |||
o In the scheme suggested by [Floyd] ECT and CE are overloaded into | o In the scheme suggested by [Floyd], ECT and CE are overloaded into | |||
one bit, so that a 0 means ECT while a 1 might either mean Not-ECT | one bit, so that a 0 means ECT while a 1 might either mean Not-ECT | |||
or it might mean CE. A packet that has been marked as having | or it might mean CE. A packet that has been marked as having | |||
experienced congestion upstream, and then is picked out for | experienced congestion upstream, and then is picked out for | |||
marking at a second congested LSR, will be dropped by the second | marking at a second congested LSR, will be dropped by the second | |||
LSR since it cannot determine whether the packet has previously | LSR since it cannot determine whether the packet has previously | |||
experienced congestion or if ECN is not supported by the | experienced congestion or if ECN is not supported by the | |||
transport. | transport. | |||
While such an approach seemed potentially palatable, we do not | While such an approach seemed potentially palatable, we do not | |||
recommend it here for the following reasons. In some cases we | recommend it here for the following reasons. In some cases, we | |||
wish to be able to use ECN marking long before actual congestion | wish to be able to use ECN marking long before actual congestion | |||
(e.g. pre-congestion notification). In these circumstances, | (e.g., pre-congestion notification). In these circumstances, | |||
marking rates at each LSR might be non-negligible most of the | marking rates at each LSR might be non-negligible most of the | |||
time, so the chances of a previously marked packet encountering an | time, so the chances of a previously marked packet encountering an | |||
LSR that wants to mark it again will also be non-negligible. In | LSR that wants to mark it again will also be non-negligible. In | |||
the case where CE and not-ECT are indistinguishable to core | the case where CE and not-ECT are indistinguishable to core | |||
routers, such a scenario could lead to unacceptable drop rates. | routers, such a scenario could lead to unacceptable drop rates. | |||
If the typical marking rate at every router or LSR is p, and the | If the typical marking rate at every router or LSR is p, and the | |||
typical diameter of the network of LSRs is d, then the probability | typical diameter of the network of LSRs is d, then the probability | |||
that a marked packet will be chosen for marking more than once is | that a marked packet will be chosen for marking more than once is | |||
1-[Pr(never marked) + Pr(marked at exactly one hop)] = 1- [(1-p)^d | 1-[Pr(never marked) + Pr(marked at exactly one hop)] = 1- [(1-p)^d | |||
+ dp(1-p)^(d-1)]. For instance, with 6 LSRs in a row, each | + dp(1-p)^(d-1)]. For instance, with 6 LSRs in a row, each | |||
marking ECN with 1% probability, the chances of a packet that is | marking ECN with 1% probability, the chances of a packet that is | |||
already marked being chosen for marking a second time is 0.15%. | already marked being chosen for marking a second time is 0.15%. | |||
The bit overloading scheme would therefore introduce a drop rate | The bit-overloading scheme would therefore introduce a drop rate | |||
of 0.15% unnecessarily. Given that most modern core networks are | of 0.15% unnecessarily. Given that most modern core networks are | |||
sized to introduce near-zero packet drop, it may be unacceptable | sized to introduce near-zero packet drop, it may be unacceptable | |||
to drop over one in a thousand packets unnecessarily. | to drop over one in a thousand packets unnecessarily. | |||
o A third possible approach was suggested by [Shayman]. In this | o A third possible approach was suggested by [Shayman]. In this | |||
scheme, interior LSRs assume that the endpoints are ECN-capable, | scheme, interior LSRs assume that the endpoints are ECN-capable, | |||
but this assumption is checked when the final label is popped. If | but this assumption is checked when the final label is popped. If | |||
an interior LSR has marked ECN in the EXP field of the shim | an interior LSR has marked ECN in the EXP field of the shim | |||
header, but the IP header says the endpoints are not ECN capable, | header, but the IP header says the endpoints are not ECN-capable, | |||
the edge router (or penultimate router, if using penultimate hop | the edge router (or penultimate router, if using penultimate hop | |||
popping) drops the packet. We recommend this scheme, which we | popping) drops the packet. We recommend this scheme, which we | |||
call `per-domain ECT checking', and define it more precisely in | call `per-domain ECT checking', and define it more precisely in | |||
the following section. Its chief drawback is that it can cause | the following section. Its chief drawback is that it can cause | |||
packets to be forwarded after encountering congestion only to be | packets to be forwarded after encountering congestion only to be | |||
dropped at the egress of the MPLS domain. The rationale for this | dropped at the egress of the MPLS domain. The rationale for this | |||
decision is given in Section 8.1. | decision is given in Section 8.1. | |||
3. Per-domain ECT checking | 3. Per-Domain ECT Checking | |||
For the purposes of this discussion, we define the egress nodes of an | For the purposes of this discussion, we define the egress nodes of an | |||
MPLS domain as the nodes that pop the last MPLS label from the label | MPLS domain as the nodes that pop the last MPLS label from the label | |||
stack, exposing the IP (or, potentially non-IP) header. Note that | stack, exposing the IP (or, potentially non-IP) header. Note that | |||
such a node may be the ultimate or penultimate hop of an LSP, | such a node may be the ultimate or penultimate hop of an LSP, | |||
depending on whether penultimate hop popping (PHP) is employed. | depending on whether penultimate hop popping (PHP) is employed. | |||
In the per-domain ECT checking approach, the egress nodes take | In the per-domain ECT checking approach, the egress nodes take | |||
responsibility for checking whether the transport is ECN capable. | responsibility for checking whether the transport is ECN-capable. | |||
This draft does not specify how these nodes should pass on congestion | This document does not specify how these nodes should pass on | |||
notification, because different approaches are likely in different | congestion notification because different approaches are likely in | |||
scenarios. However, if congestion notification in the MPLS header is | different scenarios. However, if congestion notification in the MPLS | |||
copied into the IP header, the procedure MUST conform to the | header is copied into the IP header, the procedure MUST conform to | |||
specification given here. | the specification given here. | |||
If congestion notification is passed to the transport without first | If congestion notification is passed to the transport without first | |||
passing it onward in the IP header, the approach used must take | passing it onward in the IP header, the approach used must take | |||
similar care to check that the transport is ECN capable before | similar care to check that the transport is ECN-capable before | |||
passing it ECN markings. Specifically, if the transport for a | passing it ECN markings. Specifically, if the transport for a | |||
particular congestion marked MPLS packet is found not to be ECN- | particular congestion marked MPLS packet is found not to be ECN- | |||
capable, the packet MUST be dropped at this egress node. | capable, the packet MUST be dropped at this egress node. | |||
In the per-domain ECT checking approach, only the egress nodes check | In the per-domain ECT checking approach, only the egress nodes check | |||
whether an IP packet is destined for an ECN-capable transport. | whether an IP packet is destined for an ECN-capable transport. | |||
Therefore, any single LSR within an MPLS domain MUST NOT be | Therefore, any single LSR within an MPLS domain MUST NOT be | |||
configured to enable ECN marking unless all the egress LSRs | configured to enable ECN marking unless all the egress LSRs | |||
surrounding it are already configured to handle ECN marking. | surrounding it are already configured to handle ECN marking. | |||
We call a domain surrounded by ECN-capable egress LSRs an ECN-enabled | We call a domain surrounded by ECN-capable egress LSRs an ECN-enabled | |||
MPLS domain. This term only implies that all the egress LSRs are | MPLS domain. This term only implies that all the egress LSRs are | |||
ECN-enabled; some interior LSRs may not be ECN-enabled. For | ECN-enabled; some interior LSRs may not be ECN-enabled. For | |||
instance, it would be possible to use some legacy LSRs incapable of | instance, it would be possible to use some legacy LSRs incapable of | |||
supporting ECN in the interior of an MPLS domain as long as all the | supporting ECN in the interior of an MPLS domain as long as all the | |||
egress LSRs were ECN-capable. Note that if PHP is used, the | egress LSRs were ECN-capable. Note that if PHP is used, the | |||
"penultimate hop" routers which perform the pop operation do need to | "penultimate hop" routers that perform the pop operation do need to | |||
be ECN-enabled, since they are acting in this context as egress LSRs. | be ECN-enabled since they are acting in this context as egress LSRs. | |||
4. ECN-enabled MPLS domain | 4. ECN-Enabled MPLS Domain | |||
In the following subsections we describe various operations affecting | In the following subsections, we describe various operations | |||
the ECN marking of a packet that may be performed at MPLS edge and | affecting the ECN marking of a packet that may be performed at MPLS- | |||
core LSRs. | edge and core LSRs. | |||
4.1. Pushing (adding) one or more labels to an IP packet | 4.1. Pushing (Adding) One or More Labels to an IP Packet | |||
On encapsulating an IP packet with an MPLS label stack, the ECN field | On encapsulating an IP packet with an MPLS label stack, the ECN field | |||
must be translated from the IP packet into the MPLS EXP field. The | must be translated from the IP packet into the MPLS EXP field. The | |||
Not-CM (not congestion marked) state is set in the MPLS EXP field if | Not-CM (not congestion marked) state is set in the MPLS EXP field if | |||
the ECN status of the IP packet is "Not ECT" or ECT(1) or ECT(0). | the ECN status of the IP packet is Not-ECT or ECT(1) or ECT(0). The | |||
The CM state is set if the ECN status of the IP packet is "CE". If | CM state is set if the ECN status of the IP packet is CE. If more | |||
more than one label is pushed at one time, the same value should be | than one label is pushed at one time, the same value should be placed | |||
placed in the EXP value of all label stack entries. | in the EXP value of all label stack entries. | |||
4.2. Pushing one or more labels onto an MPLS labelled packet | 4.2. Pushing One or More Labels onto an MPLS Labeled Packet | |||
The EXP field is copied directly from the topmost label before the | The EXP field is copied directly from the topmost label before the | |||
push to the newly added outer label. If more than one label is being | push to the newly added outer label. If more than one label is being | |||
pushed, the same EXP value is copied to all label stack entries. | pushed, the same EXP value is copied to all label-stack entries. | |||
4.3. Congestion experienced in an interior MPLS node | 4.3. Congestion Experienced in an Interior MPLS Node | |||
If the EXP codepoint of the packet maps to a PHB that uses ECN | If the EXP codepoint of the packet maps to a PHB that uses ECN | |||
marking and the marking algorithm requires the packet to be marked, | marking, and the marking algorithm requires the packet to be marked, | |||
the CM state is set (irrespective of whether it is already in the CM | the CM state is set (irrespective of whether it is already in the CM | |||
state). | state). | |||
If the buffer is full, a packet is dropped. | If the buffer is full, a packet is dropped. | |||
4.4. Crossing a Diffserv Domain Boundary | 4.4. Crossing a Diffserv Domain Boundary | |||
If an MPLS-encapsulated packet crosses a Diffserv domain boundary, it | If an MPLS-encapsulated packet crosses a Diffserv domain boundary, it | |||
may be the case that the two domains use different encodings of the | may be the case that the two domains use different encodings of the | |||
same PHB in the EXP field. In such cases, the EXP field must be | same PHB in the EXP field. In such cases, the EXP field must be | |||
rewritten at the domain boundary. If the PHB is one that supports | rewritten at the domain boundary. If the PHB is one that supports | |||
ECN, then the appropriate ECN marking should also be preserved when | ECN, then the appropriate ECN marking should also be preserved when | |||
the EXP field is mapped at the boundary. | the EXP field is mapped at the boundary. | |||
If an MPLS-encapsulated packet that is in the CM state crosses from a | If an MPLS-encapsulated packet that is in the CM state crosses from a | |||
domain that is ECN-enabled (as defined in Section 3) to a domain that | domain that is ECN-enabled (as defined in Section 3) to a domain that | |||
is not ECN-enabled, then it is necessary to perform the egress | is not ECN-enabled, then it is necessary to perform the egress | |||
checking procedures at the egress LSR of the ECN-enabled domain. | checking procedures at the egress LSR of the ECN-enabled domain. | |||
This means that if the encapsulated packet is not ECN capable, the | This means that if the encapsulated packet is not ECN-capable, the | |||
packet MUST be dropped. Note that this implies the egress LSR must | packet MUST be dropped. Note that this implies the egress LSR must | |||
be able to look beneath the MPLS header without popping the label | be able to look beneath the MPLS header without popping the label | |||
stack. | stack. | |||
The related issue of Diffserv tunnel models is discussed in | The related issue of Diffserv tunnel models is discussed in | |||
Section 4.7. | Section 4.7. | |||
4.5. Popping an MPLS label (not the end of the stack) | 4.5. Popping an MPLS Label (Not the End of the Stack) | |||
When a packet has more than one MPLS label in the stack and the top | When a packet has more than one MPLS label in the stack and the top | |||
label is popped, another MPLS label is exposed. In this case the ECN | label is popped, another MPLS label is exposed. In this case, the | |||
information should be transferred from the outer EXP field to the | ECN information should be transferred from the outer EXP field to the | |||
inner MPLS label in the following manner. If the inner EXP field is | inner MPLS label in the following manner. If the inner EXP field is | |||
Not-CM, the inner EXP field is set to the same CM or Not-CM state as | Not-CM, the inner EXP field is set to the same CM or Not-CM state as | |||
the outer EXP field. If the inner EXP field is CM, it remains | the outer EXP field. If the inner EXP field is CM, it remains | |||
unchanged whatever the outer EXP field. Note that an inner value of | unchanged whatever the outer EXP field. Note that an inner value of | |||
CM and an outer value of not-CM should be considered anomalous, and | CM and an outer value of not-CM should be considered anomalous, and | |||
SHOULD be logged in some way by the LSR. | SHOULD be logged in some way by the LSR. | |||
4.6. Popping the last MPLS label in the stack | 4.6. Popping the Last MPLS Label in the Stack | |||
When the last MPLS label is popped from the packet, its payload is | When the last MPLS label is popped from the packet, its payload is | |||
exposed. If that packet is not IP, and does not have any capability | exposed. If that packet is not IP, and does not have any capability | |||
equivalent to ECT, it is assumed Not-ECT and treated as such. That | equivalent to ECT, it is assumed Not-ECT, and it is treated as such. | |||
means that if the EXP value of the MPLS header was CM, the packet | That means that if the EXP value of the MPLS header is CM, the packet | |||
MUST be dropped. | MUST be dropped. | |||
Assuming an IP packet was exposed, we have to examine whether that | Assuming an IP packet was exposed, we have to examine whether or not | |||
packet is ECT or not. A Not-ECT packet MUST be dropped if the EXP | that packet is ECT. A Not-ECT packet MUST be dropped if the EXP | |||
field is CM. | field is CM. | |||
For the remainder of this section, we describe the behavior that is | For the remainder of this section, we describe the behavior that is | |||
required if the ECN information is to be transferred from the MPLS | required if the ECN information is to be transferred from the MPLS | |||
header into the exposed IP header for onward transmission. As noted | header into the exposed IP header for onward transmission. As noted | |||
in Section 1.2, such behavior is not mandated by this document, but | in Section 1.2, such behavior is not mandated by this document, but | |||
may be selected by an operator. | may be selected by an operator. | |||
If the inner IP packet is Not-ECT, its ECN field remains unchanged if | If the inner IP packet is Not-ECT, its ECN field remains unchanged if | |||
the EXP field is Not-CM. If the ECN field of the inner packet is set | the EXP field is Not-CM. If the ECN field of the inner packet is set | |||
to ECT(0), ECT(1) or CE, the ECN field remains unchanged if the EXP | to ECT(0), ECT(1), or CE, the ECN field remains unchanged if the EXP | |||
field is set to Not-CM. The ECN field is set to CE if the EXP field | field is set to Not-CM. The ECN field is set to CE if the EXP field | |||
is CM. Note that an inner value of CE and an outer value of not-CM | is CM. Note that an inner value of CE and an outer value of not-CM | |||
should be considered anomalous, and SHOULD be logged in some way by | should be considered anomalous, and SHOULD be logged in some way by | |||
the LSR. | the LSR. | |||
4.7. Diffserv Tunneling Models | 4.7. Diffserv Tunneling Models | |||
[RFC3270] describes three tunneling models for Diffserv support | [RFC3270] describes three tunneling models for Diffserv support | |||
across MPLS Domains, referred to as the uniform, short pipe, and pipe | across MPLS Domains, referred to as the uniform, short pipe, and pipe | |||
models. The differences between these models lie in whether the | models. The differences between these models lie in whether the | |||
Diffserv treatment that applies to a packet while it travels along a | Diffserv treatment that applies to a packet while it travels along a | |||
particular LSP is carried to the last hop of the LSP and beyond the | particular LSP is carried to the ingress of the last hop, to the | |||
last hop. Depending on which mode is preferred by an operator, the | egress of the last hop, or beyond the last hop. Depending on which | |||
EXP value or DSCP value of an exposed header following a label pop | mode is preferred by an operator, the EXP value or DSCP value of an | |||
may or may not be dependent on the EXP value of the label that is | exposed header following a label pop may or may not be dependent on | |||
removed by the pop operation. We believe that in the case of ECN | the EXP value of the label that is removed by the pop operation. We | |||
marking, the use of these models should only apply to the encoding of | believe that, in the case of ECN marking, the use of these models | |||
the Diffserv PHB in the EXP value, and that the choice of codepoint | should only apply to the encoding of the Diffserv PHB in the EXP | |||
for ECN should always be made based on the procedures described | value, and that the choice of codepoint for ECN should always be made | |||
above, independent of the tunneling model. | based on the procedures described above, independent of the tunneling | |||
model. | ||||
5. ECN-disabled MPLS domain | 5. ECN-Disabled MPLS Domain | |||
If ECN is not enabled on all the egress LSRs of a domain, ECN MUST | If ECN is not enabled on all the egress LSRs of a domain, ECN MUST | |||
NOT be enabled on any LSRs throughout the domain. If congestion is | NOT be enabled on any LSRs throughout the domain. If congestion is | |||
experienced on any LSR in an ECN-disabled MPLS domain, packets MUST | experienced on any LSR in an ECN-disabled MPLS domain, packets MUST | |||
be dropped, NOT marked. The exact algorithm for deciding when to | be dropped; they MUST NOT be marked. The exact algorithm for | |||
drop packets during congestion (e.g. tail-drop, RED, etc.) is a local | deciding when to drop packets during congestion (e.g., tail-drop, | |||
matter for the operator of the domain. | RED, etc.) is a local matter for the operator of the domain. | |||
6. The use of more codepoints with E-LSPs and L-LSPs | 6. The Use of More Codepoints with E-LSPs and L-LSPs | |||
[RFC3270] gives different options with E-LSPs and L-LSPs and some of | [RFC3270] gives different options with E-LSPs and L-LSPs, and some of | |||
those could potentially provide ample EXP codepoints for ECN. | those could potentially provide ample EXP codepoints for ECN. | |||
However, deploying L-LSPs vs E-LSPs has many implications such as | However, deploying L-LSPs vs. E-LSPs has many implications, such as | |||
platform support and operational complexity. The above ECN MPLS | platform support and operational complexity. The above ECN MPLS | |||
solution should provide some flexibility. If the operator has | solution should provide some flexibility. If the operator has | |||
deployed one L-LSP per PHB scheduling class, then EXP space will be a | deployed one L-LSP per PHB scheduling class, then EXP space will be a | |||
non-issue and it could be used to achieve more sophisticated ECN | non-issue, and it could be used to achieve more sophisticated ECN | |||
behavior if required. If the operator wants to stick to E-LSPs and | behavior if required. If the operator wants to stick to E-LSPs and | |||
uses a handful of EXP codepoints for Diffserv, it may be desirable to | uses a handful of EXP codepoints for Diffserv, it may be desirable to | |||
operate with a minimum number of extra ECN codepoints, even if this | operate with a minimum number of extra ECN codepoints, even if this | |||
comes with some compromise on ECN optimality. See Section 9 for | comes with some compromise on ECN optimality. See Section 9 for | |||
discussion of some possible deployment scenarios. | discussion of some possible deployment scenarios. | |||
We note that in a network where L-LSPs are used, ECN marking SHOULD | We note that in a network where L-LSPs are used, ECN marking SHOULD | |||
NOT cause packets from the same microflow but with different ECN | NOT cause packets from the same microflow, but with different ECN | |||
markings to be sent on different LSPs. As discussed in [RFC3270], | markings, to be sent on different LSPs. As discussed in [RFC3270], | |||
packets of a single microflow should always travel on the same LSP to | packets of a single microflow should always travel on the same LSP to | |||
avoid possible misordering. Thus, ECN marking of packets on L-LSPs | avoid possible misordering. Thus, ECN marking of packets on L-LSPs | |||
SHOULD only affect the EXP value of the packets. | SHOULD only affect the EXP value of the packets. | |||
7. Relationship to tunnel behavior in RFC 3168 | 7. Relationship to Tunnel Behavior in RFC 3168 | |||
[RFC3168] defines two modes of encapsulating ECN-marked IP packets | [RFC3168] defines two modes of encapsulating ECN-marked IP packets | |||
inside additional IP headers when tunnels are used. The two modes | inside additional IP headers when tunnels are used. The two modes | |||
are the "full functionality" and "limited functionality" modes. In | are the "full functionality" and "limited functionality" modes. In | |||
the full functionality mode, the ECT information from the inner | the full functionality mode, the ECT information from the inner | |||
header is copied to the outer header at the tunnel ingress, but the | header is copied to the outer header at the tunnel ingress, but the | |||
CE information is not. In the limited functionality mode, neither | CE information is not. In the limited functionality mode, neither | |||
ECT nor CE information is copied to the outer header, and thus ECN | ECT nor CE information is copied to the outer header, and thus ECN | |||
cannot be applied to the encapsulated packet. | cannot be applied to the encapsulated packet. | |||
skipping to change at page 13, line 26 | skipping to change at page 11, line 42 | |||
termination marking mechanism proposed for PCN works by only | termination marking mechanism proposed for PCN works by only | |||
considering packets for marking that have not already been marked | considering packets for marking that have not already been marked | |||
upstream. Unless existing flow termination marking is copied from | upstream. Unless existing flow termination marking is copied from | |||
the inner to the outer header at tunnel ingress, the mechanism | the inner to the outer header at tunnel ingress, the mechanism | |||
doesn't terminate enough traffic in cases where anomalous events hit | doesn't terminate enough traffic in cases where anomalous events hit | |||
multiple domains at once. [RFC3168] does not give any reasons | multiple domains at once. [RFC3168] does not give any reasons | |||
against conveying CE information from the inner header to the outer | against conveying CE information from the inner header to the outer | |||
in the "full functionality" mode. Furthermore, [RFC4301] specifies | in the "full functionality" mode. Furthermore, [RFC4301] specifies | |||
that the ECN marking should be copied from inner header to outer | that the ECN marking should be copied from inner header to outer | |||
header in IPSEC tunnels, consistent with the approach defined here. | header in IPSEC tunnels, consistent with the approach defined here. | |||
[I-D.briscoe-tsvwg-ecn-tunnel] discusses this issue in more detail. | [BRISCOE-ECN] discusses this issue in more detail. In summary, the | |||
In summary, the approach described in Section 4 appears to be both a | approach described in Section 4 appears to be both a sound technical | |||
sound technical choice and consistent with the current state of | choice and consistent with the current state of thinking in the IETF. | |||
thinking in the IETF. | ||||
8. Deployment Considerations | 8. Deployment Considerations | |||
8.1. Marking non-ECN Capable Packets | 8.1. Marking Non-ECN-Capable Packets | |||
What are the consequences of marking a packet that is not ECN- | What are the consequences of marking a packet that is not ECN- | |||
capable? Even if it will be dropped before leaving the domain, | capable? Even if it will be dropped before leaving the domain, | |||
doesn't this consume resources unnecessarily? | doesn't this consume resources unnecessarily? | |||
The problem only arises if there is congestion downstream of an | The problem only arises if there is congestion downstream of an | |||
earlier congested queue in the same MPLS domain. Downstream | earlier congested queue in the same MPLS domain. Congested LSRs | |||
congested LSRs might forward packets already marked, even though they | downstream might forward packets already marked, even though they | |||
will be dropped later when the inner IP header is found to be Not-ECT | will be dropped later when the inner IP header is found to be Not-ECT | |||
on decapsulation. Such packets might cause the downstream LSRs to | on decapsulation. Such packets might cause the downstream LSRs to | |||
mark (or drop) other packets that they would otherwise not have had | mark (or drop) other packets that they would otherwise not have had | |||
to. | to. | |||
We expect congestion will typically be rare in MPLS networks, but it | We expect congestion will typically be rare in MPLS networks, but it | |||
might not be. The extra unnecessary load at downstream LSRs will not | might not be. The extra unnecessary load at downstream LSRs will not | |||
be more than the fraction of marked packets from upstream LSRs, even | be more than the fraction of marked packets from upstream LSRs, even | |||
in the worst case where no transports are ECN capable. Therefore the | in the worst case where no transports are ECN-capable. Therefore, | |||
amount of unnecessary marking (or drop) on an LSR will not be more | the amount of unnecessary marking (or drop) on an LSR will not be | |||
than the product of its local marking rate and the marking rate due | more than the product of its local marking rate and the marking rate | |||
to upstream LSRs within the same domain - typically the product of | due to upstream LSRs within the same domain -- typically the product | |||
two small (often zero) probabilities. | of two small (often zero) probabilities. | |||
This is why we decided to use the per-domain ECT checking approach - | This is why we decided to use the per-domain ECT checking approach -- | |||
because the most likely effect would be a very slightly increased | because the most likely effect would be a very slightly increased | |||
marking rate, which would result in very slightly higher drop only | marking rate, which would result in very slightly higher drop only | |||
for non-ECN-capable transports. We chose not to use the [Floyd] | for non-ECN-capable transports. We chose not to use the [Floyd] | |||
alternative which introduced a low but persistent level of | alternative, which introduced a low but persistent level of | |||
unnecessary packet drop for all time, even for ECN-capable | unnecessary packet drop for all time, even for ECN-capable | |||
transports. Although that scheme did not carry traffic to the edge | transports. Although that scheme did not carry traffic to the edge | |||
of the MPLS domain only to be dropped on decapsulation, we felt our | of the MPLS domain only to be dropped on decapsulation, we felt our | |||
minor inefficiency was a small price to pay. And it would get | minor inefficiency was a small price to pay; and it would get smaller | |||
smaller still if ECN deployment widened. | still if ECN deployment widened. | |||
A partial solution would be to preferentially drop packets arriving | A partial solution would be to preferentially drop packets arriving | |||
at a congested router that were already marked. There is no solution | at a congested router that were already marked. There is no solution | |||
to the problem of marking a packet when congestion is caused by | to the problem of marking a packet when congestion is caused by | |||
another packet that should have been dropped. However, the chance of | another packet that should have been dropped. However, the chance of | |||
such an occurrence is very low and the consequences are not | such an occurrence is very low, and the consequences are not | |||
significant. It merely causes an application to very occasionally | significant. It merely causes an application to very occasionally | |||
slow down its rate when it did not have to. | slow down its rate when it did not have to. | |||
8.2. Non-ECN capable routers in an MPLS Domain | 8.2. Non-ECN-Capable Routers in an MPLS Domain | |||
What if an MPLS domain wants to use ECN, but not all legacy routers | What if an MPLS domain wants to use ECN, but not all legacy routers | |||
are able to support it? | are able to support it? | |||
If the legacy router(s) are used in the interior, this is not a | If the legacy router(s) are used in the interior, this is not a | |||
problem. They will simply have to drop the packets if they are | problem. They will simply have to drop the packets if they are | |||
congested, rather than mark them, which is the standard behavior for | congested, rather than mark them, which is the standard behavior for | |||
IP routers that are not ECN-enabled. | IP routers that are not ECN-enabled. | |||
If the legacy router were used as an egress router, it would not be | If the legacy router were used as an egress router, it would not be | |||
able to check the ECN capability of the transport correctly. An | able to check the ECN-capability of the transport correctly. An | |||
operator in this position would not be able to use this solution and | operator in this position would not be able to use this solution and | |||
therefore MUST NOT enable ECN unless all egress routers are ECN- | therefore MUST NOT enable ECN unless all egress routers are ECN- | |||
capable. | capable. | |||
9. Example Uses | 9. Example Uses | |||
9.1. RFC3168-style ECN | 9.1. RFC 3168-Style ECN | |||
[RFC3168] proposes the use of ECN in TCP and introduces the use of | [RFC3168] proposes the use of ECN in TCP, and it introduces the use | |||
ECN-Echo and CWR flags in the TCP header for initialization. The TCP | of ECN-Echo and Congestion Window Reduced (CWR) flags in the TCP | |||
sender responds accordingly (such as not increasing the congestion | header for initialization. The TCP sender responds accordingly (such | |||
window) when it receives an ECN-Echo (ECE) ACK packet (that is, an | as not increasing the congestion window) when it receives an ECN-Echo | |||
ACK packet with ECN-Echo flag set in the TCP header), then the sender | (ECE) ACK packet (that is, an ACK packet with ECN-Echo flag set in | |||
knows that congestion was encountered in the network on the path from | the TCP header), then the sender knows that congestion was | |||
the sender to the receiver. | encountered in the network on the path from the sender to the | |||
receiver. | ||||
It would be possible to enable ECN in an MPLS domain for Diffserv | It would be possible to enable ECN in an MPLS domain for Diffserv | |||
PHBs like AF and best efforts that are expected to be used by TCP and | PHBs like AF and best efforts that are expected to be used by TCP and | |||
similar transports (e.g. DCCP [RFC4340]). Then end-to-end | similar transports (e.g., DCCP [RFC4340]). Then, end-to-end | |||
congestion control in transports capable of understanding ECN would | congestion control in transports capable of understanding ECN would | |||
be able to respond to approaching congestion on LSRs without having | be able to respond to approaching congestion on LSRs without having | |||
to rely on packet discard to signal congestion. | to rely on packet discard to signal congestion. | |||
9.2. ECN Co-existence with Diffserv E-LSPs | 9.2. ECN Co-Existence with Diffserv E-LSPs | |||
Many operators today have deployed Diffserv using the E-LSP approach | Many operators today have deployed Diffserv using the E-LSP approach | |||
of [RFC3270]. In many cases the number of PHBs used is less than 8, | of [RFC3270]. In many cases, the number of PHBs used is less than 8, | |||
and hence there remain available codepoints in the EXP space. If an | and hence there remain available codepoints in the EXP space. If an | |||
operator wished to support ECN for single PHB, this can be | operator wished to support ECN for a single PHB, this could be | |||
accomplished by simply allocated a second codepoint to the PHB for | accomplished by simply allocating a second codepoint to the PHB for | |||
the "CM" state of that PHB and retaining the old codepoint for the | the CM state of that PHB and retaining the old codepoint for the | |||
"not-CM" state. An operator with only four deployed PHBs could of | not-CM state. An operator with only four deployed PHBs could, of | |||
course enable ECN marking on all those PHBs. It is easy to imagine | course, enable ECN marking on all those PHBs. It is easy to imagine | |||
cases where some PHBs might benefit more from ECN than others - for | cases where some PHBs might benefit more from ECN than others -- for | |||
example, an operator might use ECN on a premium data service but not | example, an operator might use ECN on a premium data service but not | |||
on a PHB used for best effort internet traffic. | on a PHB used for best-effort Internet traffic. | |||
As an illustrative example of how the EXP field might be used in this | As an illustrative example of how the EXP field might be used in this | |||
case, consider the example of an operator who is using the aggregated | case, consider the example of an operator who is using the aggregated | |||
service classes proposed in [I-D.ietf-tsvwg-diffserv-class-aggr]. He | service classes proposed in [TSVWG]. He may choose to support ECN | |||
may choose to support ECN only for the Assured Elastic Treatment | only for the Assured Elastic Treatment Aggregate, using the EXP | |||
Aggregate, using the EXP codepoint 010 for the not-CM state and 011 | codepoint 010 for the not-CM state and 011 for the CM state. All | |||
for the CM state. All other codepoints could be the same as in | other codepoints could be the same as in [TSVWG]. Of course, any | |||
[I-D.ietf-tsvwg-diffserv-class-aggr]. Of course any other | other combination of EXP values can be used according to the specific | |||
combination of EXP values can be used according to the specific set | set of PHBs and marking conventions used within that operator's | |||
of PHBs and marking conventions used within that operator's network. | network. | |||
9.3. Congestion-feedback-based Traffic Engineering | 9.3. Congestion-Feedback-Based Traffic Engineering | |||
Shayman's traffic engineering [Shayman] presents another example | Shayman's traffic engineering [Shayman] presents another example | |||
application of ECN feedback in an MPLS domain. Shayman proposed the | application of ECN feedback in an MPLS domain. Shayman proposed the | |||
use of ECN by an egress LSR feeding back congestion to an ingress LSR | use of ECN by an egress LSR feeding back congestion to an ingress LSR | |||
to mitigate congestion by employing dynamic traffic engineering | to mitigate congestion by employing dynamic traffic engineering | |||
techniques such as shifting flows to an alternate path. It proposed | techniques, such as shifting flows to an alternate path. It proposed | |||
a new RSVP message which was sent by the egress LSR to the ingress | a new Resource Reservation Protocol (RSVP) message, which was sent by | |||
LSR (and ignored by transit LSRs) to indicate congestion along the | the egress LSR to the ingress LSR (and ignored by transit LSRs) to | |||
path. Thus, rather than providing the same style of congestion | indicate congestion along the path. Thus, rather than providing the | |||
notification to endpoints as defined in [RFC3168], [Shayman] limits | same style of congestion notification to endpoints as defined in | |||
its scope to the MPLS domain only. This application of ECN in an | [RFC3168], [Shayman] limits its scope to the MPLS domain only. This | |||
MPLS domain could make use of the ECN encoding in the MPLS header | application of ECN in an MPLS domain could make use of the ECN | |||
that is defined in this document. | encoding in the MPLS header that is defined in this document. | |||
9.4. PCN flow admission control and flow termination | 9.4. PCN Flow Admission Control and Flow Termination | |||
[I-D.ietf-pcn-architecture] proposes using pre-congestion | [PCN] proposes using pre-congestion notification (PCN) on routers | |||
notification (PCN) on routers within an edge-to-edge Diffserv region | within an edge-to-edge Diffserv region to control admission of new | |||
to control admission of new flows to the region and, if necessary, to | flows to the region and, if necessary, to terminate existing flows in | |||
terminate existing flows in response to disasters and other anomalous | response to disasters and other anomalous routing events. In this | |||
routing events. In this approach, the current level of PCN marking | approach, the current level of PCN marking is picked up by the | |||
is picked up by the signalling used to initiate each flow in order to | signaling used to initiate each flow in order to inform the admission | |||
inform the admission control decision for the whole region at once. | control decision for the whole region at once. For example, | |||
For example, extensions to RSVP [I-D.lefaucheur-rsvp-ecn] and NSIS | extensions to RSVP [LEFAUCHEUR] and Next Steps in Signaling (NSIS) | |||
[I-D.ietf-nsis-rmd], [I-D.arumaithurai-nsis-pcn] have been proposed. | [NSIS], [ARUMAITHURAI] have been proposed. | |||
If LSRs are able to mark packets to signify congestion in MPLS, PCN | If LSRs are able to mark packets to signify congestion in MPLS, PCN | |||
marking could be used for admission control and flow termination | marking could be used for admission control and flow termination | |||
across a Diffserv region, irrespective of whether it contained pure | across a Diffserv region, irrespective of whether it contained pure | |||
IP routers, MPLS LSRs, or both. Indeed, the solution could be | IP routers, MPLS LSRs, or both. Indeed, the solution could be | |||
somewhat more efficient to implement if aggregates could identify | somewhat more efficient to implement if aggregates could identify | |||
themselves by their MPLS label. Appendix A describes the mechanisms | themselves by their MPLS label. Appendix A describes the mechanisms | |||
by which the necessary markings for PCN could be carried in the MPLS | by which the necessary markings for PCN could be carried in the MPLS | |||
header. | header. | |||
10. IANA Considerations | 10. Security Considerations | |||
This document makes no request of IANA. | ||||
Note to RFC Editor: this section may be removed on publication as an | ||||
RFC. | ||||
11. Security Considerations | ||||
We believe no new vulnerabilities are introduced by this draft. | We believe no new vulnerabilities are introduced by this document. | |||
We have considered whether malicious sources might be able to exploit | We have considered whether malicious sources might be able to exploit | |||
the fact that interior LSRs will mark packets that are Not-ECT, | the fact that interior LSRs will mark packets that are Not-ECT, | |||
relying on their egress LSR to drop them. Although this might allow | relying on their egress LSR to drop them. Although this might allow | |||
sources to engineer a situation where more traffic is carried across | sources to engineer a situation where more traffic is carried across | |||
an MPLS domain than should be, we figured that even if we hadn't | an MPLS domain than should be, we figured that even if we hadn't | |||
introduced this feature, these sources would have been able to | introduced this feature, these sources would have been able to | |||
prevent these LSRs dropping this traffic anyway, simply by setting | prevent these LSRs dropping this traffic anyway, simply by setting | |||
ECT in the first place. | ECT in the first place. | |||
An ECN sender can use the ECN nonce [RFC3540] to detect a misbehaving | An ECN sender can use the ECN nonce [RFC3540] to detect a misbehaving | |||
receiver. The ECN nonce works correctly across an MPLS domain | receiver. The ECN nonce works correctly across an MPLS domain | |||
without requiring any specific support from the proposal in this | without requiring any specific support from the proposal in this | |||
draft. The nonce does not need to be present in the MPLS shim | document. The nonce does not need to be present in the MPLS shim | |||
header. As long as the nonce is present in the IP header when the | header to detect a misbehaving receiver. As long as the nonce is | |||
ECN information is copied from the last MPLS shim header, it will be | present in the IP header when the ECN information is copied from the | |||
overwritten if congestion has been experienced by an LSR. This is | last MPLS shim header, it will be overwritten if congestion has been | |||
all that is necessary for the sender to detect a misbehaving | experienced by an LSR. This is all that is necessary for the sender | |||
receiver. | to detect a misbehaving receiver. If there were a need for an ECN | |||
nonce in the MPLS shim header (e.g., to detect if one LSR were | ||||
erasing the markings of an upstream LSR in the same domain), we | ||||
believe this proposal does not preclude the later addition of an ECN | ||||
nonce capability for specific DSCPs, just as it does not preclude any | ||||
other use of the EXP codepoints. | ||||
12. Acknowledgments | 11. Acknowledgments | |||
Thanks to K.K. Ramakrishnan and Sally Floyd for getting us thinking | Thanks to K.K. Ramakrishnan and Sally Floyd for getting us thinking | |||
about this in the first place and for providing advice on tunneling | about this in the first place and for providing advice on tunneling | |||
of ECN packets, and to Sally Floyd, Joe Babiarz, Ben Niven-Jenkins, | of ECN packets, and to Sally Floyd, Joe Babiarz, Ben Niven-Jenkins, | |||
Phil Eardley, Ruediger Geib, and Magnus Westerlund for their comments | Phil Eardley, Ruediger Geib, and Magnus Westerlund for their comments | |||
on the draft. | on the document. | |||
Appendix A. Extension to Pre-Congestion Notification | Appendix A. Extension to Pre-Congestion Notification | |||
This appendix describes how the mechanisms decribed in the body of | This appendix describes how the mechanisms described in the body of | |||
the document can be extended to support PCN | the document can be extended to support PCN [PCN]. Our intent here | |||
[I-D.ietf-pcn-architecture]. Our intent here is to show that the | is to show that the mechanisms are readily extended to more complex | |||
mechanisms are readily extended to more complex scenarios than ECN, | scenarios than ECN, particularly in the case where more codepoints | |||
particulary in the case where more codepoints are needed, but this | are needed, but this appendix may be safely ignored if one is | |||
appendix may be safely ignored if one is interested only in | interested only in supporting ECN. Note that the PCN standards are | |||
supporting ECN. Note that the PCN standards are still very much | still very much under development at the time of writing; hence, the | |||
under development at the time of writing, hence the precise details | precise details contained in this appendix may be subject to change, | |||
contained in this appendix may be subject to change, and we stress | and we stress that this appendix is for illustrative purposes only. | |||
that this appendix is for illustrative purposes only. | ||||
The relevant aspects of PCN for the purposes of this discussion are: | The relevant aspects of PCN for the purposes of this discussion are: | |||
o PCN uses 3 states rather than 2 for ECN - these are referred to as | o PCN uses 3 states rather than 2 for ECN -- these are referred to | |||
admission marked (AM), termination marked (TM) and not marked (NM) | as admission marked (AM), termination marked (TM), and not marked | |||
states. (See Section 9.4 for further discussion of PCN and the | (NM) states. (See Section 9.4 for further discussion of PCN and | |||
possibility of using fewer codepoints.) | the possibility of using fewer codepoints). | |||
o A packet can go from NM to AM, from NM to TM, or from AM to TM, | o A packet can go from NM to AM, from NM to TM, or from AM to TM, | |||
but no other transition is possible. | but no other transition is possible. | |||
o The determination of whether a packet is subject to PCN is based | o The determination of whether a packet is subject to PCN is based | |||
on the PHB of the packet. | on the PHB of the packet. | |||
Thus, to support PCN fully in an MPLS domain for a particular PHB, a | Thus, to support PCN fully in an MPLS domain for a particular PHB, a | |||
total of 3 codepoints need to be allocated for that PHB. These 3 | total of 3 codepoints need to be allocated for that PHB. These 3 | |||
codepoints represent the admission marked (AM), termination marked | codepoints represent the admission marked (AM), termination marked | |||
(TM) and not marked (NM) states. The procedures described in | (TM), and not marked (NM) states. The procedures described in | |||
Section 4 above need to be slightly modified to support this | Section 4 above need to be slightly modified to support this | |||
scenario. The following procedures are invoked when the topmost DSCP | scenario. The following procedures are invoked when the topmost DSCP | |||
or EXP value indicates a PHB that supports PCN. | or EXP value indicates a PHB that supports PCN. | |||
Appendix A.1. Label Push onto IP packet | A.1. Label Push onto IP Packet | |||
If the IP packet header indicates AM, set the EXP value of all | If the IP packet header indicates AM, set the EXP value of all | |||
entries in the label stack to AM. If the IP packet header indicates | entries in the label stack to AM. If the IP packet header indicates | |||
TM, set the EXP value of all entries in the label stack to TM. For | TM, set the EXP value of all entries in the label stack to TM. For | |||
any other marking of the IP header, set the EXP value of all entries | any other marking of the IP header, set the EXP value of all entries | |||
in the label stack to NM. | in the label stack to NM. | |||
Appendix A.2. Pushing Additional MPLS Labels | A.2. Pushing Additional MPLS Labels | |||
The procedures of Section 4.2 apply. | The procedures of Section 4.2 apply. | |||
Appendix A.3. Admission Control or Flow Termination Marking inside MPLS | A.3. Admission Control or Flow Termination Marking Inside MPLS Domain | |||
domain | ||||
The EXP value can be set to AM or TM according to the same procedures | The EXP value can be set to AM or TM according to the same procedures | |||
as described in [I-D.briscoe-tsvwg-cl-phb]. For the purposes of this | as described in [BRISCOE-CL]. For the purposes of this document, it | |||
document, it does not matter exactly what algorithms are used to | does not matter exactly which algorithms are used to decide when to | |||
decide when to set AM or TM; all that matters is that if a router | set AM or TM; all that matters is that if a router would have marked | |||
would have marked AM (or TM) in the IP header, it should set the EXP | AM (or TM) in the IP header, it should set the EXP value in the MPLS | |||
value in the MPLS header to the AM (or TM) codepoint. | header to the AM (or TM) codepoint. | |||
Appendix A.4. Popping an MPLS Label (not end of stack) | A.4. Popping an MPLS Label (Not End of Stack) | |||
When popping an MPLS Label exposes another MPLS label, the AM or TM | When popping an MPLS Label exposes another MPLS label, the AM or TM | |||
marking should be transferred to the exposed EXP field in the | marking should be transferred to the exposed EXP field in the | |||
following manner: | following manner: | |||
o If the inner EXP value is NM, then it should be set to the same | o If the inner EXP value is NM, then it should be set to the same | |||
marking state as the EXP value of the popped label stack entry. | marking state as the EXP value of the popped label stack entry. | |||
o If the inner EXP value is AM, it should be unchanged if the popped | o If the inner EXP value is AM, it should be unchanged if the popped | |||
EXP value was AM, and it should be set to TM if the popped EXP | EXP value was AM, and it should be set to TM if the popped EXP | |||
value was TM. If the popped EXP value was NM, this should be | value was TM. If the popped EXP value was NM, this should be | |||
logged in some way and the inner EXP value should be unchanged. | logged in some way, and the inner EXP value should be unchanged. | |||
o If the inner EXP value is TM, it should be unchanged whatever the | o If the inner EXP value is TM, it should be unchanged whatever the | |||
popped EXP value was, but any EXP value other than TM should be | popped EXP value was, but any EXP value other than TM should be | |||
logged. | logged. | |||
Appendix A.5. Popping the last MPLS Label to expose IP header | A.5. Popping the Last MPLS Label to Expose IP Header | |||
When popping the last MPLS Label exposes the IP header, there are two | When popping the last MPLS Label exposes the IP header, there are two | |||
cases to consider: | cases to consider: | |||
o the popping LSR is NOT the egress router of the PCN region, in | o the popping LSR is *not* the egress router of the PCN region, in | |||
which case AM or TM marking should be transferred to the exposed | which case AM or TM marking should be transferred to the exposed | |||
IP header field; or | IP header field; or | |||
o the popping LSR IS the egress router of the PCN region. | o the popping LSR *is* the egress router of the PCN region. | |||
In the latter case, the behavior of the egress LSR is defined in | In the latter case, the behavior of the egress LSR is defined in | |||
[I-D.ietf-pcn-architecture] and is beyond the scope of this document. | [PCN] and is beyond the scope of this document. In the former case, | |||
In the former case, the marking should be transferred from the popped | the marking should be transferred from the popped MPLS header to the | |||
MPLS header to the exposed IP header as follows: | exposed IP header as follows: | |||
o If the inner IP header value is neither AM nor TM, and the EXP | o If the inner IP header value is neither AM nor TM, and the EXP | |||
value was NM, then the IP header should be unchanged. For any | value was NM, then the IP header should be unchanged. For any | |||
other EXP value, the IP header should be set to the same marking | other EXP value, the IP header should be set to the same marking | |||
state as the EXP value of the popped label stack entry. | state as the EXP value of the popped label stack entry. | |||
o If the inner IP header value is AM, it should be unchanged if the | o If the inner IP header value is AM, it should be unchanged if the | |||
popped EXP value was AM, and it should be set to TM if the popped | popped EXP value was AM, and it should be set to TM if the popped | |||
EXP value was TM. If the popped EXP value was NM, this should be | EXP value was TM. If the popped EXP value was NM, this should be | |||
logged in some way and the inner IP header value should be | logged in some way and the inner IP header value should be | |||
unchanged. | unchanged. | |||
o If the IP header value is TM, it should be unchanged whatever the | o If the IP header value is TM, it should be unchanged whatever the | |||
popped EXP value was, but any EXP value other than TM should be | popped EXP value was, but any EXP value other than TM should be | |||
logged. | logged. | |||
13. References | Normative References | |||
13.1. Normative References | ||||
[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, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
[RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol | [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, | |||
Label Switching Architecture", RFC 3031, January 2001. | "Multiprotocol Label Switching Architecture", | |||
RFC 3031, January 2001. | ||||
[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 | |||
Encoding", RFC 3032, January 2001. | Stack Encoding", RFC 3032, January 2001. | |||
[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The | |||
of Explicit Congestion Notification (ECN) to IP", | Addition of Explicit Congestion Notification (ECN) to | |||
RFC 3168, September 2001. | IP", RFC 3168, September 2001. | |||
[RFC3270] Le Faucheur, F., Wu, L., Davie, B., Davari, S., Vaananen, | [RFC3270] Le Faucheur, F., Wu, L., Davie, B., Davari, S., | |||
P., Krishnan, R., Cheval, P., and J. Heinanen, "Multi- | Vaananen, P., Krishnan, R., Cheval, P., and J. | |||
Protocol Label Switching (MPLS) Support of Differentiated | Heinanen, "Multi-Protocol Label Switching (MPLS) | |||
Services", RFC 3270, May 2002. | Support of Differentiated Services", RFC 3270, | |||
May 2002. | ||||
[RFC4301] Kent, S. and K. Seo, "Security Architecture for the | [RFC4301] Kent, S. and K. Seo, "Security Architecture for the | |||
Internet Protocol", RFC 4301, December 2005. | Internet Protocol", RFC 4301, December 2005. | |||
13.2. Informative References | Informative References | |||
[Floyd] "A Proposal to Incorporate ECN in MPLS", 1999. | ||||
Work in progress. http://www.icir.org/floyd/papers/ | ||||
draft-ietf-mpls-ecn-00.txt | ||||
[I-D.arumaithurai-nsis-pcn] | [ARUMAITHURAI] Arumaithurai, M., "NSIS PCN-QoSM: A Quality of | |||
Arumaithurai, M., "NSIS PCN-QoSM: A Quality of Service | Service Model for Pre-Congestion Notification (PCN)", | |||
Model for Pre-Congestion Notification (PCN)", | Work in Progress, September 2007. | |||
draft-arumaithurai-nsis-pcn-00 (work in progress), | ||||
September 2007. | ||||
[I-D.briscoe-tsvwg-cl-phb] | [BRISCOE-CL] Briscoe, B., "Pre-Congestion Notification Marking", | |||
Briscoe, B., "Pre-Congestion Notification marking", | Work in Progress, October 2006. | |||
draft-briscoe-tsvwg-cl-phb-03 (work in progress), | ||||
October 2006. | ||||
[I-D.briscoe-tsvwg-ecn-tunnel] | [BRISCOE-ECN] Briscoe, B., "Layered Encapsulation of Congestion | |||
Briscoe, B., "Layered Encapsulation of Congestion | Notification", Work in Progress, July 2007. | |||
Notification", draft-briscoe-tsvwg-ecn-tunnel-00 (work in | ||||
progress), July 2007. | ||||
[I-D.ietf-nsis-rmd] | [Floyd] Ramakrishnan, K., Floyd, S., and B. Davie, "A | |||
Bader, A., "RMD-QOSM - The Resource Management in Diffserv | Proposal to Incorporate ECN in MPLS", Work in | |||
QOS Model", draft-ietf-nsis-rmd-11 (work in progress), | Progress, June 1999. | |||
August 2007. | ||||
[I-D.ietf-pcn-architecture] | [LEFAUCHEUR] Faucheur, F., Charny, A., Briscoe, B., Eardley, P., | |||
Eardley, P., "Pre-Congestion Notification Architecture", | Barbiaz, J., and K. Chan, "RSVP Extensions for | |||
draft-ietf-pcn-architecture-00 (work in progress), | Admission Control over Diffserv using Pre-congestion | |||
August 2007. | Notification (PCN)", Work in Progress, June 2006. | |||
[I-D.ietf-tsvwg-diffserv-class-aggr] | [NSIS] Bader, A., Westberg, L., Karagiannis, G., Cornelia, | |||
Chan, K., "Aggregation of DiffServ Service Classes", | C., and T. Phelan, "RMD-QOSM - The Resource | |||
draft-ietf-tsvwg-diffserv-class-aggr-04 (work in | Management in Diffserv QOS Model", Work in Progress, | |||
progress), August 2007. | November 2007. | |||
[I-D.lefaucheur-rsvp-ecn] | [PCN] Eardley, P., "Pre-Congestion Notification | |||
Faucheur, F., "RSVP Extensions for Admission Control over | Architecture", Work in Progress, November 2007. | |||
Diffserv using Pre-congestion Notification (PCN)", | ||||
draft-lefaucheur-rsvp-ecn-01 (work in progress), | ||||
June 2006. | ||||
[RFC3260] Grossman, D., "New Terminology and Clarifications for | [RFC3260] Grossman, D., "New Terminology and Clarifications for | |||
Diffserv", RFC 3260, April 2002. | Diffserv", RFC 3260, April 2002. | |||
[RFC3540] Spring, N., Wetherall, D., and D. Ely, "Robust Explicit | [RFC3540] Spring, N., Wetherall, D., and D. Ely, "Robust | |||
Congestion Notification (ECN) Signaling with Nonces", | Explicit Congestion Notification (ECN) Signaling with | |||
RFC 3540, June 2003. | Nonces", RFC 3540, June 2003. | |||
[RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram | [RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram | |||
Congestion Control Protocol (DCCP)", RFC 4340, March 2006. | Congestion Control Protocol (DCCP)", RFC 4340, | |||
March 2006. | ||||
[Shayman] "Using ECN to Signal Congestion Within an MPLS Domain", | [Shayman] Shayman, M. and R. Jaeger, "Using ECN to Signal | |||
2000. | Congestion Within an MPLS Domain", Work in Progress, | |||
November 2000. | ||||
Work in progress. http://www.ee.umd.edu/~shayman/papers.d/ | [TSVWG] Chan, K., Babiarz, J., and F. Baker, "Aggregation of | |||
draft-shayman-mpls-ecn-00.txt | DiffServ Service Classes", Work in Progress, | |||
November 2007. | ||||
Authors' Addresses | Authors' Addresses | |||
Bruce Davie | Bruce Davie | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
1414 Mass. Ave. | 1414 Mass. Ave. | |||
Boxborough, MA 01719 | Boxborough, MA 01719 | |||
USA | USA | |||
Email: bsd@cisco.com | EMail: bsd@cisco.com | |||
Bob Briscoe | Bob Briscoe | |||
BT Research | BT Research | |||
B54/77, Sirius House | B54/77, Sirius House | |||
Adastral Park | Adastral Park | |||
Martlesham Heath | Martlesham Heath | |||
Ipswich | Ipswich | |||
Suffolk IP5 3RE | Suffolk IP5 3RE | |||
United Kingdom | United Kingdom | |||
Email: bob.briscoe@bt.com | EMail: bob.briscoe@bt.com | |||
June Tay | June Tay | |||
BT Research | BT Research | |||
B54/77, Sirius House | B54/77, Sirius House | |||
Adastral Park | Adastral Park | |||
Martlesham Heath | Martlesham Heath | |||
Ipswich | Ipswich | |||
Suffolk IP5 3RE | Suffolk IP5 3RE | |||
United Kingdom | United Kingdom | |||
Email: june.tay@bt.com | EMail: june.tay@bt.com | |||
Full Copyright Statement | Full Copyright Statement | |||
Copyright (C) The IETF Trust (2007). | Copyright (C) The IETF Trust (2008). | |||
This document is subject to the rights, licenses and restrictions | This document is subject to the rights, licenses and restrictions | |||
contained in BCP 78, and except as set forth therein, the authors | contained in BCP 78, and except as set forth therein, the authors | |||
retain all their rights. | retain all their rights. | |||
This document and the information contained herein are provided on an | This document and the information contained herein are provided on an | |||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | |||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND | OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND | |||
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS | THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS | |||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | |||
skipping to change at page 23, line 44 | skipping to change at line 907 | |||
attempt made to obtain a general license or permission for the use of | attempt made to obtain a general license or permission for the use of | |||
such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |||
specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
this standard. Please address the information to the IETF at | this standard. Please address the information to the IETF at | |||
ietf-ipr@ietf.org. | ietf-ipr@ietf.org. | |||
Acknowledgments | ||||
Funding for the RFC Editor function is provided by the IETF | ||||
Administrative Support Activity (IASA). This document was produced | ||||
using xml2rfc v1.32 (of http://xml.resource.org/) from a source in | ||||
RFC-2629 XML format. | ||||
End of changes. 128 change blocks. | ||||
428 lines changed or deleted | 331 lines changed or added | |||
This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |