One document matched: draft-ietf-pcn-3-in-1-encoding-08.xml
<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc strict="yes"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY draft-ietf-pcn-cl-edge-behaviour SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-pcn-cl-edge-behaviour.xml">
<!ENTITY draft-ietf-pcn-sm-edge-behaviour SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-pcn-sm-edge-behaviour.xml">
<!ENTITY draft-ietf-pcn-encoding-comparison SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-pcn-encoding-comparison.xml">
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2474 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2474.xml">
<!ENTITY RFC3168 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3168.xml">
<!ENTITY RFC4301 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4301.xml">
<!ENTITY RFC5670 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5670.xml">
<!ENTITY RFC5696 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5696.xml">
<!ENTITY RFC5559 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5559.xml">
<!ENTITY RFC5129 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5129.xml">
]>
<?rfc rfcedstyle="yes"?>
<rfc category="std" docName="draft-ietf-pcn-3-in-1-encoding-08"
ipr="trust200902" obsoletes="5696">
<front>
<title abbrev="3-in-1 PCN Encoding">Encoding 3 PCN-States in the IP header
using a single DSCP</title>
<author fullname="Bob Briscoe" initials="B." surname="Briscoe">
<organization>BT</organization>
<address>
<postal>
<street>B54/77, Adastral Park</street>
<street>Martlesham Heath</street>
<city>Ipswich</city>
<code>IP5 3RE</code>
<country>UK</country>
</postal>
<phone>+44 1473 645196</phone>
<email>bob.briscoe@bt.com</email>
<uri>http://bobbriscoe.net/</uri>
</address>
</author>
<author fullname="Toby Moncaster" initials="T." surname="Moncaster">
<organization>Moncaster Internet Consulting</organization>
<address>
<postal>
<street>Dukes</street>
<street>Layer Marney</street>
<city>Colchester</city>
<code>CO5 9UZ</code>
<country>UK</country>
</postal>
<phone>+44 7764 185416</phone>
<email>toby@moncaster.com</email>
<uri>http://www.moncaster.com/</uri>
</address>
</author>
<author fullname="Michael Menth" initials="M." surname="Menth">
<organization>University of Tuebingen</organization>
<address>
<postal>
<street>Sand 13</street>
<code>72076</code>
<city>Tuebingen</city>
<country>Germany</country>
</postal>
<phone>+49 7071 2970505</phone>
<email>menth@informatik.uni-tuebingen.de</email>
</address>
</author>
<date day="18" month="August" year="2011" />
<area>Transport</area>
<workgroup>Congestion and Pre-Congestion Notification</workgroup>
<keyword>Quality of Service</keyword>
<keyword>QoS</keyword>
<keyword>Congestion Control</keyword>
<keyword>Congestion Notification</keyword>
<keyword>Tunnelling</keyword>
<keyword>Encapsulation & Decapsulation</keyword>
<keyword>Differentiated Services</keyword>
<keyword>Integrated Services</keyword>
<keyword>Signalling</keyword>
<keyword>Protocol</keyword>
<keyword>Flow Admission Control</keyword>
<keyword>Flow Termination</keyword>
<abstract>
<t>The objective of Pre-Congestion Notification (PCN) is to protect the
quality of service (QoS) of inelastic flows within a Diffserv domain.
The overall rate of the PCN-traffic is metered on every link in the PCN
domain, and PCN-packets are appropriately marked when certain configured
rates are exceeded. Egress nodes pass information about these PCN-marks
to decision points which then decide whether to admit or block new flow
requests or to terminate some already-admitted flows during serious
pre-congestion.</t>
<t>This document specifies how PCN-marks are to be encoded into the IP
header by re-using the Explicit Congestion Notification (ECN) codepoints
within a PCN-domain. This encoding provides for up to three different
PCN marking states using a single DSCP: not-marked (NM),
threshold-marked (ThM) and excess-traffic-marked (ETM). Hence, it is
called the 3-in-1 PCN encoding. This document obsoletes RFC5696.</t>
</abstract>
</front>
<middle>
<section anchor="pcn3in1_Introduction" title="Introduction">
<t>The objective of Pre-Congestion Notification (PCN) <xref
target="RFC5559"></xref> is to protect the quality of service (QoS) of
inelastic flows within a Diffserv domain, in a simple, scalable, and
robust fashion. Two mechanisms are used: admission control, to decide
whether to admit or block a new flow request, and flow termination to
terminate some existing flows during serious pre-congestion. To achieve
this, the overall rate of PCN-traffic is metered on every link in the
domain, and PCN-packets are appropriately marked when certain configured
rates are exceeded. These configured rates are below the rate of the
link thus providing notification to boundary nodes about overloads
before any real congestion occurs (hence "pre-congestion
notification").</t>
<t><xref target="RFC5670"></xref> provides for two metering and marking
functions that are generally configured with different reference rates.
Threshold-marking marks all PCN packets once their traffic rate on a
link exceeds the configured reference rate (PCN-threshold-rate).
Excess-traffic-marking marks only those PCN packets that exceed the
configured reference rate (PCN-excess-rate). The PCN-excess-rate is
typically larger than the PCN-threshold-rate <xref
target="RFC5559"></xref>. Egress nodes monitor the PCN-marks of received
PCN-packets and pass information about these PCN-marks to decision
points which then decide whether to admit new flows or terminate
existing flows <xref target="I-D.ietf-pcn-cl-edge-behaviour"></xref>,
<xref target="I-D.ietf-pcn-sm-edge-behaviour"></xref>.</t>
<t>The encoding defined in <xref target="RFC5696"></xref> described how
two PCN marking states (Not-marked and PCN-Marked) could be encoded into
the IP header using a single Diffserv codepoint. It defined 01 as an
experimental codepoint (EXP), along with guidelines for its use. Two PCN
marking states are sufficient for the Single Marking edge behaviour
<xref target="I-D.ietf-pcn-sm-edge-behaviour"></xref>. However,
PCN-domains utilising the controlled load edge behaviour <xref
target="I-D.ietf-pcn-cl-edge-behaviour"></xref> require three PCN
marking states. This document extends the RFC5696 encoding by redefining
the experimental codepoint as a third PCN marking state in the IP
header, still using a single Diffserv codepoint. This encoding scheme is
therefore called the "3-in-1 PCN encoding". It obsoletes the <xref
target="RFC5696"></xref> encoding, which provides only a sub-set of the
same capabilities.</t>
<t>The full version of this encoding requires any tunnel endpoint within
the PCN-domain to support the normal tunnelling rules defined in <xref
target="RFC6040"></xref>. There is one limited exception to this
constraint where the PCN-domain only uses the excess-traffic-marking
behaviour and where the threshold-marking behaviour is deactivated. This
is discussed in <xref target="pcn3in1_interior_ETM_only"></xref>.</t>
<t>This document only concerns the PCN wire protocol encoding for IP
headers, whether IPv4 or IPv6. It makes no changes or recommendations
concerning algorithms for congestion marking or congestion response.
Other documents will define the PCN wire protocol for other header
types. <xref target="pcn3in1_app_map_IP_MPLS"></xref> discusses a
possible mapping between IP and MPLS.</t>
<section anchor="pcn3in1_Reqs_Lang" title="Requirements Language">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in <xref
target="RFC2119"></xref>.</t>
</section>
<section anchor="pcn3in1_Changes"
title="Changes in This Version (to be removed by RFC Editor)">
<t><list style="hanging">
<t
hangText="From draft-ietf-pcn-3-in-1-encoding-07 to -08:">Editorial
corrections and clarifications.</t>
<t hangText="From draft-ietf-pcn-3-in-1-encoding-06 to -07:"><list
style="symbols">
<t>Clarified that each operator not the IETF chooses which
DSCP(s) are PCN-compatible, and made it unambiguous that only
PCN-nodes recognise that PCN-compatible DSCPs enable the
3-in-1 encoding.</t>
<t>Removed statements about the PCN working group, given RFCs
are meant to survive beyond the life of a w-g.</t>
<t>Corrected the final para of "Rationale for Different
Behaviours in Schemes with Only One Marking"</t>
</list></t>
<t hangText="From draft-ietf-pcn-3-in-1-encoding-05 to -06:"><list
style="symbols">
<t>Draft re-written to obsolete baseline encoding <xref
target="RFC5696"></xref>.</t>
<t>New section defining utilising this encoding for only one
PCN-Marking. Added an appendix explaining an apparent
inconsistency within this section.</t>
<t>Moved (and updated) informative appendixes from <xref
target="RFC5696"></xref> to this document. Original Appendix C
was omitted as it is now redundant.</t>
<t>Significant re-structuring of document.</t>
</list></t>
<t hangText="From draft-ietf-pcn-3-in-1-encoding-04 to -05:"><list
style="symbols">
<t>Draft moved to standards track as per working group
discussions.</t>
<t>Added <xref target="pcn3in1_app_ecn_coexist"></xref>
discussing ECN handling in the PCN-domain.</t>
<t>Clarified that this document modifies <xref
target="RFC5696"></xref>.</t>
</list></t>
<t hangText="From draft-ietf-pcn-3-in-1-encoding-03 to -04:"><list
style="symbols">
<t>Updated document to reflect RFC6040.</t>
<t>Re-wrote introduction.</t>
<t>Re-wrote section on applicability.</t>
<t>Re-wrote section on choosing encoding scheme.</t>
<t>Updated author details.</t>
</list></t>
<t hangText="From draft-ietf-pcn-3-in-1-encoding-02 to -03:"><list
style="symbols">
<t>Corrected mistakes in introduction and improved overall
readability.</t>
<t>Added new terminology.</t>
<t>Rewrote a good part of Section 4 and 5 to achieve more
clarity.</t>
<t>Added appendix explaining when to use which encoding scheme
and how to encode them in MPLS shim headers.</t>
<t>Added new co-author.</t>
</list></t>
<t hangText="From draft-ietf-pcn-3-in-1-encoding-01 to -02:"><list
style="symbols">
<t>Corrected mistake in introduction, which wrongly stated
that the threshold-traffic rate is higher than the
excess-traffic rate. Other minor corrections.</t>
<t>Updated acks & refs.</t>
</list></t>
<t hangText="From draft-ietf-pcn-3-in-1-encoding-00 to -01:"><list
style="symbols">
<t>Altered the wording to make sense if
draft-ietf-tsvwg-ecn-tunnel moves to proposed standard.</t>
<t>References updated</t>
</list></t>
<t
hangText="From draft-briscoe-pcn-3-in-1-encoding-00 to draft-ietf-pcn-3-in-1-encoding-00:"><list
style="symbols">
<t>Filename changed to draft-ietf-pcn-3-in-1-encoding.</t>
<t>Introduction altered to include new template description of
PCN.</t>
<t>References updated.</t>
<t>Terminology brought into line with <xref
target="RFC5670"></xref>.</t>
<t>Minor corrections.</t>
</list></t>
</list></t>
</section>
</section>
<section anchor="pcn3in1_defs_reqs_abbrev"
title="Definitions and Abbreviations">
<section anchor="pcn3in1_Terminology" title="Terminology">
<t>The terms PCN-domain, PCN-node, PCN-interior-node,
PCN-ingress-node, PCN-egress-node, PCN-boundary-node, PCN-traffic,
PCN-packets and PCN-marking are used as defined in <xref
target="RFC5559"></xref>. The following additional terms are defined
in this document: <list style="hanging">
<t hangText="PCN encoding:">mapping of PCN marking states to
specific codepoints in the packet header.</t>
<t hangText="PCN-compatible Diffserv codepoint:">a Diffserv
codepoint indicating packets for which the ECN field carries
PCN-markings rather than <xref target="RFC3168"></xref> markings.
Note that an operator configures PCN-nodes to recognise
PCN-compatible DSCPs, whereas the same DSCP has no PCN-specific
meaning to a node outside the PCN domain.</t>
<t hangText="Threshold-marked codepoint:">a codepoint that
indicates a packet has been threshold-marked; that is a packet
that has been marked at a PCN-interior-node as a result of an
indication from the threshold-metering function <xref
target="RFC5670"></xref>. Abbreviated to ThM.</t>
<t hangText="Excess-traffic-marked codepoint:">a codepoint that
indicates packets that have been marked at a PCN-interior-node as
a result of an indication from the excess-traffic-metering
function <xref target="RFC5670"></xref>. Abbreviated to ETM.</t>
<t hangText="Not-marked codepoint:">a codepoint that indicates
PCN-packets that are not PCN-marked. Abbreviated to NM.</t>
<t hangText="not-PCN codepoint:">a codepoint that indicates
packets that are not PCN-packets.</t>
</list></t>
</section>
<section anchor="pcn_enc_abbreviations" title="List of Abbreviations">
<t>The following abbreviations are used in this document: <list
style="symbols">
<t>AF = Assured Forwarding <xref target="RFC2597"></xref></t>
<t>CE = Congestion Experienced <xref target="RFC3168"></xref></t>
<t>CS = Class Selector <xref target="RFC2474"></xref></t>
<t>DSCP = Diffserv codepoint</t>
<t>ECN = Explicit Congestion Notification <xref
target="RFC3168"></xref></t>
<t>ECT = ECN Capable Transport <xref target="RFC3168"></xref></t>
<t>EF = Expedited Forwarding <xref target="RFC3246"></xref></t>
<t>ETM = Excess-traffic-marked</t>
<t>EXP = Experimental</t>
<t>IP = Internet protocol</t>
<t>NM = Not-marked</t>
<t>PCN = Pre-Congestion Notification</t>
<t>ThM = Threshold-marked</t>
</list></t>
</section>
</section>
<section anchor="pcn3in1_Encoding"
title="Definition of 3-in-1 PCN Encoding">
<t>The 3-in-1 PCN encoding scheme allows for two or three PCN-marking
states to be encoded within the IP header. The full encoding is shown in
<xref target="pcn3in1_Fig_Encoding"></xref>.</t>
<figure anchor="pcn3in1_Fig_Encoding" title="3-in-1 PCN Encoding">
<artwork><![CDATA[
+--------+----------------------------------------------------+
| | Codepoint in ECN field of IP header |
| DSCP | <RFC3168 codepoint name> |
| +--------------+-------------+-------------+---------+
| | 00 <Not-ECT> | 10 <ECT(0)> | 01 <ECT(1)> | 11 <CE> |
+--------+--------------+-------------+-------------+---------+
| DSCP n | Not-PCN | NM | ThM | ETM |
+--------+--------------+-------------+-------------+---------+
]]></artwork>
</figure>
<t>A PCN-node (i.e. a node within a PCN-domain) will be configured to
recognise certain DSCPs as PCN-compatible. <xref
target="pcn3in1_app_DSCP_choice"></xref> discusses the choice of
suitable DSCPs. In <xref target="pcn3in1_Fig_Encoding"></xref> 'DSCP n'
indicates such a PCN-compatible DSCP. Within the PCN-domain, any packet
carrying a PCN-compatible DSCP and with the ECN-field anything other
than 00 (Not-PCN) is a PCN-packet as defined in <xref
target="RFC5559"></xref>.</t>
<t>PCN-nodes MUST interpret the ECN field of a PCN-packet using the
3-in-1 PCN encoding, rather than <xref target="RFC3168"></xref>. This
does not change the behaviour for any packet with a DSCP that is not
PCN-compatible, or for any node outside a PCN-domain. In all such cases
the 3-in-1 encoding is not applicable and so by default the node will
interpret the ECN field using <xref target="RFC3168"></xref>.</t>
<t>When using the 3-in-1 encoding, the codepoints of the ECN field have
the following meanings:<list style="hanging">
<t hangText="Not-PCN:">indicates a non-PCN-packet, i.e., a packet
that uses a PCN-compatible DSCP but is not subject to PCN metering
and marking.</t>
<t hangText="NM:">Not-marked. Indicates a PCN-packet that has not
yet been marked by any PCN marker.</t>
<t hangText="ThM:">Threshold-marked. Indicates a PCN-packet that has
been marked by a threshold-marker <xref
target="RFC5670"></xref>.</t>
<t hangText="ETM:">Excess-traffic-marked. Indicates a PCN-packet
that has been marked by an excess-traffic-marker <xref
target="RFC5670"></xref>.</t>
</list></t>
</section>
<section anchor="pcn3in1_Requirement_head"
title="Requirements for and Applicability of 3-in-1 PCN Encoding">
<section anchor="pcn3in1_Requirement" title="PCN Requirements">
<t>In accordance with the PCN architecture <xref
target="RFC5559"></xref>, PCN-ingress-nodes control packets entering a
PCN-domain. Packets belonging to PCN-controlled flows are subject to
PCN-metering and -marking, and PCN-ingress-nodes mark them as
Not-marked (PCN-colouring). Any node in the PCN-domain may perform
PCN-metering and -marking and mark PCN-packets if needed. There are
two different metering and marking behaviours: threshold-marking and
excess-traffic-marking <xref target="RFC5670"></xref>. Some edge
behaviors require only a single marking behaviour <xref
target="I-D.ietf-pcn-sm-edge-behaviour"></xref>, others require both
<xref target="I-D.ietf-pcn-cl-edge-behaviour"></xref>. In the latter
case, three PCN marking states are needed: not-marked (NM) to indicate
not-marked packets, threshold-marked (ThM) to indicate packets marked
by the threshold-marker, and excess-traffic-marked (ETM) to indicate
packets marked by the excess-traffic-marker <xref
target="RFC5670"></xref>. Threshold-marking and excess-traffic-marking
are configured to start marking packets at different load conditions,
so one marking behaviour indicates more severe pre-congestion than the
other. Therefore, a fourth PCN marking state indicating that a packet
is marked by both markers is not needed. However a fourth codepoint is
required to indicate packets that use a PCN-compatible DSCP but do not
use PCN-marking (the not-PCN codepoint).</t>
<t>In all current PCN edge behaviors that use two marking behaviours
<xref target="RFC5559"></xref>, <xref
target="I-D.ietf-pcn-cl-edge-behaviour"></xref>,
excess-traffic-marking is configured with a larger reference rate than
threshold-marking. We take this as a rule and define
excess-traffic-marked as a more severe PCN-mark than
threshold-marked.</t>
</section>
<section anchor="pcn3in1_Requirements_Tunnelling"
title="Requirements Imposed by Tunnelling">
<t><xref target="RFC6040"></xref> defines rules for the encapsulation
and decapsulation of ECN markings within IP-in-IP tunnels. The
publication of RFC6040 removed the tunnelling constraints that existed
when the encoding of <xref target="RFC5696"></xref> was written (see
section 3.3.2 of <xref
target="I-D.ietf-pcn-encoding-comparison"></xref>).</t>
<t>Nonetheless, there is still a problem if there are any legacy
(pre-RFC6040) decapsulating tunnel endpoints within a PCN domain. If a
PCN node Threshold-marks the outer header of a tunnelled packet that
has a Not-marked codepoint on the inner header, a legacy decapsulator
will forward the packet as Not-marked, losing the threshold marking.
The rules on applicability in <xref
target="pcn3in1_Requirements_Applicability"></xref> below are designed
to avoid this problem.</t>
</section>
<section anchor="pcn3in1_Requirements_Applicability"
title="Applicability of 3-in-1 PCN Encoding">
<t>The 3-in-1 encoding is applicable in situations where two marking
behaviours are being used in the PCN-domain. The 3-in-1 encoding can
also be used with only one marking behaviour, in which case one of the
codepoints MUST NOT be used throughout the PCN-domain (see <xref
target="pcn3in1_interior_one_mark_behaviour"></xref>).</t>
<t>With one exception (see next paragraph), any tunnel endpoints
(IP-in-IP and IPsec) within the PCN-domain MUST comply with the ECN
encapsulation and decapsulation rules set out in <xref
target="RFC6040"></xref> (see <xref
target="pcn3in1_Requirements_Tunnelling"></xref>).</t>
<t>It may not be possible to upgrade every pre-RFC6040 tunnel endpoint
within a PCN-domain. In such circumstances a limited version of the
3-in-1 encoding can still be used but only under the following
stringent condition. If any pre-RFC6040 tunnel endpoint exists within
a PCN-domain then every PCN-node in the PCN-domain MUST be configured
so that it never sets the ThM codepoint. PCN-interior nodes in this
case MUST solely use the Excess Traffic marking function, as defined
in <xref target="pcn3in1_interior_ETM_only"></xref>. In all other
situations where legacy tunnel endpoints might be present within the
PCN domain, the 3-in-1 encoding is not applicable.</t>
</section>
</section>
<section anchor="pcn3in1_Compliant_Node_Behaviour"
title="Behaviour of a PCN-node to Comply with the 3-in-1 PCN Encoding">
<t>Any tunnel endpoint implementation on a PCN-node MUST comply with
<xref target="RFC6040"></xref>. Since PCN is a new capability, this is
considered a reasonable requirement.</t>
<section anchor="pcn3in1_common_ingress_behaviour"
title="PCN-ingress Node Behaviour">
<t>PCN-traffic MUST be marked with a PCN-compatible Diffserv
codepoint. To conserve DSCPs, Diffserv codepoints SHOULD be chosen
that are already defined for use with admission-controlled traffic.
<xref target="pcn3in1_app_DSCP_choice"></xref> gives guidance to
implementors on suitable DSCPs. Guidelines for mixing traffic types
within a PCN-domain are given in <xref target="RFC5670"></xref>.</t>
<t>If a packet arrives at the PCN-ingress-node that shares a
PCN-compatible DSCP and is not a PCN-packet, the PCN-ingress-node MUST
mark it as not-PCN.</t>
<t>If a PCN-packet arrives at the PCN-ingress-node, the
PCN-ingress-node MUST change the PCN codepoint to Not-marked.</t>
<t>If a PCN-packet arrives at the PCN-ingress-node with its ECN field
already set to a value other than not-ECT, then appropriate action
MUST be taken to meet the requirements of <xref
target="RFC4774"></xref>. The simplest appropriate action is to just
drop such packets. However, this is a drastic action that an operator
may feel is undesirable. <xref
target="pcn3in1_app_ecn_coexist"></xref> provides more information and
summarises other alternative actions that might be taken.</t>
</section>
<section anchor="pcn3in1_interior_behaviour"
title="PCN-interior Node Behaviour">
<section anchor="pcn3in1_common_interior_behaviour"
title="Behaviour Common to all PCN-interior Nodes">
<t>Interior nodes MUST NOT change not-PCN to any other
codepoint.</t>
<t>Interior nodes MUST NOT change NM to not-PCN.</t>
<t>Interior nodes MUST NOT change ThM to NM or not-PCN.</t>
<t>Interior nodes MUST NOT change ETM to any other codepoint.</t>
</section>
<section anchor="pcn3in1_two_mark_behaviour"
title="Behaviour of PCN-interior Nodes Using Two PCN-markings">
<t>If the threshold-meter function indicates a need to mark a
packet, the PCN-interior node MUST change NM to ThM.</t>
<t>If the excess-traffic-meter function indicates a need to mark a
packet:<list style="symbols">
<t>the PCN-interior node MUST change NM to ETM;</t>
<t>the PCN-interior node MUST change ThM to ETM.</t>
</list></t>
<t>If both the threshold meter and the excess-traffic meter indicate
the need to mark a packet, the Excess-traffic-marking rules MUST
take precedence.</t>
</section>
<section anchor="pcn3in1_interior_one_mark_behaviour"
title="Behaviour of PCN-interior Nodes Using One PCN-marking">
<t>Some PCN edge behaviours require only one PCN-marking within the
PCN-domain. The Single Marking edge behaviour <xref
target="I-D.ietf-pcn-sm-edge-behaviour"></xref> requires
PCN-interior nodes to mark packets using the excess-traffic-meter
function <xref target="RFC5670"></xref>. It is possible that future
schemes may require only the threshold-meter function. <xref
target="pcn3in1_app_rationale_diff_sm"></xref> explains the
rationale for the behaviours defined in this section.</t>
<section anchor="pcn3in1_interior_ETM_only"
title="Marking Using only the Excess-traffic-meter Function">
<t>The threshold-traffic-meter function SHOULD be disabled and
MUST NOT trigger any packet marking.</t>
<t>The PCN-interior node SHOULD raise a management alarm if it
receives a ThM packet, but the frequency of such alarms SHOULD be
limited.</t>
<t>If the excess-traffic-meter function indicates a need to mark
the packet:<list style="symbols">
<t>the PCN-interior node MUST change NM to ETM;</t>
<t>the PCN-interior node MUST change ThM to ETM. It SHOULD
also raise an alarm as above.</t>
</list></t>
</section>
<section anchor="pcn3in1_interior_ThM_only"
title="Marking using only the Threshold-meter Function">
<t>The excess-traffic-meter function SHOULD be disabled and MUST
NOT trigger any packet marking.</t>
<t>The PCN-interior node SHOULD raise a management alarm if it
receives an ETM packet, but the frequency of such alarms SHOULD be
limited.</t>
<t>If the threshold-meter function indicates a need to mark the
packet:<list style="symbols">
<t>the PCN-interior node MUST change NM to ThM;</t>
<t>the PCN-interior node MUST NOT change ETM to any other
codepoint. It SHOULD raise an alarm as above if it encounters
an ETM packet.</t>
</list></t>
</section>
</section>
</section>
<section anchor="pcn3in1_egress_behaviour"
title="PCN-egress Node Behaviour">
<t>A PCN-egress-node SHOULD set the not-PCN (00) codepoint on all
packets it forwards out of the PCN-domain.</t>
<t>The only exception to this is if the PCN-egress-node is certain
that revealing other codepoints outside the PCN-domain won't
contravene the guidance given in <xref target="RFC4774"></xref>. For
instance, if the PCN-ingress-node has explicitly informed the
PCN-egress-node that this flow is ECN-capable, then it might be safe
to expose other codepoints. <xref
target="pcn3in1_app_ecn_coexist"></xref> gives details of how such
schemes might work, but such schemes are currently only tentative
ideas.</t>
<t>If the PCN-domain is configured to use only excess-traffic marking,
the PCN-egress node MUST treat ThM as ETM and, if only
threshold-marking is used, it SHOULD treat ETM as ThM. However it
SHOULD raise a management alarm in either instance since this means
there is some misconfiguration in the PCN-domain.</t>
</section>
</section>
<section anchor="pcn3in1_Backward_Compatibility"
title="Backward Compatibility">
<section title="Backward Compatibility with ECN">
<t>BCP 124 <xref target="RFC4774"></xref> gives guidelines for
specifying alternative semantics for the ECN field. It sets out a
number of factors to be taken into consideration. It also suggests
various techniques to allow the co-existence of default ECN and
alternative ECN semantics. The encoding specified in this document
uses one of those techniques; it defines PCN-compatible Diffserv
codepoints as no longer supporting the default ECN semantics within a
PCN domain. As such, this document is compatible with BCP 124.</t>
<t>On its own, the 3-in-1 encoding cannot support both ECN marking
end-to-end (e2e) and PCN-marking within a PCN-domain. <xref
target="pcn3in1_app_ecn_coexist"></xref> discusses possible ways to do
this, e.g. by carrying e2e ECN across a PCN-domain within the inner
header of an IP-in-IP tunnel. Although <xref
target="pcn3in1_app_ecn_coexist"></xref> recommends various approaches
over others, it is merely informative and all such schemes are beyond
the normative scope of this document.</t>
<t>In any PCN deployment, traffic can only enter the PCN-domain
through PCN-ingress-nodes and leave through PCN-egress-nodes.
PCN-ingress-nodes ensure that any packets entering the PCN-domain have
the ECN field in their outermost IP header set to the appropriate
codepoint. PCN-egress-nodes then guarantee that the ECN field of any
packet leaving the PCN-domain has appropriate ECN semantics. This
prevents unintended leakage of ECN marks into or out of the
PCN-domain, and thus reduces backward-compatibility issues.</t>
</section>
<section title="Backward Compatibility with the RFC5696 Encoding">
<t>A PCN node implemented to use the obsoleted RFC5696 encoding could
conceivably have been configured so that the Threshold-meter function
marked what is now defined as the ETM codepoint in the 3-in-1
encoding. However, there is no known deployment of such an
implementation and no reason to believe that such an implementation
would ever have been built. Therefore, it seems safe to ignore this
issue.</t>
</section>
</section>
<section anchor="pcn3in1_IANA" title="IANA Considerations">
<t>This memo includes no request to IANA.</t>
<t>Note to RFC Editor: this section may be removed on publication as an
RFC.</t>
</section>
<section anchor="pcn3in1_Sec_Consider" title="Security Considerations">
<t>PCN-marking only carries a meaning within the confines of a
PCN-domain. This encoding document is intended to stand independently of
the architecture used to determine how specific packets are authorised
to be PCN-marked, which will be described in separate documents on
PCN-boundary-node behaviour.</t>
<t>This document assumes the PCN-domain to be entirely under the control
of a single operator, or a set of operators who trust each other.
However, future extensions to PCN might include inter-domain versions
where trust cannot be assumed between domains. If such schemes are
proposed, they must ensure that they can operate securely despite the
lack of trust. However, such considerations are beyond the scope of this
document.</t>
<t>One potential security concern is the injection of spurious PCN-marks
into the PCN-domain. However, these can only enter the domain if a
PCN-ingress-node is misconfigured. The precise impact of any such
misconfiguration will depend on which of the proposed PCN-boundary-node
behaviours is used, but in general spurious marks will lead to admitting
fewer flows into the domain or potentially terminating too many flows.
In either case, good management should be able to quickly spot the
problem since the overall utilisation of the domain will rapidly
fall.</t>
</section>
<section anchor="pcn3in1_Conclusions" title="Conclusions">
<t>The 3-in-1 PCN encoding uses a PCN-compatible DSCP and the ECN field
to encode PCN-marks. One codepoint allows non-PCN traffic to be carried
with the same PCN-compatible DSCP and three other codepoints support
three PCN marking states with different levels of severity. In general,
the use of this PCN encoding scheme presupposes that any tunnel
endpoints within the PCN-domain comply with <xref
target="RFC6040"></xref>.</t>
</section>
<section anchor="pcn3in1_Acknowledgements" title="Acknowledgements">
<t>Many thanks to Phil Eardley for providing extensive feedback,
criticism and advice. Thanks also to Teco Boot, Kwok Ho Chan, Ruediger
Geib, Georgios Karaginannis and everyone else who has commented on the
document.</t>
</section>
<section anchor="pcn3in1_Comments_Solicited" title="Comments Solicited">
<t>To be removed by RFC Editor: Comments and questions are encouraged
and very welcome. They can be addressed to the IETF Congestion and
Pre-Congestion working group mailing list <pcn@ietf.org>, and/or
to the authors.</t>
</section>
</middle>
<back>
<references title="Normative References">
<?rfc include="reference.RFC.2119" ?>
<?rfc include="reference.RFC.2474" ?>
<?rfc include="reference.RFC.3168" ?>
<?rfc include="reference.RFC.5559" ?>
<?rfc include="reference.RFC.5670" ?>
<?rfc include="reference.RFC.6040" ?>
</references>
<references title="Informative References">
<?rfc include="reference.RFC.2597" ?>
<?rfc include="reference.RFC.3246" ?>
<?rfc include="reference.RFC.3540" ?>
<?rfc include="reference.RFC.4594" ?>
<?rfc include="reference.RFC.4774" ?>
<?rfc include="reference.RFC.5127" ?>
<?rfc include="reference.RFC.5129" ?>
<?rfc include="reference.RFC.5462" ?>
<?rfc include="reference.RFC.5696" ?>
<?rfc include="reference.RFC.5865" ?>
&draft-ietf-pcn-cl-edge-behaviour;
&draft-ietf-pcn-sm-edge-behaviour;
&draft-ietf-pcn-encoding-comparison;
</references>
<section anchor="pcn3in1_app_DSCP_choice" title="Choice of Suitable DSCPs">
<t>This appendix is informative, not normative.</t>
<t>A single DSCP has not been defined for use with PCN for several
reasons. Firstly, the PCN mechanism is applicable to a variety of
different traffic classes. Secondly, Standards Track DSCPs are in
increasingly short supply. Thirdly, PCN is not a scheduling behaviour --
rather, it should be seen as being a marking behaviour similar to ECN
but intended for inelastic traffic. The choice of which DSCP is most
suitable for a given PCN-domain is dependent on the nature of the
traffic entering that domain and the link rates of all the links making
up that domain. In PCN-domains with sufficient aggregation, the
appropriate DSCPs would currently be those for the Real-Time Treatment
Aggregate <xref target="RFC5127"></xref>. It is suggested that admission
control could be used for the following service classes (defined in
<xref target="RFC4594"></xref> unless otherwise stated): <list
style="symbols">
<t>Telephony (EF)</t>
<t>Real-time interactive (CS4)</t>
<t>Broadcast Video (CS3)</t>
<t>Multimedia Conferencing (AF4)</t>
<t>the VOICE-ADMIT codepoint defined in <xref
target="RFC5865"></xref>.</t>
</list>CS5 is excluded from this list since PCN is not expected to be
applied to signalling traffic.</t>
<t>PCN-marking is intended to provide a scalable admission-control
mechanism for traffic with a high degree of statistical multiplexing.
PCN-marking would therefore be appropriate to apply to traffic in the
above classes, but only within a PCN-domain containing sufficiently
aggregated traffic. In such cases, the above service classes may well
all be subject to a single forwarding treatment (treatment aggregate
<xref target="RFC5127"></xref>). However, this does not imply all such
IP traffic would necessarily be identified by one DSCP -- each service
class might keep a distinct DSCP within the highly aggregated region
<xref target="RFC5127"></xref>.</t>
<t>Additional service classes may be defined for which admission control
is appropriate, whether through some future standards action or through
local use by certain operators, e.g., the Multimedia Streaming service
class (AF3). This document does not preclude the use of PCN in more
cases than those listed above.</t>
<t>Note: The above discussion is informative not normative, as operators
are ultimately free to decide whether to use admission control for
certain service classes and whether to use PCN as their mechanism of
choice.</t>
</section>
<section anchor="pcn3in1_app_ecn_coexist"
title="Co-existence of ECN and PCN">
<t>This appendix is informative, not normative.</t>
<t>The PCN encoding described in this document re-uses the bits of the
ECN field in the IP header. Consequently, this disables ECN within the
PCN domain. Appendix B of <xref target="RFC5696"></xref> (obsoleted)
included advice on handling ECN traffic within a PCN-domain. This
appendix reiterates and clarifies that advice.</t>
<t>For the purposes of this appendix we define two forms of traffic that
might arrive at a PCN-ingress-node. These are admission-controlled
traffic and non-admission-controlled traffic.</t>
<t>Admission-controlled traffic will be re-marked to a PCN-compatible
DSCP by the PCN-ingress-node. Two mechanisms can be used to identify
such traffic: <list style="letters">
<t>Flow signalling, which associates a filterspec with a need for
admission control (e.g. through RSVP or some equivalent message,
e.g. from a SIP server to the ingress); the PCN-ingress-node
re-marks traffic matching that filterspec to a PCN-compatible
DSCP.</t>
<t>Traffic arrives with a DSCP that implies it requires admission
control such as VOICE-ADMIT <xref target="RFC5865"></xref> or
Real-Time Interactive, Broadcast Video when used for video on
demand, and multimedia conferencing <xref
target="RFC4594"></xref><xref target="RFC5865"></xref> (see <xref
target="pcn3in1_app_DSCP_choice"></xref>).</t>
</list></t>
<t>All other traffic can be thought of as non-admission-controlled (and
therefore outside the scope of PCN). However such traffic may still need
to share the same DSCP as the admission-controlled traffic. This may be
due to policy (for instance if it is high priority voice traffic), or
may be because there is a shortage of local DSCPs.</t>
<t>ECN <xref target="RFC3168"></xref> is an end-to-end congestion
notification mechanism. As such it is possible that some traffic
entering the PCN-domain may also be ECN capable.</t>
<t>Unless specified otherwise, for any of the cases in the list below,
an IP-in-IP tunnel can be used to preserve ECN markings across the PCN
domain. The tunnelling action should be applied wholly outside the
PCN-domain as illustrated in the following figure:</t>
<figure anchor="pcn3in1_Fig_Tunnel"
title="Separation of tunnelling and PCN actions">
<artwork><![CDATA[
, . . . . . PCN-domain . . . . . .
. ,--------. ,--------. .
. _| PCN- |___________________| PCN- |_ .
. / | ingress | | egress | \ .
.| '---------' '--------' |.
| . . . . . . . . . . . . . . .|
,--------. ,--------.
_____| Tunnel | | Tunnel |____
| Ingress | - - ECN preserved inside tunnel - - | Egress |
'---------' '--------'
]]></artwork>
</figure>
<t>There are three cases for how e2e ECN traffic may wish to be treated
while crossing a PCN domain: <list style="hanging">
<t
hangText="a) Traffic that does not require admission control:"><vspace
blankLines="0" />For example, traffic that does not match flow
signaling being used for admission control. In this case the e2e ECN
traffic is not treated as PCN-traffic. There are two possible
scenarios:<list style="symbols">
<t>Arriving traffic does not carry a PCN-compatible DSCP: no
action required.</t>
<t>Arriving traffic carries a DSCP that clashes with a
PCN-compatible DSCP. There are two options:<list style="numbers">
<t>The ingress maps the DSCP to a local DSCP with the same
scheduling PHB as the original DSCP, and the egress re-maps
it to the original PCN-compatible DSCP.</t>
<t>The ingress tunnels the traffic, setting not-PCN in the
outer header; note that this turns off ECN for this traffic
within the PCN domain.</t>
</list>The first option is recommended unless the operator is
short of local DSCPs.</t>
</list></t>
<t hangText="b) Traffic that requires admission-control:"><vspace
blankLines="0" />In this case the e2e ECN traffic is treated as
PCN-traffic across the PCN domain. There are two options.<list
style="symbols">
<t>The PCN-ingress-node places this traffic in a tunnel with a
PCN-compatible DSCP in the outer header. The PCN-egress zeroes
the ECN-field before decapsulation.</t>
<t>The PCN-ingress-node drops CE-marked packets and otherwise
sets the ECN-field to NM and sets the DCSP to a PCN-compatible
DSCP. The PCN-egress zeroes the ECN field of all PCN packets;
note that this turns off e2e ECN.</t>
</list>The second option is emphatically not recommended, unless
perhaps as a last resort if tunnelling is not possible for some
insurmountable reason.</t>
<t
hangText="c) Traffic that requires admission control where the endpoints ask to see PCN marks:"><vspace
blankLines="0" />Note that this scheme is currently only a tentative
idea.<vspace blankLines="1" />For real-time data generated by an
adaptive codec, schemes have been suggested where PCN marks may be
leaked out of the PCN-domain so that end hosts can drop to a lower
data rate, thus deferring the need for admission control. Currently
such schemes require further study and the following is for guidance
only.<vspace blankLines="1" />The PCN-ingress-node needs to tunnel
the traffic as in <xref target="pcn3in1_Fig_Tunnel"></xref>, taking
care to comply with <xref target="RFC6040"></xref>. In this case the
PCN-egress does not zero the ECN field contrary to the
recommendation in <xref target="pcn3in1_egress_behaviour"></xref>,
so that the <xref target="RFC6040"></xref> tunnel egress will
preserve any PCN-marking. Note that a PCN interior node may change
the ECN-field from 10 to 01 (NM to ThM), which would be interpreted
by the e2e ECN as a change from ECT(0) into ECT(1). This would not
be compatible with the (currently experimental) ECN nonce <xref
target="RFC3540"></xref>.</t>
</list></t>
</section>
<section anchor="pcn3in1_app_map_IP_MPLS"
title="Example Mapping between Encoding of PCN-Marks in IP and in MPLS Shim Headers">
<t>This appendix is informative not normative.</t>
<t>The 6 bits of the DS field in the IP header provide for 64
codepoints. When encapsulating IP traffic in MPLS, it is useful to make
the DS field information accessible in the MPLS header. However, the
MPLS shim header has only a 3-bit traffic class (TC) field <xref
target="RFC5462"></xref> providing for 8 codepoints. The operator has
the freedom to define a site-local mapping of the 64 codepoints of the
DS field onto the 8 codepoints in the TC field.</t>
<t><xref target="RFC5129"></xref> describes how ECN markings in the IP
header can also be mapped to codepoints in the MPLS TC field. Appendix A
of <xref target="RFC5129"></xref> gives an informative description of
how to support PCN in MPLS by extending the way MPLS supports ECN. <xref
target="RFC5129"></xref> was written while PCN specifications were in
early draft stages. The following provides a clearer example of a
mapping between PCN in IP and in MPLS using the PCN terminology and
concepts that have since been specified.</t>
<t>To support PCN in a MPLS domain, a PCN-compatible DSCP ('DSCP n')
needs codepoints to be provided in the TC field for all the PCN-marks
used. That means, when for instance only excess-traffic-marking is used
for PCN purposes, the operator needs to define a site-local mapping to
two codepoints in the MPLS TC field for IP headers with: <list
style="symbols">
<t>DSCP n and NM</t>
<t>DSCP n and ETM</t>
</list> If both excess-traffic-marking and threshold-marking are used,
the operator needs to define a site-local mapping to codepoints in the
MPLS TC field for IP headers with all three of the 3-in-1 codepoints:
<list style="symbols">
<t>DSCP n and NM</t>
<t>DSCP n and ThM</t>
<t>DSCP n and ETM</t>
</list></t>
<t>In either case, if the operator wishes to support the same Diffserv
PHB but without PCN marking, it will also be necessary to define a
site-local mapping to an MPLS TC codepoint for IP headers marked with:
<list style="symbols">
<t>DSCP n and Not-PCN</t>
</list></t>
<t>The above sets of codepoints are required for every PCN-compatible
DSCP. Clearly, given so few TC codepoints are available, it may be
necessary to compromise by merging together some capabilities.</t>
</section>
<section anchor="pcn3in1_app_rationale_diff_sm"
title="Rationale for Difference Between the Schemes using One PCN-Marking">
<t>Readers may notice a difference between the two behaviours in <xref
target="pcn3in1_interior_ETM_only"></xref> and <xref
target="pcn3in1_interior_ThM_only"></xref>. With only excess-traffic
marking enabled, an unexpected ThM packet can be re-marked to ETM.
However, with only Threshold-marking, an unexpected ETM packet cannot be
re-marked to ThM.</t>
<t>This apparent inconsistency is deliberate. The behaviour with only
threshold marking keeps to the rule of <xref
target="pcn3in1_common_interior_behaviour"></xref> that ETM is more
severe and must never be changed to ThM even though ETM is not a valid
marking in this case. Otherwise implementations would have to allow
operators to configure an exception to this rule, which would not be
safe practice and would require different code in the data plane
compared to the common behaviour.</t>
</section>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-23 08:26:28 |