<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
    There has to be one entity for each item to be referenced. 
    An alternate method (rfc include) is described in the references. -->
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
    (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
    (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-ietf-tsvwg-ecn-experimentation-03"
     ipr="pre5378Trust200902" obsoletes=""
     updates="3168, 4341, 4342, 5622, 6679">
  <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN" 
    they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->

    <title abbrev="ECN Experimentation">Explicit Congestion Notification (ECN)
    Experimentation</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="David Black" initials="D.L." surname="Black">
      <organization>Dell EMC</organization>

      <address>
        <postal>
          <street>176 South Street</street>

          <!-- Reorder these if your country does things differently -->

          <city>Hopkinton</city>

          <region>MA</region>

          <code>01748</code>

          <country>USA</country>
        </postal>

        <phone/>

        <email>david.black@dell.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <date month="June" year="2017"/>

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
        in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>Transport</area>

    <workgroup>Transport Area Working Group</workgroup>

    <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>ECN</keyword>

    <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

    <abstract>
      <t>This memo updates RFC 3168, which specifies Explicit Congestion
      Notification (ECN) as a replacement for packet drops as indicators of
      network congestion. It relaxes restrictions in RFC 3168 that would
      otherwise hinder experimentation towards benefits beyond just removal of
      loss. This memo summarizes the anticipated areas of experimentation and
      updates RFC 3168 to enable experimentation in these areas. An
      Experimental RFC is required to take advantage of any of these enabling
      updates. In addition, this memo makes related updates to the ECN
      specifications for RTP in RFC 6679 and for DCCP in RFC 4341, RFC 4342
      and RFC 5622. This memo also records the conclusion of the ECN Nonce
      experiment in RFC 3540, and provides the rationale for reclassification
      of RFC 3540 as Historic; this reclassification enables new experimental
      use of the ECT(1) codepoint.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>This memo updates <xref target="RFC3168">RFC 3168</xref> which
      specifies Explicit Congestion Notification (ECN) as a replacement for
      packet drops as indicators of network congestion. It relaxes
      restrictions in RFC 3168 that would otherwise hinder experimentation
      towards benefits beyond just removal of loss. This memo summarizes the
      proposed areas of experimentation and updates RFC 3168 to enable
      experimentation in these areas. An Experimental RFC MUST be published
      for any protocol or mechanism that takes advantage of any of these
      enabling updates. Putting all of these updates into a single document
      enables experimentation to proceed without requiring a standards process
      exception for each Experimental RFC that needs changes to RFC 3168, a
      Proposed Standard RFC.</t>

      <t>There is no need to make changes for protocols and mechanisms that
      are documented in Standards Track RFCs, as any Standards Track RFC can
      update RFC 3168 without needing a standards process exception.</t>

      <t>In addition, this memo makes related updates to the ECN specification
      for RTP <xref target="RFC6679"/> and for three DCCP profiles (<xref
      target="RFC4341"/>, <xref target="RFC4342"/> and <xref
      target="RFC5622"/>) for the same reason. Each experiment is still
      required to be documented in one or more separate RFCs, but use of
      Experimental RFCs for this purpose does not require a process exception
      to modify any of these Proposed Standard RFCs when the modification
      falls within the bounds established by this memo (RFC 5622 is an
      Experimental RFC; it is modified by this memo for consistency with
      modifications to the other two DCCP RFCs).</t>

      <t>Some of the anticipated experimentation includes use of the ECT(1)
      codepoint that was dedicated to the ECN Nonce experiment in <xref
      target="RFC3540">RFC 3540</xref>. This memo records the conclusion of
      the ECN Nonce experiment and provides the explanation for
      reclassification of RFC 3540 as Historic in order to enable new
      experimental use of the ECT(1) codepoint.</t>

      <section title="ECN Terminology">
        <t>ECT: ECN-Capable Transport. One of the two codepoints ECT(0) or
        ECT(1) in the ECN field <xref target="RFC3168"/> of the IP header (v4
        or v6). An ECN-capable sender sets one of these to indicate that both
        transport end-points support ECN.</t>

        <t>Not-ECT: The ECN codepoint set by senders that indicates that the
        transport is not ECN-capable.</t>

        <t>CE: Congestion Experienced. The ECN codepoint that an intermediate
        node sets to indicate congestion. A node sets an increasing proportion
        of ECT packets to CE as the level of congestion increases.</t>
      </section>

      <section title="Requirements Language">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
        "OPTIONAL" in this document are to be interpreted as described in
        <xref target="RFC2119">RFC 2119</xref>.</t>
      </section>
    </section>

    <section anchor="ECNExpBackground"
             title="Proposed ECN Experiments: Background">
      <t>Three areas of ECN experimentation are covered by this memo; the
      cited Internet-Drafts should be consulted for the detailed goals and
      rationale of each proposed experiment:<list style="hanging">
          <t hangText="Congestion Response Differences:">As discussed further
          in Section <xref format="counter" target="CRDifferences"/>, an ECN
          congestion indication communicates a higher likelihood that a
          shorter queue exists at the network bottleneck node by comparison to
          a packet drop that indicates congestion <xref
          target="I-D.ietf-tcpm-alternativebackoff-ecn"/>. This difference
          suggests that for congestion indicated by ECN, a different sender
          congestion response (e.g., reduce the response so that the sender
          backs off by a smaller amount) may be appropriate by comparison to
          the sender response to congestion indicated by loss, e.g., as
          proposed in <xref target="I-D.ietf-tcpm-alternativebackoff-ecn"/>
          and <xref target="I-D.ietf-tsvwg-ecn-l4s-id"/> - the experiment in
          the latter draft couples the backoff change to Congestion Marking
          Differences changes (next bullet). This is at variance with RFC
          3168's requirement that a sender's congestion control response to
          ECN congestion indications be the same as to drops. IETF approval,
          e.g., via an Experimental RFC, is required for any sender congestion
          response used in this area of experimentation.</t>

          <t hangText="Congestion Marking Differences:">As discussed further
          in Section <xref format="counter" target="CMDifferences"/>, when
          taken to its limit, congestion marking at network nodes can be
          configured to maintain very shallow queues in conjunction with a
          different IETF-approved congestion response to congestion
          indications (CE marks) at the sender, e.g., as proposed in <xref
          target="I-D.ietf-tsvwg-ecn-l4s-id"/>. The traffic involved needs to
          be identified by the senders to the network nodes in order to avoid
          damage to other network traffic whose senders do not expect the more
          frequent congestion marking used to maintain nearly empty queues.
          Use of different ECN codepoints, specifically ECT(0) and ECT(1), is
          a promising means of traffic identification for this purpose, but
          that technique is at variance with RFC 3168's requirement that
          ECT(0)-marked traffic and ECT(1)-marked traffic not receive
          different treatment in the network.</t>

          <t hangText="Generalized ECN:">RFC 3168 limits the use of ECN with
          TCP to data packets, excluding retransmissions. With the successful
          deployment of ECN in large portions of the Internet, there is
          interest in extending the benefits of ECN to TCP control packets
          (e.g., SYNs) and retransmitted packets, e.g., as proposed in <xref
          target="I-D.bagnulo-tcpm-generalized-ecn"/>. This is at variance
          with RFC 3168's prohibition of use of ECN for TCP control packets
          and retransmitted packets.</t>
        </list>The scope of this memo is limited to these three areas of
      experimentation. This memo expresses no view on the likely outcomes of
      the proposed experiments and does not specify the experiments in detail.
      Additional experiments in these areas are possible, e.g., on use of ECN
      to support deployment of a protocol similar to <xref
      target="I-D.ietf-tcpm-dctcp">DCTCP</xref> beyond DCTCP's current
      applicability that is limited to data center environments. The purpose
      of this memo is to remove constraints in standards track RFCs that stand
      in the way of these areas of experimentation.</t>
    </section>

    <section anchor="ECNNonce" title="ECN Nonce and RFC 3540">
      <t>As specified in RFC 3168, ECN uses two ECN Capable Transport (ECT)
      codepoints to indicate that a packet supports ECN, ECT(0) and ECT(1),
      with the second codepoint used to support ECN nonce functionality to
      discourage receivers from exploiting ECN to improve their throughput at
      the expense of other network users, as specified in experimental <xref
      target="RFC3540">RFC 3540</xref>. This section explains why RFC 3540 is
      being reclassified as Historic and makes associated updates to RFC
      3168.</t>

      <t>While the ECN Nonce works as specified, and has been deployed in
      limited environments, widespread usage in the Internet has not
      materialized. A study of the ECN behaviour of the Alexa top 1M web
      servers using 2014 data <xref target="Trammell15"/> found that after ECN
      was negotiated, none of the 581,711 IPv4 servers tested were using both
      ECT codepoints, which would have been a possible sign of ECN Nonce
      usage. Of the 17,028 IPv6 servers tested, 4 set both ECT(0) and ECT(1)
      on data packets. This might have been evidence of use of the ECN Nonce
      by these 4 servers, but might equally have been due to re-marking of the
      ECN field by an erroneous middlebox or router.</t>

      <t>With the emergence of new experimental functionality that depends on
      use of the ECT(1) codepoint for other purposes, continuing to reserve
      that codepoint for the ECN Nonce experiment is no longer justified. In
      addition, other approaches to discouraging receivers from exploiting ECN
      have emerged, see Appendix B.1 of <xref
      target="I-D.ietf-tsvwg-ecn-l4s-id"/>. Therefore, in support of ECN
      experimentation with the ECT(1) codepoint, this memo:<list
          style="symbols">
          <t>Declares that the ECN Nonce experiment <xref target="RFC3540"/>
          has concluded, and notes the absence of widespread deployment.</t>

          <t>Updates <xref target="RFC3168">RFC 3168</xref> to remove
          discussion of the ECN Nonce and use of ECT(1) for that Nonce. The
          specific text updates are omitted for brevity.</t>
        </list></t>
    </section>

    <section title="Updates to RFC 3168">
      <t>The following subsections specify updates to RFC 3168 to enable the
      three areas of experimentation summarized in Section <xref
      format="counter" target="ECNExpBackground"/>.</t>

      <section anchor="CRDifferences" title="Congestion Response Differences">
        <t>RFC 3168 specifies that senders respond identically to packet drops
        and ECN congestion indications. ECN congestion indications are
        predominately originated by Active Queue Management (AQM) mechanisms
        in intermediate buffers. AQM mechanisms are usually configured to
        maintain shorter queue lengths than non-AQM based mechanisms,
        particularly non-AQM drop-based mechanisms such as tail-drop, as AQM
        mechanisms indicate congestion before the queue overflows. While the
        occurrence of loss does not easily enable the receiver to determine if
        AQM is used, the receipt of an ECN Congestion Experienced (CE) mark
        conveys a strong likelihood that AQM was used to manage the bottleneck
        queue. Hence an ECN congestion indication communicates a higher
        likelihood that a shorter queue exists at the network bottleneck node
        by comparison to a packet drop that indicates congestion <xref
        target="I-D.ietf-tcpm-alternativebackoff-ecn"/>. This difference
        suggests that for congestion indicated by ECN, a different sender
        congestion response (e.g., reduce the response so that the sender
        backs off by a smaller amount) may be appropriate by comparison to the
        sender response to congestion indicated by loss. However, section 5 of
        RFC 3168 specifies that:</t>

        <t><list style="empty">
            <t>Upon the receipt by an ECN-Capable transport of a single CE
            packet, the congestion control algorithms followed at the
            end-systems MUST be essentially the same as the congestion control
            response to a *single* dropped packet.</t>
          </list>This memo updates this RFC 3168 text to allow the congestion
        control response (including the TCP Sender's congestion control
        response) to a CE-marked packet to differ from the response to a
        dropped packet, provided that the changes from RFC 3168 are documented
        in an Experimental RFC. The specific change to RFC 3168 is to insert
        the words "unless otherwise specified by an Experimental RFC" at the
        end of the sentence quoted above.</t>

        <t><xref target="RFC4774">RFC 4774</xref> quotes the above text from
        RFC 3168 as background, but does not impose requirements based on that
        text. Therefore no update to RFC 4774 is required to enable this area
        of experimentation.</t>

        <t>Section 6.1.2 of RFC 3168 specifies that:<list style="empty">
            <t>If the sender receives an ECN-Echo (ECE) ACK packet (that is,
            an ACK packet with the ECN-Echo flag set in the TCP header), then
            the sender knows that congestion was encountered in the network on
            the path from the sender to the receiver. The indication of
            congestion should be treated just as a congestion loss in non-
            ECN-Capable TCP. That is, the TCP source halves the congestion
            window "cwnd" and reduces the slow start threshold "ssthresh".</t>
          </list></t>

        <t>This memo also updates this RFC 3168 text to allow the congestion
        control response (including the TCP Sender's congestion control
        response) to a CE-marked packet to differ from the response to a
        dropped packet, provided that the changes from RFC 3168 are documented
        in an Experimental RFC. The specific change to RFC 3168 is to insert
        the words "Unless otherwise specified by an Experimental RFC" at the
        beginning of the second sentence quoted above.</t>
      </section>

      <section anchor="CMDifferences" title="Congestion Marking Differences">
        <t>Taken to its limit, an AQM algorithm that uses ECN congestion
        indications can be configured to maintain very shallow queues, thereby
        reducing network latency by comparison to maintaining a larger queue.
        Significantly more aggressive sender responses to ECN are required to
        make effective use of such shallow queues; <xref
        target="I-D.ietf-tcpm-dctcp">Datacenter TCP (DCTCP)</xref> provides an
        example. In this case, separate network node treatments are essential,
        both to prevent the aggressive low latency traffic starving
        conventional traffic (if present) and to prevent any conventional
        traffic disruption to any lower latency service that uses the shallow
        queues. Use of different ECN codepoints is a promising means of
        identifying these two classes of traffic to network nodes, and hence
        this area of experimentation is based on the use of the ECT(1)
        codepoint to request ECN congestion marking behavior in the network
        that differs from ECT(0) counterbalanced by use of a different
        IETF-approved congestion response to CE marks at the sender, e.g., as
        proposed in <xref target="I-D.ietf-tsvwg-ecn-l4s-id"/>.</t>

        <t>Section 5 of RFC 3168 specifies that:<list style="empty">
            <t>Routers treat the ECT(0) and ECT(1) codepoints as
            equivalent.</t>
          </list>This memo updates RFC 3168 to allow routers to treat the
        ECT(0) and ECT(1) codepoints differently, provided that the changes
        from RFC 3168 are documented in an Experimental RFC. The specific
        change to RFC 3168 is to insert the words "unless otherwise specified
        by an Experimental RFC" at the end of the above sentence.</t>

        <t>When an AQM is configured to use ECN congestion indications to
        maintain a nearly empty queue, congestion indications are marked on
        packets that would not have been dropped if ECN was not in use.
        Section 5 of RFC 3168 specifies that:<list style="empty">
            <t>For a router, the CE codepoint of an ECN-Capable packet SHOULD
            only be set if the router would otherwise have dropped the packet
            as an indication of congestion to the end nodes. When the router's
            buffer is not yet full and the router is prepared to drop a packet
            to inform end nodes of incipient congestion, the router should
            first check to see if the ECT codepoint is set in that packet's IP
            header. If so, then instead of dropping the packet, the router MAY
            instead set the CE codepoint in the IP header.</t>
          </list></t>

        <t>This memo updates RFC 3168 to allow congestion indications that are
        not equivalent to drops, provided that the changes from RFC 3168 are
        documented in an Experimental RFC. The specific change is to change
        "For a router," to "Unless otherwise specified by an Experimental RFC"
        at the beginning of the first sentence of the above paragraph.</t>

        <t>A larger update to RFC 3168 is necessary to enable sender usage of
        ECT(1) to request network congestion marking behavior that maintains
        nearly empty queues at network nodes. When using loss as a congestion
        signal, the number of signals provided should be reduced to a minimum
        and hence only presence or absence of congestion is communicated. In
        contrast, ECN can provide a richer signal, e.g., to indicate the
        current level of congestion, without the disadvantage of a larger
        number of packet losses. A proposed experiment in this area, Low
        Latency Low Loss Scalable throughput <xref
        target="I-D.ietf-tsvwg-ecn-l4s-id">(L4S)</xref> significantly
        increases the CE marking probability for ECT(1)-marked traffic in a
        fashion that would interact badly with existing sender congestion
        response functionality because that functionality assumes that the
        network marks ECT packets as frequently as it would drop Not-ECT
        packets. If network traffic that uses such a conventional sender
        congestion response were to encounter L4S's increased marking
        probability (and hence rate) at a network bottleneck queue, the
        resulting traffic throughput is likely to be much less than intended
        for the level of congestion at the bottleneck queue.</t>

        <t>To avoid that interaction, this memo reserves ECT(1) for
        experimentation, initially for L4S. The specific update to Section 5
        of RFC 3168 is to remove the following two paragraphs:<list>
            <t>Senders are free to use either the ECT(0) or the ECT(1)
            codepoint to indicate ECT, on a packet-by-packet basis.</t>

            <t>The use of both the two codepoints for ECT, ECT(0) and ECT(1),
            is motivated primarily by the desire to allow mechanisms for the
            data sender to verify that network elements are not erasing the CE
            codepoint, and that data receivers are properly reporting to the
            sender the receipt of packets with the CE codepoint set, as
            required by the transport protocol. Guidelines for the senders and
            receivers to differentiate between the ECT(0) and ECT(1)
            codepoints will be addressed in separate documents, for each
            transport protocol. In particular, this document does not address
            mechanisms for TCP end-nodes to differentiate between the ECT(0)
            and ECT(1) codepoints. Protocols and senders that only require a
            single ECT codepoint SHOULD use ECT(0).</t>
          </list>and replace it with this paragraph:<list>
            <t>Protocols and senders MUST use the ECT(0) codepoint to indicate
            ECT unless otherwise specified by an Experimental RFC. Guidelines
            for senders and receivers to differentiate between the ECT(0) and
            ECT(1) codepoints will be addressed in separate documents, for
            each transport protocol. In particular, this document does not
            address mechanisms for TCP end-nodes to differentiate between the
            ECT(0) and ECT(1) codepoints.</t>
          </list></t>

        <t>Congestion Marking Differences experiments SHOULD modify the
        network behavior for ECT(1)-marked traffic rather than ECT(0)-marked
        traffic if network behavior for only one ECT codepoint is modified.
        Congestion Marking Differences experiments MUST NOT modify the network
        behavior for ECT(0)-marked traffic in a fashion that requires changes
        to sender congestion response to obtain desired network behavior. If a
        Congestion Marking Differences experiment modifies the network
        behavior for ECT(1)-marked traffic, e.g., CE-marking behavior, in a
        fashion that requires changes to sender congestion response to obtain
        desired network behavior, then the Experimental RFC for that
        experiment MUST specify:<list style="symbols">
            <t>The sender congestion response to CE marking in the network,
            and</t>

            <t>Router behavior changes, or the absence thereof, in forwarding
            CE-marked packets that are part of the experiment.</t>
          </list>In addition, until the conclusion of the L4S experiment, use
        of ECT(1) in IETF RFCs is not appropriate, as the IETF may decide to
        allocate ECT(1) exclusively for L4S usage if the L4S experiment is
        successful.</t>

        <t>In addition, this memo updates RFC 3168 to remove discussion of the
        ECN Nonce, as noted in Section <xref format="counter"
        target="ECNNonce"/> above.</t>
      </section>

      <section title="Generalized ECN">
        <t>With the successful use of ECN for traffic in large portions of the
        Internet, there is interest in extending the benefits of ECN to TCP
        control packets (e.g., SYNs) and retransmitted packets, e.g., as
        proposed in <xref target="I-D.bagnulo-tcpm-generalized-ecn"/>.</t>

        <t>RFC 3168 prohibits use of ECN for TCP control packets and
        retransmitted packets in a number of places:<list style="symbols">
            <t>"To ensure the reliable delivery of the congestion indication
            of the CE codepoint, an ECT codepoint MUST NOT be set in a packet
            unless the loss of that packet in the network would be detected by
            the end nodes and interpreted as an indication of congestion."
            (Section 5.2)</t>

            <t>"A host MUST NOT set ECT on SYN or SYN-ACK packets." (Section
            6.1.1)</t>

            <t>"pure acknowledgement packets (e.g., packets that do not
            contain any accompanying data) MUST be sent with the not-ECT
            codepoint." (Section 6.1.4)</t>

            <t>"This document specifies ECN-capable TCP implementations MUST
            NOT set either ECT codepoint (ECT(0) or ECT(1)) in the IP header
            for retransmitted data packets, and that the TCP data receiver
            SHOULD ignore the ECN field on arriving data packets that are
            outside of the receiver's current window." (Section 6.1.5)</t>

            <t>"the TCP data sender MUST NOT set either an ECT codepoint or
            the CWR bit on window probe packets." (Section 6.1.6)</t>
          </list></t>

        <t>This memo updates RFC 3168 to allow the use of ECT codepoints on
        SYN and SYN-ACK packets, pure acknowledgement packets, window probe
        packets and retransmissions of packets that were originally sent with
        an ECT codepoint, provided that the changes from RFC 3168 are
        documented in an Experimental RFC. The specific change to RFC 3168 is
        to insert the words "unless otherwise specified by an Experimental
        RFC" at the end of each sentence quoted above.</t>

        <t>In addition, beyond requiring TCP senders not to set ECT on TCP
        control packets and retransmitted packets, RFC 3168 is silent on
        whether it is appropriate for a network element, e.g. a firewall, to
        discard such a packet as invalid. For Generalized ECN experimentation
        to be useful, middleboxes ought not to do that, therefore RFC 3168 is
        updated by adding the following text to the end of Section 6.1.1.1 on
        Middlebox Issues:</t>

        <t><list>
            <t>Unless otherwise specified by an Experimental RFC, middleboxes
            SHOULD NOT discard TCP control packets and retransmitted TCP
            packets solely because the ECN field in the IP header does not
            contain Not-ECT. An exception to this requirement occurs in
            responding to an ongoing attack. For example, as part of the
            response, it may be appropriate to drop more ECT-marked TCP SYN
            packets than TCP SYN packets marked with not-ECT. Any such
            exceptional discarding of TCP control packets and retransmitted
            TCP packets in response to an attack MUST NOT be done routinely in
            the absence of an attack and SHOULD only be done if it is
            determined that the ECT capability is contributing to the
            attack.</t>
          </list></t>
      </section>

      <section anchor="ECC" title="Effective Congestion Control is Required">
        <t>Congestion control remains an important aspect of the Internet
        architecture <xref target="RFC2914"/>. Any Experimental RFC that takes
        advantage of this memo's updates to RFC 3168 or RFC 6679 is required
        to discuss the congestion control implications of the experiment(s) in
        order to provide assurance that deployment of the experiment(s) does
        not pose a congestion-based threat to the operation of the
        Internet.</t>
      </section>
    </section>

    <section title="ECN for RTP Updates to RFC 6679">
      <t><xref target="RFC6679">RFC 6679</xref> specifies use of ECN for RTP
      traffic; it allows use of both the ECT(0) and ECT(1) codepoints, and
      provides the following guidance on use of these codepoints in section
      7.3.1 :</t>

      <t><list>
          <t>The sender SHOULD mark packets as ECT(0) unless the receiver
          expresses a preference for ECT(1) or for a random ECT value using
          the "ect" parameter in the "a=ecn-capable-rtp:" attribute.</t>
        </list></t>

      <t>The Congestion Marking Differences area of experimentation increases
      the potential consequences of using ECT(1) instead of ECT(0), and hence
      the above guidance is updated by adding the following two sentences:</t>

      <t><list>
          <t>Random ECT values MUST NOT be used, as that may expose RTP to
          differences in network treatment of traffic marked with ECT(1) and
          ECT(0) and differences in associated endpoint congestion responses,
          e.g., as proposed in <xref target="I-D.ietf-tsvwg-ecn-l4s-id"/>. In
          addition, ECT(0) MUST be used unless otherwise specified in an
          Experimental RFC.</t>
        </list>Section 7.3.3 of RFC 6679 specifies RTP's response to receipt
      of CE marked packets as being identical to the response to dropped
      packets:</t>

      <t><list>
          <t>The reception of RTP packets with ECN-CE marks in the IP header
          is a notification that congestion is being experienced. The default
          reaction on the reception of these ECN-CE-marked packets MUST be to
          provide the congestion control algorithm with a congestion
          notification that triggers the algorithm to react as if packet loss
          had occurred. There should be no difference in congestion response
          if ECN-CE marks or packet drops are detected.</t>
        </list>In support of Congestion Response Differences experimentation,
      this memo updates this text in a fashion similar to RFC 3168 to allow
      the RTP congestion control response to a CE-marked packet to differ from
      the response to a dropped packet, provided that the changes from RFC
      6679 are documented in an Experimental RFC. The specific change to RFC
      6679 is to insert the words "Unless otherwise specified by an
      Experimental RFC" and reformat the last two sentences to be subject to
      that condition, i.e.:</t>

      <t><list>
          <t>The reception of RTP packets with ECN-CE marks in the IP header
          is a notification that congestion is being experienced. Unless
          otherwise specified by an Experimental RFC: <list style="symbols">
              <t>The default reaction on the reception of these ECN-CE-marked
              packets MUST be to provide the congestion control algorithm with
              a congestion notification that triggers the algorithm to react
              as if packet loss had occurred.</t>

              <t>There should be no difference in congestion response if
              ECN-CE marks or packet drops are detected.</t>
            </list></t>
        </list>The second sentence of the immediately following paragraph in
      RFC 6679 requires a related update:</t>

      <t><list>
          <t>Other reactions to ECN-CE may be specified in the future,
          following IETF Review. Detailed designs of such additional reactions
          MUST be specified in a Standards Track RFC and be reviewed to ensure
          they are safe for deployment under any restrictions specified.</t>
        </list>The update is to change "Standards Track RFC" to "Standards
      Track RFC or Experimental RFC" for consistency with the first
      update.</t>
    </section>

    <section title="ECN for DCCP Updates to RFCs 4341, 4342 and 5622">
      <t>The specifications of the three DCCP Congestion Control IDs (CCIDs)
      <xref target="RFC4341">2</xref>, <xref target="RFC4342">3</xref> and
      <xref target="RFC5622">4</xref> contain broadly the same wording as
      follows:</t>

      <t><list>
          <t>each DCCP-Data and DCCP-DataAck packet is sent as ECN Capable
          with either the ECT(0) or the ECT(1) codepoint set.</t>
        </list>This memo updates these sentences in each of the three RFCs as
      follows:<list>
          <t>each DCCP-Data and DCCP-DataAck packet is sent as ECN Capable.
          Unless otherwise specified by an Experimental RFC, such DCCP senders
          MUST set the ECT(0) codepoint.</t>
        </list>In support of Congestion Marking Differences experimentation
      (as noted in Section 3), this memo also updates all three of these RFCs
      to remove discussion of the ECN Nonce. The specific text updates are
      omitted for brevity.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The content of this draft, including the specific portions of RFC
      3168 that are updated draws heavily from <xref
      target="I-D.khademi-tsvwg-ecn-response"/>, whose authors are gratefully
      acknowledged. The authors of the Internet Drafts describing the
      experiments have motivated the production of this memo - their interest
      in innovation is welcome and heartily acknowledged. Colin Perkins
      suggested updating RFC 6679 on RTP and provided guidance on where to
      make the updates.</t>

      <t>The draft has been improved as a result of comments from a number of
      reviewers, including Spencer Dawkins, Gorry Fairhurst, Ingemar
      Johansson, Naeem Khademi, Mirja Kuehlewind, Karen Nielsen and Michael
      Welzl. Bob Briscoe's thorough review of an early version of this draft
      resulted in numerous improvements including addition of the updates to
      the DCCP RFCs.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This memo includes no request to IANA.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>As a process memo that makes no changes to existing protocols, there
      are no protocol security considerations.</t>

      <t>However, effective congestion control is crucial to the continued
      operation of the Internet, and hence this memo places the responsibility
      for not breaking Internet congestion control on the experiments and the
      experimenters who propose them, as specified in Section <xref
      format="counter" target="ECC"/>.</t>

      <t>Security considerations for the proposed experiments are discussed in
      the Internet-Drafts that propose them.</t>

      <t>See Appendix B.1 of <xref target="I-D.ietf-tsvwg-ecn-l4s-id"/> for
      discussion of alternatives to the ECN Nonce.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">
      <?rfc include="reference.RFC.2119" ?>

      <?rfc include="reference.RFC.2914" ?>

      <?rfc include="reference.RFC.3168" ?>

      <?rfc include="reference.RFC.3540" ?>

      <?rfc include="reference.RFC.4341" ?>

      <?rfc include="reference.RFC.4342" ?>

      <?rfc include="reference.RFC.5622" ?>

      <?rfc include="reference.RFC.6679" ?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.I-D.ietf-tcpm-alternativebackoff-ecn" ?>

      <?rfc include="reference.I-D.khademi-tsvwg-ecn-response" ?>

      <?rfc include="reference.I-D.ietf-tsvwg-ecn-l4s-id" ?>

      <?rfc include="reference.I-D.bagnulo-tcpm-generalized-ecn" ?>

      <?rfc include="reference.I-D.ietf-tcpm-dctcp" ?>

      <?rfc include="reference.RFC.4774" ?>

      <reference anchor="Trammell15">
        <front>
          <title>Enabling Internet-Wide Deployment of Explicit Congestion
          Notification</title>

          <author initials="B." surname="Trammell">
            <organization/>
          </author>

          <author initials="M." surname="Kuehlewind">
            <organization/>

            <address>
              <postal>
                <street/>

                <city/>

                <region/>

                <code/>

                <country/>
              </postal>

              <phone/>

              <facsimile/>

              <email/>

              <uri/>
            </address>
          </author>

          <author initials="D." surname="Boppart">
            <organization/>

            <address>
              <postal>
                <street/>

                <city/>

                <region/>

                <code/>

                <country/>
              </postal>

              <phone/>

              <facsimile/>

              <email/>

              <uri/>
            </address>
          </author>

          <author initials="I." surname="Learmonth">
            <organization/>

            <address>
              <postal>
                <street/>

                <city/>

                <region/>

                <code/>

                <country/>
              </postal>

              <phone/>

              <facsimile/>

              <email/>

              <uri/>
            </address>
          </author>

          <author initials="G." surname="Fairhurst">
            <organization/>

            <address>
              <postal>
                <street/>

                <city/>

                <region/>

                <code/>

                <country/>
              </postal>

              <phone/>

              <facsimile/>

              <email/>

              <uri/>
            </address>
          </author>

          <author initials="R." surname="Scheffenegger">
            <organization/>

            <address>
              <postal>
                <street/>

                <city/>

                <region/>

                <code/>

                <country/>
              </postal>

              <phone/>

              <facsimile/>

              <email/>

              <uri/>
            </address>
          </author>

          <date/>
        </front>

        <annotation>In Proc Passive &amp; Active Measurement (PAM'15)
        Conference (2015)</annotation>
      </reference>
    </references>

    <section title="Change History" toc="exclude">
      <t>[To be removed before RFC publication.]</t>

      <t>Changes from draft-ietf-tsvwg-ecn-experimentation-00 to -01:</t>

      <t><list style="symbols">
          <t>Add mention of DCTCP as another protocol that could benefit from
          ECN experimentation (near end of Section 2).</t>
        </list>Changes from draft-ietf-tsvwg-ecn-experimentation-01 to
      -02:<list style="symbols">
          <t>Generalize to describe rationale for areas of experimentation,
          with less focus on individual experiments</t>

          <t>Add ECN terminology section</t>

          <t>Change name of "ECT Differences" experimentation area to
          "Congestion Marking Differences"</t>

          <t>Add overlooked RFC 3168 modification to Section 4.1</t>

          <t>Clarify text for Experimental RFC exception to ECT(1) non-usage
          requirement</t>

          <t>Add explanation of exception to "SHOULD NOT drop" requirement in
          4.3</t>

          <t>Rework RFC 3540 status change text to provide rationale for a
          separate status change document that makes RFC 3540 Historic. Don't
          obsolete RFC 3540.</t>

          <t>Significant editorial changes based on reviews by Mirja
          Kuehlewind, Michael Welzl and Bob Briscoe.</t>
        </list>Changes from draft-ietf-tsvwg-ecn-experimentation-02 to
      -03:</t>

      <t><list style="symbols">
          <t>Remove change history prior to WG adoption.</t>

          <t>Update L4S draft reference to reflect TSVWG adoption of
          draft.</t>

          <t>Change the "SHOULD" for DCCP sender use of ECT(0) to a "MUST"
          (overlooked in earlier editing).</t>

          <t>Other minor edits.</t>
        </list></t>
    </section>
  </back>
</rfc>
