<?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.6.36 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-olden-ippm-qoo-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title abbrev="QoO">Quality of Outcome</title>
    <seriesInfo name="Internet-Draft" value="draft-olden-ippm-qoo-01"/>
    <author fullname="Magnus Olden">
      <organization>Domos</organization>
      <address>
        <postal>
          <street>Gaustadalléen 21</street>
          <code>0349</code>
          <country>NORWAY</country>
        </postal>
        <email>magnus@domos.no</email>
      </address>
    </author>
    <author fullname="Bjørn Ivar Teigen">
      <organization>Domos</organization>
      <address>
        <postal>
          <street>Gaustadalléen 21</street>
          <code>0349</code>
          <country>NORWAY</country>
        </postal>
        <email>bjorn@domos.no</email>
      </address>
    </author>
    <date year="2023" month="July" day="10"/>
    <area>Transport</area>
    <workgroup>IP Performance Measurement</workgroup>
    <keyword>Quality Attenuation</keyword>
    <keyword>Application Outcomes</keyword>
    <keyword>Quality of Outcome</keyword>
    <keyword>Performance monitoring</keyword>
    <keyword>Network quality</keyword>
    <abstract>
      <?line 82?>

<t>This document describes a new network quality framework named Quality of Outcome (QoO). The QoO framework is unique among network quality frameworks in satisfying all the requirements layed out in "Requirements for a Network Quality Framework Useful for Applications, Users and Operators".</t>
      <t>The framework proposes a way of sampling network quality, setting network quality requirements and a formula for calculating the probability for the sampled network to satisfy network requirements.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://domoslabs.github.io/QoOID/draft-olden-ippm-qoo.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-olden-ippm-qoo/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        IP Performance Measurement Working Group mailing list (<eref target="mailto:ippm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ippm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ippm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/domoslabs/QoOID"/>.</t>
    </note>
  </front>
  <middle>
    <?line 88?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>"Requirements for a Network Quality Framework Useful for Applications, Users and Operators" <xref target="draft-teigen-ippm-app-quality-metric-reqs"/> describes a set of requirements for a network quality framework. This document explores how the quality attenuation metric and framework <xref target="TR-452.1"/> can be extended to meet the full set of requirements.</t>
      <t>Quality attenuation is a network quality metric that meets the most of the criteria set out in the requirements; it can capture the probability of a network satisfying application requirements, it is composable, and it can be compared to a variety of application requirements. The part that is yet missing is how to present quality attenuation results to end-users and application developers in an understandable way. We believe a per-application, per application-type, or per-SLA approach is appropriate here. The challenge lies in specifying how to simplify enough without losing too much in terms of precision and accuracy.</t>
      <t>We believe the probabilistic approach is key as the network stack and application's network quality adaptation can be highly complex. Applications and the underlying networking protocols makes separate optimizations based on their perceived network quality over time and saying something about an outcome with absolute certainty will be practically impossible. We can however make educated guesses on the probability of outcomes.</t>
      <t>We propose representing network quality as minimum required throughput and set of latency and loss percentiles. Application developers, regulatory bodies and other interested parties can describe network requirements in the same manner. We propose a formula for a distance measure between perfect and useless quality. This distance measure can, with some assumptions, calculate something that can be simplified into statements such as “A Video Conference has a 93% chance of being lag free on this network” all while making it possible to use the framework both for end-to-end test and analysis from within the network.</t>
      <t>The work proposes a minimum viable framework, and often trades precision for simplicity. The justification for this is to ensure adoption and usability in many different contexts such as active testing from applications and monitoring from network equipment. To counter the loss of precision, we require some parameters that allow for analysis of the precision.</t>
    </section>
    <section anchor="background">
      <name>Background</name>
      <t>The foundation of the framework is Quality Attenuation <xref target="TR-452.1"/>. This work will not go into detail about how to measure Quality Attenuation, but some relevant techniques are:</t>
      <ul spacing="normal">
        <li>Active probing with TWAMP Light / STAMP / IRTT</li>
        <li>Varying Latency Under Load Tests</li>
        <li>Varying Speed Tests with latency measures</li>
        <li>Simulating real traffic</li>
        <li>End-to-end measurements of real traffic</li>
        <li>TCP SYN ACK / DNS Lookup RTT Capture</li>
        <li>Estimation</li>
      </ul>
      <t>Quality Attenuation represents quality measurements as distributions. Using Latency distributions to measure network quality is nothing new and has been proposed by various researchers/practitioners. The novelty of the Quality Attenuation metric is to view packet loss as infinite (or too late to be of use e.g. &gt; 3 seconds) latency <xref target="TR-452.1"/>.</t>
      <t>Latency Distributions can be gathered via both passive monitoring and active testing. The active testing can use any type of IP traffic. It is OSI Layer and network technology independent, meaning it can be gathered in an end-user application, within some network equipment, or anywhere in between.</t>
      <t>A key assumption behind the choice of latency distribution is that different applications and application categories fail at different points of the latency distribution. Some applications, typically downloads, have lenient latency requirements. Video Conferences typically are sensitive to high 90th percentile latency and to the difference between the 90th and the 99th percentile. Online gaming typically has a low tolerance for high 99th percentile latency. All applications require a minumum level of throughput and a maximum packet loss rate. A network quality metric that aims to generalize network quality must take the latency distribution, throughput, and packet loss into consideration.</t>
      <t>Two distributions can be composed using convolution <xref target="TR-452.1"/>.</t>
    </section>
    <section anchor="sampling-requirements">
      <name>Sampling requirements</name>
      <t>To reach the design goal of being useful in the contexts laid out in "Requirements for a Network Quality Framework Useful for Applications, Users and Operators" <xref target="draft-teigen-ippm-app-quality-metric-reqs"/>, this work imposes no requirement on the time period or the network loading situation. This choice has pros and cons. Latency under load is extremely important, but average or median latency has a role too. However, a network quality metric that does not take latency under load into account is bound to fail at predicting application outcome.</t>
      <t>This framework only requires a latency distribution. If the sampling is done while the network is loaded, latency under load will be part of the distribution, which is encouraged, but is not always possible, for example when passively monitoring the latency of real traffic.</t>
      <t>It takes quite a few samples to have a statistically significant distribution. Modeling a distribution may be a challenging software engineering task, hence we need to sample the latency distribution at certain percentiles. A list of 10 percentiles in a logarithmic-esque fashion has already been suggested in industry [0th, 10th, 25th, 50th, 75th, 90th, 95th, 99th, 99.9th, 100th] and seems adequate. We propose to define a shared set of percentile values to report.</t>
      <t>The framework is flexible when it comes to the direction of traffic that is being sampled, but does require that it is noted whether the latency distribution is measured one-way or two-way. The framework does not require an explicit throughput measurement, but does require a note on the maximal observed throughput in the time period.</t>
      <t>By not requiring a specific number of samples, this framework allows taking 10 samples and calling it a distribution, which of course is not ideal. On the other hand, making the framework overly complex and difficult to adhere to using real-world equipment and applications is the best way to ensure that this framework goes unused. Constraints will vary for different network equipment and applications.</t>
      <t>To make sure we can trust measurements from others and analyze their precision, we require:</t>
      <ul spacing="normal">
        <li>Timestamp of first sample</li>
        <li>Duration of the sampling period</li>
        <li>Number of samples</li>
        <li>
          <t>Type of measurement:  </t>
          <ul spacing="normal">
            <li>Cyclic (a sample every Nth ms) - Specify N</li>
            <li>Bursts (X samples every Nth ms) - Specify X and N</li>
            <li>Passive (observing traffic and therefore unevenly sampled)</li>
          </ul>
        </li>
      </ul>
      <t>By requiring the report of these variables, we ensure that the network measurements can be analyzed for precision and confidence.</t>
    </section>
    <section anchor="describing-network-requirements">
      <name>Describing Network Requirements</name>
      <t>This work builds upon the work already proposed in the Broadband Forum standard called Quality of Experience Delivered (QED/TR-452) <xref target="TR-452.1"/>. In essence, it describes network requirements as a list of percentile and latency requirement tuples. In other words, a network requirement may be expressed as: The network requirement for this app quality level/app/app category/SLA is “at 4 Mbps, 90% of packets needs to arrive within 100 ms, 100% of packets needs to arrive within 200ms”. This list can be as simple as “100% of packets need to arrive within 200ms” or as long as you would like. For the sake of simplicity, the requirements percentiles must match one or more of the percentiles defined in the measurements, i.e., one can set requirements at the [0th, 10th, 25th, 50th, 75th, 90th, 95th, 99th, 99.9th, 100th] percentiles. The last specified percentile marks the acceptable packet loss. I.e. if the 99th percentile is defined, and the 99.9th or 100th percentile is not, 1% packet loss (100-99) is inferred.</t>
      <t>Applications do of course have throughput requirements. With classical TCP and typical UDP flows, latency and packet loss would be enough, as they are bound to create some latency or packet loss when ramping up throughput if subsequently they become hindered by insufficient bandwidth. However, we cannot always rely on monitoring latency exclusively, as low bandwidth may give poor application outcomes without necessarily inducing a lot of latency. Therefore, the network requirements should include a minimum throughput requirement.</t>
      <t>Whether the requirements are one-way or two-way must be specified. Where the requirement is one-way, the direction (uplink or downlink) must be specified. If two-way, a decomposition into uplink and downlink measurements may be specified.</t>
      <t>Until now, network requirements and measurements are what is already standardized in BBF TR-452 (aka QED) framework <xref target="TR-452.1"/>. The novel part of this work is what comes next. A method for going from Network Requirements and Network Measurements to probabilities of outcomes, or Quality of Outcomes if you will.</t>
      <t>To do that we need to make articulating the network requirements a little bit more complicated. A key design goal was to have a distance measure between perfect and useless, and have a way of quantifying what is ‘better’.</t>
      <t>We extend the requirements to include the quality required for perfection and a quality threshold beyond which the application is considered useless.</t>
      <t>This is named Network Requirements for Perfection (NRP). As an example: At 4 Mbps, 99% of packets need to arrive within 100ms, 99.9% within 200ms (implying that 0.1% packet loss is acceptable) for the outcome to be perfect.
Network Requirement points of uselessness (NRPoU): If 99% of the packets have not arrived after 200ms, or 99.9% within 300ms, the outcome will be useless.</t>
      <t>Where the NRPoU percentiles and NRP are a required pair then neither should define a percentile not included in the other - i.e., if the 99.9th percentile is part of the NRPoU then the NRP must also include the 99.9th percentile.</t>
    </section>
    <section anchor="calculating-quality-of-outcome-qoo">
      <name>Calculating Quality of Outcome (QoO)</name>
      <t>At this point we have everything we need to calculate the quality of the application outcome. The QoO. There are 3 scenarios:</t>
      <ol spacing="normal" type="1"><li>The network meets all the requirements for perfection. There is a 100% chance that the application is not lagging because of the network</li>
        <li>The network does meet one of the criteria of uselessness, including bandwidth. There is a 0% chance that the application will work because of the network</li>
        <li>The network does not meet NRP but is not beyond NRPoU.</li>
      </ol>
      <t>1 and 2 require nothing more from the framework. For 3, we will now specify the calculation between to translate these distances to a 0 to 100 measure. We use the percentile pair where the measured latency is the closest to the NRPoU as the application is only as good as its weakest link.</t>
      <t>Mathematically:
 QoO = min(ML, NRP, NRPoU) = (1-(ML-NRP)/(NRPoU-NRP)) * 100)</t>
      <t>Essentially, where on the relative distance between Network Requirement for Perfection (NRP) and Network Requirement Point of Uselessness (NRPoU) the Measured Latency (ML) lands, normalized to a percentage.</t>
      <t>Where:
NRP is network requirements for perfection. With minimum throughput and with percentiles and milliseconds
NRPoU is the points of uselessness. With percentiles and milliseconds
i is the length of NRP / NRPoU latency per percentile requirements
ML is Measured Latency in percentiles and milliseconds</t>
      <section anchor="example-requirements-and-measured-latency">
        <name>Example requirements and measured latency:</name>
        <t>NRP: 4 Mbps {99%, 250 ms},{99.9%, 350 ms}
NRPoU: {99%, 400 ms},{99.9%, 401 ms}
Measured Latency: .... 99% = 350ms, 99.9% = 352 ms
Measured Minumum bandwidth: 32 Mbps / 28 Mbps</t>
        <t>Then the QoO is defined:</t>
        <t>QoO</t>
        <artwork><![CDATA[
= Min(
 ((1-(350 ms - 250 ms )/(400 ms - 250 ms))*100),
 ((1-(352 ms - 350 ms)/(401 ms - 350 ms))*100)
 )

= Min (33.33,96.08)

= 33.33
]]></artwork>
        <t>In this example, we would say:
This application/SLA/application category has a 33% chance of being lag-free on this network</t>
      </section>
    </section>
    <section anchor="how-to-find-network-requirements">
      <name>How to find network requirements</name>
      <t>A key advantage of having a measurement that stretches between perfect and useless, as opposed to having a binary (Good/Bad) or other low resolution (Superbad/Bad/OK/Great/Supergreat) metrics, is that we have some leeway. The leeway is useful, for instance: a lower than 20% chance of lag free experience is intuitively not good and a greater than 90% chance of lag free experience is intuitively good --- meaning we don’t have to find perfection for making the QoO metric useful.</t>
      <t>Nevertheless we have to find some points for uselessness and perfection. There is no strict definition of when the network is so bad that the application is useless. For perfect, we may have a definition for some apps, but for apps like web browsing and gaming, lower latency is simply better. But to assist those who wish to make a requirement, we can say that if the end-user experience does not change when reducing the latency, the network quality is sufficient for the Network Requirements for Perfection (NRP) .</t>
      <t>Someone who wishes to make a network requirement for an application in the simplest possible way, should do something along these lines.</t>
      <ul spacing="normal">
        <li>Simulate increasing levels of latency</li>
        <li>Observe the application and note the threshold where the application stops working perfectly</li>
        <li>Observe the application and note the threshold where the application stops being useful at all</li>
      </ul>
      <t>Someone who wishes to find sophisticated network requirements might proceed in this way</t>
      <ul spacing="normal">
        <li>Set thresholds for acceptable fps, animation fluidity, i/o latency (voice, video, actions), or other metrics capturing outcomes that directly affects the user experience</li>
        <li>Create a tool for measuring these user-facing metrics</li>
        <li>Simulate varying latency distribution with increasing levels of latency while measuring the user facing metrics.</li>
      </ul>
      <t>A QoO score at 94 can be communicated as "John's smartphone has a 94% chance of lag-free Video Conferencing", however, this does not mean that at any point of time there is a 6% chance of lag. It means there is a 6% chance of experiencing lag during the entire session/time-period, and the network requirements should be adjusted accordingly.</t>
      <t>The reason for making the QoO metric for a session or time-period is to make it understandable for an end-user, an end-user should not have to relate to the time period the metric is for.</t>
      <section anchor="an-example">
        <name>An example</name>
        <t>Example.com's video-conferencing service requirements can be translated into the QoO Framework. For best performance for video meetings they specify 4/4 Mbps, 100 ms latency, &lt;1% packet loss, and &lt;30 ms jitter. This can be translated to an NRP (if we take some liberties with interpreting their jitter score):</t>
        <t>NRP example.com video conferencing service:
At minimum 4/4 Mbps.
{0p=70ms,99p=100ms}</t>
        <t>For minimum requirements example.com does not specify anything, but at 500ms latency or 1000ms 99p latency, a video conference is very unlikely to work in a remotely satisfactory way.</t>
        <t>NRPoU
{0p=500,99p=1000ms}</t>
        <t>Of course, it is possible to specify network requirements for Teams with multiple NRP/NRPoU, for different quality levels or one/two way video and so on. Then one can calculate the QoO at each level.</t>
      </section>
    </section>
    <section anchor="known-weaknesses-and-open-questions">
      <name>Known Weaknesses and open questions</name>
      <t>We have described a way of simplifying how the network requirements of applications can be compared to quality attenuation measurements. The simplification introduces several artifacts that may or may not be significant. If new information emerges that indicate other tradeoffs are more fit for our purpose, we should switch before this Internet Draft moves further. In this section we discuss some known limitations.</t>
      <t>Volatile networks - in particular, mobile cellular networks - pose a challenge for network quality prediction, with the level of assurance of the precition likely to decrease as session duration increases. Historic network conditions for a given cell may help indicate times of network load or reduced transmission power, and their effect on throughput/latency/loss. However: as terminals are mobile, the signal bandwidth available to a given terminal can change by an order of magnitude within seconds due to physical radio factors. These include whether the terminal is at the edge of cell, or undergoing cell handover, the interference and fading from the local environment, and any switch between radio bearers with differing signal bandwidth and transmission-time intervals (e.g. 4G and 5G). This suggests a requirement for measuring quality attenuation to and from an individual terminal, as that can account for the factors described above. How that facility is provisioned onto indiviudal terminals, and how terminal-hosted applications can trigger a quality attenuation query, is an open question.</t>
      <section anchor="missing-temporal-information-in-distributions">
        <name>Missing Temporal Information in Distributions.</name>
        <t>These two latency series: 1,200,1,200,1,200,1,200,1,200 and 1,1,1,1,1,200,200,200,200,200 will have identical distributions, but may have different application performance. Ignoring this information is a tradeoff between simplicity and precision. To capture all information necessary to perfectly capture outcomes we are getting into extreme computational complexity. As an application's performance is bound by how the developers react to varying network performance, meaning nearly all different series of latencies may have different application outcomes.</t>
      </section>
      <section anchor="subsampling-the-real-distribution">
        <name>Subsampling the real distribution</name>
        <t>Additionally, we cannot capture latency on every packet that is sent. We can probe and sample, but there will always be unknowns. We are now in the realm of probability. Perfection is impossible, but instead of denying this, we should embrace it, which is why talking about the probability of outcomes is the way forward.</t>
      </section>
      <section anchor="assuming-linear-relationship-between-perfect-and-useless-and-that-it-is-not-really-a-probability">
        <name>Assuming Linear Relationship between Perfect and useless (and that it is not really a probability)</name>
        <t>One can conjure up scenarios where 50ms latency is actually worse than 51ms latency as developers may have chosen 50ms as the threshold for changing quality, and the threshold may be imperfect. Taking these scenarios into account would add another magnitude of complexity to determining network requirements and finding a distance measure (between requirement and actual measured capability).</t>
      </section>
      <section anchor="binary-bandwidth-threshold">
        <name>Binary Bandwidth threshold</name>
        <t>Choosing this is to reduce complexity, but we do acknowledge that the applications are not that simple. The defence for this trade off is that insufficient bandwidth will cause queues and therefore latency, and it should be possible to see this. Additionally, network requirements can be set up per quality level (resolution, fps etc.) for the application. However, having too many network requirements also increases the complexity for users of the framework, and it is still unclear if this is the optimal tradeoff.</t>
      </section>
      <section anchor="low-resolution-on-packet-loss">
        <name>Low resolution on Packet Loss</name>
        <t>To ensure simplicity, packet loss is described as infinite latency and the resolution will be bound to the percentiles we chose to sample. There is a good argument that some applications need higher resolution on packet loss for sufficiently describing application outcomes. If this good evidence is presented for this, packet loss should be measured separately and added to the QoO formula.</t>
      </section>
      <section anchor="arbitrary-selection-of-percentiles">
        <name>Arbitrary selection of percentiles:</name>
        <t>There is a need for a selection of percentiles, as we in the name of simplicity can’t use them all. But how should we select them? The 0th (minimal) and 50th (median) percentile have implicit usage by themselves. <xref target="BITAG"/> discusses that the 90th, 98th and 99th percentiles are key for some apps. In general the wisdom is that the higher percentiles are more useful for interactive applications, but only to a certain point. At this point an application sees it as packet loss and may adapt to it. Should we pick the 95th, 96th percentile, the 96.5th or the 97th? We don’t know, and as this is likely not universal across applications and applications classes, we simply have to choose arbitrarily, and to the best of our knowledge.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation status</name>
      <t>Note to RFC Editor: This section <bcp14>MUST</bcp14> be removed before publication
of the document.</t>
      <t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in <xref target="RFC7942"/>.
The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to
RFCs. Please note that the listing of any individual implementation
here does not imply endorsement by the IETF. Furthermore, no effort
has been spent to verify the information presented here that was
supplied by IETF contributors. This is not intended as, and must not
be construed to be, a catalog of available implementations or their
features. Readers are advised to note that other implementations may
exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups
to assign due consideration to documents that have the benefit of
running code, which may serve as evidence of valuable experimentation
and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as
they see fit".</t>
      <section anchor="qoo-c">
        <name>qoo-c</name>
        <ul spacing="normal">
          <li>
            <t>Link to the open-source repository:  </t>
            <t>
https://github.com/domoslabs/qoo-c</t>
          </li>
          <li>
            <t>The organization responsible for the implementation:  </t>
            <t>
Domos</t>
          </li>
          <li>
            <t>A brief general description:  </t>
            <t>
A C library for calculating Quality of Outcome</t>
          </li>
          <li>
            <t>The implementation's level of maturity:  </t>
            <t>
A complete implentation of the specification described in this document</t>
          </li>
          <li>
            <t>Coverage:  </t>
            <t>
The library is tested with unit tests</t>
          </li>
          <li>
            <t>Licensing:  </t>
            <t>
GPL 2.0</t>
          </li>
          <li>
            <t>Implementation experience:  </t>
            <t>
Tested by the author. Needs additional testing by third parties.</t>
          </li>
          <li>
            <t>Contact information:  </t>
            <t>
Bjørn Ivar Teigen: bjorn@domos.no</t>
          </li>
          <li>
            <t>The date when information about this particular implementation was
last updated:  </t>
            <t>
10th of July 2023</t>
          </li>
        </ul>
      </section>
      <section anchor="goresponsiveness">
        <name>goresponsiveness</name>
        <ul spacing="normal">
          <li>
            <t>Link to the open-source repository:  </t>
            <t>
https://github.com/network-quality/goresponsiveness</t>
          </li>
          <li>
            <t>The organization responsible for the implementation:  </t>
            <t>
University of Cincinatti for goresponsiveness as a whole, Domos for the QoO part.</t>
          </li>
          <li>
            <t>A brief general description:  </t>
            <t>
A network quality test written in Go. Capable of measuring RPM and QoO.</t>
          </li>
          <li>
            <t>The implementation's level of maturity:  </t>
            <t>
In active development</t>
          </li>
          <li>
            <t>Coverage:  </t>
            <t>
The QoO part is tested with unit tests</t>
          </li>
          <li>
            <t>Licensing:  </t>
            <t>
GPL 2.0</t>
          </li>
          <li>
            <t>Implementation experience:  </t>
            <t>
Needs testing by third parties</t>
          </li>
          <li>
            <t>Contact information:  </t>
            <t>
Bjørn Ivar Teigen: bjorn@domos.no  </t>
            <t>
William Hawkins III: hawkinwh@ucmail.uc.edu</t>
          </li>
          <li>
            <t>The date when information about this particular implementation was
last updated:  </t>
            <t>
10th of July 2023</t>
          </li>
        </ul>
      </section>
    </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?>

</section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="draft-teigen-ippm-app-quality-metric-reqs">
          <front>
            <title>Requirements for a Network Quality Framework Useful for Applications, Users, and Operators</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="TR-452.1" target="https://www.broadband-forum.org/download/TR-452.1.pdf">
          <front>
            <title>TR-452.1: Quality Attenuation Measurement Architecture and Requirements</title>
            <author>
              <organization>Broadband Forum</organization>
            </author>
            <date year="2020" month="September"/>
          </front>
        </reference>
        <reference anchor="BITAG" target="https://www.bitag.org/documents/BITAG_latency_explained.pdf">
          <front>
            <title>Latency Explained</title>
            <author>
              <organization>BITAG</organization>
            </author>
            <date year="2022" month="October"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 403?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA719W3Mcx5Xme/2KHDgcAzj6ggtpCVjLMkiQFMYEARGgZYXH
4ajuyu4usbqqVVmFZpuhCP2IediNmImY1/0H+7zzvj9Cv2TPd87JrKxGQ5bH
nrFNsrs6Ky8nz+U7l0wPh8OkyZvCnpm9L9u0yJuNqWbmum2m1dLuJelkUtt7
/Fhd7yXTtLHzqt6cmbycVUmSVdMyXdK7WZ3OmmFVZLYc5qvVcvhtVQ0PjxLX
Tpa5c3lVNpsVtbt8cffSmJ+ZtHAVdZqXmV1Z+qts9gZm7/L8Gf1T1fTp7d3L
vaRslxNbnyUZDXuWTKvS2dK17sw0dWsTmtVJktY2pY7u6rR0q6pu9pJ1Vb+f
11W7oseXN+bG1rOqXqbl1Jorm7q2tksMl7y3G2qanSVmaPzKz5vGlm3a0Hzx
+Hy1KvIpf/UUcXHzjlB4Go+0rMq8qeq8nOOXN7bBrMy38l5yT4PQgoz5KfM0
Rki39xV1QR2aV3gJz5dpXoCIRO/f5LaZjap6judpPV3Q80XTrNzZeIxmeJTf
25FvNsaD8aSu1s6O0cEYL87zZtFO6NWsWlauSCduTNt+eYHfCtoD10TdhjYj
eW2UV9J6vIsZRotmWewlSdo2i6oG0alPY2ZtUQgHXaXzsnXmGm/xTzTLtMz/
zNQ/MxcYjZ9bWfaS2/+GZzEqK/7JNbW1NMdXaeuaNEuL4j/+ty3N8RH/Oq0y
Gufw5Mmpfm3LBqz85vrtV+dfP5zRs2/+4//Upbm8T2tzZ/P5T5vX5JuqLv+O
00pKcEVDm3eWJJC68I3k6O3L56cnR5+ekUSR7BhwiFtUK1NbyIK2+PT49BAt
Xn75p+fVhS3848OTEzy+uXxBT+jBJ6dPjrmn5apg3hPGz2xDC3PG2anIhQp7
wySRDU5Xq6Ey93BpmzqfDmv7rTvjFXn18tZ+2+bC1c7QOkwaBMML1MuaKM9P
3jlLO8HNIil0A/xQ0z9pmZnrla1TkjIH/rx7O3zy9Hh01B8zPN0l4rGcmXNI
SENrpAfcezzdPe408K5RPiAeqas0m6D5y6pul/wTaytza1eNhfoyx4fHh8Ja
vHf+/ZuLl2fGC9N6vR5NfF/DGfpiMc2qdVnQ47FfyGiVzaiDZ5d35696S31N
o5bTjXnxYVWkeWmzR6eMV3/SfPImnesspi3TYcwv/6mQsf5k/Vg6K7/262lT
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
9xsl/x/B0EryHGYAAA==

-->

</rfc>
