draft-ietf-pcn-baseline-encoding-05.txt | draft-ietf-pcn-baseline-encoding-06.txt | |||
---|---|---|---|---|
Congestion and Pre Congestion T. Moncaster | Congestion and Pre Congestion T. Moncaster | |||
Internet-Draft B. Briscoe | Internet-Draft B. Briscoe | |||
Intended status: Standards Track BT | Intended status: Standards Track BT | |||
Expires: February 21, 2010 M. Menth | Expires: March 8, 2010 M. Menth | |||
University of Wuerzburg | University of Wuerzburg | |||
August 20, 2009 | September 4, 2009 | |||
Baseline Encoding and Transport of Pre-Congestion Information | Baseline Encoding and Transport of Pre-Congestion Information | |||
draft-ietf-pcn-baseline-encoding-05 | draft-ietf-pcn-baseline-encoding-06 | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted to IETF in full conformance with the | This Internet-Draft is submitted to IETF in full conformance with the | |||
provisions of BCP 78 and BCP 79. This document may contain material | provisions of BCP 78 and BCP 79. This document may contain material | |||
from IETF Documents or IETF Contributions published or made publicly | from IETF Documents or IETF Contributions published or made publicly | |||
available before November 10, 2008. The person(s) controlling the | available before November 10, 2008. The person(s) controlling the | |||
copyright in some of this material may not have granted the IETF | copyright in some of this material may not have granted the IETF | |||
Trust the right to allow modifications of such material outside the | Trust the right to allow modifications of such material outside the | |||
IETF Standards Process. Without obtaining an adequate license from | IETF Standards Process. Without obtaining an adequate license from | |||
skipping to change at page 1, line 44 | skipping to change at page 1, line 44 | |||
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 February 21, 2010. | This Internet-Draft will expire on March 8, 2010. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2009 IETF Trust and the persons identified as the | Copyright (c) 2009 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 in effect on the date of | Provisions Relating to IETF Documents in effect on the date of | |||
publication of this document (http://trustee.ietf.org/license-info). | publication of this document (http://trustee.ietf.org/license-info). | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
and restrictions with respect to this document. | and restrictions with respect to this document. | |||
Abstract | Abstract | |||
The objective of Pre-Congestion Notification (PCN) is to protect the | The objective of the pre-congestion notification (PCN) architecture | |||
quality of service (QoS) of inelastic flows within a Diffserv domain. | is to protect the QoS of inelastic flows within a Diffserv domain. | |||
The overall rate of the PCN-traffic is metered on every link in the | It achieves this by marking packets belonging to PCN-flows when the | |||
PCN-domain, and PCN-packets are appropriately marked when certain | rate of traffic exceeds certain configured thresholds on links in the | |||
configured rates are exceeded. The level of marking allows the | domain. These marks can then be evaluated to determine how close the | |||
boundary nodes to make decisions about whether to admit or block a | domain is to being congested. This document specifies how such marks | |||
new flow request, and (in abnormal circumstances) whether to | are encoded into the IP header by redefining the Explicit Congestion | |||
terminate some of the existing flows, thereby protecting the QoS of | Notification (ECN) codepoints within such domains. The baseline | |||
previously admitted flows. This document specifies how such marks | encoding described here provides only two PCN encoding states: not- | |||
are to be encoded into the IP header by re-using the Explicit | marked and PCN-marked. Future extensions to this encoding may be | |||
Congestion Notification (ECN) codepoints within this controlled | needed in order to provide more than one level of marking severity. | |||
domain. The baseline encoding described here provides for only two | ||||
PCN encoding states, Not-marked and PCN-marked. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Requirements notation . . . . . . . . . . . . . . . . . . . . 5 | 2. Requirements notation . . . . . . . . . . . . . . . . . . . . 6 | |||
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3. Terminology and Abbreviations . . . . . . . . . . . . . . . . 6 | |||
4. Encoding two PCN States in IP . . . . . . . . . . . . . . . . 6 | 3.1. List of Abbreviations . . . . . . . . . . . . . . . . . . 7 | |||
4.1. Valid and Invalid Codepoint Transitions . . . . . . . . . 7 | 4. Encoding two PCN States in IP . . . . . . . . . . . . . . . . 7 | |||
4.2. Rationale for Encoding . . . . . . . . . . . . . . . . . . 8 | 4.1. Marking Packets . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.3. PCN-Compatible Diffserv Codepoints . . . . . . . . . . . . 8 | 4.2. Valid and Invalid Codepoint Transitions . . . . . . . . . 8 | |||
4.3.1. Co-existence of PCN and not-PCN traffic . . . . . . . 9 | 4.3. Rationale for Encoding . . . . . . . . . . . . . . . . . . 9 | |||
5. Rules for Experimental Encoding Schemes . . . . . . . . . . . 9 | 4.4. PCN-Compatible Diffserv Codepoints . . . . . . . . . . . . 10 | |||
6. Backwards Compatibility . . . . . . . . . . . . . . . . . . . 9 | 4.4.1. Co-existence of PCN and not-PCN traffic . . . . . . . 10 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 5. Rules for Experimental Encoding Schemes . . . . . . . . . . . 11 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 6. Backwards Compatibility . . . . . . . . . . . . . . . . . . . 11 | |||
9. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 10 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
11. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 11 | 9. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . . 11 | 11. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 13 | |||
12.2. Informative References . . . . . . . . . . . . . . . . . . 11 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
Appendix A. PCN Deployment Considerations (Informational) . . . . 12 | 12.1. Normative References . . . . . . . . . . . . . . . . . . . 13 | |||
A.1. Choice of Suitable DSCPs . . . . . . . . . . . . . . . . . 12 | 12.2. Informative References . . . . . . . . . . . . . . . . . . 13 | |||
A.2. Rationale for Using ECT(0) for Not-marked . . . . . . . . 13 | Appendix A. PCN Deployment Considerations (Informational) . . . . 14 | |||
A.1. Choice of Suitable DSCPs . . . . . . . . . . . . . . . . . 14 | ||||
A.2. Rationale for Using ECT(0) for Not-marked . . . . . . . . 15 | ||||
1. Introduction | 1. Introduction | |||
The objective of Pre-Congestion Notification (PCN) [RFC5559] is to | The objective of the Pre-Congestion Notification (PCN) Architecture | |||
protect the quality of service (QoS) of inelastic flows within a | [RFC5559] is to protect the quality of service (QoS) of inelastic | |||
Diffserv domain, in a simple, scalable and robust fashion. The | flows within a Diffserv domain, in a simple, scalable and robust | |||
overall rate of the PCN-traffic is metered on every link in the PCN- | fashion. The overall rate of the PCN-traffic is metered on every | |||
domain, and PCN-packets are appropriately marked when certain | link in the PCN-domain, and PCN-packets are appropriately marked when | |||
configured rates are exceeded. These configured rates are below the | certain configured rates are exceeded. These configured rates are | |||
rate of the link thus providing notification before any congestion | below the rate of the link thus providing notification before any | |||
occurs (hence "pre-congestion notification"). The level of marking | congestion occurs (hence "pre-congestion notification"). The level | |||
allows the boundary nodes to make decisions about whether to admit or | of marking allows the boundary nodes to make decisions about whether | |||
block a new flow request, and (in abnormal circumstances) whether to | to admit or block a new flow request, and (in abnormal circumstances) | |||
terminate some of the existing flows, thereby protecting the QoS of | whether to terminate some of the existing flows, thereby protecting | |||
previously admitted flows. | the QoS of previously admitted flows. | |||
This document specifies how these PCN marks are encoded into the IP | This document specifies how these PCN-marks are encoded into the IP | |||
header by re-using the bits of the Explicit Congestion Notification | header by re-using the bits of the Explicit Congestion Notification | |||
(ECN) field [RFC3168]. It also describes how packets are identified | (ECN) field [RFC3168]. It also describes how packets are identified | |||
as belonging to a PCN flow. Some deployment models require two PCN | as belonging to a PCN-flow. Some deployment models require two PCN | |||
encoding states, others require more. The baseline encoding | encoding states, others require more. The baseline encoding | |||
described here only provides for two PCN encoding states. However | described here only provides for two PCN encoding states. However | |||
the encoding can be easily extended to provide more states. Rules | the encoding can be easily extended to provide more states. Rules | |||
for such extensions are given in Section 5. | for such extensions are given in Section 5. | |||
Changes from previous drafts (to be removed by the RFC Editor): | Changes from previous drafts (to be removed by the RFC Editor): | |||
From -05 to -06: | ||||
Extensive changes to the text following IETF Last Call and Gen-ART | ||||
review comments. | ||||
Abstract updated following mailing list discussions after Gen-ART | ||||
review by Spencer Dawkins. | ||||
Added list of abbreviations | ||||
New [section 4.1] added to explain the required action when a node | ||||
indicates the need to mark a packet. | ||||
Clarified text and Table 2 in Section 4.2. | ||||
Improved explanation of rules for experimental encoding schemes in | ||||
Section 5. Removed any ambiguity about meaning of PCN-marked in | ||||
such a context. Added requirements for experimental schemes to | ||||
define which meter causes which mark. | ||||
Clarified text in Section 6 relating to support for e2e ECN. | ||||
Added text in Section 8 relating to injection of PCN-marks into | ||||
the PCN-domain. | ||||
Changed text of Appendix A.1 to reflect comments from Spencer | ||||
Dawkins and Philip Eardey. | ||||
From -04 to -05: | From -04 to -05: | |||
Clarified throughout that the PCN WG is not requesting a specific | Clarified throughout that the PCN WG is not requesting a specific | |||
DSCP for PCN. Rather we are recommending a set of DSCPs that | DSCP for PCN. Rather we are recommending a set of DSCPs that | |||
might be suitable. Appendix A.1 has been re-written to reflect | might be suitable. Appendix A.1 has been re-written to reflect | |||
this. References to maintaining a list of PCN-compatible DSCPs | this. References to maintaining a list of PCN-compatible DSCPs | |||
have also been removed. | have also been removed. | |||
Last sentence of Section 6 altered. | Last sentence of Section 6 altered. | |||
Several spelling corrections. | Several spelling corrections. | |||
References updated throughout. | References updated throughout. | |||
From -03 to -04: | From -03 to -04: | |||
Major WGLC comments addressed: | Major WGLC comments addressed: | |||
* Added Section 4.3.1 to clarify why we need the not-PCN | * Added Section 4.4.1 to clarify why we need the not-PCN | |||
codepoint. | codepoint. | |||
* Stated that the PCN WG will maintain a list of PCN-compatible | * Stated that the PCN WG will maintain a list of PCN-compatible | |||
DSCPs. This should help avoid inter-operability issues. | DSCPs. This should help avoid inter-operability issues. | |||
Also addressed a number of WGLC nits. | Also addressed a number of WGLC nits. | |||
From -02 to -03: | From -02 to -03: | |||
Extensive changes to address comments made by Gorry Fairhurst | Extensive changes to address comments made by Gorry Fairhurst | |||
skipping to change at page 6, line 5 | skipping to change at page 6, line 30 | |||
baseline encoding. | baseline encoding. | |||
Minor changes throughout. | Minor changes throughout. | |||
2. Requirements notation | 2. Requirements notation | |||
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]. | |||
3. Terminology | 3. Terminology and Abbreviations | |||
The following terms are used in this document: | The following terms are defined in this document: | |||
o PCN-compatible Diffserv codepoint - a Diffserv codepoint for which | o PCN-compatible Diffserv codepoint - a Diffserv codepoint for which | |||
the ECN field is used to carry PCN markings rather than [RFC3168] | the ECN field is used to carry PCN markings rather than [RFC3168] | |||
markings. | markings. | |||
o PCN-marked - codepoint indicating packets that have been marked at | o PCN-marked - codepoint indicating packets that have been marked at | |||
a PCN-interior-node using some PCN marking behaviour | a PCN-interior-node using some PCN marking behaviour | |||
[I-D.ietf-pcn-marking-behaviour]. Abbreviated to PM. | [I-D.ietf-pcn-marking-behaviour]. Abbreviated to PM. | |||
o Not-marked - codepoint indicating packets that are PCN-capable, | o Not-marked - codepoint indicating packets that are PCN-capable, | |||
but are not PCN-marked. Abbreviated to NM. | but are not PCN-marked. Abbreviated to NM. | |||
o PCN-enabled codepoints - collective term for all NM and PM | o PCN-enabled codepoints - collective term for all NM and PM | |||
codepoints. By definition, packets carrying such codepoints are | codepoints. By definition, packets carrying such codepoints are | |||
PCN-packets. | PCN-packets. | |||
o not-PCN - packets that are not PCN-enabled. | o not-PCN - packets that are not PCN-enabled. | |||
In addition, the document uses the terminology defined in [RFC5559]. | In addition, the document uses the terminology defined in [RFC5559]. | |||
3.1. List of Abbreviations | ||||
The following abbreviations are used in this document: | ||||
o AF = Assured Forwarding [RFC2597] | ||||
o CE = Congestion Experienced [RFC3168] | ||||
o CS = Class Selector [RFC2474] | ||||
o DSCP = Diffserv codepoint | ||||
o ECN = Explicit Congestion Notification [RFC3168] | ||||
o ECT = ECN Capable Transport [RFC3168] | ||||
o EF = Expedited Forwarding [RFC3246] | ||||
o EXP = Experimental | ||||
o NM = Not-marked | ||||
o PCN = Pre-Congestion Notification | ||||
o PM = PCN-marked | ||||
4. Encoding two PCN States in IP | 4. Encoding two PCN States in IP | |||
The PCN encoding states are defined using a combination of the DSCP | The PCN encoding states are defined using a combination of the DSCP | |||
and ECN fields within the IP header. The baseline PCN encoding | and ECN fields within the IP header. The baseline PCN encoding | |||
closely follows the semantics of ECN [RFC3168]. It allows the | closely follows the semantics of ECN [RFC3168]. It allows the | |||
encoding of two PCN states: Not-marked and PCN-marked. It also | encoding of two PCN states: Not-marked and PCN-marked. It also | |||
allows for traffic that is not PCN-capable to be marked as such (not- | allows for traffic that is not PCN-capable to be marked as such (not- | |||
PCN). Given the scarcity of codepoints within the IP header the | PCN). Given the scarcity of codepoints within the IP header the | |||
baseline encoding leaves one codepoint free for experimental use. | baseline encoding leaves one codepoint free for experimental use. | |||
The following table defines how to encode these states in IP: | The following table defines how to encode these states in IP: | |||
+---------------+-------------+-------------+-------------+---------+ | +---------------+-------------+-------------+-------------+---------+ | |||
| ECN codepoint | Not-ECT | ECT(0) (10) | ECT(1) (01) | CE (11) | | | ECN codepoint | Not-ECT | ECT(0) (10) | ECT(1) (01) | CE (11) | | |||
| | (00) | | | | | | | (00) | | | | | |||
+---------------+-------------+-------------+-------------+---------+ | +---------------+-------------+-------------+-------------+---------+ | |||
| DSCP n | not-PCN | NM | EXP | PM | | | DSCP n | not-PCN | NM | EXP | PM | | |||
+---------------+-------------+-------------+-------------+---------+ | +---------------+-------------+-------------+-------------+---------+ | |||
Where DSCP n is a PCN-compatible Diffserv codepoint (see Section 4.3) | Where DSCP n is a PCN-compatible Diffserv codepoint (see Section 4.4) | |||
and EXP means available for Experimental use. N.B. we deliberately | and EXP means available for Experimental use. N.B. we deliberately | |||
reserve this codepoint for experimental use only (and not local use) | reserve this codepoint for experimental use only (and not local use) | |||
to prevent future compatibility issues. | to prevent future compatibility issues. | |||
Table 1: Encoding PCN in IP | Table 1: Encoding PCN in IP | |||
The following rules apply to all PCN traffic: | The following rules apply to all PCN traffic: | |||
o PCN-traffic MUST be marked with a PCN-compatible Diffserv | o PCN-traffic MUST be marked with a PCN-compatible Diffserv | |||
Codepoint. To conserve DSCPs, Diffserv Codepoints SHOULD be | Codepoint. To conserve DSCPs, Diffserv Codepoints SHOULD be | |||
chosen that are already defined for use with admission controlled | chosen that are already defined for use with admission controlled | |||
traffic. Appendix A.1 gives guidance to implementiors on suitable | traffic. Appendix A.1 gives guidance to implementors on suitable | |||
DSCPs. Guidelines for mixing traffic-types within a PCN-domain | DSCPs. Guidelines for mixing traffic-types within a PCN-domain | |||
are given in [I-D.ietf-pcn-marking-behaviour]. | are given in [I-D.ietf-pcn-marking-behaviour]. | |||
o Any packet that is not-PCN but which shares the same Diffserv | o Any packet that is not-PCN but which shares the same Diffserv | |||
codepoint as PCN-enabled traffic MUST have the ECN field of its | codepoint as PCN-enabled traffic MUST have its ECN field set to | |||
outermost IP header equal to 00. | 00. | |||
4.1. Valid and Invalid Codepoint Transitions | 4.1. Marking Packets | |||
[I-D.ietf-pcn-marking-behaviour] states that any encoding scheme | ||||
document must specify the required action to take if one of the | ||||
marking algorithms indicates that a packet needs to be marked. For | ||||
the baseline encoding scheme the required action is simply as | ||||
follows: | ||||
o If a marking algorithm indicates the need to mark a PCN-packet | ||||
then that packet MUST have its PCN codepoint set to 11, PCN- | ||||
marked. | ||||
4.2. Valid and Invalid Codepoint Transitions | ||||
A PCN-ingress-node MUST set the Not-marked (10) codepoint on any | A PCN-ingress-node MUST set the Not-marked (10) codepoint on any | |||
arriving packet that belongs to a PCN-flow. It MUST set the not-PCN | arriving packet that belongs to a PCN-flow. It MUST set the not-PCN | |||
(00) codepoint on all other packets sharing a PCN-compatible Diffserv | (00) codepoint on all other packets sharing a PCN-compatible Diffserv | |||
codepoint. | codepoint. | |||
The only valid codepoint transitions within a PCN-interior-node are | The only valid codepoint transitions within a PCN-interior-node are | |||
from NM to PM (which should occur if either meter indicates a need to | from NM to PM (which should occur if either meter indicates a need to | |||
PCN-mark a packet [I-D.ietf-pcn-marking-behaviour]) and from EXP to | PCN-mark a packet [I-D.ietf-pcn-marking-behaviour]) and from EXP to | |||
PM (which MAY be allowed by some future experimental extensions). | PM. PCN-nodes that only implement the baseline encoding MUST be able | |||
The following table gives the full set of valid and invalid codepoint | to PCN mark packets that arrive with the EXP codepoint. This should | |||
transitions. | ease the design of experimental schemes that want to allow partial | |||
deployment of experimental nodes alongside nodes that only implement | ||||
the baseline encoding. The following table gives the full set of | ||||
valid and invalid codepoint transitions. | ||||
+-------------------------------------------------+ | +-------------------------------------------------+ | |||
| Codepoint Out | | | Codepoint Out | | |||
+--------------+-------------+-----------+-----------+-----------+ | +--------------+-------------+-----------+-----------+-----------+ | |||
| Codepoint in | not-PCN(00) | NM(10) | EXP(01) | PM(11) | | | Codepoint in | not-PCN(00) | NM(10) | EXP(01) | PM(11) | | |||
+--------------+-------------+-----------+-----------+-----------+ | +--------------+-------------+-----------+-----------+-----------+ | |||
| not-PCN(00) | Valid | Not valid | Not valid | Not valid | | | not-PCN(00) | Valid | Not valid | Not valid | Not valid | | |||
+--------------+-------------+-----------+-----------+-----------+ | +--------------+-------------+-----------+-----------+-----------+ | |||
| NM(10) | Not valid | Valid | Not valid | Valid | | | NM(10) | Not valid | Valid | Not valid | Valid | | |||
+--------------+-------------+-----------+-----------+-----------+ | +--------------+-------------+-----------+-----------+-----------+ | |||
| EXP(01)* | Not valid | Not valid | Valid | Valid* | | | EXP(01)* | Not valid | Not valid | Valid | Valid | | |||
+--------------+-------------+-----------+-----------+-----------+ | +--------------+-------------+-----------+-----------+-----------+ | |||
| PM(11) | Not valid | Not valid | Not valid | Valid | | | PM(11) | Not valid | Not valid | Not valid | Valid | | |||
+--------------+-------------+-----------+-----------+-----------+ | +--------------+-------------+-----------+-----------+-----------+ | |||
* This SHOULD cause an alarm to be raised at a higher layer. The | * This MAY cause an alarm to be raised at a management layer. | |||
packet MUST be treated as if it carried the NM codepoint. | See paragraph above for an explanation of this transition. | |||
Table 2: Valid and Invalid Codepoint Transitions for | Table 2: Valid and Invalid Codepoint Transitions for PCN-packets | |||
PCN-packets at PCN-interior-nodes | at PCN-interior-nodes | |||
The codepoint transition constraints given here apply only to the | ||||
baseline encoding scheme. Constraints on codepoint transitions for | ||||
future experimental schemes are discussed in Section 5. | ||||
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. The only exception to | |||
this is if the PCN-egress-node is certain that revealing other | this is if the PCN-egress-node is certain that revealing other | |||
codepoints outside the PCN-domain won't contravene the guidance given | codepoints outside the PCN-domain won't contravene the guidance given | |||
in [RFC4774]. | in [RFC4774]. For instance if the PCN-ingress-node has explicitly | |||
informed the PCN-egress-node that this flow is ECN-capable then it | ||||
might be safe to expose other codepoints. | ||||
4.2. Rationale for Encoding | 4.3. Rationale for Encoding | |||
The exact choice of encoding was dictated by the constraints imposed | The exact choice of encoding was dictated by the constraints imposed | |||
by existing IETF RFCs, in particular [RFC3168], [RFC4301] and | by existing IETF RFCs, in particular [RFC3168], [RFC4301] and | |||
[RFC4774]. One of the tightest constraints was the need for any PCN | [RFC4774]. One of the tightest constraints was the need for any PCN | |||
encoding to survive being tunnelled through either an IP in IP tunnel | encoding to survive being tunnelled through either an IP in IP tunnel | |||
or an IPsec Tunnel. [I-D.ietf-tsvwg-ecn-tunnel] explains this in | or an IPsec Tunnel. [I-D.ietf-tsvwg-ecn-tunnel] explains this in | |||
more detail. The main effect of this constraint is that any PCN | more detail. The main effect of this constraint is that any PCN | |||
marking has to carry the 11 codepoint in the ECN field since this is | marking has to carry the 11 codepoint in the ECN field since this is | |||
the only codepoint that is guaranteed to be copied down into the | the only codepoint that is guaranteed to be copied down into the | |||
inner header upon decapsulation. An additional constraint is the | inner header upon decapsulation. An additional constraint is the | |||
need to minimise the use of Diffserv codepoints because there is a | need to minimise the use of Diffserv codepoints because there is a | |||
limited supply of standards track codepoints remaining. Section 4.3 | limited supply of standards track codepoints remaining. Section 4.4 | |||
explains how we have minimised this still further by reusing pre- | explains how we have minimised this still further by reusing pre- | |||
existing Diffserv codepoint(s) such that non-PCN traffic can still be | existing Diffserv codepoint(s) such that non-PCN traffic can still be | |||
distinguished from PCN traffic. There are a number of factors that | distinguished from PCN traffic. | |||
were considered before choosing to set 10 as the NM state instead of | ||||
01. These included similarity to ECN, presence of tunnels within the | There are a number of factors that were considered before choosing to | |||
domain, leakage into and out of PCN-domain and incremental deployment | set 10 as the NM state instead of 01. These included similarity to | |||
(see Appendix A.2). | ECN, presence of tunnels within the domain, leakage into and out of | |||
PCN-domain and incremental deployment (see Appendix A.2). | ||||
The encoding scheme above seems to meet all these constraints and | The encoding scheme above seems to meet all these constraints and | |||
ends up looking very similar to ECN. This is perhaps not surprising | ends up looking very similar to ECN. This is perhaps not surprising | |||
given the similarity in architectural intent between PCN and ECN. | given the similarity in architectural intent between PCN and ECN. | |||
4.3. PCN-Compatible Diffserv Codepoints | 4.4. PCN-Compatible Diffserv Codepoints | |||
Equipment complying with the baseline PCN encoding MUST allow PCN to | Equipment complying with the baseline PCN encoding MUST allow PCN to | |||
be enabled for certain Diffserv codepoints. This document defines | be enabled for certain Diffserv codepoints. This document defines | |||
the term "PCN-compatible Diffserv codepoint" for such a DSCP. To be | the term "PCN-compatible Diffserv codepoint" for such a DSCP. To be | |||
clear, any packets with such a DSCP will be PCN enabled only if they | clear, any packets with such a DSCP will be PCN enabled only if they | |||
are within a PCN-domain and have their ECN field set to indicate a | are within a PCN-domain and have their ECN field set to indicate a | |||
codepoint other than not-PCN. | codepoint other than not-PCN. | |||
Enabling PCN marking behaviour for a specific DSCP disables any other | Enabling PCN marking behaviour for a specific DSCP disables any other | |||
marking behaviour (e.g. enabling PCN disables the default ECN marking | marking behaviour (e.g. enabling PCN replaces the default ECN marking | |||
behaviour introduced in [RFC3168]). All traffic metering and marking | behaviour introduced in [RFC3168]) with the PCN metering and marking | |||
behaviours are discussed in [I-D.ietf-pcn-marking-behaviour]. This | behaviours described in [I-D.ietf-pcn-marking-behaviour]). This | |||
ensures compliance with the BCP guidance set out in [RFC4774]. | ensures compliance with the BCP guidance set out in [RFC4774]. | |||
The PCN Working Group has chosen not to define a single DSCP for use | The PCN Working Group has chosen not to define a single DSCP for use | |||
with PCN for several reasons. Firstly the PCN mechanism is | with PCN for several reasons. Firstly the PCN mechanism is | |||
applicable to a variety of different traffic classes. Secondly | applicable to a variety of different traffic classes. Secondly | |||
standards track DSCPs are in increasingly short supply. Thirdly PCN | standards track DSCPs are in increasingly short supply. Thirdly PCN | |||
should be seen as being essentially a marking behaviour similar to | is not a scheduling behaviour - rather it should be seen as being | |||
ECN but intended for inelastic traffic. More details are given in | essentially a marking behaviour similar to ECN but intended for | |||
the informational appendix Appendix A.1. | inelastic traffic. More details are given in the informational | |||
Appendix A.1. | ||||
4.3.1. Co-existence of PCN and not-PCN traffic | 4.4.1. Co-existence of PCN and not-PCN traffic | |||
The scarcity of pool 1 DSCPs coupled with the fact that PCN is | The scarcity of pool 1 DSCPs coupled with the fact that PCN is | |||
envisaged as a marking behaviour that could be applied to a number of | envisaged as a marking behaviour that could be applied to a number of | |||
different DSCPs makes it essential that we provide a not-PCN state. | different DSCPs makes it essential that we provide a not-PCN state. | |||
As stated above (and expanded in Appendix A.1) the aim is for PCN to | As stated above (and expanded in Appendix A.1) the aim is for PCN to | |||
re-use existing DSCPs. Because PCN re-defines the meaning of the ECN | re-use existing DSCPs. Because PCN re-defines the meaning of the ECN | |||
field for such DSCPs it is important to allow an operator to still | field for such DSCPs it is important to allow an operator to still | |||
use the DSCP for traffic that isn't PCN-enabled. This is achieved by | use the DSCP for traffic that isn't PCN-enabled. This is achieved by | |||
providing a not-PCN state within the encoding scheme. | providing a not-PCN state within the encoding scheme. S3.5 of | |||
[RFC5559] discusses how competing-non-PCN-traffic should be handled. | ||||
5. Rules for Experimental Encoding Schemes | 5. Rules for Experimental Encoding Schemes | |||
Any experimental encoding scheme MUST follow these rules to ensure | Any experimental encoding scheme MUST follow these rules to ensure | |||
backward compatibility with this baseline scheme: | backward compatibility with this baseline scheme: | |||
o All Interior-nodes within a PCN-domain MUST interpret the 00 | o All Interior-nodes within a PCN-domain MUST interpret the 00 | |||
codepoint in the ECN field as not-PCN and MUST NOT change it to | codepoint in the ECN field as not-PCN and MUST NOT change it to | |||
another value. Therefore an ingress node wishing to disable PCN | another value. Therefore an ingress node wishing to disable PCN | |||
marking for a packet within a PCN-compatible Diffserv Codepoint | marking for a packet with a PCN-compatible Diffserv Codepoint MUST | |||
MUST set the ECN field to 00. | set the ECN field to 00. | |||
o The 11 codepoint in the ECN field MUST indicate PCN-marked (though | o The 11 codepoint in the ECN field MUST indicate that the packet | |||
this does not exclude the 01 Experimental codepoint from carrying | has been PCN-marked as the result of one or both of the meters | |||
the same meaning). | indicating a need to PCN-mark a packet | |||
[I-D.ietf-pcn-marking-behaviour]. The experimental scheme MUST | ||||
define which meter(s) trigger this marking. | ||||
o The 01 Experimental codepoint in the ECN field MAY mean PCN-marked | ||||
or it MAY carry some other meaning. However any experimental | ||||
scheme MUST define its meaning in the context of that experiment. | ||||
o If both the 01 and 11 codepoints are being used to indicate PCN- | ||||
Marked then the 11 codepoint MUST be taken to be the more severe | ||||
marking and the choice of which meter sets which mark MUST be | ||||
defined. | ||||
o Once set, the 11 codepoint in the ECN field MUST NOT be changed to | o Once set, the 11 codepoint in the ECN field MUST NOT be changed to | |||
any other codepoint. | any other codepoint. | |||
o Any experimental scheme MUST include details of all valid and | o Any experimental scheme MUST include details of all valid and | |||
invalid codepoint transitions at any PCN nodes. | invalid codepoint transitions at any PCN nodes. | |||
o Any experimental scheme MUST NOT update the meaning of the 00 and | ||||
11 codepoints defined above. | ||||
6. Backwards Compatibility | 6. Backwards Compatibility | |||
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 baseline encoding specified in this document defines PCN- | The baseline encoding specified in this document defines PCN- | |||
compatible Diffserv codepoints as no longer supporting the default | compatible Diffserv codepoints as no longer supporting the default | |||
ECN semantics. As such this document is compatible with BCP 124. It | ECN semantics. As such this document is compatible with BCP 124. | |||
should be noted that this baseline encoding effectively disables end- | ||||
to-end ECN unless mechanisms are put in place to tunnel such traffic | On its own, this baseline encoding cannot support both ECN marking | |||
across the PCN-domain. Standard IP-in-IP or IPsec tunnels will | end to end and PCN marking within a PCN-domain. It is possible to do | |||
always copy the CE codepoint from the outer header into the inner | this by carrying e2e ECN across a PCN domain within the inner header | |||
header in decapsulation (unless the inner packet is not-ECT). If an | of an IP in IP tunnel, or by using a richer encoding such as the | |||
operator wishes to allow ECN to exist end-to-end they must ensure | proposed experimental scheme in [I-D.ietf-pcn-3-state-encoding]. | |||
there are no tunnel end-points within the PCN-domain to prevent any | ||||
risk of PCN-markings being exposed to endpoints. | ||||
7. IANA Considerations | 7. IANA Considerations | |||
This document makes no direct request to IANA. | This document makes no request to IANA. | |||
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- | |||
domain. Packets wishing to be treated as belonging to a PCN-flow | domain. This encoding document is intended to stand independently of | |||
must carry a PCN-compatible DSCP and a PCN-Enabled ECN codepoint. | the architecture used to determine how specific packets are | |||
This encoding document is intended to stand independently of the | authorised to be PCN-marked, which will be described in separate | |||
architecture used to determine how specific packets are authorised to | documents on PCN-boundary-node behaviour. | |||
be PCN-marked, which will be described in separate documents on PCN- | ||||
boundary-node behaviour. | ||||
This document assumes the PCN-domain to be entirely under the control | This document assumes the PCN-domain to be entirely under the control | |||
of a single operator, or a set of operators who trust each other. | of a single operator, or a set of operators who trust each other. | |||
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 | ||||
into the PCN-domain. However these can only enter the domain if a | ||||
PCN-ingress-node is misconfigured. The precise impact of any such | ||||
misconfiguration will depend on which of the proposed PCN-boundary- | ||||
node behaviour schemes is used, but in general spurious marks will | ||||
lead to admitting fewer flows into the domain or potentially | ||||
terminating too many flows. In either case good management should be | ||||
able to quickly spot the problem since the overall utilisation of the | ||||
domain will rapidly fall. | ||||
9. Conclusions | 9. Conclusions | |||
This document defines the baseline PCN encoding utilising a | This document defines the baseline PCN encoding utilising a | |||
combination of a PCN-enabled DSCP and the ECN field in the IP header. | combination of a PCN-enabled DSCP and the ECN field in the IP header. | |||
This baseline encoding allows the existence of two PCN encoding | This baseline encoding allows the existence of two PCN encoding | |||
states, not-Marked and PCN-marked. It also allows for the co- | states, not-Marked and PCN-marked. It also allows for the co- | |||
existence of competing traffic within the same DSCP so long as that | existence of competing traffic within the same DSCP so long as that | |||
traffic does not require ECN support within the PCN-domain. The | traffic does not require ECN support within the PCN-domain. The | |||
encoding scheme is conformant with [RFC4774]. The Working Group has | encoding scheme is conformant with [RFC4774]. The Working Group has | |||
chosen not to define a single DSCP for use with PCN. The rationale | chosen not to define a single DSCP for use with PCN. The rationale | |||
skipping to change at page 11, line 41 | skipping to change at page 13, line 40 | |||
IP", RFC 3168, September 2001. | IP", RFC 3168, September 2001. | |||
[RFC4774] Floyd, S., "Specifying Alternate | [RFC4774] Floyd, S., "Specifying Alternate | |||
Semantics for the Explicit | Semantics for the Explicit | |||
Congestion Notification (ECN) | Congestion Notification (ECN) | |||
Field", BCP 124, RFC 4774, | Field", BCP 124, RFC 4774, | |||
November 2006. | November 2006. | |||
12.2. Informative References | 12.2. Informative References | |||
[I-D.ietf-pcn-3-state-encoding] Moncaster, T., Briscoe, B., and M. | ||||
Menth, "A PCN encoding using 2 | ||||
DSCPs to provide 3 or more states", | ||||
draft-ietf-pcn-3-state-encoding-00 | ||||
(work in progress), April 2009. | ||||
[I-D.ietf-tsvwg-ecn-tunnel] Briscoe, B., "Tunnelling of | [I-D.ietf-tsvwg-ecn-tunnel] Briscoe, B., "Tunnelling of | |||
Explicit Congestion Notification", | Explicit Congestion Notification", | |||
draft-ietf-tsvwg-ecn-tunnel-03 | draft-ietf-tsvwg-ecn-tunnel-03 | |||
(work in progress), July 2009. | (work in progress), July 2009. | |||
[RFC2474] Nichols, K., Blake, S., Baker, F., | ||||
and D. Black, "Definition of the | ||||
Differentiated Services Field (DS | ||||
Field) in the IPv4 and IPv6 | ||||
Headers", RFC 2474, December 1998. | ||||
[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, J., | ||||
Courtney, W., Davari, S., Firoiu, | ||||
V., and D. Stiliadis, "An Expedited | ||||
Forwarding PHB (Per-Hop Behavior)", | ||||
RFC 3246, March 2002. | ||||
[RFC3540] Spring, N., Wetherall, D., and D. | [RFC3540] Spring, N., Wetherall, D., and D. | |||
Ely, "Robust Explicit Congestion | Ely, "Robust Explicit Congestion | |||
Notification (ECN) Signaling with | Notification (ECN) Signaling with | |||
Nonces", RFC 3540, June 2003. | Nonces", RFC 3540, June 2003. | |||
[RFC4301] Kent, S. and K. Seo, "Security | [RFC4301] Kent, S. and K. Seo, "Security | |||
Architecture for the Internet | Architecture for the Internet | |||
Protocol", RFC 4301, December 2005. | Protocol", RFC 4301, December 2005. | |||
[RFC4594] Babiarz, J., Chan, K., and F. | ||||
Baker, "Configuration Guidelines | ||||
for DiffServ Service Classes", | ||||
RFC 4594, August 2006. | ||||
[RFC5127] Chan, K., Babiarz, J., and F. | [RFC5127] Chan, K., Babiarz, J., and F. | |||
Baker, "Aggregation of DiffServ | Baker, "Aggregation of DiffServ | |||
Service Classes", RFC 5127, | Service Classes", RFC 5127, | |||
February 2008. | February 2008. | |||
[RFC5559] Eardley, P., "Pre-Congestion | [RFC5559] Eardley, P., "Pre-Congestion | |||
Notification (PCN) Architecture", | Notification (PCN) Architecture", | |||
RFC 5559, June 2009. | RFC 5559, June 2009. | |||
Appendix A. PCN Deployment Considerations (Informational) | Appendix A. PCN Deployment Considerations (Informational) | |||
A.1. Choice of Suitable DSCPs | A.1. Choice of Suitable DSCPs | |||
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 should be seen | DSCPs are in increasingly short supply. Thirdly PCN is not a | |||
as being essentially a marking behaviour similar to ECN but intended | scheduling behaviour - rather it should be seen as being a marking | |||
for inelastic traffic. The choice of which DSCP is most suitable for | behaviour similar to ECN but intended for inelastic traffic. The | |||
a given PCN-domain is dependent on the nature of the traffic entering | choice of which DSCP is most suitable for a given PCN-domain is | |||
that domain and the link rates of all the links making up that | dependent on the nature of the traffic entering that domain and the | |||
domain. In PCN-domains with uniformly high link rates, the | link rates of all the links making up that domain. In PCN-domains | |||
appropriate DSCPs would currently be those for the Real Time Traffic | with sufficient aggregation, the appropriate DSCPs would currently be | |||
Class [RFC5127]. To be clear the PCN Working Group recommends using | those for the Real Time Treatment Aggregate [RFC5127]. The PCN | |||
admission control for the following service classes: | Working Group suggests using admission control for the following | |||
service classes (defined in [RFC4594]): | ||||
o Telephony (EF) | o Telephony (EF) | |||
o Real-time interactive (CS4) | o Real-time interactive (CS4) | |||
o Broadcast Video (CS3) | o Broadcast Video (CS3) | |||
o Multimedia Conferencing (AF4) | o Multimedia Conferencing (AF4) | |||
CS5 is excluded from this list since PCN is not expected to be | ||||
applied to signalling traffic. | ||||
PCN marking is intended to provide a scalable admission control | PCN marking is intended to provide a scalable admission control | |||
mechanism for traffic with a high degree of statistical multiplexing. | mechanism for traffic with a high degree of statistical multiplexing. | |||
PCN marking would therefore be appropriate to apply to traffic in the | PCN marking would therefore be appropriate to apply to traffic in the | |||
above classes, but only within a PCN region containing highly | above classes, but only within a PCN-domain containing sufficiently | |||
aggregated traffic. In such cases, the above service classes may | aggregated traffic. In such cases, the above service classes may | |||
well all be subject to a single forwarding treatment (treatment | well all be subject to a single forwarding treatment (treatment | |||
aggregate [RFC5127]). However, this does not imply all such IP | aggregate [RFC5127]). However, this does not imply all such IP | |||
traffic would necessarily be identified by one DSCP - each service | traffic would necessarily be identified by one DSCP - each service | |||
class might keep a distinct DSCP within the highly aggregated region | class might keep a distinct DSCP within the highly aggregated region | |||
[RFC5127]. | [RFC5127]. | |||
Additional service classes may be defined for which admission control | Additional service classes may be defined for which admission control | |||
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 Streaming | through local use by certain operators, e.g. the Multimedia Streaming | |||
End of changes. 45 change blocks. | ||||
118 lines changed or deleted | 244 lines changed or added | |||
This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |