| RFC 9972 | BMP New Statistics | May 2026 |
| Srivastava, et al. | Standards Track | [Page] |
The BGP Monitoring Protocol (BMP) described in RFC 7854 defines statistics message types to observe events that occur on a monitored router. This document defines new statistics types to monitor BMP Adj‑RIB‑In and Adj‑RIB‑Out Routing Information Bases (RIBs).¶
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9972.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Section 4.8 of [RFC7854] defines a number of different BGP Monitoring Protocol (BMP) statistics types to observe major events that occur on a monitored router. Statistics are either counters or Gauges. Section 6.2 of [RFC8671] also defines several BMP statistics types for Adj‑RIB‑Out of a monitored router.¶
New BMP statistics types are needed to enable more-refined BGP route monitoring and analysis to improve operational maintenance and troubleshooting capabilities.¶
This document defines Gauges for new BMP statistics. The applicability scope of these new Gauges (Adj‑RIB‑In, Adj‑RIB‑Out, Loc-RIB) is provided in Section 4. The format of the BMP Statistics Report message remains the same as defined in [RFC7854].¶
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
This document makes use of the following terms:¶
As defined in Section 1.1 of [RFC4271]:¶
The Adj-RIBs-In contains unprocessed routing information that has been advertised to the local BGP speaker by its peers.¶
As defined in Section 2 of [RFC7854]:¶
The result of applying inbound policy to an Adj‑RIB‑In, but prior to the application of route selection to form the Loc-RIB.¶
As defined in Section 1.1 of [RFC4271]:¶
The Adj-RIBs-Out contains the routes for advertisement to specific peers by means of the local speaker's UPDATE messages.¶
As defined in Section 3 of [RFC8671]:¶
The result before applying the outbound policy to an Adj‑RIB‑Out. This normally would match what is in the local RIB.¶
As defined in Section 3 of [RFC8671]:¶
The result of applying outbound policy to an Adj‑RIB‑Out. This MUST convey to the BMP receiver what is actually transmitted to the peer.¶
As defined in Section 1.1 of [RFC4271]:¶
The Loc-RIB contains the routes that have been selected by the local BGP speaker's Decision Process.¶
Note that the Loc-RIB state as monitored through BMP might also contain routes imported from other routing protocols such as an IGP or local static routes.¶
As defined in Section 1.1 of [RFC4271]:¶
A unit of information that pairs a set of destinations with the attributes of a path to those destinations.¶
The terms "producer" and "collector" are equivalent to "monitored router" and "monitoring station", respectively. Also, "implementation" follows the same usage as in [RFC7854].¶
This section defines different statistics types for Adj‑RIB‑In and Adj‑RIB‑Out monitoring types. Some of these statistics are also applicable to Loc-RIB; refer to Section 4 for more details.¶
The BMP Statistics Report message carries statistic information in Type-Length-Value (TLV) formats. Each statistic is encoded as a TLV (Stat Type, Stat Len, Stat Data) (see Section 4.8 of [RFC7854]). "Stat Data" is being referred to as "value" when defining various RIB Monitoring Statistics.¶
Statistics defined in this document can be categorized into two granularities: Global Statistics and Per-AFI/SAFI (see [RFC4760]) Statistics. Statistics defined with Per-AFI/SAFI descriptions belong to Per-AFI/SAFI Statistics, while other statistics belong to Global Statistics. Both Global Statistics and their corresponding Per-AFI/SAFI Statistics can be reported simultaneously.¶
The Per-AFI/SAFI Statistics apply only to the AFI/SAFI that a BGP speaker supports and negotiates with its peer. The authoritative registries for AFI/SAFI values are maintained by IANA (see [IANA-AFI] and [IANA-SAFI]).¶
For Global Statistics, the "Stat Data" (value) field is a single 64-bit unsigned integer Gauge where the "Stat Len" field MUST be set to 8. Each global statistic MUST appear only once in a BMP Statistics Report message.¶
For Per-AFI/SAFI Statistics, the "Stat Data" (value) field is a 11-byte structured value formatted as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge. The "Stat Len" MUST be set to 11. For any given per-AFI/SAFI Statistic, duplicate (AFI, SAFI) pairs MUST NOT appear within the same BMP Statistics Report message. Per-AFI/SAFI statistics MUST NOT be included in the BMP Statistics Report message if there is no data to report for that AFI/SAFI.¶
If statistics apply to the Loc-RIB, the "Peer Type" field in the Per-Peer Header of the corresponding BMP Statistics Report message MUST be set to 3 (Loc-RIB Instance Peer) [RFC9069]. Otherwise, the "Peer Type" field MUST be set as defined in Section 4.2 of [RFC7854].¶
A BMP implementation MUST ignore unrecognized Stat Types upon receipt.¶
Current number of routes in the per-AFI/SAFI pre-policy Adj‑RIB‑In. This Gauge is similar to Stat Type 9 defined in Section 4.8 of [RFC7854] and makes it explicitly for the pre-policy Adj‑RIB‑In.¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI post-policy Adj‑RIB‑In.¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI pre-policy Adj‑RIB‑In rejected by an inbound policy. This Gauge is different from Stat Type 0 defined in Section 4.8 of [RFC7854]. Stat Type 0 is a 32-bit counter that is a monotonically increasing number; the Stat Type 22 is a 64-bit Gauge that represents the current number of routes rejected by an inbound policy due to ongoing policy configuration changes.¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI post-policy Adj‑RIB‑In accepted by an inbound policy.¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI post-policy Adj‑RIB‑In or Loc-RIB suppressed by a configured route-damping policy.¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
'Suppressed' refers to a route that has been declared suppressed by the BGP Route Flap Damping mechanism as described in Section 2.2 of [RFC2439].¶
Current number of routes in the per-AFI/SAFI post-policy Adj‑RIB‑In or Loc-RIB marked as stale by Graceful Restart (GR) events.¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
'Stale' refers to a route that has been declared stale by the BGP GR mechanism as described in Section 4.1 of [RFC4724].¶
Current number of routes in the per-AFI/SAFI post-policy Adj‑RIB‑In or Loc-RIB marked as stale by Long-Lived Graceful Restart (LLGR).¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
'Stale' refers to a route that has been declared stale by the BGP LLGR mechanism as described in Section 4.3 of [RFC9494].¶
Current number of routes in the per-AFI/SAFI in post-policy Adj‑RIB‑In left before exceeding the received-route threshold that corresponds to the upper bound of per-AFI/SAFI accepted routes following the model defined in Section 6.7 of [RFC4271].¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI post-policy Adj‑RIB‑In or Loc-RIB left before exceeding a license-customized route threshold. If no such license is configured, or if the license does not impose a hard limit, this value MUST NOT be reported.¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI in pre-policy Adj‑RIB‑In rejected due to exceeding the maximum AS_PATH length supported by the local configuration.¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI post-policy Adj‑RIB‑In invalidated after verifying the route origin Autonomous System Number (ASN) through the Route Origin Authorization (ROA) of the Resource Public Key Infrastructure (RPKI) [RFC6811]. This is the total number of routes invalidated due to a mismatch of origin ASNs and a mismatch of prefix length.¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI post-policy Adj‑RIB‑In validated after verifying the route origin ASN through the ROA of the RPKI [RFC6811].¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI post-policy Adj‑RIB‑In whose RPKI route origin validation state is NotFound due to the absence of a matching ROA of RPKI [RFC6811].¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI pre-policy Adj‑RIB‑Out rejected by an outbound policy. These routes are active routes that otherwise would have been advertised in the absence of an outbound policy that rejected them.¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI pre-policy Adj‑RIB‑Out filtered due to AS_PATH length exceeding the locally configured maximum.¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI post-policy Adj‑RIB‑Out invalidated after verifying the route origin ASN through the ROA of the RPKI [RFC6811]. This is the total number of routes invalidated due to a mismatch of origin ASNs and a mismatch of prefix lengths.¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI post-policy Adj‑RIB‑Out validated after verifying the route origin ASN through the ROA of the RPKI [RFC6811].¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Current number of routes in the per-AFI/SAFI post-policy Adj‑RIB‑Out whose RPKI route origin validation state is NotFound due to the absence of a matching ROA of RPKI [RFC6811].¶
The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge.¶
Table 1 briefly lists the statistics defined in this document and outlines their scope of application.¶
| Type | Pre-policy Adj‑RIB‑In | Post-policy Adj‑RIB‑In | Loc-RIB | Pre-policy Adj‑RIB‑Out | Post-policy Adj‑RIB‑Out |
|---|---|---|---|---|---|
| 18 | Y | N | N | N | N |
| 19 | Y | N | N | N | N |
| 20 | N | Y | N | N | N |
| 21 | N | Y | N | N | N |
| 22 | Y | N | N | N | N |
| 23 | N | Y | N | N | N |
| 26 | N | Y | Y | N | N |
| 27 | N | Y | Y | N | N |
| 28 | N | Y | Y | N | N |
| 29 | N | Y | N | N | N |
| 30 | N | Y | N | N | N |
| 31 | N | Y | Y | N | N |
| 32 | N | Y | Y | N | N |
| 33 | Y | N | N | N | N |
| 34 | Y | N | N | N | N |
| 35 | N | Y | N | N | N |
| 36 | N | Y | N | N | N |
| 37 | N | Y | N | N | N |
| 38 | N | N | N | Y | N |
| 39 | N | N | N | Y | N |
| 40 | N | N | N | Y | N |
| 41 | N | N | N | N | Y |
| 42 | N | N | N | N | Y |
| 43 | N | N | N | N | Y |
This document specifies Gauges for new BMP statistics. The format of BMP Statistics Report messages remains unchanged from [RFC7854]. This section outlines the implementation considerations for new BMP statistics.¶
For backward compatibility, and absent any other policy, it is RECOMMENDED that BMP producers capable of generating both (Types 7 and 18) and (Types 9 and 19) BMP statistics transmit both corresponding types simultaneously. This allows BMP collectors to process either format according to their needs without disrupting existing implementations that rely on Types 7 or 9. The selection of which statistics types to generate within each pair SHOULD be treated as an implementation decision rather than a protocol requirement, with the BMP collector behavior for handling these statistics types remaining implementation specific.¶
Some statistics are dependent on feature configurations, such as GR, LLGR, and RPKI; therefore, the corresponding statistics SHOULD only be generated and sent when these features are enabled on the BMP producer. These statistics include the following Types: 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, and 43.¶
Some statistics are also relevant for the Loc-RIB view [RFC9069]; therefore, they may apply to the Loc-RIB view after best-path selection is completed. These statistics include Types 26, 27, 28, 31, and 32. When these statistics apply to the Loc-RIB view, the "Peer Type" field in the Per-Peer Header of the corresponding BMP Statistics Report message MUST set to 3.¶
Certain statistics may have logical relationships (e.g., per-AFI/SAFI counts summing to global totals). BMP statistics producers and collectors MAY perform consistency checks but MUST NOT assume strict dependencies (due to potential race conditions or partial failures). Discrepancies (e.g., sum(per-AFI/SAFI) != global count) SHOULD be logged as warnings but MUST NOT disrupt protocol operation.¶
The generation and transmission of Types 27 and 28 during an active GR/LLGR event consumes additional control plane resources (e.g., CPU). BMP statistics producers SHOULD prioritize the core GR/LLGR convergence procedures. To avoid adversely impacting the restart process, a BMP statistics producer MAY choose to sample this value at a lower frequency, buffer the updates, or temporarily suspend reporting for this type during the most critical phases of a switchover.¶
These Gauges may reset due to manual clearance or overflow. BMP statistics producers and collectors MUST track discontinuities and log this anomaly.¶
This section outlines some operational considerations of new BMP statistics for BMP operators.¶
Transmission scheduling and triggering mechanisms for new Gauges are implementation dependent. BMP operators SHOULD determine appropriate report generation and delivery strategies, including configurable timing intervals and threshold values. The mechanism for controlling the reporting of new Gauges SHOULD be consistent with that of existing types.¶
BMP operators SHOULD rate-limit statistics updates to minimize performance impact on control plane processes. BMP operators SHOULD only enable necessary statistics to reduce memory and CPU overhead. Implementations SHOULD also support per-router configuration of statistic subsets for collection and reporting.¶
Some BMP statistics producers, or configurations in BMP statistics producers, MAY discard routes that do not match policy; thus, the accepted count (Type 23) and the Adj‑RIB‑In counts (Type 21) will be identical in such cases. BMP operators SHOULD be aware of this behavior when interpreting these Gauges. BMP operators SHOULD be aware that BMP statistics producers and collectors MAY log inconsistencies between statistics as warnings.¶
Procedures and protocol extensions defined in this document do not affect the BMP security model. All security and authentication mechanisms required by Section 11 of [RFC7854], Section 8 of [RFC8671], and Section 7 of [RFC9069] are also applicable to the Gauges defined in this document. This document does not add any additional security considerations.¶
Monitored devices SHOULD be configured to implement rate-limited reporting of new Gauges.¶
IANA has assigned the following new parameters in the "BMP Statistics Types" registry, part of the "BGP Monitoring Protocol (BMP) Parameters" registry group.¶
IANA has listed these entries as follows. This document serves as a reference for each entry.¶
| Stat Type | Description |
|---|---|
| 18 | Number of routes currently in the pre-policy Adj‑RIB‑In. |
| 19 | Number of routes currently in the per-AFI/SAFI pre-policy Adj‑RIB‑In. |
| 20 | Number of routes currently in the post-policy Adj‑RIB‑In. |
| 21 | Number of routes currently in the per-AFI/SAFI post-policy Adj‑RIB‑In. |
| 22 | Number of routes currently in the per-AFI/SAFI pre-policy Adj‑RIB‑In rejected by an inbound policy. |
| 23 | Number of routes currently in the per-AFI/SAFI post-policy Adj‑RIB‑In accepted by an inbound policy. |
| 26 | Number of routes currently in the per-AFI/SAFI post-policy Adj‑RIB‑In or Loc-RIB suppressed by a configured route-damping policy. |
| 27 | Number of routes currently in the per-AFI/SAFI post-policy Adj‑RIB‑In or Loc-RIB marked as stale by GR events. |
| 28 | Number of routes currently in the per-AFI/SAFI post-policy Adj‑RIB‑In or Loc-RIB marked as stale by LLGR. |
| 29 | Number of routes currently in the post-policy Adj‑RIB‑In left before exceeding the received-route threshold. |
| 30 | Number of routes currently in the per-AFI/SAFI post-policy Adj‑RIB‑In left before exceeding the received-route threshold. |
| 31 | Number of routes currently in the post-policy Adj‑RIB‑In or Loc-RIB left before exceeding a license-customized route threshold. |
| 32 | Number of routes currently in the per-AFI/SAFI post-policy Adj‑RIB‑In or Loc-RIB left before exceeding a license-customized route threshold. |
| 33 | Number of routes currently in the pre-policy Adj‑RIB‑In rejected due to exceeding the locally configured maximum AS_PATH length. |
| 34 | Number of routes currently in the per-AFI/SAFI pre-policy Adj‑RIB‑In rejected due to exceeding the locally configured maximum AS_PATH length. |
| 35 | Number of routes currently in the per-AFI/SAFI post-policy Adj‑RIB‑In invalidated after verifying the route origin ASN through the ROA of the RPKI and mismatch of prefix length. |
| 36 | Number of routes currently in the per-AFI/SAFI post-policy Adj‑RIB‑In validated after verifying the route origin ASN through the ROA of the RPKI. |
| 37 | Number of routes currently in the per-AFI/SAFI post-policy Adj‑RIB‑In whose RPKI route origin validation state is NotFound. |
| 38 | Number of routes currently in the per-AFI/SAFI pre-policy Adj‑RIB‑Out rejected by an outbound policy. |
| 39 | Number of routes currently in the pre-policy Adj‑RIB‑Out filtered due to AS_PATH length exceeding the locally configured maximum. |
| 40 | Number of routes currently in the per-AFI/SAFI pre-policy Adj‑RIB‑Out filtered due to AS_PATH length exceeding the locally configured maximum. |
| 41 | Number of routes currently in the per-AFI/SAFI post-policy Adj‑RIB‑Out invalidated after verifying the route origin ASN through the ROA of the RPKI and mismatch of prefix length. |
| 42 | Number of routes currently in the per-AFI/SAFI post-policy Adj‑RIB‑Out validated after verifying the route origin ASN through the ROA of the RPKI. |
| 43 | Number of routes currently in the per-AFI/SAFI post-policy Adj‑RIB‑Out whose RPKI route origin validation state is NotFound. |
The authors would like to thank Jeff Haas, Mohamed Boucadair, Thomas Graf, and Prasad S. Narasimha for their valuable input.¶
Thanks to Giuseppe Fioccola for the OPSDIR, Jouni Korhonen for the GENART, and Bruno Decraene for the RTGDIR review.¶
Thanks to Gunter van de Velde, Éric Vyncke, and Ketan Talaulikar for the IESG review.¶