< draft-ietf-pcn-3-in-1-encoding-06a.txt | draft-ietf-pcn-3-in-1-encoding-06c.txt > | |||
---|---|---|---|---|
Congestion and Pre-Congestion B. Briscoe | Congestion and Pre-Congestion B. Briscoe | |||
Notification BT | Notification BT | |||
Internet-Draft T. Moncaster | Internet-Draft T. Moncaster | |||
Obsoletes: 5696 (if approved) Moncaster Internet Consulting | Obsoletes: 5696 (if approved) Moncaster Internet Consulting | |||
Intended status: Standards Track M. Menth | Intended status: Standards Track M. Menth | |||
Expires: January 4, 2012 University of Tuebingen | Expires: January 8, 2012 University of Tuebingen | |||
July 3, 2011 | July 7, 2011 | |||
Encoding 3 PCN-States in the IP header using a single DSCP | Encoding 3 PCN-States in the IP header using a single DSCP | |||
draft-ietf-pcn-3-in-1-encoding-06 | draft-ietf-pcn-3-in-1-encoding-06 | |||
Abstract | Abstract | |||
The objective of Pre-Congestion Notification (PCN) is to protect the | The objective of Pre-Congestion Notification (PCN) is to protect the | |||
quality of service (QoS) of inelastic flows within a Diffserv domain. | quality of service (QoS) of inelastic flows within a Diffserv domain. | |||
The overall rate of the PCN-traffic is metered on every link in the | The overall rate of the PCN-traffic is metered on every link in the | |||
PCN domain, and PCN-packets are appropriately marked when certain | PCN domain, and PCN-packets are appropriately marked when certain | |||
skipping to change at page 1, line 48 | skipping to change at page 1, line 48 | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on January 4, 2012. | This Internet-Draft will expire on January 8, 2012. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2011 IETF Trust and the persons identified as the | Copyright (c) 2011 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 3, line 15 | skipping to change at page 3, line 15 | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 | 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 | |||
1.2. Changes in This Version (to be removed by RFC Editor) . . 5 | 1.2. Changes in This Version (to be removed by RFC Editor) . . 5 | |||
2. Definitions and Abbreviations . . . . . . . . . . . . . . . . 6 | 2. Definitions and Abbreviations . . . . . . . . . . . . . . . . 6 | |||
2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 6 | 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
2.2. List of Abbreviations . . . . . . . . . . . . . . . . . . 7 | 2.2. List of Abbreviations . . . . . . . . . . . . . . . . . . 7 | |||
3. Definition of 3-in-1 PCN Encoding . . . . . . . . . . . . . . 8 | 3. Definition of 3-in-1 PCN Encoding . . . . . . . . . . . . . . 8 | |||
4. Requirements for and Applicability of 3-in-1 PCN Encoding . . 8 | 4. Requirements for and Applicability of 3-in-1 PCN Encoding . . 8 | |||
4.1. PCN Requirements . . . . . . . . . . . . . . . . . . . . . 8 | 4.1. PCN Requirements . . . . . . . . . . . . . . . . . . . . . 9 | |||
4.2. Requirements imposed by tunnelling . . . . . . . . . . . . 9 | 4.2. Requirements imposed by tunnelling . . . . . . . . . . . . 9 | |||
4.3. Applicability of 3-in-1 PCN Encoding . . . . . . . . . . . 9 | 4.3. Applicability of 3-in-1 PCN Encoding . . . . . . . . . . . 9 | |||
5. Behaviour of a PCN-node Compliant with the 3-in-1 PCN | 5. Behaviour of a PCN-node to Comply with the 3-in-1 PCN | |||
Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
5.1. Common behaviour of PCN-ingress nodes . . . . . . . . . . 10 | 5.1. PCN-ingress Node Behaviour . . . . . . . . . . . . . . . . 10 | |||
5.2. PCN-interior node behaviour . . . . . . . . . . . . . . . 10 | 5.2. PCN-interior Node Behaviour . . . . . . . . . . . . . . . 11 | |||
5.2.1. Behaviour common to all compliant PCN-interior | 5.2.1. Behaviour Common to all PCN-interior Nodes . . . . . . 11 | |||
nodes . . . . . . . . . . . . . . . . . . . . . . . . 10 | 5.2.2. Behaviour of PCN-interior Nodes using Two | |||
5.2.2. Behaviour of PCN-interior nodes using one | PCN-markings . . . . . . . . . . . . . . . . . . . . . 11 | |||
PCN-marking . . . . . . . . . . . . . . . . . . . . . 10 | 5.2.3. Behaviour of PCN-interior Nodes using One | |||
5.3. Compliant behaviour of PCN-egress nodes . . . . . . . . . 11 | PCN-marking . . . . . . . . . . . . . . . . . . . . . 11 | |||
6. Backward Compatibility . . . . . . . . . . . . . . . . . . . . 11 | 5.3. Behaviour of PCN-egress Nodes . . . . . . . . . . . . . . 12 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 6. Backward Compatibility . . . . . . . . . . . . . . . . . . . . 12 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 6.1. Backward Compatibility with ECN . . . . . . . . . . . . . 12 | |||
9. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 6.2. Backward Compatibility with the Baseline Encoding . . . . 13 | |||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | |||
11. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 13 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 9. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . . 13 | 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
11. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 14 | ||||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | ||||
12.1. Normative References . . . . . . . . . . . . . . . . . . . 14 | ||||
12.2. Informative References . . . . . . . . . . . . . . . . . . 15 | 12.2. Informative References . . . . . . . . . . . . . . . . . . 15 | |||
Appendix A. Choice of Suitable DSCPs . . . . . . . . . . . . . . 15 | Appendix A. Choice of Suitable DSCPs . . . . . . . . . . . . . . 16 | |||
Appendix B. Co-existence of ECN and PCN (informative) . . . . . . 16 | Appendix B. Co-existence of ECN and PCN . . . . . . . . . . . . . 17 | |||
Appendix C. Recommendations for the Use of PCN Encoding | Appendix C. Example Mapping between Encoding of PCN-Marks in | |||
Schemes . . . . . . . . . . . . . . . . . . . . . . . 18 | IP and in MPLS Shim Headers . . . . . . . . . . . . . 20 | |||
C.1. Use of Both Excess-Traffic-Marking and | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
Threshold-Marking . . . . . . . . . . . . . . . . . . . . 19 | ||||
C.2. Unique Use of Excess-Traffic-Marking . . . . . . . . . . . 19 | ||||
C.3. Unique Use of Threshold-Marking . . . . . . . . . . . . . 19 | ||||
Appendix D. Example Mapping between Encoding of PCN-Marks in | ||||
IP and in MPLS Shim Headers . . . . . . . . . . . . . 19 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20 | ||||
1. Introduction | 1. Introduction | |||
The objective of Pre-Congestion Notification (PCN) [RFC5559] is to | The objective of Pre-Congestion Notification (PCN) [RFC5559] is to | |||
protect the quality of service (QoS) of inelastic flows within a | protect the quality of service (QoS) of inelastic flows within a | |||
Diffserv domain, in a simple, scalable, and robust fashion. Two | Diffserv domain, in a simple, scalable, and robust fashion. Two | |||
mechanisms are used: admission control, to decide whether to admit or | mechanisms are used: admission control, to decide whether to admit or | |||
block a new flow request, and flow termination to terminate some | block a new flow request, and flow termination to terminate some | |||
existing flows during serious pre-congestion. To achieve this, the | existing flows during serious pre-congestion. To achieve this, the | |||
overall rate of PCN-traffic is metered on every link in the domain, | overall rate of PCN-traffic is metered on every link in the domain, | |||
skipping to change at page 4, line 37 | skipping to change at page 4, line 37 | |||
monitor the PCN-marks of received PCN-packets and pass information | monitor the PCN-marks of received PCN-packets and pass information | |||
about these PCN-marks to decision points which then decide whether to | about these PCN-marks to decision points which then decide whether to | |||
admit new flows or terminate existing flows | admit new flows or terminate existing flows | |||
[I-D.ietf-pcn-cl-edge-behaviour], [I-D.ietf-pcn-sm-edge-behaviour]. | [I-D.ietf-pcn-cl-edge-behaviour], [I-D.ietf-pcn-sm-edge-behaviour]. | |||
The baseline encoding defined in [RFC5696] described how two PCN | The baseline encoding defined in [RFC5696] described how two PCN | |||
marking states (Not-marked and PCN-Marked) could be encoded into the | marking states (Not-marked and PCN-Marked) could be encoded into the | |||
IP header using a single Diffserv codepoint. It also provided an | IP header using a single Diffserv codepoint. It also provided an | |||
experimental codepoint (EXP), along with guidelines for the use of | experimental codepoint (EXP), along with guidelines for the use of | |||
that codepoint. Two PCN marking states are sufficient for the Single | that codepoint. Two PCN marking states are sufficient for the Single | |||
Marking edge behaviour [I-D.ietf-pcn-sm-edge-behaviour], but PCN- | Marking edge behaviour [I-D.ietf-pcn-sm-edge-behaviour]. However, | |||
domains utilising the controlled load edge behaviour | PCN-domains utilising the controlled load edge behaviour | |||
[I-D.ietf-pcn-cl-edge-behaviour], require three PCN marking states. | [I-D.ietf-pcn-cl-edge-behaviour] require three PCN marking states. | |||
This document extends the baseline encoding by redefining the EXP | This document extends the baseline encoding by redefining the EXP | |||
codepoint to provide a third PCN marking state in the IP header, | codepoint to provide a third PCN marking state in the IP header, | |||
still using a single Diffserv codepoint. As it is inadvisable to | still using a single Diffserv codepoint. This encoding scheme is | |||
have two standards actions defining one codepoint in a single | therefore called the "3-in-1 PCN encoding". It obsoletes the | |||
context, this document obsoletes the baseline encoding [RFC5696]. | baseline encoding [RFC5696], which provides only a sub-set of the | |||
This encoding scheme is called the "3-in-1 PCN encoding". | same capabilities. | |||
This document only concerns the PCN wire protocol encoding for IP | This document only concerns the PCN wire protocol encoding for IP | |||
headers, whether IPv4 or IPv6. It makes no changes or | headers, whether IPv4 or IPv6. It makes no changes or | |||
recommendations concerning algorithms for congestion marking or | recommendations concerning algorithms for congestion marking or | |||
congestion response. Other documents will define the PCN wire | congestion response. Other documents will define the PCN wire | |||
protocol for other header types. Appendix D discusses a possible | protocol for other header types. Appendix C discusses a possible | |||
mapping between IP and MPLS. | mapping between IP and MPLS. | |||
1.1. Requirements Language | 1.1. 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 [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
1.2. Changes in This Version (to be removed by RFC Editor) | 1.2. Changes in This Version (to be removed by RFC Editor) | |||
From draft-ietf-pcn-3-in-1-encoding-05 to -06: | From draft-ietf-pcn-3-in-1-encoding-05 to -06: | |||
* Draft re-written to obsolete baseline encoding [RFC5696]. | * Draft re-written to obsolete baseline encoding [RFC5696]. | |||
* New section defining utilising this encoding for single | * New section defining utilising this encoding for single | |||
marking. | marking. | |||
* Moved informative appendixes from [RFC5696] to this document. | * Moved informative appendixes (except the original Appendix C | |||
that is now redundant) from [RFC5696] to this document. | ||||
* Significant re-structuring of document. | * Significant re-structuring of document. | |||
From draft-ietf-pcn-3-in-1-encoding-04 to -05: | From draft-ietf-pcn-3-in-1-encoding-04 to -05: | |||
* Draft moved to standards track as per working group | * Draft moved to standards track as per working group | |||
discussions. | discussions. | |||
* Added Appendix B discussing ECN handling in the PCN-domain. | * Added Appendix B discussing ECN handling in the PCN-domain. | |||
skipping to change at page 6, line 45 | skipping to change at page 6, line 45 | |||
* References updated. | * References updated. | |||
* Terminology brought into line with [RFC5670]. | * Terminology brought into line with [RFC5670]. | |||
* Minor corrections. | * Minor corrections. | |||
2. Definitions and Abbreviations | 2. Definitions and Abbreviations | |||
2.1. Terminology | 2.1. Terminology | |||
The terms PCN-capable, PCN-domain, PCN-node, PCN-interior-node, PCN- | The terms PCN-domain, PCN-node, PCN-interior-node, PCN-ingress-node, | |||
ingress-node, PCN-egress-node, PCN-boundary-node, PCN-traffic, PCN- | PCN-egress-node, PCN-boundary-node, PCN-traffic, PCN-packets and PCN- | |||
packets and PCN-marking are used as defined in [RFC5559]. The | marking are used as defined in [RFC5559]. The following additional | |||
following additional terms are defined in this document: | terms are defined in this document: | |||
PCN encoding: mapping of PCN marking states to specific codepoints | PCN encoding: mapping of PCN marking states to specific codepoints | |||
in the packet header. | in the packet header. | |||
PCN-compatible Diffserv codepoint a Diffserv codepoint indicating | PCN-compatible Diffserv codepoint a Diffserv codepoint indicating | |||
packets for which the ECN field is used to carry PCN-markings | packets for which the ECN field is used to carry PCN-markings | |||
rather than [RFC3168] markings. | rather than [RFC3168] markings (see Appendix A). | |||
Threshold-marked codepoint a codepoint that indicates packets that | Threshold-marked codepoint a codepoint that indicates packets that | |||
have been marked at a PCN-interior-node as a result of an | have been marked at a PCN-interior-node as a result of an | |||
indication from the threshold-metering function [RFC5670]. | indication from the threshold-metering function [RFC5670]. | |||
Abbreviated to ThM. | Abbreviated to ThM. | |||
Excess-traffic-marked codepoint a codepoint that indicates packets | Excess-traffic-marked codepoint a codepoint that indicates packets | |||
that have been marked at a PCN-interior-node as a result of an | that have been marked at a PCN-interior-node as a result of an | |||
indication from the excess-traffic-metering function [RFC5670]. | indication from the excess-traffic-metering function [RFC5670]. | |||
Abbreviated to ETM. | Abbreviated to ETM. | |||
Not-marked codepoint a codepoint that indicates packets that are | Not-marked codepoint a codepoint that indicates PCN-packets but that | |||
PCN-capable but that are not PCN-marked. Abbreviated to NM. | are not PCN-marked. Abbreviated to NM. | |||
not-PCN codepoint a codepoint that indicates packets that are not | not-PCN codepoint a codepoint that indicates packets that are not | |||
PCN-capable. | PCN-packets. | |||
2.2. List of Abbreviations | 2.2. List of Abbreviations | |||
The following abbreviations are used in this document: | The following abbreviations are used in this document: | |||
o AF = Assured Forwarding [RFC2597] | o AF = Assured Forwarding [RFC2597] | |||
o CE = Congestion Experienced [RFC3168] | o CE = Congestion Experienced [RFC3168] | |||
o CS = Class Selector [RFC2474] | o CS = Class Selector [RFC2474] | |||
skipping to change at page 8, line 16 | skipping to change at page 8, line 16 | |||
o PCN = Pre-Congestion Notification | o PCN = Pre-Congestion Notification | |||
o ThM = Threshold-marked | o ThM = Threshold-marked | |||
3. Definition of 3-in-1 PCN Encoding | 3. Definition of 3-in-1 PCN Encoding | |||
The 3-in-1 PCN encoding scheme allows for two or three PCN-marking | The 3-in-1 PCN encoding scheme allows for two or three PCN-marking | |||
states to be encoded within the IP header. The full encoding is | states to be encoded within the IP header. The full encoding is | |||
shown in Figure 1. | shown in Figure 1. | |||
+--------+----------------------------------------------------+ | +--------+----------------------------------------------------+ | |||
| | Codepoint in ECN field of IP header | | | | Codepoint in ECN field of IP header | | |||
| DSCP | <RFC3168 codepoint name> | | | DSCP | <RFC3168 codepoint name> | | |||
| +--------------+-------------+-------------+---------+ | | +--------------+-------------+-------------+---------+ | |||
| | 00 <Not-ECT> | 10 <ECT(0)> | 01 <ECT(1)> | 11 <CE> | | | | 00 <Not-ECT> | 10 <ECT(0)> | 01 <ECT(1)> | 11 <CE> | | |||
+--------+--------------+-------------+-------------+---------+ | +--------+--------------+-------------+-------------+---------+ | |||
| DSCP n | Not-PCN | NM | ThM | ETM | | | DSCP n | Not-PCN | NM | ThM | ETM | | |||
+--------+--------------+-------------+-------------+---------+ | +--------+--------------+-------------+-------------+---------+ | |||
Figure 1: 3-in-1 PCN Encoding | Figure 1: 3-in-1 PCN Encoding | |||
As mentioned above, the 3-in-1 PCN encoding is an extension of the | As mentioned above, the 3-in-1 PCN encoding is an extension of the | |||
baseline encoding [RFC5696]. Like the baseline encoding it uses a | baseline encoding [RFC5696]. Like the baseline encoding it uses a | |||
combination of a PCN-compatible DSCP, DSCP n and the ECN field for | combination of a PCN-compatible DSCP (DSCP n in Figure 1) and the ECN | |||
the encoding of PCN-marks. The PCN-marks have the following meaning. | field for the encoding of PCN-marks. Appendix A discusses the choice | |||
of suitable DSCPs. The PCN-marks have the following meaning. | ||||
Not-PCN: indicates a non-PCN-packet, i.e., a packet that is not | Not-PCN: indicates a non-PCN-packet, i.e., a packet that is not | |||
subject to PCN metering and marking. | subject to PCN metering and marking. | |||
NM: Not-marked. Indicates a PCN-packet that has not yet been marked | NM: Not-marked. Indicates a PCN-packet that has not yet been marked | |||
by any PCN marker. | by any PCN marker. | |||
ThM: Threshold-marked. Indicates a PCN-packet that has been marked | ThM: Threshold-marked. Indicates a PCN-packet that has been marked | |||
by a threshold-marker [RFC5670]. | by a threshold-marker [RFC5670]. | |||
skipping to change at page 8, line 45 | skipping to change at page 9, line 4 | |||
NM: Not-marked. Indicates a PCN-packet that has not yet been marked | NM: Not-marked. Indicates a PCN-packet that has not yet been marked | |||
by any PCN marker. | by any PCN marker. | |||
ThM: Threshold-marked. Indicates a PCN-packet that has been marked | ThM: Threshold-marked. Indicates a PCN-packet that has been marked | |||
by a threshold-marker [RFC5670]. | by a threshold-marker [RFC5670]. | |||
ETM: Excess-traffic-marked. Indicates a PCN-packet that has been | ETM: Excess-traffic-marked. Indicates a PCN-packet that has been | |||
marked by an excess-traffic-marker [RFC5670]. | marked by an excess-traffic-marker [RFC5670]. | |||
4. Requirements for and Applicability of 3-in-1 PCN Encoding | 4. Requirements for and Applicability of 3-in-1 PCN Encoding | |||
4.1. PCN Requirements | 4.1. PCN Requirements | |||
In accordance with the PCN architecture [RFC5559], PCN-ingress-nodes | In accordance with the PCN architecture [RFC5559], PCN-ingress-nodes | |||
control packets entering a PCN-domain. Packets belonging to PCN- | control packets entering a PCN-domain. Packets belonging to PCN- | |||
controlled flows are subject to PCN-metering and -marking, and PCN- | controlled flows are subject to PCN-metering and -marking, and PCN- | |||
ingress-nodes mark them as Not-marked (PCN-colouring). Any node in | ingress-nodes mark them as Not-marked (PCN-colouring). Any node in | |||
the PCN-domain may perform PCN-metering and -marking and mark PCN- | the PCN-domain may perform PCN-metering and -marking and mark PCN- | |||
packets if needed. There are two different metering and marking | packets if needed. There are two different metering and marking | |||
schemes: threshold-marking and excess-traffic-marking [RFC5670]. | behaviours: threshold-marking and excess-traffic-marking [RFC5670]. | |||
Some edge behaviors require only a single marking scheme | Some edge behaviors require only a single marking behaviour | |||
[I-D.ietf-pcn-sm-edge-behaviour], others require both | [I-D.ietf-pcn-sm-edge-behaviour], others require both | |||
[I-D.ietf-pcn-cl-edge-behaviour]. In the latter case, three PCN | [I-D.ietf-pcn-cl-edge-behaviour]. In the latter case, three PCN | |||
marking states are needed: not-marked (NM) to indicate not-marked | marking states are needed: not-marked (NM) to indicate not-marked | |||
packets, threshold-marked (ThM) to indicate packets marked by the | packets, threshold-marked (ThM) to indicate packets marked by the | |||
threshold-marker, and excess-traffic-marked (ETM) to indicate packets | threshold-marker, and excess-traffic-marked (ETM) to indicate packets | |||
marked by the excess-traffic-marker [RFC5670]. Threshold-marking and | marked by the excess-traffic-marker [RFC5670]. Threshold-marking and | |||
excess-traffic-marking are configured to start marking packets at | excess-traffic-marking are configured to start marking packets at | |||
different load conditions, so one marking scheme indicates more | different load conditions, so one marking behaviour indicates more | |||
severe pre-congestion than the other. Therefore, a fourth PCN | severe pre-congestion than the other. Therefore, a fourth PCN | |||
marking state indicating that a packet is marked by both markers is | marking state indicating that a packet is marked by both markers is | |||
not needed. However a fourth codepoint is required to indicate | not needed. However a fourth codepoint is required to indicate | |||
packets that are not PCN-capable (the not-PCN codepoint). | packets that do not use PCN (the not-PCN codepoint). | |||
In all current PCN edge behaviors that use two marking schemes | In all current PCN edge behaviors that use two marking behaviours | |||
[RFC5559], [I-D.ietf-pcn-cl-edge-behaviour], excess-traffic-marking | [RFC5559], [I-D.ietf-pcn-cl-edge-behaviour], excess-traffic-marking | |||
is configured with a larger reference rate than threshold-marking. | is configured with a larger reference rate than threshold-marking. | |||
We take this as a rule and define excess-traffic-marked as a more | We take this as a rule and define excess-traffic-marked as a more | |||
severe PCN-mark than threshold-marked. | severe PCN-mark than threshold-marked. | |||
4.2. Requirements imposed by tunnelling | 4.2. Requirements imposed by tunnelling | |||
[RFC6040] defines rules for the encapsulation and decapsulation of | [RFC6040] defines rules for the encapsulation and decapsulation of | |||
ECN markings within IP-in-IP tunnels. This RFC removes some of the | ECN markings within IP-in-IP tunnels. The publication of RFC6040 | |||
constraints that existed when [RFC5696] was written (see section | removed the tunnelling constraints that existed when the baseline | |||
3.3.2 of [I-D.ietf-pcn-encoding-comparison]). This docuemnt has been | encoding [RFC5696] was written (see section 3.3.2 of | |||
written on the assumption that any tunnels will follow the normal | [I-D.ietf-pcn-encoding-comparison]). | |||
mode encapsulation rules as defined in [RFC6040]. | ||||
Nonetheless, there is still a problem if there are any legacy (pre- | ||||
RFC6040) decapsulating tunnel endpoints within a PCN domain. If a | ||||
PCN node Threshold-marks the outer header of a tunnelled packet, the | ||||
legacy decapsulator will revert the Threshold-marking to Not-marked. | ||||
The rules on applicability in Section 4.3 below are designed to avoid | ||||
this problem. | ||||
4.3. Applicability of 3-in-1 PCN Encoding | 4.3. Applicability of 3-in-1 PCN Encoding | |||
The 3-in-1 encoding is applicable in situations where two marking | The 3-in-1 encoding is applicable in situations where two marking | |||
schemes are being used in the PCN-domain. In some circumstances it | behaviours are being used in the PCN-domain. The 3-in-1 encoding can | |||
can also be used in PCN-domains with only a single marking scheme in | also be used with only one marking behaviour, in which case one of | |||
use. Further guidance on choosing an encoding scheme can be found in | the codepoints MUST NOT be used throughout the PCN-domain (see | |||
Appendix C. All nodes within the PCN-domain MUST be fully compliant | Section 5.2.3). | |||
with the ECN encapsulation rules set out in [RFC6040]. As such the | ||||
encoding is not applicable in situations where legacy tunnels might | ||||
exist. However, in such circumstances a limited version of the | ||||
encoding using only excess-traffic-metering would be safe--see | ||||
Section 5.2.2.1. | ||||
5. Behaviour of a PCN-node Compliant with the 3-in-1 PCN Encoding | For the 3-in-1 encoding to apply, any tunnel endpoints (IP-in-IP and | |||
IPsec) within the PCN-domain MUST comply with the ECN encapsulation | ||||
and decapsulation rules set out in [RFC6040] (see Section 4.2). | ||||
There is one exception to this rule outlined next. | ||||
As mentioned in Section 4.3 above, all PCN-nodes MUST be compliant | If it is not possible to upgrade all pre-RFC6040 tunnel endpoints | |||
with the [RFC6040] normal mode of tunneling. | within a PCN domain, the 3-in-1 encoding can still be applicable, but | |||
only under the following stringent condition. If a pre-RFC6040 | ||||
tunnel endpoint is present anywhere in a PCN-domain, every PCN-node | ||||
in the PCN-domain MUST be configured so that it never sets the ThM | ||||
codepoint. The behaviour of PCN-interior nodes in this case is | ||||
defined in Section 5.2.3.1. In all other situation where legacy | ||||
tunnel endpoints might be present within the PCN domain, the 3-in-1 | ||||
encoding is not applicable. | ||||
5.1. Common behaviour of PCN-ingress nodes | 5. Behaviour of a PCN-node to Comply with the 3-in-1 PCN Encoding | |||
As mentioned in Section 4.3 above, all PCN-nodes MUST comply with | ||||
[RFC6040]. | ||||
5.1. PCN-ingress Node Behaviour | ||||
PCN-traffic MUST be marked with a PCN-compatible Diffserv codepoint. | PCN-traffic MUST be marked with a PCN-compatible Diffserv codepoint. | |||
To conserve DSCPs, Diffserv codepoints SHOULD be chosen that are | To conserve DSCPs, Diffserv codepoints SHOULD be chosen that are | |||
already defined for use with admission-controlled traffic. | already defined for use with admission-controlled traffic. | |||
Appendix A gives guidance to implementors on suitable DSCPs. | Appendix A gives guidance to implementors on suitable DSCPs. | |||
Guidelines for mixing traffic types within a PCN-domain are given in | Guidelines for mixing traffic types within a PCN-domain are given in | |||
[RFC5670]. | [RFC5670]. | |||
Any packet arriving at the PCN-ingress-node that shares a PCN- | If a packet arrives at the PCN-ingress-node that shares a PCN- | |||
compatible DSCP and is not a PCN-packet MUST be marked as not-PCN | compatible DSCP and is not a PCN-packet, the PCN-ingress MUST mark it | |||
within the PCN-domain. | as not-PCN. | |||
If a packet arrives at the PCN-ingress-node with its ECN field | If a PCN-packet arrives at the PCN-ingress-node, the PCN-ingress MUST | |||
change the PCN codepoint to Not-marked. | ||||
If a PCN-packet arrives at the PCN-ingress-node with its ECN field | ||||
already set to a value other than not-ECT, then appropriate action | already set to a value other than not-ECT, then appropriate action | |||
MUST be taken to meet the requirements of [RFC3168]. The simplest | MUST be taken to meet the requirements of [RFC4774]. The simplest | |||
appropriate action is to just drop such packets. However, this is a | appropriate action is to just drop such packets. However, this is a | |||
drastic action that an operator may feel is undesirable. Appendix B | drastic action that an operator may feel is undesirable. Appendix B | |||
provides more information and summarises other alternative actions | provides more information and summarises other alternative actions | |||
that might be taken. | that might be taken. | |||
5.2. PCN-interior node behaviour | 5.2. PCN-interior Node Behaviour | |||
5.2.1. Behaviour common to all compliant PCN-interior nodes | ||||
PCN-interior nodes MUST NOT change not-PCN packets to any other type | 5.2.1. Behaviour Common to all PCN-interior Nodes | |||
of packet. | ||||
PCN-interior nodes MUST NOT mark any packets with the not-PCN | Interior nodes MUST NOT change not-PCN to any other codepoint. | |||
codepoint. | ||||
Interior nodes MUST NOT change NM to not-PCN. | Interior nodes MUST NOT change NM to not-PCN. | |||
Interior nodes MUST NOT change ThM to NM or not-PCN. | Interior nodes MUST NOT change ThM to NM or not-PCN. | |||
Interior nodes MUST NOT change ETM to any other codepoint. | Interior nodes MUST NOT change ETM to any other codepoint. | |||
5.2.2. Behaviour of PCN-interior nodes using one PCN-marking | 5.2.2. Behaviour of PCN-interior Nodes using Two PCN-markings | |||
If the threshold-meter function indicates a need to mark the packet, | ||||
the PCN-interior node MUST change NM to ThM. | ||||
If the excess-traffic-meter function indicates a need to mark the | ||||
packet: | ||||
o the PCN-interior node MUST change NM to ETM; | ||||
o the PCN-interior node MUST change ThM to ETM. | ||||
If both the threshold meter and the excess-traffic meter indicate the | ||||
need to mark a packet, the excess traffic marking rules MUST take | ||||
priority. | ||||
5.2.3. Behaviour of PCN-interior Nodes using One PCN-marking | ||||
Some PCN edge behaviours require only one PCN-marking within the PCN- | Some PCN edge behaviours require only one PCN-marking within the PCN- | |||
domain. The Single Marking edge behaviour | domain. The Single Marking edge behaviour | |||
[I-D.ietf-pcn-sm-edge-behaviour] requires PCN-interior nodes to mark | [I-D.ietf-pcn-sm-edge-behaviour] requires PCN-interior nodes to mark | |||
packets using the excess-traffic-meter function [RFC5670], but future | packets using the excess-traffic-meter function [RFC5670]. It is | |||
schemes may only require the threshold-meter function. | possible that future schemes may require only the threshold-meter | |||
function. | ||||
5.2.2.1. Marking using only the Excess-traffic-meter Function | 5.2.3.1. Marking using only the Excess-traffic-meter Function | |||
The threshold-traffic-meter function SHOULD be disabled and MUST NOT | The threshold-traffic-meter function SHOULD be disabled and MUST NOT | |||
trigger any packet marking." | trigger any packet marking. | |||
The PCN-interior node MUST change NM to ETM if the excess-traffic- | The PCN-interior node SHOULD raise a management alarm if it receives | |||
meter function indicates a need to mark the packet. | a ThM packet, but the frequency of such alarms SHOULD be limited. | |||
The PCN-interior node MUST NOT change ThM to ETM. It SHOULD raise a | If the excess-traffic-meter function indicates a need to mark the | |||
management alarm if it receives a ThM packet but the frequency of | packet: | |||
such alarms SHOULD be limited. | ||||
5.2.2.2. Marking using only the Threshold Meter Function | o the PCN-interior node MUST change NM to ETM; | |||
The PCN-interior node MUST change NM to ThM if the threshold-meter | o the PCN-interior node MUST change ThM to ETM. It SHOULD also | |||
function indicates a need to mark the packet. | raise an alarm as above. | |||
5.2.3.2. Marking using only the Threshold-meter Function | ||||
The excess-traffic-meter function SHOULD be disabled and MUST NOT | The excess-traffic-meter function SHOULD be disabled and MUST NOT | |||
trigger any packet marking. | trigger any packet marking. | |||
If the PCN-interior node receives an ETM packet it MUST NOT remark | The PCN-interior node SHOULD raise a management alarm if it receives | |||
this to ThM, NM or not-PCN. If such a packet is received the PCN- | an ETM packet, but the frequency of such alarms SHOULD be limited. | |||
interior node SHOULD raise a management alarm but the frequency of | ||||
such alarms SHOULD be limited. | ||||
5.3. Compliant behaviour of PCN-egress nodes | If the threshold-meter function indicates a need to mark the packet: | |||
o the PCN-interior node MUST change NM to ThM; | ||||
o the PCN-interior node MUST NOT change ETM to any other codepoint. | ||||
It SHOULD raise an alarm as above. | ||||
5.3. Behaviour of PCN-egress Nodes | ||||
A PCN-egress-node SHOULD set the not-PCN (00) codepoint on all | A PCN-egress-node SHOULD set the not-PCN (00) codepoint on all | |||
packets it forwards out of the PCN-domain. The only exception to | packets it forwards out of the PCN-domain. | |||
this is if the PCN-egress-node is certain that revealing other | ||||
codepoints outside the PCN-domain won't contravene the guidance given | The only exception to this is if the PCN-egress-node is certain that | |||
in [RFC4774]. For instance, if the PCN-ingress-node has explicitly | revealing other codepoints outside the PCN-domain won't contravene | |||
informed the PCN-egress-node that this flow is ECN-capable, then it | the guidance given in [RFC4774]. For instance, if the PCN-ingress- | |||
might be safe to expose other codepoints. Appendix B gives details | node has explicitly informed the PCN-egress-node that this flow is | |||
of how such schemes might work, but such schemes are NOT RECOMMENDED. | ECN-capable, then it might be safe to expose other codepoints. | |||
Appendix B gives details of how such schemes might work, but such | ||||
schemes are currently experimental. | ||||
If the PCN-domain is configured to only use one PCN-marking, the PCN- | If the PCN-domain is configured to only use one PCN-marking, the PCN- | |||
egress node MAY treat ThM as ETM and ETM as ThM. However it SHOULD | egress node MUST treat ThM as ETM or ETM as ThM. However it SHOULD | |||
raise a management alarm in this instance since this means there is | raise a management alarm in this instance since this means there is | |||
some misconfiguration in the PCN-domain. | some misconfiguration in the PCN-domain. | |||
6. Backward Compatibility | 6. Backward Compatibility | |||
6.1. Backward Compatibility with ECN | ||||
BCP 124 [RFC4774] gives guidelines for specifying alternative | BCP 124 [RFC4774] gives guidelines for specifying alternative | |||
semantics for the ECN field. It sets out a number of factors to be | semantics for the ECN field. It sets out a number of factors to be | |||
taken into consideration. It also suggests various techniques to | taken into consideration. It also suggests various techniques to | |||
allow the co-existence of default ECN and alternative ECN semantics. | allow the co-existence of default ECN and alternative ECN semantics. | |||
The encoding specified in this document defines PCN-compatible | The encoding specified in this document uses one of those techniques; | |||
Diffserv codepoints as no longer supporting the default ECN | it defines PCN-compatible Diffserv codepoints as no longer supporting | |||
semantics. As such, this document is compatible with BCP 124. | the default ECN semantics. As such, this document is compatible with | |||
BCP 124. | ||||
On its own, this encoding cannot support both ECN marking end-to-end | On its own, the 3-in-1 encoding cannot support both ECN marking end- | |||
(e2e) and PCN-marking within a PCN-domain. It is possible to do this | to-end (e2e) and PCN-marking within a PCN-domain. Appendix B | |||
by carrying e2e ECN across a PCN-domain within the inner header of an | discusses possible ways to do this, e.g. by carrying e2e ECN across a | |||
IP-in-IP tunnel, or by using a richer encoding, but such schemes are | PCN-domain within the inner header of an IP-in-IP tunnel, or by using | |||
beyond the scope of this document. | a richer encoding. Although Appendix B recommends various approaches | |||
over others, it is merely informative and all such schemes are beyond | ||||
the normative scope of this document. | ||||
In any PCN deployment, traffic can only enter the PCN-domain through | In any PCN deployment, traffic can only enter the PCN-domain through | |||
PCN-ingress-nodes and leave through PCN-egress-nodes. PCN-ingress- | PCN-ingress-nodes and leave through PCN-egress-nodes. PCN-ingress- | |||
nodes ensure that any packets entering the PCN-domain have the ECN | nodes ensure that any packets entering the PCN-domain have the ECN | |||
field in their outermost IP header set to the appropriate PCN | field in their outermost IP header set to the appropriate PCN | |||
codepoint. PCN-egress-nodes then guarantee that the ECN field of any | codepoint. PCN-egress-nodes then guarantee that the ECN field of any | |||
packet leaving the PCN-domain has appropriate ECN semantics. This | packet leaving the PCN-domain has appropriate ECN semantics. This | |||
prevents unintended leakage of ECN marks into or out of the PCN- | prevents unintended leakage of ECN marks into or out of the PCN- | |||
domain, and thus reduces backward-compatibility issues. | domain, and thus reduces backward-compatibility issues. | |||
6.2. Backward Compatibility with the Baseline Encoding | ||||
A PCN node implemented to use the obsoleted baseline encoding could | ||||
conceivably have been configured so that the Threshold-meter function | ||||
marked what is now defined as the ETM codepoint in the 3-in-1 | ||||
encoding. However, there is no reason to believe that such an | ||||
implementation would ever have been built. | ||||
7. IANA Considerations | 7. IANA Considerations | |||
This memo includes no request to IANA. | This memo includes no request to 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. | |||
8. Security Considerations | 8. Security Considerations | |||
PCN-marking only carries a meaning within the confines of a PCN- | PCN-marking only carries a meaning within the confines of a PCN- | |||
skipping to change at page 13, line 6 | skipping to change at page 14, line 15 | |||
However, future extensions to PCN might include inter-domain versions | However, future extensions to PCN might include inter-domain versions | |||
where trust cannot be assumed between domains. If such schemes are | where trust cannot be assumed between domains. If such schemes are | |||
proposed, they must ensure that they can operate securely despite the | proposed, they must ensure that they can operate securely despite the | |||
lack of trust. However, such considerations are beyond the scope of | lack of trust. However, such considerations are beyond the scope of | |||
this document. | this document. | |||
One potential security concern is the injection of spurious PCN-marks | One potential security concern is the injection of spurious PCN-marks | |||
into the PCN-domain. However, these can only enter the domain if a | into the PCN-domain. However, these can only enter the domain if a | |||
PCN-ingress-node is misconfigured. The precise impact of any such | PCN-ingress-node is misconfigured. The precise impact of any such | |||
misconfiguration will depend on which of the proposed PCN-boundary- | misconfiguration will depend on which of the proposed PCN-boundary- | |||
node behaviour schemes is used, but in general spurious marks will | node behaviours is used, but in general spurious marks will lead to | |||
lead to admitting fewer flows into the domain or potentially | admitting fewer flows into the domain or potentially terminating too | |||
terminating too many flows. In either case, good management should | many flows. In either case, good management should be able to | |||
be able to quickly spot the problem since the overall utilisation of | quickly spot the problem since the overall utilisation of the domain | |||
the domain will rapidly fall. | will rapidly fall. | |||
9. Conclusions | 9. Conclusions | |||
The 3-in-1 PCN encoding uses a PCN-compatible DSCP and the ECN field | The 3-in-1 PCN encoding uses a PCN-compatible DSCP and the ECN field | |||
to encode PCN-marks. One codepoint allows non-PCN traffic to be | to encode PCN-marks. One codepoint allows non-PCN traffic to be | |||
carried with the same PCN-compatible DSCP and three other codepoints | carried with the same PCN-compatible DSCP and three other codepoints | |||
support three PCN marking states with different levels of severity. | support three PCN marking states with different levels of severity. | |||
The use of this PCN encoding scheme presupposes that any tunnel | In general, the use of this PCN encoding scheme presupposes that any | |||
endpoints within the PCN-domain have been updated to comply with | tunnel endpoints within the PCN-domain have been updated to comply | |||
[RFC6040]. | with [RFC6040]. | |||
10. Acknowledgements | 10. Acknowledgements | |||
Thanks to Phil Eardley, Teco Boot, Kwok Ho Chan, Ruediger Geib and | Thanks to Phil Eardley, Teco Boot, Kwok Ho Chan, Ruediger Geib and | |||
Georgios Karaginannis for reviewing this document. | Georgios Karaginannis for reviewing this document. | |||
11. Comments Solicited | 11. Comments Solicited | |||
To be removed by RFC Editor: Comments and questions are encouraged | To be removed by RFC Editor: Comments and questions are encouraged | |||
and very welcome. They can be addressed to the IETF Congestion and | and very welcome. They can be addressed to the IETF Congestion and | |||
skipping to change at page 13, line 46 | skipping to change at page 15, line 10 | |||
12.1. Normative References | 12.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. | |||
[RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, | [RFC2474] Nichols, K., Blake, S., Baker, F., and D. Black, | |||
"Definition of the Differentiated Services Field (DS | "Definition of the Differentiated Services Field (DS | |||
Field) in the IPv4 and IPv6 Headers", RFC 2474, | Field) in the IPv4 and IPv6 Headers", RFC 2474, | |||
December 1998. | December 1998. | |||
[RFC2597] Heinanen, J., Baker, F., Weiss, W., and J. Wroclawski, | ||||
"Assured Forwarding PHB Group", RFC 2597, June 1999. | ||||
[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | |||
of Explicit Congestion Notification (ECN) to IP", | of Explicit Congestion Notification (ECN) to IP", | |||
RFC 3168, September 2001. | RFC 3168, September 2001. | |||
[RFC5559] Eardley, P., "Pre-Congestion Notification (PCN) | ||||
Architecture", RFC 5559, June 2009. | ||||
[RFC5670] Eardley, P., "Metering and Marking Behaviour of PCN- | ||||
Nodes", RFC 5670, November 2009. | ||||
[RFC6040] Briscoe, B., "Tunnelling of Explicit Congestion | ||||
Notification", RFC 6040, November 2010. | ||||
12.2. Informative References | ||||
[I-D.ietf-pcn-cl-edge-behaviour] | ||||
Charny, A., Huang, F., Karagiannis, G., Menth, M., and T. | ||||
Taylor, "PCN Boundary Node Behaviour for the Controlled | ||||
Load (CL) Mode of Operation", | ||||
draft-ietf-pcn-cl-edge-behaviour-09 (work in progress), | ||||
June 2011. | ||||
[I-D.ietf-pcn-encoding-comparison] | ||||
Karagiannis, G., Chan, K., Moncaster, T., Menth, M., | ||||
Eardley, P., and B. Briscoe, "Overview of Pre-Congestion | ||||
Notification Encoding", | ||||
draft-ietf-pcn-encoding-comparison-06 (work in progress), | ||||
June 2011. | ||||
[I-D.ietf-pcn-sm-edge-behaviour] | ||||
Charny, A., Karagiannis, G., Menth, M., and T. Taylor, | ||||
"PCN Boundary Node Behaviour for the Single Marking (SM) | ||||
Mode of Operation", draft-ietf-pcn-sm-edge-behaviour-06 | ||||
(work in progress), June 2011. | ||||
[RFC2597] Heinanen, J., Baker, F., Weiss, W., and J. Wroclawski, | ||||
"Assured Forwarding PHB Group", RFC 2597, June 1999. | ||||
[RFC3246] Davie, B., Charny, A., Bennet, J., Benson, K., Le Boudec, | [RFC3246] Davie, B., Charny, A., Bennet, J., Benson, K., Le Boudec, | |||
J., Courtney, W., Davari, S., Firoiu, V., and D. | J., Courtney, W., Davari, S., Firoiu, V., and D. | |||
Stiliadis, "An Expedited Forwarding PHB (Per-Hop | Stiliadis, "An Expedited Forwarding PHB (Per-Hop | |||
Behavior)", RFC 3246, March 2002. | Behavior)", RFC 3246, March 2002. | |||
[RFC3540] Spring, N., Wetherall, D., and D. Ely, "Robust Explicit | [RFC3540] Spring, N., Wetherall, D., and D. Ely, "Robust Explicit | |||
Congestion Notification (ECN) Signaling with Nonces", | Congestion Notification (ECN) Signaling with Nonces", | |||
RFC 3540, June 2003. | RFC 3540, June 2003. | |||
[RFC4301] Kent, S. and K. Seo, "Security Architecture for the | ||||
Internet Protocol", RFC 4301, December 2005. | ||||
[RFC4594] Babiarz, J., Chan, K., and F. Baker, "Configuration | [RFC4594] Babiarz, J., Chan, K., and F. Baker, "Configuration | |||
Guidelines for DiffServ Service Classes", RFC 4594, | Guidelines for DiffServ Service Classes", RFC 4594, | |||
August 2006. | August 2006. | |||
[RFC4774] Floyd, S., "Specifying Alternate Semantics for the | [RFC4774] Floyd, S., "Specifying Alternate Semantics for the | |||
Explicit Congestion Notification (ECN) Field", BCP 124, | Explicit Congestion Notification (ECN) Field", BCP 124, | |||
RFC 4774, November 2006. | RFC 4774, November 2006. | |||
[RFC5127] Chan, K., Babiarz, J., and F. Baker, "Aggregation of | [RFC5127] Chan, K., Babiarz, J., and F. Baker, "Aggregation of | |||
DiffServ Service Classes", RFC 5127, February 2008. | DiffServ Service Classes", RFC 5127, February 2008. | |||
[RFC5129] Davie, B., Briscoe, B., and J. Tay, "Explicit Congestion | [RFC5129] Davie, B., Briscoe, B., and J. Tay, "Explicit Congestion | |||
Marking in MPLS", RFC 5129, January 2008. | Marking in MPLS", RFC 5129, January 2008. | |||
[RFC5462] Andersson, L. and R. Asati, "Multiprotocol Label Switching | [RFC5462] Andersson, L. and R. Asati, "Multiprotocol Label Switching | |||
(MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic | (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic | |||
Class" Field", RFC 5462, February 2009. | Class" Field", RFC 5462, February 2009. | |||
[RFC5559] Eardley, P., "Pre-Congestion Notification (PCN) | ||||
Architecture", RFC 5559, June 2009. | ||||
[RFC5670] Eardley, P., "Metering and Marking Behaviour of PCN- | ||||
Nodes", RFC 5670, November 2009. | ||||
[RFC5696] Moncaster, T., Briscoe, B., and M. Menth, "Baseline | [RFC5696] Moncaster, T., Briscoe, B., and M. Menth, "Baseline | |||
Encoding and Transport of Pre-Congestion Information", | Encoding and Transport of Pre-Congestion Information", | |||
RFC 5696, November 2009. | RFC 5696, November 2009. | |||
[RFC5865] Baker, F., Polk, J., and M. Dolly, "A Differentiated | [RFC5865] Baker, F., Polk, J., and M. Dolly, "A Differentiated | |||
Services Code Point (DSCP) for Capacity-Admitted Traffic", | Services Code Point (DSCP) for Capacity-Admitted Traffic", | |||
RFC 5865, May 2010. | RFC 5865, May 2010. | |||
[RFC6040] Briscoe, B., "Tunnelling of Explicit Congestion | ||||
Notification", RFC 6040, November 2010. | ||||
12.2. Informative References | ||||
[I-D.ietf-pcn-cl-edge-behaviour] | ||||
Charny, A., Huang, F., Karagiannis, G., Menth, M., and T. | ||||
Taylor, "PCN Boundary Node Behaviour for the Controlled | ||||
Load (CL) Mode of Operation", | ||||
draft-ietf-pcn-cl-edge-behaviour-09 (work in progress), | ||||
June 2011. | ||||
[I-D.ietf-pcn-encoding-comparison] | ||||
Karagiannis, G., Chan, K., Moncaster, T., Menth, M., | ||||
Eardley, P., and B. Briscoe, "Overview of Pre-Congestion | ||||
Notification Encoding", | ||||
draft-ietf-pcn-encoding-comparison-06 (work in progress), | ||||
June 2011. | ||||
[I-D.ietf-pcn-sm-edge-behaviour] | ||||
Charny, A., Karagiannis, G., Menth, M., and T. Taylor, | ||||
"PCN Boundary Node Behaviour for the Single Marking (SM) | ||||
Mode of Operation", draft-ietf-pcn-sm-edge-behaviour-06 | ||||
(work in progress), June 2011. | ||||
Appendix A. Choice of Suitable DSCPs | Appendix A. Choice of Suitable DSCPs | |||
This appendix is informative, not normative. | ||||
The PCN working group chose not to define a single DSCP for use with | The PCN working group chose not to define a single DSCP for use with | |||
PCN for several reasons. Firstly, the PCN mechanism is applicable to | PCN for several reasons. Firstly, the PCN mechanism is applicable to | |||
a variety of different traffic classes. Secondly, Standards Track | a variety of different traffic classes. Secondly, Standards Track | |||
DSCPs are in increasingly short supply. Thirdly, PCN is not a | DSCPs are in increasingly short supply. Thirdly, PCN is not a | |||
scheduling behaviour -- rather, it should be seen as being a marking | scheduling behaviour -- rather, it should be seen as being a marking | |||
behaviour similar to ECN but intended for inelastic traffic. The | behaviour similar to ECN but intended for inelastic traffic. The | |||
choice of which DSCP is most suitable for a given PCN-domain is | choice of which DSCP is most suitable for a given PCN-domain is | |||
dependent on the nature of the traffic entering that domain and the | dependent on the nature of the traffic entering that domain and the | |||
link rates of all the links making up that domain. In PCN-domains | link rates of all the links making up that domain. In PCN-domains | |||
with sufficient aggregation, the appropriate DSCPs would currently be | with sufficient aggregation, the appropriate DSCPs would currently be | |||
skipping to change at page 16, line 32 | skipping to change at page 17, line 39 | |||
is appropriate, whether through some future standards action or | is appropriate, whether through some future standards action or | |||
through local use by certain operators, e.g., the Multimedia | through local use by certain operators, e.g., the Multimedia | |||
Streaming service class (AF3). This document does not preclude the | Streaming service class (AF3). This document does not preclude the | |||
use of PCN in more cases than those listed above. | use of PCN in more cases than those listed above. | |||
Note: The above discussion is informative not normative, as operators | Note: The above discussion is informative not normative, as operators | |||
are ultimately free to decide whether to use admission control for | are ultimately free to decide whether to use admission control for | |||
certain service classes and whether to use PCN as their mechanism of | certain service classes and whether to use PCN as their mechanism of | |||
choice. | choice. | |||
Appendix B. Co-existence of ECN and PCN (informative) | Appendix B. Co-existence of ECN and PCN | |||
This appendix is informative, not normative. | ||||
The PCN encoding described in this document re-uses the bits of the | The PCN encoding described in this document re-uses the bits of the | |||
ECN field in the IP header. Consequently, this disables ECN within | ECN field in the IP header. Consequently, this disables ECN within | |||
the PCN domain. Appendix B of [RFC5696] included advice on handling | the PCN domain. Appendix B of [RFC5696] (obsoleted) included advice | |||
ECN traffic within a PCN-domain. This appendix clarifies that | on handling ECN traffic within a PCN-domain. This appendix | |||
advice. | reiterates and clarifies that advice. | |||
For the purposes of this appendix we define two forms of traffic that | For the purposes of this appendix we define two forms of traffic that | |||
might arrive at a PCN-ingress node. These are Admission-controlled | might arrive at a PCN-ingress node. These are Admission-controlled | |||
traffic and Non-admission-controlled traffic. | traffic and Non-admission-controlled traffic. | |||
Admission-controlled traffic will be remarked to the PCN-compatible | Admission-controlled traffic will be remarked to a PCN-compatible | |||
DSCP by the PCN-ingress node. Two mechanisms can be used to identify | DSCP by the PCN-ingress node. Two mechanisms can be used to identify | |||
such traffic: | such traffic: | |||
a. flow signalling associates a filterspec with a need for admission | a. flow signalling associates a filterspec with a need for admission | |||
control (e.g. through RSVP or some equivalent message down from a | control (e.g. through RSVP or some equivalent message, e.g. from | |||
SIP server to the ingress), and the PCN-ingress remarks traffic | a SIP server to the ingress), and the PCN-ingress remarks traffic | |||
matching that filterspec to a PCN-compatible DSCP, as its chosen | matching that filterspec to a PCN-compatible DSCP, as its chosen | |||
admission control mechanism. | admission control mechanism. | |||
b. Traffic arrives with a DSCP that implies it requires admission | b. Traffic arrives with a DSCP that implies it requires admission | |||
control such as VOICE-ADMIT [RFC5865] or Interactive Real-Time, | control such as VOICE-ADMIT [RFC5865] or Interactive Real-Time, | |||
Broadcast TV when used for video on demand, and Multimedia | Broadcast TV when used for video on demand, and Multimedia | |||
Conferencing [RFC4594][RFC5865]. | Conferencing [RFC4594][RFC5865]. | |||
All other traffic can be thought of as Non-admission-controlled. | All other traffic can be thought of as Non-admission-controlled (and | |||
However such traffic may still need to share the same DSCP as the | therefore outside the scope of PCN). However such traffic may still | |||
Admission-controlled traffic. This may be due to policy (for | need to share the same DSCP as the Admission-controlled traffic. | |||
instance if it is high priority voice traffic), or may be because | This may be due to policy (for instance if it is high priority voice | |||
there is a shortage of local DSCPs. | traffic), or may be because there is a shortage of local DSCPs. | |||
ECN [RFC3168] is an end-to-end congestion notification mechanism. As | ECN [RFC3168] is an end-to-end congestion notification mechanism. As | |||
such it is possible that some traffic entering the PCN-domain may | such it is possible that some traffic entering the PCN-domain may | |||
also be ECN capable The following lists the four cases for how e2e | also be ECN capable The following lists the four cases for how e2e | |||
ECN traffic may wish to be treated while crossing a PCN domain: | ECN traffic may wish to be treated while crossing a PCN domain: | |||
ECN capable traffic that does not require admission control and does | ECN capable traffic that does not require admission control and does | |||
not carry a DSCP that the PCN-ingress is using for PCN-capable | not carry a DSCP that the PCN-ingress is using for PCN-capable | |||
traffic. This requires no action. | traffic. This requires no action. | |||
ECN capable traffic that does not require admission control but | ECN capable traffic that does not require admission control but | |||
carries a DSCP that the PCN-ingress is using for PCN-capable | carries a DSCP that the PCN-ingress is using for PCN-capable | |||
traffic. There are two options. | traffic. There are two options. | |||
* The ingress maps the DSCP to a local DSCP with the same | * The ingress maps the DSCP to a local DSCP with the same | |||
scheduling PHB as the original DSCP, and the egress re-maps it | scheduling PHB as the original DSCP, and the egress re-maps it | |||
to the original PCN-compatible DSCP. | to the original PCN-compatible DSCP. | |||
* The ingress tunnels the traffic, setting not-PCN in the outer | * The ingress tunnels the traffic, setting not-PCN in the outer | |||
header; note that this turns off ECN for this traffic within | header; note that this turns off ECN for this traffic within | |||
the PCN domain. | the PCN domain. | |||
skipping to change at page 18, line 8 | skipping to change at page 19, line 14 | |||
ECN-capable Admission-controlled traffic: There are two options. | ECN-capable Admission-controlled traffic: There are two options. | |||
* The PCN-ingress places this traffic in a tunnel with a PCN- | * The PCN-ingress places this traffic in a tunnel with a PCN- | |||
compatible DSCP in the outer header. The PCN-egress zeroes the | compatible DSCP in the outer header. The PCN-egress zeroes the | |||
ECN-field before decapsulation. | ECN-field before decapsulation. | |||
* The PCN-ingress drops CE-marked packets and the PCN-egress | * The PCN-ingress drops CE-marked packets and the PCN-egress | |||
zeros the ECN field of all PCN packets. | zeros the ECN field of all PCN packets. | |||
The second option is not recommended unless tunnelling is not | The second option is emphatically not recommended, unless perhaps | |||
possible for some reason.. | as a last resort if tunnelling is not possible for some | |||
insurmountable reason. | ||||
ECN-capable Admission-controlled where the e2e transport somehow | ECN-capable Admission-controlled where the e2e transport somehow | |||
indicates that it wants to see PCN marks: NOTE this is currently | indicates that it wants to see PCN marks: NOTE this is currently | |||
experimental only. | tentative only. | |||
Schemes have been suggested where PCN marks may be leaked out of | Schemes have been suggested where PCN marks may be leaked out of | |||
the PCN-domain and used by the end hosts to modify realtime data | the PCN-domain and used by the end hosts to modify realtime data | |||
rates. Currently all such schemes are experimental and the | rates. Currently all such schemes require further study and the | |||
following is for guidance only. | following is for guidance only. | |||
The PCN-ingress needs to tunnel the traffic using [RFC6040]. The | The PCN-ingress needs to tunnel the traffic, taking care to comply | |||
PCN-egress should not zero the ECN field, and the tunnel egress | with [RFC6040]. The PCN-egress should not zero the ECN field, and | |||
should use [RFC6040] normal mode (preserving any PCN-marking). | the [RFC6040] tunnel egress will preserve any PCN-marking. Note | |||
Note that this may turn ECT(0) into ECT(1) and so is not | that a PCN interior node may turn ECT(0) into ECT(1), which would | |||
compatible with the experimental ECN nonce [RFC3540]. | not be compatible with the (currently experimental) ECN nonce | |||
[RFC3540]. | ||||
In the list above any form of IP-in-IP tunnel can be used unless | Unless specified otherwise, for any of the cases in the list above an | |||
specified otherwise. NB, We assume a logical separation of tunneling | IP-in-IP tunnel can be used to preserve ECN markings across the PCN | |||
and PCN actions in both PCN-ingress and PCN-egress nodes. That is, | domain. The tunnelling action should be applied wholly outside the | |||
any tunneling action happens wholly outside the PCN-domain as | PCN-domain as illustrated in the following figure: | |||
illustrated in the following figure: | ||||
, . . . . . PCN-domain . . . . . . | , . . . . . PCN-domain . . . . . . | |||
. ,--------. ,--------. . | . ,--------. ,--------. . | |||
. _| PCN- |___________________| PCN- |_ . | . _| PCN- |___________________| PCN- |_ . | |||
. / | ingress | | egress | \ . | . / | ingress | | egress | \ . | |||
.| '---------' '--------' |. | .| '---------' '--------' |. | |||
| . . . . . . . . . . . . . . .| | | . . . . . . . . . . . . . . .| | |||
,--------. ,--------. | ,--------. ,--------. | |||
_____| Tunnel | | Tunnel |____ | _____| Tunnel | | Tunnel |____ | |||
| Ingress | - - ECN preserved inside tunnel - - | Egress | | | Ingress | - - ECN preserved inside tunnel - - | Egress | | |||
'---------' '--------' | '---------' '--------' | |||
Figure 2: Separation of tunneling and PCN actions | Figure 2: Separation of tunneling and PCN actions | |||
Appendix C. Recommendations for the Use of PCN Encoding Schemes | Appendix C. Example Mapping between Encoding of PCN-Marks in IP and in | |||
NOTE: This appendix is informative not normative. | ||||
When deciding which PCN encoding is suitable an operator needs to | ||||
take account of how many PCN states need to be encoded. The | ||||
following table gives guidelines on which encoding to use with either | ||||
threshold-marking, excess-traffic marking or both. | ||||
+------------------------+--------------------------------+ | ||||
| Marking schemes in use | Recommended encoding scheme | | ||||
+------------------------+--------------------------------+ | ||||
| Only threshold-marking | Baseline encoding [RFC5696] | | ||||
+------------------------+--------------------------------+ | ||||
| Only excess-traffic- | Baseline encoding [RFC5696] | | ||||
| marking | or 3-in-1 PCN encoding | | ||||
+------------------------+--------------------------------+ | ||||
| Threshold-marking and | 3-in-1 PCN encoding | | ||||
| excess-traffic-marking | | | ||||
+------------------------+--------------------------------+ | ||||
Figure 3: Guidelines for choosing PCN encoding schemes | ||||
C.1. Use of Both Excess-Traffic-Marking and Threshold-Marking | ||||
If both excess-traffic-marking and threshold-marking are enabled in a | ||||
PCN-domain, 3-in-1 encoding should be used as described in this | ||||
document. | ||||
C.2. Unique Use of Excess-Traffic-Marking | ||||
If only excess-traffic-marking is enabled in a PCN-domain, baseline | ||||
encoding or 3-in-1 encoding may be used. They lead to the same | ||||
encoding because PCN-boundary nodes will interpret baseline "PCN- | ||||
marked (PM)" as "excess-traffic-marked (ETM)". | ||||
C.3. Unique Use of Threshold-Marking | ||||
No scheme is currently proposed that solely uses threshold-marking. | ||||
If such a scheme is proposed, the choice of encoding scheme will | ||||
depend on whether nodes are compliant with [RFC6040] or not. Where | ||||
it is certain that all nodes in the PCN-domain are compliant then | ||||
either 3-in-1 encoding or baseline encoding are suitable. If legacy | ||||
tunnel decapsulators exist within the PCN-domain then baseline | ||||
encoding SHOULD be used. | ||||
Appendix D. Example Mapping between Encoding of PCN-Marks in IP and in | ||||
MPLS Shim Headers | MPLS Shim Headers | |||
This appendix is informative not normative. | This appendix is informative not normative. | |||
The 8 bits of the DS field in the IP header provide for 256 | The 6 bits of the DS field in the IP header provide for 64 | |||
codepoints. When encapsulating IP traffic in MPLS, it is useful to | codepoints. When encapsulating IP traffic in MPLS, it is useful to | |||
make the DS field information accessible in the MPLS header. | make the DS field information accessible in the MPLS header. | |||
However, the MPLS shim header has only a 3 bits traffic class (TC) | However, the MPLS shim header has only a 3-bit traffic class (TC) | |||
field [RFC5462] providing for 8 codepoints. The operator has the | field [RFC5462] providing for 8 codepoints. The operator has the | |||
freedom to define a site-local mapping of a subset of the 256 | freedom to define a site-local mapping of a subset of the 64 | |||
codepoints of the DS to the 8 codepoints in the TC field. | codepoints of the DS field to the 8 codepoints in the TC field. | |||
[RFC5129] describes how ECN markings in the IP header can be mapped | [RFC5129] describes how ECN markings in the IP header can also be | |||
to codepoints in the MPLS TC field. Appendix A of [RFC5129] gives an | mapped to codepoints in the MPLS TC field. Appendix A of [RFC5129] | |||
informative description of how to extend the ECN approach for MPLS to | gives an informative description of how to support PCN in MPLS by | |||
PCN marking in MPLS. But [RFC5129] was written while PCN | extending the way MPLS supports ECN. But [RFC5129] was written while | |||
specifications were in early draft stages. The following provides a | PCN specifications were in early draft stages. The following | |||
clearer example of a mapping between PCN in IP and in MPLS using the | provides a clearer example of a mapping between PCN in IP and in MPLS | |||
PCN terminology and concepts that have since been specified. | using the PCN terminology and concepts that have since been | |||
specified. | ||||
To support PCN in a MPLS domain, codepoints for all used PCN-marks | To support PCN in a MPLS domain, codepoints for all used PCN-marks | |||
need to be provided in the TC field. That means, when only excess- | need to be provided in the TC field. That means, when e.g. only | |||
traffic-marking or only threshold-marking is used for PCN purposes, | excess-traffic-marking is used for PCN purposes, the operator needs | |||
the operator needs to define a site-local mapping to codepoints in | to define a site-local mapping to codepoints in the MPLS TC field for | |||
the MPLS TC field for IP headers with: | IP headers with: | |||
o DSCP n and ECT(0) | o DSCP n and ECT(0) | |||
o DSCP n and CE | o DSCP n and CE | |||
If both excess-traffic-marking and threshold-marking are used, the | If both excess-traffic-marking and threshold-marking are used, the | |||
operator needs to define a site-local mapping to codepoints in the | operator needs to define a site-local mapping to codepoints in the | |||
MPLS TC field for IP headers with the 3-in-1 encoding of the present | MPLS TC field for IP headers with all three of the 3-in-1 codepoints: | |||
document: | ||||
o DSCP n and ECT(0) | o DSCP n and ECT(0) | |||
o DSCP n and ECT(1) | o DSCP n and ECT(1) | |||
o DSCP n and CE | o DSCP n and CE | |||
In either case, if the operator wishes to support the same Diffserv | In either case, if the operator wishes to support the same Diffserv | |||
PHB but without PCN marking, it will also be necessary to define a | PHB but without PCN marking, it will also be necessary to define a | |||
site-local mapping to an MPLS TC codepoint for IP headers marked | site-local mapping to an MPLS TC codepoint for IP headers marked | |||
End of changes. 74 change blocks. | ||||
264 lines changed or deleted | 271 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |