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/ |