<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" submissionType="IRTF" category="info" consensus="true" docName="draft-irtf-panrg-path-properties-08" number="9473" obsoletes="" updates="" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" prepTime="2023-09-13T11:00:08" indexInclude="true" scripts="Common,Latin" tocDepth="3">
  <link href="https://datatracker.ietf.org/doc/draft-irtf-panrg-path-properties-08" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9473" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Path Properties">A Vocabulary of Path Properties</title>
    <seriesInfo name="RFC" value="9473" stream="IRTF"/>
    <author initials="R." surname="Enghardt" fullname="Reese Enghardt">
      <organization showOnFrontPage="true">Netflix</organization>
      <address>
        <email>ietf@tenghardt.net</email>
      </address>
    </author>
    <author initials="C." surname="Krähenbühl" fullname="Cyrill Krähenbühl">
      <organization showOnFrontPage="true">ETH Zürich</organization>
      <address>
        <email>cyrill.kraehenbuehl@inf.ethz.ch</email>
      </address>
    </author>
    <date month="09" year="2023"/>
    <workgroup>Path Aware Networking</workgroup>
    <keyword>PAN</keyword>
    <keyword>path-aware network</keyword>
    <keyword>path property</keyword>
    <keyword>path selection</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">Path properties express information about paths across a
      network and the services provided via such paths.  In a path-aware
      network, path properties may be fully or partially available to entities
      such as endpoints.  This document defines and categorizes path
      properties.  Furthermore, the document identifies several path
      properties that might be useful to endpoints or other entities, e.g.,
      for selecting between paths or for invoking some of the provided
      services.  This document is a product of the Path Aware Networking
      Research Group (PANRG).</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This document is not an Internet Standards Track specification; it is
            published for informational purposes.  
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Research Task Force
            (IRTF).  The IRTF publishes the results of Internet-related
            research and development activities.  These results might not be
            suitable for deployment.  This RFC represents the consensus of the Path Aware Networking
            Research Group of the Internet Research Task Force (IRTF).
            Documents approved for publication by the IRSG are not
            candidates for any level of Internet Standard; see Section 2 of RFC
            7841.   
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9473" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2023 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology-usage-for-speci">Terminology Usage for Specific Technologies</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-use-cases-for-path-properti">Use Cases for Path Properties</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-path-selection">Path Selection</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-protocol-selection">Protocol Selection</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.3">
                <t indent="0" pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-service-invocation">Service Invocation</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-examples-of-path-properties">Examples of Path Properties</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">The current Internet architecture does not explicitly support
      endpoint discovery of forwarding paths through the network nor the
      discovery of properties and services associated with these paths.
      Path-aware networking, as defined in <xref target="RFC9217" sectionFormat="of" section="1.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9217#section-1.1" derivedContent="RFC9217"/>, describes "endpoint discovery of the
      properties of paths they use for communication across an internetwork,
      and endpoint reaction to these properties that affects routing and/or
      data transfer".  This document provides a generic definition of path
      properties, addressing the first of the questions in path-aware
      networking <xref target="RFC9217" format="default" sectionFormat="of" derivedContent="RFC9217"/>.</t>
      <t indent="0" pn="section-1-2">As terms related to paths have been used with different meanings in
      different areas of networking, first, this document provides a common
      terminology to define paths, path elements, and flows. Based on these
      terms, the document defines path properties.  Then, this document
      provides some examples of use cases for path properties.  Finally, the
      document lists several path properties that may be useful for the
      mentioned use cases. This list is intended to be neither exhaustive nor
      definitive.</t>
      <t indent="0" pn="section-1-3">Note that this document does not assume that any of the listed path
      properties are actually available to any entity. The question of how
      entities can discover and distribute path properties in a trustworthy
      way is out of scope for this document.</t>
      <t indent="0" pn="section-1-4">This document represents the consensus of the Path Aware Networking Research Group (PANRG).</t>
    </section>
    <section anchor="terminology" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <dl spacing="normal" newline="false" indent="3" pn="section-2-1">
        <dt pn="section-2-1.1">Entity:</dt>
        <dd pn="section-2-1.2">
          <t indent="0" pn="section-2-1.2.1">A physical or virtual device or function, or a collection of
          devices or functions, that plays a role related to path-aware
          networking for particular paths and flows.  An entity can be on-path
          or off-path. On the path, an entity may participate in forwarding
          the flow, i.e., what may be called "data plane functionality".  On or
          off the path, an entity may influence aspects of how the flow is
          forwarded, i.e., what may be called "control plane functionality",
          such as path selection or service invocation.  An entity influencing
          forwarding aspects is usually aware of path properties, e.g., by
          observing or measuring them or by learning them from another
          entity.</t>
        </dd>
        <dt pn="section-2-1.3">Node:</dt>
        <dd pn="section-2-1.4">
          <t indent="0" pn="section-2-1.4.1">An on-path entity that processes packets, e.g., sends, receives,
          forwards, or modifies them. A node may be physical or virtual, e.g.,
          a physical device, a service function provided as a virtual element,
          or even a single queue within a switch. A node may also be an entity
          that consists of a collection of devices or functions, e.g., an
          entire Autonomous System (AS).</t>
        </dd>
        <dt pn="section-2-1.5">Link:</dt>
        <dd pn="section-2-1.6">
          <t indent="0" pn="section-2-1.6.1">A medium or communication facility that connects two or more
          nodes with each other. A link enables a node to send packets to
          other nodes.  Links can be physical, e.g., a Wi-Fi network that
          connects an Access Point to stations, or virtual, e.g., a virtual
          switch that connects two virtual machines hosted on the same
          physical machine. A link is unidirectional. As such, bidirectional
          communication can be modeled as two links between the same nodes in
          opposite directions.</t>
        </dd>
        <dt pn="section-2-1.7">Path element:</dt>
        <dd pn="section-2-1.8">
          <t indent="0" pn="section-2-1.8.1">Either a node or a link. For example, a path element can be an
          Abstract Network Element (ANE) as defined in <xref target="RFC9275" format="default" sectionFormat="of" derivedContent="RFC9275"/>.</t>
        </dd>
        <dt pn="section-2-1.9">Path:</dt>
        <dd pn="section-2-1.10">
          <t indent="0" pn="section-2-1.10.1">A sequence of adjacent path elements over which a packet can be
          transmitted, starting and ending with a node.</t>
          <t indent="0" pn="section-2-1.10.2">Paths are unidirectional and time dependent, i.e., there can be a
          variety of paths from one node to another, and the path over which
          packets are transmitted may change.  A path definition can be strict
          (i.e., the exact sequence of path elements remains the same) or
          loose (i.e., the start and end node remain the same, but the path
          elements between them may vary over time).</t>
          <t indent="0" pn="section-2-1.10.3">The representation of a path and its properties may depend on the
          entity considering the path.  On the one hand, the representation
          may differ due to entities having partial visibility of path
          elements comprising a path or their visibility changing over time.
          On the other hand, the representation may differ due to treating
          path elements at different levels of abstraction.  For example, a
          path may be given as a sequence of physical nodes and the links
          connecting these nodes, be given as a sequence of logical nodes such
          as a sequence of ASes or an Explicit Route Object (ERO), or only
          consist of a specific source and destination that is known to be
          reachable from that source.</t>
          <t indent="0" pn="section-2-1.10.4">A multicast or broadcast setting where a packet is sent by one
          node and received by multiple nodes is described by multiple paths
          over which the packet is sent, one path for each combination of
          sending and receiving node; these paths do not have to be disjoint
          as defined by the disjointness path property, see <xref target="examples" format="default" sectionFormat="of" derivedContent="Section 4"/>.</t>
        </dd>
        <dt pn="section-2-1.11">Endpoint:</dt>
        <dd pn="section-2-1.12">
          <t indent="0" pn="section-2-1.12.1">The endpoints of a path are the start and end node of the
          path. For example, an endpoint can be a host as defined in <xref target="RFC1122" format="default" sectionFormat="of" derivedContent="RFC1122"/>, which can be a client (e.g., a
          node running a web browser) or a server (e.g., a node running a web
          server).</t>
        </dd>
        <dt pn="section-2-1.13">Reverse Path:</dt>
        <dd pn="section-2-1.14">
          <t indent="0" pn="section-2-1.14.1">The path that is used by a remote node in the context of
          bidirectional communication.</t>
        </dd>
        <dt pn="section-2-1.15">Subpath:</dt>
        <dd pn="section-2-1.16">
          <t indent="0" pn="section-2-1.16.1">Given a path, a subpath is a sequence of adjacent path elements
          of this path.</t>
        </dd>
        <dt pn="section-2-1.17">Flow:</dt>
        <dd pn="section-2-1.18">
          <t indent="0" pn="section-2-1.18.1">One or multiple packets to which the traits of a path or set of
          subpaths may be applied in a functional sense. For example, a flow
          can consist of all packets sent within a TCP session with the same
          five-tuple between two hosts, or it can consist of all packets sent
          on the same physical link.</t>
        </dd>
        <dt pn="section-2-1.19">Property:</dt>
        <dd pn="section-2-1.20">
          <t indent="0" pn="section-2-1.20.1">A trait of one or a sequence of path elements, or a trait of a
          flow with respect to one or a sequence of path elements. An example
          of a link property is the maximum data rate that can be sent over
          the link. An example of a node property is the administrative domain
          that the node belongs to. An example of a property of a flow with
          respect to a subpath is the aggregated one-way delay of the flow
          being sent from one node to another node over this subpath.  A
          property is thus described by a tuple containing the path
          element(s), the flow or an empty set if no packets are relevant for
          the property, the name of the property (e.g., maximum data rate),
          and the value of the property (e.g., 1 Gbps).</t>
        </dd>
        <dt pn="section-2-1.21">Aggregated property:</dt>
        <dd pn="section-2-1.22">
          <t indent="0" pn="section-2-1.22.1">A collection of multiple values of a property into a single
          value, according to a function. A property can be aggregated
          over:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2-1.22.2">
            <li pn="section-2-1.22.2.1">multiple path elements (i.e., a subpath), for example, the MTU
	    of a path as the minimum MTU of all links on the path,</li>
            <li pn="section-2-1.22.2.2">multiple packets (i.e., a flow), for example, the median
	    one-way latency of all packets between two nodes,</li>
            <li pn="section-2-1.22.2.3">or both path elements and packets, for example, the mean of
	    the queueing delays of a flow on all nodes along a path.</li>
          </ul>
          <t indent="0" pn="section-2-1.22.3">The aggregation function can be numerical (e.g., median, sum,
	    minimum) or logical (e.g., "true if all are true", "true if at
	    least 50% of values are true"), or it can be an arbitrary function
	    that maps multiple input values to an output value.</t>
        </dd>
        <dt pn="section-2-1.23">Observed property:</dt>
        <dd pn="section-2-1.24">
          <t indent="0" pn="section-2-1.24.1">A property that is observed for a specific path element, subpath,
          or path. A property may be observed using measurements, for example,
          the one-way delay of a specific packet transmitted from node to
          node.</t>
        </dd>
        <dt pn="section-2-1.25">Assessed property:</dt>
        <dd pn="section-2-1.26">
          <t indent="0" pn="section-2-1.26.1">An approximate calculation or assessment of the value of a
          property. An assessed property includes the reliability of the
          calculation or assessment. The notion of reliability depends on the
          property.  For example, a path property based on an approximate
          calculation may describe the expected median one-way latency of
          packets sent on a path within the next second, including the
          confidence level and interval. A non-numerical assessment may
          instead include the likelihood that the property holds.</t>
        </dd>
        <dt pn="section-2-1.27">Target property:</dt>
        <dd pn="section-2-1.28">
          <t indent="0" pn="section-2-1.28.1">An objective that is set for a property over a path element,
          subpath, or path.  Note that a target property can be set for
          observed properties, such as one-way delay, and also for properties
          that cannot be observed by the entity setting the target, such as
          inclusion of certain nodes on a path.</t>
        </dd>
      </dl>
      <section anchor="terminology-usage-for-specific-technologies" numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-terminology-usage-for-speci">Terminology Usage for Specific Technologies</name>
        <t indent="0" pn="section-2.1-1">The terminology defined in this document is intended to be general
        and applicable to existing and future path-aware technologies.  Using
        this terminology, a path-aware technology can define and consider
        specific path elements and path properties on a specific level of
        abstraction.  For instance, a technology may define path elements as
        IP routers, e.g., in source routing <xref target="RFC1940" format="default" sectionFormat="of" derivedContent="RFC1940"/>. Alternatively, it may consider path elements on a
        different layer of the Internet architecture <xref target="RFC1122" format="default" sectionFormat="of" derivedContent="RFC1122"/> or as a collection of entities not tied to a
        specific layer, such as an AS or ERO.  Even within a single path-aware
        technology, specific definitions might differ depending on the context
        in which they are used.  For example, the endpoints might be the
        communicating hosts in the context of the transport layer, ASes that
        contain the hosts in the context of routing, or specific applications
        in the context of the application layer.</t>
      </section>
    </section>
    <section anchor="use-cases" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-use-cases-for-path-properti">Use Cases for Path Properties</name>
      <t indent="0" pn="section-3-1">When a path-aware network exposes path properties to endpoints or
      other entities, these entities may use this information to achieve
      different goals.  This section lists several use cases for path
      properties.</t>
      <t indent="0" pn="section-3-2">Note that this is not an exhaustive list; as with every new
      technology and protocol, novel use cases may emerge, and new path
      properties may become relevant.  Moreover, for any particular
      technology, entities may have visibility of and control over different
      path elements and path properties and consider them on different levels
      of abstraction.  Therefore, a new technology may implement an existing
      use case related to different path elements or on a different level of
      abstraction.</t>
      <section anchor="path-selection" numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-path-selection">Path Selection</name>
        <t indent="0" pn="section-3.1-1">Nodes may be able to send flows via one (or a subset) out of
        multiple possible paths, and an entity may be able to influence the
        decision about which path(s) to use.  Path selection may be feasible
        if there are several paths to the same destination (e.g., in case of a
        mobile device with two wireless interfaces, both providing a path) or
        if there are several destinations, and thus several paths, providing
        the same service (e.g., Application-Layer Traffic Optimization (ALTO)
        <xref target="RFC5693" format="default" sectionFormat="of" derivedContent="RFC5693"/>, an application layer
        peer-to-peer protocol allowing endpoints a better-than-random peer
        selection).  Entities can express their intent to achieve a specific
        goal by specifying target properties for their paths, e.g., related to
        performance or security.  Then, paths can be selected that best meet
        the target properties, e.g., the entity can select these paths from
        all available paths or express the target properties to the network
        and rely on the network to select appropriate paths.</t>
        <t indent="0" pn="section-3.1-2">Target properties relating to network performance typically refer
        to observed properties, such as one-way delay, one-way packet loss,
        and link capacity.  Entities then select paths based on their target
        property and the assessed property of the available paths that best
        match the application requirements.  For such performance-related
        target properties, the observed property is similar to a Service Level
        Indicator (SLI), and the assessed property is similar to a Service
        Level Objective (SLO) for IETF Network Slices <xref target="I-D.ietf-teas-ietf-network-slices" format="default" sectionFormat="of" derivedContent="NETWORK-SLICES"/>.  As an
        example path-selection strategy, an entity may select a path with a
        short one-way delay for sending a small delay-sensitive query, while
        it may select a path with high link capacities on all links for
        retrieving a large file.</t>
        <t indent="0" pn="section-3.1-3">It is also possible for an entity to set target properties that it
        cannot (directly) observe, similar to Service Level Expectations
        (SLEs) for IETF Network Slices <xref target="I-D.ietf-teas-ietf-network-slices" format="default" sectionFormat="of" derivedContent="NETWORK-SLICES"/>.  This
        may apply to security-related target properties (e.g., to mandate that
        all enterprise traffic goes through a specific firewall) and path
        selection (e.g., to enforce traffic policies by allowing or disallowing
        sending flows over paths that involve specific networks or nodes).</t>
        <t indent="0" pn="section-3.1-4">Care needs to be taken when selecting paths based on observed path
        properties, as path properties that were previously measured may not
        be helpful in predicting current or future path properties, and such
        path selection may lead to unintended feedback loops. Also, there may
        be trade-offs between path properties (e.g., one-way delay and link
        capacity), and entities may influence these trade-offs with their
        choices.  Finally, path selection may impact fairness.  For example,
        if multiple entities concurrently attempt to meet their target
        properties using the same network resources, one entity's choices may
        influence the conditions on the path as experienced by flows of
        another entity.</t>
        <t indent="0" pn="section-3.1-5">As a baseline, a path-selection algorithm should aim to do a better
        job of meeting the target properties, and consequently accommodating
        the user's requirements, than the default case of not selecting a path
        most of the time.</t>
        <t indent="0" pn="section-3.1-6">Path selection can be done either by the communicating node(s) or
        by other entities within the network.  A network (e.g., an AS) can
        adjust its path selection for internal or external routing based on
        path properties.  In BGP, the Multi-Exit Discriminator (MED) attribute
        is used in the decision-making process to select which path to choose
        among those having the same AS path length and origin <xref target="RFC4271" format="default" sectionFormat="of" derivedContent="RFC4271"/>; in a path-aware network, instead
        of using this single MED value, other properties such as link capacity
        or link usage could additionally be used to improve load balancing or
        performance <xref target="I-D.ietf-idr-performance-routing" format="default" sectionFormat="of" derivedContent="PERFORMANCE-ROUTING"/>.</t>
      </section>
      <section anchor="protocol-selection" numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-protocol-selection">Protocol Selection</name>
        <t indent="0" pn="section-3.2-1">Before sending data over a specific path, an entity may select an
        appropriate protocol or configure protocol parameters depending on
        path properties.  For example, an endpoint may cache state if
        a path allows the use of QUIC <xref target="RFC9000" format="default" sectionFormat="of" derivedContent="RFC9000"/>; if so, it may first attempt to connect using QUIC
        before falling back to another protocol when connecting over this path
        again. A video-streaming application may choose an (initial) video
        quality based on the achievable data rate or the monetary cost of
        sending data (e.g., volume-based or flat-rate cost model).</t>
      </section>
      <section anchor="service-invocation" numbered="true" toc="include" removeInRFC="false" pn="section-3.3">
        <name slugifiedName="name-service-invocation">Service Invocation</name>
        <t indent="0" pn="section-3.3-1">In addition to path or protocol selection, an entity may choose to
        invoke additional functions in the context of Service Function
        Chaining <xref target="RFC7665" format="default" sectionFormat="of" derivedContent="RFC7665"/>, which may
        influence which nodes are on the path.  For example, a 0-RTT Transport
        Converter <xref target="RFC8803" format="default" sectionFormat="of" derivedContent="RFC8803"/> will be involved
        in a path only when invoked by an endpoint; such invocation will lead
        to the use of Multipath TCP (MPTCP) <xref target="RFC8684" format="default" sectionFormat="of" derivedContent="RFC8684"/> or tcpcrypt <xref target="RFC8548" format="default" sectionFormat="of" derivedContent="RFC8548"/> capabilities, while such use is not supported via
        the default forwarding path.  Another example is a connection that is
        composed of multiple streams where each stream has specific service
        requirements. An endpoint may decide to invoke a given service
        function (e.g., transcoding) only for some streams while others are
        not processed by that service function.</t>
      </section>
    </section>
    <section anchor="examples" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-examples-of-path-properties">Examples of Path Properties</name>
      <t indent="0" pn="section-4-1">This section gives some examples of path properties that may be
      useful, e.g., for the use cases described in <xref target="use-cases" format="default" sectionFormat="of" derivedContent="Section 3"/>.</t>
      <t indent="0" pn="section-4-2">Within the context of any particular technology, available path
      properties may differ as entities have insight into and are able to
      influence different path elements and path properties.  For example, an
      endpoint may have some visibility into path elements that are close and on a low
      level of abstraction (e.g., individual nodes within the first
      few hops), or it may have visibility into path elements that are far away
      and/or on a higher level of abstraction (e.g., the list of ASes
      traversed).  This visibility may depend on factors such as the physical
      or network distance or the existence of trust or contractual
      relationships between the endpoint and the path element(s).  A path
      property can be defined relative to individual path elements, a sequence
      of path elements, or "end-to-end", i.e., relative to a path that
      comprises of two endpoints and a single virtual link connecting
      them.</t>
      <t indent="0" pn="section-4-3">Path properties may be relatively dynamic, e.g., the one-way delay of
      a packet sent over a specific path, or non-dynamic, e.g., the MTU of an
      Ethernet link that only changes infrequently.  Usefulness over time
      differs depending on how dynamic a property is: the merit of a
      momentarily observed dynamic path property may diminish greatly as time
      goes on, e.g., it is possible for the observed values of one-way delay
      to change on timescales that are shorter than the one-way delay between
      the measurement point and an entity making a decision such as path
      selection, which may cause the measurement to be outdated when it
      reaches the decision-making entity. Therefore, consumers of dynamic path
      properties need to apply caution when using them, e.g., by aggregating
      them appropriately or applying a dampening function to their changes to
      avoid oscillation.  In contrast, the observed value of a less dynamic
      path property might stay relevant for a longer period of time, e.g., a
      NAT typically stays on a particular path during the lifetime of a
      connection involving packets sent over this path.</t>
      <dl spacing="normal" newline="false" indent="3" pn="section-4-4">
        <dt pn="section-4-4.1">Access Technology:</dt>
        <dd pn="section-4-4.2">
          <t indent="0" pn="section-4-4.2.1">The physical- or link-layer technology used for transmitting or
          receiving a flow on one or multiple path elements. If known, the
          access technology may be given as an abstract link type, e.g., as
          Wi-Fi, wired Ethernet, or cellular. It may also be given as a
          specific technology used on a link, e.g., 3GPP cellular or 802.11
          Wireless Local Area Network (WLAN). Other path elements relevant to
          the access technology may include nodes related to processing
          packets on the physical or link layer, such as elements of a
          cellular core network. Note that there is no common registry of
          possible values for this property.</t>
        </dd>
        <dt pn="section-4-4.3">Monetary Cost:</dt>
        <dd pn="section-4-4.4">
          <t indent="0" pn="section-4-4.4.1">The price to be paid to transmit or receive a specific flow
          across a network to which one or multiple path elements belong.</t>
        </dd>
        <dt pn="section-4-4.5">Service Function:</dt>
        <dd pn="section-4-4.6">
          <t indent="0" pn="section-4-4.6.1">A service function that a path element applies to a flow, see
          <xref target="RFC7665" format="default" sectionFormat="of" derivedContent="RFC7665"/>. Examples of abstract
          service functions include firewalls, Network Address Translation
          (NAT), and TCP Performance Enhancing Proxies. Some stateful service
          functions, such as NAT, need to observe the same flow in both
          directions, e.g., by being an element of both the path and the
          reverse path.</t>
        </dd>
        <dt pn="section-4-4.7">Transparency:</dt>
        <dd pn="section-4-4.8">
          <t indent="0" pn="section-4-4.8.1">When a node performs an action A on a flow F, the node is
          transparent to F with respect to some (meta-)information M if the
          node performs A independently of M.  M can, for example, be the
          existence of a protocol (header) in a packet or the content of a
          protocol header, payload, or both.  For example, A can be blocking
          packets or reading and modifying (other protocol) headers or
          payloads.  Transparency can be modeled using a function f, which
          takes as input F and M and outputs the action taken by the node.  If
          a taint analysis shows that the output of f is not tainted
          (impacted) by M, or if the output of f is constant for arbitrary
          values of M, then the node is considered to be transparent.  An IP
          router could be transparent to transport protocol headers such as
          TCP/UDP but not transparent to IP headers since its forwarding
          behavior depends on the IP headers.  A firewall that only allows
          outgoing TCP connections by blocking all incoming TCP SYN packets
          regardless of their IP address is transparent to IP but not to TCP
          headers.  Finally, a NAT that actively modifies IP and TCP/UDP
          headers based on their content is not transparent to either IP or
          TCP/UDP headers. Note that according to this definition, a node that
          modifies packets in accordance with the endpoints, such as a
          transparent HTTP proxy, as defined in <xref target="RFC9110" format="default" sectionFormat="of" derivedContent="RFC9110"/>, and a node listening and reacting to implicit or
          explicit signals, see <xref target="RFC8558" format="default" sectionFormat="of" derivedContent="RFC8558"/>, are
          not considered transparent.</t>
          <t indent="0" pn="section-4-4.8.2">Transparency only applies to nodes and not to links, as a link
          cannot modify or perform any other actions on the packets by
          itself. For example, if the content of a packet is altered when
          forwarded over a Generic Routing Encapsulation (GRE) tunnel <xref target="RFC2784" format="default" sectionFormat="of" derivedContent="RFC2784"/> <xref target="RFC7676" format="default" sectionFormat="of" derivedContent="RFC7676"/>, per this document the software instances that
          terminate the tunnel are considered nodes over which the actions are
          performed; thus, the transparency definition applies to these
          nodes.</t>
        </dd>
        <dt pn="section-4-4.9">Administrative Domain:</dt>
        <dd pn="section-4-4.10">
          <t indent="0" pn="section-4-4.10.1">The identity of an individual or an organization that controls
          access to a path element (or several path elements).  Examples of
          administrative domains are an IGP area, an AS, or a service provider
          network.</t>
        </dd>
        <dt pn="section-4-4.11">Routing Domain Identifier:</dt>
        <dd pn="section-4-4.12">
          <t indent="0" pn="section-4-4.12.1">An identifier indicating the routing domain of a path element.
          Path elements in the same routing domain are in the same
          administrative domain and use a common routing protocol to
          communicate with each other.  An example of a routing domain
          identifier is the globally unique Autonomous System Number (ASN) as
          defined in <xref target="RFC1930" format="default" sectionFormat="of" derivedContent="RFC1930"/>.</t>
        </dd>
        <dt pn="section-4-4.13">Disjointness:</dt>
        <dd pn="section-4-4.14">
          <t indent="0" pn="section-4-4.14.1">For a set of two paths or subpaths, the number of shared path
          elements can be a measure of intersection (e.g., Jaccard
          coefficient, which is the number of shared elements divided by the
          total number of elements). Conversely, the number of non-shared path
          elements can be a measure of disjointness (e.g., 1 - Jaccard
          coefficient). A multipath protocol might use disjointness as a
          metric to reduce the number of single points of failure. As paths
          can be defined at different levels of abstraction, two paths may be
          disjoint at one level of abstraction but not on another.</t>
        </dd>
        <dt pn="section-4-4.15">Symmetric Path:</dt>
        <dd pn="section-4-4.16">
          <t indent="0" pn="section-4-4.16.1">Two paths are symmetric if the path and its reverse path consist
          of the same path elements on the same level of abstraction, but in
          reverse order.  For example, a path that consists of layer 3
          switches and links between them and a reverse path with the same
          path elements but in reverse order are considered "routing"
          symmetric, as the same path elements on the same level of
          abstraction (IP forwarding) are traversed in the opposite direction.
          Symmetry can depend on the level of abstraction on which the path is
          defined or modeled. If there are two parallel physical links between
          two nodes, modeling them as separate links may result in a flow
          using asymmetric paths, and modeling them as a single virtual link
          may result in symmetric paths, e.g., if the difference between the
          two physical links is irrelevant in a particular context.</t>
        </dd>
        <dt pn="section-4-4.17">Path MTU:</dt>
        <dd pn="section-4-4.18">
          <t indent="0" pn="section-4-4.18.1">The maximum size, in octets, of a packet or frame that can be
          transmitted without fragmentation.</t>
        </dd>
        <dt pn="section-4-4.19">Transport Protocols available:</dt>
        <dd pn="section-4-4.20">
          <t indent="0" pn="section-4-4.20.1">Whether a specific transport protocol can be used to establish a
          connection over a path or subpath, e.g., whether the path is
          QUIC-capable or MPTCP-capable, based on input such as policy, cached
          knowledge, or probing results.</t>
        </dd>
        <dt pn="section-4-4.21">Protocol Features available:</dt>
        <dd pn="section-4-4.22">
          <t indent="0" pn="section-4-4.22.1">Whether a specific protocol feature is available over a path or
          subpath, e.g., Explicit Congestion Notification (ECN) or TCP Fast
          Open.</t>
        </dd>
      </dl>
      <t indent="0" pn="section-4-5">Some path properties express the performance of the transmission of a
      packet or flow over a link or subpath.  Such transmission performance
      properties can be observed or assessed, e.g., by endpoints or by path
      elements on the path, or they may be available as cost metrics, see
      <xref target="RFC9439" format="default" sectionFormat="of" derivedContent="RFC9439"/>.  Transmission performance
      properties may be made available in an aggregated form, such as averages
      or minimums.  Properties related to a path element that constitutes a
      single layer 2 domain are abstracted from the used physical- and link-layer technology, similar to <xref target="RFC8175" format="default" sectionFormat="of" derivedContent="RFC8175"/>.</t>
      <dl spacing="normal" newline="false" indent="3" pn="section-4-6">
        <dt pn="section-4-6.1">Link Capacity:</dt>
        <dd pn="section-4-6.2">
          <t indent="0" pn="section-4-6.2.1">The link capacity is the maximum data rate at which data that was
          sent over a link can correctly be received at the node adjacent to
          the link.  This property is analogous to the link capacity defined
          in <xref target="RFC5136" format="default" sectionFormat="of" derivedContent="RFC5136"/> and <xref target="RFC9097" format="default" sectionFormat="of" derivedContent="RFC9097"/> but is not restricted to IP-layer
          traffic.</t>
        </dd>
        <dt pn="section-4-6.3">Link Usage:</dt>
        <dd pn="section-4-6.4">
          <t indent="0" pn="section-4-6.4.1">The link usage is the actual data rate at which data that was
          sent over a link is correctly received at the node adjacent to the
          link.  This property is analogous to the link usage defined in <xref target="RFC5136" format="default" sectionFormat="of" derivedContent="RFC5136"/> and <xref target="RFC9097" format="default" sectionFormat="of" derivedContent="RFC9097"/> but is not restricted to IP-layer traffic.</t>
        </dd>
        <dt pn="section-4-6.5">One-Way Delay:</dt>
        <dd pn="section-4-6.6">
          <t indent="0" pn="section-4-6.6.1">The one-way delay is the delay between a node sending a packet
          and another node on the same path receiving the packet.  This
          property is analogous to the one-way delay defined in <xref target="RFC7679" format="default" sectionFormat="of" derivedContent="RFC7679"/> but is not restricted to IP-layer
          traffic.</t>
        </dd>
        <dt pn="section-4-6.7">One-Way Delay Variation:</dt>
        <dd pn="section-4-6.8">
          <t indent="0" pn="section-4-6.8.1">The variation of the one-way delays within a flow.  This property
          is similar to the one-way delay variation defined in <xref target="RFC3393" format="default" sectionFormat="of" derivedContent="RFC3393"/>, but it is not restricted to IP-layer
          traffic and it is defined for packets on the same flow instead of packets
          sent between a source and destination IP address.</t>
        </dd>
        <dt pn="section-4-6.9">One-Way Packet Loss:</dt>
        <dd pn="section-4-6.10">
          <t indent="0" pn="section-4-6.10.1">Packets sent by a node but not received by another node on the
          same path after a certain time interval are considered lost.  This
          property is analogous to the one-way loss defined in <xref target="RFC7680" format="default" sectionFormat="of" derivedContent="RFC7680"/> but is not restricted to IP-layer
          traffic.  Metrics such as loss patterns <xref target="RFC3357" format="default" sectionFormat="of" derivedContent="RFC3357"/> and loss episodes <xref target="RFC6534" format="default" sectionFormat="of" derivedContent="RFC6534"/> can be expressed as aggregated properties.</t>
        </dd>
      </dl>
    </section>
    <section anchor="security-considerations" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-5-1">If entities are basing policy or path-selection decisions on path
      properties, they need to rely on the accuracy of path properties that
      other devices communicate to them.  In order to be able to trust such
      path properties, entities may need to establish a trust relationship or
      be able to independently verify the authenticity, integrity, and
      correctness of path properties received from another entity.</t>
      <t indent="0" pn="section-5-2">Entities that reveal their target path properties to the network can
      negatively impact their own privacy, e.g., if the target property leaks
      personal information about a user, such as their identity or which (type
      of) application is used.  Such information could then allow network
      operators to block or reprioritize traffic for certain users and/or
      applications.  Conversely, if privacy-enhancing technologies, e.g.,
      MASQUE proxies <xref target="RFC9298" format="default" sectionFormat="of" derivedContent="RFC9298"/>, are used on a
      path, the path may only be partially visible to any single entity.  This
      may diminish the usefulness of path-aware technologies over this
      path.</t>
      <t indent="0" pn="section-5-3">The need for, and potential definition of, security- and privacy-related path properties, such as confidentiality and integrity
      protection of payloads, are the subject of ongoing discussion and
      research, for example, see <xref target="RFC9049" format="default" sectionFormat="of" derivedContent="RFC9049"/> and <xref target="RFC9217" format="default" sectionFormat="of" derivedContent="RFC9217"/>. As the discussion of such
      properties is not mature enough, they are out of scope for this
      document.  One aspect discussed in this context is that security-related
      properties are difficult to characterize since they are only meaningful
      with respect to a threat model that depends on the use case,
      application, environment, and other factors.  Likewise, properties for
      trust relations between entities cannot be meaningfully defined without
      a concrete threat model, and defining a threat model is out of scope for
      this document.  Properties related to confidentiality, integrity, and
      trust seem to be orthogonal to the path terminology and path properties
      defined in this document, since they are tied to the communicating nodes
      and the protocols they use (e.g., client and server using HTTPS, or
      client and remote network node using a VPN service) as well as
      additional context, such as keying material and who has access to such a
      context. In contrast, the path as defined in this document is typically
      oblivious to these aspects.  Intuitively, the path describes what
      function the network applies to packets, while confidentiality,
      integrity, and trust describe what function the communicating parties
      apply to packets.</t>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-6-1">This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-idr-performance-routing" to="PERFORMANCE-ROUTING"/>
    <displayreference target="I-D.ietf-teas-ietf-network-slices" to="NETWORK-SLICES"/>
    <references pn="section-7">
      <name slugifiedName="name-informative-references">Informative References</name>
      <reference anchor="I-D.ietf-teas-ietf-network-slices" target="https://datatracker.ietf.org/doc/html/draft-ietf-teas-ietf-network-slices-24" quoteTitle="true" derivedAnchor="NETWORK-SLICES">
        <front>
          <title>A Framework for Network Slices in Networks Built from IETF Technologies</title>
          <author fullname="Adrian Farrel" initials="A." surname="Farrel">
            <organization showOnFrontPage="true">Old Dog Consulting</organization>
          </author>
          <author fullname="John Drake" initials="J." surname="Drake">
            <organization showOnFrontPage="true">Juniper Networks</organization>
          </author>
          <author fullname="Reza Rokui" initials="R." surname="Rokui">
            <organization showOnFrontPage="true">Ciena</organization>
          </author>
          <author fullname="Shunsuke Homma" initials="S." surname="Homma">
            <organization showOnFrontPage="true">NTT</organization>
          </author>
          <author fullname="Kiran Makhijani" initials="K." surname="Makhijani">
            <organization showOnFrontPage="true">Futurewei</organization>
          </author>
          <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
            <organization showOnFrontPage="true">Telefonica</organization>
          </author>
          <author fullname="Jeff Tantsura" initials="J." surname="Tantsura">
            <organization showOnFrontPage="true">Nvidia</organization>
          </author>
          <date day="25" month="August" year="2023"/>
          <abstract>
            <t indent="0">This document describes network slicing in the context of networks built from IETF technologies. It defines the term "IETF Network Slice" to describe this type of network slice, and establishes the general principles of network slicing in the IETF context. The document discusses the general framework for requesting and operating IETF Network Slices, the characteristics of an IETF Network Slice, the necessary system components and interfaces, and how abstract requests can be mapped to more specific technologies. The document also discusses related considerations with monitoring and security. This document also provides definitions of related terms to enable consistent usage in other IETF documents that describe or use aspects of IETF Network Slices.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-teas-ietf-network-slices-24"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="I-D.ietf-idr-performance-routing" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-performance-routing-03" quoteTitle="true" derivedAnchor="PERFORMANCE-ROUTING">
        <front>
          <title>Performance-based BGP Routing Mechanism</title>
          <author initials="X." surname="Xu" fullname="Xiaohu Xu">
            <organization showOnFrontPage="true">Alibaba, Inc</organization>
          </author>
          <author initials="S." surname="Hegde" fullname="Shraddha Hegde">
            <organization showOnFrontPage="true">Juniper</organization>
          </author>
          <author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar">
            <organization showOnFrontPage="true">Cisco</organization>
          </author>
          <author initials="M." surname="Boucadair" fullname="Mohamed Boucadair">
            <organization showOnFrontPage="true">France Telecom</organization>
          </author>
          <author initials="C." surname="Jacquenet" fullname="Christian Jacquenet">
            <organization showOnFrontPage="true">France Telecom</organization>
          </author>
          <date month="December" day="21" year="2020"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-idr-performance-routing-03"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="RFC1122" target="https://www.rfc-editor.org/info/rfc1122" quoteTitle="true" derivedAnchor="RFC1122">
        <front>
          <title>Requirements for Internet Hosts - Communication Layers</title>
          <author fullname="R. Braden" initials="R." role="editor" surname="Braden"/>
          <date month="October" year="1989"/>
          <abstract>
            <t indent="0">This RFC is an official specification for the Internet community. It incorporates by reference, amends, corrects, and supplements the primary protocol standards documents relating to hosts. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="3"/>
        <seriesInfo name="RFC" value="1122"/>
        <seriesInfo name="DOI" value="10.17487/RFC1122"/>
      </reference>
      <reference anchor="RFC1930" target="https://www.rfc-editor.org/info/rfc1930" quoteTitle="true" derivedAnchor="RFC1930">
        <front>
          <title>Guidelines for creation, selection, and registration of an Autonomous System (AS)</title>
          <author fullname="J. Hawkinson" initials="J." surname="Hawkinson"/>
          <author fullname="T. Bates" initials="T." surname="Bates"/>
          <date month="March" year="1996"/>
          <abstract>
            <t indent="0">This memo discusses when it is appropriate to register and utilize an Autonomous System (AS), and lists criteria for such. 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="6"/>
        <seriesInfo name="RFC" value="1930"/>
        <seriesInfo name="DOI" value="10.17487/RFC1930"/>
      </reference>
      <reference anchor="RFC1940" target="https://www.rfc-editor.org/info/rfc1940" quoteTitle="true" derivedAnchor="RFC1940">
        <front>
          <title>Source Demand Routing: Packet Format and Forwarding Specification (Version 1)</title>
          <author fullname="D. Estrin" initials="D." surname="Estrin"/>
          <author fullname="T. Li" initials="T." surname="Li"/>
          <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
          <author fullname="K. Varadhan" initials="K." surname="Varadhan"/>
          <author fullname="D. Zappala" initials="D." surname="Zappala"/>
          <date month="May" year="1996"/>
          <abstract>
            <t indent="0">The purpose of SDRP is to support source-initiated selection of routes to complement the route selection provided by existing routing protocols for both inter-domain and intra-domain routes. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="1940"/>
        <seriesInfo name="DOI" value="10.17487/RFC1940"/>
      </reference>
      <reference anchor="RFC2784" target="https://www.rfc-editor.org/info/rfc2784" quoteTitle="true" derivedAnchor="RFC2784">
        <front>
          <title>Generic Routing Encapsulation (GRE)</title>
          <author fullname="D. Farinacci" initials="D." surname="Farinacci"/>
          <author fullname="T. Li" initials="T." surname="Li"/>
          <author fullname="S. Hanks" initials="S." surname="Hanks"/>
          <author fullname="D. Meyer" initials="D." surname="Meyer"/>
          <author fullname="P. Traina" initials="P." surname="Traina"/>
          <date month="March" year="2000"/>
          <abstract>
            <t indent="0">This document specifies a protocol for encapsulation of an arbitrary network layer protocol over another arbitrary network layer protocol. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="2784"/>
        <seriesInfo name="DOI" value="10.17487/RFC2784"/>
      </reference>
      <reference anchor="RFC3357" target="https://www.rfc-editor.org/info/rfc3357" quoteTitle="true" derivedAnchor="RFC3357">
        <front>
          <title>One-way Loss Pattern Sample Metrics</title>
          <author fullname="R. Koodli" initials="R." surname="Koodli"/>
          <author fullname="R. Ravikanth" initials="R." surname="Ravikanth"/>
          <date month="August" year="2002"/>
        </front>
        <seriesInfo name="RFC" value="3357"/>
        <seriesInfo name="DOI" value="10.17487/RFC3357"/>
      </reference>
      <reference anchor="RFC3393" target="https://www.rfc-editor.org/info/rfc3393" quoteTitle="true" derivedAnchor="RFC3393">
        <front>
          <title>IP Packet Delay Variation Metric for IP Performance Metrics (IPPM)</title>
          <author fullname="C. Demichelis" initials="C." surname="Demichelis"/>
          <author fullname="P. Chimento" initials="P." surname="Chimento"/>
          <date month="November" year="2002"/>
        </front>
        <seriesInfo name="RFC" value="3393"/>
        <seriesInfo name="DOI" value="10.17487/RFC3393"/>
      </reference>
      <reference anchor="RFC4271" target="https://www.rfc-editor.org/info/rfc4271" quoteTitle="true" derivedAnchor="RFC4271">
        <front>
          <title>A Border Gateway Protocol 4 (BGP-4)</title>
          <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
          <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
          <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
          <date month="January" year="2006"/>
          <abstract>
            <t indent="0">This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
            <t indent="0">The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
            <t indent="0">BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
            <t indent="0">This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4271"/>
        <seriesInfo name="DOI" value="10.17487/RFC4271"/>
      </reference>
      <reference anchor="RFC5136" target="https://www.rfc-editor.org/info/rfc5136" quoteTitle="true" derivedAnchor="RFC5136">
        <front>
          <title>Defining Network Capacity</title>
          <author fullname="P. Chimento" initials="P." surname="Chimento"/>
          <author fullname="J. Ishac" initials="J." surname="Ishac"/>
          <date month="February" year="2008"/>
          <abstract>
            <t indent="0">Measuring capacity is a task that sounds simple, but in reality can be quite complex. In addition, the lack of a unified nomenclature on this subject makes it increasingly difficult to properly build, test, and use techniques and tools built around these constructs. This document provides definitions for the terms 'Capacity' and 'Available Capacity' related to IP traffic traveling between a source and destination in an IP network. By doing so, we hope to provide a common framework for the discussion and analysis of a diverse set of current and future estimation techniques. This memo provides information for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5136"/>
        <seriesInfo name="DOI" value="10.17487/RFC5136"/>
      </reference>
      <reference anchor="RFC5693" target="https://www.rfc-editor.org/info/rfc5693" quoteTitle="true" derivedAnchor="RFC5693">
        <front>
          <title>Application-Layer Traffic Optimization (ALTO) Problem Statement</title>
          <author fullname="J. Seedorf" initials="J." surname="Seedorf"/>
          <author fullname="E. Burger" initials="E." surname="Burger"/>
          <date month="October" year="2009"/>
          <abstract>
            <t indent="0">Distributed applications -- such as file sharing, real-time communication, and live and on-demand media streaming -- prevalent on the Internet use a significant amount of network resources. Such applications often transfer large amounts of data through connections established between nodes distributed across the Internet with little knowledge of the underlying network topology. Some applications are so designed that they choose a random subset of peers from a larger set with which to exchange data. Absent any topology information guiding such choices, or acting on suboptimal or local information obtained from measurements and statistics, these applications often make less than desirable choices.</t>
            <t indent="0">This document discusses issues related to an information-sharing service that enables applications to perform better-than-random peer selection. This memo provides information for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5693"/>
        <seriesInfo name="DOI" value="10.17487/RFC5693"/>
      </reference>
      <reference anchor="RFC6534" target="https://www.rfc-editor.org/info/rfc6534" quoteTitle="true" derivedAnchor="RFC6534">
        <front>
          <title>Loss Episode Metrics for IP Performance Metrics (IPPM)</title>
          <author fullname="N. Duffield" initials="N." surname="Duffield"/>
          <author fullname="A. Morton" initials="A." surname="Morton"/>
          <author fullname="J. Sommers" initials="J." surname="Sommers"/>
          <date month="May" year="2012"/>
          <abstract>
            <t indent="0">The IETF has developed a one-way packet loss metric that measures the loss rate on a Poisson and Periodic probe streams between two hosts. However, the impact of packet loss on applications is, in general, sensitive not just to the average loss rate but also to the way in which packet losses are distributed in loss episodes (i.e., maximal sets of consecutively lost probe packets). This document defines one-way packet loss episode metrics, specifically, the frequency and average duration of loss episodes and a probing methodology under which the loss episode metrics are to be measured. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6534"/>
        <seriesInfo name="DOI" value="10.17487/RFC6534"/>
      </reference>
      <reference anchor="RFC7665" target="https://www.rfc-editor.org/info/rfc7665" quoteTitle="true" derivedAnchor="RFC7665">
        <front>
          <title>Service Function Chaining (SFC) Architecture</title>
          <author fullname="J. Halpern" initials="J." role="editor" surname="Halpern"/>
          <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
          <date month="October" year="2015"/>
          <abstract>
            <t indent="0">This document describes an architecture for the specification, creation, and ongoing maintenance of Service Function Chains (SFCs) in a network. It includes architectural concepts, principles, and components used in the construction of composite services through deployment of SFCs, with a focus on those to be standardized in the IETF. This document does not propose solutions, protocols, or extensions to existing protocols.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7665"/>
        <seriesInfo name="DOI" value="10.17487/RFC7665"/>
      </reference>
      <reference anchor="RFC7676" target="https://www.rfc-editor.org/info/rfc7676" quoteTitle="true" derivedAnchor="RFC7676">
        <front>
          <title>IPv6 Support for Generic Routing Encapsulation (GRE)</title>
          <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
          <author fullname="R. Bonica" initials="R." surname="Bonica"/>
          <author fullname="S. Krishnan" initials="S." surname="Krishnan"/>
          <date month="October" year="2015"/>
          <abstract>
            <t indent="0">Generic Routing Encapsulation (GRE) can be used to carry any network- layer payload protocol over any network-layer delivery protocol. Currently, GRE procedures are specified for IPv4, used as either the payload or delivery protocol. However, GRE procedures are not specified for IPv6.</t>
            <t indent="0">This document specifies GRE procedures for IPv6, used as either the payload or delivery protocol.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7676"/>
        <seriesInfo name="DOI" value="10.17487/RFC7676"/>
      </reference>
      <reference anchor="RFC7679" target="https://www.rfc-editor.org/info/rfc7679" quoteTitle="true" derivedAnchor="RFC7679">
        <front>
          <title>A One-Way Delay Metric for IP Performance Metrics (IPPM)</title>
          <author fullname="G. Almes" initials="G." surname="Almes"/>
          <author fullname="S. Kalidindi" initials="S." surname="Kalidindi"/>
          <author fullname="M. Zekauskas" initials="M." surname="Zekauskas"/>
          <author fullname="A. Morton" initials="A." role="editor" surname="Morton"/>
          <date month="January" year="2016"/>
          <abstract>
            <t indent="0">This memo defines a metric for one-way delay of packets across Internet paths. It builds on notions introduced and discussed in the IP Performance Metrics (IPPM) Framework document, RFC 2330; the reader is assumed to be familiar with that document. This memo makes RFC 2679 obsolete.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="81"/>
        <seriesInfo name="RFC" value="7679"/>
        <seriesInfo name="DOI" value="10.17487/RFC7679"/>
      </reference>
      <reference anchor="RFC7680" target="https://www.rfc-editor.org/info/rfc7680" quoteTitle="true" derivedAnchor="RFC7680">
        <front>
          <title>A One-Way Loss Metric for IP Performance Metrics (IPPM)</title>
          <author fullname="G. Almes" initials="G." surname="Almes"/>
          <author fullname="S. Kalidindi" initials="S." surname="Kalidindi"/>
          <author fullname="M. Zekauskas" initials="M." surname="Zekauskas"/>
          <author fullname="A. Morton" initials="A." role="editor" surname="Morton"/>
          <date month="January" year="2016"/>
          <abstract>
            <t indent="0">This memo defines a metric for one-way loss of packets across Internet paths. It builds on notions introduced and discussed in the IP Performance Metrics (IPPM) Framework document, RFC 2330; the reader is assumed to be familiar with that document. This memo makes RFC 2680 obsolete.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="82"/>
        <seriesInfo name="RFC" value="7680"/>
        <seriesInfo name="DOI" value="10.17487/RFC7680"/>
      </reference>
      <reference anchor="RFC8175" target="https://www.rfc-editor.org/info/rfc8175" quoteTitle="true" derivedAnchor="RFC8175">
        <front>
          <title>Dynamic Link Exchange Protocol (DLEP)</title>
          <author fullname="S. Ratliff" initials="S." surname="Ratliff"/>
          <author fullname="S. Jury" initials="S." surname="Jury"/>
          <author fullname="D. Satterwhite" initials="D." surname="Satterwhite"/>
          <author fullname="R. Taylor" initials="R." surname="Taylor"/>
          <author fullname="B. Berry" initials="B." surname="Berry"/>
          <date month="June" year="2017"/>
          <abstract>
            <t indent="0">When routing devices rely on modems to effect communications over wireless links, they need timely and accurate knowledge of the characteristics of the link (speed, state, etc.) in order to make routing decisions. In mobile or other environments where these characteristics change frequently, manual configurations or the inference of state through routing or transport protocols does not allow the router to make the best decisions. This document introduces a new protocol called the Dynamic Link Exchange Protocol (DLEP), which provides a bidirectional, event-driven communication channel between the router and the modem to facilitate communication of changing link characteristics.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8175"/>
        <seriesInfo name="DOI" value="10.17487/RFC8175"/>
      </reference>
      <reference anchor="RFC8548" target="https://www.rfc-editor.org/info/rfc8548" quoteTitle="true" derivedAnchor="RFC8548">
        <front>
          <title>Cryptographic Protection of TCP Streams (tcpcrypt)</title>
          <author fullname="A. Bittau" initials="A." surname="Bittau"/>
          <author fullname="D. Giffin" initials="D." surname="Giffin"/>
          <author fullname="M. Handley" initials="M." surname="Handley"/>
          <author fullname="D. Mazieres" initials="D." surname="Mazieres"/>
          <author fullname="Q. Slack" initials="Q." surname="Slack"/>
          <author fullname="E. Smith" initials="E." surname="Smith"/>
          <date month="May" year="2019"/>
          <abstract>
            <t indent="0">This document specifies "tcpcrypt", a TCP encryption protocol designed for use in conjunction with the TCP Encryption Negotiation Option (TCP-ENO). Tcpcrypt coexists with middleboxes by tolerating resegmentation, NATs, and other manipulations of the TCP header. The protocol is self-contained and specifically tailored to TCP implementations, which often reside in kernels or other environments in which large external software dependencies can be undesirable. Because the size of TCP options is limited, the protocol requires one additional one-way message latency to perform key exchange before application data can be transmitted. However, the extra latency can be avoided between two hosts that have recently established a previous tcpcrypt connection.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8548"/>
        <seriesInfo name="DOI" value="10.17487/RFC8548"/>
      </reference>
      <reference anchor="RFC8558" target="https://www.rfc-editor.org/info/rfc8558" quoteTitle="true" derivedAnchor="RFC8558">
        <front>
          <title>Transport Protocol Path Signals</title>
          <author fullname="T. Hardie" initials="T." role="editor" surname="Hardie"/>
          <date month="April" year="2019"/>
          <abstract>
            <t indent="0">This document discusses the nature of signals seen by on-path elements examining transport protocols, contrasting implicit and explicit signals. For example, TCP's state machine uses a series of well-known messages that are exchanged in the clear. Because these are visible to network elements on the path between the two nodes setting up the transport connection, they are often used as signals by those network elements. In transports that do not exchange these messages in the clear, on-path network elements lack those signals. Often, the removal of those signals is intended by those moving the messages to confidential channels. Where the endpoints desire that network elements along the path receive these signals, this document recommends explicit signals be used.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8558"/>
        <seriesInfo name="DOI" value="10.17487/RFC8558"/>
      </reference>
      <reference anchor="RFC8684" target="https://www.rfc-editor.org/info/rfc8684" quoteTitle="true" derivedAnchor="RFC8684">
        <front>
          <title>TCP Extensions for Multipath Operation with Multiple Addresses</title>
          <author fullname="A. Ford" initials="A." surname="Ford"/>
          <author fullname="C. Raiciu" initials="C." surname="Raiciu"/>
          <author fullname="M. Handley" initials="M." surname="Handley"/>
          <author fullname="O. Bonaventure" initials="O." surname="Bonaventure"/>
          <author fullname="C. Paasch" initials="C." surname="Paasch"/>
          <date month="March" year="2020"/>
          <abstract>
            <t indent="0">TCP/IP communication is currently restricted to a single path per connection, yet multiple paths often exist between peers. The simultaneous use of these multiple paths for a TCP/IP session would improve resource usage within the network and thus improve user experience through higher throughput and improved resilience to network failure.</t>
            <t indent="0">Multipath TCP provides the ability to simultaneously use multiple paths between peers. This document presents a set of extensions to traditional TCP to support multipath operation. The protocol offers the same type of service to applications as TCP (i.e., a reliable bytestream), and it provides the components necessary to establish and use multiple TCP flows across potentially disjoint paths.</t>
            <t indent="0">This document specifies v1 of Multipath TCP, obsoleting v0 as specified in RFC 6824, through clarifications and modifications primarily driven by deployment experience.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8684"/>
        <seriesInfo name="DOI" value="10.17487/RFC8684"/>
      </reference>
      <reference anchor="RFC8803" target="https://www.rfc-editor.org/info/rfc8803" quoteTitle="true" derivedAnchor="RFC8803">
        <front>
          <title>0-RTT TCP Convert Protocol</title>
          <author fullname="O. Bonaventure" initials="O." role="editor" surname="Bonaventure"/>
          <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
          <author fullname="S. Gundavelli" initials="S." surname="Gundavelli"/>
          <author fullname="S. Seo" initials="S." surname="Seo"/>
          <author fullname="B. Hesmans" initials="B." surname="Hesmans"/>
          <date month="July" year="2020"/>
          <abstract>
            <t indent="0">This document specifies an application proxy, called Transport Converter, to assist the deployment of TCP extensions such as Multipath TCP. A Transport Converter may provide conversion service for one or more TCP extensions. The conversion service is provided by means of the 0-RTT TCP Convert Protocol (Convert).</t>
            <t indent="0">This protocol provides 0-RTT (Zero Round-Trip Time) conversion service since no extra delay is induced by the protocol compared to connections that are not proxied. Also, the Convert Protocol does not require any encapsulation (no tunnels whatsoever).</t>
            <t indent="0">This specification assumes an explicit model, where the Transport Converter is explicitly configured on hosts. As a sample applicability use case, this document specifies how the Convert Protocol applies for Multipath TCP.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8803"/>
        <seriesInfo name="DOI" value="10.17487/RFC8803"/>
      </reference>
      <reference anchor="RFC9000" target="https://www.rfc-editor.org/info/rfc9000" quoteTitle="true" derivedAnchor="RFC9000">
        <front>
          <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
          <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
          <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
          <date month="May" year="2021"/>
          <abstract>
            <t indent="0">This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9000"/>
        <seriesInfo name="DOI" value="10.17487/RFC9000"/>
      </reference>
      <reference anchor="RFC9049" target="https://www.rfc-editor.org/info/rfc9049" quoteTitle="true" derivedAnchor="RFC9049">
        <front>
          <title>Path Aware Networking: Obstacles to Deployment (A Bestiary of Roads Not Taken)</title>
          <author fullname="S. Dawkins" initials="S." role="editor" surname="Dawkins"/>
          <date month="June" year="2021"/>
          <abstract>
            <t indent="0">This document is a product of the Path Aware Networking Research Group (PANRG). At the first meeting of the PANRG, the Research Group agreed to catalog and analyze past efforts to develop and deploy Path Aware techniques, most of which were unsuccessful or at most partially successful, in order to extract insights and lessons for Path Aware networking researchers.</t>
            <t indent="0">This document contains that catalog and analysis.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9049"/>
        <seriesInfo name="DOI" value="10.17487/RFC9049"/>
      </reference>
      <reference anchor="RFC9097" target="https://www.rfc-editor.org/info/rfc9097" quoteTitle="true" derivedAnchor="RFC9097">
        <front>
          <title>Metrics and Methods for One-Way IP Capacity</title>
          <author fullname="A. Morton" initials="A." surname="Morton"/>
          <author fullname="R. Geib" initials="R." surname="Geib"/>
          <author fullname="L. Ciavattone" initials="L." surname="Ciavattone"/>
          <date month="November" year="2021"/>
          <abstract>
            <t indent="0">This memo revisits the problem of Network Capacity Metrics first examined in RFC 5136. This memo specifies a more practical Maximum IP-Layer Capacity Metric definition catering to measurement and outlines the corresponding Methods of Measurement.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9097"/>
        <seriesInfo name="DOI" value="10.17487/RFC9097"/>
      </reference>
      <reference anchor="RFC9110" target="https://www.rfc-editor.org/info/rfc9110" quoteTitle="true" derivedAnchor="RFC9110">
        <front>
          <title>HTTP Semantics</title>
          <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
          <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
          <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
          <date month="June" year="2022"/>
          <abstract>
            <t indent="0">The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
            <t indent="0">This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="97"/>
        <seriesInfo name="RFC" value="9110"/>
        <seriesInfo name="DOI" value="10.17487/RFC9110"/>
      </reference>
      <reference anchor="RFC9217" target="https://www.rfc-editor.org/info/rfc9217" quoteTitle="true" derivedAnchor="RFC9217">
        <front>
          <title>Current Open Questions in Path-Aware Networking</title>
          <author fullname="B. Trammell" initials="B." surname="Trammell"/>
          <date month="March" year="2022"/>
          <abstract>
            <t indent="0">In contrast to the present Internet architecture, a path-aware internetworking architecture has two important properties: it exposes the properties of available Internet paths to endpoints, and it provides for endpoints and applications to use these properties to select paths through the Internet for their traffic. While this property of "path awareness" already exists in many Internet-connected networks within single domains and via administrative interfaces to the network layer, a fully path-aware internetwork expands these concepts across layers and across the Internet.</t>
            <t indent="0">This document poses questions in path-aware networking, open as of 2021, that must be answered in the design, development, and deployment of path-aware internetworks. It was originally written to frame discussions in the Path Aware Networking Research Group (PANRG), and has been published to snapshot current thinking in this space.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9217"/>
        <seriesInfo name="DOI" value="10.17487/RFC9217"/>
      </reference>
      <reference anchor="RFC9275" target="https://www.rfc-editor.org/info/rfc9275" quoteTitle="true" derivedAnchor="RFC9275">
        <front>
          <title>An Extension for Application-Layer Traffic Optimization (ALTO): Path Vector</title>
          <author fullname="K. Gao" initials="K." surname="Gao"/>
          <author fullname="Y. Lee" initials="Y." surname="Lee"/>
          <author fullname="S. Randriamasy" initials="S." surname="Randriamasy"/>
          <author fullname="Y. Yang" initials="Y." surname="Yang"/>
          <author fullname="J. Zhang" initials="J." surname="Zhang"/>
          <date month="September" year="2022"/>
          <abstract>
            <t indent="0">This document is an extension to the base Application-Layer Traffic Optimization (ALTO) protocol. It extends the ALTO cost map and ALTO property map services so that an application can decide to which endpoint(s) to connect based not only on numerical/ordinal cost values but also on fine-grained abstract information regarding the paths. This is useful for applications whose performance is impacted by specific components of a network on the end-to-end paths, e.g., they may infer that several paths share common links and prevent traffic bottlenecks by avoiding such paths. This extension introduces a new abstraction called the "Abstract Network Element" (ANE) to represent these components and encodes a network path as a vector of ANEs. Thus, it provides a more complete but still abstract graph representation of the underlying network(s) for informed traffic optimization among endpoints.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9275"/>
        <seriesInfo name="DOI" value="10.17487/RFC9275"/>
      </reference>
      <reference anchor="RFC9298" target="https://www.rfc-editor.org/info/rfc9298" quoteTitle="true" derivedAnchor="RFC9298">
        <front>
          <title>Proxying UDP in HTTP</title>
          <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
          <date month="August" year="2022"/>
          <abstract>
            <t indent="0">This document describes how to proxy UDP in HTTP, similar to how the HTTP CONNECT method allows proxying TCP in HTTP. More specifically, this document defines a protocol that allows an HTTP client to create a tunnel for UDP communications through an HTTP server that acts as a proxy.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9298"/>
        <seriesInfo name="DOI" value="10.17487/RFC9298"/>
      </reference>
      <reference anchor="RFC9439" target="https://www.rfc-editor.org/info/rfc9439" quoteTitle="true" derivedAnchor="RFC9439">
        <front>
          <title>Application-Layer Traffic Optimization (ALTO) Performance Cost Metrics</title>
          <author fullname="Q. Wu" initials="Q." surname="Wu"/>
          <author fullname="Y. Yang" initials="Y." surname="Yang"/>
          <author fullname="Y. Lee" initials="Y." surname="Lee"/>
          <author fullname="D. Dhody" initials="D." surname="Dhody"/>
          <author fullname="S. Randriamasy" initials="S." surname="Randriamasy"/>
          <author fullname="L. Contreras" initials="L." surname="Contreras"/>
          <date month="August" year="2023"/>
          <abstract>
            <t indent="0">The cost metric is a basic concept in Application-Layer Traffic
Optimization (ALTO), and different applications may use different
types of cost metrics. Since the ALTO base protocol (RFC 7285)
defines only a single cost metric (namely, the generic "routingcost"
metric), if an application wants to issue a cost map or an endpoint
cost request in order to identify a resource provider that offers
better performance metrics (e.g., lower delay or loss rate), the base
protocol does not define the cost metric to be used.</t>
            <t indent="0">This document addresses this issue by extending the specification to
provide a variety of network performance metrics, including network
delay, delay variation (a.k.a. jitter), packet loss rate, hop count,
and bandwidth.</t>
            <t indent="0">There are multiple sources (e.g., estimations based on measurements
or a Service Level Agreement) available for deriving a performance
metric. This document introduces an additional "cost-context" field
to the ALTO "cost-type" field to convey the source of a performance
metric.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9439"/>
        <seriesInfo name="DOI" value="10.17487/RFC9439"/>
      </reference>
    </references>
    <section numbered="false" anchor="acknowledgments" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.a-1">Thanks to the Path Aware Networking Research Group for the discussion
      and feedback. Specifically, thanks to <contact fullname="Mohamed       Boucadair"/> for the detailed review, various text suggestions, and
      shepherding; thanks to <contact fullname="Brian Trammell"/> for
      suggesting the flow definition; and thanks to <contact fullname="Luis       M. Contreras"/>, <contact fullname="Spencer Dawkins"/>, <contact fullname="Paul Hoffman"/>, <contact fullname="Jake Holland"/>, <contact fullname="Colin Perkins"/>, <contact fullname="Adrian Perrig"/>, and
      <contact fullname="Matthias Rost"/> for the reviews, comments, and
      suggestions. Many thanks to <contact fullname="Dave Oran"/> for his
      careful IRSG review.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="R." surname="Enghardt" fullname="Reese Enghardt">
        <organization showOnFrontPage="true">Netflix</organization>
        <address>
          <email>ietf@tenghardt.net</email>
        </address>
      </author>
      <author initials="C." surname="Krähenbühl" fullname="Cyrill Krähenbühl">
        <organization showOnFrontPage="true">ETH Zürich</organization>
        <address>
          <email>cyrill.kraehenbuehl@inf.ethz.ch</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
