<?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-6man-ipv6-alt-mark-17" indexInclude="true" ipr="trust200902" number="9343" prepTime="2022-12-20T22:43:00" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-6man-ipv6-alt-mark-17" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9343" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="IPv6 Application of the Alternate-Marking Method">IPv6 Application of the Alternate-Marking Method</title>
    <seriesInfo name="RFC" value="9343" stream="IETF"/>
    <author fullname="Giuseppe Fioccola" initials="G." surname="Fioccola">
      <organization showOnFrontPage="true">Huawei</organization>
      <address>
        <postal>
          <street>Riesstrasse, 25</street>
          <city>Munich</city>
          <code>80992</code>
          <region/>
          <country>Germany</country>
        </postal>
        <email>giuseppe.fioccola@huawei.com</email>
      </address>
    </author>
    <author fullname="Tianran Zhou" initials="T." surname="Zhou">
      <organization showOnFrontPage="true">Huawei</organization>
      <address>
        <postal>
          <street>156 Beiqing Rd.</street>
          <city>Beijing</city>
          <code>100095</code>
          <region/>
          <country>China</country>
        </postal>
        <email>zhoutianran@huawei.com</email>
      </address>
    </author>
    <author fullname="Mauro Cociglio" initials="M." surname="Cociglio">
      <organization showOnFrontPage="true">Telecom Italia</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <region/>
          <code/>
          <country/>
        </postal>
        <email>mauro.cociglio@outlook.com</email>
      </address>
    </author>
    <author fullname="Fengwei Qin" initials="F." surname="Qin">
      <organization showOnFrontPage="true">China Mobile</organization>
      <address>
        <postal>
          <street>32 Xuanwumenxi Ave.</street>
          <city>Beijing</city>
          <region/>
          <code>100032</code>
          <country>China</country>
        </postal>
        <email>qinfengwei@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Ran Pang" initials="R." surname="Pang">
      <organization showOnFrontPage="true">China Unicom</organization>
      <address>
        <postal>
          <street>9 Shouti South Rd.</street>
          <city>Beijing</city>
          <region/>
          <code>100089</code>
          <country>China</country>
        </postal>
        <email>pangran@chinaunicom.cn</email>
      </address>
    </author>
    <date month="12" year="2022"/>
    <area>Internet</area>
    <workgroup>6MAN</workgroup>
    <keyword>Extension</keyword>
    <keyword>Header</keyword>
    <keyword>Option</keyword>
    <keyword>Destination</keyword>
    <keyword>Hop-By-Hop</keyword>
    <keyword>Performance</keyword>
    <keyword>Measurement</keyword>
    <keyword>Monitoring</keyword>
    <keyword>Passive</keyword>
    <keyword>Hybrid</keyword>
    <keyword>Loss</keyword>
    <keyword>Delay</keyword>
    <keyword>Delay Variation</keyword>
    <keyword>Multipoint</keyword>
    <keyword>Cluster</keyword>
    <keyword>Closed-Loop</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document describes how the Alternate-Marking Method can be used
    as a passive performance measurement tool in an IPv6 domain. It defines an
    Extension Header Option to encode Alternate-Marking information in
    both the Hop-by-Hop Options Header and Destination Options Header.</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/rfc9343" 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>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.2">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.2.1"><xref derivedContent="1.2" format="counter" sectionFormat="of" target="section-1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" 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-alternate-marking-applicati">Alternate-Marking Application to IPv6</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" 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-controlled-domain">Controlled Domain</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2.1.2">
                  <li pn="section-toc.1-1.2.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.2.2.1.2.1.1"><xref derivedContent="2.1.1" format="counter" sectionFormat="of" target="section-2.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-alternate-marking-measureme">Alternate-Marking Measurement Domain</xref></t>
                  </li>
                </ul>
              </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-definition-of-the-altmark-o">Definition of the AltMark Option</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-data-fields-format">Data Fields Format</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-use-of-the-altmark-option">Use of the AltMark Option</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-alternate-marking-method-op">Alternate-Marking Method Operation</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-packet-loss-measurement">Packet Loss Measurement</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-packet-delay-measurement">Packet Delay Measurement</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.3">
                <t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-flow-monitoring-identificat">Flow Monitoring Identification</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.4">
                <t indent="0" pn="section-toc.1-1.5.2.4.1"><xref derivedContent="5.4" format="counter" sectionFormat="of" target="section-5.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multipoint-and-clustered-al">Multipoint and Clustered Alternate Marking</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.5">
                <t indent="0" pn="section-toc.1-1.5.2.5.1"><xref derivedContent="5.5" format="counter" sectionFormat="of" target="section-5.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-data-collection-and-calcula">Data Collection and Calculation</xref></t>
              </li>
            </ul>
          </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-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <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.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </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.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.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 numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1"><xref target="RFC9341" format="default" sectionFormat="of" derivedContent="RFC9341"/> and <xref target="RFC9342" format="default" sectionFormat="of" derivedContent="RFC9342"/>
		describe a passive performance measurement method, which can be used to measure packet loss, 
		latency, and jitter on live traffic. Since this method is based on marking consecutive 
		batches of packets, the method is often referred to as the Alternate-Marking Method.</t>
      <t indent="0" pn="section-1-2">This document defines how the Alternate-Marking Method can be used to measure 
		performance metrics in IPv6. The rationale is to apply the Alternate-Marking methodology to IPv6 and
		therefore allow detailed packet loss, delay, and delay variation measurements both hop by hop and end to end
		to exactly locate the issues in an IPv6 network.</t>
      <t indent="0" pn="section-1-3">Alternate Marking is an on-path telemetry technique and consists of synchronizing the measurements 
		in different points of a network by switching the value of a marking bit and therefore dividing the packet flow
		into batches. Each batch represents a measurable entity recognizable by all network nodes along the path. 
		By counting the number of packets in each batch and comparing the values measured by different nodes, 
		it is possible to precisely measure the packet loss. Similarly, the alternation of the values 
		of the marking bits can be used as a time reference to calculate the delay and delay variation.
		The Alternate-Marking operation is further described in <xref target="operation" format="default" sectionFormat="of" derivedContent="Section 5"/>.</t>
      <t indent="0" pn="section-1-4">This document introduces a TLV (type-length-value) that can be encoded in the Options Headers 
		(Hop-by-Hop or Destination), according to <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/>, for the purpose of the
		Alternate-Marking Method application in an IPv6 domain.</t>
      <t indent="0" pn="section-1-5">The Alternate-Marking Method <bcp14>MUST</bcp14> be applied to IPv6 only in a controlled environment, as further described 
		in <xref target="ctrldmn" format="default" sectionFormat="of" derivedContent="Section 2.1"/>. <xref target="RFC8799" format="default" sectionFormat="of" derivedContent="RFC8799"/> provides further discussion of network behaviors
		that can be applied only within limited domains.</t>
      <t indent="0" pn="section-1-6">The threat model for the application of the Alternate-Marking Method in an IPv6 domain is reported in 
		<xref target="security" format="default" sectionFormat="of" derivedContent="Section 6"/>.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-terminology">Terminology</name>
        <t indent="0" pn="section-1.1-1">This document uses the terms related to the Alternate-Marking Method 
		as defined in <xref target="RFC9341" format="default" sectionFormat="of" derivedContent="RFC9341"/> and <xref target="RFC9342" format="default" sectionFormat="of" derivedContent="RFC9342"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.2">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-1.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>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-alternate-marking-applicati">Alternate-Marking Application to IPv6</name>
      <t indent="0" pn="section-2-1">The Alternate-Marking Method requires a marking field. Several alternatives 
		could be considered such as IPv6 Extension Headers, IPv6 Address, and Flow Label.
		But, it is necessary to analyze the drawbacks for all the available possibilities, 
		more specifically:</t>
      <ul empty="false" spacing="normal" bare="false" indent="3" pn="section-2-2">
        <li pn="section-2-2.1">reusing an existing Extension Header for Alternate Marking leads to a 
		  non-optimized implementation;</li>
        <li pn="section-2-2.2">using the IPv6 destination address to encode the Alternate-Marking processing 
		  is very expensive; and</li>
        <li pn="section-2-2.3">using the IPv6 Flow Label for Alternate Marking conflicts with the utilization 
	of the Flow Label for load distribution purposes <xref target="RFC6438" format="default" sectionFormat="of" derivedContent="RFC6438"/>.</li>
      </ul>
      <t indent="0" pn="section-2-3">In the end, a Hop-by-Hop or a Destination Option is the best choice.</t>
      <t indent="0" pn="section-2-4">The approach for the Alternate-Marking application to IPv6 specified in this memo
		is compliant with <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/>. It involves the following operations:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2-5">
        <li pn="section-2-5.1">The source node is the only one that writes the Options Header to mark alternately 
		  the flow (for both the Hop-by-Hop and Destination Option). The intermediate nodes and destination node 
	<bcp14>MUST</bcp14> only read the marking values of the Option without modifying the Options Header.</li>
        <li pn="section-2-5.2">In case of a Hop-by-Hop Options Header carrying Alternate-Marking bits, the Options Header is not 
		  inserted or deleted on the path, but it can be read by any node along the path. The intermediate nodes 
		  may be configured to support this Option or not, and the measurement can be done only for 
		  the nodes configured to read the Option. As further discussed in <xref target="use" format="default" sectionFormat="of" derivedContent="Section 4"/>,
		  the presence of the Hop-by-Hop Option should not affect the traffic throughput both on nodes 
		  that do not recognize this Option and on the nodes that support it. However, it is worth 
		  mentioning that there is a difference between theory and practice. Indeed, in a real implementation, 
		  it is possible for packets with a Hop-by-Hop Option to be skipped or processed in the slow path. 
		  While some proposals are trying to address this problem and make Hop-by-Hop Options more practical 
		  (see <xref target="PROC-HBH-OPT-HEADER" format="default" sectionFormat="of" derivedContent="PROC-HBH-OPT-HEADER"/> and <xref target="HBH-OPTIONS-PROCESSING" format="default" sectionFormat="of" derivedContent="HBH-OPTIONS-PROCESSING"/>), these aspects
		  are out of the scope for this document.</li>
        <li pn="section-2-5.3">In case of a Destination Options Header carrying Alternate-Marking bits, it is not 
		  processed, inserted, or deleted by any node along the path until the packet reaches 
		  the destination node. Note that, if there is also a Routing Header (RH), any visited 
		  destination in the route list can process the Options Header.</li>
      </ul>
      <t indent="0" pn="section-2-6">A Hop-by-Hop Options Header is also useful to signal to routers on the path to process the 
      Alternate Marking. However, as said, routers will only examine this Option if properly configured.</t>
      <t indent="0" pn="section-2-7">The optimization of both implementation and the scaling of the Alternate-Marking Method is 
		also considered, and a way to identify flows is required. The Flow Monitoring Identification 
		(FlowMonID) field, as introduced in <xref target="flowmonid" format="default" sectionFormat="of" derivedContent="Section 5.3"/>, goes in this direction, and it is used to identify 
		a monitored flow.</t>
      <t indent="0" pn="section-2-8">The FlowMonID is different from the Flow Label field of the IPv6 header <xref target="RFC6437" format="default" sectionFormat="of" derivedContent="RFC6437"/>. 
		The Flow Label field in the IPv6 header is used by a source to label sequences of packets to be treated 
		in the network as a single flow and, as reported in <xref target="RFC6438" format="default" sectionFormat="of" derivedContent="RFC6438"/>, it can be used 
		for load balancing (LB) and equal-cost multipath (ECMP). The reuse of the Flow Label field for identifying monitored flows 
		is not considered because it may change the application intent and forwarding behavior. Also, the Flow Label 
		may be changed en route, and this may also invalidate the integrity of the measurement. Those reasons make the definition 
		of the FlowMonID necessary for IPv6. Indeed, the FlowMonID is designed and only used to identify the monitored flow.
		Flow Label and FlowMonID within the same packet are totally disjoint, have different scopes, 
		are used to identify flows based on different criteria, and are intended for different use cases.</t>
      <t indent="0" pn="section-2-9">The rationale for the FlowMonID is further discussed in <xref target="flowmonid" format="default" sectionFormat="of" derivedContent="Section 5.3"/>. This 20-bit field
		allows easy and flexible identification of the monitored flow and enables improved measurement correlation
		and finer granularity since it can be used in combination with the conventional TCP/IP 5-tuple to identify a flow.
		An important point that will be discussed in <xref target="flowmonid" format="default" sectionFormat="of" derivedContent="Section 5.3"/> is the uniqueness of the FlowMonID 
		and how to allow disambiguation of the FlowMonID in case of collision.</t>
      <t indent="0" pn="section-2-10">The following section highlights an important requirement for the application of the Alternate Marking to IPv6.
        The concept of the controlled domain is explained and is considered an essential precondition, as also highlighted
		in <xref target="security" format="default" sectionFormat="of" derivedContent="Section 6"/>.</t>
      <section anchor="ctrldmn" numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-controlled-domain">Controlled Domain</name>
        <t indent="0" pn="section-2.1-1">IPv6 has much more flexibility than IPv4 and innovative applications have been proposed, but
        for security and compatibility reasons, some of these applications are limited to a controlled environment.
		This is also the case of the Alternate-Marking application to IPv6 as assumed hereinafter.
		In this regard, <xref target="RFC8799" format="default" sectionFormat="of" derivedContent="RFC8799"/> reports further examples of specific limited domain solutions.</t>
        <t indent="0" pn="section-2.1-2">The IPv6 application of the Alternate-Marking Method <bcp14>MUST</bcp14> be deployed in a controlled domain.
		It is not common that the user traffic originates and terminates within the controlled domain, as also noted in
		<xref target="altmarkmeasdmn" format="default" sectionFormat="of" derivedContent="Section 2.1.1"/>. For this reason, it will typically only be applicable in an overlay network, 
		where user traffic is encapsulated at one domain border and decapsulated at the other domain border, and the encapsulation
		incorporates the relevant extension header for Alternate Marking. 
		This requirement also implies that an implementation <bcp14>MUST</bcp14> filter packets that carry Alternate-Marking 
		data and are entering or leaving the controlled domain.</t>
        <t indent="0" pn="section-2.1-3">A controlled domain is a managed network where it is required to select, monitor, and control the access to the network 
		by enforcing policies at the domain boundaries in order to discard undesired external packets entering the domain 
		and check the internal packets leaving the domain. It does not necessarily mean that a controlled domain is a single administrative domain 
		or a single organization. A controlled domain can correspond to a single administrative domain or can be composed by 
		multiple administrative domains under a defined network management. Indeed, some scenarios may imply that the Alternate-Marking Method 
		involves more than one domain, but in these cases, it is <bcp14>RECOMMENDED</bcp14> that the multiple domains create a whole controlled domain 
		while traversing the external domain by employing IPsec <xref target="RFC4301" format="default" sectionFormat="of" derivedContent="RFC4301"/> authentication and encryption or 
		other VPN technology that provides full packet confidentiality and integrity protection. In a few words, it must be possible 
		to control the domain boundaries and eventually use specific precautions if the traffic traverses the Internet.</t>
        <t indent="0" pn="section-2.1-4">The security considerations reported in <xref target="security" format="default" sectionFormat="of" derivedContent="Section 6"/> also highlight this requirement.</t>
        <section anchor="altmarkmeasdmn" numbered="true" toc="include" removeInRFC="false" pn="section-2.1.1">
          <name slugifiedName="name-alternate-marking-measureme">Alternate-Marking Measurement Domain</name>
          <t indent="0" pn="section-2.1.1-1">The Alternate-Marking measurement domain can overlap with the controlled domain or may be a subset 
		of the controlled domain. The typical scenarios for the application of the Alternate-Marking Method 
		depend on the controlled domain boundaries; in particular:</t>
          <ul empty="false" spacing="normal" bare="false" indent="3" pn="section-2.1.1-2">
            <li pn="section-2.1.1-2.1">The user equipment can be the starting or ending node only when/if it is fully managed and belongs 
		  to the controlled domain. In this case, the user-generated IPv6 packets contain the Alternate-Marking data.
		  But, in practice, this is not common due to the fact that the user equipment cannot be totally secured in the majority of cases.</li>
            <li pn="section-2.1.1-2.2">The Customer Premises Equipment (CPE) or the Provider Edge (PE) routers are most likely to be the starting or 
		  ending nodes since they can be border routers of the controlled domain. For instance, the CPE, which connects the user's premises 
		  with the service provider's network, belongs to a controlled domain only if it is managed by the service provider and 
		  if additional security measures are taken to keep it trustworthy.
		  Typically, the CPE or the PE can encapsulate a received packet in an outer IPv6 header, which contains the Alternate-Marking data.
		  They are also able to filter and drop packets from outside of the domain with inconsistent fields
		  to make effective the relevant security rules at the domain boundaries; for example, a simple security check 
		  can be to insert the Alternate-Marking data if and only if the destination is within the controlled domain.</li>
          </ul>
        </section>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-definition-of-the-altmark-o">Definition of the AltMark Option</name>
      <t indent="0" pn="section-3-1">The definition of a TLV for the Extension Header Option,
	   carrying the data fields dedicated to the Alternate-Marking Method, 
	   is reported below.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-data-fields-format">Data Fields Format</name>
        <t indent="0" pn="section-3.1-1">The following figure shows the data fields format for enhanced
      Alternate-Marking TLV (AltMark). This AltMark data can be encapsulated in the IPv6 Options Headers 
	  (Hop-by-Hop or Destination Option).
	  
        </t>
        <artwork name="AltMark: TLV for Alternate Marking" type="" align="left" alt="" pn="section-3.1-2">
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                |  Option Type  |  Opt Data Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              FlowMonID                |L|D|     Reserved      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        <t indent="0" pn="section-3.1-3">

		Where:</t>
        <dl indent="3" newline="false" spacing="normal" pn="section-3.1-4">
          <dt pn="section-3.1-4.1">Option Type:
          </dt>
          <dd pn="section-3.1-4.2">8-bit identifier of the type of Option that needs to be
		  allocated. Unrecognized Types <bcp14>MUST</bcp14> be ignored
		  on processing.  For the Hop-by-Hop Options Header or Destination
		  Options Header, <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/>
		  defines how to encode the three high-order bits of the
		  Option Type field. The two high-order bits specify the
		  action that must be taken if the processing IPv6 node does
		  not recognize the Option Type; for AltMark, these two bits
		  <bcp14>MUST</bcp14> be set to 00 (skip over this Option and
		  continue processing the header).  The third-highest-order
		  bit specifies whether the Option Data can change en route to
		  the packet's final destination; for AltMark, the value of
		  this bit <bcp14>MUST</bcp14> be set to 0 (Option Data does
		  not change en route). In this way, since the three
		  high-order bits of the AltMark Option are set to 000, it
		  means that nodes can simply skip this Option if they do not
		  recognize it and that the data of this Option does not change en
		  route; indeed the source is the only one that can write it.
		  </dd>
          <dt pn="section-3.1-4.3">Opt Data Len:
          </dt>
          <dd pn="section-3.1-4.4">4. It is the length of the Option Data Fields of this
		  Option in bytes.
		  </dd>
          <dt pn="section-3.1-4.5">FlowMonID:
          </dt>
          <dd pn="section-3.1-4.6">20-bit unsigned integer. The FlowMon identifier is
		  described in <xref target="flowmonid" format="default" sectionFormat="of" derivedContent="Section 5.3"/>.
		  As further discussed below, it has been picked as 20 bits
		  since it is a reasonable value and a good compromise in
		  relation to the chance of collision. It <bcp14>MUST</bcp14>
		  be set pseudo-randomly by the source node or by a
		  centralized controller.
		  </dd>
          <dt pn="section-3.1-4.7">L:
          </dt>
          <dd pn="section-3.1-4.8">Loss flag for Packet Loss Measurement as described in
		  <xref target="loss" format="default" sectionFormat="of" derivedContent="Section 5.1"/>.
		  </dd>
          <dt pn="section-3.1-4.9">D:
          </dt>
          <dd pn="section-3.1-4.10">Delay flag for Single Packet Delay Measurement as
		  described in <xref target="delay" format="default" sectionFormat="of" derivedContent="Section 5.2"/>.
		  </dd>
          <dt pn="section-3.1-4.11">Reserved:
          </dt>
          <dd pn="section-3.1-4.12">Reserved for future use. These bits
		  <bcp14>MUST</bcp14> be set to zero on transmission and
		  ignored on receipt.
		  </dd>
        </dl>
      </section>
    </section>
    <section anchor="use" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-use-of-the-altmark-option">Use of the AltMark Option</name>
      <t indent="0" pn="section-4-1">The AltMark Option is the best way to implement the Alternate-Marking Method, and it is carried 
	  by the Hop-by-Hop Options Header and the Destination Options Header.
	  In case of Destination Option, it is processed only by the source and destination nodes: the source node inserts it
	  and the destination node processes it. 
	  In case of the Hop-by-Hop Option, it may be examined by any node along the path if explicitly configured to do so.</t>
      <t indent="0" pn="section-4-2">It is important to highlight that the Option Layout can be used both as the Destination Option and as the
	  Hop-by-Hop Option depending on the use cases, and it is based on the chosen type of performance measurement. 
	  In general, it is needed to perform both end-to-end and hop-by-hop measurements, and the Alternate-Marking 
	  methodology allows, by definition, both performance measurements.
	  In many cases, the end-to-end measurement 
	  may not be enough, and the hop-by-hop measurement is required. To meet this need, the most complete choice is the
	  Hop-by-Hop Options Header.</t>
      <t indent="0" pn="section-4-3">IPv6, as specified in <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/>, allows nodes to optionally process
	  Hop-by-Hop headers. Specifically, the Hop-by-Hop Options Header is not inserted or deleted, but it may
      be examined or processed by any node along a packet's delivery path, until the packet reaches the node 
	  (or each of the set of nodes in the case of multicast) identified in the Destination
      Address field of the IPv6 header. Also, it is expected that nodes along a packet's delivery path 
	  only examine and process the Hop-by-Hop Options Header if explicitly configured to do so.</t>
      <t indent="0" pn="section-4-4">Another scenario is the presence of a Routing Header. 
	  Both Hop-by-Hop Options and Destination Options Headers can be used when a Routing Header is present.
	  Depending on where the Destination Options are situated in the header chain (before or after the Routing Header if any),
	  Destination Options Headers can be processed by either intermediate routers specified in the Routing Header or the destination node.
	  As an example, a type of Routing Header, referred to as a Segment Routing Header (SRH), has been defined in <xref target="RFC8754" format="default" sectionFormat="of" derivedContent="RFC8754"/> 
	  for the Segment Routing over IPv6 (SRv6) data place, and more details about the SRv6 application can be found in 
	  <xref target="I-D.fz-spring-srv6-alt-mark" format="default" sectionFormat="of" derivedContent="SRv6-AMM"/>.</t>
      <t indent="0" pn="section-4-5">In summary, using these tools, it is possible to control on which nodes measurement occurs:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-6">
        <li pn="section-4-6.1">Destination Option not preceding a Routing Header =&gt; measurement
      only by node in Destination Address</li>
        <li pn="section-4-6.2">Hop-by-Hop Option =&gt; every router on the path with feature
      enabled</li>
        <li pn="section-4-6.3">Destination Option preceding a Routing Header =&gt; every destination
      node in the route list</li>
      </ul>
      <t indent="0" pn="section-4-7">In general, Hop-by-Hop and Destination Options are the most suitable ways 
	  to implement Alternate Marking.</t>
      <t indent="0" pn="section-4-8">It is worth mentioning that Hop-by-Hop Options are not strongly recommended in <xref target="RFC7045" format="default" sectionFormat="of" derivedContent="RFC7045"/> 
	  and <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/>, unless there is a clear justification to standardize it, because nodes may be 
	  configured to ignore the Options Header or drop or assign packets containing an Options Header to a slow processing path.
	  In case of the AltMark Data Fields described in this document, the motivation to standardize a Hop-by-Hop Option 
	  is that it is needed for Operations, Administration, and Maintenance (OAM). An intermediate node can read it or not, but
	  this does not affect the packet behavior. The source node is the only one that writes the Hop-by-Hop Option to alternately mark
	  the flow; therefore, the performance measurement can be done for those nodes configured to read this Option,
	  while the others are simply not considered for the metrics.</t>
      <t indent="0" pn="section-4-9">The Hop-by-Hop Option defined in this document is designed to take advantage of the property of how Hop-by-Hop 
	  Options are processed. Nodes that do not support this Option would be expected to ignore it if encountered, 
	  according to the procedures of <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/>. This can mean that, in this case, the performance measurement
	  does not account for all links and nodes along a path. The definition of the Hop-by-Hop Options in this document is also 
	  designed to minimize throughput impact both on nodes that do not recognize the Option and on nodes that support it.
	  Indeed, the three high-order bits of the Options Header defined in this document are 000 and, in theory, as per 
	  <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/> and <xref target="HBH-OPTIONS-PROCESSING" format="default" sectionFormat="of" derivedContent="HBH-OPTIONS-PROCESSING"/>, this means "skip if not recognized and data does not change en route". <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/> also mentions that the nodes only examine and process the Hop-by-Hop Options Header if explicitly configured to do so. For these reasons, this Hop-by-Hop Option should not affect the throughput. 
	  However, in practice, it is important to be aware that things may be different in the implementation, and it can happen that packets
	  with Hop by Hop are forced onto the slow path, but this is a general issue, as also explained in <xref target="HBH-OPTIONS-PROCESSING" format="default" sectionFormat="of" derivedContent="HBH-OPTIONS-PROCESSING"/>.	  
	  It is also worth mentioning that the application to a controlled domain should avoid the risk of arbitrary nodes dropping packets 
	  with Hop-by-Hop Options.</t>
    </section>
    <section anchor="operation" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-alternate-marking-method-op">Alternate-Marking Method Operation</name>
      <t indent="0" pn="section-5-1">This section describes how the method operates. <xref target="RFC9341" format="default" sectionFormat="of" derivedContent="RFC9341"/>
		introduces several applicable methods, which are reported below, and an additional field is introduced 
		to facilitate the deployment and improve the scalability.</t>
      <section anchor="loss" numbered="true" toc="include" removeInRFC="false" pn="section-5.1">
        <name slugifiedName="name-packet-loss-measurement">Packet Loss Measurement</name>
        <t indent="0" pn="section-5.1-1">The measurement of the packet loss is really straightforward in comparison to the existing mechanisms, 
		as detailed in <xref target="RFC9341" format="default" sectionFormat="of" derivedContent="RFC9341"/>.
		The packets of the flow are grouped into batches, and all the packets within a batch are marked by setting
		the L bit (Loss flag) to a same value. The source node can switch the value of the L bit between 0 and 1 
		after a fixed number of packets or according to a fixed timer, and this depends on the 
		implementation. The source node is the only one that marks the packets to create the batches, while 
		the intermediate nodes only read the marking values and identify the packet batches. 
		By counting the number of packets in each batch and comparing the values measured by 
		different network nodes along the path, it is possible to measure the packet loss that occurred
		in any single batch between any two nodes. Each batch represents a measurable entity  
		recognizable by all network nodes along the path.</t>
        <t indent="0" pn="section-5.1-2">Both fixed number of packets and a fixed timer can be used by the source node to create packet batches. 
		But, as also explained in <xref target="RFC9341" format="default" sectionFormat="of" derivedContent="RFC9341"/>, the timer-based batches are preferable because 
		they are more deterministic than the counter-based batches.

Unlike the timer-based batches, there is no definitive rule 
for counter-based batches, which are not considered in <xref target="RFC9341" format="default" sectionFormat="of" derivedContent="RFC9341"/>.

	 Using a fixed timer for the switching offers 
		better control over the method; indeed, the length of the batches can be chosen large enough to simplify 
		the collection and the comparison of the measures taken by different network nodes. In the implementation, 
		the counters can be sent out by each node to the controller that is responsible for the calculation. 
		It is also possible to exchange this information by using other on-path techniques, but this is out of scope
	for this document.</t>
        <t indent="0" pn="section-5.1-3">Packets with different L values may get swapped at batch boundaries, and in this case, 
		it is required that each marked packet can be assigned to the right batch by each router.
		It is important to mention that for the application of this method, there are two elements 
		to consider: the clock error between network nodes and the network delay.
		These can create
		offsets between the batches and out-of-order packets.
		The mathematical formula 
		on timing aspects, explained in <xref sectionFormat="of" section="5" target="RFC9341" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9341#section-5" derivedContent="RFC9341"/>, must be satisfied, 
		and it takes into consideration the different causes of reordering such as clock error and network delay.
		The assumption is to define the available counting interval to get stable counters and to avoid these issues.
		Specifically, if the effects of network delay are ignored, the condition to implement the methodology is that
		the clocks in different nodes <bcp14>MUST</bcp14> be synchronized to the same clock reference with an accuracy of +/- B/2 time units, 
		where B is the fixed time duration of the batch. In this way, each marked packet can be assigned to the right batch by each node.
		Usually, the counters can be taken in the middle of the batch period to be sure to read quiescent counters. 
		In a few words, this implies that the length of the batches <bcp14>MUST</bcp14> be chosen large enough so that the method 
		is not affected by those factors. The length of the batches can be determined based on the specific deployment scenario.</t>
        <figure anchor="Lbit" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-packet-loss-measurement-and">Packet Loss Measurement and Single-Marking Methodology Using L Bit</name>
          <artwork name="" type="" align="left" alt="" pn="section-5.1-4.1">
L bit=1   ----------+           +-----------+           +----------
                    |           |           |           |
L bit=0             +-----------+           +-----------+
           Batch n        ...      Batch 3     Batch 2     Batch 1
         &lt;---------&gt; &lt;---------&gt; &lt;---------&gt; &lt;---------&gt; &lt;---------&gt;

                             Traffic Flow
         ===========================================================&gt;
L bit   ...1111111111 0000000000 11111111111 00000000000 111111111...
         ===========================================================&gt;
</artwork>
        </figure>
        <t indent="0" pn="section-5.1-5">It is worth mentioning that the duration of the batches is considered stable over time in the previous figure. 
	   In theory, it is possible to change the length of batches over time and among different flows for more flexibility. 
	   But, in practice, it could complicate the correlation of the information.</t>
      </section>
      <section anchor="delay" numbered="true" toc="include" removeInRFC="false" pn="section-5.2">
        <name slugifiedName="name-packet-delay-measurement">Packet Delay Measurement</name>
        <t indent="0" pn="section-5.2-1">The same principle used to measure packet loss can also be applied to
		one-way delay measurement. Delay metrics <bcp14>MAY</bcp14> be calculated using the following two 
		possibilities:</t>
        <dl indent="3" newline="false" spacing="normal" pn="section-5.2-2">
          <dt pn="section-5.2-2.1">Single-Marking Methodology:</dt>
          <dd pn="section-5.2-2.2">This approach uses only the L bit to calculate both packet loss 
		and delay. In this case, the D flag <bcp14>MUST</bcp14> be set to zero on transmit and ignored by the
		monitoring points. The alternation of the values of the L bit can be used as a time reference to calculate 
		the delay. Whenever the L bit changes and a new batch starts, a network node can store the timestamp 
		of the first packet of the new batch; that timestamp can be compared with the timestamp of the 
		first packet of the same batch on a second node to compute packet delay. But, this measurement 
		is accurate only if no packet loss occurs and if there is no packet reordering at the edges 
		of the batches. A different approach can also be considered, and it is based on the concept of the 
		mean delay.  The mean delay for each batch is calculated by considering the average arrival time 
		of the packets for the relative batch. There are limitations also in this case indeed; each node needs 
		to collect all the timestamps and calculate the average timestamp for each batch. In addition, the 
		information is limited to a mean value.</dd>
          <dt pn="section-5.2-2.3">Double-Marking Methodology:</dt>
          <dd pn="section-5.2-2.4">This approach is more complete and uses the L bit only to calculate
		packet loss, and the D bit (Delay flag) is fully dedicated to delay measurements. The idea is to use 
		the first marking with the L bit to create the alternate flow and, within the batches identified by the L bit, 
		a second marking is used to select the packets for measuring delay. The D bit creates a new set of marked packets 
		that are fully identified over the network so that a network node can store the timestamps of these packets; 
		these timestamps can be compared with the timestamps of the same packets on a second node to compute packet
		delay values for each packet. The most efficient and robust mode is to select a single double-marked packet 
		for each batch; in this way, there is no time gap to consider between the double-marked packets to avoid their reorder.
		Regarding the rule for the selection of the packet to be double-marked, the same considerations in <xref target="loss" format="default" sectionFormat="of" derivedContent="Section 5.1"/>
		also apply here, and the double-marked packet can be chosen within the available counting interval that
        is not affected by factors such as clock errors. 		
		If a double-marked packet is lost, the delay measurement for the considered batch is simply discarded,
		but this is not a big problem because it is easy to recognize the problematic batch and skip the measurement 
		just for that one. So in order to have more information about the delay and to overcome out-of-order issues, 
		this method is preferred.</dd>
        </dl>
        <t indent="0" pn="section-5.2-3">In summary, the approach with Double Marking is better than the approach with Single Marking. Moreover, 
		the two approaches provide slightly different pieces of information, and the data consumer can combine them 
		to have a more robust data set.</t>
        <t indent="0" pn="section-5.2-4">Similar to what is said in <xref target="loss" format="default" sectionFormat="of" derivedContent="Section 5.1"/> for the packet counters, in the implementation, the timestamps can be
		sent out to the controller that is responsible for the calculation or exchanged using other on-path techniques.
		But, this is out of scope for this document.</t>
        <figure anchor="Dbit" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-double-marking-methodology-">Double-Marking Methodology Using L Bit and D Bit</name>
          <artwork name="" type="" align="left" alt="" pn="section-5.2-5.1">
L bit=1   ----------+           +-----------+           +----------
                    |           |           |           |
L bit=0             +-----------+           +-----------+

D bit=1         +          +          +          +            +
                |          |          |          |            |
D bit=0   ------+----------+----------+----------+------------+-----

                             Traffic Flow
         ===========================================================&gt;
L bit   ...1111111111 0000000000 11111111111 00000000000 111111111...

D bit   ...0000010000 0000010000 00000100000 00001000000 000001000...
         ===========================================================&gt;
</artwork>
        </figure>
        <t indent="0" pn="section-5.2-6">Likewise, to packet delay measurement (both for Single Marking and Double Marking), the method can also be used 
		to measure the inter-arrival jitter.</t>
      </section>
      <section anchor="flowmonid" numbered="true" toc="include" removeInRFC="false" pn="section-5.3">
        <name slugifiedName="name-flow-monitoring-identificat">Flow Monitoring Identification</name>
        <t indent="0" pn="section-5.3-1">The Flow Monitoring Identification (FlowMonID) identifies the flow to be measured and 
		is required for some general reasons:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5.3-2">
          <li pn="section-5.3-2.1">First, it helps to reduce the per-node configuration. Otherwise, each node needs to 
	    configure an access control list (ACL) for each of the monitored flows. 
		Moreover, using a flow identifier allows a flexible granularity for the flow definition; 
		indeed, it can be used together with other identifiers (e.g., 5-tuple).</li>
          <li pn="section-5.3-2.2">Second, it simplifies the counters handling. Hardware processing of flow tuples (and ACL matching) 
		is challenging and often incurs into performance issues, especially in tunnel interfaces.</li>
          <li pn="section-5.3-2.3">Third, it eases the data export encapsulation and correlation for the collectors.</li>
        </ul>
        <t indent="0" pn="section-5.3-3">The FlowMonID <bcp14>MUST</bcp14> only be used as a monitored flow identifier in order to determine a monitored flow 
		within the measurement domain. This entails not only an easy identification but improved correlation as well.</t>
        <t indent="0" pn="section-5.3-4">The FlowMonID allocation procedure can be stateful or stateless. In case of a stateful approach, it is required that 
		the FlowMonID historic information can be stored and tracked in order to assign unique values within the domain.
		This may imply a complex procedure, and it is considered out of scope for this document. 
		The stateless approach is described hereinafter where FlowMonID values are pseudo-randomly generated.</t>
        <t indent="0" pn="section-5.3-5">The value of 20 bits has been selected for the FlowMonID since it is a good compromise and implies a low rate 
		of ambiguous FlowMonIDs that can be considered acceptable in most of the applications. The disambiguation issue 
		can be solved by tagging the pseudo-randomly generated FlowMonID with additional flow information. 
		In particular, it is <bcp14>RECOMMENDED</bcp14> to consider the 3-tuple FlowMonID, source, and destination addresses:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5.3-6">
          <li pn="section-5.3-6.1">If the 20-bit FlowMonID is set independently and pseudo-randomly in a distributed way, there is a chance of collision. 
		  Indeed, by using the well-known birthday problem in probability theory, if the 20-bit FlowMonID 
		  is set independently and pseudo-randomly without any additional input entropy, there is a 50% chance of collision 
		  for 1206 flows. So, for more entropy, FlowMonID is combined with source and destination addresses.
		  Since there is a 1% chance of collision for 145 flows, it is possible to monitor 145 concurrent flows per host pairs
		  with a 1% chance of collision.</li>
          <li pn="section-5.3-6.2">If the 20-bit FlowMonID is set pseudo-randomly but in a centralized way, the controller can instruct the nodes properly 
		  in order to guarantee the uniqueness of the FlowMonID. With 20 bits, the number of combinations is 1048576, and the controller 
		  should ensure that all the FlowMonID values are used without any collision. Therefore, by considering source and destination addresses
		  together with the FlowMonID, it is possible to monitor 1048576 concurrent flows per host pairs.</li>
        </ul>
        <t indent="0" pn="section-5.3-7">A consistent approach <bcp14>MUST</bcp14> be used in the Alternate-Marking deployment to avoid the mixture of different ways of identifying.
		All the nodes along the path and involved in the measurement <bcp14>SHOULD</bcp14> use the same mode for identification.
		As mentioned, it is <bcp14>RECOMMENDED</bcp14> to use the FlowMonID for identification purposes in combination with source and destination addresses
		to identify a flow. By considering source and destination addresses together with the FlowMonID, it is possible to monitor
		145 concurrent flows per host pairs with a 1% chance of collision in case of pseudo-randomly generated FlowMonID, or
		1048576 concurrent flows per host pairs in case of a centralized controller. It is worth mentioning that 
		the solution with the centralized control allows finer granularity and therefore adds even more flexibility to the flow identification.</t>
        <t indent="0" pn="section-5.3-8">The FlowMonID field is set at the source node, which is the ingress point of the measurement domain, and
		can be set in two ways:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-5.3-9">
          <li pn="section-5.3-9.1">It can be algorithmically generated by the source node, which can set it pseudo-randomly with some 
		chance of collision. This approach cannot guarantee the uniqueness of FlowMonID since conflicts and collisions are possible.
		But, considering the recommendation to use FlowMonID with source and destination addresses, the conflict probability is reduced due to 
		the FlowMonID space available for each endpoint pair (i.e., 145 flows with 1% chance of collision).</li>
          <li pn="section-5.3-9.2">It can be assigned by the central controller. Since the controller knows the network topology, 
		it can allocate the value properly to avoid or minimize ambiguity and guarantee the uniqueness. In this regard, 
		the controller can verify that there is no ambiguity between different pseudo-randomly generated FlowMonIDs on the same path.
		The conflict probability is really small given that the FlowMonID is coupled with source and destination addresses,
        and up to 1048576 flows can be monitored for each endpoint pair. When all values in the FlowMonID space are consumed, 
		the centralized controller can keep track and reassign the values that are not used any more by old flows.</li>
        </ul>
        <t indent="0" pn="section-5.3-10">If the FlowMonID is set by the source node, the intermediate nodes can read the FlowMonIDs from the packets in flight 
		and act accordingly. If the FlowMonID is set by the controller, both possibilities are feasible for the intermediate nodes,
        which can learn by reading the packets or can be instructed by the controller.</t>
        <t indent="0" pn="section-5.3-11">The FlowMonID setting by the source node may seem faster and more scalable than the FlowMonID setting by the controller. But, 
		it is supposed that the controller does not slow the process since it can enable the Alternate-Marking Method and its parameters (like FlowMonID)
		together with the flow instantiation, as further described in <xref target="I-D.ietf-idr-sr-policy-ifit" format="default" sectionFormat="of" derivedContent="BGP-SR-POLICY-IFIT"/> and <xref target="PCEP-IFIT" format="default" sectionFormat="of" derivedContent="PCEP-IFIT"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.4">
        <name slugifiedName="name-multipoint-and-clustered-al">Multipoint and Clustered Alternate Marking</name>
        <t indent="0" pn="section-5.4-1">The Alternate-Marking Method can be extended to any kind of multipoint-to-multipoint paths. 
		<xref target="RFC9341" format="default" sectionFormat="of" derivedContent="RFC9341"/> only applies to point-to-point unicast flows, 
		while the Clustered Alternate-Marking Method, introduced in <xref target="RFC9342" format="default" sectionFormat="of" derivedContent="RFC9342"/>, 
		is valid for multipoint-to-multipoint unicast flows, anycast, and ECMP flows.</t>
        <t indent="0" pn="section-5.4-2"><xref target="RFC9342" format="default" sectionFormat="of" derivedContent="RFC9342"/> describes the network clustering approach, which
		allows a flexible and optimized performance measurement.
		A cluster is the smallest identifiable non-trivial subnetwork of the entire network graph
		that still satisfies the condition that the number of packets that goes in is the same number that goes out. 
		With network clustering, it is possible to partition the network into clusters 
		at different levels in order to perform the needed degree of detail.</t>
        <t indent="0" pn="section-5.4-3">For Multipoint Alternate Marking, FlowMonID can identify in general
		a multipoint-to-multipoint flow and not only a point-to-point flow.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.5">
        <name slugifiedName="name-data-collection-and-calcula">Data Collection and Calculation</name>
        <t indent="0" pn="section-5.5-1">The nodes enabled to perform performance monitoring collect the value
		of the packet counters and timestamps. There are several alternatives to implement
		data collection and calculation, but this is not specified in this document.</t>
        <t indent="0" pn="section-5.5-2">There are documents on the control plane mechanisms of Alternate Marking, e.g., 
		<xref target="I-D.ietf-idr-sr-policy-ifit" format="default" sectionFormat="of" derivedContent="BGP-SR-POLICY-IFIT"/> and <xref target="PCEP-IFIT" format="default" sectionFormat="of" derivedContent="PCEP-IFIT"/>.</t>
      </section>
    </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 aims to apply a method to the performance measurements that does
		not directly affect Internet security nor applications that run on
		the Internet. However, implementation of this method must be mindful
		of security and privacy concerns.</t>
      <t indent="0" pn="section-6-2">There are two types of security concerns: 
		potential harm caused by the measurements and potential harm to the measurements.</t>
      <dl indent="3" newline="false" spacing="normal" pn="section-6-3">
        <dt pn="section-6-3.1">Harm caused by the measurement: 
        </dt>
        <dd pn="section-6-3.2">Alternate Marking implies the insertion of an Options Header to the IPv6
packets by the source node, but this must be performed in a way that does not
alter the quality of service experienced by the packets and that preserves
stability and performance of routers doing the measurements. As already
discussed in <xref target="use" format="default" sectionFormat="of" derivedContent="Section 4"/>, the design of the AltMark
Option has been chosen with throughput in mind, such that it can be
implemented without affecting the user experience.
</dd>
        <dt pn="section-6-3.3">Harm to the measurement:
</dt>
        <dd pn="section-6-3.4">Alternate-Marking measurements could be harmed by routers altering the
fields of the AltMark Option (e.g., marking of the packets or FlowMonID) or by a
malicious attacker adding the AltMark Option to the packets in order to consume
the resources of network devices and entities involved. As described above,
the source node is the only one that writes the Options Header while the
intermediate nodes and destination node only read it without modifying the
Options Header. But, for example, an on-path attacker can modify the flags,
whether intentionally or accidentally, or deliberately insert an Option to the
packet flow or delete the Option from the packet flow. The consequent effect
could be to give the appearance of loss or delay or to invalidate the measurement
by modifying Option identifiers, such as FlowMonID. The malicious implication
can be to cause actions from the network administrator where an intervention
is not necessary or to hide real issues in the network.  Since the measurement
itself may be affected by network nodes intentionally altering the bits of the
AltMark Option or injecting Options Headers as a means for Denial of Service
(DoS), the Alternate Marking <bcp14>MUST</bcp14> be applied in the context of
a controlled domain, where the network nodes are locally administered and this
type of attack can be avoided. For this reason, the implementation of the
method is not done on the end node if it is not fully managed and does not
belong to the controlled domain. Packets generated outside the controlled
domain may consume router resources by maliciously using the Hop-by-Hop Option, but
this can be mitigated by filtering these packets at the controlled domain
boundary. This can be done because if the end node does not belong to the
controlled domain, it is not supposed to add the AltMark Hop-by-Hop Option, and it
can be easily recognized.
</dd>
      </dl>
      <t indent="0" pn="section-6-4">An attacker that does not belong to the controlled domain can maliciously send packets with the AltMark Option. 
		But, if Alternate Marking is not supported in the controlled domain, no problem happens because the AltMark Option is treated
		as any other unrecognized Option and will not be considered by the nodes since they are not configured to deal with it; so,
		the only effect is the increased packet size (by 48 bits).
		If Alternate Marking is supported in the controlled domain, it is necessary to keep the measurements from being affected,
		and external packets with the AltMark Option <bcp14>MUST</bcp14> be filtered.
		As any other Hop-by-Hop Options or Destination Options, it is possible to filter AltMark Options entering or leaving the domain,
		e.g., by using ACL extensions for filtering.</t>
      <t indent="0" pn="section-6-5">The flow identifier (FlowMonID), together with the two marking bits (L and D), comprises the AltMark Option.

		As explained in <xref target="flowmonid" format="default" sectionFormat="of" derivedContent="Section 5.3"/>, there is a chance of collision if the FlowMonID 
		is set pseudo-randomly, but there is a solution for this issue. In general, this may not be a problem, and a low rate of
		ambiguous FlowMonIDs can be acceptable since this does not cause significant harm to the operators or 
		their clients, and this harm may not justify the complications of avoiding it. But, for large scale measurements, 
		a big number of flows could be monitored and the probability of a collision is higher; thus, the disambiguation 
		of the FlowMonID field can be considered.</t>
      <t indent="0" pn="section-6-6">The privacy concerns also need to be analyzed even if the method only relies on information contained 
		in the Options Header without any release of user data. Indeed, from a confidentiality perspective, 
		although the AltMark Option does not contain user data, the metadata can be used for network reconnaissance
		to compromise the privacy of users by allowing attackers to collect information about network performance and network paths.
		The AltMark Option contains two kinds of metadata: the marking bits (L and D) and the flow identifier (FlowMonID).</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-6-7">
        <li pn="section-6-7.1">The marking bits are the small information that is exchanged between the network nodes. Therefore, due to this intrinsic 
		   characteristic, network reconnaissance through passive eavesdropping on data plane traffic is difficult. 
		   Indeed, an attacker cannot gain information about network performance from a single monitoring point. The only way for an attacker 
		   can be to eavesdrop on multiple monitoring points at the same time, because they have to do the same kind of calculation 
		   and aggregation as Alternate Marking requires.</li>
        <li pn="section-6-7.2">The FlowMonID field is used in the AltMark Option as the identifier of the monitored flow. It represents more sensitive information 
		   for network reconnaissance and may allow a flow tracking type of attack because an attacker could collect information 
		   about network paths.</li>
      </ul>
      <t indent="0" pn="section-6-8">Furthermore, in a pervasive surveillance attack, the information that can be derived over time is more. 
		But, as further described hereinafter, the application of the Alternate Marking to a controlled domain 
		helps to mitigate all the above aspects of privacy concerns.</t>
      <t indent="0" pn="section-6-9">At the management plane, attacks can be set up by misconfiguring or by maliciously configuring the AltMark Option. 
		Thus, AltMark Option configuration <bcp14>MUST</bcp14> be secured in a way that authenticates authorized users and verifies the 
		integrity of configuration procedures. Solutions to ensure the integrity of the AltMark Option are outside the
		scope of this document. Also, attacks on the reporting of the statistics between the monitoring points and the
        network management system (e.g., centralized controller) can interfere with the proper functioning of the system. 
		Hence, the channels used to report back flow statistics <bcp14>MUST</bcp14> be secured.</t>
      <t indent="0" pn="section-6-10">As stated above, the precondition for the application of the Alternate Marking is that it <bcp14>MUST</bcp14> be applied 
		in specific controlled domains, thus confining the potential attack vectors within the network domain.
		A limited administrative domain provides the network administrator with the means to select, monitor, and 
		control the access to the network, making it a trusted domain. In this regard, it is expected to enforce policies
        at the domain boundaries to filter both external packets with the AltMark Option entering the domain and 
		internal packets with the AltMark Option leaving the domain. Therefore, the trusted domain is unlikely subject 
		to the hijacking of packets since packets with AltMark Option are processed and used only within the controlled domain.</t>
      <t indent="0" pn="section-6-11">As stated, the application to a controlled domain ensures control over the packets entering and leaving the domain, 
		but despite that, leakages may happen for different reasons such as a failure or a fault. In this case, nodes 
		outside the domain are expected to ignore packets with the AltMark Option since they are not configured to handle it and 
		should not process it.</t>
      <t indent="0" pn="section-6-12">Additionally, note that the AltMark Option is carried by the Options Header
		and it will have some impact on the packet sizes for the monitored flow and on the path MTU 
		since some packets might exceed the MTU. However, the relative small size (48 bits in total) 
		of these Options Headers and its application to a controlled domain help to mitigate the problem.</t>
      <t indent="0" pn="section-6-13">It is worth mentioning that the security concerns may change based on the specific deployment scenario
        and related threat analysis, which can lead to specific security solutions that are beyond the scope of this document. 
		As an example, the AltMark Option can be used as a Hop-by-Hop or Destination Option and, in case of a Destination Option, 
		multiple administrative domains may be traversed by the AltMark Option that is not confined to a single administrative domain. 
		In this case, the user, who is aware of the kind of risks, may still want to use Alternate Marking for telemetry and test purposes, but
        the controlled domain must be composed by more than one administrative domain. To this end, the inter-domain links need 
		to be secured (e.g., by IPsec or VPNs) in order to avoid external threats and realize the whole controlled domain.</t>
      <t indent="0" pn="section-6-14">It might be theoretically possible to modulate the marking or the other fields of the AltMark Option to serve as a covert channel
		to be used by an on-path observer. This may affect both the data and management plane, but, here too, the application to a 
		controlled domain helps to reduce the effects.</t>
      <t indent="0" pn="section-6-15">The Alternate-Marking application described in this document relies on a time synchronization 
		protocol. Thus, by attacking the time protocol, an attacker can potentially compromise the integrity 
		of the measurement. A detailed discussion about the threats against time protocols and 
		how to mitigate them is presented in <xref target="RFC7384" format="default" sectionFormat="of" derivedContent="RFC7384"/>. Network Time Security (NTS), 
		described in <xref target="RFC8915" format="default" sectionFormat="of" derivedContent="RFC8915"/>, is a mechanism that can be employed. Also, the time, 
		which is distributed to the network nodes through the time protocol, is centrally taken from an external accurate time source 
		such as an atomic clock or a GPS clock. By attacking the time source, it is possible to compromise the integrity 
		of the measurement as well. There are security measures that can be taken to mitigate the GPS spoofing attacks, and a 
		network administrator should certainly employ solutions to secure the network domain.</t>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-7-1">IANA has allocated the Option Type in
		the "Destination Options and Hop-by-Hop Options" subregistry of the
		"Internet Protocol Version 6 (IPv6) Parameters" registry (<eref brackets="angle" target="https://www.iana.org/assignments/ipv6-parameters/"/>) as follows:</t>
      <table anchor="table_1" align="center" pn="table-1">
        <name slugifiedName="name-destination-options-and-hop">Destination Options and Hop-by-Hop Options Registry</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Hex Value</th>
            <th rowspan="1" colspan="3" align="left">Binary Value</th>
            <th align="left" colspan="1" rowspan="1">Description</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
          <tr>
            <th align="left" colspan="1" rowspan="1"/>
            <th align="left" colspan="1" rowspan="1">act</th>
            <th align="left" colspan="1" rowspan="1">chg</th>
            <th align="left" colspan="1" rowspan="1">rest</th>
            <th align="left" colspan="1" rowspan="1"/>
            <th align="left" colspan="1" rowspan="1"/>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">0x12</td>
            <td align="left" colspan="1" rowspan="1">00</td>
            <td align="left" colspan="1" rowspan="1">0</td>
            <td align="left" colspan="1" rowspan="1">10010</td>
            <td align="left" colspan="1" rowspan="1">AltMark</td>
            <td align="left" colspan="1" rowspan="1">RFC 9343</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.fz-spring-srv6-alt-mark" to="SRv6-AMM"/>
    <displayreference target="I-D.ietf-idr-sr-policy-ifit" to="BGP-SR-POLICY-IFIT"/>
    <references pn="section-8">
      <name slugifiedName="name-references">References</name>
      <references pn="section-8.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 fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <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"/>
          <format target="https://www.rfc-editor.org/info/rfc2119" type="TXT"/>
        </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 fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <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"/>
          <format target="https://www.rfc-editor.org/info/rfc8174" type="TXT"/>
        </reference>
        <reference anchor="RFC8200" target="https://www.rfc-editor.org/info/rfc8200" quoteTitle="true" derivedAnchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t indent="0">This document specifies version 6 of the Internet Protocol (IPv6).  It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
          <format target="https://www.rfc-editor.org/info/rfc8200" type="TXT"/>
        </reference>
        <reference anchor="RFC9341" target="https://www.rfc-editor.org/info/rfc9341" quoteTitle="true" derivedAnchor="RFC9341">
          <front>
            <title>Alternate-Marking Method</title>
            <author initials="G" surname="Fioccola" fullname="Giuseppe Fioccola" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M" surname="Cociglio" fullname="Mauro Cociglio">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G" surname="Mirsky" fullname="Greg Mirsky">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T" surname="Mizrahi" fullname="Tal Mizrahi">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T" surname="Zhou" fullname="Tianran Zhou">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="December" year="2022"/>
          </front>
          <seriesInfo name="RFC" value="9341"/>
          <seriesInfo name="DOI" value="10.17487/RFC9341"/>
        </reference>
        <reference anchor="RFC9342" target="https://www.rfc-editor.org/info/rfc9342" quoteTitle="true" derivedAnchor="RFC9342">
          <front>
            <title>Clustered Alternate-Marking Method</title>
            <author initials="G" surname="Fioccola" fullname="Giuseppe Fioccola" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M" surname="Cociglio" fullname="Mauro Cociglio">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A" surname="Sapio" fullname="Amedeo Sapio">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R" surname="Sisto" fullname="Riccardo Sisto">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T" surname="Zhou" fullname="Tianran Zhou">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="December" year="2022"/>
          </front>
          <seriesInfo name="RFC" value="9342"/>
          <seriesInfo name="DOI" value="10.17487/RFC9342"/>
        </reference>
      </references>
      <references pn="section-8.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.ietf-idr-sr-policy-ifit" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr-policy-ifit-05" derivedAnchor="BGP-SR-POLICY-IFIT">
          <front>
            <title>BGP SR Policy Extensions to Enable IFIT</title>
            <author initials="F." surname="Qin" fullname="Fengwei Qin">
              <organization showOnFrontPage="true">China Mobile</organization>
            </author>
            <author initials="H." surname="Yuan" fullname="Hang Yuan">
              <organization showOnFrontPage="true">UnionPay</organization>
            </author>
            <author initials="S." surname="Yang" fullname="Shunxing Yang">
              <organization showOnFrontPage="true">China Telecom</organization>
            </author>
            <author initials="T." surname="Zhou" fullname="Tianran Zhou">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <author initials="G." surname="Fioccola" fullname="Giuseppe Fioccola">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <date month="October" day="24" year="2022"/>
            <abstract>
              <t indent="0">   Segment Routing (SR) policy is a set of candidate SR paths consisting
   of one or more segment lists and necessary path attributes.  It
   enables instantiation of an ordered list of segments with a specific
   intent for traffic steering.  In-situ Flow Information Telemetry
   (IFIT) refers to network OAM data plane on-path telemetry techniques,
   in particular the most popular are In-situ OAM (IOAM) and Alternate
   Marking.  This document defines extensions to BGP to distribute SR
   policies carrying IFIT information.  So that IFIT methods can be
   enabled automatically when the SR policy is applied.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-sr-policy-ifit-05"/>
          <format type="TXT" target="https://www.ietf.org/archive/id/draft-ietf-idr-sr-policy-ifit-05.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="HBH-OPTIONS-PROCESSING" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-6man-hbh-processing-04" derivedAnchor="HBH-OPTIONS-PROCESSING">
          <front>
            <title>IPv6 Hop-by-Hop Options Processing Procedures</title>
            <author initials="R." surname="Hinden" fullname="Bob Hinden">
              <organization showOnFrontPage="true">Check Point Software</organization>
            </author>
            <author initials="G." surname="Fairhurst" fullname="Gorry Fairhurst">
              <organization showOnFrontPage="true">University of Aberdeen</organization>
            </author>
            <date month="October" day="21" year="2022"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-6man-hbh-processing-04"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="PCEP-IFIT" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-pce-pcep-ifit-01" derivedAnchor="PCEP-IFIT">
          <front>
            <title>Path Computation Element Communication Protocol (PCEP) Extensions to Enable IFIT</title>
            <author initials="H." surname="Yuan" fullname="Hang Yuan">
              <organization showOnFrontPage="true">UnionPay</organization>
            </author>
            <author initials="X." surname="Wang" fullname="Xuerong Wang">
              <organization showOnFrontPage="true">China Telecom</organization>
            </author>
            <author initials="P." surname="Yang" fullname="Pingan Yang">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <author initials="W." surname="Li" fullname="Weidong Li">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <author initials="G." surname="Fioccola" fullname="Giuseppe Fioccola">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <date month="August" day="3" year="2022"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pce-pcep-ifit-01"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="PROC-HBH-OPT-HEADER" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-v6ops-hbh-02" derivedAnchor="PROC-HBH-OPT-HEADER">
          <front>
            <title>Operational Issues with Processing of the Hop-by-Hop Options Header</title>
            <author initials="S." surname="Peng" fullname="Shuping Peng">
              <organization showOnFrontPage="true">Huawei Technologies</organization>
            </author>
            <author initials="Z." surname="Li" fullname="Zhenbin Li">
              <organization showOnFrontPage="true">Huawei Technologies</organization>
            </author>
            <author initials="C." surname="Xie" fullname="Chongfeng Xie">
              <organization showOnFrontPage="true">China Telecom</organization>
            </author>
            <author initials="Z." surname="Qin" fullname="Zhuangzhuang Qin">
              <organization showOnFrontPage="true">China Unicom</organization>
            </author>
            <author initials="G." surname="Mishra" fullname="Gyan Mishra">
              <organization showOnFrontPage="true">Verizon Inc.</organization>
            </author>
            <date month="October" day="21" year="2022"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-v6ops-hbh-02"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC4301" target="https://www.rfc-editor.org/info/rfc4301" quoteTitle="true" derivedAnchor="RFC4301">
          <front>
            <title>Security Architecture for the Internet Protocol</title>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <author fullname="K. Seo" initials="K." surname="Seo"/>
            <date month="December" year="2005"/>
            <abstract>
              <t indent="0">This document describes an updated version of the "Security Architecture for IP", which is designed to provide security services for traffic at the IP layer.  This document obsoletes RFC 2401 (November 1998). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4301"/>
          <seriesInfo name="DOI" value="10.17487/RFC4301"/>
          <format target="https://www.rfc-editor.org/info/rfc4301" type="TXT"/>
        </reference>
        <reference anchor="RFC6437" target="https://www.rfc-editor.org/info/rfc6437" quoteTitle="true" derivedAnchor="RFC6437">
          <front>
            <title>IPv6 Flow Label Specification</title>
            <author fullname="S. Amante" initials="S." surname="Amante"/>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <author fullname="J. Rajahalme" initials="J." surname="Rajahalme"/>
            <date month="November" year="2011"/>
            <abstract>
              <t indent="0">This document specifies the IPv6 Flow Label field and the minimum requirements for IPv6 nodes labeling flows, IPv6 nodes forwarding labeled packets, and flow state establishment methods. Even when mentioned as examples of possible uses of the flow labeling, more detailed requirements for specific use cases are out of the scope for this document.</t>
              <t indent="0">The usage of the Flow Label field enables efficient IPv6 flow classification based only on IPv6 main header fields in fixed positions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6437"/>
          <seriesInfo name="DOI" value="10.17487/RFC6437"/>
          <format target="https://www.rfc-editor.org/info/rfc6437" type="TXT"/>
        </reference>
        <reference anchor="RFC6438" target="https://www.rfc-editor.org/info/rfc6438" quoteTitle="true" derivedAnchor="RFC6438">
          <front>
            <title>Using the IPv6 Flow Label for Equal Cost Multipath Routing and Link Aggregation in Tunnels</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="S. Amante" initials="S." surname="Amante"/>
            <date month="November" year="2011"/>
            <abstract>
              <t indent="0">The IPv6 flow label has certain restrictions on its use.  This document describes how those restrictions apply when using the flow label for load balancing by equal cost multipath routing and for link aggregation, particularly for IP-in-IPv6 tunneled traffic. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6438"/>
          <seriesInfo name="DOI" value="10.17487/RFC6438"/>
          <format target="https://www.rfc-editor.org/info/rfc6438" type="TXT"/>
        </reference>
        <reference anchor="RFC7045" target="https://www.rfc-editor.org/info/rfc7045" quoteTitle="true" derivedAnchor="RFC7045">
          <front>
            <title>Transmission and Processing of IPv6 Extension Headers</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <date month="December" year="2013"/>
            <abstract>
              <t indent="0">Various IPv6 extension headers have been standardised since the IPv6 standard was first published.  This document updates RFC 2460 to clarify how intermediate nodes should deal with such extension headers and with any that are defined in the future.  It also specifies how extension headers should be registered by IANA, with a corresponding minor update to RFC 2780.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7045"/>
          <seriesInfo name="DOI" value="10.17487/RFC7045"/>
          <format target="https://www.rfc-editor.org/info/rfc7045" type="TXT"/>
        </reference>
        <reference anchor="RFC7384" target="https://www.rfc-editor.org/info/rfc7384" quoteTitle="true" derivedAnchor="RFC7384">
          <front>
            <title>Security Requirements of Time Protocols in Packet Switched Networks</title>
            <author fullname="T. Mizrahi" initials="T." surname="Mizrahi"/>
            <date month="October" year="2014"/>
            <abstract>
              <t indent="0">As time and frequency distribution protocols are becoming increasingly common and widely deployed, concern about their exposure to various security threats is increasing.  This document defines a set of security requirements for time protocols, focusing on the Precision Time Protocol (PTP) and the Network Time Protocol (NTP).  This document also discusses the security impacts of time protocol practices, the performance implications of external security practices on time protocols, and the dependencies between other security services and time synchronization.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7384"/>
          <seriesInfo name="DOI" value="10.17487/RFC7384"/>
          <format target="https://www.rfc-editor.org/info/rfc7384" type="TXT"/>
        </reference>
        <reference anchor="RFC8754" target="https://www.rfc-editor.org/info/rfc8754" quoteTitle="true" derivedAnchor="RFC8754">
          <front>
            <title>IPv6 Segment Routing Header (SRH)</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="J. Leddy" initials="J." surname="Leddy"/>
            <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <date month="March" year="2020"/>
            <abstract>
              <t indent="0">Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH).  This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8754"/>
          <seriesInfo name="DOI" value="10.17487/RFC8754"/>
          <format target="https://www.rfc-editor.org/info/rfc8754" type="TXT"/>
        </reference>
        <reference anchor="RFC8799" target="https://www.rfc-editor.org/info/rfc8799" quoteTitle="true" derivedAnchor="RFC8799">
          <front>
            <title>Limited Domains and Internet Protocols</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="B. Liu" initials="B." surname="Liu"/>
            <date month="July" year="2020"/>
            <abstract>
              <t indent="0">There is a noticeable trend towards network behaviors and semantics that are specific to a particular set of requirements applied within a limited region of the Internet. Policies, default parameters, the options supported, the style of network management, and security requirements may vary between such limited regions. This document reviews examples of such limited domains (also known as controlled environments), notes emerging solutions, and includes a related taxonomy. It then briefly discusses the standardization of protocols for limited domains. Finally, it shows the need for a precise definition of "limited domain membership" and for mechanisms to allow nodes to join a domain securely and to find other members, including boundary nodes.</t>
              <t indent="0">This document is the product of the research of the authors. It has been produced through discussions and consultation within the IETF but is not the product of IETF consensus.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8799"/>
          <seriesInfo name="DOI" value="10.17487/RFC8799"/>
          <format target="https://www.rfc-editor.org/info/rfc8799" type="TXT"/>
        </reference>
        <reference anchor="RFC8915" target="https://www.rfc-editor.org/info/rfc8915" quoteTitle="true" derivedAnchor="RFC8915">
          <front>
            <title>Network Time Security for the Network Time Protocol</title>
            <author fullname="D. Franke" initials="D." surname="Franke"/>
            <author fullname="D. Sibold" initials="D." surname="Sibold"/>
            <author fullname="K. Teichel" initials="K." surname="Teichel"/>
            <author fullname="M. Dansarie" initials="M." surname="Dansarie"/>
            <author fullname="R. Sundblad" initials="R." surname="Sundblad"/>
            <date month="September" year="2020"/>
            <abstract>
              <t indent="0">This memo specifies Network Time Security (NTS), a mechanism for using Transport Layer Security (TLS) and Authenticated Encryption with Associated Data (AEAD) to provide cryptographic security for the client-server mode of the Network Time Protocol (NTP).</t>
              <t indent="0">NTS is structured as a suite of two loosely coupled sub-protocols. The first (NTS Key Establishment (NTS-KE)) handles initial authentication and key establishment over TLS. The second (NTS Extension Fields for NTPv4) handles encryption and authentication during NTP time synchronization via extension fields in the NTP packets, and holds all required state only on the client via opaque cookies.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8915"/>
          <seriesInfo name="DOI" value="10.17487/RFC8915"/>
          <format target="https://www.rfc-editor.org/info/rfc8915" type="TXT"/>
        </reference>
        <reference anchor="I-D.fz-spring-srv6-alt-mark" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-fz-spring-srv6-alt-mark-03" derivedAnchor="SRv6-AMM">
          <front>
            <title>Segment Routing Header encapsulation for Alternate Marking Method</title>
            <author initials="G." surname="Fioccola" fullname="Giuseppe Fioccola">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <author initials="T." surname="Zhou" fullname="Tianran Zhou">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <author initials="M." surname="Cociglio" fullname="Mauro Cociglio">
              <organization showOnFrontPage="true">Telecom Italia</organization>
            </author>
            <date month="August" day="5" year="2022"/>
            <abstract>
              <t indent="0">   This document describes how the Alternate Marking Method can be used
   as the passive performance measurement tool in an SRv6 network.  It
   defines how Alternate Marking data fields are transported as part of
   the Segment Routing with IPv6 data plane (SRv6) header.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-fz-spring-srv6-alt-mark-03"/>
          <format type="TXT" target="https://www.ietf.org/archive/id/draft-fz-spring-srv6-alt-mark-03.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="Acknowledgements" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">The authors would like to thank <contact fullname="Bob Hinden"/>, <contact fullname="Ole Troan"/>, <contact fullname="Martin Duke"/>, <contact fullname="Lars Eggert"/>, <contact fullname="Roman Danyliw"/>, 
		<contact fullname="Alvaro Retana"/>, <contact fullname="Eric Vyncke"/>, <contact fullname="Warren Kumari"/>, <contact fullname="Benjamin Kaduk"/>, <contact fullname="Stewart Bryant"/>, <contact fullname="C. A. Wood"/>, 
		<contact fullname="Yoshifumi Nishida"/>, <contact fullname="Tom Herbert"/>, <contact fullname="Stefano Previdi"/>, <contact fullname="Brian Carpenter"/>, <contact fullname="Greg Mirsky"/>, and <contact fullname="Ron Bonica"/>
		for their valuable comments and suggestions.</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="Giuseppe Fioccola" initials="G." surname="Fioccola">
        <organization showOnFrontPage="true">Huawei</organization>
        <address>
          <postal>
            <street>Riesstrasse, 25</street>
            <city>Munich</city>
            <code>80992</code>
            <region/>
            <country>Germany</country>
          </postal>
          <email>giuseppe.fioccola@huawei.com</email>
        </address>
      </author>
      <author fullname="Tianran Zhou" initials="T." surname="Zhou">
        <organization showOnFrontPage="true">Huawei</organization>
        <address>
          <postal>
            <street>156 Beiqing Rd.</street>
            <city>Beijing</city>
            <code>100095</code>
            <region/>
            <country>China</country>
          </postal>
          <email>zhoutianran@huawei.com</email>
        </address>
      </author>
      <author fullname="Mauro Cociglio" initials="M." surname="Cociglio">
        <organization showOnFrontPage="true">Telecom Italia</organization>
        <address>
          <postal>
            <street/>
            <city/>
            <region/>
            <code/>
            <country/>
          </postal>
          <email>mauro.cociglio@outlook.com</email>
        </address>
      </author>
      <author fullname="Fengwei Qin" initials="F." surname="Qin">
        <organization showOnFrontPage="true">China Mobile</organization>
        <address>
          <postal>
            <street>32 Xuanwumenxi Ave.</street>
            <city>Beijing</city>
            <region/>
            <code>100032</code>
            <country>China</country>
          </postal>
          <email>qinfengwei@chinamobile.com</email>
        </address>
      </author>
      <author fullname="Ran Pang" initials="R." surname="Pang">
        <organization showOnFrontPage="true">China Unicom</organization>
        <address>
          <postal>
            <street>9 Shouti South Rd.</street>
            <city>Beijing</city>
            <region/>
            <code>100089</code>
            <country>China</country>
          </postal>
          <email>pangran@chinaunicom.cn</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
