| draft-moncaster-pcn-baseline-encoding-00.txt | draft-moncaster-pcn-baseline-encoding-01.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: November 16, 2008 BT & UCL | Expires: December 25, 2008 BT & UCL | |||
| M. Menth | M. Menth | |||
| University of Wuerzburg | University of Wuerzburg | |||
| May 15, 2008 | June 23, 2008 | |||
| Encoding and Transport of (Pre-)Congestion Information from within a | Baseline Encoding and Transport of Pre-Congestion Information | |||
| DiffServ Domain to the Egress | draft-moncaster-pcn-baseline-encoding-01 | |||
| draft-moncaster-pcn-baseline-encoding-00 | ||||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 38 | skipping to change at page 1, line 37 | |||
| 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 November 16, 2008. | This Internet-Draft will expire on December 25, 2008. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The IETF Trust (2008). | Copyright (C) The IETF Trust (2008). | |||
| Abstract | Abstract | |||
| Pre-congestion notification (PCN) is a mechanism designed to protect | Pre-congestion notification (PCN) provides information to support | |||
| the Quality of Service of inelastic flows. It does this by marking | admission control and flow termination in order to protect the | |||
| Quality of Service of inelastic flows. It does this by marking | ||||
| packets when traffic load on a link is approaching or has exceeded a | packets when traffic load on a link is approaching or has exceeded a | |||
| threshold below the physical link rate. This document specifies how | rate threshold below the physical link rate. This document specifies | |||
| such marks are to be encoded into the IP header. The baseline | how such marks are to be encoded into the IP header. The baseline | |||
| encoding described here provides for two PCN encoding states. | encoding described here provides for only two PCN encoding states. | |||
| Another document describes an extended encoding scheme that allows | ||||
| for three encoding states. | ||||
| Status | Status | |||
| This memo is posted as an Internet-Draft with an intent to eventually | This memo is posted as an Internet-Draft with an intent to eventually | |||
| progress to standards track. | progress to standards track. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Requirements notation . . . . . . . . . . . . . . . . . . . . 3 | 2. Requirements notation . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. Encoding Two PCN States in IP . . . . . . . . . . . . . . . . 3 | 4. Encoding two PCN States in IP . . . . . . . . . . . . . . . . 4 | |||
| 4.1. Rationale for Encoding . . . . . . . . . . . . . . . . . . 4 | 4.1. Rationale for Encoding . . . . . . . . . . . . . . . . . . 5 | |||
| 4.2. PCN-Enabled DiffServ Codepoints . . . . . . . . . . . . . 5 | 4.2. PCN-Enabled DiffServ Codepoints . . . . . . . . . . . . . 5 | |||
| 4.3. Valid and Invalid Encoding Transitions at a PCN Node . . . 5 | 4.2.1. Implications of re-using a DiffServ Codepoint . . . . 5 | |||
| 5. Backwards Compatability . . . . . . . . . . . . . . . . . . . 5 | 4.3. Valid and Invalid Encoding Transitions at a PCN Node . . . 6 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 | 5. Backwards Compatability . . . . . . . . . . . . . . . . . . . 7 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 6 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 8. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7 | 8. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 10. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 7 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 10. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . . 7 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . . 7 | 11.1. Normative References . . . . . . . . . . . . . . . . . . . 8 | |||
| Appendix A. Tunnelling Constraints . . . . . . . . . . . . . . . 8 | 11.2. Informative References . . . . . . . . . . . . . . . . . . 8 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9 | Appendix A. Tunnelling Constraints . . . . . . . . . . . . . . . 9 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . . 10 | Appendix B. Deployment Scenarios for PCN Using Baseline | |||
| Encoding . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| Intellectual Property and Copyright Statements . . . . . . . . . . 12 | ||||
| 1. Introduction | 1. Introduction | |||
| Pre-congestion notification is a mechanism designed to help protect | Pre-congestion notification (PCN) provides information to support | |||
| the Quality of Service of inelastic flows. It does this by measuring | admission control and flow termination in order to protect the | |||
| the pre-congestion level on the path used by that flow. The pre- | quality of service (QoS) of inelastic flows. This is achieved by | |||
| congestion level at each node is indicated by marking packets when | marking packets according to the level of pre-congestion at nodes | |||
| traffic load is approaching or has exceeded a threshold below the | within the PCN-domain. Two algorithms exist for that purpose. | |||
| physical link rate. [PCN-arch] describes how PCN marking can be used | Excess traffic marking marks all PCN packets exceeding a certain | |||
| to assure the quality of service of inelastic flows within a single | reference rate on a link while threshold marking marks all PCN | |||
| DiffServ domain. This document specifies how those PCN marks are | packets on a link when the PCN traffic rate exceeds the reference | |||
| encoded into the IP header. It also describes how packets are | rate. These markings are evaluated by the egress nodes of the PCN- | |||
| identified as belonging to a PCN flow. The baseline encoding | domain. [PCN-arch] describes how PCN packet markings can be used to | |||
| described here provides for two PCN encoding states. | assure the QoS of inelastic flows within a single DiffServ domain. | |||
| This document specifies how these PCN marks are encoded into the IP | ||||
| header. It also describes how packets are identified as belonging to | ||||
| a PCN flow. Some deployment models require two PCN encoding states, | ||||
| others require three. The baseline encoding described here only | ||||
| provides for two PCN encoding states. An extended encoding described | ||||
| in [PCN-3-enc-state] provides for three PCN encoding states. | ||||
| Changes from previous drafts (to be removed by the RFC Editor) | ||||
| From -00 to -01: | ||||
| Change of title from "Encoding and Transport of (Pre-)Congestion | ||||
| Information from within a DiffServ Domain to the Egress" | ||||
| Extensive changes to Introduction and abstract. | ||||
| Added a section on the implications of re-using a DSCP. | ||||
| Added appendix listing possible operator scenarios for using this | ||||
| baseline encoding. | ||||
| 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 | |||
| The following terms are used in this document: | The following terms are used in this document: | |||
| skipping to change at page 3, line 46 | skipping to change at page 4, line 22 | |||
| o PCN-Capable codepoints - collective term for all the NM and PM | o PCN-Capable codepoints - collective term for all the NM and PM | |||
| codepoints. | codepoints. | |||
| o PCN enabled Diffserv codepoint - a Diffserv codepoint for which | o PCN enabled Diffserv codepoint - a Diffserv codepoint for which | |||
| PCN has been enabled on a particular machine. | PCN has been enabled on a particular machine. | |||
| In addition the document uses the terminology described in | In addition the document uses the terminology described in | |||
| [PCN-arch]. | [PCN-arch]. | |||
| 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 | |||
| field and ECN field in the IP header. The baseline PCN encoding | field and ECN field in 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). The following table defines how to encode these states in IP: | PCN). The following table defines how to encode these states in IP: | |||
| +--------+--------------+-------------+-------------+---------+ | +--------+--------------+-------------+-------------+---------+ | |||
| | DSCP | Not-ECT (00) | ECT(0) (10) | ECT(1) (01) | CE (11) | | | DSCP | Not-ECT (00) | ECT(0) (10) | ECT(1) (01) | CE (11) | | |||
| +--------+--------------+-------------+-------------+---------+ | +--------+--------------+-------------+-------------+---------+ | |||
| | DSCP n | Not-PCN | NM | NM | PM | | | DSCP n | not-PCN | NM | NM | PM | | |||
| +--------+--------------+-------------+-------------+---------+ | +--------+--------------+-------------+-------------+---------+ | |||
| Where DSCP n is a PCN-enabled DiffServ codepoint (see Section 4.2) | Where DSCP n is a PCN-enabled DiffServ codepoint (see Section 4.2) | |||
| 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 DiffServ codepoint that | o PCN traffic MUST be marked with a DiffServ codepoint that | |||
| indicates PCN is enabled. To conserve DSCPs, DiffServ Codepoints | indicates PCN is enabled. To conserve DSCPs, DiffServ Codepoints | |||
| SHOULD be chosen that are already defined for use with admission | SHOULD be chosen that are already defined for use with admission | |||
| controlled traffic, such as the Voice-Admit codepoint defined in | controlled traffic, such as the Voice-Admit codepoint defined in | |||
| [voice-admit]. | [voice-admit]. | |||
| o Any packet that is not PCN capable (Not-PCN) but which shares the | o Any packet that is not PCN capable (not-PCN) but which shares the | |||
| same DiffServ codepoint as PCN capable traffic MUST have the ECN | same DiffServ codepoint as PCN capable traffic MUST have the ECN | |||
| field set to 00. | field set to 00. | |||
| o Any packet that is PCN capable and Not Marked (NM) MUST have the | o Any packet that belongs to a PCN capable flow MUST have the ECN | |||
| ECN field set to one of the two ECT codepoints 10 or 01. | field set to one of the two ECT codepoints 10 or 01 at the PCN- | |||
| ingress-node. | ||||
| o Any packet that is PCN capable and has been PCN-marked by an | o Any packet that is PCN capable and has been PCN-marked by a PCN- | |||
| interior node MUST have the ECN field set to 11. | interior-node MUST have the ECN field set to 11. | |||
| 4.1. Rationale for Encoding | 4.1. 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. Full details are contained in | by existing IETF RFCs, in particular [RFC3168] and [RFC4774]. Full | |||
| [pcn-enc-compare]. One of the tightest constraints was the need for | details are contained in [pcn-enc-compare]. One of the tightest | |||
| any PCN encoding to survive being tunnelled through either an IP in | constraints was the need for any PCN encoding to survive being | |||
| IP tunnel or an IPSec Tunnel. Appendix A explains this in more | tunnelled through either an IP in IP tunnel or an IPSec Tunnel. | |||
| detail. The main effect of this constraint was that any PCN marking | Appendix A explains this in detail. The main effect of this | |||
| has to use the ECN field set to 11 (CE codepoint). An additional | constraint was that any PCN marking has to use the ECN field set to | |||
| constraint was the need to minimise the use of DiffServ codepoints as | 11 (CE codepoint). If the packet is being tunneled then only the CE | |||
| these are in increasingly short supply. Section 4.2 explains how we | codepoint gets copied into the inner header upon decapsulation. An | |||
| have minimised this still further by reusing pre-existing Diffserv | additional constraint was the need to minimise the use of DiffServ | |||
| codepoint(s) such that non-PCN traffic can still be distinguished | codepoints as these are in increasingly short supply. Section 4.2 | |||
| from PCN traffic. | explains how we have minimised this still further by reusing pre- | |||
| existing Diffserv codepoint(s) such that non-PCN traffic can still be | ||||
| distinguished from PCN traffic. | ||||
| The encoding scheme that best addresses the above constraints ends up | The encoding scheme (Table 1) that best addresses the above | |||
| looking very similar to ECN. This is perhaps not surprising given | constraints ends up looking very similar to ECN. This is perhaps not | |||
| the similarity in architectural intent between PCN and ECN. | surprising given the similarity in architectural intent between PCN | |||
| and ECN. | ||||
| 4.2. PCN-Enabled DiffServ Codepoints | 4.2. PCN-Enabled 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 a certain Diffserv codepoint or codepoints. This | be enabled for a certain Diffserv codepoint or codepoints. This | |||
| document defines the term 'PCN-Enabled Diffserv Codepoint' for such a | document defines the term 'PCN-Enabled Diffserv Codepoint' for such a | |||
| DSCP. Enabling PCN for a DSCP switches on PCN marking behaviour for | DSCP. Enabling PCN for a DSCP switches on PCN marking behaviour for | |||
| packets with that DSCP, but only if those packets also have their ECN | packets with that DSCP, but only if those packets also have their ECN | |||
| field set to a codepoint other than Not-PCN. | field set to a codepoint other than not-PCN. | |||
| Enabling PCN marking behaviour disables any other marking behaviour | Enabling PCN marking behaviour disables any other marking behaviour | |||
| (e.g. enabling PCN also disables the default ECN marking behaviour | (e.g. enabling PCN also disables the default ECN marking behaviour | |||
| introduced in [RFC3168]). The scheduling behaviour used for a packet | introduced in [RFC3168]). The scheduling behaviour used for a packet | |||
| does not change whether PCN is enabled for a DSCP or not and whatever | does not change whether PCN is enabled for a DSCP or not and whatever | |||
| the setting of the ECN field. | the setting of the ECN field. | |||
| 4.2.1. Implications of re-using a DiffServ Codepoint | ||||
| [RFC4774] requires that packets for which alternate ECN semantics | ||||
| (PCN semantics) are used are clearly distinguished from packets to | ||||
| which the semantics according to [RFC3168] apply. This is done by | ||||
| using a DSCP to indicate that the ECN field is to be interpreted in | ||||
| the PCN context instead of the ECN context by PCN-enabled nodes. | ||||
| Non-PCN-enabled forwarding nodes outside or inside the PCN domain | ||||
| treat packets with a PCN-enabled DSCP like ECN traffic if appropriate | ||||
| ECN codepoints are set in the IP header. This has several | ||||
| consequences. | ||||
| o Care must be taken that the PCN encoding of packets is not falsely | ||||
| interpreted by forwarding nodes as ECN encoding, and that no harm | ||||
| is done if this were to happen. To that end, appropriate marking | ||||
| and re-marking is performed at the ingress and the egress of a PCN | ||||
| domain. | ||||
| o The re-used DSCP should be able to serve its original purpose | ||||
| which was not PCN support. This is achieved by marking the | ||||
| packets of such flows with a not-PCN codepoint. | ||||
| o The scheduling behaviour is coupled with the DSCP only. | ||||
| Therefore, the same scheduling and buffer management rules are | ||||
| applied for non-PCN-capable and PCN-capable traffic using the same | ||||
| PCN-enabled DSCP. | ||||
| o Once the ECN field of a packet is used for PCN encoding, it has | ||||
| lost its previous information unless this information was | ||||
| tunnelled through the PCN domain. Therefore, the baseline PCN | ||||
| encoding disables ECN for PCN-enabled DSCPs. [PCN-3-enc-state] | ||||
| provides end-to-end ECN support where this is needed. | ||||
| 4.3. Valid and Invalid Encoding Transitions at a PCN Node | 4.3. Valid and Invalid Encoding Transitions at a PCN Node | |||
| PCN edge node behaviour compliant with the PCN baseline encoding: | PCN edge node behaviour compliant with the PCN baseline encoding: | |||
| o Any packets with the ECN field already marked as CE or ECT | o Any packets with the ECN field already marked as CE or ECT | |||
| arriving at a PCN ingress node SHOULD be dropped or alternatively | arriving at a PCN ingress node SHOULD be dropped or alternatively | |||
| MAY be tunnelled through the PCN region. They MUST NOT be | MAY be tunnelled through the PCN-domain. They MUST NOT be | |||
| admitted to the PCN region directly. | admitted to the PCN-domain directly. | |||
| o On leaving the PCN region the ECN bits MUST be set to 00 (Not | o On leaving the PCN-domain the ECN bits MUST be set to 00 (Not | |||
| ECT). | ECT). | |||
| PCN interior node behaviour compliant with the PCN baseline encoding: | PCN interior node behaviour compliant with the PCN baseline encoding: | |||
| o PCN Interior nodes MUST NOT change Not-PCN to another codepoint | o PCN Interior nodes MUST NOT change not-PCN to another codepoint | |||
| and they MUST NOT change a PCN-Capable codepoint to Not-PCN. | and they MUST NOT change a PCN-Capable codepoint to not-PCN. | |||
| o PCN interior nodes that are in a pre-congestion state above the | o PCN interior nodes that are in a pre-congestion state above the | |||
| configured level MUST set the PM codepoint by changing the ECN | configured level MUST set the PM codepoint by changing the ECN | |||
| bits to 11. | bits of NM marked packets to 11. | |||
| o PM MUST NOT be changed to NM. | o The PM codepoint MUST NOT be changed to NM. | |||
| 5. Backwards Compatability | 5. Backwards Compatability | |||
| 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 that | semantics for the ECN field. It sets out a number of factors that | |||
| must be taken into consideration. It also suggests various | must be taken into consideration. It also suggests various | |||
| techniques to allow the co-existence of default ECN and alternative | techniques to allow the co-existence of default ECN and alternative | |||
| ECN semantics. The alternative semantics specified here are | ECN semantics. The alternative semantics specified here are | |||
| compliant with this BCP: | compliant with this BCP: | |||
| skipping to change at page 6, line 30 | skipping to change at page 7, line 39 | |||
| Voice-Admit [voice-admit] DSCP. | Voice-Admit [voice-admit] DSCP. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| Packets claim entitlement to be PCN marked by carrying a PCN-enabled | Packets claim entitlement to be PCN marked by carrying a PCN-enabled | |||
| DSCP and a PCN-Capable ECN codepoint. This encoding document is | DSCP and a PCN-Capable ECN codepoint. This encoding document is | |||
| intended to stand independently of the architecture used to determine | intended to stand independently of the architecture used to determine | |||
| whether specific packets are authorised to be PCN marked, which will | whether specific packets are authorised to be PCN marked, which will | |||
| be described in a future separate document on PCN edge-node | be described in a future separate document on PCN edge-node | |||
| behaviour. The PCN working group has initially been chartered to | behaviour. The PCN working group has initially been chartered to | |||
| only consider a PCN region to be entirely under the control of one | 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]. | operator, or a set of operators who trust each other [PCN-charter]. | |||
| However there is a requirement to keep inter-domain scenarios in mind | However there is a requirement to keep inter-domain scenarios in mind | |||
| when defining the PCN encoding. One way to extend to multiple | when defining the PCN encoding. One way to extend to multiple | |||
| domains would be to concatenate PCN regions and use PCN edge-nodes | domains would be to concatenate PCN-domains and use PCN-boundary- | |||
| back-to back at borders. Then any one domain's security against its | nodes back to back at borders. Then any one domain's security | |||
| neighbours would be described as part of the edge-node behaviour | against its neighbours would be described as part of the edge-node | |||
| document as above. There is only one proposal on the table to extend | behaviour document as above. One proposal on the table allows one to | |||
| PCN across multiple domains without PCN edge nodes back-to-back at | extend PCN across multiple domains without PCN edge nodes back-to- | |||
| borders [re-PCN]. it is believed that the encoding described here | back at borders [re-PCN]. It is believed that the encoding described | |||
| would not be incompatible with the security framework described | here would not be incompatible with the security framework described | |||
| there. | there. | |||
| 8. Conclusions | 8. 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 non-PCN traffic within the same DSCP. The encoding | existence of non-PCN traffic within the same DSCP. The encoding | |||
| scheme is conformant with [RFC4774]. | scheme is conformant with [RFC4774]. | |||
| 9. Acknowledgements | 9. 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, Michael Menth, Philip | group by Kwok Ho Chan, Georgios Karagiannis, Philip Eardley and | |||
| Eardley, Bob Briscoe and others. Full details of the alternative | others. Full details of the alternative schemes that were considered | |||
| schemes that were considered for adoption can be found in the sister | for adoption can be found in the document [pcn-enc-compare]. Thanks | |||
| document [pcn-enc-compare]. | to Ruediger Geib for providing comments on this document. | |||
| 10. Comments Solicited | 10. Comments Solicited | |||
| Comments and questions are encouraged and very welcome. They can be | Comments and questions are encouraged and very welcome. They can be | |||
| addressed to the IETF Transport Area working group mailing list | addressed to the IETF Transport Area working group mailing list | |||
| <tsvwg@ietf.org>, and/or to the authors. | <tsvwg@ietf.org>, and/or to the authors. | |||
| 11. References | 11. References | |||
| 11.1. Normative References | 11.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. | |||
| [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. | |||
| 11.2. Informative References | 11.2. Informative References | |||
| [PCN-3-enc-state] | ||||
| Moncaster, T., Briscoe, B., and M. Menth, "A three state | ||||
| extended PCN encoding scheme", | ||||
| draft-moncaster-pcn-3-state-encoding-00 (work in | ||||
| progress), June 2008. | ||||
| [PCN-arch] | [PCN-arch] | |||
| Eardley, P., "Pre-Congestion Notification Architecture", | Eardley, P., "Pre-Congestion Notification Architecture", | |||
| draft-ietf-pcn-architecture-03 (work in progress), | draft-ietf-pcn-architecture-03 (work in progress), | |||
| February 2008. | February 2008. | |||
| [PCN-charter] | [PCN-charter] | |||
| "IETF Charter for Congestion and Pre-Congestion | "IETF Charter for Congestion and Pre-Congestion | |||
| Notification Working Group". | Notification Working Group". | |||
| [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition | |||
| skipping to change at page 8, line 33 | skipping to change at page 9, line 49 | |||
| The rules that govern the behaviour of the ECN field for IP-in-IP | The rules that govern the behaviour of the ECN field for IP-in-IP | |||
| tunnels were defined in [RFC3168]. This allowed for two tunnel modes | tunnels were defined in [RFC3168]. This allowed for two tunnel modes | |||
| to exist. The limited functionality mode sets the outer header to | to exist. The limited functionality mode sets the outer header to | |||
| Not ECT, regardless of the value of the inner header. The full | Not ECT, regardless of the value of the inner header. The full | |||
| functionality mode copies the inner ECN field into the outer header | functionality mode copies the inner ECN field into the outer header | |||
| if the inner header is Not ECT or either of the 2 ECT codepoints. If | if the inner header is Not ECT or either of the 2 ECT codepoints. If | |||
| the inner header is CE then the outer header is set to ECT(0). On | the inner header is CE then the outer header is set to ECT(0). On | |||
| decapsulation, if the CE codepoint is set on the outer header then | decapsulation, if the CE codepoint is set on the outer header then | |||
| this is copied into the inner header. Otherwise the inner header is | this is copied into the inner header. Otherwise the inner header is | |||
| left unchanged. The reason for blocking CE from being copied to the | left unchanged. The apparent reason for blocking CE from being | |||
| outer header was to prevent this from being used as a covert channel | copied to the outer header was to prevent this from being used as a | |||
| through IPSec tunnels. | covert channel through IPSec tunnels. | |||
| The IPSec protocol [RFC4301] changed the ECN tunnelling rule to allow | The IPSec protocol [RFC4301] changed the ECN tunnelling rule to allow | |||
| IPSec tunnels to simply copy the inner header into the outer header. | IPSec tunnels to simply copy the inner header into the outer header. | |||
| This was because the security community had decided the available | On decapsulation the outer header is discarded and the ECN field is | |||
| bandwidth of the covert channel offered by ECN was too low to be a | only copied down if it is set to CE. Because of the possible | |||
| significant threat. On decapsulation the outer header is discarded | existence of tunnels, only CE (11) can be used as a PCN marking as it | |||
| and the ECN field is only copied down if it is set to CE. Because of | is the only mark that will survive decapsulation. | |||
| the possible existence of tunnels, only CE (11) can be used as a PCN | ||||
| marking as it is the only mark that will survive decapsulation. | ||||
| There is a further issue involving tunnelling. In RFC3168, IP in IP | There is a further issue involving tunnelling. In RFC3168, IP in IP | |||
| tunnels are expected to set the ECN field to ECT(0) if the inner ECN | tunnels are expected to set the ECN field to ECT(0) if the inner ECN | |||
| field is set to CE. This leads to the possibility that some packets | field is set to CE. This leads to the possibility that some packets | |||
| within the PCN field that have already been marked may have that mark | within the PCN field that have already been marked may have that mark | |||
| concealed further into the region. This is undesirable for many PCN | concealed further into the domain. This is undesirable for many PCN | |||
| schemes and thus standard IP in IP tunnels SHOULD NOT be used within | schemes and thus standard IP in IP tunnels SHOULD NOT be used within | |||
| a PCN region. | a PCN-domain. | |||
| Appendix B. Deployment Scenarios for PCN Using Baseline Encoding | ||||
| We illustrate the use of PCN baseline encoding for different PCN | ||||
| deployment scenarios and explain also a case for which baseline | ||||
| encoding is not applicable. {Note this appendix is provided for | ||||
| information only} | ||||
| 1. An operator may wish to use PCN-based admission control only. To | ||||
| that end, threshold marking based on admissible rates may be used | ||||
| as the only PCN metering and marking algorithm. As a | ||||
| consequence, the packet marks M are interpreted as admission-stop | ||||
| (AS) marks. The admission-control algorithm is based on | ||||
| "admissible-rate overload". | ||||
| 2. An operator may wish to use PCN-based flow termination only. To | ||||
| that end, excess rate marking based on supportable rates may be | ||||
| used as the only PCN metering and marking algorithm. As a | ||||
| consequence, the packet marks M are interpreted as excess-traffic | ||||
| (ET) marks. The flow termination algorithm is based on | ||||
| "supportable-rate overload". | ||||
| 3. An operator may wish to use both PCN-based admission control and | ||||
| flow termination. To that end, excess rate marking based on | ||||
| admissible rates may be used as the only PCN metering and marking | ||||
| algorithm. As a consequence, the packet marks are interpreted as | ||||
| admission-stop (AS) marks. Both the admission control and the | ||||
| flow termination algorithm are based on "admissible-rate | ||||
| overload". | ||||
| 4. An operator may wish to implement admission control based on | ||||
| threshold marking at admissible rates and flow termination based | ||||
| on excess rate marking at supportable rates because these methods | ||||
| are believed to work better with small ingress-egress aggregates. | ||||
| Then two different markings are needed that cannot be recorded by | ||||
| the PCN baseline encoding. | ||||
| 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 | |||
| End of changes. 32 change blocks. | ||||
| 90 lines changed or deleted | 195 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/ | ||||