<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-geng-grow-bmp-monitor-options-00"
     ipr="trust200902">
  <front>
    <title abbrev="BMP Monitoring Options">BMP Extension for Monitoring
    Options (MO) Notification</title>

    <author fullname="Nan Geng" initials="N." surname="Geng">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>gengnan@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Shunwan Zhuang" initials="S." surname="Zhuang">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>zhuangshunwan@huawei.com</email>

        <uri/>
      </address>
    </author>

    <date day="30" month="September" year="2026"/>

    <area>Ops &amp; Mgmt Area</area>

    <workgroup>GROW</workgroup>

    <keyword>RIB View Synchronization</keyword>

    <keyword>Draft</keyword>

    <abstract>
      <t>The BGP Monitoring Protocol (BMP) allows routers to export BGP RIB
      data and statistics to external collectors. However, dynamic changes to
      a router's monitoring configuration&mdash;such as disabling specific
      Address Families or statistic counters&mdash;are not explicitly signaled
      to the collector. Consequently, collectors cannot distinguish between a
      quiescent BGP state and a disabled monitoring feed, leading to data
      staleness and database pollution.</t>

      <t>This document defines a new BMP message type, the BMP Monitoring
      Options (MO) message. It allows a BMP Sender to explicitly notify
      collectors of active, disabled, or dynamically altered reporting
      configurations across RIB types and statistics streams.</t>

      <t/>
    </abstract>

    <note title="Requirements Language">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in BCP 14
      <xref target="RFC2119"/><xref target="RFC8174"/> when, and only when,
      they appear in all capitals, as shown here.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>Modern networks frequently adjust BMP telemetry parameters based on
      network load, operational focus, or troubleshooting needs. For instance,
      an operator may dynamically disable Adj-RIB-Out reporting or stop
      monitoring specific VPN address families via router CLI.</t>

      <t>Under <xref target="RFC7854"/>, BMP provides no in-band mechanism for
      a sender to signal configuration changes to a collector. When an address
      family's monitoring is disabled on the router, the sender simply stops
      sending BMP messages for that family. The collector cannot determine
      whether no updates are occurring or if the stream was administratively
      disabled. As a result, stored RIB views become stale and invalid.</t>

      <t>This document defines the BMP Monitoring Options (MO) message (Type
      TBD2). This message explicitly signals enabled or disabled state for RIB
      address families and statistic types, ensuring real-time database
      hygiene on the collector.</t>

      <t/>
    </section>

    <section title="Terminology">
      <t><list style="symbols">
          <t>MO: Monitoring Options</t>
        </list></t>
    </section>

    <section title="BMP Monitoring Options Message Structure">
      <t>The BMP Monitoring Options message (Type TBD2) follows the Common BMP
      Header and optional Per-Peer Header. Two distinct PDU formats are
      defined: RIB Options PDU and Statistics Options PDU.</t>

      <t/>

      <section title="RIB Options PDU Format">
        <t/>

        <t><figure>
            <artwork><![CDATA[ 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Type              |            SubType            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Flags             |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             AFI 1             |   Reserved    |     SAFI 1    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               ...                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             AFI n             |   Reserved    |     SAFI n    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Figure 1: BMP RIB Monitoring Options PDU
      ]]></artwork>
          </figure>Fields:</t>

        <t><list style="symbols">
            <t>Type (2 octets):<list style="symbols">
                <t>1: Adj-RIB-In</t>

                <t>2: Adj-RIB-Out</t>

                <t>3: Loc-RIB</t>
              </list></t>

            <t>SubType (2 octets):<list style="symbols">
                <t>1: Pre-Policy</t>

                <t>2: Post-Policy</t>
              </list></t>

            <t>Flags (2 octets):<list style="symbols">
                <t>Bit 15 (LSB): Enable/Disable Flag. 1 = Options Enabled, 0 =
                Options Disabled.</t>

                <t>Bits 0-14: Reserved for future expansion (MUST be 0).</t>
              </list></t>

            <t>Length (2 octets): Total length of the trailing (AFI, SAFI)
            list.</t>
          </list></t>

        <t/>
      </section>

      <section title="Stats Options PDU Format">
        <t/>

        <t><figure>
            <artwork><![CDATA[ 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Type              |            Flags              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Length            |          Stat Type 1          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Stat Type 2          |              ...              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

              Figure 2: BMP Stats Monitoring Options PDU
      ]]></artwork>
          </figure>Fields:</t>

        <t><list style="symbols">
            <t>Type (2 octets): MUST be 4 (Stats).</t>

            <t>Flags (2 octets): LSB indicates Enable (1) or Disable (0).</t>

            <t>Length (2 octets): Length of trailing Stat Type IDs <xref
            target="RFC7854"/>.</t>
          </list></t>

        <t/>
      </section>
    </section>

    <section title="Operational Workflow">
      <t/>

      <section title="Initial Capabilities Exchange &amp; Administrative State Change">
        <t>Upon establishing a BMP session, the sender SHOULD transmit an
        initial MO message enumerating all currently active monitoring
        options.</t>

        <t>When an operator disables monitoring for a specific family (e.g.,
        AFI=1, SAFI=2) via CLI:</t>

        <t><list style="numbers">
            <t>The BMP Sender MUST immediately transmit an MO Message with
            Type=Adj-RIB-In, LSB(Flags)=0, and payload=(AFI=1, SAFI=2).</t>

            <t>Upon receipt, the Collector MUST immediately purge all stored
            RIB entries associated with that disabled &lt;Peer, AFI, SAFI&gt;
            view.</t>
          </list></t>

        <t/>
      </section>

      <section title="Example Usage of BMP Monitoring Options Messages">
        <t>Consider a topology where a BGP session is established between
        Router1 and Router2. Three address families are enabled on both BGP
        speakers: IPv4 Unicast (AFI=1, SAFI=1), IPv4 Multicast (AFI=1,
        SAFI=2), and IPv4 Labeled Unicast (AFI=1, SAFI=4). Router1 acts as the
        BMP Sender streaming data to the BMP Collector.</t>

        <t><figure>
            <artwork><![CDATA[ BMP Collector
       |
       |
       |                 BGP Session
    Router1 (BMP Sender) ------------ Router2

           Figure 3: Topology Example for BMP MO
      ]]></artwork>
          </figure>1. Initial Export Sequence:</t>

        <t>Upon initializing the BMP session, the BMP Sender exports initial
        Route Monitoring messages for all three active address families.</t>

        <t><figure>
            <artwork><![CDATA[ BMP Sender                               BMP Collector
  ~                                           ~
  |---------------- Initial Export ---------->| Sender sends Route
  |                                           | Monitoring messages for
  |                                           | IPv4 Unicast, Multicast,
  |                                           | and Labeled Unicast
  |                                           |
  |                                           | Collector stores RIB info
  |                                           | for all three families

        Figure 4: Initial Route Monitoring Export Sequence
      ]]></artwork>
          </figure>2. Disabling Monitoring Options:</t>

        <t>When an operator dynamically disables monitoring for the IPv4
        Multicast address family (AFI=1, SAFI=2) on the sender:</t>

        <t><figure>
            <artwork><![CDATA[ BMP Sender                               BMP Collector
  |-- MO Msg (AFI 1/SAFI 2, Disable) -------->| Sender sends MO Message
  |                                           |
  |                                           | Collector purges the IPv4
  |                                           | Multicast RIB view for
  |                                           | this specific BGP peer

      Figure 5: Disabling Monitoring for IPv4 Multicast Family
      ]]></artwork>
          </figure>Similarly, if monitoring for IPv4 Labeled Unicast (AFI=1,
        SAFI=4) is subsequently disabled:</t>

        <t><figure>
            <artwork><![CDATA[ BMP Sender                               BMP Collector
  |-- MO Msg (AFI 1/SAFI 4, Disable) -------->| Sender sends MO Message
  |                                           |
  |                                           | Collector purges the IPv4
  |                                           | Labeled Unicast RIB view
  |                                           | for this specific peer

   Figure 6: Disabling Monitoring for IPv4 Labeled Unicast Family
      ]]></artwork>
          </figure>3. Re-enabling Monitoring Options:</t>

        <t>When monitoring for IPv4 Multicast (AFI=1, SAFI=2) is re-enabled,
        the sender notifies the collector via an MO message and resumes
        streaming Route Monitoring messages for that view:</t>

        <t><figure>
            <artwork><![CDATA[ BMP Sender                               BMP Collector
  |-- MO Msg (AFI 1/SAFI 2, Enable) --------->| Sender sends MO Message
  |                                           |
  |-- BMP RM Msg (AFI 1/SAFI 2) ------------->| Sender streams Route
  |-- .......... ---------------------------->| Monitoring updates for
  |-- BMP RM Msg (AFI 1/SAFI 2) ------------->| IPv4 Multicast view
  |                                           |
  |                                           | Collector restores and
  |                                           | stores the RIB view

       Figure 7: Re-enabling Monitoring for IPv4 Multicast Family
      ]]></artwork>
          </figure></t>
      </section>
    </section>

    <section title="Security Considerations">
      <t>Unauthorized MO messages could trick a collector into purging its
      entire monitored database by sending fake "Disable" options. Mutual
      authentication and transport protection (e.g., TLS) MUST be used.</t>

      <t/>
    </section>

    <section title="IANA Considerations">
      <t>This document requests IANA to allocate a new message type code from
      the "BMP Message Types" registry:</t>

      <t><figure>
          <artwork><![CDATA[+------+-------------------------------+---------------+
| Type | Description                   | Reference     |
+------+-------------------------------+---------------+
| TBD2 | BMP Monitoring Options (MO)   | This document |
+------+-------------------------------+---------------+]]></artwork>
        </figure>IANA is also requested to create a new sub-registry: "BMP
      Monitoring Options PDU Types":<list style="symbols">
          <t>1: Adj-RIB-In</t>

          <t>2: Adj-RIB-Out</t>

          <t>3: Loc-RIB</t>

          <t>4: Stats</t>
        </list></t>

      <t/>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>TBD</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.2918"?>

      <?rfc include="reference.RFC.4271"?>

      <?rfc include="reference.RFC.7313"?>

      <?rfc include="reference.RFC.7854"?>

      <?rfc include="reference.RFC.8174"?>

      <?rfc include="reference.RFC.8671"?>

      <?rfc include="reference.RFC.9069"?>
    </references>

    <references title="Informative References"/>
  </back>
</rfc>
