| draft-ietf-tsvwg-ecn-mpls-01.txt | draft-ietf-tsvwg-ecn-mpls-02.txt | |||
|---|---|---|---|---|
| Network Working Group B. Davie | Network Working Group B. Davie | |||
| Internet-Draft Cisco Systems, Inc. | Internet-Draft Cisco Systems, Inc. | |||
| Intended status: Standards Track B. Briscoe | Intended status: Standards Track B. Briscoe | |||
| Expires: December 21, 2007 J. Tay | Expires: April 6, 2008 J. Tay | |||
| BT Research | BT Research | |||
| June 19, 2007 | October 4, 2007 | |||
| Explicit Congestion Marking in MPLS | Explicit Congestion Marking in MPLS | |||
| draft-ietf-tsvwg-ecn-mpls-01.txt | draft-ietf-tsvwg-ecn-mpls-02.txt | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | 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 | 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. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 36 | skipping to change at page 1, line 36 | |||
| 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." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on December 21, 2007. | This Internet-Draft will expire on April 6, 2008. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The IETF Trust (2007). | Copyright (C) The IETF Trust (2007). | |||
| 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 | |||
| skipping to change at page 2, line 17 | skipping to change at page 2, line 17 | |||
| 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]. | |||
| Change History | Change History | |||
| [Note to RFC Editor: This section to be removed before publication] | [Note to RFC Editor: This section to be removed before publication] | |||
| Changes in this version (draft-ietf-tsvwg-ecn-mpls-01.txt) relative | Changes in this version (draft-ietf-tsvwg-ecn-mpls-02.txt) relative | |||
| to the last (draft-ietf-tsvwg-ecn-mpls-00.txt): | 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- | o Moved the detailed discussion of marking procedures for Pre- | |||
| Congestion Notification (PCN) to an appendix. | Congestion Notification (PCN) to an appendix. | |||
| o Removed PCN as a motivation for the efficient code-point usage in | o Removed PCN as a motivation for the efficient code-point usage in | |||
| Section 2. | Section 2. | |||
| o Clarified the rationale for preferring the ECT-checking approach | o Clarified the rationale for preferring the ECT-checking approach | |||
| over the approach of [Floyd] in Section 9.1. | over the approach of [Floyd] in Section 8.1. | |||
| o Updated discussion of relationship to RFC3168 in Section 7 | o Updated discussion of relationship to RFC3168 in Section 7 | |||
| o Removed discussion of re-ECN from Security Considerations. | o Removed discussion of re-ECN from Security Considerations. | |||
| o Fixed typos and nits. | o Fixed typos and nits. | |||
| Changes in draft-ietf-tsvwg-ecn-mpls-00.txt relative to | Changes in draft-ietf-tsvwg-ecn-mpls-00.txt relative to | |||
| draft-davie-ecn-mpls-00: | draft-davie-ecn-mpls-00: | |||
| skipping to change at page 3, line 12 | skipping to change at page 4, line 7 | |||
| cross from an ECN-enabled domain to a domain that is not ECN- | cross from an ECN-enabled domain to a domain that is not ECN- | |||
| enabled. | enabled. | |||
| o Clarified that copying MPLS ECN or PCN marking into exposed IP | o Clarified that copying MPLS ECN or PCN marking into exposed IP | |||
| header on egress is not mandatory | header on egress is not mandatory | |||
| o Fixed typos and nits | o Fixed typos and nits | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 1.1. Background . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1. Background . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 1.2. Intent . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.2. Intent . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 1.3. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | 1.3. Terminology . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 2. Use of MPLS EXP Field for ECN . . . . . . . . . . . . . . . . 6 | 2. Use of MPLS EXP Field for ECN . . . . . . . . . . . . . . . . 7 | |||
| 3. Per-domain ECT checking . . . . . . . . . . . . . . . . . . . 8 | 3. Per-domain ECT checking . . . . . . . . . . . . . . . . . . . 9 | |||
| 4. ECN-enabled MPLS domain . . . . . . . . . . . . . . . . . . . 8 | 4. ECN-enabled MPLS domain . . . . . . . . . . . . . . . . . . . 9 | |||
| 4.1. Pushing (adding) one or more labels to an IP packet . . . 9 | 4.1. Pushing (adding) one or more labels to an IP packet . . . 10 | |||
| 4.2. Pushing one or more labels onto an MPLS labelled packet . 9 | 4.2. Pushing one or more labels onto an MPLS labelled packet . 10 | |||
| 4.3. Congestion experienced in an interior MPLS node . . . . . 9 | 4.3. Congestion experienced in an interior MPLS node . . . . . 10 | |||
| 4.4. Crossing a Diffserv Domain Boundary . . . . . . . . . . . 9 | 4.4. Crossing a Diffserv Domain Boundary . . . . . . . . . . . 10 | |||
| 4.5. Popping an MPLS label (not the end of the stack) . . . . . 10 | 4.5. Popping an MPLS label (not the end of the stack) . . . . . 11 | |||
| 4.6. Popping the last MPLS label in the stack . . . . . . . . . 10 | 4.6. Popping the last MPLS label in the stack . . . . . . . . . 11 | |||
| 4.7. Diffserv Tunneling Models . . . . . . . . . . . . . . . . 10 | 4.7. Diffserv Tunneling Models . . . . . . . . . . . . . . . . 11 | |||
| 5. ECN-disabled MPLS domain . . . . . . . . . . . . . . . . . . . 11 | 5. ECN-disabled MPLS domain . . . . . . . . . . . . . . . . . . . 12 | |||
| 6. The use of more codepoints with E-LSPs and L-LSPs . . . . . . 11 | 6. The use of more codepoints with E-LSPs and L-LSPs . . . . . . 12 | |||
| 7. Relationship to tunnel behavior in RFC 3168 . . . . . . . . . 11 | 7. Relationship to tunnel behavior in RFC 3168 . . . . . . . . . 12 | |||
| 8. Example Uses . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 8. Deployment Considerations . . . . . . . . . . . . . . . . . . 13 | |||
| 8.1. RFC3168-style ECN . . . . . . . . . . . . . . . . . . . . 12 | 8.1. Marking non-ECN Capable Packets . . . . . . . . . . . . . 13 | |||
| 8.2. ECN Co-existence with Diffserv E-LSPs . . . . . . . . . . 12 | 8.2. Non-ECN capable routers in an MPLS Domain . . . . . . . . 14 | |||
| 8.3. Congestion-feedback-based Traffic Engineering . . . . . . 13 | 9. Example Uses . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 8.4. PCN flow admission control and flow pre-emption . . . . . 13 | 9.1. RFC3168-style ECN . . . . . . . . . . . . . . . . . . . . 14 | |||
| 9. Deployment Considerations . . . . . . . . . . . . . . . . . . 14 | 9.2. ECN Co-existence with Diffserv E-LSPs . . . . . . . . . . 15 | |||
| 9.1. Marking non-ECN Capable Packets . . . . . . . . . . . . . 14 | 9.3. Congestion-feedback-based Traffic Engineering . . . . . . 15 | |||
| 9.2. Non-ECN capable routers in an MPLS Domain . . . . . . . . 15 | 9.4. PCN flow admission control and flow termination . . . . . 16 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | |||
| 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16 | 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| Appendix A. Extension to Pre-Congestion Notification . . . . . . 16 | Appendix A. Extension to Pre-Congestion Notification . . . . . . 17 | |||
| Appendix A.1. Label Push onto IP packet . . . . . . . . . . . . . 17 | Appendix A.1. Label Push onto IP packet . . . . . . . . . . . . . 18 | |||
| Appendix A.2. Pushing Additional MPLS Labels . . . . . . . . . . . 17 | Appendix A.2. Pushing Additional MPLS Labels . . . . . . . . . . . 18 | |||
| Appendix A.3. Admission Control or Pre-emption Marking inside | Appendix A.3. Admission Control or Flow Termination Marking | |||
| MPLS domain . . . . . . . . . . . . . . . . . . . . 17 | inside MPLS domain . . . . . . . . . . . . . . . . . 18 | |||
| Appendix A.4. Popping an MPLS Label (not end of stack) . . . . . . 17 | Appendix A.4. Popping an MPLS Label (not end of stack) . . . . . . 18 | |||
| Appendix A.5. Popping the last MPLS Label to expose IP header . . 18 | Appendix A.5. Popping the last MPLS Label to expose IP header . . 19 | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 13.1. Normative References . . . . . . . . . . . . . . . . . . . 18 | 13.1. Normative References . . . . . . . . . . . . . . . . . . . 19 | |||
| 13.2. Informative References . . . . . . . . . . . . . . . . . . 19 | 13.2. Informative References . . . . . . . . . . . . . . . . . . 20 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . . 22 | 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 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 | |||
| skipping to change at page 4, line 27 | skipping to change at page 5, line 27 | |||
| 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 draft 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 pre-emption [I-D.briscoe-tsvwg-cl-architecture], | control and flow termination [I-D.ietf-pcn-architecture], there is | |||
| there is consequent interest in being able to support ECN across IP | consequent interest in being able to support ECN across IP networks | |||
| networks consisting of MPLS-enabled domains. Therefore it is | consisting of MPLS-enabled domains. Therefore it is necessary to | |||
| necessary to specify the protocol for including ECN in the MPLS shim | specify the protocol for including ECN in the MPLS shim header, and | |||
| header, and the protocol behavior of edge MPLS nodes. | the protocol behavior 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 drafts | |||
| [Floyd] [Shayman] and we draw on those efforts in this draft as well. | [Floyd] [Shayman] and we draw on those efforts in this draft as well. | |||
| skipping to change at page 5, line 16 | skipping to change at page 6, line 16 | |||
| 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 notification | |||
| must be copied into the IP header for onward transmission. This | must be copied into the IP header for onward transmission. This | |||
| draft aims to be generic for any use of congestion notification in | draft aims to be generic for any use of congestion notification in | |||
| MPLS. Support of [RFC3168] is our primary motivation; some | MPLS. Support of [RFC3168] is our primary motivation; some | |||
| additional potential applications to illustrate the flexibility of | additional potential applications to illustrate the flexibility of | |||
| our approach are described in Section 8. In particular, we aim to | our approach are described in Section 9. In particular, we aim to | |||
| support possible future schemes that may use more than one level of | support possible future schemes that may use more than one level of | |||
| congestion marking. | 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: | |||
| skipping to change at page 6, line 38 | skipping to change at page 7, line 38 | |||
| approach is used, then codepoint space in the EXP field is likely to | approach is used, then codepoint space in the EXP field is likely to | |||
| be scarce. This draft focuses on interworking ECN marking with the | be scarce. This draft 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 8.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 meaning not congestion marked (Not-CM), and at least one | |||
| other codepoint will be defined meaning congestion marked (CM). | other codepoint will be defined meaning congestion marked (CM). | |||
| Therefore, each PHB that uses ECN marking will consume at least two | Therefore, each PHB that uses ECN marking will consume at least two | |||
| EXP codepoints. But PHBs that do not use ECN marking will only | EXP codepoints. 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 | |||
| skipping to change at page 8, line 6 | skipping to change at page 9, line 6 | |||
| 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 9.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 | |||
| skipping to change at page 11, line 31 | skipping to change at page 12, line 31 | |||
| [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 8 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 | ||||
| NOT cause packets from the same microflow but with different ECN | ||||
| markings to be sent on different LSPs. As discussed in [RFC3270], | ||||
| packets of a single microflow should always travel on the same LSP to | ||||
| avoid possible misordering. Thus, ECN marking of packets on L-LSPs | ||||
| 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. | |||
| The behavior that is specified in Section 4 of this document | The behavior that is specified in Section 4 of this document | |||
| resembles the "full functionality" mode in the sense that it conveys | resembles the "full functionality" mode in the sense that it conveys | |||
| some information from inner to outer header, and in the sense that it | some information from inner to outer header, and in the sense that it | |||
| enables full ECN support along the MPLS LSP (which is analogous to an | enables full ECN support along the MPLS LSP (which is analogous to an | |||
| IP tunnel in this context). However it differs in one respect, which | IP tunnel in this context). However it differs in one respect, which | |||
| is that the CE information is conveyed from the inner header to the | is that the CE information is conveyed from the inner header to the | |||
| outer header. Our original reason for this different design choice | outer header. Our original reason for this different design choice | |||
| was to give interior routers and LSRs more information about upstream | was to give interior routers and LSRs more information about upstream | |||
| marking in multi-bottleneck cases. For instance, the flow pre- | marking in multi-bottleneck cases. For instance, the flow | |||
| emption marking mechanism proposed for PCN works by only considering | termination marking mechanism proposed for PCN works by only | |||
| packets for marking that have not already been marked upstream. | considering packets for marking that have not already been marked | |||
| Unless existing pre-emption marking is copied from the inner to the | upstream. Unless existing flow termination marking is copied from | |||
| outer header at tunnel ingress, the mechanism doesn't pre-empt enough | the inner to the outer header at tunnel ingress, the mechanism | |||
| traffic in cases where anomalous events hit multiple domains at once. | doesn't terminate enough traffic in cases where anomalous events hit | |||
| [RFC3168] does not give any reasons against conveying CE information | multiple domains at once. [RFC3168] does not give any reasons | |||
| from the inner header to the outer in the "full functionality" mode. | against conveying CE information from the inner header to the outer | |||
| Furthermore, [RFC4301] specifies that the ECN marking should be | in the "full functionality" mode. Furthermore, [RFC4301] specifies | |||
| copied from inner header to outer header in IPSEC tunnels, consistent | that the ECN marking should be copied from inner header to outer | |||
| with the approach defined here. [Briscoe] discusses this issue in | header in IPSEC tunnels, consistent with the approach defined here. | |||
| more detail. In summary, the approach described in Section 4 appears | [I-D.briscoe-tsvwg-ecn-tunnel] discusses this issue in more detail. | |||
| to be both a sound technical choice and consistent with the current | In summary, the approach described in Section 4 appears to be both a | |||
| state of thinking in the IETF. | sound technical choice and consistent with the current state of | |||
| thinking in the IETF. | ||||
| 8. Example Uses | ||||
| 8.1. RFC3168-style ECN | ||||
| [RFC3168] proposes the use of ECN in TCP and introduces the use of | ||||
| ECN-Echo and CWR flags in the TCP header for initialization. The TCP | ||||
| sender responds accordingly (such as not increasing the congestion | ||||
| window) when it receives an ECN-Echo (ECE) ACK packet (that is, an | ||||
| ACK packet with ECN-Echo flag set in the TCP header), then the sender | ||||
| knows that congestion was 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 | ||||
| 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 | ||||
| congestion control in transports capable of understanding ECN would | ||||
| be able to respond to approaching congestion on LSRs without having | ||||
| to rely on packet discard to signal congestion. | ||||
| 8.2. ECN Co-existence with Diffserv E-LSPs | ||||
| 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, | ||||
| and hence there remain available codepoints in the EXP space. If an | ||||
| operator wished to support ECN for single PHB, this can be | ||||
| accomplished by simply allocated a second codepoint to the PHB for | ||||
| 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 | ||||
| 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 | ||||
| example, an operator might use ECN on a premium data service but not | ||||
| on a PHB used for best effort internet traffic. | ||||
| 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 | ||||
| service classes proposed in [I-D.ietf-tsvwg-diffserv-class-aggr]. He | ||||
| may choose to support ECN only for the Assured Elastic Treatment | ||||
| Aggregate, using the EXP codepoint 010 for the not-CM state and 011 | ||||
| for the CM state. All other codepoints could be the same as in | ||||
| [I-D.ietf-tsvwg-diffserv-class-aggr]. Of course any other | ||||
| combination of EXP values can be used according to the specific set | ||||
| of PHBs and marking conventions used within that operator's network. | ||||
| 8.3. Congestion-feedback-based Traffic Engineering | ||||
| Shayman's traffic engineering [Shayman] proposed the use of ECN by an | ||||
| egress LSR feeding back congestion to an ingress LSR to mitigate | ||||
| congestion by employing dynamic traffic engineering techniques such | ||||
| as shifting flows to an alternate path. It proposed a new RSVP | ||||
| TUNNEL CONGESTION message which was sent to the ingress LSR and | ||||
| ignored by transit LSRs. | ||||
| 8.4. PCN flow admission control and flow pre-emption | ||||
| [I-D.briscoe-tsvwg-cl-architecture] proposes using pre-congestion | ||||
| notification (PCN) on routers within an edge-to-edge Diffserv region | ||||
| to control admission of new flows to the region and, if necessary, to | ||||
| pre-empt existing flows in response to disasters and other anomalous | ||||
| routing events. In this approach, the current level of PCN marking | ||||
| is picked up by the signalling used to initiate each flow in order to | ||||
| inform the admission control decision for the whole region at once. | ||||
| As an example, a minor extension to RSVP signalling has been proposed | ||||
| [I-D.lefaucheur-rsvp-ecn] to carry this message, but a similar | ||||
| approach has also been proposed that uses NSIS signalling | ||||
| [I-D.ietf-nsis-rmd]. | ||||
| If it is possible for LSRs to signify congestion in MPLS, PCN marking | ||||
| could be used for admission control and flow pre-emption across a | ||||
| Diffserv region, irrespective of whether it contained pure IP | ||||
| routers, MPLS LSRs, or both. Indeed, the solution could be somewhat | ||||
| more efficient to implement if aggregates could identify themselves | ||||
| by their MPLS label. Appendix A describes the mechanisms by which | ||||
| the necessary markings for PCN could be carried in the MPLS header. | ||||
| 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 | ||||
| service classes proposed in [I-D.ietf-tsvwg-diffserv-class-aggr]. He | ||||
| may choose to support PCN only for the Real Time Treatment Aggregate, | ||||
| using the EXP codepoint 100 for the not-marked (NM) state, 101 for | ||||
| the Admission Marked (AM) state, and 111 for the Pre-emption Marked | ||||
| (PM) state. All other codepoints could be the same as in | ||||
| [I-D.ietf-tsvwg-diffserv-class-aggr]. Of course any other | ||||
| combination of EXP values can be used according to the specific set | ||||
| of PHBs and marking conventions used within that operator's network. | ||||
| It might also be possible to deploy a similar solution using PCN | ||||
| marking over MPLS for just admission control alone, or just flow pre- | ||||
| emption alone, particularly if codepoint space was at a premium in | ||||
| the MPLS EXP field. However, the feasibility of deploying one | ||||
| without the other would require further study. We also note that an | ||||
| approach to deploying PCN using only a single marking codepoint to | ||||
| support both pre-emption and admission control has been | ||||
| proposed[I-D.charny-pcn-single-marking]. | ||||
| 9. Deployment Considerations | 8. Deployment Considerations | |||
| 9.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. Downstream | |||
| congested LSRs might forward packets already marked, even though they | congested LSRs 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 | |||
| skipping to change at page 15, line 19 | skipping to change at page 14, line 28 | |||
| smaller still if ECN deployment widened. | smaller 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. | |||
| 9.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.1. RFC3168-style ECN | ||||
| [RFC3168] proposes the use of ECN in TCP and introduces the use of | ||||
| ECN-Echo and CWR flags in the TCP header for initialization. The TCP | ||||
| sender responds accordingly (such as not increasing the congestion | ||||
| window) when it receives an ECN-Echo (ECE) ACK packet (that is, an | ||||
| ACK packet with ECN-Echo flag set in the TCP header), then the sender | ||||
| knows that congestion was 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 | ||||
| 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 | ||||
| congestion control in transports capable of understanding ECN would | ||||
| be able to respond to approaching congestion on LSRs without having | ||||
| to rely on packet discard to signal congestion. | ||||
| 9.2. ECN Co-existence with Diffserv E-LSPs | ||||
| 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, | ||||
| and hence there remain available codepoints in the EXP space. If an | ||||
| operator wished to support ECN for single PHB, this can be | ||||
| accomplished by simply allocated a second codepoint to the PHB for | ||||
| 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 | ||||
| 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 | ||||
| example, an operator might use ECN on a premium data service but not | ||||
| on a PHB used for best effort internet traffic. | ||||
| 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 | ||||
| service classes proposed in [I-D.ietf-tsvwg-diffserv-class-aggr]. He | ||||
| may choose to support ECN only for the Assured Elastic Treatment | ||||
| Aggregate, using the EXP codepoint 010 for the not-CM state and 011 | ||||
| for the CM state. All other codepoints could be the same as in | ||||
| [I-D.ietf-tsvwg-diffserv-class-aggr]. Of course any other | ||||
| combination of EXP values can be used according to the specific set | ||||
| of PHBs and marking conventions used within that operator's network. | ||||
| 9.3. Congestion-feedback-based Traffic Engineering | ||||
| Shayman's traffic engineering [Shayman] presents another example | ||||
| 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 | ||||
| to mitigate congestion by employing dynamic traffic engineering | ||||
| 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 | ||||
| LSR (and ignored by transit LSRs) to indicate congestion along the | ||||
| path. Thus, rather than providing the same style of congestion | ||||
| notification to endpoints as defined in [RFC3168], [Shayman] limits | ||||
| its scope to the MPLS domain only. This application of ECN in an | ||||
| MPLS domain could make use of the ECN encoding in the MPLS header | ||||
| that is defined in this document. | ||||
| 9.4. PCN flow admission control and flow termination | ||||
| [I-D.ietf-pcn-architecture] proposes using pre-congestion | ||||
| notification (PCN) on routers within an edge-to-edge Diffserv region | ||||
| to control admission of new flows to the region and, if necessary, to | ||||
| terminate existing flows in response to disasters and other anomalous | ||||
| routing events. In this approach, the current level of PCN marking | ||||
| is picked up by the signalling used to initiate each flow in order to | ||||
| inform the admission control decision for the whole region at once. | ||||
| For example, extensions to RSVP [I-D.lefaucheur-rsvp-ecn] and NSIS | ||||
| [I-D.ietf-nsis-rmd], [I-D.arumaithurai-nsis-pcn] have been proposed. | ||||
| If LSRs are able to mark packets to signify congestion in MPLS, PCN | ||||
| marking could be used for admission control and flow termination | ||||
| across a Diffserv region, irrespective of whether it contained pure | ||||
| IP routers, MPLS LSRs, or both. Indeed, the solution could be | ||||
| somewhat more efficient to implement if aggregates could identify | ||||
| themselves by their MPLS label. Appendix A describes the mechanisms | ||||
| by which the necessary markings for PCN could be carried in the MPLS | ||||
| header. | ||||
| 10. IANA Considerations | 10. IANA Considerations | |||
| This document makes no request of IANA. | This document makes no request of IANA. | |||
| Note to RFC Editor: this section may be removed on publication as an | Note to RFC Editor: this section may be removed on publication as an | |||
| RFC. | RFC. | |||
| 11. Security Considerations | 11. Security Considerations | |||
| We believe no new vulnerabilities are introduced by this draft. | We believe no new vulnerabilities are introduced by this draft. | |||
| skipping to change at page 16, line 31 | skipping to change at page 17, line 24 | |||
| 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 draft. | |||
| 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 decribed in the body of | |||
| the document can be extended to support PCN | the document can be extended to support PCN | |||
| [I-D.briscoe-tsvwg-cl-architecture]. Our intent here is to show that | [I-D.ietf-pcn-architecture]. Our intent here is to show that the | |||
| the mechanisms are readily extended to more complex scenarios than | mechanisms are readily extended to more complex scenarios than ECN, | |||
| ECN, particulary in the case where more codepoints are needed, but | particulary in the case where more codepoints are needed, but this | |||
| this appendix may be safely ignored if one is interested only in | appendix may be safely ignored if one is interested only in | |||
| supporting ECN. Note that the PCN standards are still very much | supporting ECN. Note that the PCN standards are still very much | |||
| under development at the time of writing, hence the precise details | under development at the time of writing, hence the precise details | |||
| contained in this appendix may be subject to change, and we stress | contained in this appendix may be subject to change, 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 as | |||
| admission marked (AM), pre-emption marked (PM) and not marked (NM) | admission marked (AM), termination marked (TM) and not marked (NM) | |||
| states. (See Section 8.4 for further discussion of PCN and the | states. (See Section 9.4 for further discussion of PCN and the | |||
| possibility of using fewer codepoints.) | possibility of using fewer codepoints.) | |||
| o A packet can go from NM to AM, from NM to PM, or from AM to PM, | 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), pre-emption marked | codepoints represent the admission marked (AM), termination marked | |||
| (PM) 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 | Appendix 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 | |||
| PM, set the EXP value of all entries in the label stack to PM. 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 | Appendix 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 Pre-emption Marking inside MPLS | Appendix A.3. Admission Control or Flow Termination Marking inside MPLS | |||
| domain | domain | |||
| The EXP value can be set to AM or PM 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 [I-D.briscoe-tsvwg-cl-phb]. For the purposes of this | |||
| document, it does not matter exactly what algorithms are used to | document, it does not matter exactly what algorithms are used to | |||
| decide when to set AM or PM; all that matters is that if a router | decide when to set AM or TM; all that matters is that if a router | |||
| would have marked AM (or PM) in the IP header, it should set the EXP | would have marked AM (or TM) in the IP header, it should set the EXP | |||
| value in the MPLS header to the AM (or PM) codepoint. | value in the MPLS header to the AM (or TM) codepoint. | |||
| Appendix A.4. Popping an MPLS Label (not end of stack) | Appendix A.4. Popping an MPLS Label (not end of stack) | |||
| When popping an MPLS Label exposes another MPLS label, the AM or PM | 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 PM if the popped EXP | EXP value was AM, and it should be set to TM if the popped EXP | |||
| value was PM. 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 PM, 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 PM 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 | Appendix 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 PM 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.briscoe-tsvwg-cl-architecture] and is beyond the scope of this | [I-D.ietf-pcn-architecture] and is beyond the scope of this document. | |||
| document. In the former case, the marking should be transferred from | In the former case, the marking should be transferred from the popped | |||
| the popped MPLS header to the exposed IP header as follows: | MPLS header to the exposed IP header as follows: | |||
| o If the inner IP header value is neither AM nor PM, 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 PM if the popped | popped EXP value was AM, and it should be set to TM if the popped | |||
| EXP value was PM. 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 PM, 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 PM should be | popped EXP value was, but any EXP value other than TM should be | |||
| logged. | logged. | |||
| 13. References | 13. References | |||
| 13.1. 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, "Multiprotocol | |||
| skipping to change at page 19, line 20 | skipping to change at page 20, line 16 | |||
| [RFC3270] Le Faucheur, F., Wu, L., Davie, B., Davari, S., Vaananen, | [RFC3270] Le Faucheur, F., Wu, L., Davie, B., Davari, S., Vaananen, | |||
| P., Krishnan, R., Cheval, P., and J. Heinanen, "Multi- | P., Krishnan, R., Cheval, P., and J. Heinanen, "Multi- | |||
| Protocol Label Switching (MPLS) Support of Differentiated | Protocol Label Switching (MPLS) Support of Differentiated | |||
| Services", RFC 3270, May 2002. | 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 | 13.2. Informative References | |||
| [Briscoe] "Layered Encapsulation of Congestion Notification", | ||||
| June 2007. | ||||
| Work in progress. | ||||
| [Floyd] "A Proposal to Incorporate ECN in MPLS", 1999. | [Floyd] "A Proposal to Incorporate ECN in MPLS", 1999. | |||
| Work in progress. http://www.icir.org/floyd/papers/ | Work in progress. http://www.icir.org/floyd/papers/ | |||
| draft-ietf-mpls-ecn-00.txt | draft-ietf-mpls-ecn-00.txt | |||
| [I-D.briscoe-tsvwg-cl-architecture] | [I-D.arumaithurai-nsis-pcn] | |||
| Briscoe, B., "An edge-to-edge Deployment Model for Pre- | Arumaithurai, M., "NSIS PCN-QoSM: A Quality of Service | |||
| Congestion Notification: Admission Control over a | Model for Pre-Congestion Notification (PCN)", | |||
| DiffServ Region", draft-briscoe-tsvwg-cl-architecture-04 | draft-arumaithurai-nsis-pcn-00 (work in progress), | |||
| (work in progress), October 2006. | September 2007. | |||
| [I-D.briscoe-tsvwg-cl-phb] | [I-D.briscoe-tsvwg-cl-phb] | |||
| Briscoe, B., "Pre-Congestion Notification marking", | Briscoe, B., "Pre-Congestion Notification marking", | |||
| draft-briscoe-tsvwg-cl-phb-03 (work in progress), | draft-briscoe-tsvwg-cl-phb-03 (work in progress), | |||
| October 2006. | October 2006. | |||
| [I-D.charny-pcn-single-marking] | [I-D.briscoe-tsvwg-ecn-tunnel] | |||
| Charny, A., "Pre-Congestion Notification Using Single | Briscoe, B., "Layered Encapsulation of Congestion | |||
| Marking for Admission and Pre-emption", | Notification", draft-briscoe-tsvwg-ecn-tunnel-00 (work in | |||
| draft-charny-pcn-single-marking-01 (work in progress), | progress), July 2007. | |||
| March 2007. | ||||
| [I-D.ietf-nsis-rmd] | [I-D.ietf-nsis-rmd] | |||
| Bader, A., "RMD-QOSM - The Resource Management in Diffserv | Bader, A., "RMD-QOSM - The Resource Management in Diffserv | |||
| QOS Model", draft-ietf-nsis-rmd-09 (work in progress), | QOS Model", draft-ietf-nsis-rmd-11 (work in progress), | |||
| March 2007. | August 2007. | |||
| [I-D.ietf-pcn-architecture] | ||||
| Eardley, P., "Pre-Congestion Notification Architecture", | ||||
| draft-ietf-pcn-architecture-00 (work in progress), | ||||
| August 2007. | ||||
| [I-D.ietf-tsvwg-diffserv-class-aggr] | [I-D.ietf-tsvwg-diffserv-class-aggr] | |||
| Chan, K., "Aggregation of DiffServ Service Classes", | Chan, K., "Aggregation of DiffServ Service Classes", | |||
| draft-ietf-tsvwg-diffserv-class-aggr-02 (work in | draft-ietf-tsvwg-diffserv-class-aggr-04 (work in | |||
| progress), March 2007. | progress), August 2007. | |||
| [I-D.lefaucheur-rsvp-ecn] | [I-D.lefaucheur-rsvp-ecn] | |||
| Faucheur, F., "RSVP Extensions for Admission Control over | Faucheur, F., "RSVP Extensions for Admission Control over | |||
| Diffserv using Pre-congestion Notification (PCN)", | Diffserv using Pre-congestion Notification (PCN)", | |||
| draft-lefaucheur-rsvp-ecn-01 (work in progress), | draft-lefaucheur-rsvp-ecn-01 (work in progress), | |||
| June 2006. | 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. | |||
| skipping to change at page 22, line 45 | skipping to change at page 23, line 45 | |||
| 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. | |||
| Acknowledgment | Acknowledgments | |||
| Funding for the RFC Editor function is provided by the IETF | Funding for the RFC Editor function is provided by the IETF | |||
| Administrative Support Activity (IASA). | 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. 41 change blocks. | ||||
| 216 lines changed or deleted | 221 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/ | ||||