RFC 9972

Advanced BGP Monitoring Protocol (BMP) Statistics Types

๐Ÿ“… published May 2026, from ietf

RFC 9972: Advanced BGP Monitoring Protocol (BMP) Statistics Types ๐Ÿฆ‹

Okay bestie, let's start with the vibes check โœจ. RFC 9972 is a Standards Track document from the IETF, published in May 2026 (ISSN 2070-1721). The authors are M. Srivastava, Ed. (Hewlett Packard Enterprise), Y. Liu (China Mobile), C. Lin, Ed. (New H3C Technologies), and J. Li (China Mobile) ๐Ÿซถ. The title block doesn't list anything it obsoletes or updates, so this one stands on its own ๐Ÿ’….

Abstract โœจ

The BGP Monitoring Protocol (BMP) from RFC 7854 has statistics message types that let you watch events happening on a monitored router ๐Ÿ‘€. This doc adds new statistics types so you can keep tabs on the BMP Adj-RIB-In and Adj-RIB-Out RIBs ๐Ÿงš.

Status of This Memo ๐Ÿ“œ

This one is an Internet Standards Track document, no cap ๐Ÿ”ฅ.

It's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). More on Internet Standards is in Section 2 of RFC 7841 ๐ŸŽ€.

Info about the current status, any errata, and how to send feedback lives 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. Please read these carefully, because they spell out your rights and restrictions. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Revised BSD License ๐Ÿ“–.

Table of Contents ๐Ÿ—‚๏ธ

1.  Introduction
  1.1.  Requirements Language
2.  Terminology
3.  RIB Monitoring Statistics
  3.1.  Statistics Format
  3.2.  Adj-RIB-In RIB Monitoring Statistics Definition
  3.3.  Adj-RIB-Out RIB Monitoring Statistics Definition
4.  Application Scope of Statistics
5.  Implementation Considerations
6.  Operational Considerations
7.  Security Considerations
8.  IANA Considerations
9.  Normative References
Acknowledgements
Authors' Addresses

1. Introduction โœจ

Okay so Section 4.8 of [RFC7854] defines a bunch of BGP Monitoring Protocol (BMP) statistics types that observe the major events on a monitored router ๐Ÿ“Š. Statistics are either counters or Gauges. Section 6.2 of [RFC8671] also defines several BMP statistics types, but those are for the Adj-RIB-Out of a monitored router.

We need new BMP statistics types so BGP route monitoring and analysis can get more refined, which makes operational maintenance and troubleshooting way easier ๐Ÿ’–.

This document defines Gauges for the new BMP statistics. The applicability scope of these new Gauges (Adj-RIB-In, Adj-RIB-Out, Loc-RIB) is in Section 4. The format of the BMP Statistics Report message stays the same as defined in [RFC7854] ๐Ÿซถ.

1.1. Requirements Language ๐Ÿ’…

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 read as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, just like here ๐ŸŽ€.

Heads up: these key words are there to stress what matters for operations. They are not a formal implementation requirement, so don't panic ๐Ÿ™ˆ.

2. Terminology ๐Ÿ“–

Here's the glossary we need, bestie:

Adj-RIB-In: 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.

Pre-policy Adj-RIB-In: This is the result before the inbound policy gets applied to an Adj-RIB-In ๐Ÿ’…. It's an explicit definition that lines up with the pre-policy Adj-RIB-In concept in Section 2 of [RFC7854].

Post-policy Adj-RIB-In: 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.

Adj-RIB-Out: 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.

Pre-policy Adj-RIB-Out: 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.

Post-policy Adj-RIB-Out: 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.

Loc-RIB: 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, like an IGP or local static routes ๐ŸŒธ.

Route: 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.

Also, the terms "producer" and "collector" are equivalent to "monitored router" and "monitoring station", respectively. And "implementation" follows the same usage as in [RFC7854] ๐Ÿ’œ.

3. RIB Monitoring Statistics ๐Ÿ“Š

This section defines different statistics types for the Adj-RIB-In and Adj-RIB-Out monitoring types. Some of these are also applicable to Loc-RIB, so check Section 4 for the details ๐Ÿงš.

3.1. Statistics Format ๐ŸŽ€

The BMP Statistics Report message carries statistic info 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]. When we define the RIB Monitoring Statistics, we call Stat Data the "value" ๐Ÿซง.

Statistics in this document come in two granularities: Global Statistics and Per-AFI/SAFI Statistics (see [RFC4760]). Anything defined with Per-AFI/SAFI descriptions counts as Per-AFI/SAFI Statistics, and everything else is Global Statistics. You can report Global Statistics and their matching Per-AFI/SAFI Statistics at the same time โœจ.

Per-AFI/SAFI Statistics only apply 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, Stat Data (the value) is a single 64-bit unsigned integer Gauge, and Stat Len MUST be set to 8. Each global statistic MUST appear only once in a BMP Statistics Report message ๐Ÿ“.

For Per-AFI/SAFI Statistics, Stat Data (the value) is an 11-byte structured value made of a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge ๐Ÿฆ‹. Stat Len MUST be set to 11. For any given per-AFI/SAFI Statistic, duplicate (AFI, SAFI) pairs MUST NOT appear in the same BMP Statistics Report message. Per-AFI/SAFI statistics MUST NOT be included in the BMP Statistics Report message if there's 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 matching 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] ๐Ÿ’….

And here's the big rule for receivers: a BMP implementation MUST ignore unrecognized Stat Types upon receipt ๐Ÿ™Œ.


To be continued, bestie! Part 2 is on the way, so stay tuned ๐Ÿ’œ๐ŸŒˆ๐ŸŽ€

3.2. Adj-RIB-In RIB Monitoring Statistics Definition โœจ

Type = 18: (64-bit Gauge) ๐Ÿ’– Okay bestie, this one is the current number of routes in the pre-policy Adj-RIB-In ๐ŸŽ€ It's giving Stat Type 7 from [RFC7854], but it's made explicitly for the pre-policy Adj-RIB-In. Very specific, very iconic ๐Ÿ’…

Type = 19: (64-bit Gauge) ๐Ÿฆ‹ This one counts the current number of routes in the per-AFI/SAFI pre-policy Adj-RIB-In. It's basically the sibling of Stat Type 9 in Section 4.8 of [RFC7854], but again, it's pre-policy only ๐Ÿ˜ญ The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge ๐ŸŒธ

Type = 20: (64-bit Gauge) ๐Ÿ“ Current number of routes in the post-policy Adj-RIB-In. Post-policy, not pre-policy, so you can see the difference already ๐Ÿ‘€

Type = 21: (64-bit Gauge) ๐Ÿงš Current number of routes in the per-AFI/SAFI post-policy Adj-RIB-In. Same vibe as Type 19, just on the other side of the policy line. The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge ๐Ÿ’œ

Type = 22: (64-bit Gauge) ๐Ÿ™ˆ Current number of routes in the per-AFI/SAFI pre-policy Adj-RIB-In that got rejected by an inbound policy. Now, this one is lowkey tricky, so pay attention ๐Ÿซถ It's not the same as Stat Type 0 from Section 4.8 of [RFC7854]. Stat Type 0 is a 32-bit counter that just keeps going up forever (monotonically increasing, iykyk). Stat Type 22 is a 64-bit Gauge, which means it's the current count of routes rejected by an inbound policy because of ongoing policy configuration changes. Up, down, whatever is happening right now ๐Ÿ“ˆ๐Ÿ“‰ The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge โœจ

Type = 23: (64-bit Gauge) ๐Ÿ‘‘ Current number of routes in the per-AFI/SAFI post-policy Adj-RIB-In that were accepted by an inbound policy. The winners' circle ๐Ÿ† The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge ๐ŸŽ€

Type = 26: (64-bit Gauge) ๐ŸŒˆ Current number of routes in the per-AFI/SAFI post-policy Adj-RIB-In or Loc-RIB that are 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 ๐Ÿฆ‹

Quick word on 'Suppressed' ๐Ÿ’ญ It means a route that has been declared suppressed by the BGP Route Flap Damping mechanism, as described in Section 2.2 of [RFC2439]. So the route got put in timeout because it kept flapping, and honestly same ๐Ÿ˜ญ

Type = 27: (64-bit Gauge) ๐Ÿซถ 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' here refers to a route that has been declared stale by the BGP GR mechanism, as described in Section 4.1 of [RFC4724]. Stale but not forgotten ๐Ÿงš

Type = 28: (64-bit Gauge) ๐Ÿ’œ 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]. LLGR is GR's longer-lasting cousin, so it's giving patient energy โณ

Type = 29: (64-bit Gauge) ๐ŸŽ€ Current number of routes in the post-policy Adj-RIB-In left before exceeding the received-route threshold, as defined in Section 6.7 of [RFC4271]. Basically how much room is left before the threshold gets hit ๐Ÿšฆ

Type = 30: (64-bit Gauge) ๐ŸŒˆ 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 โœจ

Type = 31: (64-bit Gauge) ๐Ÿ”ฅ Current number of routes in the post-policy Adj-RIB-In or Loc-RIB left before exceeding a license-customized route threshold. Now here's the important bit ๐Ÿ‘‡ If no such license is configured, or if the license does not impose a hard limit, this value MUST NOT be reported. No license, no number. That's the rule, bestie ๐Ÿ™…โ€โ™€๏ธ

Type = 32: (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. Same drama as Type 31: 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 ๐Ÿฆ‹

Type = 33: (64-bit Gauge) ๐ŸŒธ Current number of routes in the pre-policy Adj-RIB-In rejected due to exceeding the maximum AS_PATH length supported by the local configuration. Too long of a path, not accepted ๐Ÿ›ค๏ธ

Type = 34: (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. Same AS_PATH story, just per-AFI/SAFI. The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge ๐Ÿงš

Type = 35: (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 ๐Ÿ’œ

Type = 36: (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 ๐ŸŒˆ

Type = 37: (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]. No ROA, no match, no vibes ๐Ÿ’€ The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge ๐ŸŽ€


3.3. Adj-RIB-Out RIB Monitoring Statistics Definition ๐Ÿฆ‹

Type = 38: (64-bit Gauge) ๐Ÿ“ Current number of routes in the per-AFI/SAFI pre-policy Adj-RIB-Out rejected by an outbound policy. These are active routes that otherwise would have been advertised if there were no outbound policy blocking them ๐Ÿšซ The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge ๐Ÿ’…

Type = 39: (64-bit Gauge) ๐ŸŒธ Current number of routes in the pre-policy Adj-RIB-Out filtered due to the AS_PATH length exceeding the locally configured maximum. Too long again, bestie ๐Ÿ›ค๏ธ

Type = 40: (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. Same as Type 39, but per-AFI/SAFI. The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge ๐Ÿ’œ

Type = 41: (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 ๐ŸŒˆ

Type = 42: (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 ๐ŸŽ€

Type = 43: (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]. Same NotFound energy as Type 37, just on the outbound side ๐Ÿ‘ป The value is structured as a 2-byte AFI, a 1-byte SAFI, and a 64-bit Gauge โœจ


4. Application Scope of Statistics ๐Ÿ—บ๏ธ

Okay so Table 1 is basically your cheat sheet ๐Ÿ“‹ It briefly lists every statistic defined in this document and shows where each one applies. Read it like a group chat seating chart ๐Ÿช‘

    +====+==========+=============+=======+=============+=============+
    |Type|Pre-policy| Post-policy |Loc-RIB| Pre-policy  | Post-policy |
    |    |Adj-RIB-In| Adj-RIB-In  |       | Adj-RIB-Out | 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      |
    +----+----------+-------------+-------+-------------+-------------+

                       Table 1: Scope of Application

5. Implementation Considerations โœจ

okay so this doc is handing us brand-new Gauges for BMP statistics ๐Ÿ“Š๐Ÿซถ and the best part is that the format of BMP Statistics Report messages stays exactly the same as in [RFC7854] ๐ŸŽ€ nothing about the wire format changes. This section is the tea for implementers who are about to build these ๐Ÿ’…

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 send both matching types at the same time ๐Ÿ’– that way BMP collectors can handle whichever format they need without breaking existing implementations that rely on Types 7 or 9 ๐Ÿฅน Which statistics types to generate within each pair SHOULD be treated as an implementation choice, not a protocol requirement, and how a BMP collector handles these types stays implementation specific ๐Ÿงš

Some statistics depend on feature configuration, like GR, LLGR, and RPKI ๐ŸŒˆ so the matching statistics SHOULD only be generated and sent when those features are turned on at the BMP producer. These are Types 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, and 43 โœจ

Some statistics are also relevant to the Loc-RIB view [RFC9069] ๐Ÿ‘‘ so they may apply to the Loc-RIB view once best-path selection is done. These are 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 have logical relationships, like per-AFI/SAFI counts adding up to global totals ๐Ÿงฎ BMP statistics producers and collectors MAY run consistency checks, but they MUST NOT assume strict dependencies, because of possible race conditions or partial failures ๐Ÿ™ˆ If something doesn't add up (for example, sum(per-AFI/SAFI) != global count), that discrepancy SHOULD be logged as a warning, but it MUST NOT disrupt protocol operation ๐Ÿ’€ no drama, just logs

The generation and sending of Types 27 and 28 during an active GR/LLGR event eats up extra control plane resources, like CPU ๐Ÿ˜ญ BMP statistics producers SHOULD prioritize the core GR/LLGR convergence procedures ๐Ÿ”ฅ To avoid messing up the restart process, a BMP statistics producer MAY choose to sample this value less often, buffer the updates, or temporarily pause reporting for this type during the most critical phases of a switchover ๐Ÿฆ‹

These Gauges may reset because of manual clearance or overflow ๐ŸŒธ BMP statistics producers and collectors MUST track discontinuities and log this anomaly. Main character moment: keeping receipts on resets ๐Ÿ“


6. Operational Considerations ๐ŸŽ€

this section is for the BMP operators, so it's all about running these things in real life ๐Ÿง‘โ€๐Ÿ’ป

Transmission scheduling and triggering for the new Gauges are implementation dependent ๐ŸŒˆ BMP operators SHOULD figure out their own report generation and delivery strategies, including configurable timing intervals and threshold values. The mechanism for controlling reporting of new Gauges SHOULD be consistent with the one used for existing types ๐Ÿ’… consistency is iconic

BMP operators SHOULD rate-limit statistics updates so they don't hurt control plane performance ๐Ÿฅบ BMP operators SHOULD only enable the statistics they actually need, to keep memory and CPU overhead low ๐Ÿง  Implementations SHOULD also support per-router configuration of statistic subsets for collection and reporting โœจ pick your favorites, bestie

Some BMP statistics producers, or configurations inside them, MAY discard routes that don't match policy ๐Ÿ™ˆ so in those cases the accepted count (Type 23) and the Adj-RIB-In counts (Type 21) will be identical ๐Ÿซ  BMP operators SHOULD be aware of this when they read these Gauges, or they'll be confused for no reason ๐Ÿ” BMP operators SHOULD also be aware that BMP statistics producers and collectors MAY log inconsistencies between statistics as warnings โš ๏ธ not a bug, just vibes


7. Security Considerations ๐Ÿ”

okay this part is SERIOUS bestie, so read it properly ๐Ÿ˜ค The 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] also apply to the Gauges defined here ๐Ÿ”’ This document doesn't add any extra security considerations, so those three sections are the ones to read ๐Ÿซถ

Monitored devices SHOULD be configured to implement rate-limited reporting of new Gauges ๐Ÿšฆ yes, this one matters, do not skip it ๐Ÿ’€


8. IANA Considerations ๐ŸŒธ

IANA has assigned the following new parameters in the "BMP Statistics Types" registry, which is part of the "BGP Monitoring Protocol (BMP) Parameters" registry group at <https://www.iana.org/assignments/bmp-parameters/> ๐Ÿ—‚๏ธ

IANA has listed these entries as follows. This document is the reference for each entry ๐Ÿงš here's the full lineup:

      +======+=================================================+
      | Stat | Description                                     |
      | Type |                                                 |
      +======+=================================================+
      |  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.                   |
      +------+-------------------------------------------------+

Table 2: BMP Statistics Types ๐Ÿ“‹โœจ

9. Normative References ๐Ÿ“š

These are the BFFs this spec leans on, so go check them out ๐Ÿซถ


Acknowledgements ๐ŸŒธ

Huge thanks to Jeff Haas, Mohamed Boucadair, Thomas Graf, and Prasad S. Narasimha for their valuable input ๐Ÿ’–

Thanks to Giuseppe Fioccola for the OPSDIR review, Jouni Korhonen for the GENART review, and Bruno Decraene for the RTGDIR review ๐Ÿ’…

Thanks to Gunter van de Velde, ร‰ric Vyncke, and Ketan Talaulikar for the IESG review ๐Ÿ‘‘


Authors' Addresses ๐Ÿ’Œ

Mukul Srivastava (editor)
Hewlett Packard Enterprise
10 Technology Park Dr
Westford, MA 01886
United States of America
Email: mukul.srivastava@hpe.com


Yisong Liu
China Mobile
32 Xuanwumen West Street
Beijing
Xicheng District, 100053
China
Email: liuyisong@chinamobile.com


Changwang Lin (editor)
New H3C Technologies
8 Yongjia North Road
Beijing
Haidian District, 100094
China
Email: linchangwang.04414@h3c.com


Jinming Li
China Mobile
32 Xuanwumen West Street
Beijing
Xicheng District, 100053
China
Email: lijinming@chinamobile.com
๐Ÿ“ฆ where this page comes from