<?xml version='1.0' encoding='utf-8'?>
<!-- This template is for creating an Internet Draft using xml2rfc,
which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc >
<?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 xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-tsvwg-nqb-15" ipr="trust200902" obsoletes="" updates="rfc8325" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3" consensus="true">
  <!-- xml2rfc v2v3 conversion 2.39.0 -->
  <!-- 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="Non-Queue-Building PHB">A Non-Queue-Building Per-Hop Behavior (NQB PHB) for Differentiated Services</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-nqb-15"/>
    <!-- add 'role="editor"' below for the editors if appropriate -->

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

   <author fullname="Greg White" initials="G." surname="White">
      <organization>CableLabs</organization>
      <address>
        <email>g.white@cablelabs.com</email>
      </address>
    </author>
    <author fullname="Thomas Fossati" initials="T." surname="Fossati">
      <organization>ARM</organization>
      <address>
        <email>Thomas.Fossati@arm.com</email>
      </address>
    </author>
    <date year="2023"/>
    <!-- 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>
    <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 document specifies properties and characteristics of a Non-Queue-Building Per-Hop Behavior (NQB PHB). The purpose of this NQB PHB is to provide a separate queue that enables smooth, low-data-rate, application-limited traffic flows, which would ordinarily share a queue with bursty and capacity-seeking traffic, to avoid the latency, latency variation and loss caused by such traffic. This PHB is implemented without prioritization and can be implemented without rate policing, making it suitable for environments where the use of these features is restricted. The NQB PHB has been developed primarily for use by access network segments, where queuing delays and queuing loss caused by Queue-Building protocols are manifested, but its use is not limited to such segments. In particular, applications to cable broadband links, Wi-Fi links, and mobile network radio and core segments are discussed. This document recommends a specific Differentiated Services Code Point (DSCP) to identify Non-Queue-Building flows.</t>
    </abstract>
  </front>
  <middle>
    <section numbered="true">
      <name>Introduction</name>
      <t>This document defines a Differentiated Services per-hop behavior (PHB) called "Non-Queue-Building Per-Hop Behavior" (NQB PHB), which isolates traffic flows that are relatively low data rate and that do not themselves materially contribute to queueing delay and loss, allowing them to avoid the queuing delays and losses caused by other traffic. Such Non-Queue-Building flows (for example: interactive voice, low-data-rate online gaming, machine-to-machine applications) are application limited flows that are distinguished from the high-data-rate traffic flows that are typically managed by an end-to-end congestion control algorithm.</t>

      <t>Most packets carried by broadband access networks are managed by an end-to-end congestion control algorithm, such as Reno, Cubic or BBR. These congestion control algorithms attempt to seek the available capacity of the end-to-end path (which can frequently be the access network link capacity), and in doing so generally overshoot the available capacity, causing a queue to build-up at the bottleneck link. This queue build-up results in queuing delay (variable latency) and possibly packet loss that can affect all the applications that are sharing the bottleneck link. Moreover, many bottleneck links implement a relatively deep buffer (100 ms or more) in order to enable traditional congestion-controlled applications to effectively use the link, which exacerbates the latency and latency variation experienced.</t>

      <t>In contrast to traditional congestion-controlled applications, there are a variety of relatively low data rate applications that do not materially contribute to queueing delay and loss but are nonetheless subjected to it by sharing the same bottleneck link in the access network. Many of these applications can be sensitive to latency or latency variation, as well as packet loss, and thus produce a poor quality of experience in such conditions.</t>

      <t>Active Queue Management (AQM) mechanisms (such as <xref target="RFC8033">PIE</xref>, <xref target="RFC8034">DOCSIS-PIE</xref>, or  <xref target="RFC8289">CoDel</xref>) can improve the quality of experience for latency sensitive applications, but there are practical limits to the amount of improvement that can be achieved without impacting the throughput of capacity-seeking applications. For example, AQMs generally allow a significant amount of queue depth variation to accommodate the behaviors of congestion control algorithms such as Reno and Cubic.  If the AQM attempted to control the queue much more tightly, applications using those algorithms would not perform well.  Alternatively, flow queueing systems, such as <xref target="RFC8290">fq_codel</xref> can be employed to isolate flows from one another, but these are not appropriate for all bottleneck links, due to complexity or other reasons. </t>

      <t>The NQB PHB supports differentiating between these two classes of traffic in bottleneck links and queuing them separately so that both classes can deliver satisfactory quality of experience for their applications. In particular, the NQB PHB provides a shallow-buffered, best-effort service as a complement to a default deep-buffered best-effort service. </t>

      <t>To be clear, a network implementing the NQB PHB solely provides isolation for traffic classified as behaving in conformance with the NQB DSCP (and optionally enforces that behavior).  It is the NQB senders' behavior itself which results in low latency and low loss.</t>

    </section>
    <section numbered="true">
      <name>Requirements Language</name>
      <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 BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
    </section>
    <section numbered="true">
      <name>Context</name>

      <section numbered="true">
        <name>Non-Queue-Building Behavior</name>
        <t>There are many applications that send traffic at relatively low data rates and/or in a fairly smooth and consistent manner such that they are highly unlikely to exceed the available capacity of the network path between source and sink. These applications might themselves only cause very small, transient queues to form in network buffers, but nonetheless they can be subjected to packet delay and delay variation as a result of sharing a network buffer with applications that tend to cause large and/or standing queues to form. Many of these applications are negatively affected by excessive packet delay and delay variation. Such applications are ideal candidates to be queued separately from the applications that are the cause of queue build-up, latency and loss.</t>

        <t>In contrast, Queue-Building (QB) flows include those that use TCP or QUIC, with Cubic, Reno or other TCP congestion control algorithms that probe for the link capacity and induce latency and loss as a result.  Other types of QB flows include those that send at a high burst rate even if the long-term average data rate is much lower.</t>

      </section>      

      <section numbered="true">
        <name>Relationship to the Diffserv Architecture</name>
        <t>The IETF has defined the Differentiated Services architecture <xref target="RFC2475"/> with the intention that it allows traffic to be marked in a manner that conveys the performance requirements of that traffic either quantitatively or in a relative sense (i.e. priority). The architecture defines the use of the Diffserv field <xref target="RFC2474"/> for this purpose, and numerous RFCs have been written that describe recommended interpretations of the values (Diffserv Code Points) of the field, and standardized treatments (traffic conditioning and per-hop-behaviors) that can be implemented to satisfy the performance requirements of traffic so marked.</t>
        
        <t>While this architecture is powerful and flexible enough to be configured to meet the performance requirements of a variety of applications and traffic categories, or to achieve differentiated service offerings, it has proven problematic to enable its use for these purposes end-to-end across the Internet.</t>
        
        <t>This difficulty is in part due to the fact that meeting the performance requirements of an application in an end-to-end context involves all the networks in the path agreeing on what those requirements are and sharing an interest in meeting them. In many cases this is made more difficult since the performance "requirements" are not strict ones (e.g., applications will degrade in some manner as loss/latency/jitter increase), so the importance of meeting them for any particular application in some cases involves a judgment as to the value of avoiding some amount of degradation in quality for that application in exchange for an increase in the degradation of another application.</t>
        
        <t>Further, in many cases the implementation of Diffserv PHBs has historically involved prioritization of service classes with respect to one another, which sets up the zero-sum game alluded to in the previous paragraph, and results in the need to limit access to higher priority classes via mechanisms such as access control, admission control, traffic conditioning and rate policing, and/or to meter and bill for carriage of such traffic. These mechanisms can be difficult or impossible to implement in an end-to-end context.</t>
        
        <t>Finally, some jurisdictions impose regulations that limit the ability of networks to provide differentiation of services, in large part based on the belief that doing so necessarily involves prioritization or privileged access to bandwidth, and thus a benefit to one class of traffic always comes at the expense of another. </t>
        
        <t>In contrast, the NQB PHB has been designed with the goal that it avoids many of these issues, and thus could conceivably be deployed end-to-end across the Internet. The intent of the NQB DSCP is that it signals verifiable behavior that permits the sender to request differentiated treatment. Also, the NQB traffic is to be given a separate queue with priority equal to default traffic and given no reserved bandwidth other than the bandwidth that it shares with default traffic.  As a result, the NQB PHB does not aim to meet specific application performance requirements. Instead, the goal of the NQB PHB is to provide statistically better loss, latency, and jitter performance for traffic that is itself only an insignificant contributor to those degradations. The PHB is also designed to minimize any incentives for a sender to mismark its traffic, since neither higher priority nor reserved bandwidth are being offered. These attributes eliminate many of the trade-offs that underlie the handling of differentiated service classes in the Diffserv architecture as it has traditionally been defined. They also significantly simplify access control and admission control functions, reducing them to simple verification of behavior. </t>
      </section>

      <section numbered="true">
        <name>Relationship to L4S</name>
        <t>The NQB DSCP and PHB described in this draft have been defined to operate independently of the experimental L4S Architecture <xref target="I-D.ietf-tsvwg-l4s-arch"/>.  Nonetheless, the NQB-marked traffic flows are intended to be compatible with <xref target="I-D.ietf-tsvwg-l4s-arch"/>, with the result being that NQB traffic and L4S traffic can share the low-latency queue in an L4S DualQ node <xref target="I-D.ietf-tsvwg-aqm-dualq-coupled"/>. Compliance with the DualQ Coupled AQM requirements (<xref target="I-D.ietf-tsvwg-aqm-dualq-coupled" section="2.5"/>) is considered sufficient to support the NQB PHB requirement of fair allocation of bandwidth between the QB and NQB queues (<xref target="phb_requirements"/>). Note that these requirements in turn require compliance with all the requirements in <xref target="I-D.ietf-tsvwg-ecn-l4s-id" section="5"/>.</t>
        <t>Applications that comply with both the NQB sender requirements in <xref target="sender"/> and the L4S "Prague" requirements in <xref target="I-D.ietf-tsvwg-ecn-l4s-id" section="4"/> could mark their packets both with the NQB DSCP and with the ECT(1) value. Packets marked with both codepoints SHOULD NOT be subject to less stringent policing than they would with either codepoint alone.</t>
      </section>
    </section>



    <section numbered="true">
      <name>DSCP Marking of NQB Traffic</name>

      <section anchor="sender" numbered="true">
        <name>Non-Queue-Building Sender Requirements</name>

        <t>Flows that are eligible to be marked with the NQP DSCP are typically UDP flows that send traffic at a low data rate relative to typical network path capacities. Current examples include many online games, voice chat, DNS lookups, and real-time IoT analytics data. Here the data rate is limited by the application itself rather than by network capacity - these applications send at most a few packets per RTT or a data rate of no more than about 1 percent of the "typical" network path capacity.  In today's network, where access network data rates are typically on the order of 100 Mbps, this implies 1 Mbps as an upper limit.  In addition, these applications send their traffic in a smooth (i.e. paced) manner, where the number of bytes sent in any time interval "T" is less than or equal to R * T + 1500 bytes, where "R" is the maximum rate described above.</t>  

        <t>Note that, while such flows ordinarily don't implement a traditional congestion control mechanism, they nonetheless are expected to comply with existing guidance for safe deployment on the Internet, for example the requirements in <xref target="RFC8085"/> and <xref target="RFC3551" section="2"/> (also see the circuit breaker limits in <xref target="RFC8083" section="4.3"/> and the description of inelastic pseudowires in <xref target="RFC7893" section="4"/>). To be clear, the description of NQB-marked flows in this document should not be interpreted as suggesting that such flows are in any way exempt from this responsibility.</t> 

        <t>Applications that align with the description of behavior in the preceding paragraphs in this section SHOULD identify themselves to the network using a Diffserv Code Point (DSCP) of 45 (decimal) so that their packets can be queued separately from QB flows. The choice of the value 45 is motivated in part by the desire to achieve separate queuing in existing WiFi networks (see <xref target="wifi"/>) and by the desire to make implementation of the PHB simpler in network gear that has the ability to classify traffic based on ranges of DSCP value (see <xref target="aggregation"/> for further discussion). In networks where another (e.g., a local-use) codepoint is designated for NQB traffic, or where specialized PHBs are available that can meet specific application requirements (e.g., a guaranteed-latency path for voice traffic), it could be preferred to use another DSCP.  In end systems where the choice of using DSCP 45 is not available to the application, the CS5 DSCP (40 decimal) could be used as a fallback.  See <xref target="aggregation"/> for rationale as to why this choice could be fruitful.</t>
        
        <t>If the application's traffic exceeds the rate equation provided in the first paragraph of this section, the application SHOULD NOT mark its traffic with the NQB DSCP. In such a case, the application could instead consider implementing a low latency congestion control mechanism as described in <xref target="I-D.ietf-tsvwg-ecn-l4s-id"/>.  At the time of writing, it is believed that 1 Mbps is a reasonable upper bound on instantaneous traffic rate for an NQB-marked application, but this value is of course subject to the context in which the application is expected to be deployed.</t>

        <t>An application that marks its traffic as NQB but happens to exceed the available path capacity (even on an instantaneous basis) runs the risk of being subjected to a traffic protection algorithm (see <xref target="traffic_protection"/>), which could result in the excess traffic being discarded or queued separately as default traffic (and thus potentially delivered out of order).  As a result, applications that aren't clearly beneath the threshold described above would need to weigh the risk of additional loss or out-of-order delivery against the expected latency benefits of NQB treatment in determining whether to mark their packets as NQB.</t>

        <t>The sender requirements outlined in this section are all related to observable attributes of the packet stream, 
          which makes it possible for network elements (including nodes implementing the PHB) to monitor for inappropriate 
          usage of the DSCP, and re-mark traffic that does not comply. This functionality, when implemented as part of the 
          PHB is described in <xref target="traffic_protection"/>.</t>


      </section>


      <section anchor="aggregation" numbered="true">
        <name>Aggregation of the NQB DSCP with other Diffserv PHBs</name>
        <t>It is RECOMMENDED that networks and nodes that do not support the NQB PHB be configured to treat NQB-marked traffic the same as traffic marked "Default".  It is additionally RECOMMENDED that such networks and nodes simply classify the NQB DSCP into the same treatment aggregate as Default traffic, or encapsulate the NQB-marked packet, rather than re-marking NQB traffic as Default.  This preservation of the NQB marking enables hops further along the path to provide the NQB PHB successfully.</t>

        <t>In backbone and core network switches (particularly if shallow-buffered), as well as in nodes that do not typically experience congestion, treating NQB-marked traffic the same as Default might be sufficient to preserve loss/latency/jitter performance for NQB traffic. In other nodes, treating NQB-marked traffic as Default could result in degradation of loss/latency/jitter performance but is recommended nonetheless in order to preserve the incentives described in <xref target="phb_requirements"/>. An alternative, in controlled environments where there is no risk of mismarking of traffic, would be to aggregate NQB-marked traffic with real-time, latency sensitive traffic. Similarly, networks and nodes that aggregate service classes as discussed in <xref target="RFC5127"/> and <xref target="RFC8100"/> might not be able to provide a PDB/PHB that meets the requirements of this document. In these cases it is RECOMMENDED that NQB-marked traffic be aggregated into the Elastic Treatment Aggregate (for <xref target="RFC5127"/> networks) or the Default / Elastic Treatment Aggregate (for <xref target="RFC8100"/> networks), although in some cases a network operator might instead choose to aggregate NQB traffic into the (Bulk) Real-Time Treatment Aggregate. Either approach comes with trade-offs: when the aggregated traffic encounters a bottleneck, aggregating with Default/Elastic traffic could result in a degradation of loss/latency/jitter performance for NQB traffic, while aggregating with Real-Time (assuming such traffic is provided a prioritized PHB) risks creating an incentive for mismarking of non-compliant traffic as NQB (except in controlled environments). In either case, the NQB DSCP SHOULD be preserved (possibly via encapsulation) in order to limit the negative impact that such networks would have on end-to-end performance for NQB traffic. This aligns with recommendations in <xref target="RFC5127"/>.</t>

        <t>Nodes that support the NQB PHB may choose to aggregate other service classes into the NQB queue. This is particularly useful in cases where specialized PHBs for these other service classes are not provided. Candidate service classes for this aggregation would include those that carry inelastic traffic that has low to very-low tolerance for loss, latency and/or jitter as discussed in <xref target="RFC4594"/>. These could include Telephony (EF/VA), Signaling (CS5), Real-Time Interactive (CS4) and Broadcast Video (CS3). Or, in some networks, equipment limitations may necessitate aggregating all traffic marked with DSCPs 40-47 (i.e., whose three MSBs are 0b101). As noted in <xref target="sender"/>, the choice of the value 45 is motivated in part by the desire to make this aggregation simpler in network equipment that can classify packets via comparing the DSCP value to a range of configured values.</t>
      </section>

      <section anchor="end-to-end" numbered="true">
        <name>End-to-end usage and DSCP Re-marking</name>
        <t>In contrast to some existing standard PHBs, many of which are typically only meaningful within a Diffserv Domain (e.g., an AS or an enterprise network), this PHB is expected to be used end-to-end across the Internet, wherever suitable operator agreements apply.  Under the <xref target="RFC2474"/> model, this requires that the corresponding DSCP is recognized by all operators and mapped across their boundaries accordingly.</t>

        <t>If NQB support is extended across a DiffServ domain boundary, the interconnected networks agreeing to support NQB SHOULD use the value 45 for NQB at network interconnection, unless a different DSCP is explicitly documented in the TCA (Traffic Conditioning Agreement, see <xref target="RFC2475"/>) for that interconnection.  Similar to the handling of DSCPs for other PHBs (and as discussed in [RFC2475]), networks can re-mark NQB traffic to a DSCP other than 45 for internal usage. To ensure reliable end-to-end NQB PHB treatment, the appropriate NQB DSCP should be restored when forwarding to another network.</t>

        <t>In order to enable interoperability with WiFi equipment as described in <xref target="wifi_interop"/>, networks SHOULD ensure NQB traffic is marked DSCP 45 prior to a customer access link, subject to the safeguards described below and in that section.</t>

        <section anchor="unmanaged" numbered="true">
          <name>Unmanaged Networks</name>
          <t>As discussed in <xref target="RFC2475" section="4"/>, there may be cases where a network operator is delivering traffic into a network outside of their control, where there is no knowledge of the traffic management capabilities of the downstream domain, and no agreement in place (e.g., a residential ISP delivering traffic to a customer's home network that may contain a legacy WiFi AP). In such cases, the network operator should presume that the existing network equipment in the downstream domain does not support the NQB PHB and might instead prioritize traffic marked with the NQB DSCP.  In these cases, the network operator SHOULD take precautions to prevent issues that could be caused by excessive NQB traffic and/or traffic mismarked as NQB.</t>

          <t>Network equipment that is intended to deliver traffic into such unmanaged networks (e.g., an access network gateway for a residential ISP) SHOULD by default ensure that NQB traffic is re-marked with a DSCP that is unlikely to result in prioritized treatment in the downstream domain, such as DSCP 0 (Default). Such equipment SHOULD support the ability to configure the re-marking, so that (when it is appropriate) traffic can be delivered as NQB-marked. As an alternative to re-marking, the operator could deploy a traffic protection (see <xref target="traffic_protection"/>) or a shaping/policing function on NQB-marked traffic that minimizes the potential for negative impacts on Default traffic.  It should be noted that a traffic protection function as defined in this document might only provide protection from issues occuring in subsequent network hops if the device implementing the traffic protection function is the bottleneck link on the path, so it might not be a solution for all situations. In the case that a traffic policing function or a rate shaping function is applied to the aggregate of NQB traffic destined to such a downstream domain, the policer/shaper rate SHOULD be set to either 5% of the interconnection data rate, or 5% of the typical rate for such interconnections, whichever is greater, with excess traffic being either dropped or re-marked and classified for Default forwarding.  A traffic policing function SHOULD allow approximately 100 ms of burst tolerance (e.g. a token bucket depth equal to 100 ms multiplied by the policer rate). A traffic shaping function SHOULD allow approximately 10 ms of burst tolerance, and approximately 50 ms of buffering.</t>  

          <t>The recommendation to limit NQB traffic to 5% in these situations is based on an expectation of support for at least 5 simultaneous NQB streams, and SHOULD be adjusted according to local network policy.</t> 

        </section>
      </section>

      <section numbered="true">
        <name>The NQB DSCP and Tunnels</name>
        <t><xref target="RFC2983"/> discusses tunnel models that support Diffserv. It describes a "uniform model" in which the inner DSCP is copied to the outer header at encapsulation, and the outer DSCP is copied to the inner header at decapsulation. It also describes a "pipe model" in which the outer DSCP is not copied to the inner header at decapsulation.  Both models can be used in conjunction with the NQB PHB. In the case of the pipe model, any DSCP manipulation (re-marking) of the outer header by intermediate nodes would be discarded at tunnel egress, potentially improving the possibility of achieving NQB treatment in subsequent nodes.</t>
        <t>As is discussed in <xref target="RFC2983"/>, tunnel protocols that are sensitive to reordering can result in undesirable interactions if multiple DSCP PHBs are signaled for traffic within a tunnel instance. This is true for NQB-marked traffic as well. If a tunnel contains a mix of QB and NQB traffic, and this is reflected in the outer DSCP in a network that supports the NQB PHB, it would be necessary to avoid a reordering-sensitive tunnel protocol.</t>
      </section>
    </section>

    <section anchor="phb_requirements" numbered="true">
      <name>Non-Queue-Building PHB Requirements</name>

        <t>It is important that incentives are aligned correctly, i.e., that there is a benefit to the application in marking its packets correctly, and a disadvantage (or at least no benefit) to an application in intentionally mismarking its traffic. Thus, a useful property of nodes (i.e. network switches and routers) that support separate queues for NQB and QB flows is that for flows consistent with the NQB sender requirements in <xref target="sender"/>, the NQB queue would likely be a better choice than the QB queue; and for flows inconsistent with those requirements, the QB queue would likely be a better choice than the NQB queue (this is discussed further in this section and <xref target="Security"/>). By adhering to these principles, there is no incentive for senders to mismark their traffic as NQB. As mentioned previously, the NQB designation and marking is intended to convey verifiable traffic behavior, as opposed to simply a desire for differentiated treatment. As a result, any mismarking can be identified by the network.</t>         


      <section numbered="true">
        <name>Primary Requirements</name>
        <t>A node supporting the NQB PHB makes no guarantees on latency or data rate for NQB-marked flows, but instead aims to provide an upper-bound to queuing delay for as many such marked flows as it can and shed load when needed.</t>
        
        <t>A node supporting the NQB PHB MUST provide a queue for Non-Queue-Building traffic separate from any queue used for Queue-Building traffic.</t>
        
        <t>A node supporting the NQB PHB SHOULD NOT rate limit or rate police the aggregate of NQB traffic separately from Queue-Building traffic of equivalent importance. An exception to this recommendation is discussed in <xref target="unmanaged"/>.</t>
        
        <t>The NQB queue SHOULD be given equivalent forwarding preference compared to Queue-Building traffic of equivalent importance. The node SHOULD provide a scheduler that allows QB and NQB traffic of equivalent importance to share the link in a fair manner, e.g., a deficit round-robin scheduler with equal weights. Compliance with these recommendations helps to ensure that there are no incentives for QB traffic to be mismarked as NQB. </t>
        
        <t>A node supporting the NQB PHB SHOULD treat traffic marked as Default (DSCP=0) as QB traffic having equivalent importance to the NQB-marked traffic.  A node supporting the NQB DSCP MUST support the ability to configure the classification criteria that are used to identify QB and NQB traffic of equivalent importance.</t>
        
        <t>The NQB queue SHOULD have a buffer size that is significantly smaller than the buffer provided for QB traffic. It is expected that most QB traffic is engineered to work well when the network provides a relatively deep buffer (e.g., on the order of tens or hundreds of ms) in nodes where support for the NQB PHB is advantageous (i.e., bottleneck nodes). Providing a similarly deep buffer for the NQB queue would be at cross purposes to providing very low queueing delay and would erode the incentives for QB traffic to be marked correctly. An NQB buffer size less than or equal to 10 ms is RECOMMENDED.</t>

        <t>In some cases, existing network gear has been deployed that cannot readily be upgraded or configured to support the PHB requirements. This equipment might however be capable of loosely supporting an NQB service – see <xref target="wifi_interop"/> for details and an example where this is particularly important. A similar approach might prove necessary in other network environments.</t>

      </section>

      <section anchor="traffic_protection" numbered="true">
        <name>Traffic Protection</name>
        <t>It is possible that due to an implementation error or misconfiguration, a QB flow would end up getting mismarked as NQB, or vice versa. In the case of a low data rate flow that isn't marked as NQB and therefore ends up in the QB queue, it would only impact its own quality of service, and so it seems to be of lesser concern. However, a QB flow that is mismarked as NQB would cause queuing delays and/or loss for all the other flows that are sharing the NQB queue.</t>

        <t>To prevent this situation from harming the performance of the flows that are in compliance with the requirements in <xref target="sender"/>, network elements that support the NQB PHB SHOULD support a "traffic protection" function that can identify flows that are inconsistent with the sender requirements in <xref target="sender"/>, and either re-mark those flows/packets as Default and reclassify them to the QB queue or discard the offending traffic. Such a function SHOULD be implemented in an objective and verifiable manner, basing its decisions upon the behavior of the flow rather than on application-layer constructs. While it is possible to utilize a per-flow rate policer to perform this function, it is RECOMMENDED that traffic protection algorithms base their decisions on the detection of actual queuing, as opposed to simply packet arrival rate or data rate. It could be advantageous for a traffic protection function to employ hysteresis to prevent borderline flows from being reclassified capriciously.</t>

        <t>The traffic protection function described here requires that the network element maintain some sort of flow state. The traffic protection function MUST be designed to fail gracefully in the case that the flow state is exhausted.</t>

        <t>One example traffic protection algorithm can be found in <xref target="I-D.briscoe-docsis-q-protection"/>.  This algorithm maintains per-flow state for up to 32 simultaneous "queue-building" flows, and shared state for any additional flows in excess of that number. [NOTE (to be removed by RFC-Editor): This ISE submission draft is approved for publication as an RFC, the NQB draft should be held for publication until the queue protection RFC can be referenced.]</t> 

        <t>There are some situations where such a function is potentially not necessary. For example, a network element designed for use in controlled environments (e.g., enterprise LAN). Additionally, some networks might prefer to police the application of the NQB DSCP at the ingress edge, so that per-hop traffic protection is not needed.</t>
      </section>

      <section numbered="true">
        <name>Guidance for Very Low-Rate Links</name>
        <t>The NQB sender requirements in <xref target="sender"/> place responsibility in the hands of the application developer to determine the likelihood that the application's sending behavior could result in a queue forming along the path.  These requirements rely on application developers having a reasonable sense for the network context in which their application is to be deployed.  Even so, there will undoubtedly be networks that contain links having a data rate that is below the lower end of what is considered "typical", and some of these links could even be below the instantaneous sending rate of some NQB-marked applications.</t>

        <t>To limit the consequences of this scenario, operators of such networks SHOULD utilize a traffic protection function that is more tolerant of burstiness (i.e., a temporary queue).  Alternatively, operators of such networks MAY choose to disable NQB support (and thus aggregate NQB-marked traffic with Default traffic) on these low-speed links.  For links that are less than ten percent of "typical" path rates, it is RECOMMENDED that NQB support be disabled and for NQB-marked traffic to thus be carried using the default PHB.</t>   
      </section>

    </section>
    <section numbered="true">
      <name>Impact on Higher Layer Protocols</name>
      <t>Network elements that support the NQB PHB and that support traffic protection as discussed in the previous section introduce the possibility that flows classified into the NQB queue could experience out of order delivery or packet loss if their behavior is not consistent with NQB. This is particularly true if the traffic protection algorithm makes decisions on a packet-by-packet basis. In this scenario, a flow that is (mis)marked as NQB and that causes a queue to form in this bottleneck link could see some of its packets forwarded by the NQB queue, and some of them either discarded or redirected to the QB queue.  In the case of redirection, depending on the queueing latency and scheduling within the network element, this could result in packets being delivered out of order.  As a result, the use of the NQB DSCP by a higher layer protocol carries some risk that an increased amount of out of order delivery or packet loss will be experienced. This characteristic provides one disincentive for mismarking of traffic.</t>
    </section>
    <section numbered="true">
      <name>Configuration and Management</name>
      <t>As required above, nodes supporting the NQB PHB provide for the configuration of classifiers that can be used to differentiate between QB and NQB traffic of equivalent importance.  The default for such classifiers is recommended to be the assigned NQB DSCP (to identify NQB traffic) and the Default (0) DSCP (to identify QB traffic).</t>
    </section> 
    <section numbered="true">
      <name>Example Use Cases</name>
      <section numbered="true">
        <name>DOCSIS Access Networks</name>
        <t>Residential cable broadband Internet services are commonly configured with a single bottleneck link (the access network link) upon which the service definition is applied. The service definition, typically an upstream/downstream data rate tuple, is implemented as a configured pair of rate shapers that are applied to the user's traffic. In such networks, the quality of service that each application receives, and as a result, the quality of experience that it generates for the user is influenced by the characteristics of the access network link.</t>
        <t> To support the NQB PHB, cable broadband services MUST be configured to provide a separate queue for NQB-marked traffic. The NQB queue MUST be configured to share the service's rate shaped bandwidth with the queue for QB traffic.</t>
      </section>
      <section numbered="true">
        <name>Mobile Networks</name>
        <t>Historically, 3GPP mobile networks have utilised "bearers" to encapsulate each user's user plane traffic through the radio and core networks. A "dedicated bearer" can be allocated a Quality of Service (QoS) to apply any prioritisation to its flows at queues and radio schedulers. Typically, an LTE operator provides a dedicated bearer for IMS VoLTE (Voice over LTE) traffic, which is prioritised in order to meet regulatory obligations for call completion rates; and a "best effort" default bearer, for Internet traffic. The "best effort" bearer provides no guarantees, and hence its buffering characteristics are not compatible with low-latency traffic. The 5G radio and core systems offer more flexibility over bearer allocation, meaning bearers can be allocated per  traffic type (e.g., loss-tolerant, low-latency etc.) and hence support more suitable treatment of Internet real-time flows.</t>

        <t>To support the NQB PHB, the mobile network SHOULD be configured to give User Equipment a dedicated, low-latency, non-GBR, EPS bearer, e.g., one with QCI 7, in addition to the default EPS bearer; or a Data Radio Bearer with 5QI 7 in a 5G system (see Table 5.7.4-1: Standardized 5QI to QoS characteristics mapping in <xref target="SA-5G"/>).</t>
        <t>A packet carrying the NQB DSCP SHOULD be routed through the dedicated low-latency EPS bearer. A packet that has no associated NQB marking SHOULD NOT be routed through the  dedicated low-latency EPS bearer.</t>
      </section>
      <section anchor="wifi" numbered="true">
        <name>WiFi Networks</name>
        <t>WiFi networking equipment compliant with 802.11e/n/ac/ax <xref target="IEEE802-11"/> generally supports either four or eight transmit queues and four sets of associated Enhanced Multimedia Distributed Control Access (EDCA) parameters (corresponding to the four WiFi Multimedia (WMM) Access Categories) that are used to enable differentiated media access characteristics. As discussed in <xref target="RFC8325"/>, most existing WiFi implementations use a default DSCP to User Priority mapping that utilizes the most significant three bits of the Diffserv Field to select "User Priority" which is then mapped to the four WMM Access Categories.  <xref target="RFC8325"/> also provides an alternative mapping that more closely aligns with the DSCP recommendations provided by the IETF. In the case of some managed WiFi gear, this mapping can be controlled by the network operator, e.g., via <xref target="TR-369">TR-369</xref>.</t>

        <t>In addition to the requirements provided in other sections of this document, to support the NQB PHB, WiFi equipment (including equipment compliant with <xref target="RFC8325"/>) SHOULD map the NQB codepoint 45 into a separate queue in the same Access Category as the queue that carries default traffic (i.e. the Best Effort Access Category).</t> 

        <section anchor="wifi_interop" numbered="true">
          <name>Interoperability with Existing WiFi Networks</name>
          <t>While some existing WiFi equipment might be capable (in some cases via firmware update) of supporting the NQB PHB requirements, many currently deployed devices cannot be configured in this way. As a result, the remainder of this section discusses interoperability with these existing WiFi networks, as opposed to PHB compliance.</t> 

          <t>Since this equipment is widely deployed, and the WiFi link is commonly a bottleneck link, the performance of NQB-marked traffic across such links could have a significant impact on the viability and adoption of the NQB DSCP and PHB. Depending on the DSCP used to mark NQB traffic, existing WiFi equipment that uses the default mapping of DSCPs to Access Categories and the default EDCA parameters will support either the NQB PHB requirement for separate queuing of NQB traffic, or the recommendation to treat NQB traffic with priority equal to Default traffic, but not both.</t>

          <t>The DSCP value 45 is recommended for NQB. This maps NQB to UP_5 using the default mapping, which is in the "Video" Access Category. While this choice of DSCP enables these WiFi systems to support the NQB PHB requirement for separate queuing, existing WiFi devices generally utilize EDCA parameters that result in statistical prioritization of the "Video" Access Category above the "Best Effort" Access Category.  In addition this equipment does not support the remaining NQB PHB recommendations in <xref target="phb_requirements"/>. The rationale for the choice of DSCP 45 as well as its ramifications, and remedies for its limitations are discussed further below.</t>

          <t>The choice of separated queuing rather than equal priority in existing WiFi networks was motivated by the following:</t>
            <ul>
            <li>Separate queuing is necessary in order to provide a benefit for NQB-marked traffic. </li>
            <li>All known WiFi gear has hardware support (albeit generally not exposed for user control) for adjusting the EDCA parameters in order to meet the equal priority recommendation. This is discussed further below.</li>
            <li>NQB-compliant traffic is unlikely to cause more degradation to lower priority Access Categories than the existing recommended Video Access Category traffic types: Broadcast Video, Multimedia Streaming, Multimedia Conferencing from <xref target="RFC8325"/>, and AudioVideo, ExcellentEffort from <xref target="QOS_TRAFFIC_TYPE"/>.</li>
            <li>Application instances on WiFi client devices are already free to choose any Access Category that they wish, regardless of their sending behavior, without any policing of usage. So, the choice of 45 for NQB creates no new avenues for non-NQB-compliant client applications to exploit the prioritization function in WiFi. </li>
            <li>Several existing client applications that are compatible with the NQB sender requirements already select the Video Access Category, and thus would not see a degradation in performance by transitioning to the NQB DSCP, regardless of whether the network supported the PHB.</li>
            <li>For application traffic that originates outside of the WiFi network, and thus is transmitted by the Access Point, opportunities exist in the upstream network components to police the usage of the NQB codepoint and potentially re-mark traffic that is considered non-compliant, as is recommended in <xref target="unmanaged"/>. A residential ISP that re-marks the Diffserv field to zero, bleaches all DSCPs and hence would not be impacted by the introduction of traffic marked as NQB. Furthermore, any change to this practice ought to be done alongside the implementation of those recommendations in the current document.</li>
          </ul>

          <t>The choice of Video Access Category rather than the Voice Access Category was motivated by the desire to minimize the potential for degradation of Best Effort Access Category traffic.  The choice of Video Access Category rather than the Background Access Category was motivated by the much greater potential of degradation to NQB traffic that would be caused by the vast majority of traffic in most WiFi networks, which utilizes the Best Effort Access Category.</t>

          <t>If left unchanged, the prioritization of Video Access Category traffic (particularly in the case of traffic originating outside of the WiFi network as mentioned above) could erode the principle of alignment of incentives. In order to preserve the incentives principle for NQB, WiFi systems SHOULD be configured such that the EDCA parameters for the Video Access Category match those of the Best Effort Access Category. These changes can be deployed in managed WiFi systems or those deployed    
          by an ISP and are intended for situations when the vast majority of traffic that would use AC_VI is NQB.
          In other situations (e.g., consumer-grade WiFi gear deployed by an ISP's customer) this configuration might not be possible, and the requirements and recommendations in <xref target="unmanaged"/> would apply.</t>

          <t>Similarly, systems that utilize <xref target="RFC8325"/> but that are unable to fully support the PHB requirements, SHOULD map the recommended NQB codepoint 45 (or the locally determined alternative) to UP_5 in the "Video" Access Category.</t>
      </section>
      </section>
    </section>
    <section anchor="Acknowledgements" numbered="true">
      <name>Acknowledgements</name>
      <t>Thanks to Diego Lopez, Stuart Cheshire, Brian Carpenter, Bob Briscoe, Greg Skinner, Toke Hoeiland-Joergensen, Luca Muscariello, David Black, Sebastian Moeller, Ruediger Geib, Jerome Henry, Steven Blake, Jonathan Morton, Roland Bless, Kevin Smith, Martin Dolly, and Kyle Rose for their review comments.  Thanks also to Gorry Fairhurst, Ana Custura, and Ruediger Geib for their input on selection of appropriate DSCPs.</t>
    </section>
    <!-- Possibly a 'Contributors' section ... -->

     <section anchor="IANA" numbered="true">
      <name>IANA Considerations</name>
      <t>This document requests that IANA assign the Differentiated Services Field Codepoint (DSCP) 45 ('0b101101', 0x2D) from the "Differentiated Services Field Codepoints (DSCP)" registry (https://www.iana.org/assignments/dscp-registry/) ("DSCP Pool 3 Codepoints", Codepoint Space xxxx01, Standards Action) as the RECOMMENDED codepoint for Non-Queue-Building behavior.</t>

      <t>IANA should update this registry as follows:</t>
        <ul>
          <li>Name: NQB</li>
          <li>Value (Binary): 101101</li>
          <li>Value (Decimal): 45</li>
          <li>Reference: this document</li>
        </ul>

    </section>

    <section numbered="true">
      <name>Implementation Status</name>

      <t>Note to RFC Editor: This section should be removed prior to publication</t>

      <t>The NQB PHB is implemented in equipment compliant with the current DOCSIS 3.1
        specification, published by CableLabs at: 
        <eref target="https://www.cablelabs.com/specifications/search?query=&amp;category=DOCSIS&amp;subcat=DOCSIS%203.1&amp;doctype=Specifications&amp;content=false&amp;archives=false&amp;currentPage=1">CableLabs Specifications Search</eref>.</t>

      <t>CableLabs maintains a list of production cable modem devices that are Certified as being compliant to the DOCSIS Specifications, this list is available at <eref target="https://www.cablelabs.com/wp-content/uploads/2013/10/cert_qual.xlsx"/>. DOCSIS 3.1 modems certified in CW 134 or greater implement the NQB PHB. This includes products from Arcadyan Technology Corporation, Arris, AVM, Castlenet, Commscope, Hitron, Motorola, Netgear, Sagemcom and Vantiva.
      There are additional production implementations that have not been Certified as compliant to the specification, but which have been tested in non-public Interoperability Events. 
      These implementations are all proprietary, not available as open source.</t>
    </section>



    <section anchor="Security" numbered="true">
      <name>Security Considerations</name>
      <t>When the NQB PHB is fully supported in bottleneck links, there is no incentive for a Queue-Building application to mismark its packets as NQB (or vice versa). If a Queue-Building flow were to mismark its packets as NQB, it would be unlikely to receive a benefit by doing so, and it would usually experience a degradation.  The nature of the degradation would depend on the specifics of the PHB implementation (and on the presence or absence of a traffic protection function), but could include excessive packet loss, excessive latency variation and/or excessive out-of-order delivery. If a Non-Queue-Building flow were to fail to mark its packets as NQB, it could suffer the latency and loss typical of sharing a queue with capacity seeking traffic.</t>

      <t>In order to preserve low latency performance for NQB traffic, networks that support the NQB PHB will need to ensure that mechanisms are in place to prevent malicious NQB-marked traffic from causing excessive queue delays.  <xref target="traffic_protection"/> recommends the implementation of a traffic protection mechanism to achieve this goal but recognizes that other options might be more desirable in certain situations.  The recommendations on traffic protection mechanisms in this document presume that some type of "flow" state be maintained in order to differentiate between flows that are causing queuing delay and those that aren't.  Since this flow state is likely finite, this opens up the possibility of flow-state exhaustion attacks.  While this document requires that traffic protection mechanisms be designed with this possibility in mind, the outcomes of flow-state exhaustion would depend on the implementation.</t>
      
      <t>Notwithstanding the above, the choice of DSCP for NQB does allow existing WiFi networks to readily (and by default) support some of the PHB requirements, but without a traffic protection function, and (when left in the default state) by giving NQB traffic higher priority than QB traffic. This is not considered to be a compliant implementation of the PHB. These existing WiFi networks currently provide priority to half of the DSCP space, including the NQB DSCP.  While the NQB marking could be abused in order to gain priority on such links, the potential presence of traffic protection functions along the path (which apply to the NQB marking alone) would seem to make it less attractive for such abuse than any of the other 31 DSCP values that are provided high priority.</t>

      <t>The NQB signal (DSCP) is not integrity protected and could be changed by an on-path attacker. While re-marking DSCPs is permitted for various reasons (some are discussed in this document, others can be found in <xref target="RFC2474"/> and <xref target="RFC2475"/>), if done maliciously, this might negatively affect the QoS of the tampered flow. </t>
    </section>
  </middle>
  <!--  *****BACK MATTER ***** -->

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        
        <reference anchor="RFC8085" target="https://www.rfc-editor.org/info/rfc8085" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8085.xml">
          <front>
            <title>UDP Usage Guidelines</title>
            <seriesInfo name="DOI" value="10.17487/RFC8085"/>
            <seriesInfo name="RFC" value="8085"/>
            <seriesInfo name="BCP" value="145"/>
            <author initials="L." surname="Eggert" fullname="L. Eggert">
              <organization/>
            </author>
            <author initials="G." surname="Fairhurst" fullname="G. Fairhurst">
              <organization/>
            </author>
            <author initials="G." surname="Shepherd" fullname="G. Shepherd">
              <organization/>
            </author>
            <date year="2017" month="March"/>
          </front>
        </reference>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8325.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2474.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2983.xml"?>
<!--        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.0791.xml"?> -->

      </references>

      <references>
        <name>Informative References</name>

        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8033.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8034.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8289.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8290.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2475.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.4594.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8100.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.5127.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.7893.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.3551.xml"?>
        <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8083.xml"?>
        <?rfc include="reference.I-D.ietf-tsvwg-l4s-arch.xml"?>
        <?rfc include="reference.I-D.ietf-tsvwg-ecn-l4s-id.xml"?>
        <?rfc include="reference.I-D.ietf-tsvwg-aqm-dualq-coupled.xml"?>
        <?rfc include="reference.I-D.briscoe-docsis-q-protection.xml"?>
        <?rfc include="reference.I-D.ietf-tsvwg-dscp-considerations.xml"?>

        <reference anchor="Custura">
          <front>
            <title>Exploring DSCP modification pathologies in mobile edge networks</title>
            <seriesInfo name="TMA" value=""/>
            <author initials="A." surname="Custura"/>
            <author initials="A." surname="Venne"/>
            <author initials="G." surname="Fairhurst"/>
            <date year="2017"/>
          </front>
        </reference>
        <reference anchor="Barik">
          <front>
            <title>Can WebRTC QoS Work? A DSCP Measurement Study</title>
            <seriesInfo name="ITC" value="30"/>
            <author initials="R." surname="Barik"/>
            <author initials="M." surname="Welzl"/>
            <author initials="A." surname="Elmokashfi"/>
            <author initials="T." surname="Dreibholz"/>
            <author initials="S." surname="Gjessing"/>
            <date month="September" year="2018"/>
          </front>
        </reference>
        <reference anchor="SA-5G">
          <front>
            <title>System Architecture for 5G</title>
            <seriesInfo name="TS" value="23.501"/>
            <author>
              <organization>3GPP</organization>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="IEEE802-11" target="https://standards.ieee.org/standard/802_11-2020.html">
          <front>
            <title>IEEE 802.11-2020</title>
            <seriesInfo name="IEEE" value="802"/>
            <author fullname="IEEE-SA"/>
            <date month="December" year="2020"/>
          </front>
        </reference>
        <reference anchor="TR-369" target="https://usp.technology/specification/index.html">
          <front>
            <title>The User Services Platform</title>
            <author>
              <organization>Broadband Forum</organization>
            </author>
            <date year="2022" month="January"/>
          </front>
        </reference>
        <reference anchor="QOS_TRAFFIC_TYPE" target="https://learn.microsoft.com/en-us/windows/win32/api/qos2/ne-qos2-qos_traffic_type">
          <front>
            <title>QOS_TRAFFIC_TYPE enumeration</title>
            <author>
              <organization>Microsoft, Corporation</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
      </references>
    </references>
    <section>
      <name>DSCP Re-marking Policies</name>

        <t>Some network operators typically bleach (zero out) the Diffserv field on ingress into their network <xref target="I-D.ietf-tsvwg-dscp-considerations"/><xref target="Custura"/><xref target="Barik"/>, and in some cases apply their own DSCP for internal usage. Bleaching the NQB DSCP is not expected to cause harm to default traffic, but it will severely limit the ability to provide NQB treatment end-to-end. Reports on existing deployments of DSCP manipulation <xref target="Custura"/><xref target="Barik"/> categorize the re-marking behaviors into the following six policies:  bleach all traffic (set DSCP to zero), set the top three bits (the former Precedence bits) on all traffic to 0b000, 0b001, or 0b010, set the low three bits on all traffic to 0b000, or re-mark all traffic to a particular (non-zero) DSCP value.</t>

        <t>Regarding the DSCP value 45, there were no observations of DSCP manipulation reported in which traffic was marked 45 by any of these policies.  Thus it appears that these re-marking policies would be unlikely to result in QB traffic being marked as NQB (45).  In terms of the fate of NQB-marked traffic that is subjected to one of these policies, the result would be that NQB-marked traffic would be indistinguishable from some subset (possibly all) of other traffic.  In the policies where all traffic is re-marked using the same (zero or non-zero) DSCP, the ability for a subsequent network hop to differentiate NQB traffic via DSCP would clearly be lost entirely.</t>

        <t>In the policies where the top three bits are overwritten (see <xref target="I-D.ietf-tsvwg-dscp-considerations" section="4.2"/>), the NQB value (45) would receive the same marking as would the currently unassigned Pool 3 DSCPs 5,13,21,29,37,53,61, with all of these codepoints getting re-marked to DSCP = 5, 13 or 21 (depending on the overwrite value used). Since none of the DSCPs in the preceding lists are currently assigned by IANA, and they all are reserved for Standards Action, it is believed that they are not widely used currently, but this could vary based on local-usage, and could change in the future. If networks in which this sort of re-marking occurs (or networks downstream) classify the resulting codepoint (i.e. 5, 13, or 21) to the NQB PHB, or re-mark such traffic as 45, they risk treating as NQB other traffic, which was not originally marked as NQB.  In addition, as described in <xref target="I-D.ietf-tsvwg-dscp-considerations" section="6"/> future assignments of these 0bxxx101 codepoints would need to be made with consideration of the potential that they all are treated as NQB in some networks.</t> 

        <t>For the policy in which the low three bits are set to 0b000, the NQB (45) value would be re-marked to CS5 and would be indistinguishable from CS5, VA, EF (and the unassigned DSCPs 41, 42, 43).  Traffic marked using the existing standardized DSCPs in this list are likely to share the same general properties as NQB traffic (non capacity-seeking, very low data rate or relatively low and consistent data rate). Similarly, any future recommended usage for DSCPs 41, 42, 43 would likely be somewhat compatible with NQB treatment, assuming that IP Precedence compatibility (see <xref target="RFC4594" section="1.5.4"/>) is maintained in the future. Here there might be an opportunity for a node to provide the NQB PHB or the CS5 PHB to CS5-marked traffic and retain some of the benefits of NQB marking.  This could be another motivation to (as discussed in <xref target="aggregation"/>) classify CS5-marked traffic into NQB queue.</t>
        
    </section>
  </back>
</rfc>
<!-- vim: ft=xml tabstop=2 expandtab:
-->
