<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" docName="draft-ietf-bier-ping-21" category="std" ipr="trust200902" obsoletes="" updates="" xml:lang="en" symRefs="true" sortRefs="false" tocInclude="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <!-- Generated by id2xml 1.5.0 on 2023-02-27T22:45:04Z -->
	<front>
    <title abbrev="BIER Ping">Bit Index Explicit Replication (BIER) Ping and Trace</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-bier-ping-21"/>
    <author initials="N." surname="Kumar" fullname="Nagendra Kumar">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>7200 Kit Creek Road</street>
          <street>Research Triangle Park, NC  27709</street>
          <country>US</country>
        </postal>
        <email>naikumar@cisco.com</email>
      </address>
    </author>
    <author initials="C." surname="Pignataro" fullname="Carlos Pignataro">
      <organization>North Carolina State University</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>cpignata@gmail.com</email>
        <email>cmpignat@ncsu.edu</email>
      </address>
    </author>

    <author initials="M." surname="Chen" fullname="Mach Chen">
      <organization>Huawei Technologies</organization>
      <address>
        <email>mach.chen@huawei.com</email>
      </address>
    </author>
    <author initials="G." surname="Mirsky" fullname="Greg Mirsky">
      <organization>Independent</organization>
      <address>
        <email>gregimirsky@gmail.com</email>
      </address>
    </author>
    
    <workgroup>Network Work group</workgroup>
    
    <abstract>
      <t>
   Bit Index Explicit Replication (BIER) is a multicast forwarding architecture designed to simplify and optimize multicast delivery.
   </t>
      <t>
This document specifies the mechanism and basic BIER OAM packet
   format that can be used to perform failure detection and isolation on
   the BIER data plane without any dependency on other layers, like the IP layer.
   </t>
    </abstract>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
   <xref target="RFC8279" format="default"/> introduces and explains BIER architecture that provides
   optimal multicast forwarding through a "BIER domain" without
   requiring intermediate routers to maintain any multicast-related per-
   flow state.  BIER also does not require any explicit tree-building
   protocol for its operation.  A multicast data packet enters a BIER
   domain at a "Bit-Forwarding Ingress Router" (BFIR), and leaves the
   BIER domain at one or more "Bit-Forwarding Egress Routers" (BFERs).
   The BFIR router adds a BIER header to the packet.  The BIER header
   contains a bit-string in which each bit represents exactly one BFER
   to forward the packet to.  The set of BFERs to which the multicast
   packet needs to be forwarded is specified by setting the bits that
   correspond to those routers in the BIER header.
   Similarly, the Initiator of the BIER OAM packet controls the set of BFRs
   to which the BIER OAM packet is addressed by setting bits in the BitString field
   of the BIER header that correspond to the BFR-ID values of those BFRs.
   </t>
   <t>
   Operations, Administration, and Maintenance (OAM) mechanisms are
   expected to support the detection of network failures.  After the
   detection, operators localize and characterize the network defect.  A
   query-based tool, e.g., ICMP <xref target="RFC0792"/>
   and LSP Ping <xref target="RFC8029"/>, <xref target="RFC6425"/>,
   is broadly used to detect and localize a network defect.
   Additionally, this mechanism can be used to check the consistency
   between the data and control planes.
   This document describes the mechanism and basic BIER OAM packet
   format that can be used to perform failure detection and isolation on
   the BIER data plane without any dependency on other layers, like the IP layer.
   The specification conforms to R-1 through R-3, R-5, and R-11 requirements
   listed in <xref target="I-D.ietf-bier-oam-requirements"/>. To conform to R-11,
   BIER Echo Request message is encapsulated in the BIER header <xref target="RFC8296"/>
   that uses the same values of BIFT-id, BSL, Entropy, and DSCP fields as in the BIER header of the monitored BIER flow.
   Note that the BIER Echo Request/Reply protocol doesn't modify the content of the OAM field in the BIER header (Section 2 of <xref target="RFC8296"/>).
   </t>
    </section>
    <section anchor="sect-2" numbered="true" toc="default">
      <name>Conventions used in this document</name>
      <section anchor="sect-2.1" numbered="true" toc="default">
        <name>Terminology and Acronyms</name>
        <t>In this specification, the term "Initiator" is used interchangeably with the "Sender of a BIER Echo Request".</t>
        <t>BFER - Bit-Forwarding Egress Router</t>
        <t>BFIR - Bit-Forwarding Ingress Router</t>
        <t>BFR - Bit-Forwarding Router</t>
        <t>BIER - Bit Index Explicit Replication</t>
   <t>DDMAP - Downstream Detailed Mapping TLV</t>
        <t>ECMP - Equal Cost Multi-Path</t>
        <t>OAM - Operation, Administration, and Maintenance</t>
        <t>SI - Set Identifier</t>
        <t>QTF - Querier Timestamp Format</t>
        <t>RTF - Responder Timestamp Format</t>
        <t>NTP - Network Time Protocol</t>
        <t>MTU - Maximum Transmission Unit</t>
        <t>DA - Downstream Address</t>
        <t>DIA - Downstream Interface Address</t>
        <t>DoS - Denial-of-Service</t>
        <t>PTP - Precision Time Protocol</t>
      </section>
      <section anchor="sect-2.2" numbered="true" toc="default">
        <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" format="default"/> <xref target="RFC8174" format="default"/> 
   when, and only when, they appear in all capitals, as shown here.
   </t>
      </section>
    </section>
    <section anchor="sect-3" numbered="true" toc="default">
      <name>BIER OAM</name>
      <t>
   BIER OAM is defined to stay within the BIER layer by directly following
   the BIER header without mandating the need for an IP header.
   To produce information that is useful to an operator, information that statistically reflects conditions experienced by the monitored data flow,
   the operator must be able to ensure that active OAM packets, e.g., BIER Echo Request, traverse the set of links and nodes
   and receive the same forwarding treatment as the monitored flow. Hence, all fields in the BIER header that affect packet forwarding (e.g., BFIR-id, BitString)
   must be set to the values applied to the monitored data flow.
   <xref target="RFC8296"/> defines a 4-bit field as "Proto" to identify the payload following
   the BIER header.  When the payload is BIER OAM, the "Proto" field will be
   set to 5 as defined in <xref target="RFC8296" format="default"/>.</t>
   
      <section anchor="sect-3.1" numbered="true" toc="default">
        <name>BIER OAM Message Format</name>
        <t>
   The BIER OAM packet header format that follows the BIER header is displayed in <xref target="bier-hdr-fig"/>.
   </t>
         <figure anchor="bier-hdr-fig">
        <name>BIER OAM Header</name>
        <artset>
        <artwork name="" type="ascii-art" align="center" alt=""><![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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  Ver  |MessageType|   Proto   |           Reserved            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        OAM Message Length                     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~                  Message Type Dependent Data                  ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
<artwork type="svg" align="center">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="528" viewBox="0 0 528 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,112" fill="none" stroke="black"/>
<path d="M 72,48 L 72,80" fill="none" stroke="black"/>
<path d="M 168,48 L 168,80" fill="none" stroke="black"/>
<path d="M 264,48 L 264,80" fill="none" stroke="black"/>
<path d="M 520,48 L 520,112" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,144 L 520,144" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="40" y="68">Ver</text>
<text x="120" y="68">MessageType</text>
<text x="216" y="68">Proto</text>
<text x="388" y="68">Reserved</text>
<text x="276" y="100">OAM Message Length</text>
<text x="8" y="132">~</text>
<text x="264" y="132">Message Type Dependent Data</text>
<text x="520" y="132">~</text>
</g>
</svg>
</artwork>
</artset>
</figure>

      <ul empty="true" spacing="normal">
        <li>Ver - a four-bit field that indicates the version of the BIER OAM header. The value defined in this document is 1.
        The version number is to be incremented whenever a change is made that affects the ability of
   an implementation to parse or process the BIER OAM header correctly.
   For example, if syntactic or semantic changes are made to any of the fixed fields.</li>
        <li>Message Type - a six-bit field that identifies OAM protocol. Values defined in this document are as in <xref target="bier-echo-type-tbl"/>.</li>
        </ul>

     <table anchor="bier-echo-type-tbl" align="center">
          <name>BIER Echo Type</name>
          <thead>
            <tr>
              <th align="center">Value</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">1</td>
              <td align="left">BIER Echo Request</td>
            </tr>
              <tr>
              <td align="center">2</td>
              <td align="left">BIER Echo Reply</td>
            </tr>
            </tbody>
            </table>
            
        <ul empty="true" spacing="normal">
        <li>Proto - a six-bit field. This field is used to define whether there is any data packet
      immediately following the OAM payload. For example, the In-situ OAM Direct Export Option header <xref target="RFC9326"/>
      can be appended to the BIER OAM message, enabling the collection of the operational state and performance metrics.
      This field MUST be set to 0 if no data packet follows the OAM payload.
      Otherwise, the value is one from the IANA registry "BIER Next Protocol Identifiers" <xref target="IANA-Next-Protocol-Identifiers"/>.</li>
      <li>Reserved - a two-octet field. The value MUST be zeroed on transmission and ignored on receipt.</li>
        <li>OAM Message Length - a four-octet field that reflects the length of the OAM message in octets, including the
      header and the Messsage Type Dependent Data.</li>
      <li>Message Type Dependant Data - a variable-length field that includes the OAM message identified by the value of the Message Type field.</li>
      </ul>
</section>

     <section anchor="sect-3.1.1" numbered="true" toc="default">
        <name>BIER Echo Request/Reply Message Format</name>
<t>The Echo Request/Reply header format is displayed in <xref target="bier-echo-fig"/></t>

                 <figure anchor="bier-echo-fig">
        <name>BIER Echo Request/Reply Format</name>
        <artset>
        <artwork name="" type="ascii-art" align="center" alt="">
        <![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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  Ver  | Echo Req/Rep  |   Proto   |         Reserved          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               BIER Echo Request/Reply Length                  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   QTF |   RTF |   Reply Mode  |  Return Code  |   Reserved2   |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        Sender's Handle                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        Sequence Number                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                    Timestamp Sent                             |
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                  Timestamp Received                           |
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~                              TLVs                             ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
<artwork type="svg" align="center">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="528" viewBox="0 0 528 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,304" fill="none" stroke="black"/>
<path d="M 72,48 L 72,80" fill="none" stroke="black"/>
<path d="M 72,112 L 72,144" fill="none" stroke="black"/>
<path d="M 136,112 L 136,144" fill="none" stroke="black"/>
<path d="M 200,48 L 200,80" fill="none" stroke="black"/>
<path d="M 264,120 L 264,144" fill="none" stroke="black"/>
<path d="M 296,48 L 296,80" fill="none" stroke="black"/>
<path d="M 392,112 L 392,144" fill="none" stroke="black"/>
<path d="M 520,48 L 520,304" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,144 L 520,144" fill="none" stroke="black"/>
<path d="M 8,176 L 520,176" fill="none" stroke="black"/>
<path d="M 8,208 L 520,208" fill="none" stroke="black"/>
<path d="M 8,256 L 520,256" fill="none" stroke="black"/>
<path d="M 8,304 L 520,304" fill="none" stroke="black"/>
<path d="M 8,336 L 520,336" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="40" y="68">Ver</text>
<text x="132" y="68">Echo Req/Rep</text>
<text x="248" y="68">Proto</text>
<text x="404" y="68">Reserved</text>
<text x="252" y="100">BIER Echo Request/Reply Length</text>
<text x="48" y="132">QTF</text>
<text x="112" y="132">RTF</text>
<text x="204" y="132">Reply Mode</text>
<text x="328" y="132">Return Code</text>
<text x="456" y="132">Reserved2</text>
<text x="264" y="164">Sender's Handle</text>
<text x="264" y="196">Sequence Number</text>
<text x="228" y="228">Timestamp Sent</text>
<text x="228" y="276">Timestamp Received</text>
<text x="8" y="324">~</text>
<text x="268" y="324">TLVs</text>
<text x="520" y="324">~</text>
</g>
</svg>

</artwork>
        </artset>
</figure>

        <ul empty="true" spacing="normal">
        <li>Proto field MUST be set to 0 for Echo Request/Reply header.</li>
        <li>BIER Echo Request/Reply Length a four-octet field that reflects the length of the BIER Echo Request/Reply message in octets,
        including the BIER OAM header <xref target="sect-3"/>.</li>
        <li>QTF (Querier Timestamp Format) - a four-bit field. When the field is set to 2, the Timestamp Sent field
      is (in seconds and picoseconds, according to the Initiator's
      clock) in the 64-bit long NTP format <xref target="RFC5905" format="default"/>.  When the value of the QTF field is 3, 
      the Timestamp Sent field is in the IEEE 1588-2008 (1588v2) Precision Time Protocol (PTP) <xref target="IEEE.1588.2008"/> format.</li>
      <li>RTF (Responder Timestamp Format) - a four-bit field. When the field is set to 2, the Timestamp Received
      field is (in seconds and picoseconds, according to the
      Initiator's clock) in 64-bit long NTP format <xref target="RFC5905" format="default"/>. When field's value is 3, the
      format of the Timestamp Received is as defined in IEEE 1588-2008 (1588v2) Precision Time
      Protocol <xref target="IEEE.1588.2008"/>.
      The Initiator MUST zero RTF in the Echo Request, and the Responder MUST ignore the value on receipt.</li>
      </ul>
      <t>The sender of the BIER Echo Request might receive the BIER Echo Reply with RTF different from the Sender's QTF.
      Thus, to calculate one-way delay, the Sender MUST be able to interpret both timestamp formats, i.e., NTP <xref target="RFC5905"/> and PTP <xref target="IEEE.1588.2008"/>.
      Although the use of different timestamp formats is permitted, it may cause ambiguity or even precision loss
      resulting from format conversion. Thus, the use of homogeneous formats is RECOMMENDED.</t>
       <ul empty="true" spacing="normal">
      <li>The Reply Mode - a one-octet field. The value MUST be set to one of the values from <xref target="bier-reply-mode-tbl"/>.</li>
      </ul>

     <table anchor="bier-reply-mode-tbl" align="center">
          <name>BIER Reply Mode</name>
          <thead>
            <tr>
              <th align="center">Value</th>
              <th align="center">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">1</td>
              <td align="left">Do not Reply</td>
            </tr>
              <tr>
              <td align="center">2</td>
              <td align="left">Reply via IPv4/IPv6 UDP packet</td>
            </tr>
             <tr>
              <td align="center">3</td>
              <td align="left">Reply via BIER packett</td>
            </tr>
            </tbody>
            </table>
            
          <ul empty="true" spacing="normal">
        <li>
   When Reply Mode is set to 1, the receiver will not send any reply.
   This mode can be used for unidirectional path validation.  When the
   Reply Mode is set to 2, the Responder Bit-Forwarding Router (BFR) encapsulates the Echo
   reply payload with the IP/UDP header. The Responder BFR uses the BFIR-id field in the BIER header to
   determine which IP address family to use in the IP/UDP encaspulation. When the Initiator intends to validate
   the return BIER path, the Reply Mode will be set to 3 so that the
   Responder BFR will encapsulate the Echo Reply with the BIER header.
   Also, the Reply Mode "Reply via BIER packet" can be used if the IP network is deemed less reliable
   compared to the BIER layer.
   </li>
   <li>Return Code - a one-octet field. The value MUST be set to zero if the Type is "BIER Echo Request". 
   The value of the Return Code field MUST be set to one of the
      values defined in <xref target="sect-3.2"/>, if the Type is "BIER Echo Reply".</li>
<li>Reserved2 - a one-octet field. The Reserved field MUST be zeroed on transmit and MUST be ignored on receipt.</li>
          <li>
      Sender's Handle - a four-octet field. The Sender's Handle is filled by the Initiator, and returned
      unchanged by responder BFR. This value can be used for matching
      the replies to the request (see <xref target="sect-4.3"/>).
        </li>
        <li>
	Sequence Number - a four-octet field. The value of the field is assigned by the Initiator and can be used to detect any missed replies.
       </li>
        <li>
	Timestamp - each field (Sent and Received) is an eight-octet field.
	The Timestamp Sent is the time when the Echo Request is sent.  The
      Timestamp Received in Echo Reply is the time (accordingly to
      responding BFR clock) that the corresponding Echo Request was
      received. The format depends on the QTF/RTF value.
      The Initiator MUST zero Timestamp Received in the Echo Request, and the Responder MUST ignore the value on receipt.
      </li>
      <li>TLVs - Carries the TLVs as defined in <xref target="sect-3.3" format="default"/>.</li>
</ul>
      </section>
      
      <section anchor="sect-3.2" numbered="true" toc="default">
        <name>Return Code</name>
        <t>
   The responder uses the Return Code field to reply with a validity
   check or other error message to Initiator.  It does not carry any
   meaning in Echo Request and MUST be set to zero. The Return Code can be one of the values in <xref target="bier-return-code-tbl"/>.
   </t>

    <table anchor="bier-return-code-tbl" align="center">
          <name>BIER Return Code</name>
          <thead>
            <tr>
              <th align="center">Value</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">0</td>
              <td align="left">No return code</td>
            </tr>
              <tr>
              <td align="center">1</td>
              <td align="left">Malformed Echo Request received</td>
            </tr>
            <tr>
              <td align="center">2</td>
              <td align="left">One or more of the TLVs is not supported</td>
            </tr>
              <tr>
              <td align="center">3</td>
              <td align="left">Replying BFR is the only BFER in header BitString</td>
            </tr>
            <tr>
              <td align="center">4</td>
              <td align="left">Replying BFR is one of the BFERs in header BitString</td>
            </tr>
              <tr>
              <td align="center">5</td>
              <td align="left">Packet-Forward-Success</td>
            </tr>
              <tr>
              <td align="center">6</td>
              <td align="left">Invalid Multipath Info Request</td>
            </tr>
            <tr>
              <td align="center">7</td>
              <td align="left">One or more of the TLVs is not supported</td>
            </tr>
              <tr>
              <td align="center">8</td>
              <td align="left">No matching entry in the forwarding table</td>
            </tr>
            <tr>
              <td align="center">9</td>
              <td align="left">Set-Identifier Mismatch</td>
            </tr>
              <tr>
              <td align="center">10</td>
              <td align="left">DDMAP Mismatch</td>
            </tr>
            </tbody>
            </table>
            
        <t>
   "No return code" will be used by Initiator in the Echo Request.  This
   value MUST NOT be used in Echo Reply.</t>
        <t>
   "Malformed Echo Request received" will be used by any BFR if the
   received Echo Request packet is not properly formatted.</t>
        <t>
   When a receiver does not support any TLV included in the Echo
   Request, the Return code will be set to "One or more of the TLVs is not supported" carrying the respective TLVs.
   </t>
        <t>
   When the received header BitString in the Echo Request packet
   contains only its BFR-ID, "Replying BFR is the only BFER in header BitString"
   is set in the reply.  This value implies that the receiver
   is BFER, and the packet is not forwarded to any more neighbors.</t>
        <t>
   When the received header BitString in the Echo Request packet
   contains its BFR-ID in addition to other BFR-IDs, "Replying BFR is
   one of the BFERs in header BitString" is set in the reply.  This
   value implies that the responder is a BFER and the packet is further
   forwarded to one or more neighbors.</t>
        <t>
   Any transit BFR will send the Echo Reply with "Packet-Forward-Success",
   if the TLV in the received Echo Request is understood and
   the forwarding table has forwarding entries for the BitString.  This
   behavior is demonstrated by a transit BFR during traceroute mode.</t>
        <t>
   When the Echo Request is received with multipath info (<xref target="sect-3.3.4.1"/>)
   for more than one BFER, the Return Code is set to "Invalid Multipath Info Request".</t>
        <t>
   If the BitString cannot be matched in the local forwarding table, the
   BFR will use "No matching entry in the forwarding table" in the reply.</t>
        <t>
   If the BIER-MPLS label in the received Echo Request is not the one
   assigned for SI in Original SI-BitString TLV, "Set-Identifier Mismatch" is set in order to report the mismatch.</t>
   <t>
   If the BitString in Header-H does not match the BitString in Egress BitString Sub-TLV of DDMAP TLV,
   a responding BFR will use "DDMAP Mismatch" to report the problem.</t>
      </section>
      
      <section anchor="sect-3.3" numbered="true" toc="default">
        <name>BIER OAM TLVs</name>
        <t>
   This section defines various TLVs that can be used in BIER OAM
   packet.  The TLVs (Type-Length-Value tuples) have the following format:
   </t>
         <figure anchor="bier-tlv-fig">
        <name>Type-Length-Value Format Used in BIER Echo Request/Reply</name>
        <artset>

        <artwork name="" type="ascii-art" align="center" alt="">
        <![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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               Type            |          Length               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  ~                              Value                            ~
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
<artwork type="svg" align="center">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="528" viewBox="0 0 528 160" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,96" fill="none" stroke="black"/>
<path d="M 8,128 L 8,144" fill="none" stroke="black"/>
<path d="M 264,48 L 264,80" fill="none" stroke="black"/>
<path d="M 520,48 L 520,96" fill="none" stroke="black"/>
<path d="M 520,128 L 520,144" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,144 L 520,144" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="148" y="68">Type</text>
<text x="372" y="68">Length</text>
<text x="8" y="116">~</text>
<text x="272" y="116">Value</text>
<text x="520" y="116">~</text>
</g>
</svg>
</artwork>

</artset>

</figure>

        <t>
   TLV Types are defined below. A system that receives an Echo Request with unknown TLV Type
   with the value in the range 0 - 32767 MUST transmit an Echo Reply with the 
   Return Code "One or more of the TLVs is not supported" (2). Also, the Erroneous Echo Request TLV (<xref target="sect-3.3.8"/>) MUST be included
   in the BIER Echo Reply. A system that receives
   an Echo Request with the value in the range 32768 - 65535 MAY silently drop the packet.
   Length is the length of the Value field in octets. The Value field depends on the TLV Type.
   </t>
   
        <section anchor="sect-3.3.1" numbered="true" toc="default">
          <name>Original SI-BitString TLV</name>
          <t>
   The Original SI-BitString TLV carries the set of BFERs and carries the
   same BitString that the Initiator includes in the BIER header.  This TLV
   has the following format:</t>
           <figure anchor="si-bitstring-tlv-fig">
           <name>The Format of the Original SI-BitString TLV</name>
           <artset>

          <artwork name="" type="ascii-art" align="center" alt="">
          <![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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         Type = 1              |       Length = variable       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    Set ID     | Sub-domain ID |BS Len |      Reserved         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                BitString  (first 32 bits)                     ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~                                                               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                BitString  (last 32 bits)                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
<artwork type="svg" align="center">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="528" viewBox="0 0 528 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,144" fill="none" stroke="black"/>
<path d="M 8,176 L 8,208" fill="none" stroke="black"/>
<path d="M 136,80 L 136,112" fill="none" stroke="black"/>
<path d="M 264,48 L 264,112" fill="none" stroke="black"/>
<path d="M 328,80 L 328,112" fill="none" stroke="black"/>
<path d="M 520,48 L 520,112" fill="none" stroke="black"/>
<path d="M 520,176 L 520,208" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,144 L 520,144" fill="none" stroke="black"/>
<path d="M 8,176 L 520,176" fill="none" stroke="black"/>
<path d="M 8,208 L 520,208" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="116" y="68">Type = 1</text>
<text x="392" y="68">Length = variable</text>
<text x="68" y="100">Set ID</text>
<text x="200" y="100">Sub-domain ID</text>
<text x="292" y="100">BS Len</text>
<text x="412" y="100">Reserved</text>
<text x="176" y="132">BitString</text>
<text x="288" y="132">(first 32 bits)</text>
<text x="520" y="132">~</text>
<text x="8" y="164">~</text>
<text x="520" y="164">~</text>
<text x="176" y="196">BitString</text>
<text x="284" y="196">(last 32 bits)</text>
</g>
</svg>

</artwork>

           </artset>
           </figure>
          <t>
   Set ID - a one-octet field that is set to the value of the Set Identifier to which the
   BitString belongs.  This value is derived as defined in <xref target="RFC8279" format="default"/>.</t>
          <t>
   Sub-domain ID - a one-octet field that is set to the Sub-domain value to which BFER in
   BitString belongs.</t>
          <t>
   BS Len - a four-bit field that is set based on the length of BitString as defined in
   <xref target="RFC8296" format="default"/> reflected in four-octet words.</t>
   <t>Reserved - a twelve-bit field. Its value MUST be zeroed on transmission and ignored on receipt.</t>
          <t>
   BitString - a variable length field. The BitString field carries the set of BFR-IDs that Initiator will
   include in the BIER header.
   </t>
          <t>Any Initiator MUST include this TLV in the Echo Request packet. A Responder MUST NOT include this TLV in the Echo Reply packet.</t>
        </section>
        <section anchor="sect-3.3.2" numbered="true" toc="default">
          <name>Target SI-BitString TLV</name>
          <t>
   The Target SI-BitString TLV carries the set of BFERs from which the
   Initiator expects the reply. This TLV has the following format:</t>
   <figure anchor="target-sibitstring-tlv-fig">
   <name>The Format of the Target SI-BitString TLV</name>
   <artset>

          <artwork name="" type="ascii-art" align="center" alt="">
          <![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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         Type = 2              |       Length = variable       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    Set ID     | Sub-domain ID |BS Len |       Reserved        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                BitString  (first 32 bits)                     ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~                                                               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                BitString  (last 32 bits)                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
<artwork type="svg" align="center">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="528" viewBox="0 0 528 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,144" fill="none" stroke="black"/>
<path d="M 8,176 L 8,208" fill="none" stroke="black"/>
<path d="M 136,80 L 136,112" fill="none" stroke="black"/>
<path d="M 264,48 L 264,112" fill="none" stroke="black"/>
<path d="M 328,80 L 328,112" fill="none" stroke="black"/>
<path d="M 520,48 L 520,112" fill="none" stroke="black"/>
<path d="M 520,176 L 520,208" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,144 L 520,144" fill="none" stroke="black"/>
<path d="M 8,176 L 520,176" fill="none" stroke="black"/>
<path d="M 8,208 L 520,208" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="116" y="68">Type = 2</text>
<text x="392" y="68">Length = variable</text>
<text x="68" y="100">Set ID</text>
<text x="200" y="100">Sub-domain ID</text>
<text x="292" y="100">BS Len</text>
<text x="420" y="100">Reserved</text>
<text x="176" y="132">BitString</text>
<text x="288" y="132">(first 32 bits)</text>
<text x="520" y="132">~</text>
<text x="8" y="164">~</text>
<text x="520" y="164">~</text>
<text x="176" y="196">BitString</text>
<text x="284" y="196">(last 32 bits)</text>
</g>
</svg>
</artwork>
   </artset>
</figure>

          <t>
   Set ID field is set to the Set Identifier to which the BitString
   belongs.This value is derived as defined in <xref target="RFC8279" format="default"/>.</t>
          <t>
   Sub-domain ID is set to the Sub-domain value to which BFER in
   BitString belongs.</t>
          <t>
   BS Len is set based on the length of BitString as defined in
   <xref target="RFC8296" format="default"/></t>
   <t>Reserved - the value MUST be zeroed on transmission and ignored on receipt.</t>
          <t>
   The BitString field carries the set of BFR-IDs of BFER(s) that
   Initiator expects a response.  The BitString in this TLV may
   be different from the BitString in the BIER header and allows
   control of the BFER responding to the Echo Request. This TLV MUST be
   included by Initiator in the BIER OAM packet if the Downstream Mapping
   TLV (<xref target="sect-3.3.4"/>) is included.</t>
        </section>
        
        <section anchor="sect-3.3.3" numbered="true" toc="default">
          <name>Incoming SI-BitString TLV</name>
          <t>
   The Incoming SI-BitString TLV will be included by Responder BFR in
   Reply message and copies the BitString from the BIER header of incoming
   Echo Request message.  This TLV has the following format:</t>
   <figure anchor="inc-sistring-tlv-fig">
   <name>The Format of the Incoming SI-BitString TLV</name>
   <artset>

          <artwork name="" type="ascii-art" align="center" alt="">
          <![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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         Type = 3              |       Length = variable       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    Set ID     | Sub-domain ID |BS Len |       Reserved        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                BitString  (first 32 bits)                     ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~                                                               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                BitString  (last 32 bits)                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
<artwork type="svg" align="center">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="528" viewBox="0 0 528 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,144" fill="none" stroke="black"/>
<path d="M 8,176 L 8,208" fill="none" stroke="black"/>
<path d="M 136,80 L 136,112" fill="none" stroke="black"/>
<path d="M 264,48 L 264,112" fill="none" stroke="black"/>
<path d="M 328,80 L 328,112" fill="none" stroke="black"/>
<path d="M 520,48 L 520,112" fill="none" stroke="black"/>
<path d="M 520,176 L 520,208" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,144 L 520,144" fill="none" stroke="black"/>
<path d="M 8,176 L 520,176" fill="none" stroke="black"/>
<path d="M 8,208 L 520,208" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="116" y="68">Type = 3</text>
<text x="392" y="68">Length = variable</text>
<text x="68" y="100">Set ID</text>
<text x="200" y="100">Sub-domain ID</text>
<text x="292" y="100">BS Len</text>
<text x="420" y="100">Reserved</text>
<text x="176" y="132">BitString</text>
<text x="288" y="132">(first 32 bits)</text>
<text x="520" y="132">~</text>
<text x="8" y="164">~</text>
<text x="520" y="164">~</text>
<text x="176" y="196">BitString</text>
<text x="284" y="196">(last 32 bits)</text>
</g>
</svg>
</artwork>

</artset>
</figure>

          <t>
   Set ID field is set to the Set Identifier to which the BitString
   belongs.  This value is derived as defined in <xref target="RFC8279" format="default"/></t>
          <t>
   Sub-domain ID is set to the Sub-domain value to which BFER in
   BitString belongs.</t>
          <t>
   BS Len is set based on the length of BitString as defined in
   <xref target="RFC8296" format="default"/>.</t>
   <t>Reserved - the value MUST be zeroed on transmission and ignored on receipt.</t>
          <t>
   The BitString field copies the BitString from the BIER header of the
   incoming Echo Request.  A Responder BFR SHOULD include this TLV in
   Echo Reply if the Echo Request is received with the I flag set in
   Downstream Mapping TLV.</t>
          <t>
   An Initiator MUST NOT include this TLV in Echo Request.</t>
        </section>
        
        <section anchor="sect-3.3.4" numbered="true" toc="default">
          <name>Downstream Mapping TLV</name>
          <dl newline="true" spacing="normal" indent="3">
            <dt>This TLV has the following format:</dt>
            <dd/>
          </dl>
          <figure anchor="dwn-map-tlv-fig">
          <name>The Format of the Downstream Mapping TLV</name>
          <artset>

          <artwork name="" type="ascii-art" align="center" alt="">
          <![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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         Type = 4              |       Length = variable       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               MTU             | Address Type  |     Flags     |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |               Downstream Address (4 or 16 octets)             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         Downstream Interface Address (4 or 16 octets)         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |        Sub-TLVs Length        |                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
  .                                                               .
  .                      List of Sub-TLVs                         .
  .                                                               .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
<artwork type="svg" align="center">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="528" viewBox="0 0 528 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,208" fill="none" stroke="black"/>
<path d="M 8,256 L 8,272" fill="none" stroke="black"/>
<path d="M 264,48 L 264,112" fill="none" stroke="black"/>
<path d="M 264,176 L 264,208" fill="none" stroke="black"/>
<path d="M 392,80 L 392,112" fill="none" stroke="black"/>
<path d="M 520,48 L 520,216" fill="none" stroke="black"/>
<path d="M 520,256 L 520,272" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,144 L 520,144" fill="none" stroke="black"/>
<path d="M 8,176 L 520,176" fill="none" stroke="black"/>
<path d="M 8,208 L 264,208" fill="none" stroke="black"/>
<path d="M 8,272 L 520,272" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="116" y="68">Type = 4</text>
<text x="392" y="68">Length = variable</text>
<text x="144" y="100">MTU</text>
<text x="324" y="100">Address Type</text>
<text x="456" y="100">Flags</text>
<text x="272" y="132">Downstream Address (4 or 16 octets)</text>
<text x="264" y="164">Downstream Interface Address (4 or 16 octets)</text>
<text x="136" y="196">Sub-TLVs Length</text>
<text x="8" y="228">.</text>
<text x="520" y="228">.</text>
<text x="8" y="244">.</text>
<text x="252" y="244">List of Sub-TLVs</text>
<text x="520" y="244">.</text>
</g>
</svg>

</artwork>

</artset>
</figure>

          <dl newline="false" spacing="normal" indent="3">
            <dt>MTU</dt>
            <dd>
   A two-octet field. The value is the Maximum Transmission Unit (MTU) value of the egress interface.</dd>
   <dt>Address Type</dt>
            <dd>
      A one-octet field. The Address Type indicates the address type and length of the IP
      address for the downstream interface. The value of the Address Type field is set to
      one of the values listed in <xref target="address-types-fig"/>. Any other value MUST be processed as invalid TLV.
      </dd>
          </dl>

        <table anchor="address-types-fig" align="center">
          <name>The Address Types</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="center">Address Type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">1</td>
              <td align="left">IPv4 Numbered</td>
            </tr>
            <tr>
              <td align="center">2</td>
              <td align="left">IPv4 Unnumbered</td>
            </tr>
            <tr>
              <td align="center">3</td>
              <td align="left">IPv6 Global Unicast Address (including Unique Local Address)</td>
            </tr>
            <tr>
              <td align="center">4</td>
              <td align="left">IPv6 Link-Local Address Only</td>
            </tr>
            </tbody>
            </table>

         <dl newline="false" spacing="normal" indent="3">
            <dt>Flags</dt>
            <dd>
	The Flags field has the following format:
	</dd>
	</dl>
	<figure anchor="flags-fig">
<name>The Flags Field Format</name>
<artset>

          <artwork name="" type="ascii-art" align="center" alt=""><![CDATA[
 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|   Reserved  |I|
+-+-+-+-+-+-+-+-+
]]>
</artwork>
<artwork type="svg" align="center">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="80" width="144" viewBox="0 0 144 80" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,32 L 8,64" fill="none" stroke="black"/>
<path d="M 120,32 L 120,64" fill="none" stroke="black"/>
<path d="M 136,32 L 136,64" fill="none" stroke="black"/>
<path d="M 8,32 L 136,32" fill="none" stroke="black"/>
<path d="M 8,64 L 136,64" fill="none" stroke="black"/>
<g class="text">
<text x="72" y="20">0 1 2 3 4 5 6 7</text>
<text x="68" y="52">Reserved</text>
<text x="128" y="52">I</text>
</g>
</svg>
</artwork>
</artset>
</figure>

<t>Reserved - a seven-bit field. Its value MUST be zeroed on transmission and ignored on receipt.</t>
          <t>
   I - a one-bit field. When I flag is set, the Responding BFR MUST include the Incoming SI-
   BitString TLV in Echo Reply message.</t>
          <dl newline="true" spacing="normal" indent="3">
            <dt>Downstream Address and Downstream Interface Address</dt>
            <dd>
            <t>each field is either four-octet or sixteen-octet, depending on the value of Address Type field.</t>

	<t>Note that values of the Address Type field  are mapped to combinations of lengths of
	Downstream Address (DA) and Donstream Address Interface (DIA) fields as shown im <xref target="address-types-length-tbl"/>.</t>

        <table anchor="address-types-length-tbl" align="center">
          <name>The Address Type Lengths</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="center">DA Length</th>
              <th align="center">DIA Length</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">1</td>
              <td align="center">4</td>
              <td align="center">4</td>
            </tr>
            <tr>
              <td align="center">2</td>
              <td align="center">4</td>
              <td align="center">4</td>
            </tr>
            <tr>
              <td align="center">3</td>
              <td align="center">16</td>
              <td align="center">16</td>
            </tr>
            <tr>
              <td align="center">4</td>
              <td align="center">16</td>
              <td align="center">4</td>
            </tr>
</tbody>
</table>

<t>where:</t>
          <dl newline="true" spacing="normal" indent="3">
          <dt>DA Length</dt>
          <dd>Downstream Address field Length</dd>
          <dt>DIA Length</dt>
          <dd>Downstream Interface Address field Length</dd>
          </dl>

              <t>
	If the Address Type is "IPv4 Numbered" (1), the Downstream Address field MUST be set to
      IPv4 BFR-Prefix of downstream BFR and Downstream Interface Address
      is set to the downstream interface address.
              </t>
              <t>
	If the Address Type is "IPv4 Unnumbered" (2), the Downstream Address field MUST be set to
      IPv4 BFR-Prefix of downstream BFR and Downstream Interface Address
      is set to the index assigned by the responding BFR to the interface.
              </t>
              <t>
	If the Address Type is "IPv6 Global Unicast Address (including Unique Local Address)" (3), the Downstream Address MUST be set to
      IPv6 BFR-Prefix of downstream BFR and Downstream Interface Address
      is set to the downstream interface IPv6 Global Unicast Address (including Unique Local Address).
              </t>
  <t>
If the Address Type is "IPv6 Link-Local Address Only" (4), the Downstream Address MUST be set to the IPv6 BFR-Prefix of the downstream BFR,
and the Downstream Interface Address is set to the index assigned by the responding BFR to the interface.
      </t>
            </dd>
          </dl>
          
          <section anchor="sect-3.3.4.1" numbered="true" toc="default">
            <name>Downstream Detailed Mapping Sub-TLVs</name>
            <t>
   This section defines the optional Sub-TLVs that can be included in
   Downstream Mapping TLV in <xref target="sub-tlv-type-tbl"/>.</t>

        <table anchor="sub-tlv-type-tbl" align="center">
          <name>Sub-TLV for the Downstream Mapping TLV</name>
          <thead>
            <tr>
              <th align="center">Value</th>
              <th align="center">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">1</td>
              <td align="center">Multipath Entropy Data</td>
            </tr>
              <tr>
              <td align="center">2</td>
              <td align="center">Egress BitString</td>
            </tr>
</tbody>
</table>

<t>
Any value other than listed in <xref target="sub-tlv-type-tbl"/> MUST be
      considered as invalid, the Return Code set to Malformed Echo
      Request received (1). Also, the Erroneous Echo Request TLV
      (<xref target="sect-3.3.8"/>) MUST be included in the BIER Echo Reply.
      </t>
            <section anchor="sect-3.3.4.1.1" numbered="true" toc="default">
              <name>MPLS Multipath Entropy Data Sub-TLV</name>
              <t>
              MPLS Multipath Entropy Data sub-TLV is applicable for BIER Echo Request packets encapsulated in MPLS.
              Encoding of multipath information for other data planes, e.g., IPv6, is for further study. If the MPLS Multipath Entropy Data sub-TLV
              is present in the BIER Echo Request packet encapsulated in a non-MPLS data plane, it MUST be ignored by the responding BFR.
              </t>
              <figure anchor="multi-entropy-fig">
              <name>The Format of the Multipath Data Blob</name>
              <artset>

              <artwork name="" type="ascii-art" align="left" alt="">
              <![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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Type = 1              |       Length = variable       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |M|   Reserved  | Multipath Type|                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
   |                                                               |
   |                  (Multipath Information)                      |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
<artwork align="center" type="svg">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="528" viewBox="0 0 528 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,176" fill="none" stroke="black"/>
<path d="M 24,80 L 24,112" fill="none" stroke="black"/>
<path d="M 136,80 L 136,112" fill="none" stroke="black"/>
<path d="M 264,48 L 264,112" fill="none" stroke="black"/>
<path d="M 520,48 L 520,176" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 264,112" fill="none" stroke="black"/>
<path d="M 8,176 L 520,176" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="116" y="68">Type = 1</text>
<text x="392" y="68">Length = variable</text>
<text x="16" y="100">M</text>
<text x="84" y="100">Reserved</text>
<text x="204" y="100">Multipath Type</text>
<text x="248" y="148">(Multipath Information)</text>
</g>
</svg>
</artwork>
              </artset>
</figure>
              <dl newline="false" spacing="normal" indent="3">
                <dt>M Flag</dt>
                <dd>
      This flag is set to 0 if all packets will be forwarded out through
      the interface defined in the Downstream Mapping TLV.  When set to
      1, Multipath Information will be defined by the Bit masked Entropy
      data.</dd>
      <dt>Reserved</dt>
      <dd>The value MUST be zeroed on transmission and ignored on
      receipt.</dd>
              </dl>
              <dl newline="true" spacing="normal" indent="3">
                <dt/>
                <dd>
The interpretaion of the Multipath Type field and Multipath Entropy Data encoding options
are the same defined in Section 3.4.1.1 of <xref target="RFC8029" format="default"/>.
</dd>
              </dl>
            </section>
            <section anchor="sect-3.3.4.1.2" numbered="true" toc="default">
              <name>Egress BitString Sub-TLV</name>
              <t>
   Responder BFR MAY include this Sub-TLV with the rewritten BitString
   in the outgoing interface as defined in Section 6.1 of <xref target="RFC8279" format="default"/>.</t>
   <figure anchor="egr-bitstring-fig">
   <name>The Egress BitString Sub-TLV Format</name>
   <artset>
              <artwork name="" type="ascii-art" align="center" alt="">
              <![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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         Type = 2              |       Length = variable       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    Set ID     | Sub-domain ID |BS Len |       Reserved        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                BitString  (first 32 bits)                     ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~                                                               ~
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                BitString  (last 32 bits)                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
<artwork align="center" type="svg">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="528" viewBox="0 0 528 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,144" fill="none" stroke="black"/>
<path d="M 8,176 L 8,208" fill="none" stroke="black"/>
<path d="M 136,80 L 136,112" fill="none" stroke="black"/>
<path d="M 264,48 L 264,112" fill="none" stroke="black"/>
<path d="M 328,80 L 328,112" fill="none" stroke="black"/>
<path d="M 520,48 L 520,112" fill="none" stroke="black"/>
<path d="M 520,176 L 520,208" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,144 L 520,144" fill="none" stroke="black"/>
<path d="M 8,176 L 520,176" fill="none" stroke="black"/>
<path d="M 8,208 L 520,208" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="116" y="68">Type = 2</text>
<text x="392" y="68">Length = variable</text>
<text x="68" y="100">Set ID</text>
<text x="200" y="100">Sub-domain ID</text>
<text x="292" y="100">BS Len</text>
<text x="420" y="100">Reserved</text>
<text x="176" y="132">BitString</text>
<text x="288" y="132">(first 32 bits)</text>
<text x="520" y="132">~</text>
<text x="8" y="164">~</text>
<text x="520" y="164">~</text>
<text x="176" y="196">BitString</text>
<text x="284" y="196">(last 32 bits)</text>
</g>
</svg>
</artwork>
   </artset>
</figure>
        <t>
   Set ID field is set to the Set Identifier to which the BitString
   belongs.  This value is derived as defined in <xref target="RFC8279" format="default"/>.</t>
          <t>
   Sub-domain ID is set to the Sub-domain value to which BFER in
   BitString belongs.</t>
          <t>
   BS Len is set based on the length of BitString as defined in
   <xref target="RFC8296" format="default"/>.</t>
   <t>Reserved - the value MUST be zeroed on transmission and ignored on receipt.</t>
          <t>
   The BitString field copies the rewritten BitString
   in the outgoing interface as defined in Section 6.1 of <xref target="RFC8279" format="default"/>.</t>

            </section>
          </section>
        </section>
        
        <section anchor="sect-3.3.5" numbered="true" toc="default">
          <name>Responder BFER TLV</name>
          <t>
   The BFER replying to the request MAY include the Responder BFER TLV in its BIER Echo Reply.
   An Initiator MUST NOT include this TLV in Echo Request.
   This TLV identifies the originator of BIER Echo Reply. This TLV has
   the following format:</t>
   <figure anchor="responder-tlv-fig">
   <name>The Responder BFER TLV Format</name>
   <artset>

          <artwork name="" type="ascii-art" align="left" alt="">
          <![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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         Type = 5              |           Length = 4          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         Reserved              |           BFR-ID              |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
<artwork align="center" type="svg">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="528" viewBox="0 0 528 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,112" fill="none" stroke="black"/>
<path d="M 264,48 L 264,112" fill="none" stroke="black"/>
<path d="M 520,48 L 520,112" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 520,112" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="116" y="68">Type = 5</text>
<text x="396" y="68">Length = 4</text>
<text x="116" y="100">Reserved</text>
<text x="380" y="100">BFR-ID</text>
</g>
</svg>
</artwork>
   </artset>
</figure>

          <dl newline="false" spacing="normal" indent="3">
          <dt>Length</dt>
          <dd>A two-octet field. The value MUST be set to four.</dd>
          <dt>Reserved</dt>
          <dd>A two-octet field. The value MUST be zeroed on transmission and ignored on receipt.</dd>
            <dt>BFR-ID</dt>
            <dd>
      A two-octet field. The BFR-ID field carries the BFR-ID of the replying BFER.  This TLV
      MAY be included by the Responding BFER in the BIER Echo Reply packet.</dd>
          </dl>
        </section>
        <section anchor="sect-3.3.6" numbered="true" toc="default">
          <name>Responder BFR TLV</name>
          <t>
   Any transit BFR replying to the request MAY include the Responder BFR
   TLV in its BIER Echo Reply.  An Initiator MUST NOT include this TLV in Echo Request.
   This is used to identify the replying BFR without BFR-ID. This
   TLV has the following format:</t>
   <figure anchor="resp-bfd-tlv-fig">
   <name>The Responder BFR TLV Format</name>
   <artset>

          <artwork name="" type="ascii-art" align="left" alt="">
          <![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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     TLV Type = 6              |        Length = 8 or 20       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         Reserved              |          Address Type         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  ~                       BFR-Prefix (4 or 16 bytes)              ~
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
<artwork align="center" type="svg">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="528" viewBox="0 0 528 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,128" fill="none" stroke="black"/>
<path d="M 8,160 L 8,176" fill="none" stroke="black"/>
<path d="M 264,48 L 264,112" fill="none" stroke="black"/>
<path d="M 520,48 L 520,128" fill="none" stroke="black"/>
<path d="M 520,160 L 520,176" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,176 L 520,176" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="100" y="68">TLV Type = 6</text>
<text x="396" y="68">Length = 8 or 20</text>
<text x="116" y="100">Reserved</text>
<text x="396" y="100">Address Type</text>
<text x="8" y="148">~</text>
<text x="300" y="148">BFR-Prefix (4 or 16 bytes)</text>
<text x="520" y="148">~</text>
</g>
</svg>
</artwork>

   </artset>
</figure>

          <dl newline="false" spacing="normal" indent="3">
          <dt>Length</dt>
          <dd>The Length field, depending on the Address Type value - 8 or 20.</dd>
          <dt>Reserved</dt>
          <dd>A two-octet field. The value MUST be zeroed on transmission and ignored on receipt.</dd>
          <dt>Address Type</dt>
          <dd>A two-octet field. Set to 1 for IPv4 or 2 for IPv6.</dd>
            <dt>BFR-Prefix</dt>
            <dd>
      This field carries the local BFR-Prefix of the replying BFR.  This
      TLV MAY be included by Responding BFR in BIER Echo Reply packet.</dd>
          </dl>
        </section>
        <section anchor="sect-3.3.7" numbered="true" toc="default">
          <name>Ingress Interface TLV</name>
          <t>
   The BFR replying to the request MUST include the Ingress Interface
   TLV.  This TLV identifies the incoming interface on which the Echo Request was received.
   This TLV has the following format:</t>
   <figure anchor="upstr-intf-tlv-fig">
   <name>The Ingress Interface TLV Format</name>
   <artset>

          <artwork name="" type="ascii-art" align="center" alt="">
          <![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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     TLV Type = 7              |        Length = 8 or 20       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         Reserved              |          Address Type         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  ~           Ingress Interface Address (4 or 16 bytes)           ~
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
</artwork>
<artwork align="center" type="svg">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="528" viewBox="0 0 528 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,128" fill="none" stroke="black"/>
<path d="M 8,160 L 8,176" fill="none" stroke="black"/>
<path d="M 264,48 L 264,112" fill="none" stroke="black"/>
<path d="M 520,48 L 520,128" fill="none" stroke="black"/>
<path d="M 520,160 L 520,176" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,176 L 520,176" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="100" y="68">TLV Type = 7</text>
<text x="396" y="68">Length = 8 or 20</text>
<text x="116" y="100">Reserved</text>
<text x="396" y="100">Address Type</text>
<text x="8" y="148">~</text>
<text x="264" y="148">Ingress Interface Address (4 or 16 bytes)</text>
<text x="520" y="148">~</text>
</g>
</svg>

</artwork>

   </artset>
</figure>

          <dl newline="false" spacing="normal" indent="3">
          <dt>Length</dt>
          <dd>The Length field, depending on the Address Type value - 8 or 20.</dd>
            <dt>Reserved</dt>
          <dd>A two-octet field. The value MUST be zeroed on transmission and ignored on receipt.</dd>
            <dt>Address Type</dt>
            <dd>
      A two-octet field. Set to 1 for IPv4 Numbered, 2 for IPv4 Unnumbered, 3 for IPv6 Global Unicast Address (including Unique Local Address), or 4 for IPv6 Link-Local Address Only.
     </dd>
          </dl>
          <dl newline="true" spacing="normal" indent="3">
            <dt>Ingress Interface Address</dt>
            <dd>
	A four or sixteen-octet-long field. It lists an address associated with the interface on which the BIER Echo Request received.
            </dd>
          </dl>
        </section>

        <section anchor="sect-3.3.8" numbered="true" toc="default">
          <name>Erroneous Echo Request TLV</name>
          <t>
   The BFER replying to the request MAY include the Erroneous Echo Request TLV.
   This TLV provides information about the type and location of the problem in the BIER Echo Request.
   This TLV has the following format:</t>
   <figure anchor="erroneous-tlv-fig">
   <name>The Erroneous Echo Request TLV Format</name>
   <artset>
   
          <artwork name="" type="ascii-art" align="center" alt="">
          <![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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         Type = 8              |       Length = variable       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                               Pointer                         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |             As much of invoking BIER Echo Request             |
  ~            as possible without exceeding path MTU             ~
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
]]>
</artwork>
<artwork align="center" type="svg">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="528" viewBox="0 0 528 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,128" fill="none" stroke="black"/>
<path d="M 8,160 L 8,176" fill="none" stroke="black"/>
<path d="M 264,48 L 264,80" fill="none" stroke="black"/>
<path d="M 520,48 L 520,128" fill="none" stroke="black"/>
<path d="M 520,160 L 520,176" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,176 L 520,176" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="264" y="36">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</text>
<text x="116" y="68">Type = 8</text>
<text x="392" y="68">Length = variable</text>
<text x="288" y="100">Pointer</text>
<text x="264" y="132">As much of invoking BIER Echo Request</text>
<text x="8" y="148">~</text>
<text x="260" y="148">as possible without exceeding path MTU</text>
<text x="520" y="148">~</text>
</g>
</svg>

</artwork>
   </artset>
</figure>

          <dl newline="false" spacing="normal" indent="3">
          <dt>Pointer</dt>
          <dd>A four-octet field that identifies the octet offset within the
                  received BIER Echo Request message where the error was detected. 
                  The Pointer will point beyond the end of the BIER Echo Reply message
                  if the field in error is beyond what can fit in the resulting packet.</dd>
          </dl>
        </section>

      </section>
    </section>
    
    <section anchor="sect-4" numbered="true" toc="default">
      <name>BIER Ping and Traceroute Operations</name>
      <t>
   This section describes aspects of BIER ping and traceroute operations.</t>
      <section anchor="sect-4.1" numbered="true" toc="default">
        <name>BIER OAM Processing</name>
        <t>
   A BIER OAM packet MUST be punted to the BIER control plane for OAM
   processing if one of the following conditions is true:</t>
        <ul spacing="normal">
          <li>The receiving BFR is a BFER.</li>
          <li>TTL of BIER-MPLS Label (Section 2.1.1.1 of <xref target="RFC8296"/>) expired.</li>
          <li>Hop Limit in the IPv6 header (Section 2 of <xref target="I-D.ietf-bier-bierin6"/>) expired.</li>
        </ul>
        <t>The use of the Router Alert label has been deprecated by <xref target="RFC9570"/>.</t>
        <t>Processing of the received BIER OAM packet with unknown value of the Message Type field (<xref target="bier-hdr-fig"/>)
        is stopped and the event MUST be logged although through the rate-controlling system.</t>
        <t>A transit BFR, i.e., one that does not punt the BIER OAM packet to the BIER control plane,
        forwards the BIER OAM packet according to the rules specified in Section 6.5 of <xref target="RFC8279"/>.
        </t>
      </section>
      <section anchor="sect-4.2" numbered="true" toc="default">
        <name>BFER ECMP Discovery Within a BIER Domain with MPLS Underlay</name>
        <t>
   As defined in <xref target="RFC8279" format="default"/>, BIER follows the unicast forwarding path and
   allows load balancing over ECMP paths between BFIR and BFER.  BIER
   OAM is expected to support ECMP path discovery between a BFIR and a given BFER
   and MUST support path validation and failure detection of any
   particular ECMP path between BFIR and BFER.</t>
        <t>
   <xref target="RFC8296" format="default"/> proposes the BIER header with the Entropy field that can be
   leveraged to exercise all ECMP paths.  The Initiator/BFIR will use
   a traceroute message to query each hop about the Entropy information
   for each of the downstream paths.  To avoid complexity, it is
   suggested that the ECMP query is performed per BFER by carrying
   the required information in the BIER OAM message.</t>
        <t>
   When an operator performs BFER ECMP discovery within a BIER domain over MPLS underlay,
   the Initiator MUST include MPLS Multipath Entropy Data Sub-TLV in
   Downstream Mapping TLV. It MUST also include the BFER in the BitString
   TLV to which the Multipath query is performed.</t>
        <t>
   Any transit BFR will transmit the BIER Echo Reply to the Initiator
   with Bit-masked Entropy for each
   downstream path as defined in <xref target="RFC8029" format="default"/>.
   </t>
      </section>
      <section anchor="sect-4.3" numbered="true" toc="default">
        <name>Sending BIER Echo Request</name>
        <t>
   The Initiator MUST set the Message Type as 1 and Return Code as 0.
   The Proto field in the OAM packet MUST be set to 0. The choice of the
   Sender's Handle and Sequence Number is a local matter to the
   Initiator and the Initiator MUST monotonically increase the Sequence Number, e.g., increment it by one for every,
   subsequent Echo Request.  The QTF field is set to Initiator's local
   timestamp format, and the TimeStamp Sent field is set to the time that the
   Echo Request is sent.</t>
        <t>
   The Initiator MUST include Original SI-BitString TLV.  The Initiator
   MUST NOT include more than one Original SI-BitString TLV.  The
   Initiator infers the Set Identifier value and Sub-domain ID value
   from the respective BitString that will be included in the BIER
   header of the packet and includes the values in "SI" and Sub-Domain ID fields, respectively.</t>
        <t>
   In Ping mode, the Initiator MAY include Target SI-BitString TLV to
   control the responding BFER(s) by listing all the BFERs from which
   the Initiator expects a response.  In the traceroute mode, the
   Initiator MAY include Target SI-BitString TLV to control the path
   trace towards any specific BFER or set of BFERs.  The Initiator on
   receiving a reply with the Return code "Replying BFR is the only BFER in the header BitString"
   or "Replying router is one of the BFERs in header BitString" MUST unset the respective BFR-ID from
   Target SI-BitString for any subsequent Echo Request.</t>
        <t>
   The Initiator MAY include Downstream Mapping TLV (<xref target="sect-3.3.4"/>) in
   the Echo Request to query additional information from transit BFRs
   and BFERs.  In case of ECMP discovery within a BIER domain with the MPLS underlay, the Initiator MUST include the
   MPLS Multipath Entropy Data Sub-TLV and MUST set the Target SI-BitString
   TLV carrying a specific BFER ID.</t>
        <t>
   The Initiator MUST encapsulate the OAM packet with the BIER header and
   MUST set the Proto as 5 and further encapsulates with BIER-MPLS
   label.  In ping mode, the BIER-MPLS Label TTL MUST be set to 255.  In
   traceroute mode, the BIER-MPLS Label TTL is set successively, starting
   from 1 and MUST stop sending the Echo Request if it receives a reply
   with Return code as "Replying router is the only BFER in BIER header BitString" from all BFER listed in Target SI-BitString TLV.
   </t>
      </section>
      
      <section anchor="sect-4.4" numbered="true" toc="default">
        <name>Receiving BIER Echo Request</name>
        <t>
   Sending a BIER OAM Echo Request to control plane for payload
   processing is triggered as mentioned in <xref target="sect-4.1"/>.</t>
        <t>
    Any BFR on receiving an Echo Request MUST perform the basic sanity check,
    including, but not limited to, checking values of the fields with a priori known values,
    e.g., Ver, Type and Length if any TLV is present.
    If, at any stage of processing the received BIER Echo Request, the BFR encounters an error,
    it MUST stop processing and transmit BIER Echo Reply with the Return Code set accordingly.
   If the BFR cannot parse the OAM packet
   completely because the value in the OAM Message Length field is
   incorrect, BFR MUST send Echo Reply with Return Code set to
   "Malformed Echo Request received" if the OAM Message Length is
   incorrect. The Erroneous Echo Request TLV (<xref target="sect-3.3.8"/>) MUST be included
   in the BIER Echo Reply. If the packet sanity check is fine, it MUST initiate
   the below set of variables:</t>
        <dl newline="true" spacing="normal" indent="3">
          <dt>Reply-Flag</dt>
          <dd>
	This flag is initially set to 1.
	</dd>
          <dt>Interface-I</dt>
          <dd>
	The incoming interface on which the Echo Request was received.
      This MAY be used to validate the Downstream Detailed
      Mapping TLV (DDMAP) info and populate the Ingress Interface TLV.
	</dd>
          <dt>BIER-Label-L</dt>
          <dd>
	The BIER-MPLS Label received as the top label of the received Echo
      Request. This MAY be used to validate if the packet is traversing
      the desired Set Identifier and sub-domain path.
	</dd>
          <dt>Header-H</dt>
          <dd>
	The BIER header of the received Echo Request.  It can be used to
      validate the DDMAP info and to populate the Incoming SI-BitString
      TLV.  Also, it can be used to perform entropy calculation
      considering a different field in the header and replying with
      MPLS Multipath Entropy Data Sub-TLV.
	</dd>
	<dt>Best-return-code</dt>
	<dd>contains the Return Code for the echo reply
  packet as currently best known.  As the algorithm
  progresses, this code may change depending on the
  results of further checks that it performs.</dd>
        </dl>
        <t>
   BFR MUST initialize the internal, to the implementation, Best-return-code variable to the null value.</t>
        <t>
   BFR will populate the Interface-I with the identifier of the
   interface over which the Echo Request is received, the top label in
   the MPLS stack of the received Echo Request to BIER-Label-L, and the
   BIER header to Header-H.  If the received Echo Request carries
   Target SI-BitString TLV, a BFR MUST run the boolean AND operation
   between BitString in Header-H and BitString in Target SI-BitString
   TLV.  If the resulting BitString is all-zero, reset Reply-Flag=0 and
   go to <xref target="sect-4.5"/>.  Else:</t>
        <ul spacing="normal">
          <li>If the BIER-Label-L does not correspond to the local label
      assigned for {sub-domain, BitStringLen, SI} in Original SI-
      BitString TLV, Set the Best-return-code to "Set-Identifier Mismatch" and Go to <xref target="sect-4.5"/>.</li>
        </ul>
<t>
The step above allows the detection of a synchronization problem in the upstream BFR between
BIER-Label and {sub-domain, BitStringLen, SI} that might cause an unintended packet leak between sub-domains.
</t>

        <ul spacing="normal">
        <li>
        If the value in the Return Mode field is unknown, the Receiver MUST set Reply-Flag=0 and go to <xref target="sect-4.5"/>.
        </li>
        <li>
        The Receiver sets the Best-return-code to"Malformed Echo Request received" if the value of the QTF field is neither 2, nor 3.
         Also, the Erroneous Echo Request TLV (<xref target="sect-3.3.8"/>) MUST be included in the BIER Echo Reply.
         Go to <xref target="sect-4.5"/>.
        </li>

          <li>Set the Best-return-code to "One or more of the TLVs is not supported" if any of the TLVs in the Echo Request message is not
      supported.  Go to <xref target="sect-4.5"/>.</li>
          <li>If the BitString in Header-H does not match the BitString in
      Egress BitString Sub-TLV of DDMAP TLV, set the Best-return-code to
      "DDMAP Mismatch" and go to <xref target="sect-4.5"/>.  When there are more than
      one DDMAP TLV in the received Request packet, the Downstream
      Address and Downstream Interface Address should be matched with
      Interface-I to identify the right DDMAP TLV and then perform the
      BitString match.</li>
        </ul>
        <t>
        The step above allows the detection of a deviation between the BIER control plane and the BIER
        forwarding plane in the upstream node that may result in a forwarding loop or packet duplication.
        </t>

        <ul spacing="normal">
          <li>Set the Best-return-code to "Invalid Multipath Info Request", when
      the DDMAP TLV carries MPLS Multipath Entropy Data Sub-TLV, and if the
      Target SI-BitString TLV in the received Echo Request carries more
      than 1 BFER id.  Go to <xref target="sect-4.5"/>. Else, list the ECMP
      downstream neighbors to reach BFR-ID in Target SI-BitString TLV,
      calculate the Entropy considering the BitString in Header-H and
      MPLS Multipath Entropy Data Sub-TLV from received Echo Request.  Store
      the Data for each Downstream interface in a temporary variable.
      Set the Best-return-code to 5 (Packet-Forward-Success) and goto
      <xref target="sect-4.5" format="default"/>
          </li>
        </ul>
        <t>
           This step instructs the node to calculate the Entropy Data for each
      downstream interface to reach the BFER in Target SI-BitString
      TLV by considering the incoming BitString and Entropy Data.
      </t>

        <ul spacing="normal">
          <li>Set the Best-return-code to "Replying router is the only BFER
          in BIER header BitString", and go to <xref target="sect-4.5"/> if the responder is
      BFER and there are no more bits in the BIER header BitString left for
      forwarding.</li>
          <li>Set the Best-return-code to "Replying router is one of the BFERs in BIER header BitString", and include Downstream Mapping TLV if the
      responder is BFER and there are more bits in BitString left for
      forwarding.  Also, include the Multipath information as defined in
      <xref target="sect-4.2" format="default"/> if the received Echo Request carries Multipath Entropy
      Data Sub-TLV.  Go to <xref target="sect-4.5"/>.</li>
          <li>Set the Best-return-code to "No matching entry in the forwarding table", if the forwarding lookup, defined in Section 6.5 of
      <xref target="RFC8279" format="default"/> does not match any entry for the received BitString in
      BIER header.</li>
        </ul>
        <t>
           The step above allows the detection of the missing BFR-ID in the node's BIER forwarding table.
           It is difficult to detect the absence of the BFR-ID if the Request includes more than one BFR-IDs in
           the BitString and so may need to include the BFER-id that is not responding to detect such failure.
      </t>

        <ul spacing="normal">
          <li>Set the Best-return-code to "Packet-Forward-Success", and include
      Downstream Mapping TLV.  Go to <xref target="sect-4.5"/>.</li>
        </ul>
      </section>
      <section anchor="sect-4.5" numbered="true" toc="default">
        <name>Sending Echo Reply</name>
        <t>
   If Reply-Flag=0, BFR MUST release the variables and MUST NOT send any
   response to the Initiator.  If Reply-Flag=1, proceed as below:</t>
        <t>
   The Responder BFR MUST include the BitString from Header-H to
   Incoming SI-BitString TLV and include the Set ID, Sub-domain ID and
   BS Len that corresponds to BIER-Label-L.  Responder BFR MUST
   include the Ingress Interface TLV and populate the address from
   Interface-I.</t>
        <t>
   When the Best-return-code is "Replying BFR is one of the BFERs in header BitString", it MUST include Responder BFER TLV.</t>
        <dl newline="false" spacing="normal" indent="3">
          <dt/>
          <dd>
      If the received Echo Request had DDMAP with Multipath Entropy Data
      Sub-TLV, Responder BFR MUST include DDMAP as defined in
      <xref target="sect-3.3.4" format="default"/> for each outgoing interface over which the packet
      will be replicated and include the respective Multipath Entropy
      Data Sub-TLV.  For each outgoing interface, the respective Egress
      BitString MUST be included in DDMAP TLV.</dd>
        </dl>
        <dl newline="false" spacing="normal" indent="3">
          <dt/>
          <dd>
      If the received Echo Request had DDMAP without Multipath Entropy
      Data Sub-TLV, Responder BFR MUST include DDMAP as defined in
      <xref target="sect-3.3.4" format="default"/> for each outgoing interface over which the packet
      will be replicated.  For each outgoing interface, respective
      Egress BitString MUST be included in DDMAP TLV.</dd>
        </dl>
        <t>
   When the Best-return-code is "Replying BFR is the only BFER in header BitString", it MUST include Responder BFER TLV.</t>
        <t>
   The Responder MUST set the Message Type as 2 and Return Code as Best-
   return-code.  The Proto field MUST be set to 0.</t>
        <t>
   The Echo Reply can be sent as BIER-encapsulated, or IP/UDP
   encapsulated, depending on the Reply Mode in the received Echo Request.
   When the Reply Mode in the received Echo Request is set to 3, Responder
   appends the BIER header listing the BitString with BFIR ID (from Header-H),
   sets the Proto to 5, and sets the BFIR as 0.  When the Reply Mode in
   the received Echo Request is set to 2, Responder encapsulates with the IP/UDP
   header.  The UDP destination port MUST be set to TBD1 (<xref target="iana-udp-port"/>), and the source
   port MAY be set to TBD1 or other value selected from the Dynamic range of port numbers. The source IP address
   is any non-link-local address associated with the responder, and the destination IP address is derived
   from the BFIR-id of the BIER header <xref target="RFC8296"/> in the received Echo Request.</t>
      </section>
      <section anchor="sect-4.6" numbered="true" toc="default">
        <name>Receiving Echo Reply</name>
        <t>
   The Initiator, upon receiving the Echo Reply, will use the Sender's
   Handle to match with Echo Request sent.  If no match is found, the
   Initiator MUST ignore the Echo Reply.</t>
        <t>
   If receiving Echo Reply has Downstream Mapping, the Initiator MUST
   copy the same to subsequent Echo Request(s).</t>
        <t>
   If one of the Echo Reply is received with Return Code as "Replying BFR is one of the BFERs in header BitString", it SHOULD reset the BFR-ID
   of the responder from Target SI-BisString TLV in subsequent Echo
   Request. This step helps avoid any BFR that is both BFER and transit BFR to respond with Echo Reply continuously.
   </t>
      </section>
    </section>
    <section anchor="sect-5" numbered="true" toc="default">
      <name>IANA Considerations</name>
        <t>
      The terms used in the IANA Considerations below are intended to be consistent with <xref target="RFC8126"/>.
      </t>
         <section anchor="iana-udp-port" numbered="true" toc="default">
<name>UDP Port Number</name>
      <t>
   This document requests a UDP port TBD1 to be allocated by IANA for
   BIER Echo.</t>
      <t>Service Name bier-echo</t>
      <t>Transport Protocol UDP, TCP</t>
      <t>Assignee IESG iesg@ietf.org</t>
      <t>Contact IETF Chair chair@ietf.org</t>
      <t>Description The UDP destination port number for the IP/UDP encapsulated BIER Echo Reply message.</t>
      <t>Reference This document</t>
      <t>Port Number TBD1</t>
   </section>
   
         <section anchor="sect-5.1" numbered="true" toc="default">
        <name>BIER OAM as BIER NEXT Protocol</name>
        <t>IANA is requested to update  the BIER Next Protocol Identifiers registry as follows:</t>
       <table anchor="iana-bier-oam-protocol-tbl" align="center">
          <name>BIER OAM as BIER Next Protocol</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="center">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">5</td>
              <td align="center">OAM Packet</td>
              <td align="left">This document</td>
            </tr>
</tbody>
</table>
        </section>
        
      <section anchor="sect-5.1.2" numbered="true" toc="default">
        <name>BIER OAM Registry Group</name>
        <t>
   IANA is requested to create and maintain the "BIER OAM" registry group containing the registries listed below.</t>
      </section>
      
       <section anchor="iana-bier-oam-msg-type" numbered="true" toc="default">
        <name>BIER OAM Message Type</name>
        <t>
     IANA is requested to create in the BIER OAM Message Type registry in the BIER OAM registry group as follows:
    </t>
                    <ul empty="true" spacing="normal">
        <li>Registry Name: BIER OAM Message Type.</li>
        <li>Assignment Policy:</li>
        <li>0-58 - IETF Review</li>
        <li>59 - 61 - Experimental Use (Reserved, not to be assigned)</li>
        <li>62 - 63 - Private Use (Reserved, not to be assigned)</li>
        </ul>

        <table anchor="iana-sfc-header-type-tbl" align="center">
          <name>BIER OAM Message Type</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="center">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="center">Reserved</td>
              <td align="left">This document</td>
            </tr>
              <tr>
              <td align="left">1</td>
              <td align="center">BIER Echo Request/Echo Reply</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">2 - 58</td>
              <td align="center">Unassigned</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">59 - 61</td>
              <td align="center">Reserved for Experimental Use</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">62 - 63</td>
              <td align="center">Reserved for Private Use</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
 </section>
 
     <section anchor="iana-echo-ping-parameters" numbered="true" toc="default">
        <name>BIER Echo Request/Echo Reply Registries</name>
        <t>
  IANA is requested to create three BIER Echo Request/Echo Reply registries in the BIER OAM registry group, as described below.
        </t>
       <section anchor="iana-bier-echo-message-type" numbered="true" toc="default">
        <name>BIER Echo Request/Echo Reply Message Types</name>
          <t>
    IANA is requested to create in the in the BIER OAM registry group the BIER Echo Request/Echo Reply Message Types registry as follows:
    </t>
        <ul empty="true" spacing="normal">
        <li>Registry Name: BIER Echo Request/Echo Reply Message Types</li>
        <li>Assignment Policy:</li>
        <li>0 - 247 - IETF Review</li>
        <li>248 - 251 - Experimental Use (Reserved, not to be assigned)</li>
        <li>252 - 255 - Private Use (Reserved, not to be assigned)</li>
        </ul>
        
        <table anchor="iana-bier-msg-type-tbl" align="center">
          <name>BIER Echo Request/Echo Reply Message Types</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="center">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="center">Reserved</td>
              <td align="left">This document</td>
            </tr>
             <tr>
              <td align="left">1</td>
              <td align="center">BIER Echo Request</td>
              <td align="left">This&nbsp;document</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="center">BIER Echo Reply</td>
              <td align="left">This&nbsp;document</td>
            </tr>

            <tr>
              <td align="left">3 - 175</td>
              <td align="center">Unassigned</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">176 - 247</td>
              <td align="center">Unassigned</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">248-251</td>
              <td align="center">Reserved for Experimental Use</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">252-255</td>
              <td align="center">Reserved for Private Use</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>

      <section anchor="iana-bier-ping-reply-mode" numbered="true" toc="default">
        <name>BIER Echo Reply Modes</name>
          <t>
    IANA is requested to create in the BIER OAM registry group the new BIER Echo Reply Mode registry as follows:
    </t>
        <ul empty="true" spacing="normal">
        <li>Registry Name: BIER Echo Reply Mode</li>
        <li>Assignment Policy:</li>
        <li>0 - 247 - IETF Review</li>
        <li>248 - 251 - Experimental Use (Reserved, not to be assigned)</li>
        <li>252 - 255 - Private Use (Reserved, not to be assigned)</li>
        </ul>
        
        <table anchor="iana-sfc-reply-modes-tbl" align="center">
          <name>BIER Echo Reply Modes</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="center">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="center">Reserved</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="center">Do Not Reply</td>
              <td align="left">This&nbsp;document</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="center">Reply via an IPv4/IPv6 UDP Packet</td>
              <td align="left">This&nbsp;document</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="center">Reply via BIER packet</td>
              <td align="left">This&nbsp;document</td>
            </tr>
            <tr>
              <td align="left">4 - 191</td>
              <td align="center">Unassigned</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">192 - 247</td>
              <td align="center">Unassigned</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">248-251</td>
              <td align="center">Reserved for Experimental Use</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">252-255</td>
              <td align="center">Reserved for Private Use</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>

      <section anchor="iana-bier-ping-return-codes" numbered="true" toc="default">
        <name>BIER Echo Return Codes</name>
   <t>
    IANA is requested to create in the BIER OAM registry group the new BIER Echo Return Codes registry as follows:
    </t>
        <ul empty="true" spacing="normal">
        <li>Registry Name: BIER Echo Return Codes</li>
        <li>Assignment Policy:</li>
        <li>0 - 247 - IETF Review</li>
        <li>248 - 251 - Experimental Use (Reserved, not to be assigned)</li>
        <li>252 - 255 - Private Use (Reserved, not to be assigned)</li>
        </ul>
        
        <table anchor="iana-bier-ping-return-codes-tbl" align="center">
          <name>BIER Echo Return Codes</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="center">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="center">No Return Code</td>
              <td align="left">This document</td>
            </tr>
                     <tr>
              <td align="left">1</td>
              <td align="center">Malformed Echo Request received</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="center">One or more of the TLVs is not supported</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="center">Replying BFR is the only BFER in header BitString</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="center">Replying BFR is one of the BFERs in header BitString</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="center">Packet-Forward-Success</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">6&nbsp;</td>
              <td align="left">Invalid Multipath Info Request</td>
              <td align="left">This&nbsp;document</td>
            </tr>
              <tr>
              <td align="left">7</td>
              <td align="center">Unassigned</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">8&nbsp;</td>
              <td align="left">No matching entry in the forwarding table</td>
              <td align="left">This&nbsp;document</td>
            </tr>
            <tr>
              <td align="left">9&nbsp;</td>
              <td align="left">Set-Identifier Mismatch</td>
              <td align="left">This&nbsp;document</td>
            </tr>
            <tr>
              <td align="left">10&nbsp;</td>
              <td align="left">DDMAP Mismatch</td>
              <td align="left">This&nbsp;document</td>
            </tr>
            <tr>
              <td align="left">11 - 247</td>
              <td align="center">Unassigned</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">248-251</td>
              <td align="center">Reserved for Experimental Use</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">252-255</td>
              <td align="center">Reserved for Private Use</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
      </section>
      </section>
      
  <section anchor="sect-5.5" numbered="true" toc="default">
        <name>Common Registration Procedures for TLVs and Sub-TLVs</name>
        <t>
This section describes registration procedures for Type registries in BIER Echo Request/Reply TLVs and sub-TLVs.
        </t>

           <table anchor="iana-bier-assign-tlvs-tbl" align="center">
          <name>TLVs</name>
          <thead>
            <tr>
              <th align="left">Range</th>
              <th align="left">Registration Procedures</th>
              <th align="left">Note</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0-16383</td>
              <td align="left">Standards Action</td>
              <td align="left">This range is for TLVs and sub-TLVs that require an error message if not recognized.</td>
            </tr>
            <tr>
              <td align="left">16384-31739</td>
              <td align="left">RFC Required</td>
              <td align="left">This range is for TLVs and sub-TLVs that require an error message if not recognized.</td>
            </tr>
            <tr>
              <td align="left">31740-31743</td>
              <td align="left">Experimental Use</td>
              <td align="left">Not to be assigned.</td>
            </tr>
            <tr>
              <td align="left">31744-32767</td>
              <td align="left">First Come, First Served</td>
              <td align="left">This range is for TLVs and sub-TLVs that require an error message if not recognized.</td>
            </tr>
            <tr>
              <td align="left">32768-49161</td>
              <td align="left">Standards Action</td>
              <td align="left">This range is for TLVs and sub-TLVs that can be silently dropped if not recognized.</td>
            </tr>
            <tr>
              <td align="left">49162-64507</td>
              <td align="left">RFC Required</td>
              <td align="left">This range is for TLVs and sub-TLVs that can be silently dropped if not recognized.</td>
            </tr>
            <tr>
              <td align="left">64508-64511</td>
              <td align="left">Experimental Use</td>
              <td align="left">Not to be assigned.</td>
            </tr>
            <tr>
              <td align="left">64512-65535</td>
              <td align="left">First Come, First Served</td>
              <td align="left">This range is for TLVs and sub-TLVs that can be silently dropped if not recognized.</td>
            </tr>
            </tbody>
            </table>

      <section anchor="sect-5.5.0" numbered="true" toc="default">
        <name>TLVs</name>
        <t>
           IANA is requested to create in the BIER OAM registry group a registry for the Type field
           of top-level TLVs. as well as sub-registries for the associated sub-TLVs. Note that the
   meaning of a sub-TLV is scoped by the TLV.  The number of spaces for the
   sub-TLVs of various TLVs is independent.
</t>
       <ul empty="true" spacing="normal">
        <li>Registry Name: TLVs</li>
        <li>Assignment Policy: <xref target="sect-5.5"/></li>
        </ul>
<!--
<t>
   The valid range for TLVs and sub-TLVs is 0-65535.  Assignments in the
   ranges 0-16383 and 32768-49161 are made via Standards Action as
   defined in <xref target="RFC8126"/>; assignments in the ranges 16384-31743 and
   49162-64511 are made via "Specification Required"; values in the
   ranges 31744-32767 and 64512-65535 are for Private Use and
   MUST NOT be allocated.
</t>
-->
        <t>
The TLVs requested by this document for the IANA
   consideration are listed in <xref target="iana-bier-ping-tlvs-tbl"/>.
   </t>
   
           <table anchor="iana-bier-ping-tlvs-tbl" align="center">
          <name>TLVs</name>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="center">TLV Name</th>
              <th align="left">Reference</th>
              <th align="left">Sub-TLV Registry</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="center">Reserved</td>
              <td align="left">This document</td>
              <td/>
            </tr>
              <tr>
              <td align="left">1</td>
              <td align="center">Original SI-BitString</td>
              <td align="left">This document</td>
              <td align="left">No Sub-TLVs</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="center">Target SI-BitString</td>
              <td align="left">This document</td>
              <td align="left">No Sub-TLVs</td>
            </tr>
            <tr>
             <td align="left">3</td>
              <td align="center">Incoming SI-BitString</td>
              <td align="left">This document</td>
              <td align="left">No Sub-TLVs</td>
            </tr>
            <tr>
             <td align="left">4</td>
              <td align="center">Downstream Mapping</td>
              <td align="left">This document</td>
              <td align="left">Link the Sub-TLVs for TLV Type 4 sub-registry</td>
            </tr>
            <tr>
             <td align="left">5</td>
              <td align="center">Responder BFER</td>
              <td align="left">This document</td>
              <td align="left">No Sub-TLVs</td>
            </tr>
            <tr>
             <td align="left">6</td>
              <td align="center">Responder BFR</td>
              <td align="left">This document</td>
              <td align="left">No Sub-TLVs</td>
            </tr>
            <tr>
             <td align="left">7</td>
              <td align="center">Ingress Interface</td>
              <td align="left">This document</td>
              <td align="left">No Sub-TLVs</td>
            </tr>
            </tbody>
            </table>
            
</section>

      <section anchor="sect-5.5.1" numbered="true" toc="default">
        <name>Sub-TLVs for TLV Type 4</name>
        <t>
           IANA is requested to create in the registry for the Type 4 (Downstream Mapping)
           a sub-registry Sub-TLVs for Type 4.
</t>
       <ul empty="true" spacing="normal">
        <li>Registry Name: Sub-TLVs for Type 4</li>
        <li>Assignment Policy: <xref target="sect-5.5"/></li>
        </ul>

           <table anchor="iana-bier-ping-sub-tlvs-tbl" align="center">
          <name>TLVs</name>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="center">Sub-TLV Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="center">Reserved</td>
              <td align="left">This document</td>
            </tr>
              <tr>
              <td align="left">1</td>
              <td align="center">MPLS Multipath Entropy Data</td>
              <td align="left">This document</td>
            </tr>
              <tr>
              <td align="left">2</td>
              <td align="center">Egress BitString</td>
              <td align="left">This document</td>
            </tr>
            </tbody>
            </table>
        </section>

</section>
      </section>

    <section anchor="sect-6" numbered="true" toc="default">
      <name>Security Considerations</name>
   <t>
   The security considerations of <xref target="RFC8296"/>, and through it of <xref target="RFC8279"/>, apply to this specification.
   </t> 
    <t>
   The security considerations for BIER Ping are similar to ICMP <xref target="RFC0792"/>, ICMPv6 <xref target="RFC4443"/>, and LSP
   Ping <xref target="RFC8029"/>, <xref target="RFC6425"/>.  As with ICMP or LSP Ping, BFR
   can be exposed to Denial-of-Service (DoS) attacks, and it is RECOMMENDED to regulate the BIER
   Ping packet flow to the control plane.  A rate limiter SHOULD be
   applied to avoid any attack. Specifically, a rate limiter SHOULD be applied to the well-known UDP port
   defined in <xref target="iana-udp-port"/>. Although using BIER Echo Request in a DoS amplification attack is
   theoretically possible, spoofing BFIR ID in the BIER Header presents itself as a serious challenge.
   As a result, this threat is not a big concern.</t>
  <t>
   As with ICMP or LSP Ping, a traceroute can be used to obtain network
   information. It is RECOMMENDED that the implementation checks the
   integrity of BFIR of the Echo messages against any locally secured list
   before processing the message further.
   </t>
   <t>In some BIER environments, transmitting a single BIER Echo Request message can result
   in the sender receiving an overwhelming number of BIER Echo Reply messages. In that case,
   an operator MAY choose to address the BIER Echo Request to a subset of BFERs rather than
   to all BFERs in the domain.</t>
    </section>
    
    <section anchor="sect-7" numbered="true" toc="default">
      <name>Acknowledgement</name>
      <t>
   The authors would like to thank Antoni Przygienda, Eric Rosen, Faisal
   Iqbal, Jeffrey (Zhaohui) Zhang, and Shell Nakash for their review and
   comments.</t>
      <t>
   The authors would like to thank Mankamana Mishra for his thorough
   review and comments.</t>
    </section>
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5905.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8029.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8279.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8296.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6425.xml"/>
       <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
<reference anchor="IEEE.1588.2008">
<front>
<title>Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems</title>
<author>
<organization/>
</author>
<date month="March" year="2008"/>
</front>
<seriesInfo name="IEEE" value="Standard 1588"/>
</reference> 
      
<reference anchor="IANA-Next-Protocol-Identifiers" target="https://www.iana.org/assignments/bier/bier.xhtml#bier-next-protocol-identifiers">
        <front>
            <title>IANA BIER Next Protocol Identifiers Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
  
      </references>
      
      <references>
        <name>Informative References</name>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.0792.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4443.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9326.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9570.xml"/>
      <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-bier-oam-requirements.xml"/>
      <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-bier-bierin6.xml"/>

      </references>
    </references>
    
    <section anchor="contr-sec" numbered="false" toc="default">
        <name>Contributors' Addresses</name>
    <author initials="N." surname="Akiya" fullname="Nobo Akiya">
      <organization>Big Switch Networks</organization>
      <address>
        <postal>
          <street>Japan</street>
        </postal>
        <email>nobo.akiya.dev@gmail.com</email>
      </address>
    </author>
    <author initials="L." surname="Zheng" fullname="Lianshu Zheng">
      <organization>Individual Contributor</organization>
      <address>
        <postal>
          <street>China</street>
        </postal>
        <email>veronique_cheng@hotmail.com</email>
      </address>
    </author>
 </section>
  </back>
</rfc>
