<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-grow-bmp-peer-up-05" number="9736" ipr="trust200902" updates="7854, 8671, 9069" consensus="true" obsoletes="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">

  <front>
    <title abbrev="BMP Peer Up Namespace">The BGP Monitoring Protocol (BMP) Peer Up Message Namespace</title>
    <seriesInfo name="RFC" value="9736"/>

    <author fullname="John Scudder" initials="J." surname="Scudder">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1194 N. Mathilda Ave</street>
          <city>Sunnyvale</city>
          <region>CA</region>
          <code>94089</code>
          <country>United States of America</country>
        </postal>
        <email>jgs@juniper.net</email>
      </address>
    </author>
    <author fullname="Paolo Lucente" initials="P." surname="Lucente">
      <organization>NTT</organization>
      <address>
        <postal>
          <street>Veemweg 23</street>
          <city>Barneveld</city>
          <code>3771 MT</code>
          <country>Netherlands</country>
        </postal>
        <email>paolo@ntt.net</email>
      </address>
    </author>
    <date year="2025" month="March"/>

    <area>OPS</area>
    <workgroup>grow</workgroup>

    <keyword>IDR</keyword>
    <keyword>GROW</keyword>
    <keyword>BGP</keyword>
    <keyword>BMP</keyword>

    <abstract>
      <t>
	RFC 7854, the BGP Monitoring Protocol (BMP), uses different message types for
	different purposes. Most of these are structured as Type, Length, Value (TLV).
	One message type, the Peer Up message, lacks a set of
	TLVs defined for its use, instead sharing a namespace with the Initiation
	message. Experience has shown that this namespace sharing was
	a mistake, as it hampers the extension of the protocol.</t>

      <t>
	This document updates RFC 7854 by creating an independent namespace for
	the Peer Up message. It also updates RFCs 8671 and 9069 by moving 
	defined codepoints into the newly introduced registry. Compliant implementations
	of RFCs 7854, 8671, and 9069 also comply with this specification.
</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>

	<xref target="RFC7854" format="default"/> defines a number of different BGP Monitoring Protocol (BMP) message
	types. With the exception of the Route Monitoring message type, these
	messages are TLV-structured. Most message types have distinct
	namespaces and IANA registries. However, the namespace of the Peer Up
	message overlaps that of the Initiation message. As BMP has been extended, this overlap has become problematic. 
   In this
   document, we create distinct namespaces for the Peer Up and Initiation
   messages to eliminate the overlap.
</t>
<t>
	Compliant implementations of <xref target="RFC7854" format="default"/>, <xref target="RFC8671" format="default"/>,
	and <xref target="RFC9069" format="default"/> also comply with this specification.
</t>
      <section numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>",
    "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be
    interpreted as described in BCP&nbsp;14 <xref target="RFC2119"/> <xref
    target="RFC8174"/> when, and only when, they appear in all capitals, as
    shown here.
        </t>

      </section>
    </section>
    <section anchor="string" numbered="true" toc="default">
      <name>String Definition</name>
      <t>
    A string TLV is a free-form sequence of UTF-8 characters whose length
    in bytes is given by the TLV's Length field.  There is no requirement to
    terminate the string with a null (or any other particular) character --
    the Length field gives its termination.  
</t>
    </section>
    <section numbered="true" toc="default">
      <name>Changes to Existing RFCs</name>
      <t>
   <xref target="RFC7854" format="default"/> is updated as detailed in the following subsections.
</t>

      <section anchor="init_info_tlv" numbered="true" toc="default">
        <name>Revision to the Information TLV</name>
        <t>
	The Information TLV defined in <xref target="RFC7854" sectionFormat="of" section="4.4"/>
	is renamed "Initiation Information TLV". It is used only by the 
	Initiation message, not by the Peer Up message.</t>

        <t>
   The definition of Type = 0 is revised as shown below.
   Type = 1 and Type = 2 are unchanged; they are provided
   for completeness.
        </t>

        <ul spacing="normal">
          <li>
            <t>
		Type = 0: String.  The Information field contains a <xref
		target="string" format="default">string</xref>.  The value is
		administratively assigned.  If multiple string TLVs are
		included, their ordering <bcp14>MUST</bcp14> be preserved when
		they are reported.
            </t>
          </li>
          <li>
            <t>
		Type = 1: sysDescr.  The Information field contains an ASCII
		string whose value <bcp14>MUST</bcp14> be set to be equal to
		the value of the sysDescr MIB-II <xref target="RFC1213"
		format="default"/> object.
            </t>
          </li>
          <li>
            <t>
		Type = 2: sysName.  The Information field contains an ASCII
		string whose value <bcp14>MUST</bcp14> be set to be equal to the value of the
		sysName MIB-II <xref target="RFC1213" format="default"/> object.
            </t>
          </li>
        </ul>

      </section>
      <section numbered="true" toc="default">
        <name>Revision to the Peer Up Notification</name>
        <t>The final paragraph of <xref target="RFC7854" sectionFormat="of"
        section="4.10"/> references the Information TLV (which is revised
        <xref target="init_info_tlv" format="default">above</xref>). That
        paragraph is replaced by the following:
        </t>

        <ul spacing="normal">
          <li>
            <t>
		Information: Information about the peer, using the Peer Up
		Information TLV format defined in <xref target="peer_up_info_tlv"
		format="default"/> of RFC 9736.  The String type may be
		repeated.  Inclusion of the Information field is
		<bcp14>OPTIONAL</bcp14>.  Its presence or absence can be
		inferred by inspection of the Message Length in the common
		header.
            </t>
          </li>
        </ul>

      </section>
      <section anchor="peer_up_info_tlv" numbered="true" toc="default">
        <name>Definition of Peer Up Information TLV</name>
        <t>
	The Peer Up Information TLV is used by the Peer Up message.
</t>

        <artwork align="center" name="" type="" alt=""><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Information Type     |       Information Length      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Information (variable)                        |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <ul spacing="normal">
          <li>
            <t> Information Type (2 bytes): types are as defined in the "BMP Peer Up Message TLVs" registry:</t>
            <ul spacing="normal">
              <li>
                <t>Type = 0: String.  The Information field contains a <xref
                target="string" format="default">string</xref>.  The value is
                administratively assigned.  If multiple strings are included,
                their ordering <bcp14>MUST</bcp14> be preserved when they are
                reported.</t>
              </li>
              <li>
                <t>Type = 3: VRF/Table Name. The Information field contains a
                UTF-8 string whose value <bcp14>MUST</bcp14> be equal to the
                value of the VRF or table name (e.g., RD instance name) being
                conveyed. The string size <bcp14>MUST</bcp14> be within the
                range of 1 to 255 bytes.</t>
              </li>
              <li>
                <t> 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
                a with null or any other character.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Information Length (2 bytes): The length of the following
            Information field, in bytes.</t>
          </li>
          <li>
            <t>Information (variable): Information about the monitored
            router, according to the type.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="IANA" numbered="true" toc="default">

      <name>IANA Considerations</name>
      <t>
	IANA has created the "BMP Peer Up Message TLVs" within the "BGP Monitoring Protocol (BMP) Parameters" registry group and listed this document as the reference. </t>
      <t>
	Registration procedures for this registry are:</t>
      <table align="center">
        <thead>
          <tr>
            <th align="left">Range</th>
            <th align="left">Registration Procedures</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0, 3-32767</td>
            <td align="left">Standards Action</td>
          </tr>
          <tr>
            <td align="left">32768-65530</td>
            <td align="left">First Come First Served</td>
          </tr>
          <tr>
            <td align="left">65531-65534</td>
            <td align="left">Experimental</td>
          </tr>
          <tr>
            <td align="left">1-2, 65535</td>
            <td align="left">Reserved</td>
          </tr>
        </tbody>
      </table>

      <t>                                                                                   
        The initial values for this registry are:
</t>
      <table align="center">
        <thead>
          <tr>
            <th align="center">Type</th>
            <th align="center">Description</th>
            <th align="center">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center">0</td>
            <td align="center">String</td>
            <td align="center">RFC 9736</td>
          </tr>
          <tr>
            <td align="center">1</td>
            <td align="center">Reserved</td>
            <td align="center">RFC 9736</td>
          </tr>
          <tr>
            <td align="center">2</td>
            <td align="center">Reserved</td>
            <td align="center">RFC 9736</td>
          </tr>
          <tr>
            <td align="center">3</td>
            <td align="center">VRF/Table Name</td>
            <td align="center">RFC 9736</td>
          </tr>
          <tr>
            <td align="center">4</td>
            <td align="center">Admin Label</td>
            <td align="center">RFC 9736</td>
          </tr>
          <tr>
            <td align="center">65535</td>
            <td align="center">Reserved</td>
            <td align="center">RFC 9736</td>
          </tr>
        </tbody>
      </table>

      <t>
        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:
</t>

      <table align="center">
        <thead>
          <tr>
            <th align="left">Type</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0</td>
            <td align="left">String</td>
            <td align="left">RFC 9736</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">sysDescr</td>
            <td align="left">RFC 9736</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">sysName</td>
            <td align="left">RFC 9736</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">Reserved</td>
            <td align="left">RFC 9736</td>
          </tr>
          <tr>
            <td align="left">4</td>
            <td align="left">Reserved</td>
            <td align="left">RFC 9736</td>
          </tr>
          <tr>
            <td align="left">65535</td>
            <td align="left">Reserved</td>
            <td align="left">RFC 9736</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
	This document does not alter the security considerations of <xref target="RFC7854" format="default"/> that continue to apply.
</t>
    </section>

  </middle>

  <back>
    <references>
      <name>Normative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1213.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7854.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8671.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9069.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
    </references>

    <section anchor="Acknowledgements" numbered="false" toc="default">
      <name>Acknowledgements</name>
      <t>The authors would like to thank <contact fullname="Maxence Younsi"/> for his review.</t>
    </section>
  </back>

</rfc>
