<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.21 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-brw-scone-throughput-advice-blob-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title abbrev="SCONE Blob">Throughput Advice Object for SCONE</title>
    <seriesInfo name="Internet-Draft" value="draft-brw-scone-throughput-advice-blob-02"/>
    <author fullname="Mohamed Boucadair">
      <organization>Orange</organization>
      <address>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <author fullname="Dan Wing">
      <organization abbrev="Cloud Software Group">Cloud Software Group Holdings, Inc.</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>danwing@gmail.com</email>
      </address>
    </author>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author fullname="Sridharan Rajagopalan">
      <organization abbrev="Cloud Software Group">Cloud Software Group Holdings, Inc.</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>sridharan.girish@gmail.com</email>
      </address>
    </author>
    <author initials="L." surname="Contreras" fullname="Luis M. Contreras">
      <organization>Telefonica</organization>
      <address>
        <postal>
          <country>Spain</country>
        </postal>
        <email>luismiguel.contrerasmurillo@telefonica.com</email>
      </address>
    </author>
    <date year="2024" month="December" day="13"/>
    <area>wit</area>
    <workgroup>scone</workgroup>
    <keyword>collaborative networking</keyword>
    <keyword>adaptive application</keyword>
    <abstract>
      <?line 58?>

<t>Traffic exchanged over a network may be subject to rate-limit policies for various operational reasons.
This document specifies a generic object (called, Throughput Advice) that can be used by mechanisms for hosts
to dynamically discover these network rate-limit policies. This information is then
passed to applications that might adjust their behaviors accordingly.</t>
      <t>The design of the throughput advice object is independent of the discovery channel (protocol, API, etc.).</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/boucadair/draft-xxx-ac-rate-policy-discovery"/>.</t>
    </note>
  </front>
  <middle>
    <?line 67?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Connectivity services are provided by networks to customers via
dedicated terminating points, such as customer edges (CEs) or User Equipment (UE).
To facilitate data transfer via the provider network, it is assumed that appropriate setup
is provisioned over the links that connect customer terminating points and a provider network (usually via a Provider Edge (PE)),
successfully allowing data exchange over these links. The required setup is referred to in this document as network attachments,
while the underlying link is referred to as "bearers".</t>
      <t>The bearer can be a physical or logical link that connects a customer device to a provider network. A bearer can be a wireless or wired link. The same or multiple bearer technologies can be used to establish the bearer (e.g., WLAN or cellular) to graft customer terminating points to a network.</t>
      <t><xref target="ac"/> shows an example of a network that connects CEs and hosts (UE, for example). These CEs are servicing
other (internal) hosts. The identification of these hosts is hidden from the network. The policies enforced at the network
for a network attachment are per-subscriber, not per-host. Typically, if a CE is provided with a /56 IPv6 prefix, policies are enforced
in the network on that /56 not the individual /64s that will be used by internal hosts. A customer terminating point may be serviced with one (e.g., UE#1, CE#1, and CE#3) or multiple network attachments (e.g., CE#2). For the sake of simplicity, <xref target="ac"/> does not show the interconnection with other networks or multi-homed CEs.</t>
      <figure anchor="ac">
        <name>Sample Network Attachments</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="512" viewBox="0 0 512 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,80 L 8,128" fill="none" stroke="black"/>
              <path d="M 8,160 L 8,208" fill="none" stroke="black"/>
              <path d="M 64,80 L 64,128" fill="none" stroke="black"/>
              <path d="M 64,160 L 64,208" fill="none" stroke="black"/>
              <path d="M 120,96 L 120,128" fill="none" stroke="black"/>
              <path d="M 120,160 L 120,192" fill="none" stroke="black"/>
              <path d="M 200,80 L 200,224" fill="none" stroke="black"/>
              <path d="M 368,80 L 368,224" fill="none" stroke="black"/>
              <path d="M 448,80 L 448,128" fill="none" stroke="black"/>
              <path d="M 448,176 L 448,208" fill="none" stroke="black"/>
              <path d="M 504,80 L 504,128" fill="none" stroke="black"/>
              <path d="M 504,176 L 504,208" fill="none" stroke="black"/>
              <path d="M 8,80 L 64,80" fill="none" stroke="black"/>
              <path d="M 200,80 L 368,80" fill="none" stroke="black"/>
              <path d="M 448,80 L 504,80" fill="none" stroke="black"/>
              <path d="M 64,96 L 120,96" fill="none" stroke="black"/>
              <path d="M 368,96 L 392,96" fill="none" stroke="black"/>
              <path d="M 416,96 L 448,96" fill="none" stroke="black"/>
              <path d="M 368,112 L 392,112" fill="none" stroke="black"/>
              <path d="M 416,112 L 448,112" fill="none" stroke="black"/>
              <path d="M 8,128 L 64,128" fill="none" stroke="black"/>
              <path d="M 120,128 L 144,128" fill="none" stroke="black"/>
              <path d="M 168,128 L 200,128" fill="none" stroke="black"/>
              <path d="M 448,128 L 504,128" fill="none" stroke="black"/>
              <path d="M 8,160 L 64,160" fill="none" stroke="black"/>
              <path d="M 120,160 L 144,160" fill="none" stroke="black"/>
              <path d="M 168,160 L 200,160" fill="none" stroke="black"/>
              <path d="M 448,176 L 504,176" fill="none" stroke="black"/>
              <path d="M 64,192 L 120,192" fill="none" stroke="black"/>
              <path d="M 368,192 L 392,192" fill="none" stroke="black"/>
              <path d="M 416,192 L 448,192" fill="none" stroke="black"/>
              <path d="M 8,208 L 64,208" fill="none" stroke="black"/>
              <path d="M 448,208 L 504,208" fill="none" stroke="black"/>
              <path d="M 200,224 L 368,224" fill="none" stroke="black"/>
              <g class="text">
                <text x="472" y="36">Hosts</text>
                <text x="456" y="52">O</text>
                <text x="472" y="52">O</text>
                <text x="488" y="52">O</text>
                <text x="472" y="68">\|/</text>
                <text x="404" y="100">NA</text>
                <text x="36" y="116">UE#1</text>
                <text x="404" y="116">NA</text>
                <text x="476" y="116">CE#2</text>
                <text x="156" y="132">NA</text>
                <text x="272" y="148">Network</text>
                <text x="156" y="164">NA</text>
                <text x="36" y="196">CE#1</text>
                <text x="404" y="196">NA</text>
                <text x="476" y="196">CE#3</text>
                <text x="40" y="228">/|\</text>
                <text x="480" y="228">/|\</text>
                <text x="24" y="244">O</text>
                <text x="40" y="244">O</text>
                <text x="56" y="244">O</text>
                <text x="464" y="244">O</text>
                <text x="480" y="244">O</text>
                <text x="496" y="244">O</text>
                <text x="40" y="260">Hosts</text>
                <text x="480" y="260">Hosts</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                                                        Hosts
                                                        O O O
                                                         \|/
.------.                .--------------------.         .------.
|      +------+         |                    +---NA----+      |
| UE#1 |      |         |                    +---NA----+ CE#2 |
'------'      +---NA----+                    |         '------'
                        |     Network        |
.------.      .---NA----+                    |
|      |      |         |                    |         .------.
| CE#1 +------'         |                    +---NA----+ CE#3 |
'------'                |                    |         '------'
   /|\                  '--------------------'            /|\
  O O O                                                  O O O
  Hosts                                                  Hosts
]]></artwork>
        </artset>
      </figure>
      <t>Customer terminating points are provided with a set of information (e.g., IP address/prefix) to successfully be
able to send and receive traffic over a network attachment. The required set of parameters to provision a network attachment is a function of the connectivity service offering. For example, a very limited set of parameters is required for mass-market service offering while a more elaborated set is required for Enterprise services. A comprehensive list of provisioning parameters that are available on
the PE-side of a network attachment is specified in <xref target="I-D.ietf-opsawg-ntw-attachment-circuit"/>.</t>
      <t>As discussed, e.g., in <xref section="4.2" sectionFormat="of" target="RFC7567"/>, packet dropping by network devices occurs
mainly to protect the network (e.g., congestion-unresponsive flows) and also to ensure fairness over a shared link. These policies may be intentional policies (e.g., enforced as part of the activation
of the network attachment and typically agreed upon service subscription)
or be reactive policies (e.g., enforced temporarily to manage an overload or during a DDoS attack mitigation). Rate-limits are usually
configured in (ingress) nodes. These rate-limits can be shared with customers when subscribing to a connectivity service (e.g., "A YANG Data Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery" <xref target="RFC8466"/>).</t>
      <t><xref target="sec-blob"/> defines a set of parameters that can be used by networks to share the rate-limit policies applied on a network attachment: Throughput Advice. The set of parameters are independent of the address family.</t>
      <t>This document does not assume nor preclude any specific signaling protocol to share the throughput advices. These parameters are independent of the channel that is used by hosts to discover such policies.</t>
      <t>Whether host-to-network, network-to-host, or both policies are included in throughput advice is deployment specific. All these combinations are supported in this document.</t>
      <t>Also, one or more throughput advice instances may be returned for a given traffic direction. Examples of such instances are discussed in <xref target="sec-ex"/>.</t>
      <t>As one can infer from the name, a throughput advice is advisory in nature. The advice is provided solely as a hint.</t>
      <t>In order to ease mapping with specific signaling mechanisms, allow for future extensions, and ensure consistent use of the advice, a new IANA registry is created in <xref target="sec-iana"/>.</t>
    </section>
    <section anchor="whats-out">
      <name>What's Out?</name>
      <t>This document does not make any assumption about:</t>
      <ul spacing="normal">
        <li>
          <t>The type of network (fixed, cellular, etc.) that terminates a network attachment.</t>
        </li>
        <li>
          <t>The services or applications that are delivered over a network attachment. Whether one or multiple services
are bound to the same network attachment is deployment specific.</t>
        </li>
        <li>
          <t>How the throughput advice is computed/set.</t>
        </li>
        <li>
          <t>The protocol machinery for validating, refreshing, detecting stale, and flushing out received advices.</t>
        </li>
        <li>
          <t>How applications running over a host can learn the bitrates associated with a network attachment. Typically, this can be achieved by invoking a dedicated API. However, the exact details of the API(s) is OS-specific and, thus, out of scope of this document.</t>
        </li>
      </ul>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

<t>This document makes use of the following term:</t>
      <dl>
        <dt>Rate-limit:</dt>
        <dd>
          <t>Used as a generic term to refer to a policy to restrict the maximum bitrate over a network attachment.</t>
        </dd>
        <dt/>
        <dd>
          <t>It can be used with or without any traffic classification.</t>
        </dd>
        <dt/>
        <dd>
          <t>A rate-limit can involve limiting the rate and/or burst size.</t>
        </dd>
      </dl>
    </section>
    <section anchor="sec-uc">
      <name>Sample Deployment Cases</name>
      <t>Some deployment use cases for throughput advice discovery are provided below:</t>
      <dl>
        <dt>Adaptive Application Behavior:</dt>
        <dd>
          <t>Discovery of intentional policy applied on network attachments when such information is not made available during the service activation or when network upgrades are performed. Adaptive applications will use the information to adjust their behavior.</t>
        </dd>
        <dt/>
        <dd>
          <t>Concretely, applications are supposed to have access to all throughput advice instances and would, thus, adjust their behavior as a function of the parameters indicated in a throughput policy.</t>
        </dd>
        <dt/>
        <dd>
          <t>Likewise, a host with multiple network attachments may use the discovered throughput advice instances over each network attachment to decide how to distribute its flows over these network attachments (prefer a network attachment to place an application session, migrate connection, etc.). That's said, this document does not make any recommendation about how a receiving host uses the discovered policy.</t>
        </dd>
        <dt/>
        <dd>
          <t>The throughput advice can feed mechanisms such as <xref section="4.4.2" sectionFormat="of" target="RFC7661"/> or <xref section="7.8" sectionFormat="of" target="RFC9002"/> to control the maximum burst size.</t>
        </dd>
        <dt>Network Assisted Offload:</dt>
        <dd>
          <t>A network may advertize a throughput advice when it is overloaded, including when it is under attack. The rate-limit policy is basically a reactive policy that is meant to adjust the behavior of connected hosts to better control the load during these exceptional events (issue with RAN resources, for example).</t>
        </dd>
        <dt/>
        <dd>
          <t>The mechanism can also be used to enrich the tools that are already available to better handle attack traffic close to the source <xref target="RFC9066"/>.</t>
        </dd>
        <dt>Better Local Services:</dt>
        <dd>
          <t>A user may configure policies on the CE such as securing some resources to a specific internal host used, e.g., for gaming or video streaming. The CE can use the throughput advice to share these rate-limit policies to connected hosts to adjust their forwarding behavior. Controlling the load at the source will allow to partition the resources between connected hosts.</t>
        </dd>
      </dl>
    </section>
    <section anchor="sec-blob">
      <name>Throughput Advice Object</name>
      <section anchor="throughput-parameters">
        <name>Throughput Parameters</name>
        <t>The throughput advice parameters leverage existing technologies for configuring policies in provider networks. <xref target="sec-overview"/> provides a brief overview of how inbound policies are enforced in ingress network nodes. The reader may refer to <xref target="RFC2697"/>, <xref target="RFC2698"/>, and <xref target="RFC4115"/> for examples of how various combinations of Committed Information Rate (CIR), Committed Burst Size (CBS), Excess Information Rate (EIR), Excess Burst Size (EBS), Peak Information Rate (PIR), and Peak Burst Size (PBS) are used for policing. Typically:</t>
        <ul spacing="normal">
          <li>
            <t>A Single-Rate, Two-Color Marker (1r2c) uses CIR and CBS.</t>
          </li>
          <li>
            <t>A Single-Rate, Three-Color Marker (1r3c) <xref target="RFC2697"/> uses CIR, CBS, and EBS.</t>
          </li>
          <li>
            <t>A Dual-Rate, Three-Color Marker (2r3c) <xref target="RFC2698"/> uses CIR, CBS, PIR, and PBS.</t>
          </li>
          <li>
            <t>2r3c when implemented with <xref target="RFC4115"/> uses CIR, CBS, EIR, and EBS. This mode allows for a better handling of in-profile traffic (refer to <xref section="1" sectionFormat="of" target="RFC4115"/> for more details).</t>
          </li>
        </ul>
        <t>An implementation example of these variants (and others) can be found at <xref target="VPP"/>.</t>
        <t>This version of the document uses the common denominator of all these policies: CIR/CBS.</t>
      </section>
      <section anchor="overall-object-structure">
        <name>Overall Object Structure</name>
        <t>A throughput advice object may include multiple throughput advices (referred to as "throughput advice instances"), each covering a specific match criteria. Each of these instances adheres to the structure defined in <xref target="sec-ins-structure"/>.</t>
        <t>Throughput advice objects are bound to the network interface over which the advice was received.</t>
        <t>The throughput advice object is described in CDDL <xref target="RFC8610"/> format shown in <xref target="cddl"/>. This format is meant to ease mapping with encoding specifics of a given discovery channel that supplies the throughput advice.</t>
        <figure anchor="cddl">
          <name>Throughput Advice Object Format in CDDL</name>
          <sourcecode type="CDDL"><![CDATA[
; Provides information about the rate-limit policy that is
; enforced for a network attachment.
; One or more throughput instances can be present in an advice.

throughput-advice =  [+ throughput-instance]

throughput-instance =  {
  ? instance-flags => flags,
  ? traffic-category => category,
  throughput => rate-limit
}

; Indicates scope, traffic direction, and reliability type.
; Default value for scope is per subscriber policy.
; Default value for direction is network-to-host direction.
; Default value for reliability is false (i.e., the policy is
; applicable to both reliable and unreliable traffic).
; If any of these parameters is not present, this is equivalent
; to enclosing the parameter with its default value.

flags =  {
  ? scope: &scope-values .default subscriber,
  ? direction: &direction-values .default n2h,
  ? reliability: &reliability-values .default any
}

scope-values = (subscriber: 0, host: 1, flow: 2)
direction-values = (n2h: 0, h2n: 1, bidir: 2)
reliability-values = (any: 0, reliable: 1, unreliable: 2)

; Indicates traffic category to which the policy is bound.
; If the value is set to 0, this means that the policy is
; enforced for all traffic.

category =  {
  ? tc: uint .default 0
}

; Indicates the rate and burst limits.
; Only CIR/CBS are mandatory to include.

rate-limit = {
  cir: uint,          ; Mbps
  cbs: uint .gt 0,    ; bytes
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="sec-ins-structure">
        <name>Throughput Advice Instance Attributes</name>
        <t>This section defines the set of attributes that are included in a throughput advice instance:</t>
        <dl>
          <dt>Instance Flags (IF):</dt>
          <dd>
            <t>These flags are used to express some generic properties of the applicability of the instance. The following flags are defined:
</t>
            <dl>
              <dt>S (Scope):</dt>
              <dd>
                <t>Indicates the granularity of enforcing policies.</t>
              </dd>
              <dt/>
              <dd>
                <t>This parameter specifies whether the policy is a per-subscriber, per-host, or per-flow policy.</t>
              </dd>
              <dt>D (Direction):</dt>
              <dd>
                <t>Indicates the direction on which to apply the enclosed policy.</t>
              </dd>
              <dt/>
              <dd>
                <t>When set to "00b", this flag indicates that this policy is for
network-to-host direction.</t>
              </dd>
              <dt/>
              <dd>
                <t>When set to "01b", this flag indicates that this policy is for
host-to-network direction.</t>
              </dd>
              <dt/>
              <dd>
                <t>When set to "10b", this flag indicates that this policy is for
both network-to-host and host-to-network directions.</t>
              </dd>
              <dt>R (Reliability):</dt>
              <dd>
                <t>Indicates the reliability type of traffic on which to apply the enclosed policy.</t>
              </dd>
              <dt/>
              <dd>
                <t>For example, reliable could map to Queue-Building (QB) and unreliable could map to Non-Queue-Building (NQB). One of the ways for application to make reliability markings visible is by following, e.g., the considerations in <xref section="4" sectionFormat="of" target="I-D.ietf-tsvwg-nqb"/>.</t>
              </dd>
              <dt/>
              <dd>
                <t>When set to "00b", this flag indicates that this policy is for both reliable and unreliable traffic.</t>
              </dd>
              <dt/>
              <dd>
                <t>When set to "01b", this flag indicates that this policy is for unreliable traffic.</t>
              </dd>
              <dt/>
              <dd>
                <t>When set to "10b", this flag indicates that this policy is for reliable traffic.</t>
              </dd>
              <dt/>
              <dd>
                <t>No meaning is associated with setting the field to "11b". Such value <bcp14>MUST</bcp14> be silently ignored by the receiver.</t>
              </dd>
              <dt>U:</dt>
              <dd>
                <t>Unassigned flags. See <xref target="sec-iana-ff"/>.</t>
              </dd>
            </dl>
          </dd>
          <dt>TC (Traffic Category):</dt>
          <dd>
            <t>Specifies a traffic category to which this policy applies.</t>
          </dd>
          <dt/>
          <dd>
            <t>The following values are supported:
</t>
            <ul spacing="normal">
              <li>
                <t>"0": All traffic. This is the default value.</t>
              </li>
              <li>
                <t>1-63: Unassigned values. See <xref target="sec-iana-tc"/>.</t>
              </li>
            </ul>
          </dd>
          <dt>Committed Information Rate (CIR) (Mbps):</dt>
          <dd>
            <t>An average rate that specifies the maximum number of bits that a network can
send (or receive) during one second over a network attachment.</t>
          </dd>
          <dt/>
          <dd>
            <t>The CIR value <bcp14>MUST</bcp14> be greater than or equal to 0.</t>
          </dd>
          <dt/>
          <dd>
            <t>If set to 0 (or a very low value), this indicates to the host that alternate paths (if any) should be preferred over this one.</t>
          </dd>
          <dt/>
          <dd>
            <t>This parameter is mandatory.</t>
          </dd>
          <dt>Committed Burst Size (CBS) (bytes):</dt>
          <dd>
            <t>Specifies the maximum burst size that can be transmitted at CIR.</t>
          </dd>
          <dt/>
          <dd>
            <t><bcp14>MUST</bcp14> be greater than zero.</t>
          </dd>
          <dt/>
          <dd>
            <t>This parameter is mandatory.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="sec-ex">
      <name>Examples</name>
      <t>For the sake of illustration, <xref target="ex"/> exemplifies the content of a throughput advice using JSON notations. The advice
includes one rate-limit instance that covers network-to-host traffic direction and is applicable to all traffic destined to any host of a subscriber.</t>
      <figure anchor="ex">
        <name>A JSON Example</name>
        <sourcecode type="json"><![CDATA[
{
    "throughput-advice": [
        {
            "direction": 0,
            "scope": 0,
            "tc": 0,
            "cir": 50,
            "cbs": 10000
        }
    ]
}
]]></sourcecode>
      </figure>
      <t>The advice conveyed in <xref target="ex-2"/> is similar to the advice in <xref target="ex"/>. The only difference is that default values are not explicitly signaled in <xref target="ex-2"/>.</t>
      <figure anchor="ex-2">
        <name>A JSON Example with Default Values Not Explicitly Signaled</name>
        <sourcecode type="json"><![CDATA[
{
    "throughput-advice": [
        {
            "cir": 50,
            "cbs": 10000
        }
    ]
}
]]></sourcecode>
      </figure>
      <t><xref target="ex-3"/> shows the example of an advice that encloses two instances, each for one traffic direction.</t>
      <figure anchor="ex-3">
        <name>A JSON Example with Both Traffic Directions</name>
        <sourcecode type="json"><![CDATA[
{
    "throughput-advice": [
        {
            "direction": 0,
            "cir": 50,
            "cbs": 10000
        },
        {
            "direction": 1,
            "cir": 30,
            "cbs": 8000
        }
    ]
}
]]></sourcecode>
      </figure>
      <t>If both directions are covered by the same rate-limit policy, then the advice can be supplied as shown in <xref target="ex-4"/></t>
      <figure anchor="ex-4">
        <name>A JSON Example with Single Bidir Rate-Limit Policy</name>
        <sourcecode type="json"><![CDATA[
{
    "throughput-advice": [
        {
            "direction": 2,
            "cir": 50,
            "cbs": 10000
        }
    ]
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>As discussed in <xref target="sec-uc"/>, sharing a throughput advice helps networks mitigate overloads, particularly during periods of high traffic volume.</t>
      <t>An attacker who has the ability to change the throughput advice objects exchanged over a network attachment may:</t>
      <dl>
        <dt>Decrease the bitrate value:</dt>
        <dd>
          <t>This may lower the perceived QoS if the host aggressively lowers its transmission rate.</t>
        </dd>
        <dt>Increase the bitrate value:</dt>
        <dd>
          <t>The network attachment will be overloaded, but still the rate-limit at the network will discard excess traffic.</t>
        </dd>
        <dt>Delete or remove the advice:</dt>
        <dd>
          <t>This is equivalent to deployments where the advice is not shared.</t>
        </dd>
      </dl>
    </section>
    <section anchor="sec-iana">
      <name>IANA Considerations</name>
      <section anchor="sec-iana-rlp">
        <name>Rate-Limit Policy Objects Registry Group</name>
        <t>This document requests IANA to create a new registry group entitled "SCONE Rate-Limit Policy Objects".</t>
      </section>
      <section anchor="sec-iana-ff">
        <name>Instance Flags Registry</name>
        <t>This document requests IANA to create a new registry entitled "Instance flags" under the "SCONE Rate-Limit Policy Objects" registry group (<xref target="sec-iana-rlp"/>).</t>
        <t>The initial values of this registry is provided in <xref target="iana-flow-flags"/>.</t>
        <table anchor="iana-flow-flags">
          <name>Instance Flags</name>
          <thead>
            <tr>
              <th align="left">Bit Position</th>
              <th align="left">Label</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">1</td>
              <td align="left">S</td>
              <td align="left">Scope</td>
              <td align="left">This-Document</td>
            </tr>
            <tr>
              <td align="left">2-3</td>
              <td align="left">D</td>
              <td align="left">Direction</td>
              <td align="left">This-Document</td>
            </tr>
            <tr>
              <td align="left">4-5</td>
              <td align="left">R</td>
              <td align="left">Reliability</td>
              <td align="left">This-Document</td>
            </tr>
            <tr>
              <td align="left">6-8</td>
              <td align="left"> </td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>The allocation policy of this new registry is "IETF Review" (<xref section="4.8" sectionFormat="of" target="RFC8126"/>).</t>
      </section>
      <section anchor="sec-iana-tc">
        <name>Traffic Category Registry</name>
        <t>This document requests IANA to create a new registry entitled "Traffic Category Types" under the "SCONE Rate-Limit Policy Objects" registry group (<xref target="sec-iana-rlp"/>).</t>
        <t>The initial values of this registry is provided in <xref target="iana-tc"/>.</t>
        <table anchor="iana-tc">
          <name>Traffic Category Values</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">All traffic</td>
              <td align="left">This-Document</td>
            </tr>
            <tr>
              <td align="left">1-63</td>
              <td align="left">Unassigned</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>The allocation policy of this new registry is "IETF Review" (<xref section="4.8" sectionFormat="of" target="RFC8126"/>).</t>
      </section>
      <section anchor="sec-iana-rate">
        <name>Rate Parameters Registry</name>
        <t>This document requests IANA to create a new registry entitled "Rate Parameters" under the "SCONE Rate-Limit Policy Objects" registry group (<xref target="sec-iana-rlp"/>).</t>
        <t>The initial values of this registry is provided in <xref target="iana-rate"/>.</t>
        <table anchor="iana-rate">
          <name>Initial Rate Parameters Values Values</name>
          <thead>
            <tr>
              <th align="left">Parameter</th>
              <th align="left">Description</th>
              <th align="left">Mandatory (Y/N)</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">cir</td>
              <td align="left">Committed Information Rate (CIR)</td>
              <td align="left">Y</td>
              <td align="left">This-Document</td>
            </tr>
            <tr>
              <td align="left">cbs</td>
              <td align="left">Committed Burst Size (CBS)</td>
              <td align="left">Y</td>
              <td align="left">This-Document</td>
            </tr>
          </tbody>
        </table>
        <t>The allocation policy of this new registry is "IETF Review" (<xref section="4.8" sectionFormat="of" target="RFC8126"/>).</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="VPP" target="https://s3-docs.fd.io/vpp/23.06/developer/corefeatures/policer.html">
          <front>
            <title>Policing</title>
            <author>
              <organization>Vector Packet Processor (VPP)</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-opsawg-ntw-attachment-circuit">
          <front>
            <title>A Network YANG Data Model for Attachment Circuits</title>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Richard Roberts" initials="R." surname="Roberts">
              <organization>Juniper</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Samier Barguil" initials="S." surname="Barguil">
              <organization>Nokia</organization>
            </author>
            <author fullname="Bo Wu" initials="B." surname="Wu">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="7" month="November" year="2024"/>
            <abstract>
              <t>   This document specifies a network model for attachment circuits.  The
   model can be used for the provisioning of attachment circuits prior
   or during service provisioning (e.g., VPN, Network Slice Service).  A
   companion service model is specified in the YANG Data Models for
   Bearers and 'Attachment Circuits'-as-a-Service (ACaaS) (I-D.ietf-
   opsawg-teas-attachment-circuit).

   The module augments the base network ('ietf-network') and the Service
   Attachment Point (SAP) models with the detailed information for the
   provisioning of attachment circuits in Provider Edges (PEs).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-ntw-attachment-circuit-14"/>
        </reference>
        <reference anchor="RFC7567">
          <front>
            <title>IETF Recommendations Regarding Active Queue Management</title>
            <author fullname="F. Baker" initials="F." role="editor" surname="Baker"/>
            <author fullname="G. Fairhurst" initials="G." role="editor" surname="Fairhurst"/>
            <date month="July" year="2015"/>
            <abstract>
              <t>This memo presents recommendations to the Internet community concerning measures to improve and preserve Internet performance. It presents a strong recommendation for testing, standardization, and widespread deployment of active queue management (AQM) in network devices to improve the performance of today's Internet. It also urges a concerted effort of research, measurement, and ultimate deployment of AQM mechanisms to protect the Internet from flows that are not sufficiently responsive to congestion notification.</t>
              <t>Based on 15 years of experience and new research, this document replaces the recommendations of RFC 2309.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="197"/>
          <seriesInfo name="RFC" value="7567"/>
          <seriesInfo name="DOI" value="10.17487/RFC7567"/>
        </reference>
        <reference anchor="RFC8466">
          <front>
            <title>A YANG Data Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery</title>
            <author fullname="B. Wen" initials="B." surname="Wen"/>
            <author fullname="G. Fioccola" initials="G." role="editor" surname="Fioccola"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Jalil" initials="L." surname="Jalil"/>
            <date month="October" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model that can be used to configure a Layer 2 provider-provisioned VPN service. It is up to a management system to take this as an input and generate specific configuration models to configure the different network elements to deliver the service. How this configuration of network elements is done is out of scope for this document.</t>
              <t>The YANG data model defined in this document includes support for point-to-point Virtual Private Wire Services (VPWSs) and multipoint Virtual Private LAN Services (VPLSs) that use Pseudowires signaled using the Label Distribution Protocol (LDP) and the Border Gateway Protocol (BGP) as described in RFCs 4761 and 6624.</t>
              <t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture defined in RFC 8342.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8466"/>
          <seriesInfo name="DOI" value="10.17487/RFC8466"/>
        </reference>
        <reference anchor="RFC7661">
          <front>
            <title>Updating TCP to Support Rate-Limited Traffic</title>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
            <author fullname="A. Sathiaseelan" initials="A." surname="Sathiaseelan"/>
            <author fullname="R. Secchi" initials="R." surname="Secchi"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This document provides a mechanism to address issues that arise when TCP is used for traffic that exhibits periods where the sending rate is limited by the application rather than the congestion window. It provides an experimental update to TCP that allows a TCP sender to restart quickly following a rate-limited interval. This method is expected to benefit applications that send rate-limited traffic using TCP while also providing an appropriate response if congestion is experienced.</t>
              <t>This document also evaluates the Experimental specification of TCP Congestion Window Validation (CWV) defined in RFC 2861 and concludes that RFC 2861 sought to address important issues but failed to deliver a widely used solution. This document therefore reclassifies the status of RFC 2861 from Experimental to Historic. This document obsoletes RFC 2861.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7661"/>
          <seriesInfo name="DOI" value="10.17487/RFC7661"/>
        </reference>
        <reference anchor="RFC9002">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9002"/>
          <seriesInfo name="DOI" value="10.17487/RFC9002"/>
        </reference>
        <reference anchor="RFC9066">
          <front>
            <title>Distributed Denial-of-Service Open Threat Signaling (DOTS) Signal Channel Call Home</title>
            <author fullname="T. Reddy.K" initials="T." surname="Reddy.K"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="J. Shallow" initials="J." surname="Shallow"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This document specifies the Denial-of-Service Open Threat Signaling (DOTS) signal channel Call Home, which enables a Call Home DOTS server to initiate a secure connection to a Call Home DOTS client and to receive attack traffic information from the Call Home DOTS client. The Call Home DOTS server in turn uses the attack traffic information to identify compromised devices launching outgoing DDoS attacks and take appropriate mitigation action(s).</t>
              <t>The DOTS signal channel Call Home is not specific to home networks; the solution targets any deployment in which it is required to block DDoS attack traffic closer to the source(s) of a DDoS attack.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9066"/>
          <seriesInfo name="DOI" value="10.17487/RFC9066"/>
        </reference>
        <reference anchor="RFC2697">
          <front>
            <title>A Single Rate Three Color Marker</title>
            <author fullname="J. Heinanen" initials="J." surname="Heinanen"/>
            <author fullname="R. Guerin" initials="R." surname="Guerin"/>
            <date month="September" year="1999"/>
            <abstract>
              <t>This document defines a Single Rate Three Color Marker (srTCM), which can be used as component in a Diffserv traffic conditioner. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2697"/>
          <seriesInfo name="DOI" value="10.17487/RFC2697"/>
        </reference>
        <reference anchor="RFC2698">
          <front>
            <title>A Two Rate Three Color Marker</title>
            <author fullname="J. Heinanen" initials="J." surname="Heinanen"/>
            <author fullname="R. Guerin" initials="R." surname="Guerin"/>
            <date month="September" year="1999"/>
            <abstract>
              <t>This document defines a Two Rate Three Color Marker (trTCM), which can be used as a component in a Diffserv traffic conditioner. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2698"/>
          <seriesInfo name="DOI" value="10.17487/RFC2698"/>
        </reference>
        <reference anchor="RFC4115">
          <front>
            <title>A Differentiated Service Two-Rate, Three-Color Marker with Efficient Handling of in-Profile Traffic</title>
            <author fullname="O. Aboul-Magd" initials="O." surname="Aboul-Magd"/>
            <author fullname="S. Rabie" initials="S." surname="Rabie"/>
            <date month="July" year="2005"/>
            <abstract>
              <t>This document describes a two-rate, three-color marker that has been in use for data services including Frame Relay services. This marker can be used for metering per-flow traffic in the emerging IP and L2 VPN services. The marker defined here is different from previously defined markers in the handling of the in-profile traffic. Furthermore, this marker doesn't impose peak-rate shaping requirements on customer edge (CE) devices. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4115"/>
          <seriesInfo name="DOI" value="10.17487/RFC4115"/>
        </reference>
        <reference anchor="I-D.ietf-tsvwg-nqb">
          <front>
            <title>A Non-Queue-Building Per-Hop Behavior (NQB PHB) for Differentiated Services</title>
            <author fullname="Greg White" initials="G." surname="White">
              <organization>CableLabs</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Ruediger Geib" initials="R." surname="Geib">
              <organization>Deutsche Telekom</organization>
            </author>
            <date day="8" month="November" year="2024"/>
            <abstract>
              <t>   This document specifies characteristics of a Non-Queue-Building Per-
   Hop Behavior (NQB PHB).  The NQB PHB provides a shallow-buffered,
   best-effort service as a complement to a Default deep-buffered best-
   effort service for Internet services.  The purpose of this NQB PHB is
   to provide a separate queue that enables smooth (i.e. non-bursty),
   low-data-rate, application-limited traffic microflows, 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 microflows, and updates the RFC8325
   guidance on mapping Diffserv to IEEE 802.11 for this codepoint.

   [NOTE (to be removed by RFC-Editor): This document references an ISE
   submission draft (I-D.briscoe-docsis-q-protection) that is approved
   for publication as an RFC.  This draft should be held for publication
   until the queue protection RFC can be referenced.]

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-nqb-27"/>
        </reference>
        <reference anchor="I-D.ietf-teas-5g-ns-ip-mpls">
          <front>
            <title>A Realization of Network Slices for 5G Networks Using Current IP/MPLS Technologies</title>
            <author fullname="Krzysztof Grzegorz Szarkowicz" initials="K. G." surname="Szarkowicz">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Richard Roberts" initials="R." surname="Roberts">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Julian Lucek" initials="J." surname="Lucek">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
              <organization>Telefonica</organization>
            </author>
            <date day="11" month="October" year="2024"/>
            <abstract>
              <t>   Slicing is a feature that was introduced by the 3rd Generation
   Partnership Project (3GPP) in mobile networks.  Realization of 5G
   slicing implies requirements for all mobile domains, including the
   Radio Access Network (RAN), Core Network (CN), and Transport Network
   (TN).

   This document describes a Network Slice realization model for IP/MPLS
   networks with a focus on the Transport Network fulfilling 5G slicing
   connectivity service objectives.  The realization model reuses many
   building blocks currently commonly used in service provider networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-5g-ns-ip-mpls-13"/>
        </reference>
        <reference anchor="RFC2475">
          <front>
            <title>An Architecture for Differentiated Services</title>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <author fullname="M. Carlson" initials="M." surname="Carlson"/>
            <author fullname="E. Davies" initials="E." surname="Davies"/>
            <author fullname="Z. Wang" initials="Z." surname="Wang"/>
            <author fullname="W. Weiss" initials="W." surname="Weiss"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines an architecture for implementing scalable service differentiation in the Internet. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2475"/>
          <seriesInfo name="DOI" value="10.17487/RFC2475"/>
        </reference>
      </references>
    </references>
    <?line 436?>

<section anchor="sec-overview">
      <name>Overview of Network Rate-Limit Policies</name>
      <t>As discussed, for example in <xref target="I-D.ietf-teas-5g-ns-ip-mpls"/>, a provider network's inbound policy can be implemented using one
of following options:</t>
      <ul spacing="normal">
        <li>
          <t>1r2c (single-rate two-color) rate limiter  </t>
          <t>
This is the most basic rate limiter, described in <xref section="2.3" sectionFormat="of" target="RFC2475"/>.
It meters at an ingress interface a
traffic stream and marks its packets as in-profile
(below CIR being enforced) or out-of-profile (above CIR being enforced).
In-profile packets are accepted and forwarded.  Out-of profile
packets are either dropped right at the ingress node (hard rate limiting),
or remarked (with different MPLS TC or DSCP TN markings) to
signify 'this packet should be dropped in the first place, if
there is a congestion' (soft rate limiting), depending on the
business policy of the provider network.  In the second case, while
packets above CIR are forwarded at an ingress node, they are subject to being
dropped during any congestion event at any place in the provider network.</t>
        </li>
        <li>
          <t>2r3c (two-rate three-color) rate limiter  </t>
          <t>
This was initially defined in <xref target="RFC2698"/>, and its improved version
in <xref target="RFC4115"/>.  The traffic is assigned to one of the these three
categories:  </t>
          <ul spacing="normal">
            <li>
              <t>Green, for traffic under CIR</t>
            </li>
            <li>
              <t>Yellow, for traffic between CIR and PIR</t>
            </li>
            <li>
              <t>Red, for traffic above PIR</t>
            </li>
          </ul>
          <t>
An inbound 2r3c meter implemented with <xref target="RFC4115"/>, compared to
<xref target="RFC2698"/>, is more 'customer friendly' as it doesn't impose
outbound peak-rate shaping requirements on customer edge (CE)
devices or hosts. 2r3c meters in general give greater flexibility for provider network edge
enforcement regarding accepting the traffic (green),
de-prioritizing and potentially dropping the traffic on transit during
congestion (yellow), or hard dropping the traffic (red).</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Eduard Vasilenko for the comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
AA==

-->

</rfc>
