draft-ietf-pcn-baseline-encoding-02.txt | draft-ietf-pcn-baseline-encoding-03.txt | |||
---|---|---|---|---|
Congestion and Pre Congestion T. Moncaster | Congestion and Pre Congestion T. Moncaster | |||
Internet-Draft BT | Internet-Draft BT | |||
Intended status: Standards Track B. Briscoe | Intended status: Standards Track B. Briscoe | |||
Expires: August 14, 2009 BT & UCL | Expires: October 9, 2009 BT & UCL | |||
M. Menth | M. Menth | |||
University of Wuerzburg | University of Wuerzburg | |||
February 10, 2009 | April 7, 2009 | |||
Baseline Encoding and Transport of Pre-Congestion Information | Baseline Encoding and Transport of Pre-Congestion Information | |||
draft-ietf-pcn-baseline-encoding-02 | draft-ietf-pcn-baseline-encoding-03 | |||
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. | provisions of BCP 78 and BCP 79. This document may contain material | |||
from IETF Documents or IETF Contributions published or made publicly | ||||
available before November 10, 2008. The person(s) controlling the | ||||
copyright in some of this material may not have granted the IETF | ||||
Trust the right to allow modifications of such material outside the | ||||
IETF Standards Process. Without obtaining an adequate license from | ||||
the person(s) controlling the copyright in such materials, this | ||||
document may not be modified outside the IETF Standards Process, and | ||||
derivative works of it may not be created outside the IETF Standards | ||||
Process, except to format it for publication as an RFC or to | ||||
translate it into languages other than English. | ||||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
Drafts. | Drafts. | |||
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." | |||
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 August 14, 2009. | This Internet-Draft will expire on October 9, 2009. | |||
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 | Provisions Relating to IETF Documents in effect on the date of | |||
(http://trustee.ietf.org/license-info) in effect on the date of | publication of this document (http://trustee.ietf.org/license-info). | |||
publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. | |||
to this document. | ||||
Abstract | Abstract | |||
Pre-congestion notification (PCN) provides information to support | The objective of Pre-Congestion Notification (PCN) is to protect the | |||
admission control and flow termination in order to protect the | quality of service (QoS) of inelastic flows within a Diffserv domain. | |||
Quality of Service of inelastic flows. It does this by marking | The overall rate of the PCN-traffic is metered on every link in the | |||
packets when traffic load on a link is approaching or has exceeded a | PCN-domain, and PCN-packets are appropriately marked when certain | |||
threshold below the physical link rate. This document specifies how | configured rates are exceeded. The level of marking allows the | |||
such marks are to be encoded into the IP header. The baseline | boundary nodes to make decisions about whether t o admit or block a | |||
encoding described here provides for only two PCN encoding states. | new flow request, and (in abnormal circumstances) whether to | |||
It is designed to be easily extended to provide more encoding states | terminate some of the existing flows, thereby protecting the QoS of | |||
but such schemes will be described in other documents. | previously admitted flows. This document specifies how such marks | |||
are to be encoded into the IP header by re-using the ECN codepoints | ||||
within this controlled domain. The baseline encoding described here | ||||
provides for only two PCN encoding states, unmarked and marked. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Requirements notation . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements notation . . . . . . . . . . . . . . . . . . . . 5 | |||
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
4. Encoding two PCN States in IP . . . . . . . . . . . . . . . . 5 | 4. Encoding two PCN States in IP . . . . . . . . . . . . . . . . 5 | |||
4.1. Rationale for Encoding . . . . . . . . . . . . . . . . . . 6 | 4.1. Valid and Invalid Codepoint Transitions . . . . . . . . . 6 | |||
4.2. PCN-Compatible DiffServ Codepoints . . . . . . . . . . . . 7 | 4.2. Rationale for Encoding . . . . . . . . . . . . . . . . . . 7 | |||
5. Rules for Experimental Encoding Schemes . . . . . . . . . . . 7 | 4.3. PCN-Compatible DiffServ Codepoints . . . . . . . . . . . . 8 | |||
5. Rules for Experimental Encoding Schemes . . . . . . . . . . . 8 | ||||
6. Backwards Compatibility . . . . . . . . . . . . . . . . . . . 8 | 6. Backwards Compatibility . . . . . . . . . . . . . . . . . . . 8 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
9. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 9. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9 | 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
11. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 9 | 11. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 10 | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . . 9 | 12.1. Normative References . . . . . . . . . . . . . . . . . . . 10 | |||
12.2. Informative References . . . . . . . . . . . . . . . . . . 9 | 12.2. Informative References . . . . . . . . . . . . . . . . . . 10 | |||
Appendix A. PCN Deployment Considerations . . . . . . . . . . . . 10 | Appendix A. PCN Deployment Considerations . . . . . . . . . . . . 11 | |||
A.1. Choice of Suitable DSCPs . . . . . . . . . . . . . . . . . 10 | A.1. Choice of Suitable DSCPs . . . . . . . . . . . . . . . . . 11 | |||
A.2. Rationale for Using ECT(0) for Not Marked . . . . . . . . 10 | A.2. Rationale for Using ECT(0) for Not Marked . . . . . . . . 11 | |||
1. Introduction | 1. Introduction | |||
Pre-congestion notification (PCN) provides information to support | The objective of Pre-Congestion Notification (PCN) is to protect the | |||
admission control and flow termination in order to protect the | quality of service (QoS) of inelastic flows within a Diffserv domain, | |||
quality of service (QoS) of inelastic flows. This is achieved by | in a simple, scalable and robust fashion. The overall rate of the | |||
marking packets according to the level of pre-congestion at nodes | PCN-traffic is metered on every link in the PCN-domain, and PCN- | |||
within a PCN-domain. These markings are evaluated by the egress | packets are appropriately marked when certain configured rates are | |||
nodes of the PCN-domain. [pcn-arch] describes how PCN packet markings | exceeded. These configured rates are below the rate of the link thus | |||
can be used to assure the QoS of inelastic flows within a single | providing notification before any congestion occurs (hence "pre- | |||
DiffServ domain. | congestion notification"). The level of marking allows the boundary | |||
nodes to make decisions about whether to admit or block a new flow | ||||
request, and (in abnormal circumstances) whether to terminate some of | ||||
the existing flows, thereby protecting 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. It also describes how packets are identified as belonging to | header by re-using the bits of the ECN field. It also describes how | |||
a PCN flow. Some deployment models require two PCN encoding states, | packets are identified as belonging to a PCN flow. Some deployment | |||
others require more. The baseline encoding described here only | models require two PCN encoding states, others require more. The | |||
provides for two PCN encoding states. An extension of the baseline | baseline encoding described here only provides for two PCN encoding | |||
encoding described in [PCN-3-enc-state] provides for three PCN | states. However the encoding can be easily extended to provide more | |||
encoding states. Other extensions have also been suggested all of | states and rules for such extensions are given in this document. | |||
which can build on the baseline encoding. In order to ensure | ||||
backward compatibility any alternative encoding schemes that claim | ||||
compliance with PCN standards MUST extend this baseline scheme. | ||||
Changes from previous drafts (to be removed by the RFC Editor): | Changes from previous drafts (to be removed by the RFC Editor): | |||
From -02 to -03: | ||||
Extensive changes to address comments made by Gorry Fairhurst | ||||
including: | ||||
* Abstract re-written. | ||||
* Clarified throughout that this re-uses the ECN bits in the IP | ||||
header. | ||||
* Re-arranged order of terminology section for clarity. | ||||
* Table 2 replaced with new table and text. | ||||
* Security considerations re-written. | ||||
* Appendixes re-written to improve clarity. | ||||
* Numerous minor nits and language changes throughout. | ||||
Extensive other minor changes throughout. | ||||
From -01 to -02: | From -01 to -02: | |||
Removed Appendix A and replaced with reference to [ecn-tunneling] | Removed Appendix A and replaced with reference to | |||
[I-D.ietf-tsvwg-ecn-tunnel] | ||||
Moved Appendix B into main body of text. | Moved Appendix B into main body of text. | |||
Changed Appendix C to give deployment advice. | Changed Appendix C to give deployment advice. | |||
Minor changes throughout including checking consistency of | Minor changes throughout including checking consistency of | |||
capitalisation of defined terms. | capitalisation of defined terms. | |||
Clarified that LU was deliberately excluded from encoding. | Clarified that LU was deliberately excluded from encoding. | |||
skipping to change at page 4, line 50 | skipping to change at page 5, line 28 | |||
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 | |||
The following terms are used in this document: | The following terms are used in this document: | |||
o Not-PCN - packets that are not PCN-enabled. | o PCN-compatible Diffserv codepoint - a Diffserv codepoint for which | |||
the ECN field is used to carry PCN markings rather than [RFC3168] | ||||
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 | |||
[pcn-marking-behaviour]. Also PM. | [I-D.ietf-pcn-marking-behaviour]. Abbreviated to PM. | |||
o Not-marked - codepoint indicating packets that are PCN-capable but | o Not-marked - codepoint indicating packets that are PCN-capable, | |||
are not PCN-marked. Also NM. | but are not PCN-marked. Abbreviated to NM. | |||
o PCN-enabled codepoints - collective term for all the 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 PCN-compatible Diffserv codepoint - a Diffserv codepoint for which | o not-PCN - packets that are not PCN-enabled. | |||
the ECN field is used to carry PCN markings rather than [RFC3168] | ||||
markings. | ||||
In addition the document uses the terminology defined in [pcn-arch]. | In addition, the document uses the terminology defined in | |||
[I-D.ietf-pcn-architecture]. | ||||
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.2) | Where DSCP n is a PCN-compatible DiffServ codepoint (see Section 4.3) | |||
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 any possible future compatability issues. | to prevent future compatability 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, such as the Voice-Admit codepoint defined in | traffic, such as the Voice-Admit codepoint defined in | |||
[voice-admit]. Guidelines for mixing traffic-types within a PCN- | [I-D.ietf-tsvwg-admitted-realtime-dscp]. Guidelines for mixing | |||
domain are given in [pcn-marking-behaviour]. | traffic-types within a PCN-domain are given in | |||
[I-D.ietf-pcn-marking-behaviour]. | ||||
o Any packet that is not PCN-enabled (Not-PCN) but which shares the | o Any packet that is not-PCN but which shares the same DiffServ | |||
same DiffServ codepoint as PCN-enabled traffic MUST have the ECN | codepoint as PCN-enabled traffic MUST have the ECN field equal to | |||
field equal to 00. | 00. | |||
The following table sets out the valid and invalid codepoint | 4.1. Valid and Invalid Codepoint Transitions | |||
transitions at PCN-nodes for this baseline encoding. Extension | ||||
encodings may have different rules regarding the validity of the | ||||
transitions. Note that this table assumes there is a functional | ||||
separation between a PCN-boundary-node and a PCN-interior-node such | ||||
that PCN-boundary-nodes do not perform packet metering or marking | ||||
functions. PCN-nodes MUST follow the encoding transition rules set | ||||
out in this table (e.g. they MUST NOT set invalid codepoints on | ||||
packets they forward). This table only applies to PCN-packets. | ||||
+-----------+-------------+-----------------+-----------------------+ | A PCN-ingress-node MUST set the Not-marked (10) codepoint on any | |||
| PCN node | Codepoint | Valid codepoint | Invalid codepoint out | | arriving packet that belongs to a PCN-flow. It MUST set the not-PCN | |||
| type | in | out | | | (00) codepoint on all other packets. | |||
+-----------+-------------+-----------------+-----------------------+ | ||||
| ingress | Any | NM (or Not-PCN) | PM | | A PCN-interior-node MUST observe the rules for valid and invalid | |||
| interior | NM | NM or PM | Not-PCN or EXP | | codepoint transitions as set out in the following table. The precise | |||
| interior | EXP + | EXP or PM | Not-PCN | | rules governing which valid transition to use are set out in | |||
| interior | Not-PCN | Not-PCN | Any other codepoint | | [I-D.ietf-pcn-marking-behaviour] | |||
| interior | PM | PM | Any other codepoint | | +-------------------------------------------------+ | |||
| egress | Any | 00 | Any other codepoint * | | | Codepoint Out | | |||
+-----------+-------------+-----------------+-----------------------+ | +--------------+-------------+-----------+-----------+-----------+ | |||
+ This SHOULD cause an alarm to be raised at a higher layer. The | | Codepoint in | not-PCN(00) | NM(10) | EXP(01) | PM(11) | | |||
packet MUST be treated as if it were NM. | +--------------+-------------+-----------+-----------+-----------+ | |||
* Except where the egress node knows that other marks may be safely | | not-PCN(00) | Valid | Not valid | Not valid | Not valid | | |||
exposed outside the PCN-domain (e.g. [PCN-3-enc-state]). | +--------------+-------------+-----------+-----------+-----------+ | |||
| NM(10) | Not valid | Valid | Not valid | Valid | | ||||
+--------------+-------------+-----------+-----------+-----------+ | ||||
| EXP(01)* | Not valid | Not valid | Valid | Valid | | ||||
+--------------+-------------+-----------+-----------+-----------+ | ||||
| PM(11) | Not valid | Not valid | Not valid | Valid | | ||||
+--------------+-------------+-----------+-----------+-----------+ | ||||
* This SHOULD cause an alarm to be raised at a higher layer. The | ||||
packet MUST be treated as if it carried the NM codepoint. | ||||
Table 2: Valid and Invalid Codepoint Transitions for | Table 2: Valid and Invalid Codepoint Transitions for | |||
PCN-packets at PCN-nodes | PCN-packets at PCN-interior-nodes | |||
If a pcn-interior-node compliant with this baseline encoding receives | A PCN-egress-node SHOULD set the not-PCN (00) codepoint on all | |||
a | packets it forwards out of the PCN-domain. The only exception to | |||
this is if the PCN-egress-node is certain that revealing other | ||||
codepoints outside the PCN-domain won't contravene the guidance given | ||||
in [RFC4774]. | ||||
4.1. Rationale for Encoding | 4.2. 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. [ecn-tunneling] explains this in more detail. | or an IPSec Tunnel. [I-D.ietf-tsvwg-ecn-tunnel] explains this in | |||
The main effect of this constraint is that any PCN marking has to | more detail. The main effect of this constraint is that any PCN | |||
carry the 11 codepoint in the ECN field. If the packet is being | marking has to carry the 11 codepoint in the ECN field since this is | |||
tunneled then only the 11 codepoint gets copied into the inner header | the only codepoint that is guaranteeed to be copied down into the | |||
upon decapsulation. An additional constraint is the need to minimise | inner header upon decapsulation. An additional constraint is the | |||
the use of DiffServ codepoints as there is a limited supply of | need to minimise the use of DiffServ codepoints as there is a limited | |||
standards track codepoints remaining. Section 4.2 explains how we | supply of standards track codepoints remaining. Section 4.3 explains | |||
have minimised this still further by reusing pre-existing Diffserv | how we have minimised this still further by reusing pre-existing | |||
codepoint(s) such that non-PCN traffic can still be distinguished | Diffserv codepoint(s) such that non-PCN traffic can still be | |||
from PCN traffic. There are a number of factors that were considered | distinguished from PCN traffic. There are a number of factors that | |||
before deciding to set 10 as the NM state. These included similarity | were considered before deciding to set 10 as the NM state. These | |||
to ECN, presence of tunnels within the domain, leakage into and out | included similarity to ECN, presence of tunnels within the domain, | |||
of PCN-domain and incremental deployment. | 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.2. PCN-Compatible DiffServ Codepoints | 4.3. 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. | the term "PCN-compatible Diffserv codepoint" for such a DSCP. To be | |||
Enabling PCN for a DSCP switches on PCN marking behaviour for packets | clear, any packets with such a DSCP will be PCN enabled only if they | |||
with that DSCP, but only if those packets also have their ECN field | also have their ECN field set to indicate a codepoint other than not- | |||
set to indicate a codepoint other than Not-PCN. | PCN. | |||
Enabling PCN marking behaviour disables any other marking behaviour | Enabling PCN marking behaviour disables any other marking behaviour | |||
(e.g. enabling PCN disables the default ECN marking behaviour | (e.g. enabling PCN disables the default ECN marking behaviour | |||
introduced in [RFC3168]). All traffic scheduling and conditioning | introduced in [RFC3168]). All traffic scheduling and conditioning | |||
behaviours are discussed in [pcn-marking-behaviour]. This ensures | behaviours are discussed in [I-D.ietf-pcn-marking-behaviour]. This | |||
compliance with the BCP guidance set out in [RFC4774]. | ensures compliance with the BCP guidance set out in [RFC4774]. | |||
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 The 00 codepoint in the ECN field MUST mean Not-PCN. | o The 00 codepoint in the ECN field SHALL indicate not-PCN and MUST | |||
NOT be changed to any otehr codepoint within a PCN-domain. | ||||
Therefore an ingress node wishing to disable PCN marking for a | ||||
packet within a PCN-compatible DiffServ Codepoint MUST set the ECN | ||||
field to 00. | ||||
o The 11 codepoint in the ECN field MUST mean PCN-marked (though | o The 11 codepoint in the ECN field SHALL indicate PCN-marked | |||
this doesn't exclude other codepoints from carrying the same | (though this does not exclude the 01 Experimental codepoint from | |||
meaning). | carrying the same meaning). | |||
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. It | |||
should be noted that this baseline encoding effectively disables end- | should be noted that this baseline encoding effectively disables end- | |||
to-end ECN except where mechanisms are put in place to tunnel such | to-end ECN except where mechanisms are put in place to tunnel such | |||
traffic across the PCN-domain. | traffic across the PCN-domain. | |||
7. IANA Considerations | 7. IANA Considerations | |||
This document makes no request to IANA. | This document makes no request to IANA. | |||
8. Security Considerations | 8. Security Considerations | |||
Packets claim entitlement to be PCN marked by carrying a PCN- | PCN-marking only carries a meaning within the confines of a PCN- | |||
Compatible DSCP and a PCN-Enabled ECN codepoint. This encoding | domain. Packets wishing to be treated as belonging to a PCN-flow | |||
document is intended to stand independently of the architecture used | must carry a PCN-Compatible DSCP and a PCN-Enabled ECN codepoint. | |||
to determine whether specific packets are authorised to be PCN | This encoding document is intended to stand independently of the | |||
marked, which will be described in a future separate document on PCN | architecture used to determine whether specific packets are | |||
edge-node behaviour. | authorised to be PCN-marked, which will be described in separate | |||
documents on PCN edge-node behaviour. | ||||
The PCN working group has initially been chartered to only consider a | ||||
PCN-domain to be entirely under the control of one operator, or a set | ||||
of operators who trust each other [PCN-charter]. However there is a | ||||
requirement to keep inter-domain scenarios in mind when defining the | ||||
PCN encoding. One way to extend to multiple domains would be to | ||||
concatenate PCN-domains and use PCN-boundary-nodes back to back at | ||||
borders. Then any one domain's security against its neighbours would | ||||
be described as part of the proposed edge-node behaviour document. | ||||
One proposal on the table allows one to extend PCN across multiple | This document assumes the PCN-domain to be entirely under the control | |||
domains without PCN-boundary-nodes back-to-back at borders [re-PCN]. | of a single operator, or a set of operators who trust each other. | |||
It is believed that the encoding described here would be compatible | However future extensions to PCN might include inter-domain versions | |||
with the security framework described there. | where trust cannot be assumed between domains. If such schemes are | |||
proposed they must ensure that they can operate securely despite the | ||||
lack of trust but such considerations are beyond the scope of this | ||||
document. | ||||
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 doesn't require end-to-end ECN support. The encoding scheme | traffic does not require ECN support within the PCN-domain. The | |||
is conformant with [RFC4774]. | encoding scheme is conformant with [RFC4774]. | |||
10. Acknowledgements | 10. Acknowledgements | |||
This document builds extensively on work done in the PCN working | This document builds extensively on work done in the PCN working | |||
group by Kwok Ho Chan, Georgios Karagiannis, Philip Eardley, Anna | group by Kwok Ho Chan, Georgios Karagiannis, Philip Eardley, Anna | |||
Charny, Joe Babiarz and others. Thanks to Ruediger Geib for | Charny, Joe Babiarz and others. Thanks to Ruediger Geib and Gorry | |||
providing detailed comments on this document. | Fairhurst for providing detailed comments on this document. | |||
11. Comments Solicited | 11. Comments Solicited | |||
Comments and questions are encouraged and very welcome. They can be | (To be removed by the RFC-Editor.) Comments and questions are | |||
addressed to the IETF congestion and pre-congestion working group | encouraged and very welcome. They can be addressed to the IETF | |||
mailing list <pcn@ietf.org>, and/or to the authors. | congestion and pre-congestion working group mailing list | |||
<pcn@ietf.org>, and/or to the authors. | ||||
12. References | 12. References | |||
12.1. Normative References | 12.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to | [I-D.ietf-pcn-marking-behaviour] Eardley, P., "Marking | |||
Indicate Requirement Levels", BCP 14, | behaviour of PCN-nodes", dra | |||
ft-ietf-pcn-marking- | ||||
behaviour-02 (work in | ||||
progress), March 2009. | ||||
[RFC2119] Bradner, S., "Key words for | ||||
use in RFCs to Indicate | ||||
Requirement Levels", BCP 14, | ||||
RFC 2119, March 1997. | RFC 2119, March 1997. | |||
[RFC4774] Floyd, S., "Specifying Alternate Semantics | [RFC3168] Ramakrishnan, K., Floyd, S., | |||
for the Explicit Congestion Notification | and D. Black, "The Addition | |||
(ECN) Field", BCP 124, RFC 4774, | of Explicit Congestion | |||
Notification (ECN) to IP", | ||||
RFC 3168, September 2001. | ||||
[RFC4774] Floyd, S., "Specifying | ||||
Alternate Semantics for the | ||||
Explicit Congestion | ||||
Notification (ECN) Field", | ||||
BCP 124, RFC 4774, | ||||
November 2006. | November 2006. | |||
12.2. Informative References | 12.2. Informative References | |||
[PCN-3-enc-state] Moncaster, T., Briscoe, B., and M. Menth, "A | [I-D.ietf-pcn-architecture] Eardley, P., "Pre-Congestion | |||
three state extended PCN encoding scheme", | Notification (PCN) | |||
draft-moncaster-pcn-3-state-encoding-00 | Architecture", draft-ietf- | |||
(work in progress), June 2008. | pcn-architecture-10 (work in | |||
progress), March 2009. | ||||
[PCN-charter] IETF, "IETF Charter for Congestion and Pre- | [I-D.ietf-tsvwg-admitted-realtime-dscp] Baker, F., Polk, J., and M. | |||
Congestion Notification Working Group". | Dolly, "DSCP for Capacity- | |||
Admitted Traffic", draft- | ||||
ietf-tsvwg-admitted- | ||||
realtime-dscp-05 (work in | ||||
progress), November 2008. | ||||
[RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, | [I-D.ietf-tsvwg-ecn-tunnel] Briscoe, B., "Tunnelling of | |||
"The Addition of Explicit Congestion | Explicit Congestion | |||
Notification (ECN) to IP", RFC 3168, | Notification", draft-ietf- | |||
September 2001. | tsvwg-ecn-tunnel-02 (work in | |||
progress), March 2009. | ||||
[RFC4301] Kent, S. and K. Seo, "Security Architecture | [RFC4301] Kent, S. and K. Seo, | |||
for the Internet Protocol", RFC 4301, | "Security Architecture for | |||
December 2005. | the Internet Protocol", | |||
RFC 4301, December 2005. | ||||
[RFC5127] Chan, K., Babiarz, J., and F. Baker, | [RFC5127] Chan, K., Babiarz, J., and | |||
"Aggregation of DiffServ Service Classes", | F. Baker, "Aggregation of | |||
DiffServ Service Classes", | ||||
RFC 5127, February 2008. | RFC 5127, February 2008. | |||
[ecn-tunneling] Briscoe, B., "Layered Encapsulation of | ||||
Congestion Notification", | ||||
draft-ietf-tsvwg-ecn-tunnel-01 (work in | ||||
progress), October 2008. | ||||
[pcn-arch] Eardley, P., "Pre-Congestion Notification | ||||
(PCN) Architecture", | ||||
draft-ietf-pcn-architecture-07 (work in | ||||
progress), September 2008. | ||||
[pcn-marking-behaviour] Eardley, P., "Marking behaviour of PCN- | ||||
nodes", draft-ietf-pcn-marking-behaviour-01 | ||||
(work in progress), October 2008. | ||||
[re-PCN] Briscoe, B., "Emulating Border Flow Policing | ||||
using Re-ECN on Bulk Data", | ||||
draft-briscoe-re-pcn-border-cheat-00 (work | ||||
in progress), July 2007. | ||||
[voice-admit] Baker, F., Polk, J., and M. Dolly, "DSCP for | ||||
Capacity-Admitted Traffic", | ||||
draft-ietf-tsvwg-admitted-realtime-dscp-05 | ||||
(work in progress), November 2008. | ||||
Appendix A. PCN Deployment Considerations | Appendix A. PCN Deployment Considerations | |||
A.1. Choice of Suitable DSCPs | A.1. Choice of Suitable DSCPs | |||
The choice of which DSCP is most suitable for the PCN-domain is | The PCN Working Group chose not to define a single DSCP for use with | |||
dependant on the nature of the traffic entering that domain and the | PCN for several reasons. Firstly the PCN mechanism is applicable to | |||
link rates of all the links making up that domain. In PCN-domains | a variety of different traffic classes. Secondly standards track | |||
with uniformly high link rates, the appropriate DSCPs would currently | DSCPs are in increasingly short supply. Thirdly PCN should be seen | |||
be those for the Real Time Traffic Class [RFC5127]. If the PCN | as being essentially a marking behaviour similar to ECN but intended | |||
domain includes lower speed links it would also be appropriate to use | for inelastic traffic. The choice of which DSCP is most suitable for | |||
the DSCPs of the other traffic classes that [voice-admit] defines for | a given PCN-domain is dependant on the nature of the traffic entering | |||
use with admission control, such as the three video classes CS4, CS3 | that domain and the link rates of all the links making up that | |||
and AF4 and the Admitted Telephony Class. | domain. In PCN-domains with uniformly high link rates, the | |||
appropriate DSCPs would currently be those for the Real Time Traffic | ||||
Class [RFC5127]. If the PCN domain includes lower speed links it | ||||
would also be appropriate to use the DSCPs of the other traffic | ||||
classes that [I-D.ietf-tsvwg-admitted-realtime-dscp] defines for use | ||||
with admission control, such as the three video classes CS4, CS3 and | ||||
AF4 and the Admitted Telephony Class. | ||||
A.2. Rationale for Using ECT(0) for Not Marked | A.2. Rationale for Using ECT(0) for Not Marked | |||
The choice of which ECT codepoint to use for the Not Marked state was | The choice of which ECT codepoint to use for the Not Marked state was | |||
based on the following considerations: | based on the following considerations: | |||
o [RFC3168] full functionality tunnel within PCN-domain: Either ECT | o [RFC3168] full functionality tunnel within the PCN-domain: Either | |||
is safe. | ECT is safe. | |||
o Leakage of traffic into PCN-domain: ECT(1) is less often correct. | o Leakage of traffic into PCN-domain: ECT(1) is slightly less likely | |||
to occur so might be considered safer. | ||||
o Leakage of traffic out of PCN-domainL Either ECT is equally unsafe | o Leakage of traffic out of PCN-domain: Either ECT is equally unsafe | |||
(since this would incorrectly indicate the traffic was ECN capable | (since this would incorrectly indicate the traffic was ECN-capable | |||
outside the controlled PCN-domain). | outside the controlled PCN-domain). | |||
o Incremental deployment: Either ECT is suitable as long as they are | o Incremental deployment: Either codepoint is suitable providing | |||
used consistently. | that the codepoints are used consistently. | |||
o Conceptual consistency with other schemes: ECT(0) is conceptually | o Conceptual consistency with other schemes: ECT(0) is conceptually | |||
consistent with [RFC3168]. | consistent with [RFC3168]. | |||
Overall this seemed to suggest ECT(0) was most appropriate to use. | ||||
Authors' Addresses | Authors' Addresses | |||
Toby Moncaster | Toby Moncaster | |||
BT | BT | |||
B54/70, Adastral Park | B54/70, Adastral Park | |||
Martlesham Heath | Martlesham Heath | |||
Ipswich IP5 3RE | Ipswich IP5 3RE | |||
UK | UK | |||
Phone: +44 1473 648734 | Phone: +44 1473 648734 | |||
End of changes. 60 change blocks. | ||||
212 lines changed or deleted | 266 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/ |