<?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-rr-sync-00" ipr="trust200902">
  <front>
    <title abbrev="BMP RIB Synchronization">BMP Extension for Non-Disruptive
    RIB View Synchronization</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) provides full visibility into BGP
      Routing Information Base (RIB) state across routers and collectors.
      However, transient network faults, process restarts, or buffer overflows
      can cause data inconsistencies between the BMP sender's authoritative
      RIB and the collector's stored view. Existing recovery requires tearing
      down BMP sessions or re-exporting all peers, introducing severe
      operational disruption.</t>

      <t>This document defines a new BMP message type, the BMP Route-Refresh
      message. It encapsulated standard BGP Route-Refresh and Enhanced
      Route-Refresh semantics within BMP to enable fine-grained, non-
      disruptive, and targeted per-peer or per-AFI/SAFI RIB view
      re-synchronization.</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>The BGP <xref target="RFC4271"/> Monitoring Protocol (BMP) <xref
      target="RFC7854"/> is widely deployed to stream BGP data&mdash;including
      Adj-RIB-In <xref target="RFC7854"/>, Adj-RIB-Out <xref
      target="RFC8671"/>, and Loc-RIB <xref target="RFC9069"/>&mdash;to
      centralized monitoring stations (collectors).</t>

      <t>In large-scale production networks, data loss between the BMP sender
      (router) and collector can occur due to TCP socket queue overflows,
      transient collector downtime, or internal router state resets. When a
      mismatch occurs, the collector retains stale BGP entries, resulting in
      incorrect routing topology maps and security auditing failures.</t>

      <t>Currently, BMP lacks a non-disruptive, targeted re-synchronization
      mechanism. To recover from a single peer's state desynchronization,
      operators are forced to reset the entire BMP session or flap the BGP
      peer, which generates massive CPU and bandwidth overhead.</t>

      <t>This document addresses this gap by defining a new BMP message type:
      the BMP Route-Refresh Message. By integrating standard BGP Route-
      Refresh <xref target="RFC2918"/> and Enhanced Route-Refresh (BoRR/EoRR)
      <xref target="RFC7313"/> capabilities into BMP, the sender can demarcate
      and stream a clean, fresh copy of a specific RIB view (&lt;Peer, AFI,
      SAFI&gt;) without disrupting other monitored sessions or resetting TCP
      connections.</t>

      <t/>
    </section>

    <section title="Terminology">
      <t><list style="symbols">
          <t>BoRR: Beginning of a Route Refresh</t>

          <t>EoRR: Ending of a Route Refresh</t>
        </list></t>
    </section>

    <section title="BMP Route-Refresh Message Format">
      <t>The BMP Route-Refresh message is a new BMP message type (Type =
      TBD1). It MUST be preceded by the Common BMP Header and the Per-Peer
      Header defined in <xref target="RFC7854"/>.</t>

      <t>The payload of this message encapsulates a 4-octet ROUTE-REFRESH PDU
      as defined in <xref target="RFC2918"/> and updated by <xref
      target="RFC7313"/>:</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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          AFI                  |    Sub-Type   |     SAFI      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Figure 1: BMP Route-Refresh Message Payload
      ]]></artwork>
        </figure>Fields:</t>

      <t><list style="symbols">
          <t>AFI (Address Family Identifier): 2 octets. Identifies the primary
          address family.</t>

          <t>Sub-Type: 1 octet. Defines the operation subtype as specified in
          <xref target="RFC7313"/>:<list style="symbols">
              <t>0: Normal Route Refresh Request / Notification</t>

              <t>1: Beginning of Route Refresh (BoRR)</t>

              <t>2: End of Route Refresh (EoRR)</t>
            </list></t>

          <t>SAFI (Subsequent Address Family Identifier): 1 octet.</t>
        </list></t>
    </section>

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

      <section title="Sender Behavior">
        <t>A BMP Sender MAY transmit a BMP Route-Refresh message under any of
        the following conditions:<list style="numbers">
            <t>Local administrative CLI command or controller request.</t>

            <t>Internal BGP soft-reset or RIB clearing event for a specific
            peer.</t>

            <t>Detection of BMP socket buffer drops affecting a specific
            peer.</t>
          </list></t>

        <t>When initiating a RIB re-synchronization for a given &lt;Peer, AFI,
        SAFI&gt;, the BMP Sender MUST execute the following sequence:<list
            style="numbers">
            <t>Transmit a BMP Route-Refresh message with Sub-Type = 1
            (BoRR).</t>

            <t>Stream the complete set of current active routes via standard
            BMP Route Monitoring (RM) messages for that &lt;Peer, AFI,
            SAFI&gt;.</t>

            <t>Transmit a BMP Route-Refresh message with Sub-Type = 2
            (EoRR).</t>
          </list></t>

        <t/>
      </section>

      <section title="Collector Behavior">
        <t>Upon receiving a BMP Route-Refresh message:</t>

        <t><list style="symbols">
            <t>If Sub-Type = 1 (BoRR): The collector MUST mark all existing
            routes belonging to the indicated &lt;Peer, AFI, SAFI&gt; in its
            database as "Stale" or "Historical".</t>

            <t>During Route Monitoring Ingestion: As new RM messages arrive,
            the collector updates matching entries, clearing the "Stale"
            status.</t>

            <t>If Sub-Type = 2 (EoRR): The collector MUST purge all remaining
            routes under that &lt;Peer, AFI, SAFI&gt; that are still marked as
            "Stale".</t>
          </list></t>
      </section>

      <section title="Example Message Sequence">
        <t>The sequence of BMP message transmission during a
        re-synchronization event is shown below:</t>

        <t><figure>
            <artwork><![CDATA[BMP Sender                    BMP Collector
  ~                              ~
  | ------- BMP BoRR ---------> | Sender notifies BoRR operation
  |                             |
  |                             | Collector marks the routes of
  |                             |  the specific RIB view as
  |                             |  stale/historical or purges
  |                             |  them directly
  |                             |
  | ------- BMP RM Msg.-------> | Sender sends zero or more
  | --------........----------> |  Route Monitoring Messages for
  | ------- BMP RM Msg.-------> |  the specific RIB view
  |                             | Collector uses the new routes
  |                             |  to update the stale/historical
  |                             |  routes
  | ------- BMP EoRR ---------> | Sender notifies EoRR operation
  |                             |
  |                             | Collector purges the routes
  |                             |  remaining the stale/historical
  |                             |  state
  |                             |
  ~                              ~

     Figure 2: Example of BMP Route-Refresh Message Exchange
      ]]></artwork>
          </figure></t>

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

    <section title="Security Considerations">
      <t>An attacker manipulating BMP streams could send forged EoRR messages
      to force a collector to prematurely purge valid RIB state. BMP sessions
      MUST be protected via IPSec, TLS, or strict ACL filtering as recommended
      in <xref target="RFC7854"/>.</t>
    </section>

    <section title="IANA Considerations">
      <t>IANA is requested to allocate a new message type from the "BMP
      Message Types" registry:</t>

      <t><figure>
          <artwork><![CDATA[+------+--------------------------+---------------+
| Type | Description              | Reference     |
+------+--------------------------+---------------+
| TBD1 | BMP Route-Refresh Message| This document |
+------+--------------------------+---------------+]]></artwork>
        </figure></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>
