RFC 9736

The BGP Monitoring Protocol (BMP) Peer Up Message Namespace

πŸ“… published March 2025, from ietf

RFC 9736: The BGP Monitoring Protocol (BMP) Peer Up Message Namespace πŸŽ€

okay bestie, let's start with the title block because it's basically this doc's ID card πŸͺͺ

  • Who wrote it: J. Scudder from Juniper Networks and P. Lucente from NTT πŸ‘‘
  • Category: Standards Track, so this is an official Internet Standards Track document πŸ’…
  • Date: March 2025 πŸ“…
  • ISSN: 2070-1721 🌸
  • Updates: RFC 7854, RFC 8671, and RFC 9069 πŸ¦‹ (the header doesn't list anything it obsoletes)

Abstract ✨

okay so RFC 7854, the BGP Monitoring Protocol (BMP), has a bunch of message types, and most of them are built as Type, Length, Value (TLV) 🧩. But the Peer Up message doesn't get its own set of TLVs. It shares a namespace with the Initiation message πŸ™ˆ. Turns out that sharing was a mistake, because it makes extending the protocol way harder πŸ’€.

This document updates RFC 7854 by giving the Peer Up message its own independent namespace πŸ’–. It also updates RFC 8671 and RFC 9069 by moving the codepoints they defined into that newly introduced registry πŸ¦‹. Compliant implementations of RFCs 7854, 8671, and 9069 also comply with this specification 🫢.


Status of This Memo πŸ“œ

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/rfc9736.

Copyright (c) 2025 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.

Table of Contents πŸ—‚οΈ

   1.  Introduction
     1.1.  Requirements Language
   2.  String Definition
   3.  Changes to Existing RFCs
     3.1.  Revision to the Information TLV
     3.2.  Revision to the Peer Up Notification
     3.3.  Definition of Peer Up Information TLV
   4.  IANA Considerations
   5.  Security Considerations
   6.  Normative References
   Acknowledgements
   Authors' Addresses

1. Introduction ✨

okay so [RFC7854] defines a bunch of different BGP Monitoring Protocol (BMP) message types πŸ§ƒ. Apart from the Route Monitoring message type, these messages are TLV-structured. Most message types get their own namespaces and IANA registries, which is very organised of them πŸ“‹. But the Peer Up message namespace overlaps with the Initiation message namespace 😬. As BMP got extended, that overlap became a real problem. So in this document, we create distinct namespaces for the Peer Up and Initiation messages to get rid of the overlap 🧹.

Compliant implementations of [RFC7854], [RFC8671], and [RFC9069] also comply with this specification πŸ’….

1.1. Requirements Language πŸ“–

okay, here's the important fine print on the key words. They only count when they show up in all capitals:

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.

2. String Definition 🧡

A string TLV is basically a free-form sequence of UTF-8 characters, and its length in bytes is whatever the TLV's Length field says πŸ“. There's no requirement to end the string with a null (or any other particular) character. The Length field is the one deciding where it stops πŸ’….

3. Changes to Existing RFCs πŸ”§

RFC 7854 is getting a glow-up ✨, and here's exactly what changes. [RFC7854] is updated as detailed in the following subsections.

3.1. Revision to the Information TLV πŸ’«

The Information TLV defined in Section 4.4 of [RFC7854] is renamed "Initiation Information TLV". It's only used by the Initiation message, not by the Peer Up message πŸ™…β€β™€οΈ.

The definition of Type = 0 is revised as shown below. Type = 1 and Type = 2 are unchanged. They're just included for completeness 🌷.

  • Type = 0: String. The Information field contains a string (Section 2). The value is administratively assigned. If multiple string TLVs are included, their ordering MUST be preserved when they are reported.
  • Type = 1: sysDescr. The Information field contains an ASCII string whose value MUST be set to be equal to the value of the sysDescr MIB-II [RFC1213] object.
  • Type = 2: sysName. The Information field contains an ASCII string whose value MUST be set to be equal to the value of the sysName MIB-II [RFC1213] object.

3.2. Revision to the Peer Up Notification πŸ”

The final paragraph of Section 4.10 of [RFC7854] references the Information TLV, which got revised above (Section 3.1). That paragraph is replaced by the following 🫧:

  • Information: Information about the peer, using the Peer Up Information TLV format defined in Section 3.3 of RFC 9736. The String type may be repeated. Inclusion of the Information field is OPTIONAL. Its presence or absence can be inferred by inspection of the Message Length in the common header.

3.3. Definition of Peer Up Information TLV πŸŽ€

The Peer Up Information TLV is used by the Peer Up message. Here's the layout πŸ‘€:

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |          Information Type     |       Information Length      |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                 Information (variable)                        |
     ~                                                               ~
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Information Type (2 bytes): types are as defined in the "BMP Peer Up Message TLVs" registry:
    • Type = 0: String. The Information field contains a string (Section 2). The value is administratively assigned. If multiple strings are included, their ordering MUST be preserved when they are reported.
    • Type = 3: VRF/Table Name. The Information field contains a UTF-8 string whose value MUST be equal to the value of the VRF or table name (e.g., RD instance name) being conveyed. The string size MUST be within the range of 1 to 255 bytes.
    • Type = 4: Admin Label. The Information field contains a free-form UTF-8 string whose byte length is given by the Information Length field. The value is administratively assigned. There is no requirement to terminate the string with a null or any other character.
  • Information Length (2 bytes): The length of the following Information field, in bytes.
  • Information (variable): Information about the monitored router, according to the type.

4. IANA Considerations πŸ›οΈ

IANA has created the "BMP Peer Up Message TLVs" registry inside the "BGP Monitoring Protocol (BMP) Parameters" registry group and listed this document as the reference πŸ“š.

Registration procedures for this registry are:

                 +=============+=========================+
                 | Range       | Registration Procedures |
                 +=============+=========================+
                 | 0, 3-32767  | Standards Action        |
                 +-------------+-------------------------+
                 | 32768-65530 | First Come First Served |
                 +-------------+-------------------------+
                 | 65531-65534 | Experimental            |
                 +-------------+-------------------------+
                 | 1-2, 65535  | Reserved                |
                 +-------------+-------------------------+

Table 1

The initial values for this registry are:

                  +=======+================+===========+
                  |  Type |  Description   | Reference |
                  +=======+================+===========+
                  |   0   |     String     |  RFC 9736 |
                  +-------+----------------+-----------+
                  |   1   |    Reserved    |  RFC 9736 |
                  +-------+----------------+-----------+
                  |   2   |    Reserved    |  RFC 9736 |
                  +-------+----------------+-----------+
                  |   3   | VRF/Table Name |  RFC 9736 |
                  +-------+----------------+-----------+
                  |   4   |  Admin Label   |  RFC 9736 |
                  +-------+----------------+-----------+
                  | 65535 |    Reserved    |  RFC 9736 |
                  +-------+----------------+-----------+

Table 2

IANA has also renamed the "BMP Initiation and Peer Up Information TLVs" registry to "BMP Initiation Information TLVs" πŸ”„ and populated it with the following values:

                    +=======+=============+===========+
                    | Type  | Description | Reference |
                    +=======+=============+===========+
                    | 0     | String      | RFC 9736  |
                    +-------+-------------+-----------+
                    | 1     | sysDescr    | RFC 9736  |
                    +-------+-------------+-----------+
                    | 2     | sysName     | RFC 9736  |
                    +-------+-------------+-----------+
                    | 3     | Reserved    | RFC 9736  |
                    +-------+-------------+-----------+
                    | 4     | Reserved    | RFC 9736  |
                    +-------+-------------+-----------+
                    | 65535 | Reserved    | RFC 9736  |
                    +-------+-------------+-----------+

Table 3

5. Security Considerations πŸ”’

🚨 Security is not a vibe you skip. This document does not alter the security considerations of [RFC7854] that continue to apply. Those RFC 7854 considerations are still fully in effect, so read them before you ship anything 😀.

6. Normative References πŸ“šβœ¨

okay bestie, this is the reading list the document leans on for the stuff it's built from πŸ’… Each entry is the full citation, with the DOI and URL included so you can go look them up yourself πŸ¦‹


Acknowledgements 🫢

The authors would like to thank Maxence Younsi for his review. Huge thanks to Maxence for taking the time to look it over πŸ’–


Authors' Addresses πŸ’Œ

Here's where you can find the two people who wrote this one πŸŽ€

John Scudder
Juniper Networks
1194 N. Mathilda Ave
Sunnyvale, CA 94089
United States of America
Email: jgs@juniper.net
Paolo Lucente
NTT
Veemweg 23
3771 MT Barneveld
Netherlands
Email: paolo@ntt.net
πŸ“¦ where this page comes from