<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sp-grow-bmp-gen-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="GEN Message for BMP">Generic Event Notification (GEN) for BGP Monitoring Protocol (BMP)</title>
    <seriesInfo name="Internet-Draft" value="draft-sp-grow-bmp-gen-01"/>
    <author initials="T." surname="Saad" fullname="Tarek Saad">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <country>CA</country>
        </postal>
        <email>tsaad@cisco.com</email>
      </address>
    </author>
    <author initials="P." surname="Narasimha" fullname="Prasad S. Narasimha">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <country>IND</country>
        </postal>
        <email>snprasad@cisco.com</email>
      </address>
    </author>
    <date year="2025" month="November" day="03"/>
    <workgroup>GROW</workgroup>
    <keyword>Internet-Draft</keyword>
    <keyword>BMP</keyword>
    <keyword>BGP</keyword>
    <keyword>Event Notification</keyword>
    <abstract>
      <?line 30?>

<t>This document defines a new BMP message type: the Generic Event Notification
(GEN). The BMP GEN message provides a flexible mechanism for reporting a wide variety
of events related to BGP at different levels of hierarchy, such as routing
instance, AFI/SAFI, or peer level.  The BMP GEN message enables operators and automated
systems to receive detailed context for operational events, such as policy
triggers, administrative interventions, and state management notifications (e.g., RIB view unmonitor events).</t>
    </abstract>
  </front>
  <middle>
    <?line 40?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The BGP Monitoring Protocol (BMP) <xref target="RFC7854"/> provides network operators with
visibility into BGP message exchanges. Recent extensions, such as
<xref target="I-D.ietf-grow-bmp-rel"/>, increase the range of observable BGP-related events.
However, there is a need for a more generic, extensible message type capable of
reporting diverse operational events, including policy triggers, automated
network adjustments, administrative interventions, and notifications for
collector state management, such as route table purges.</t>
      <t>This document introduces the BMP Generic Event Notification (GEN) message,
designed to flexibly report on such events with enough context to allow the
collector to take the appropriate action.</t>
      <t>The BMP GEN message can be used to deliver a variety of notifications,
including a RIB View notification, which allows a BMP sender to request that
the BMP collector purge the state associated with specific peers and RIB views.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <ul spacing="normal">
        <li>
          <t>GEN: Generic Event Notification</t>
        </li>
        <li>
          <t>BMP: BGP Monitoring Protocol</t>
        </li>
        <li>
          <t>BGP: Border Gateway Protocol</t>
        </li>
        <li>
          <t>TLV: Type-Length-Value</t>
        </li>
        <li>
          <t>RIB: Routing Information Base</t>
        </li>
      </ul>
    </section>
    <section anchor="motivation">
      <name>Motivation</name>
      <t>The current BMP message types focus primarily on peer session events
and per-route updates. Network operators and automated systems often
require notification of a broader class of events, such as:</t>
      <ul spacing="normal">
        <li>
          <t>RIB state management, such as notifying the collector when a RIB view is no longer being monitored.</t>
        </li>
        <li>
          <t>Administrative resets, disables, or maintenance windows</t>
        </li>
        <li>
          <t>Notifications about the status of various internal FSM router states (e.g., Import Completed, Export Completed, etc.)</t>
        </li>
        <li>
          <t>Detection of anomalous behavior or threshold crossings</t>
        </li>
      </ul>
      <t>The BMP GEN message provides structured reporting of such events, including a
clear indication of the event type and related context.</t>
    </section>
    <section anchor="the-bmp-gen-message-format">
      <name>The BMP GEN Message Format</name>
      <t>The BMP GEN message is a new BMP message type.</t>
      <section anchor="the-bmp-message-common-header">
        <name>The BMP Message Common Header</name>
        <t>The BMP GEN message uses the BMP message common header as defined in <xref target="RFC7854"/>:</t>
        <figure anchor="fig-gen-msg-hdr">
          <name>The BMP message common header</name>
          <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
+-+-+-+-+-+-+-+-+
|    Version    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Message Length                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Msg. Type   |
+---------------+
]]></artwork>
        </figure>
        <t>where a new Message Type = TBD1 is assigned to the BMP GEN message type.</t>
      </section>
      <section anchor="the-bmp-gen-message-body">
        <name>The BMP GEN Message Body</name>
        <t>The BMP GEN message body is formatted as follows:</t>
        <figure anchor="fig-gen-msg">
          <name>The BMP GEN message contents</name>
          <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
+---------------------------------------------------------------+
| Event Type (2 octets)       | Flags (2 octets)                |
+---------------------------------------------------------------+
|                    Timestamp (seconds)                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Timestamp (microseconds)                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Event Sub-TLVs (variable)                    |
+---------------------------------------------------------------+
]]></artwork>
        </figure>
        <t>The BMP GEN message is extensible for future event types.
It is meant to supplement, but not replace, existing BMP message types.</t>
        <dl newline="true">
          <dt>Event Type:</dt>
          <dd>
            <t>Identifies the event class (see <xref target="evt-type"/> for example Event Types).</t>
          </dd>
          <dt>Flags:</dt>
          <dd>
            <t>Reserved for future use.</t>
          </dd>
          <dt>Timestamp:</dt>
          <dd>
            <t>The time when the event occurred, expressed as seconds and microseconds since midnight (00:00), January 1, 1970 (UTC). If both are zero, the time is unavailable. Precision of the timestamp is implementation-dependent.</t>
          </dd>
          <dt>Event Sub-TLVs:</dt>
          <dd>
            <t>Optional Sub-TLVs for additional context for the event that occurred (see <xref target="evt-subtlv"/> for example Sub-TLVs).</t>
          </dd>
        </dl>
      </section>
      <section anchor="the-bmp-gen-message-fields">
        <name>The BMP GEN Message Fields</name>
        <t>The following fields are defined for BMP GEN messages.</t>
        <section anchor="evt-type">
          <name>Example Event Types</name>
          <t>The following Event Types are defined:</t>
          <ul spacing="normal">
            <li>
              <t>Type=0 : RIB View Unmonitor
         Event sent when a particular RIB-view is no longer monitored on the Router (Eg: Globally at router level or for a given AFI/SAFI or for a set of BGP peers).</t>
            </li>
            <li>
              <t>Type=1 : Route Import Complete
         Event sent when import of Routes is completed (Eg: Globally at router level or for a given Table).</t>
            </li>
            <li>
              <t>Type=2 : Peer Configured is Down
         Event sent when configured monitored BGP peer on the router has never come up.</t>
            </li>
          </ul>
        </section>
        <section anchor="evt-subtlv">
          <name>Event Sub-TLVs</name>
          <t>The Event Sub-TLVs are encoded as a list of optional Sub-TLVs. They 
add context to the associated event, either by providing the reason or 
act as a set of filters.</t>
          <t>All Event Sub-TLVs use a 2-octet Type field and a 2-octet Length field.
The Event Sub-TLV is defined as follows:</t>
          <figure anchor="fig-list-subtlvs">
            <name>BMP GEN message optional Event Sub-TLVs</name>
            <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 (2 octets)        |       Length (2 octets)       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\\                         Value                               \\
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>The following are BMP GEN message Event Sub-TLV Types that are defined in this document:</t>
          <table anchor="tab1">
            <name>Event Sub-TLVs Types defined in this document</name>
            <thead>
              <tr>
                <th align="left">Type</th>
                <th align="left">Length (octets)</th>
                <th align="left">Description</th>
                <th align="left">Value Format</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">0</td>
                <td align="left">Variable</td>
                <td align="left">Reason String</td>
                <td align="left">UTF-8 string</td>
              </tr>
              <tr>
                <td align="left">1</td>
                <td align="left">1</td>
                <td align="left">Reason Code</td>
                <td align="left">see <xref target="sec-reason-code-subtlv"/></td>
              </tr>
              <tr>
                <td align="left">2</td>
                <td align="left">2</td>
                <td align="left">RIB View (Filter)</td>
                <td align="left">see <xref target="sec-rib-view-subtlv"/></td>
              </tr>
              <tr>
                <td align="left">3</td>
                <td align="left">8</td>
                <td align="left">Route Distinguisher (Filter)</td>
                <td align="left">see <xref target="sec-route-distinguisher-subtlv"/></td>
              </tr>
              <tr>
                <td align="left">4</td>
                <td align="left">4 or 16</td>
                <td align="left">Peer Address (Filter)</td>
                <td align="left">see <xref target="sec-peer-address-subtlv"/></td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sec-rib-view-subtlv">
          <name>RIB View Event Sub-TLV</name>
          <t>The RIB View Event Sub-TLV identifies one or more RIB views that are relevant to the event.
The encoding of the RIB View Event Sub-TLV is shown in <xref target="fig-rib-view-subtlv"/>.</t>
          <figure anchor="fig-rib-view-subtlv">
            <name>The RIB View Event Sub-TLV encoding</name>
            <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=2                 |       Length=2                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        RIB View               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <dl newline="true">
            <dt>Type=2:</dt>
            <dd>
              <t>Identifies the RIB View Event Sub-TLV Type.</t>
            </dd>
            <dt>Length=2:</dt>
            <dd>
              <t>2-bytes.</t>
            </dd>
            <dt>RIB View:</dt>
            <dd>
              <t>The RIB View value. This value encoded as shown in <xref target="rib-view-enc"/>.</t>
            </dd>
          </dl>
          <figure anchor="rib-view-enc">
            <name>RIB View value encoding</name>
            <sourcecode type="~"><![CDATA[
                         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 
                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                        |I|J|O|P|L|      Reserved       |
                        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></sourcecode>
          </figure>
          <ul spacing="normal">
            <li>
              <t>When I flag is set, it indicates that the Event reflects the Pre-Policy Adj-RIB-In view</t>
            </li>
            <li>
              <t>When J flag is set, it indicates that the Event reflects the Post-Policy Adj-RIB-In view</t>
            </li>
            <li>
              <t>When O flag is set, it indicates that the Event reflects the Pre-Policy Adj-RIB-Out view</t>
            </li>
            <li>
              <t>When P flag is set, it indicates that the Event reflects the Post-Policy Adj-RIB-Out view</t>
            </li>
            <li>
              <t>When L flag is set, it indicates that the Event reflects the Local-RIB view</t>
            </li>
          </ul>
          <t>The remaining bits are reserved for future use. They MUST be transmitted as 0 and their values MUST be ignored on receipt.</t>
          <t>NOTE: Above is an extension to RIB-view value encoding defined in <xref target="I-D.patki-grow-bmp-common-updates"/></t>
        </section>
        <section anchor="sec-text-expl-subtlv">
          <name>Reason String Event Sub-TLV</name>
          <t>The Reason String Event Sub-TLV provides a UTF-8 encoded string
describing the event in human-readable form. This Sub-TLV is intended to assist
operators or automated systems in interpreting the context or rationale for the
event, such as "Adj-RIB-Out export stopped by operator" or "Peer remains in
down state".</t>
          <t>The encoding of the Reason String Event Sub-TLV is shown in <xref target="fig-text-expl-subtlv"/>.</t>
          <figure anchor="fig-text-expl-subtlv">
            <name>The Reason String Event Sub-TLV encoding</name>
            <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=0                 |       Length (Variable)       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\\                     Reason String                           \\
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <dl newline="true">
            <dt>Type=0:</dt>
            <dd>
              <t>Identifies the Reason String Event Sub-TLV Type.</t>
            </dd>
            <dt>Length (Variable):</dt>
            <dd>
              <t>The length of the string in bytes.</t>
            </dd>
            <dt>Reason String:</dt>
            <dd>
              <t>The UTF-8 string not null-terminated.</t>
            </dd>
          </dl>
        </section>
        <section anchor="sec-reason-code-subtlv">
          <name>Reason Code Event Sub-TLV</name>
          <t>The Reason Code Event Sub-TLV provides a 1-octet code indicating the reason for
the event. The encoding of the Reason Code Event Sub-TLV is shown in <xref target="fig-reas-code-subtlv"/>:</t>
          <figure anchor="fig-reas-code-subtlv">
            <name>The Reason Code Event Sub-TLV encoding</name>
            <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=1                 |       Length=1                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reason Code   |
+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <dl newline="true">
            <dt>Type=1:</dt>
            <dd>
              <t>Identifies the Reason Code Event Sub-TLV Type.</t>
            </dd>
            <dt>Length=1:</dt>
            <dd>
              <t>1-byte.</t>
            </dd>
            <dt>Reason Code:</dt>
            <dd>
              <t>The Reason Code Value. The following Reason Code values are defined in this document:</t>
            </dd>
          </dl>
          <ul empty="true">
            <li>
              <ul spacing="normal">
                <li>
                  <t>Value=0: Administrative (e.g., operator action or configuration change)</t>
                </li>
                <li>
                  <t>Value=1: Periodic       (e.g., scheduled or timer-based)</t>
                </li>
                <li>
                  <t>Value=2: Error          (e.g., protocol error, failure detected)</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>Additional values may be defined in future documents.</t>
        </section>
        <section anchor="sec-route-distinguisher-subtlv">
          <name>Route Distinguisher Sub-TLV</name>
          <t>The Route Distinguisher Event Sub-TLV allows identification of a particular VPN routing context.
When present in the BMP GEN list of Event Sub-TLVs, the IP address that directly follows the Route Distinguisher Event Sub-TLV MUST
be interpreted within the context of the routing instance associated with the
Route Distinguisher.</t>
          <t>The encoding of the Route Distinguisher Event Sub-TLV is shown in <xref target="fig-route-distinguisher-subtlv"/>:</t>
          <figure anchor="fig-route-distinguisher-subtlv">
            <name>The Route Distinguisher Event Sub-TLV encoding</name>
            <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=3                 |       Length=8                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   Route Distinguisher                         |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <dl newline="true">
            <dt>Type=3:</dt>
            <dd>
              <t>Identifies the Route Distinguisher Event Sub-TLV Type.</t>
            </dd>
            <dt>Length=8:</dt>
            <dd>
              <t>The length in bytes of the Route Distinguisher field (always 8 bytes).</t>
            </dd>
            <dt>Route Distinguisher:</dt>
            <dd>
              <t>The Route Distinguisher value as per <xref target="RFC4364"/>.</t>
            </dd>
          </dl>
        </section>
        <section anchor="sec-peer-address-subtlv">
          <name>Peer Address Event Sub-TLV</name>
          <t>The Peer Address Event Sub-TLV identifies a BGP peer that is relevant to the
event. If more than one peer is relevant to the event, multiple Peer Address Sub-TLVs MAY be included.</t>
          <t>The encoding of the Peer Address Event Sub-TLV is shown in <xref target="fig-peer-address-subtlv"/>:</t>
          <figure anchor="fig-peer-address-subtlv">
            <name>The Peer Address Event Sub-TLV encoding</name>
            <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=4                 |       Length=(4 or 16)        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Peer Address (4 or 16 bytes)                  |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <dl newline="true">
            <dt>Type=4:</dt>
            <dd>
              <t>Identifies the Peer Address Event Sub-TLV Type.</t>
            </dd>
            <dt>Length=(4 or 16):</dt>
            <dd>
              <t>The length in bytes of the Peer Address. This is 4 bytes for IPv4 address and 16-bytes for IPv6 address.</t>
            </dd>
            <dt>Peer Address:</dt>
            <dd>
              <t>The BGP Peer IPv4 or IPv6 address.</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="use-cases">
        <name>Use Cases</name>
        <section anchor="example-scenario-rib-view-unmonitor">
          <name>Example Scenario: RIB View Unmonitor</name>
          <t>Description:</t>
          <ul empty="true">
            <li>
              <t>A BMP sender can stop exporting a RIB view to a BMP collector at any time after
its initial export.  Without a notification from the BMP sender, the collector may maintain stale state.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>A RIB View Unmonitor event notifies the BMP collector that the specific RIB view 
is no longer being monitored on the BMP sender and updates for that RIB view will no
longer be sent. The BMP collector, in this case, SHOULD purge any data associated
with that RIB view that was previously received.</t>
            </li>
          </ul>
          <t>Scenario:</t>
          <ul empty="true">
            <li>
              <t>Adj-RIB-Out Export Stopped Due to Configuration Change</t>
            </li>
          </ul>
          <t>Background:</t>
          <ul empty="true">
            <li>
              <t>A network operator decides to stop exporting the Adj-RIB-Out view for a particular peer (e.g., to reduce monitoring overhead or due to a policy change).</t>
            </li>
          </ul>
          <t>Event:</t>
          <ul empty="true">
            <li>
              <t>The halt of Adj-RIB-Out export for all peers to the BMP collector.</t>
            </li>
          </ul>
          <t>Example BMP GEN Message:</t>
          <ul empty="true">
            <li>
              <t>The router sends a BMP GEN message to the BMP collector to notify
that the Adj-RIB-Out view export is stopped for all peers and that any
associated state should be purged.</t>
            </li>
          </ul>
          <sourcecode type="json"><![CDATA[
{
  "eventType": 0,                           // RIB View Unmonitor
  "eventTimestampSeconds": 1712959200,      // Seconds
  "eventTimestampMicroseconds": 123,        // Microseconds
  "eventSubTLVs": [
    { "type": 0, "value": "Operator triggered for maintenance" },
                                            // Reason String
    { "type": 2, "value": [0, 0, 1, 0, 0, 0, 0, 0] }
                         // RIB View (bitmap for Adj-RIB-Out Pre)
  ]
}
]]></sourcecode>
        </section>
        <section anchor="example-scenario-route-import-complete">
          <name>Example Scenario: Route Import Complete</name>
          <t>Description:</t>
          <ul empty="true">
            <li>
              <t>Router has completed the route import activity. The trigger could be the configuration of VPN AFI/SAFI or the relevant
neighbors coming up, among other events.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>This event can be for:</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <ul empty="true">
                <li>
                  <artwork><![CDATA[
- all routing instances (VRFs),
- a given routing instance, or
- a given AFI/SAFI.
]]></artwork>
                </li>
              </ul>
            </li>
          </ul>
          <t>Scenario:</t>
          <ul empty="true">
            <li>
              <t>A router has completed route import from VPN AFI/SAFI to all local routing instances (VRFs).</t>
            </li>
          </ul>
          <t>Event:</t>
          <ul empty="true">
            <li>
              <t>The completion of a full walk of VPN AFI/SAFI and route import activity.</t>
            </li>
          </ul>
          <t>Example BMP GEN Message:</t>
          <ul empty="true">
            <li>
              <t>The router sends a BMP GEN message to the BMP collector to notify
that import activity has completed.</t>
            </li>
          </ul>
          <sourcecode type="json"><![CDATA[
{
  "eventType": 1,                        // Route Import Complete
  "eventTimestampSeconds": 1712959200,   // Seconds
  "eventTimestampMicroseconds": 123      // Microseconds
}
]]></sourcecode>
        </section>
        <section anchor="example-scenario-peer-configured-is-down">
          <name>Example Scenario: Peer Configured is Down</name>
          <t>Description:</t>
          <ul empty="true">
            <li>
              <t>The router has peers configured that are not administratively shut down but are not operationally up.
The duration for which they are down SHOULD be a configurable value on the router.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>This event can be for:</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <ul empty="true">
                <li>
                  <artwork><![CDATA[
- a given peer, or
- a set of peers.
]]></artwork>
                </li>
              </ul>
            </li>
          </ul>
          <t>Scenario:</t>
          <ul empty="true">
            <li>
              <t>The operator configures a BGP peer (198.51.100.2) under the routing instance identified by Type=1 RD (198.51.100.1:10).
The BGP peer remains in DOWN state after the configured 10-minute interval.</t>
            </li>
          </ul>
          <t>Event:</t>
          <ul empty="true">
            <li>
              <t>The BGP peer (RD=198.51.100.1:10, 198.51.100.2) does not come up after 10 minutes elapse from when it is configured.</t>
            </li>
          </ul>
          <t>Example BMP GEN Message:</t>
          <ul empty="true">
            <li>
              <t>The router sends a BMP GEN message to the BMP collector to notify that 
the BGP peer (RD=198.51.100.1:10, 198.51.100.2) is in DOWN state.</t>
            </li>
          </ul>
          <t>Note: The Route Distinguisher is encoded as an 8-octet value per <xref target="RFC4364"/>.
 The value shown is a hexadecimal representation for illustration.</t>
          <sourcecode type="json"><![CDATA[
{
  "eventType": 2,                              // Peer in Down
  "eventTimestampSeconds": 1712959200,         // Seconds
  "eventTimestampMicroseconds": 123,           // Microseconds
  "eventSubTLVs": [
    { "type": 0, "value": "Peer remains in down state" },
                                               // Reason String
    { "type": 3, "value": [0, 1, 198, 51, 100, 1, 0, 10] },
           // Route Distinguisher (8-octet value per RFC4364,
           // example: 198.51.100.1:10)
    { "type": 4, "value": "198.51.100.2" }     // Peer Address
  ]
}
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The BMP GEN messages may carry sensitive operational context. Implementations SHOULD
ensure integrity and authenticity, for example by using transport security as
recommended in <xref target="RFC7854"/>. Purge notifications can affect collector state and
SHOULD only be accepted from authorized BMP senders.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to assign the following from the "BGP Monitoring Protocol (BMP) Parameters" registry
(https://www.iana.org/assignments/bmp-parameters/).</t>
      <section anchor="bmp-message-type">
        <name>BMP Message Type</name>
        <t>A new BMP Message Type value (TBD1) is to be assigned for the BMP GEN message.</t>
      </section>
      <section anchor="bmp-gen-evt-types">
        <name>BMP GEN Event Types</name>
        <t>IANA is requested to create a new registry for BMP GEN Event Types.
The following Event Types that are defined in this document (see <xref target="evt-type"/>):</t>
        <ul empty="true">
          <li>
            <ul spacing="normal">
              <li>
                <dl>
                  <dt>Type=0 :</dt>
                  <dd>
                    <t>RIB View Unmonitor</t>
                  </dd>
                </dl>
              </li>
              <li>
                <dl>
                  <dt>Type=1 :</dt>
                  <dd>
                    <t>Route Import Complete</t>
                  </dd>
                </dl>
              </li>
              <li>
                <dl>
                  <dt>Type=2 :</dt>
                  <dd>
                    <t>Peer Configured is Down</t>
                  </dd>
                </dl>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="bmp-gen-event-sub-tlv-types">
        <name>BMP GEN Event Sub-TLV Types</name>
        <t>IANA is requested to create a new registry for BMP GEN Event Sub-TLV Types. The Event Sub-TLV Types described
in <xref target="tab1"/> are defined in this document.</t>
      </section>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors would like to thank Dhananjay Patki for his detailed review and
feedback. Additional thanks are extended to Jeff Haas, Luuk
Hendriks, and Ben Maddison for their valuable comments and suggestions.
Their insights greatly improved the quality and clarity of this document.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7854">
          <front>
            <title>BGP Monitoring Protocol (BMP)</title>
            <author fullname="J. Scudder" initials="J." role="editor" surname="Scudder"/>
            <author fullname="R. Fernando" initials="R." surname="Fernando"/>
            <author fullname="S. Stuart" initials="S." surname="Stuart"/>
            <date month="June" year="2016"/>
            <abstract>
              <t>This document defines the BGP Monitoring Protocol (BMP), which can be used to monitor BGP sessions. BMP is intended to provide a convenient interface for obtaining route views. Prior to the introduction of BMP, screen scraping was the most commonly used approach to obtaining such views. The design goals are to keep BMP simple, useful, easily implemented, and minimally service affecting. BMP is not suitable for use as a routing protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7854"/>
          <seriesInfo name="DOI" value="10.17487/RFC7854"/>
        </reference>
        <reference anchor="RFC4364">
          <front>
            <title>BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="February" year="2006"/>
            <abstract>
              <t>This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers. This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other. Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4364"/>
          <seriesInfo name="DOI" value="10.17487/RFC4364"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-grow-bmp-rel">
          <front>
            <title>Logging of routing events in BGP Monitoring Protocol (BMP)</title>
            <author fullname="Paolo Lucente" initials="P." surname="Lucente">
              <organization>NTT</organization>
            </author>
            <author fullname="Camilo Cardona" initials="C." surname="Cardona">
              <organization>NTT</organization>
            </author>
            <date day="3" month="September" year="2025"/>
            <abstract>
              <t>   The BGP Monitoring Protocol (BMP) does provision for BGP session
   event logging (Peer Up, Peer Down), state synchronization (Route
   Monitoring), debugging (Route Mirroring) and Statistics messages,
   among the others.  This document defines a new Route Event Logging
   (REL) message type for BMP with the aim of covering use-cases with
   affinity to alerting, reporting and on-change analysis.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-grow-bmp-rel-04"/>
        </reference>
        <reference anchor="I-D.patki-grow-bmp-common-updates">
          <front>
            <title>Common BMP Route-Monitoring Messages for Routes Unchanged by Policy</title>
            <author fullname="Dhananjay Patki" initials="D." surname="Patki">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Narasimha Prasad" initials="N." surname="Prasad">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   A route unmodified by the inbound policy on a monitored router is
   included both in Pre-Policy Adj-RIB-In as well as Post-Policy Adj-
   RIB-In Route-Monitoring messages when both the Pre-Policy and Post-
   Policy Route-Monitoring modes are enabled.  Similarly, a route
   unmodified by the outbound policy is included in Pre-Policy Adj-RIB-
   Out as well as Post-Policy Adj-RIB-Out Route-Monitoring messages.
   This document defines a method to avoid duplicate inclusion of routes
   unmodified by policy either in Adj-RIB-In or Adj-RIB-Out.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-patki-grow-bmp-common-updates-02"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
IHgGflwXi9CONJjX/55dyMsmplUX0hzwwKmqY8z9V6m7gBrr/JRzA/utlGgT
W8/5NIHa8r0N4K5s5cjSjubuB+N1bmJ/O9GlcQ7SEq0zhmMgkvS7H8F5Muo2
Ca894fyrEolWP3dJ2OapX8GCTVNvTm5+uvlwc37z3rDapbeOwX9j1ZLxPj0s
x6tErXH5B/YzBucnbAKZNxkAAaGtzG1x3Dr13EWYmZjgmYVmPWS2wbk+zjyM
fg8waTpJyDI50D/9q6BTCGHugP3h4dD+UORV2OcPiHcD+Pt/Efj7NORxYK2/
9R0ZtockaN/HMlfGG7SXT3SGc/rx8grPQfOMJ2oubWl2QFkGrCMzLSzKjZTT
xKa91PWw0OWJsw9Xr0fscJwu9SlHUh7iox9ySXRV9KqHEnS+v+D5tSwP+HUt
OzCHeLe3zrVWwqU2/4o5WyA+L+KGg90y1Wta0RGXtTY68qJTbAgmxzbF0xUV
wH5WzHmCgVTETS1ubqyW51PpEC7SJXYst6u82ylPIzHVbhxGykSfvS0ykZeH
hTohxRYa01wgbI2n2zFJqT1n3PFFT+gjOZWniwUsAhmrXX4Hoe1Q6KOFCJfG
RjMwsHTQt+OO0hsxxBZ6NgOJBlu+80iiuaN6MvqpVnv+psno1jTD+3yTZLTO
+0ooskWKviIeGbTGI1tg1oISjw0uCIn1GyPmJvcCQfbiFn8BN6+Sq2F1PSni
GDaPrRmo3P2aEaMErTVFaOZlNSPWMtUzYUNTJEIA7pC7WpyiDqEyS2BbFLxl
rZY8AcZWE8nvutb0sol9LVFoDHioRKGa3bdBbSQCNd60qF8Lj79C+YZblK8F
Yj0f0NOHlA/4aoVTy4zAA/fJJgV+acofYGKWOwtQ/8RiNkEDA1LvpDGNLdZD
mo4y9JO2gq1bRnT34l4Jaoh18UwC1ULDcwNKhTMRFdgfis5azkUWjLkSkTd3
f8ReZxm8dh8zd2F7LwW+7rEJl3FB+8NWGoLR7RyWZz+GBHO+xqjNo4KJAS0d
ysOXthpLzR5tLq44u9QCpMp90xxn6xl+Y5V36vLp/My28HpdNxQy4xGeibr8
PgVbzK8WEfVh3Mk5M3UaHVRHEmLXPF7benh5grMVdYyBu52xKEMy05pnUHGB
2cSdYWiXoTuQGw19FK+1LLs51LoTxRaLvKUi9n3b5icNPGu2uV5n/IbNRW2c
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

-->

</rfc>
