| draft-moncaster-pcn-baseline-encoding-01.txt | draft-moncaster-pcn-baseline-encoding-02.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: December 25, 2008 BT & UCL | Expires: January 12, 2009 BT & UCL | |||
| M. Menth | M. Menth | |||
| University of Wuerzburg | University of Wuerzburg | |||
| June 23, 2008 | July 11, 2008 | |||
| Baseline Encoding and Transport of Pre-Congestion Information | Baseline Encoding and Transport of Pre-Congestion Information | |||
| draft-moncaster-pcn-baseline-encoding-01 | draft-moncaster-pcn-baseline-encoding-02 | |||
| 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 37 | 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 December 25, 2008. | This Internet-Draft will expire on January 12, 2009. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The IETF Trust (2008). | Copyright (C) The IETF Trust (2008). | |||
| Abstract | Abstract | |||
| Pre-congestion notification (PCN) provides information to support | Pre-congestion notification (PCN) provides information to support | |||
| admission control and flow termination in order to protect the | admission control and flow termination in order to protect the | |||
| Quality of Service of inelastic flows. It does this by marking | 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 | |||
| rate threshold below the physical link rate. This document specifies | threshold below the physical link rate. This document specifies how | |||
| how such marks are to be encoded into the IP header. The baseline | such marks are to be encoded into the IP header. The baseline | |||
| encoding described here provides for only two PCN encoding states. | encoding described here provides for only two PCN encoding states. | |||
| Another document describes an extended encoding scheme that allows | Other documents describe extended encoding schemes that allow for | |||
| for three encoding states. | 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 . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4. Encoding two PCN States in IP . . . . . . . . . . . . . . . . 4 | 4. Encoding two PCN States in IP . . . . . . . . . . . . . . . . 4 | |||
| 4.1. Rationale for Encoding . . . . . . . . . . . . . . . . . . 5 | 4.1. Rationale for Encoding . . . . . . . . . . . . . . . . . . 5 | |||
| 4.2. PCN-Enabled DiffServ Codepoints . . . . . . . . . . . . . 5 | 4.2. PCN-Enabled DiffServ Codepoints . . . . . . . . . . . . . 5 | |||
| 4.2.1. Implications of re-using a DiffServ Codepoint . . . . 5 | 4.2.1. Implications of re-using a DiffServ Codepoint . . . . 6 | |||
| 4.3. Valid and Invalid Encoding Transitions at a PCN Node . . . 6 | 4.3. Valid and Invalid Encoding Transitions at a PCN Node . . . 6 | |||
| 5. Backwards Compatability . . . . . . . . . . . . . . . . . . . 7 | 5. Backwards Compatability . . . . . . . . . . . . . . . . . . . 7 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
| 8. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 8. Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 8 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 10. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 8 | 10. Comments Solicited . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . . 8 | 11.1. Normative References . . . . . . . . . . . . . . . . . . . 8 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . . 8 | 11.2. Informative References . . . . . . . . . . . . . . . . . . 9 | |||
| Appendix A. Tunnelling Constraints . . . . . . . . . . . . . . . 9 | Appendix A. Tunnelling Constraints . . . . . . . . . . . . . . . 9 | |||
| Appendix B. Deployment Scenarios for PCN Using Baseline | Appendix B. Deployment Scenarios for PCN Using Baseline | |||
| Encoding . . . . . . . . . . . . . . . . . . . . . . 10 | Encoding . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| Intellectual Property and Copyright Statements . . . . . . . . . . 12 | Intellectual Property and Copyright Statements . . . . . . . . . . 13 | |||
| 1. Introduction | 1. Introduction | |||
| Pre-congestion notification (PCN) provides information to support | Pre-congestion notification (PCN) provides information to support | |||
| admission control and flow termination in order to protect the | admission control and flow termination in order to protect the | |||
| quality of service (QoS) of inelastic flows. This is achieved by | quality of service (QoS) of inelastic flows. This is achieved by | |||
| marking packets according to the level of pre-congestion at nodes | marking packets according to the level of pre-congestion at nodes | |||
| within the PCN-domain. Two algorithms exist for that purpose. | within the PCN-domain. Two algorithms exist for that purpose. | |||
| Excess traffic marking marks all PCN packets exceeding a certain | Excess traffic marking marks all PCN packets exceeding a certain | |||
| reference rate on a link while threshold marking marks all PCN | reference rate on a link while threshold marking marks all PCN | |||
| skipping to change at page 3, line 28 | skipping to change at page 3, line 28 | |||
| 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. It also describes how packets are identified as belonging to | |||
| a PCN flow. Some deployment models require two PCN encoding states, | a PCN flow. Some deployment models require two PCN encoding states, | |||
| others require three. The baseline encoding described here only | others require three. The baseline encoding described here only | |||
| provides for two PCN encoding states. An extended encoding described | provides for two PCN encoding states. An extended encoding described | |||
| in [PCN-3-enc-state] provides for three PCN encoding states. | in [PCN-3-enc-state] provides for three PCN encoding states. | |||
| Changes from previous drafts (to be removed by the RFC Editor) | Changes from previous drafts (to be removed by the RFC Editor) | |||
| From -01 to -02: | ||||
| Minor changes throughout including tightening up language to | ||||
| remain consistent with the PCN Architecture terminology | ||||
| From -00 to -01: | From -00 to -01: | |||
| Change of title from "Encoding and Transport of (Pre-)Congestion | Change of title from "Encoding and Transport of (Pre-)Congestion | |||
| Information from within a DiffServ Domain to the Egress" | Information from within a DiffServ Domain to the Egress" | |||
| Extensive changes to Introduction and abstract. | Extensive changes to Introduction and abstract. | |||
| Added a section on the implications of re-using a DSCP. | Added a section on the implications of re-using a DSCP. | |||
| Added appendix listing possible operator scenarios for using this | Added appendix listing possible operator scenarios for using this | |||
| skipping to change at page 4, line 5 | skipping to change at page 4, line 9 | |||
| 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 capable. | o not-PCN - packets that are not PCN capable. | |||
| 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. Also PM. | a PCN-interior-node using some PCN marking behaviour. Also PM. | |||
| o Not-Marked - codepoint indicating packets that are PCN capable but | o not-Marked - codepoint indicating packets that are PCN capable but | |||
| are not PCN-marked. Also NM. | are not PCN-marked. Also NM. | |||
| 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 defined 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 the Type of Service field | |||
| field and ECN field in the IP header. The baseline PCN encoding | of the IP header which is a combination of the DSCP field and ECN | |||
| closely follows the semantics of ECN [RFC3168]. It allows the | field. The baseline PCN encoding closely follows the semantics of | |||
| encoding of two PCN states: Not Marked and PCN-Marked. It also | ECN [RFC3168]. It allows the encoding of two PCN states: Not Marked | |||
| allows for traffic that is not PCN capable to be marked as such (not- | and PCN-Marked. It also allows for traffic that is not PCN capable | |||
| PCN). The following table defines how to encode these states in IP: | to be marked as such (not-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 PCN-enabled DiffServ Codepoint. | |||
| indicates PCN is enabled. To conserve DSCPs, DiffServ Codepoints | That is a DiffServ codepoint that indicates that PCN is enabled. | |||
| SHOULD be chosen that are already defined for use with admission | To conserve DSCPs, DiffServ Codepoints SHOULD be chosen that are | |||
| controlled traffic, such as the Voice-Admit codepoint defined in | already defined for use with admission controlled traffic, such as | |||
| [voice-admit]. | the Voice-Admit codepoint defined in [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 belongs to a PCN capable flow MUST have the ECN | o Any packet that belongs to a PCN capable flow MUST have the ECN | |||
| field set to one of the two ECT codepoints 10 or 01 at the PCN- | field set to one of the two ECT codepoints 10 or 01 at the PCN- | |||
| ingress-node. | ingress-node. | |||
| o Any packet that is PCN capable and has been PCN-marked by a PCN- | 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, in particular [RFC3168] and [RFC4774]. Full | by existing IETF RFCs, in particular [RFC3168] and [RFC4774]. Full | |||
| details are contained in [pcn-enc-compare]. One of the tightest | details are contained in [pcn-enc-compare]. One of the tightest | |||
| constraints was the need for any PCN encoding to survive being | constraints was the need for any PCN encoding to survive being | |||
| tunnelled through either an IP in IP tunnel or an IPSec Tunnel. | tunnelled through either an IP in IP tunnel or an IPSec Tunnel. | |||
| Appendix A explains this in detail. The main effect of this | Appendix A explains this in detail. The main effect of this | |||
| constraint was that any PCN marking has to use the ECN field set to | constraint is that any PCN marking has to use the ECN field set to 11 | |||
| 11 (CE codepoint). If the packet is being tunneled then only the CE | (CE codepoint). If the packet is being tunneled then only the CE | |||
| codepoint gets copied into the inner header upon decapsulation. An | codepoint gets copied into the inner header upon decapsulation. An | |||
| additional constraint was the need to minimise the use of DiffServ | additional constraint is the need to minimise the use of DiffServ | |||
| codepoints as these are in increasingly short supply. Section 4.2 | codepoints as these are in increasingly short supply. Section 4.2 | |||
| 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. | distinguished from PCN traffic. | |||
| The encoding scheme (Table 1) that best addresses the above | The encoding scheme (Table 1) that best addresses the above | |||
| constraints ends up looking very similar to ECN. This is perhaps not | constraints ends up looking very similar to ECN. This is perhaps not | |||
| surprising given the similarity in architectural intent between PCN | surprising given the similarity in architectural intent between PCN | |||
| and ECN. | 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 indicate 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 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 | 4.2.1. Implications of re-using a DiffServ Codepoint | |||
| [RFC4774] requires that packets for which alternate ECN semantics | [RFC4774] requires that packets for which alternate ECN semantics | |||
| (PCN semantics) are used are clearly distinguished from packets to | (PCN semantics) are used are clearly distinguished from packets to | |||
| which the semantics according to [RFC3168] apply. This is done by | which the default ECN semantics [RFC3168] apply. One means of doing | |||
| using a DSCP to indicate that the ECN field is to be interpreted in | this is using a DSCP to indicate that the ECN field is to be | |||
| the PCN context instead of the ECN context by PCN-enabled nodes. | interpreted in a different manner. We have chosen to use this | |||
| Non-PCN-enabled forwarding nodes outside or inside the PCN domain | approach for PCN. Non-PCN-enabled forwarding nodes treat packets | |||
| treat packets with a PCN-enabled DSCP like ECN traffic if appropriate | with a PCN-enabled DSCP like ECN traffic if appropriate ECN | |||
| ECN codepoints are set in the IP header. This has several | codepoints are set in the IP header. This has several consequences. | |||
| consequences. | ||||
| o Care must be taken that the PCN encoding of packets is not falsely | o Care must be taken to ensure that forwarding nodes do not | |||
| interpreted by forwarding nodes as ECN encoding, and that no harm | interpret PCN encodings as ECN encodings, and that no harm is done | |||
| is done if this were to happen. To that end, appropriate marking | if this were to happen. To that end, appropriate marking and re- | |||
| and re-marking is performed at the ingress and the egress of a PCN | marking is performed at the ingress and the egress of a PCN- | |||
| domain. | domain. | |||
| o The re-used DSCP should be able to serve its original purpose | o The re-used DSCP should be able to serve its original purpose | |||
| which was not PCN support. This is achieved by marking the | which was not PCN support. This is achieved by marking the | |||
| packets of such flows with a not-PCN codepoint. | packets of such flows with a not-PCN codepoint. | |||
| o The scheduling behaviour is coupled with the DSCP only. | o The scheduling behaviour is coupled with the DSCP only. | |||
| Therefore, the same scheduling and buffer management rules are | Therefore, the same scheduling and buffer management rules are | |||
| applied for non-PCN-capable and PCN-capable traffic using the same | applied for non-PCN-capable and PCN-capable traffic using the same | |||
| PCN-enabled DSCP. | PCN-enabled DSCP. | |||
| o Once the ECN field of a packet is used for PCN encoding, it has | o Once the ECN field of a packet is used for PCN encoding, it has | |||
| lost its previous information unless this information was | lost its previous information unless this information is tunnelled | |||
| tunnelled through the PCN domain. Therefore, the baseline PCN | through the PCN domain. Therefore, the baseline PCN encoding | |||
| encoding disables ECN for PCN-enabled DSCPs. [PCN-3-enc-state] | disables ECN for PCN-enabled DSCPs. [PCN-3-enc-state] provides | |||
| provides end-to-end ECN support where this is needed. | 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-boundary-node behaviour compliant with the PCN baseline encoding: | |||
| o Any packets with the ECN field already marked as CE or ECT | o Any packet with the ECN field already marked as CE or ECT arriving | |||
| arriving at a PCN ingress node SHOULD be dropped or alternatively | at a PCN-ingress-node SHOULD be dropped or downgraded to a lower | |||
| MAY be tunnelled through the PCN-domain. They MUST NOT be | class of service. Alternatively it MAY be tunnelled through the | |||
| admitted to the PCN-domain directly. | PCN-domain. It MUST NOT be admitted to the PCN-domain directly. | |||
| o On leaving the PCN-domain the ECN bits MUST be set to 00 (Not | o On leaving the PCN-domain the ECN bits of every PCN-packet MUST be | |||
| ECT). | set to 00 (not-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 of NM marked packets to 11. | bits of NM marked packets to 11. | |||
| o The PM codepoint 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: | |||
| o they use a DSCP to allow routers to distinguish that traffic uses | o they use a DSCP to allow routers to distinguish that traffic uses | |||
| the alternate ECN semantics; | the alternate ECN semantics; | |||
| o these semantics are defined for use within a controlled domain; | o these semantics are defined for use within a controlled domain; | |||
| o ECN marked traffic is blocked from entering the PCN domain | o ECN marked traffic is blocked from entering the PCN-domain | |||
| directly (though it might be tunnelled through the domain). | directly (though it might be tunnelled through the PCN-domain). | |||
| o All traffic leaving the controlled domain is re-marked as not-ECT. | ||||
| 6. IANA Considerations | 6. IANA Considerations | |||
| This document makes no request to IANA. It does however suggest a | This document makes no request to IANA. It does however suggest a | |||
| change to the default ([RFC3168]) behaviour for the ECN field for the | change to the default ([RFC3168]) behaviour for the ECN field for the | |||
| 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 | |||
| skipping to change at page 7, line 47 | skipping to change at page 8, line 6 | |||
| 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-domain 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-domains and use PCN-boundary- | domains would be to concatenate PCN-domains and use PCN-boundary- | |||
| nodes back to back at borders. Then any one domain's security | nodes back to back at borders. Then any one domain's security | |||
| against its neighbours would be described as part of the edge-node | against its neighbours would be described as part of the edge-node | |||
| behaviour document as above. One proposal on the table allows one to | behaviour document as above. One proposal on the table allows one to | |||
| extend PCN across multiple domains without PCN edge nodes back-to- | extend PCN across multiple domains without PCN-boundary-nodes back- | |||
| back at borders [re-PCN]. It is believed that the encoding described | to-back at borders [re-PCN]. It is believed that the encoding | |||
| here would not be incompatible with the security framework described | described here would be compatible with the security framework | |||
| there. | described 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 traffic that is not PCN-capable within the same DSCP so | |||
| scheme is conformant with [RFC4774]. | long as theat traffic doesn't require end-to-end ECN support. The | |||
| encoding 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, Philip Eardley and | group by Kwok Ho Chan, Georgios Karagiannis, Philip Eardley and | |||
| others. Full details of the alternative schemes that were considered | others. Full details of the alternative schemes that were considered | |||
| for adoption can be found in the document [pcn-enc-compare]. Thanks | for adoption can be found in the document [pcn-enc-compare]. Thanks | |||
| to Ruediger Geib for providing comments on this document. | to Ruediger Geib for providing detailed 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 congestion and pre-congestion working group | |||
| <tsvwg@ietf.org>, and/or to the authors. | mailing list <pcn@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, | |||
| skipping to change at page 9, line 41 | skipping to change at page 9, line 49 | |||
| [voice-admit] | [voice-admit] | |||
| Baker, F., Polk, J., and M. Dolly, "DSCPs for Capacity- | Baker, F., Polk, J., and M. Dolly, "DSCPs for Capacity- | |||
| Admitted Traffic", | Admitted Traffic", | |||
| draft-ietf-tsvwg-admitted-realtime-dscp-04 (work in | draft-ietf-tsvwg-admitted-realtime-dscp-04 (work in | |||
| progress), February 2008. | progress), February 2008. | |||
| Appendix A. Tunnelling Constraints | Appendix A. Tunnelling Constraints | |||
| 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 | |||
| to exist. The limited functionality mode sets the outer header to | modes. The limited functionality mode sets the outer header to not- | |||
| Not ECT, regardless of the value of the inner header. The full | ECT, regardless of the value of the inner header, in other words | |||
| functionality mode copies the inner ECN field into the outer header | disabling ECN within the tunnel. The full functionality mode copies | |||
| if the inner header is Not ECT or either of the 2 ECT codepoints. If | the inner ECN field into the outer header if the inner header is not- | |||
| the inner header is CE then the outer header is set to ECT(0). On | ECT or either of the 2 ECT codepoints. If the inner header is CE | |||
| decapsulation, if the CE codepoint is set on the outer header then | then the outer header is set to ECT(0). On decapsulation, if the CE | |||
| this is copied into the inner header. Otherwise the inner header is | codepoint is set on the outer header then this is copied into the | |||
| left unchanged. The apparent reason for blocking CE from being | inner header. Otherwise the inner header is left unchanged. The | |||
| copied to the outer header was to prevent this from being used as a | stated reason for blocking CE from being copied to the outer header | |||
| covert channel through IPSec tunnels. | was to prevent this from being used as a 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. | |||
| On decapsulation the outer header is discarded and the ECN field is | On decapsulation the outer header is discarded and the ECN field is | |||
| only copied down if it is set to CE. Because of the possible | only copied down if it is set to CE. | |||
| 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 | Because of 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. However there is a need for caution with all | ||||
| tunneling within the PCN-domain. RFC3168 full functionality 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-domain that have already been marked may have that | |||
| concealed further into the domain. This is undesirable for many PCN | mark concealed further into the domain. This is undesirable for many | |||
| schemes and thus standard IP in IP tunnels SHOULD NOT be used within | PCN schemes and thus standard IP in IP tunnels SHOULD NOT be used | |||
| a PCN-domain. | within a PCN-domain. Further work is needed within the Transport | |||
| Area to rationalise the behaviour of tunnels in respect to the ECN | ||||
| field. | ||||
| Appendix B. Deployment Scenarios for PCN Using Baseline Encoding | Appendix B. Deployment Scenarios for PCN Using Baseline Encoding | |||
| We illustrate the use of PCN baseline encoding for different PCN | This appendix illustrates possible PCN deployment scenarios where the | |||
| deployment scenarios and explain also a case for which baseline | baseline encoding can be used and also explain a case for which | |||
| encoding is not applicable. {Note this appendix is provided for | baseline encoding is not sufficient. {Note this appendix is provided | |||
| information only} | for information only}. | |||
| 1. An operator may wish to use PCN-based admission control only. To | 1. An operator may wish to use PCN-based admission control only. To | |||
| that end, threshold marking based on admissible rates may be used | that end, threshold marking based on admissible rates might be | |||
| as the only PCN metering and marking algorithm. As a | used as the only PCN metering and marking algorithm. As a | |||
| consequence, the packet marks M are interpreted as admission-stop | consequence, the PM marks on the packets are interpreted as | |||
| (AS) marks. The admission-control algorithm is based on | admission-stop (AS) marks. The admission-control algorithm is | |||
| "admissible-rate overload". | based on "admissible-rate overload". | |||
| 2. An operator may wish to use PCN-based flow termination only. To | 2. An operator may wish to use PCN-based flow termination only. To | |||
| that end, excess rate marking based on supportable rates may be | that end, excess rate marking based on supportable rates might be | |||
| used as the only PCN metering and marking algorithm. As a | used as the only PCN metering and marking algorithm. As a | |||
| consequence, the packet marks M are interpreted as excess-traffic | consequence, the PM marks on the packets are interpreted as | |||
| (ET) marks. The flow termination algorithm is based on | excess-traffic (ET) marks. The flow termination algorithm is | |||
| "supportable-rate overload". | based on "supportable-rate overload". | |||
| 3. An operator may wish to use both PCN-based admission control and | 3. An operator may wish to use both PCN-based admission control and | |||
| flow termination. To that end, excess rate marking based on | flow termination. To that end, excess rate marking based on | |||
| admissible rates may be used as the only PCN metering and marking | admissible rates may be used as the only PCN metering and marking | |||
| algorithm. As a consequence, the packet marks are interpreted as | algorithm. As a consequence, the PM marks on the packets are | |||
| admission-stop (AS) marks. Both the admission control and the | interpreted as admission-stop (AS) marks. Both the admission | |||
| flow termination algorithm are based on "admissible-rate | control and the flow termination algorithm are based on | |||
| overload". | "admissible-rate overload". | |||
| 4. An operator may wish to implement admission control based on | 4. An operator may wish to implement admission control based on | |||
| threshold marking at admissible rates and flow termination based | threshold marking at admissible rates and flow termination based | |||
| on excess rate marking at supportable rates because these methods | on excess rate marking at supportable rates because these methods | |||
| are believed to work better with small ingress-egress aggregates. | are believed to work better with small ingress-egress aggregates. | |||
| Then two different markings are needed that cannot be recorded by | Then two different markings are needed. Such a deployment | |||
| the PCN baseline encoding. | scenario is not supported 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. 48 change blocks. | ||||
| 111 lines changed or deleted | 122 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/ | ||||