<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY bom    "&#65279;">
  <!ENTITY wd     "&#x2011;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902"
     docName="draft-li-ippm-multipoint-telemetry-00"
     category="std" submissionType="IETF" consensus="true" version="3"
     xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Multi-Point Telemetry">Multi-Point Telemetry Correlation for Network Measurement</title>
    <seriesInfo name="Internet-Draft" value="draft-li-ippm-multipoint-telemetry-00"/>

    <author fullname="Zhiqiang Li" initials="Z." surname="Li">
      <organization>China Mobile</organization>
      <address>
        <postal><city>Beijing</city><code>100053</code>
        <country>China</country></postal>
        <email>lizhiqiangyjy@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Zongpeng Du" initials="Z." surname="Du">
      <organization>China Mobile</organization>
      <address>
        <postal><city>Beijing</city><code>100053</code>
        <country>China</country></postal>
        <email>duzongpeng@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Junjie Wang" initials="J." surname="Wang">
      <organization>Centec</organization>
      <address>
        <postal><city>Shanghai</city><code>201203</code>
        <country>China</country></postal>
        <email>wangjj@centec.com</email>
      </address>
    </author>
    <author fullname="Wei Cheng" initials="W." surname="Cheng">
      <organization>Centec</organization>
      <address>
        <postal><city>Shanghai</city><code>201203</code>
        <country>China</country></postal>
        <email>chengw@centec.com</email>
      </address>
    </author>
    <author fullname="Guoying Zhang" initials="G." surname="Zhang">
      <organization>Centec</organization>
      <address>
        <postal><city>Shanghai</city><code>201203</code>
        <country>China</country></postal>
        <email>zhanggy@centec.com</email>
      </address>
    </author>
    <author fullname="Xun Sun" initials="X." surname="Sun">
      <organization>Inesa</organization>
      <address>
        <postal><city>Shanghai</city><code>200030</code>
        <country>China</country></postal>
        <email>sunxun@inesa.com</email>
      </address>
    </author>
    <author fullname="Chunhao Zhao" initials="C." surname="Zhao">
      <organization>SAIA</organization>
      <address>
        <postal><city>Shanghai</city><code>200125</code>
        <country>China</country></postal>
        <email>chunhao.zhao@sh-aia.com</email>
      </address>
    </author>

    <date year="2026" month="July" day="4"/>
    <area>TSV</area>
    <workgroup>IPPM</workgroup>
    <keyword>IOAM</keyword>
    <keyword>Direct Export</keyword>
    <keyword>PTP</keyword>
    <keyword>telemetry</keyword>
    <keyword>correlation</keyword>
    <keyword>sampling</keyword>
    <abstract>
      <t>Network measurement and telemetry systems that collect data at multiple points along a path or across multiple targets require a means to correlate the collected data. When each collection point independently selects which packets to observe, the resulting data sets may not overlap, preventing per-packet correlation of measurements across points.</t>
      <t>This document specifies how source-directed selection -- where a single node determines which packets are subject to measurement and signals this to other nodes -- achieves correlated data collection across multiple points. Two applications are described: IOAM Direct Export for in-band network telemetry, and PTP Sequence ID range assignment for multi-slave time synchronization.</t>
    </abstract>
  </front>

  <middle>
<section anchor="introduction" numbered="true" toc="include"><name>Introduction</name>
<t>Distributed network measurement systems collect data at multiple points in the network. In forwarding-plane telemetry systems such as IOAM <xref target="RFC9197"/>, each node along a packet's path may independently export measurement data. In time synchronization systems such as PTP <xref target="IEEE-1588"/>, a Grandmaster may serve multiple slaves, generating timestamped messages that must be correlated with specific targets.</t>
<t>A common challenge in both scenarios is ensuring that data collected at different points corresponds to the same set of packets or the same target. When each collection point independently selects packets for observation (per <xref target="RFC5475"/>), different points may observe different subsets of the same flow, making per-packet path analysis impossible. Similarly, when a time source generates timestamps for multiple targets, each timestamp must be associated with the correct target.</t>
<t>This document specifies source-directed selection, in which a single node makes the selection or assignment decision and communicates it to other nodes via in-band signaling. Two specific applications are described in the following sections.</t>
<section anchor="requirements-language" numbered="true" toc="include"><name>Requirements Language</name>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
</section></section>
<section anchor="ioam-direct-export" numbered="true" toc="include"><name>Application to IOAM Direct Export</name>
<t>IOAM Direct Export (DEX) <xref target="RFC9326"/> defines an IOAM Option-Type that triggers each transit node to export telemetry data for a packet without embedding the data in the packet itself. The IOAM encapsulating node selects which packets carry the DEX option, and all downstream nodes export data for those packets.</t>
<section anchor="encapsulating-node" numbered="true" toc="include"><name>Encapsulating Node</name>
<t>The IOAM encapsulating node applies a sampling policy (e.g., 1-in-N, probabilistic, or hash-based per <xref target="RFC5475"/>) to monitored flows. Packets selected by the sampling policy are encapsulated with the DEX Option-Type per <xref target="RFC9326"/>. Packets not selected are forwarded without the DEX option. The encapsulating node SHOULD also export its own local telemetry data for each DEX-carrying packet.</t>
</section>
<section anchor="transit-nodes" numbered="true" toc="include"><name>Transit and Decapsulating Nodes</name>
<t>IOAM transit nodes export local telemetry data for every packet carrying the DEX option, per <xref target="RFC9326"/>. Transit nodes MUST NOT apply independent sampling decisions to DEX packets; the presence of the DEX option is itself the selection indicator. The IOAM decapsulating node exports its local telemetry data and removes the DEX option before forwarding the packet beyond the IOAM domain.</t>
</section>
<section anchor="data-correlation" numbered="true" toc="include"><name>Data Correlation</name>
<t>Because all nodes on the path export data for the same set of packets, a collector can reconstruct the per-packet experience at each hop. Telemetry records from different nodes for the same packet can be correlated using the flow identifier and a packet-level identifier (e.g., a hash of invariant header fields, or a sequence number from the transport layer). The choice of packet-level identifier is outside the scope of this document.</t>
</section></section>
<section anchor="ptp-multi-slave" numbered="true" toc="include"><name>Application to PTP Multi-Slave Topologies</name>
<t>The Precision Time Protocol (PTP) <xref target="IEEE-1588"/> supports time synchronization between a Grandmaster and multiple Ordinary Clock slaves. In Two-Step operation, the Grandmaster captures the egress timestamp of each Sync message in hardware and communicates it via a Follow_Up message. When the Grandmaster serves multiple slaves using multicast Sync messages, the hardware timestamp capture records must be correlated with the correct target slave.</t>
<section anchor="sequence-id-range" numbered="true" toc="include"><name>Sequence ID Range Assignment</name>
<t>The 16-bit PTP Sequence ID field provides 65,536 values. When N slaves are served by a single Grandmaster, the Sequence ID space can be divided into N non-overlapping contiguous ranges, each assigned to a specific slave. The Grandmaster transmits Sync messages for each slave using Sequence IDs from that slave's assigned range. The assignment of Sequence ID ranges to slaves MUST be agreed upon by the Grandmaster and all slaves before synchronization begins. The method of assignment (e.g., configuration, management protocol) is outside the scope of this document.</t>
</section>
<section anchor="gm-timestamp" numbered="true" toc="include"><name>Grandmaster Timestamp Correlation</name>
<t>In Two-Step mode, the Grandmaster retrieves captured timestamps from the hardware and identifies the target slave from the Sequence ID recorded with each timestamp. In One-Step mode, the hardware inserts the timestamp directly into each Sync message; the Sequence ID identifies the target slave for downstream processing.</t>
</section>
<section anchor="slave-processing" numbered="true" toc="include"><name>Slave Processing</name>
<t>Each slave receives all multicast Sync and Follow_Up messages but MUST process only those whose Sequence ID falls within its assigned range. Messages with Sequence IDs outside the assigned range MUST be silently discarded.</t>
</section></section>
<section anchor="security-considerations" numbered="true" toc="include"><name>Security Considerations</name>
<t>For the IOAM DEX application, the security considerations of <xref target="RFC9326"/> apply. An attacker that can inject packets with the DEX option could cause telemetry export at all IOAM nodes. IOAM domain ingress filtering SHOULD discard DEX options on packets from untrusted sources.</t>
<t>For the PTP application, misconfigured Sequence ID ranges that overlap could cause a slave to process timestamps intended for another slave. Implementations SHOULD validate range assignments for uniqueness. PTP authentication (Annex P of <xref target="IEEE-1588"/>) SHOULD be used in security-sensitive deployments.</t>
</section>
<section anchor="iana-considerations" numbered="true" toc="include"><name>IANA Considerations</name>
<t>This document has no IANA actions.</t>
</section>
  </middle>

  <back>
      <references title="Normative References">
    <reference anchor="IEEE-1588">
      <front>
        <title>IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems</title>
        <author fullname="IEEE">
          <organization>IEEE</organization>
        </author>
        <date year="2019"/>
      </front>
      <seriesInfo name="IEEE" value="1588-2019"/>
    </reference>
    <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
      <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner"/>
        <date year="1997" month="March"/>
      </front>
      <seriesInfo name="BCP" value="14"/>
      <seriesInfo name="RFC" value="2119"/>
      <seriesInfo name="DOI" value="10.17487/RFC2119"/>
    </reference>
    <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
      <front>
        <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
        <author initials="B." surname="Leiba" fullname="Barry Leiba"/>
        <date year="2017" month="May"/>
      </front>
      <seriesInfo name="BCP" value="14"/>
      <seriesInfo name="RFC" value="8174"/>
      <seriesInfo name="DOI" value="10.17487/RFC8174"/>
    </reference>
    <reference anchor="RFC9197" target="https://www.rfc-editor.org/info/rfc9197">
      <front>
        <title>Data Fields for In Situ Operations, Administration, and Maintenance (IOAM)</title>
        <author initials="F." surname="Brockners" fullname="Frank Brockners, Ed."/>
        <author initials="S." surname="Bhandari" fullname="Shwetha Bhandari, Ed."/>
        <author initials="T." surname="Mizrahi" fullname="Tal Mizrahi, Ed."/>
        <date year="2022" month="May"/>
      </front>
      <seriesInfo name="RFC" value="9197"/>
      <seriesInfo name="DOI" value="10.17487/RFC9197"/>
    </reference>
    <reference anchor="RFC9326" target="https://www.rfc-editor.org/info/rfc9326">
      <front>
        <title>In Situ Operations, Administration, and Maintenance (IOAM) Direct Exporting</title>
        <author initials="H." surname="Song" fullname="Haoyu Song"/>
        <author initials="B." surname="Gafni" fullname="Barak Gafni"/>
        <author initials="F." surname="Brockners" fullname="Frank Brockners"/>
        <author initials="S." surname="Bhandari" fullname="Shwetha Bhandari"/>
        <author initials="T." surname="Mizrahi" fullname="Tal Mizrahi"/>
        <author initials="R." surname="Sivakolundu" fullname="Ramesh Sivakolundu"/>
        <author initials="Z." surname="Li" fullname="Zhiqiang Li"/>
        <author initials="T." surname="Zhou" fullname="Tianran Zhou"/>
        <date year="2022" month="November"/>
      </front>
      <seriesInfo name="RFC" value="9326"/>
      <seriesInfo name="DOI" value="10.17487/RFC9326"/>
    </reference>
    <reference anchor="RFC5475" target="https://www.rfc-editor.org/info/rfc5475">
      <front>
        <title>Sampling and Filtering Techniques for IP Packet Selection</title>
        <author initials="T." surname="Zseby" fullname="Tanja Zseby"/>
        <author initials="M." surname="Molina" fullname="Maurizio Molina"/>
        <author initials="N." surname="Duffield" fullname="Nick Duffield"/>
        <author initials="S." surname="Niccolini" fullname="Saverio Niccolini"/>
        <author initials="F." surname="Raspall" fullname="Fred Raspall"/>
        <date year="2009" month="March"/>
      </front>
      <seriesInfo name="RFC" value="5475"/>
      <seriesInfo name="DOI" value="10.17487/RFC5475"/>
    </reference>
      </references>
  </back>
</rfc>
