﻿<?xml version="1.0" encoding="UTF-8"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="3"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-ietf-mboned-multicast-telemetry-07" ipr="trust200902">
  <front>
    <title abbrev="Multicast Telemetry">
         Multicast On-path Telemetry using IOAM</title>

    <author fullname="Haoyu Song" initials="H." surname="Song">
      <organization>Futurewei Technologies</organization>
      <address>
        <postal>
          <street>2330 Central Expressway</street>
          <city>Santa Clara</city>
          <country>USA</country>
        </postal>
        <email>hsong@futurewei.com</email>
      </address>
    </author>
    
       <author fullname="Mike McBride" initials="M." surname="McBride">
      <organization>Futurewei Technologies</organization>
      <address>
        <postal>
          <street>2330 Central Expressway</street>
          <city>Santa Clara</city>
          <country>USA</country>
        </postal>
        <email>mmcbride@futurewei.com</email>
      </address>
    </author>
    
      <author fullname="Greg Mirsky" initials="G." surname="Mirsky">
      <organization>ZTE Corp.</organization>
      <address>
             <postal>
          <street></street>
          <city></city>
          <country></country>
        </postal>
        <email>gregimirsky@gmail.com</email>
      </address>
    </author>
    
        <author fullname="Gyan Mishra" initials="G. " surname="Mishra">
      <organization>Verizon Inc.</organization>
      <address>
        <email>gyan.s.mishra@verizon.com</email>
      </address>
    </author>
    
        <author initials="H" surname="Asaeda" fullname="Hitoshi Asaeda">
      <organization abbrev="NICT">National Institute of Information and Communications Technology</organization>
      <address>
	<postal>
	  <street>4-2-1 Nukui-Kitamachi</street>
	  <city>Koganei</city> <region>Tokyo</region>
	  <code>184-8795</code>
	  <country>Japan</country>
	</postal>
	<email>asaeda@nict.go.jp</email>
      </address>
    </author>

        <author fullname="Tianran Zhou" initials="T. " surname="Zhou">
      <organization>Huawei Technologies</organization>
      <address>
        
		<postal>
		   <street></street>
          <city>Beijing</city>
	       <country>China</country>
		</postal>
		<email>zhoutianran@huawei.com</email>
      </address>
    </author>

    <date day="6" month="September" year="2023"/>

    <area>OPS</area>

    <workgroup>MBONED</workgroup>
    
    <!---->

    <keyword>Multicast, Telemetry</keyword>

    <abstract>

	    <t>This document specifies the requirements of on-path telemetry for multicast traffic using In-situ OAM. 
           While In-situ OAM is advantageous for multicast traffic telemetry, some unique challenges present. 
		   This document provides the solutions based on the In-situ OAM trace option and direct export option to support the telemetry data correlation and the multicast tree reconstruction without incurring data redundancy. 
        </t>    
    </abstract>

    <note title="Requirements Language">
      <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><xref target="RFC8174"></xref> when, and only when, they appear in all
   capitals, as shown here.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
	    <t>Multicast is used by residential broadband customers across operator networks, 
	    private MPLS customers, and internal customers within corporate intranet.  Multicast provides real time interactive 
	    online meetings or podcasts, IPTV, and financial markets real-time data, which all have a reliance on UDP's unreliable 
	    transport. End-to-end QOS, therefore, should be a critical component of multicast deployment in order to provide a good
	    end user experience. In multicast video streaming, if a packet is dropped, and that packet happens to be a reference frame (i.e., I-Frame)
	    in the video feed, the client receiver of the multicast feed goes into buffering mode resulting in a frozen window.  
	    Multicast packet drops and delay can severely affect the application performance and user experience.</t>
		

        <t>It is important to monitor the performance of the multicast traffic. New on-path telemetry techniques such as 
		   <xref target="RFC9197">In-situ OAM (IOAM)</xref>, 
		   <xref target="RFC9326">IOAM Direct Export (DEX)</xref> 
	       <xref target="I-D.song-ippm-postcard-based-telemetry">IOAM Marking-based Postcard (PBT-M)</xref>, and
	       <xref target="I-D.mirsky-ippm-hybrid-two-step">Hybrid Two-Step (HTS)</xref> 
		   are useful and complementary to the existing active OAM performance monitoring methods, provide promising means to directly monitor the network experience of multicast traffic. However, multicast traffic has some unique characteristics which pose some challenges on applying such techniques in an efficient way. </t>
	       
        <t>The IP multicast packet data for a particular (S, G) state is identical from one branch to another on its way to multiple receivers. When adding IOAM 
           trace data to multicast packets, each replicated packet would keep the telemetry data for its entire forwarding path. 
		   Since the replicated packets all share common path segments, redundant data will be collected for the same original multicast packet.  
		   Such redundancy consumes extra network bandwidth unnecessarily. For a large multicast tree, such redundancy is considerable. Alternatively, it could be more efficient to collect the telemetry data using solutions such as IOAM DEX to eliminate the data redundancy. 
		   However, IOAM DEX is lack of a branch identifier, making telemetry data correlation and multicast-tree reconstruction difficult.</t>

         <t>This draft provides two solutions to the IOAM data redundancy problem based on the IOAM standards. The requirements for multicast traffic telemetry
           are discussed along with the issues of the existing on-path telemetry techniques. We propose modifications 
           to make these techniques adapt to multicast in order for the original multicast tree to be correctly reconstructed while
           eliminating redundant data.</t>	
          
    </section>

    <section title="Requirements for Multicast Traffic Telemetry">
	    <t> Multicast traffic is forwarded through a multicast tree. With PIM and P2MP (e.g., MLDP, RSVP-TE) the forwarding
	    tree is established and maintained by the multicast routing protocol. With BIER, no state is created in the network
	    to establish a forwarding tree; instead, a bier header provides the necessary information for each packet to know
	    the egress points. Multicast packets are only replicated at each tree branch fork node for efficiency.</t>  

	    <t> There are several requirements for multicast traffic telemetry, a few of which are:</t>

	    <t><list style="symbols">
	       <t> Reconstruct and visualize the multicast tree through data plane monitoring.</t> 
           <t> Gather the multicast packet delay and jitter performance on each path. </t>
	       <t> Find the multicast packet drop location and reason. </t>  
	       <t> Gather the VPN state and tunnel information in case of P2MP multicast. </t>
	    </list></t>  

	    <t> In order to meet these requirements, we need the ability to directly monitor the multicast traffic and derive data from the multicast packets. The conventional OAM mechanisms, such as multicast ping and trace, are not sufficient to meet these requirements.</t>

    </section>

    <section title="Issues of Existing Techniques"> 
	    <t> On-path Telemetry techniques that directly retrieve data from multicast traffic's live network experience are ideal for
		addressing the aforementioned requirements. The representative techniques include  
	       <xref target="RFC9197">In-situ OAM (IOAM) Trace option</xref>, 
		   <xref target="RFC9326">IOAM Direct Export (DEX) option</xref>, and 
	       <xref target="I-D.song-ippm-postcard-based-telemetry">PBT-M</xref>. However, 
	       unlike unicast, multicast poses some unique challenges to applying these techniques. </t>

        <t> Multicast packets are replicated at each branch fork node in the corresponding multicast tree. Therefore, there are 
            multiple copies of the original multicast packet in the network.</t>

	    <t> If the IOAM trace option is used for on-path data collection, the partial trace data will also be replicated into the copy for each    branch.
	       	The end result is that, at the multicast tree leaves, each copy of the multicast packet has a complete trace. Most of the data (except data from the last leaf branch), however, has redundant copies. Data redundancy introduces unnecessary header overhead, wastes network bandwidth, and complicates the data processing. 
            The larger the multicast tree is or the longer the multicast path is, the more severe the redundancy problem becomes. </t>

	    <t> The postcard-based solutions (e.g., IOAM DEX), can be used to eliminate such data redundancy, because each 
	        node on the tree only sends a postcard covering local data. However, they cannot track and correlate the tree branches properly due to the lack of branching information, so they can bring confusion about the multicast tree topology. For example, in a multicast tree, Node A has two branches, one to Node B and the other to node C; further, Node B leads to Node D and Node C leads to Node E.
            When applying postcard-based methods, one cannot tell whether or not Node D(E) is the next hop of Node B(C) from the received postcards.</t>

        <t> The fundamental reason for this problem is that there is not an identifier (either implicit or explicit) to correlate the 
		data on each branch. </t>    

    </section>

    <section title="Modifications to Existing Solutions">

	    <t>We provide two solutions to address the above issues. One is based on IOAM DEX and requires an extension to the instruction header of the IOAM DEX Option. The second solution combines the IOAM trace option and postcards for redundancy removal.</t>

       <section title="Per-hop postcard using IOAM DEX">

	    <t>One way to mitigate the postcard-based telemetry's tree tracking weakness is to augment it with a branch identifier field. Note that this works for
	       the IOAM DEX option but not for PBT-M because the IOAM DEX option has an instruction header which can be used to hold 
		   the branch identifier. To make the branch identifier 
	       globally unique, the branch fork node ID plus an index is used. For example, Node A has two branches: one to Node B and the other to 
	       Node C. Node A will use [A, 0] as the branch identifier for the branch to B, and [A, 1] for the branch to C. The identifier is carried with the multicast packet until the next branch fork node. Each node MUST export the branch identifier in the received IOAM DEX header in the postcards it sends. 
	       The branch identifier, along with the other fields such as flow ID and sequence number, is sufficient for the data collector to 
	       reconstruct the topology of the multicast tree.</t>

            <t><xref target="figure_1"/> shows an example of this solution. "P" stands for the postcard packet. The square brackets contains the branch identifier. The curly brace contains the telemetry data about a specific node. </t>

      <t><figure anchor="figure_1" title="Per-hop Postcard">
		 <artwork><![CDATA[
              
  P:[A,0]{A}  P:[A,0]{B} P:[B,1]{D}  P:[B,0]{C}   P:[B,0]{E}
       ^            ^          ^        ^           ^
       :            :          :        :           :
       :            :          :        :           :
       :            :          :      +-:-+       +-:-+  
       :            :          :      |   |       |   |
       :            :      +---:----->| C |------>| E |-...
     +-:-+        +-:-+    |   :      |   |       |   |
     |   |        |   |----+   :      +---+       +---+
     | A |------->| B |        :               
     |   |        |   |--+   +-:-+             
     +---+        +---+  |   |   |
                         +-->| D |--...
                             |   |
                             +---+
	      
	      ]]></artwork>
           </figure></t>
		   
		   
	   <t> Each branch fork node needs to generate a unique branch identifier (i.e., branch ID) for each branch in its multicast tree instance and include 
	       it in the IOAM DEX option header. The branch ID remains unchanged until the next branch fork node. The branch ID contains two parts: 
		   the branch fork node ID and an interface index. </t> 

       <t> Conforming to the node ID specification in <xref target="RFC9197">IOAM</xref>, the node ID is a 3-octet unsigned integer. 
	       The interface index is a two-octet unsigned integer. As shown in <xref target="figure_2"/>, the branch ID consumes 8 octets in total. The three unused octets MUST be set to 0. </t>
		   
<t><figure anchor="figure_2" title="Multicast Branch ID format">
		 <artwork><![CDATA[
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 node_id                       |     unused    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       Interface Index         |           unused              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
]]></artwork>
           </figure></t>


	   <t> <xref target="figure_3"/> shows that the branch ID is carried as an optional field after the flow ID and sequence number optional fields
			in the IOAM DEX option header. Two bits "N" and "I" (i.e., the third and fourth bits in the Extension-Flags field) are reserved to indicate the presence of 
			the optional branch ID field. "N" stands for the Node ID and "I" stands for the interface index. If "N" and "I" are both set to 1, the optional multicast branch ID field is present; otherwise it is absent.</t>
			
				
		   
     <t><figure anchor="figure_3" title="Carry Branch ID in IOAM DEX option header">
		 <artwork><![CDATA[		   
		   
       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |        Namespace-ID           |     Flags     |F|S|N|I|E-Flags|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |               IOAM-Trace-Type                 |   Reserved    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Flow ID (optional)                    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                     Sequence Number  (Optional)               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |	                      Multicast Branch ID                     |
      |                            (optional)                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	  
	  
		   
]]></artwork>
</figure></t>	
		
	   

<!--       <t>To avoid introducing a new type of data field to the IOAM DEX option header, we can encode the branch identifier
	      using the existing node ID data field as defined in <xref target="I-D.ietf-ippm-ioam-data"/>. Currently, the node ID field occupies three octets. 
		  A simple solution is to shorten the node ID field so a number of bits can be saved to encode the branch index,
		  as shown in <xref target="figure_3"/>.</t>

<t><figure anchor="figure_3" title="Encode Branch Index with Node ID Method 1">
		 <artwork><![CDATA[
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Hop_Lim     |              node_id          |  branch index |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
           </figure></t>
	
       <t>Another encoding method is to use the sum of the node ID and the branch index	as the new node ID,
	      as shown in <xref target="figure_4"/>. 
	      As long as the node IDs are assigned with large enough gap, the telemetry data analyzer can still 
		  successfully recover the original node ID and branch index. </t>

<t><figure anchor="figure_4" title="Encode Branch Index with Node ID Method 2">
		 <artwork><![CDATA[
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Hop_Lim     |              node_id + branch index           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
           </figure></t>
		
-->		
		
       <t> Once a node gets the branch ID information from the upstream, it MUST carry this information in its 
	   telemetry data export postcards, so the original multicast tree can be correctly reconstructed based on the postcards. </t> 		
		   
       </section>



       <section title="Per-section postcard for IOAM Trace">	    

	    <t>The second solution is a combination of the IOAM trace option and the postcard-based telemetry. 
		 To avoid data redundancy, at each branch fork node, the trace data accumulated up to this node is exported
		by a postcard before the packet is replicated. In this solution, each branch also needs to maintain some identifier to help correlate the postcards
		for each tree section. The natural way to accomplish this is to simply carry the branch fork node's data (including its ID) in the trace of each branch. 
		This is also necessary because each replicated multicast packet can have different telemetry data pertaining to this particular copy (e.g., node 
		delay, egress timestamp, and egress interface). As a consequence,  the local data exported by each branch fork node can only contain partial 
		data (e.g., ingress interface and ingress timestamp). </t>

	     <t><xref target="figure_4"/> shows an example in a segment of a multicast tree. Node B and D are two branch fork nodes and they will export 
	     a postcard covering the trace data for the previous section. The end node of each path will also need to export the data of the last section as a 
	     postcard.</t>

	     <t><figure anchor="figure_4" title="Per-section Postcard">
		 <artwork><![CDATA[

             P:{A,B'}            P:{B1,C,D'} 
                ^                     ^  
                :                     :
                :                     :
                :                     :    {D1}   
                :                     :    +--... 
                :        +---+      +---+  |
                :   {B1} |   |{B1,C}|   |--+ {D2}
                :    +-->| C |----->| D |-----... 
    +---+     +---+  |   |   |      |   |--+
    |   | {A} |   |--+   +---+      +---+  |
    | A |---->| B |                        +--...
    |   |     |   |--+   +---+             {D3} 
    +---+     +---+  |   |   |{B2,E}
                     +-->| E |--...
                    {B2} |   |
                         +---+
	      
	      ]]></artwork>
           </figure></t>
           
	   <t>There is no need to modify the IOAM trace option header format as specified in <xref target="RFC9197" />. We just need to configure the branch fork nodes to export the postcards and refresh the IOAM header and data (e.g., clear the node data list and reset the Remaining Length field).</t>	   

       </section>
    </section>

    <section title="Application Considerations for Multicast Protocols"> 
	
	  <section title="Mtrace verson 2">
	  
	  <t><xref target="RFC8487">Mtrace version 2 (Mtrace2)</xref> is a protocol that allows the tracing of an IP multicast routing path. Mtrace2 provides additional information such as the packet rates and losses, as well as other diagnostic information. Unlike unicast traceroute, Mtrace2 traces the path that a packet would take from a source to a receiver. It is usually initiated from an Mtrace2 client by sending an Mtrace2 Query to a Last-Hop Router (LHR) or to a Rendezvous Point (RP). The LHR/RP turns the Query packet into an Mtrace2 Request, appends a Standard Response Block containing its interface addresses and packet statistics to the Request packet, and forwards the packet towards the source/RP. In a similar fashion, each router along the path to the source/RP appends a Standard Response Block to the end of the Request packet and forwards it to its upstream router.  When the First-Hop Router (FHR) receives the Request packet, it appends its own Standard Response Block, turns the Request packet into a Reply, and unicasts the Reply back to the Mtrace2 client.</t>

	  <t>New on-path telemetry techniques will enhance Mtrace2, and other existing OAM solutions, with more granular and realtime network status data through direct measurements. There are various multicast protocols that are used to forward the multicast data. Each will require their own unique on-path telemetry solution.</t>
	  
	  </section> 

      <section title="Application in PIM">
      
      <t><xref target="RFC7761">PIM-SM</xref> is the most widely used multicast routing protocol deployed today. Of the various PIM modes (PIM-SM, 
      PIM-DM, BIDIR-PIM, PIM-SSM), PIM-SSM is the preferred method due to its simplicity and removal of network source discovery complexity. With all 
      PIM modes, control plane state is established in the network in order to forward multicast UDP data packets. All PIM modes utilize network based 
      source discovery except for PIM-SSM, which utilizes application based source discovery. IP Multicast packets fall within the range of 224.0.0.0 
      through 239.255.255.255. The telemetry solution will need to work within this address range and provide telemetry data for this UDP traffic. </t>

      <t>A proposed solution for encapsulating the telemetry instruction header and metadata in IPv6 packets is described in 
	  <xref target="I-D.ietf-ippm-ioam-ipv6-options"></xref>. </t>

      </section>

      <section title="Application of MVPN X-PMSI Tunnel Encapsulation Attribute ">

      <t>Multipoint Label Distribution Protocol (mLDP), P2MP RSVP-TE, Ingress Replication (IR), PIM MDT SAFI with GRE Transport, are commonly 
      used within a Multicast VPN (MVPN) environment utilizing MVPN procedures <xref target="RFC6513">Multicast in MPLS/BGP IP VPNs</xref> 
      and <xref target="RFC6514">BGP Encoding and Procedures for Multicast in MPLS/BGP IP VPNs</xref>. MLDP <xref target="RFC6388">LDP 
      Extension for P2MP and MP2MP LSPs</xref> provides extensions to LDP to establish point-to-multipoint (P2MP) and multipoint-to-multipoint 
      (MP2MP) label switched paths (LSPs) in MPLS networks. P2MP RSVP-TE provides extensions to RSVP-TE <xref target="RFC4875">RSVP-TE 
      for P2MP LSPs</xref> for establish traffic-engineered P2MP LSPs in MPLS networks. Ingress Replication (IR) P2MP 
      Trees <xref target="RFC7988">Ingress Replication Tunnels in Multicast VPNs</xref> using unicast replication from parent node to child node 
      over MPLS Unicast Tunnel. PIM MDT SAFI <xref target="RFC6037">Multicast in BGP/MPLS IP VPNs</xref>utilizes PIM modes PIM-SSM, 
      PIM-SM, PIM-BIDIR control plane with GRE transport data plane in the core for X-PMSI P-Tree using MVPN procedures. 
      Replication SID <xref target="I-D.ietf-spring-sr-replication-segment">SR Replication Segment for Multi-point Service Delivery</xref> 
      replication segments for P2MP multicast service delivery in Segment Routing SR-MPLS networks. The telemetry solution will need to be able to 
      follow these P2MP and MP2MP paths.  The telemetry instruction header and data should be encapsulated into MPLS packets on P2MP and 
      MP2MP paths. A corresponding proposal is described in <xref target="I-D.song-mpls-extension-header"></xref>. </t>

      </section>

      <section title="Application in BIER">
	      <t> <xref target="RFC8279">BIER</xref> adds a new header to multicast packets and allows the multicast packets to be forwarded 
	      according to the header only. By eliminating the requirement of maintaining per multicast group state, BIER is more scalable than the 
	      traditional multicast solutions. </t>
	      
	      <t><xref target="I-D.ietf-bier-oam-requirements">OAM Requirements for BIER</xref> lists many of the requirements for OAM at the 
	      BIER layer which will help in the forming of on-path telemetry requirements as well.
	      </t>

        <t>Depending on how the BIER header is encapsulated into packets with different transport protocols, the method to encapsulate the 
        telemetry instruction header and metadata also varies. It is also possible to make the instruction header and metadata a part of the BIER 
        header itself, such as in a TLV.</t>

      </section>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>No new security issues are identified other than those discovered by the IOAM trace and DEX options.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      
	  <t>The document requests two new extension flag registrations in the "IOAM DEX Extension-Flags" registry, as described in Section 4.1.</t>
  
      <t>Bit 2  "Multicast Branching Node ID [RFC XXXX] [RFC Editor: please replace with the RFC
      number of the current document]". </t>	

	  <t>Bit 3  "Multicast Branching Interface Index [RFC XXXX] [RFC Editor: please replace with the RFC
      number of the current document]". </t>		  
	  
    </section>

    <section anchor="Acknowledgments" title="Acknowledgments">
      <t>The authors would like to thank Frank Brockners, Nils Warnke, Jake Holland, and Dino Farinacci for the comments and suggestions.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>
      <?rfc include='reference.RFC.8174'?>
      <?rfc include='reference.RFC.8279'?>
      <?rfc include='reference.RFC.4687'?>
      <?rfc include='reference.RFC.7761'?>
      <?rfc include='reference.RFC.8487'?>
      <?rfc include='reference.RFC.6513'?>
      <?rfc include='reference.RFC.6514'?>
      <?rfc include='reference.RFC.6037'?>   
      <?rfc include='reference.RFC.7988'?>  
      <?rfc include='reference.RFC.6388'?>    
      <?rfc include='reference.RFC.4875'?>  
	  <?rfc include='reference.RFC.9197'?> 
	  <?rfc include='reference.RFC.9326'?> 
    </references>

    <references title="Informative References">
	    <?rfc include='reference.I-D.song-ippm-postcard-based-telemetry'?>
	    <?rfc include='reference.I-D.xie-bier-ipv6-encapsulation'?>
	    <?rfc include='reference.I-D.ietf-bier-oam-requirements'?>
	    <?rfc include='reference.I-D.ietf-ippm-ioam-ipv6-options'?>
	    <?rfc include='reference.I-D.song-mpls-extension-header'?>
	    <?rfc include='reference.I-D.mirsky-ippm-hybrid-two-step'?>
	    <?rfc include='reference.I-D.ietf-spring-sr-replication-segment'?>
	    
    </references>
  </back>
</rfc>
