<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-alto-cost-mode-05" indexInclude="true" ipr="trust200902" number="9274" prepTime="2022-07-26T13:09:05" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="4" tocInclude="true" updates="7285" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-alto-cost-mode-05" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9274" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="ALTO Cost Mode">A Cost Mode Registry for the Application-Layer Traffic Optimization (ALTO) Protocol</title>
    <seriesInfo name="RFC" value="9274" stream="IETF"/>
    <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
      <organization showOnFrontPage="true">Orange</organization>
      <address>
        <postal>
          <street/>
          <city>Rennes</city>
          <region/>
          <code>35000</code>
          <country>France</country>
        </postal>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <author fullname="Qin Wu" initials="Q." surname="Wu">
      <organization showOnFrontPage="true">Huawei</organization>
      <address>
        <postal>
          <extaddr>Yuhua District</extaddr>
          <street>101 Software Avenue</street>
          <city>Nanjing</city>
          <region>Jiangsu</region>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>bill.wu@huawei.com</email>
      </address>
    </author>
    <date month="07" year="2022"/>
    <area>tsv</area>
    <workgroup>alto</workgroup>
    <keyword>Optimization</keyword>
    <keyword>service performance</keyword>
    <keyword>cost metric</keyword>
    <keyword>routing</keyword>
    <keyword>computation</keyword>
    <keyword>networks</keyword>
    <keyword>service-network interaction</keyword>
    <keyword>network programming</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document creates a new IANA registry for tracking cost modes
      supported by the Application-Layer Traffic Optimization (ALTO) Protocol.
      Also, this document relaxes a constraint that was imposed by the ALTO
      specification on allowed cost mode values.</t>
      <t indent="0" pn="section-abstract-2">This document updates RFC 7285.</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 is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in 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/rfc9274" 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) 2022 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. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </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>
          </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-updates-to-rfc-7285">Updates to RFC 7285</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" keepWithNext="true" 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-updates-to-section-612-of-r">Updates to Section 6.1.2 of RFC 7285</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-updates-to-section-105-of-r">Updates to Section 10.5 of RFC 7285</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-backward-compatibility-cons">Backward Compatibility Considerations</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-iana-considerations">IANA 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-security-considerations">Security 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-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </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-acknowledgements">Acknowledgements</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 cost mode attribute indicates how costs should be interpreted
      when communicated as described in "Application-Layer Traffic Optimization (ALTO)
      Protocol" <xref target="RFC7285" format="default" sectionFormat="of" derivedContent="RFC7285"/>, which
      includes a provision for only two modes: </t>
      <dl newline="false" spacing="normal" indent="3" pn="section-1-2">
        <dt pn="section-1-2.1">"numerical":</dt>
        <dd pn="section-1-2.2">Indicates that numerical
          operations can be performed (e.g., normalization) on the returned
          costs (<xref target="RFC7285" sectionFormat="of" section="6.1.2.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7285#section-6.1.2.1" derivedContent="RFC7285"/>).</dd>
        <dt pn="section-1-2.3">"ordinal":</dt>
        <dd pn="section-1-2.4">Indicates that the cost values in
          a cost map represent ranking (relative to all other values in a cost
          map), not actual costs (<xref target="RFC7285" sectionFormat="of" section="6.1.2.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7285#section-6.1.2.2" derivedContent="RFC7285"/>).</dd>
      </dl>
      <t indent="0" pn="section-1-3">Additional cost modes are required for specific ALTO deployment cases
      (e.g., <xref target="I-D.ietf-alto-path-vector" format="default" sectionFormat="of" derivedContent="ALTO-PV"/>). In order to
      allow for such use cases, this document relaxes the constraint imposed
      by the base ALTO specification on allowed cost modes (<xref target="anupdate" format="default" sectionFormat="of" derivedContent="Section 3"/>) and creates a new ALTO registry to track new
      cost modes (<xref target="IANA" format="default" sectionFormat="of" derivedContent="Section 5"/>).</t>
      <t indent="0" pn="section-1-4">The mechanisms defined in <xref target="RFC7285" format="default" sectionFormat="of" derivedContent="RFC7285"/> are used to
      advertise the support of new cost modes for specific cost metrics. Refer
      to <xref target="bc" format="default" sectionFormat="of" derivedContent="Section 4"/> for more details.</t>
    </section>
    <section anchor="notation" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <t indent="0" pn="section-2-1">
    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" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
      </t>
      <t indent="0" pn="section-2-2">This document makes use of the terms defined in <xref target="RFC7285" format="default" sectionFormat="of" derivedContent="RFC7285"/>.</t>
    </section>
    <section anchor="anupdate" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-updates-to-rfc-7285">Updates to RFC 7285</name>
      <t indent="0" pn="section-3-1"/>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-3.1">
        <name slugifiedName="name-updates-to-section-612-of-r">Updates to Section 6.1.2 of RFC 7285</name>
        <t indent="0" pn="section-3.1-1">This document updates <xref target="RFC7285" sectionFormat="of" section="6.1.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7285#section-6.1.2" derivedContent="RFC7285"/> as follows:</t>
        <t indent="0" pn="section-3.1-2">OLD:</t>
        <ul empty="true" spacing="normal" bare="false" indent="3" pn="section-3.1-3">
          <li pn="section-3.1-3.1">The cost mode attribute indicates how costs should be
            interpreted. Specifically, the cost mode attribute indicates
            whether returned costs should be interpreted as numerical values
            or ordinal rankings.</li>
          <li pn="section-3.1-3.2">It is important to communicate such information to ALTO
            clients, as certain operations may not be valid on certain costs
            returned by an ALTO server. For example, it is possible for an
            ALTO server to return a set of IP addresses with costs indicating
            a ranking of the IP addresses. Arithmetic operations that would
            make sense for numerical values, do not make sense for ordinal
            rankings. ALTO clients may handle such costs differently.</li>
          <li pn="section-3.1-3.3">Cost modes are indicated in protocol messages as strings.</li>
        </ul>
        <t indent="0" pn="section-3.1-4">NEW:</t>
        <ul empty="true" spacing="normal" bare="false" indent="3" pn="section-3.1-5">
          <li pn="section-3.1-5.1">The cost mode attribute indicates how costs should be
            interpreted. Two cost modes (numerical values and ordinal
            rankings) are defined, but additional cost modes can be defined in
            the future.</li>
          <li pn="section-3.1-5.2">It is important to communicate such information to ALTO
            clients, as certain operations may not be valid on certain costs
            returned by an ALTO server. For example, it is possible for an
            ALTO server to return a set of IP addresses with costs indicating
            a ranking of the IP addresses. Arithmetic operations that would
            make sense for numerical values, do not make sense for ordinal
            rankings. ALTO clients may handle such costs differently.</li>
          <li pn="section-3.1-5.3">Cost modes are indicated in protocol messages as strings.</li>
          <li pn="section-3.1-5.4">For any future documents that defines a new cost mode, indicating 
            whether that new cost mode applies to all
            or a subset of cost metrics is strongly recommended. This recommendation is meant to
            prevent nondeterministic behaviors that may result in presenting
            a cost mode with a specific metric, while such an association does
            not make sense or can't be unambiguously interpreted by ALTO
            implementations. </li>
          <li pn="section-3.1-5.5">If the definition of a cost mode does not indicate whether that
            cost mode applies to a subset of cost metrics, ALTO
            implementations <bcp14>MUST</bcp14> be prepared to accept that cost mode for any
            cost metric. </li>
        </ul>
        <t indent="0" pn="section-3.1-6"/>
      </section>
      <section anchor="up2" numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-updates-to-section-105-of-r">Updates to Section 10.5 of RFC 7285</name>
        <t indent="0" pn="section-3.2-1">This document updates <xref target="RFC7285" sectionFormat="of" section="10.5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7285#section-10.5" derivedContent="RFC7285"/> as follows:</t>
        <t indent="0" pn="section-3.2-2">OLD:</t>
        <ul empty="true" spacing="normal" bare="false" indent="3" pn="section-3.2-3">
          <li pn="section-3.2-3.1">A cost mode is encoded as a string. The string <bcp14>MUST</bcp14> have a
            value of either "numerical" or "ordinal".</li>
        </ul>
        <t indent="0" pn="section-3.2-4">NEW:</t>
        <ul empty="true" spacing="normal" bare="false" indent="3" pn="section-3.2-5">
          <li pn="section-3.2-5.1">A cost mode is encoded as a string. The string <bcp14>MUST</bcp14> be no more
            than 32 characters, and it <bcp14>MUST NOT</bcp14> contain characters other than
            US-ASCII alphanumeric characters (U+0030-U+0039, U+0041-U+005A,
            and U+0061-U+007A), the hyphen-minus ('-', U+002D), the colon
            (':', U+003A), or the low line ('_', U+005F). Cost modes reserved
            for Private Use are prefixed with "priv:" (<xref target="IANA" format="default" sectionFormat="of" derivedContent="Section 5"/>). Otherwise, the cost mode <bcp14>MUST</bcp14> have a value
            that is listed in the registry created in <xref target="IANA" format="default" sectionFormat="of" derivedContent="Section 5"/> of [RFC9274].</li>
        </ul>
        <t indent="0" pn="section-3.2-6"/>
      </section>
    </section>
    <section anchor="bc" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-backward-compatibility-cons">Backward Compatibility Considerations</name>
      <t indent="0" pn="section-4-1">ALTO servers that support new cost modes for specific cost metrics
      will use the mechanism specified in <xref target="RFC7285" sectionFormat="of" section="9.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7285#section-9.2" derivedContent="RFC7285"/> to advertise their capabilities. ALTO clients
      (including legacy) will use that information to specify cost constraints
      in their requests (e.g., indicate a cost metric and a cost mode). An
      example of such a behavior is depicted in <xref target="RFC7285" sectionFormat="of" section="9.2.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7285#section-9.2.3" derivedContent="RFC7285"/>.</t>
      <t indent="0" pn="section-4-2">If an ALTO client includes a cost mode that is not supported by an
      ALTO server, the server indicates such an error with the error code
      E_INVALID_FIELD_VALUE as per <xref target="RFC7285" sectionFormat="of" section="8.5.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7285#section-8.5.2" derivedContent="RFC7285"/>. In practice, legacy ALTO servers will reply
      with the error code E_INVALID_FIELD_VALUE to requests that include a
      cost type other than "numerical" or "ordinal" for the "routingcost" cost
      metric.</t>
      <t indent="0" pn="section-4-3">The encoding constraints in <xref target="up2" format="default" sectionFormat="of" derivedContent="Section 3.2"/> do not
      introduce any interoperability issue given that currently implemented
      cost modes adhere to these constrains (mainly, those in <xref target="RFC7285" format="default" sectionFormat="of" derivedContent="RFC7285"/> and <xref target="I-D.ietf-alto-path-vector" format="default" sectionFormat="of" derivedContent="ALTO-PV"/>).</t>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-5-1">IANA has created the new "ALTO Cost Modes" subregistry 
      within the "Application-Layer Traffic Optimization
      (ALTO) Protocol" registry available at <xref target="ALTO" format="default" sectionFormat="of" derivedContent="ALTO"/>.</t>
      <t indent="0" pn="section-5-2">The assignment policy for this subregistry is "IETF Review" (<xref target="RFC8126" sectionFormat="of" section="4.8" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8126#section-4.8" derivedContent="RFC8126"/>).</t>
      <t indent="0" pn="section-5-3">Requests to register a new ALTO cost mode must include the following
      information:</t>
      <dl newline="false" spacing="normal" indent="3" pn="section-5-4">
        <dt pn="section-5-4.1">Identifier:</dt>
        <dd pn="section-5-4.2">The name of the ALTO cost mode. Refer to
          <xref target="up2" format="default" sectionFormat="of" derivedContent="Section 3.2"/> for more details on allowed encoding.</dd>
        <dt pn="section-5-4.3">Description:</dt>
        <dd pn="section-5-4.4">A short description of the requested ALTO
          cost mode.</dd>
        <dt pn="section-5-4.5">Intended Semantics:</dt>
        <dd pn="section-5-4.6">A reference to where the semantic
          of the requested cost mode is defined.</dd>
        <dt pn="section-5-4.7">Reference:</dt>
        <dd pn="section-5-4.8">A reference to the document that registers
          the requested cost mode.</dd>
      </dl>
      <t indent="0" pn="section-5-5">Cost modes prefixed with "priv:" are reserved for Private Use
      (<xref target="RFC8126" sectionFormat="of" section="4.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8126#section-4.1" derivedContent="RFC8126"/>).
      IANA has added the following note to the new subregistry:</t>
      <blockquote pn="section-5-6"> 
Identifiers prefixed with "priv:" are reserved
for Private Use (see RFC 9274, <xref target="IANA" format="default" sectionFormat="of" derivedContent="Section 5"/>).</blockquote>
      <t indent="0" pn="section-5-7">The subregistry is initially populated with the following values:</t>
      <table anchor="subregistry" align="center" pn="table-1">
        <name slugifiedName="name-alto-cost-modes">ALTO Cost Modes</name>
        <thead>
          <tr>
            <th rowspan="1" colspan="1" align="left">Identifier</th>
            <th rowspan="1" colspan="1" align="left">Description</th>
            <th rowspan="1" colspan="1" align="left">Intended Semantics</th>
            <th rowspan="1" colspan="1" align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">numerical</td>
            <td align="left" colspan="1" rowspan="1">Indicates that numerical operations can be performed on the returned costs</td>
            <td align="left" colspan="1" rowspan="1">
              <xref target="RFC7285" sectionFormat="of" section="6.1.2.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7285#section-6.1.2.1" derivedContent="RFC7285"/></td>
            <td align="left" colspan="1" rowspan="1">RFC 9274</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">ordinal</td>
            <td align="left" colspan="1" rowspan="1">Indicates that the cost values in a cost map represent ranking</td>
            <td align="left" colspan="1" rowspan="1">
              <xref target="RFC7285" sectionFormat="of" section="6.1.2.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7285#section-6.1.2.2" derivedContent="RFC7285"/></td>
            <td align="left" colspan="1" rowspan="1">RFC 9274</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="security" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-6-1">This document does not introduce new concerns other than those
      already discussed in <xref target="RFC7285" sectionFormat="of" section="15" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7285#section-15" derivedContent="RFC7285"/>.</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-alto-path-vector" to="ALTO-PV"/>
    <references pn="section-7">
      <name slugifiedName="name-references">References</name>
      <references pn="section-7.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t indent="0">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="RFC7285" target="https://www.rfc-editor.org/info/rfc7285" quoteTitle="true" derivedAnchor="RFC7285">
          <front>
            <title>Application-Layer Traffic Optimization (ALTO) Protocol</title>
            <author initials="R." surname="Alimi" fullname="R. Alimi" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Penno" fullname="R. Penno" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Yang" fullname="Y. Yang" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Kiesel" fullname="S. Kiesel">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Previdi" fullname="S. Previdi">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="W." surname="Roome" fullname="W. Roome">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Shalunov" fullname="S. Shalunov">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Woundy" fullname="R. Woundy">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="September"/>
            <abstract>
              <t indent="0">Applications using the Internet already have access to some topology information of Internet Service Provider (ISP) networks.  For example, views to Internet routing tables at Looking Glass servers are available and can be practically downloaded to many network application clients.  What is missing is knowledge of the underlying network topologies from the point of view of ISPs.  In other words, what an ISP prefers in terms of traffic optimization -- and a way to distribute it.</t>
              <t indent="0">The Application-Layer Traffic Optimization (ALTO) services defined in this document provide network information (e.g., basic network location structure and preferences of network paths) with the goal of modifying network resource consumption patterns while maintaining or improving application performance.  The basic information of ALTO is based on abstract maps of a network.  These maps provide a simplified view, yet enough information about a network for applications to effectively utilize them.  Additional services are built on top of the maps.</t>
              <t indent="0">This document describes a protocol implementing the ALTO services. Although the ALTO services would primarily be provided by ISPs, other entities, such as content service providers, could also provide ALTO services.  Applications that could use the ALTO services are those that have a choice to which end points to connect.  Examples of such applications are peer-to-peer (P2P) and content delivery networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7285"/>
          <seriesInfo name="DOI" value="10.17487/RFC7285"/>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" quoteTitle="true" derivedAnchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author initials="M." surname="Cotton" fullname="M. Cotton">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Narten" fullname="T. Narten">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="June"/>
            <abstract>
              <t indent="0">Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t indent="0">To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t indent="0">This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t indent="0">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 pn="section-7.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="ALTO" target="https://www.iana.org/assignments/alto-protocol/" quoteTitle="true" derivedAnchor="ALTO">
          <front>
            <title>Application-Layer Traffic Optimization (ALTO) Protocol</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="I-D.ietf-alto-path-vector" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-alto-path-vector-25" derivedAnchor="ALTO-PV">
          <front>
            <title>An ALTO Extension: Path Vector</title>
            <author fullname="Kai Gao">
              <organization showOnFrontPage="true">Sichuan University</organization>
            </author>
            <author fullname="Young Lee">
              <organization showOnFrontPage="true">Samsung</organization>
            </author>
            <author fullname="Sabine Randriamasy">
              <organization showOnFrontPage="true">Nokia Bell Labs</organization>
            </author>
            <author fullname="Yang Richard Yang">
              <organization showOnFrontPage="true">Yale University</organization>
            </author>
            <author fullname="Jingxuan Jensen Zhang">
              <organization showOnFrontPage="true">Tongji University</organization>
            </author>
            <date month="March" day="20" 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 which
   endpoint(s) to connect based on not only numerical/ordinal cost
   values but also fine-grained abstract information of the paths.  This
   is useful for applications whose performance is impacted by specified
   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 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="Internet-Draft" value="draft-ietf-alto-path-vector-25"/>
          <format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-alto-path-vector-25.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="ack" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">Many thanks to <contact fullname="Benjamin Kaduk"/> for spotting the
      issue during the review of <xref target="I-D.ietf-alto-path-vector" format="default" sectionFormat="of" derivedContent="ALTO-PV"/>.</t>
      <t indent="0" pn="section-appendix.a-2">Thanks to <contact fullname="Adrian Farrel"/>, 
      <contact fullname="Dhruv Dhody"/>, 
      <contact fullname="Luis Miguel Contreras Murillo"/>,
      <contact fullname="Sabine Randriamasy"/>, and 
      <contact fullname="Qiao Xiang"/> for the review and comments.</t>
      <t indent="0" pn="section-appendix.a-3">Special thanks to <contact fullname="Kai Gao"/> for Shepherding the document.</t>
      <t indent="0" pn="section-appendix.a-4">Thanks to <contact fullname="Martin Duke"/> for the AD review.</t>
      <t indent="0" pn="section-appendix.a-5">Thanks to <contact fullname="Roni Even"/> for the gen-art review, <contact fullname="Jaime Jimenez"/> for the
      artart review, and <contact fullname="Stephen Farrell"/> for the secdir review.</t>
      <t indent="0" pn="section-appendix.a-6">Thanks to <contact fullname="Robert Wilton"/>, <contact fullname="Lars Eggert"/>, <contact fullname="Francesca Palombini"/>, <contact fullname="Roman       Danyliw"/>, <contact fullname="Paul Wouters"/>, and <contact fullname="Murray Kucherawy"/> for the IESG 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 fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
        <organization showOnFrontPage="true">Orange</organization>
        <address>
          <postal>
            <street/>
            <city>Rennes</city>
            <region/>
            <code>35000</code>
            <country>France</country>
          </postal>
          <email>mohamed.boucadair@orange.com</email>
        </address>
      </author>
      <author fullname="Qin Wu" initials="Q." surname="Wu">
        <organization showOnFrontPage="true">Huawei</organization>
        <address>
          <postal>
            <extaddr>Yuhua District</extaddr>
            <street>101 Software Avenue</street>
            <city>Nanjing</city>
            <region>Jiangsu</region>
            <code>210012</code>
            <country>China</country>
          </postal>
          <email>bill.wu@huawei.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
