<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
    please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that
    most I-Ds might want to use.
    (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
    (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-ietf-grow-bmp-peer-up-04"
ipr="trust200902" updates="7854, 8671, 9069" consensus="true">
  <!-- category values: std, bcp, info, exp, and historic
    ipr values: full3667, noModification3667, noDerivatives3667
    you can add the attributes updates="NNNN" and obsoletes="NNNN"
    they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>

    <title abbrev="BMP Peer Up Namespace">
    BMP Peer Up Message Namespace</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="John Scudder" initials="J.S."
            surname="Scudder">
      <organization>Juniper Networks</organization>

      <address>
        <postal>
          <street>1194 N. Mathilda Ave</street>

          <!-- Reorder these if your country does things differently -->

          <city>Sunnyvale</city>

          <region>CA</region>

          <code>94089</code>

          <country>USA</country>
        </postal>

        <email>jgs@juniper.net</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Paolo Lucente" initials="P" surname="Lucente">
      <organization>NTT</organization>
      <address>
        <postal>
          <street>Veemweg 23</street>
          <city>Barneveld</city>
          <code>3771</code>
          <region>MT</region>
          <country>NL</country>
        </postal>
        <email>paolo@ntt.net</email>
      </address>
    </author>

    <date year="2024" />

    <!-- Meta-data Declarations -->

    <area>General</area>

    <workgroup>GROW</workgroup>

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

<abstract>
<t>
	RFC 7854, BMP, uses different message types for different purposes.
	Most of these are Type, Length, Value (TLV) structured. One message
	type, the Peer Up message, lacks a set of TLVs defined for its use,
	instead sharing a namespace with the Initiation message. Subsequent
	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 RFC 8671 and RFC 9069 by moving the
	defined codepoints in the newly introduced registry. The changes in this
	document are formal only, compliant implementations of RFC 7854, RFC 8671
	and RFC 9069 also comply with this specification.
</t>
</abstract>

  </front>

  <middle>

<section anchor="introduction" title="Introduction">
<t>
	<xref target="RFC7854"/> defines a number of different 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 the BMP protocol
	has been extended, this oversight has become problematic. In this
	document, we create a distinct namespace for the Peer Up message to
	eliminate this overlap, and create the corresponding missing registry. 
</t>
	<!--We also supply a definition of "string" for 
	convenience, since TLVs from multiple different registries include a string. -->
<t>
    The changes in this document are formal only, compliant implementations
    of <xref target="RFC7854"/>, <xref target="RFC8671"/> and <xref target="RFC9069"/>
    also comply with this specification.
</t>
      <section title="Requirements Language">
        <t>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 <xref target="RFC2119"/> <xref
        target="RFC8174"/> when, and only when, they appear in all
        capitals, as shown here.</t>
      </section>

</section>

<section anchor="string" title="String Definition">
<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 title="Changes to existing RFCs">
<t>
    We update <xref target="RFC7854"/> as follows:
    <list style="symbols">
    <t>
    	The "Information TLV" of section 4.4, that was shared between the
    	Initiation and Peer Up message types, is renamed as the "Initiation
    	Information TLV", and is only relevant to the Initiation message type.
    </t>
    <t>
    	A "Peer Up Information TLV" is defined, and is relevant to the
    	Peer Up message type.
    </t>
    <t>
	A "BMP Peer Up Information TLVs" registry is is created, seeded
	with the Peer Up Information TLV.
    </t>
    </list> 
    Other than as summarized above, and detailed below, there are no
    other changes.
</t>

<section anchor="init_info_tlv"
         title="Revision to Information TLV, Renamed as Initiation Information TLV">
<t>
	The Information TLV defined in section 4.4 of <xref target="RFC7854"/>
	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 to be:
	<list style="symbols">
	<t>
		Type = 0: String.  The Information field contains a <xref
		target="string">string</xref>.  The value is administratively
		assigned.  If multiple strings are included, their ordering MUST be
		preserved when they are reported.
	</t>

	<t>
		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 <xref target="RFC1213"/> object.
	</t>

	<t>
		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 <xref target="RFC1213"/> object.
	</t>
	</list>
</t>
</section>

<section title="Revision to Peer Up Notification">
<t>
    The final paragraph of section 4.10 of <xref target="RFC7854"/>
    references the Information TLV (which is revised <xref
    target="init_info_tlv">above</xref>). That paragraph is replaced by
    the following:
	<list style="symbols">
	<t>
		Information: Information about the peer, using the Peer Up
		Information TLV format defined <xref
		target="peer_up_info_tlv">below</xref>.  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.
	</t>
	</list>
</t>
</section>

<section anchor="peer_up_info_tlv"
         title="Definition of Peer Up Information TLV">
<t>
	The Peer Up Information TLV is used by the Peer Up message.
</t>
      <figure align="center">
        <artwork align="center"><![CDATA[
0 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Information Type     |       Information Length      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Information (variable)                        |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ]]></artwork>
      </figure>
<t>
<list style="symbols">
<t>
	 Information Type (2 bytes): Type of information provided.
	 Defined types are:
<list style="symbols">
<t>
	 Type = 0: String.  The Information field contains a <xref
	 target="string">string</xref>.  The value is administratively
	 assigned.  If multiple strings are included, their ordering MUST be
	 preserved when they are reported.
</t>
<t>
	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.
</t>
<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 with null or any other
	character.
</t>
</list>
</t>
<t>
      Information Length (2 bytes): The length of the following
      Information field, in bytes.
</t>
<t>
      Information (variable): Information about the monitored
      router, according to the type.
</t>
</list>
</t>
</section>
</section>

<section anchor="IANA" title="IANA Considerations">
<t>
	IANA is requested to create a registry within the BMP
	group, named "BMP Peer Up Message TLVs", reference this
	document. 
</t>
<t>
	Registration procedures for this registry are:
</t>
<texttable>
	<ttcol align='center'>Range</ttcol>
	<ttcol align='center'>Registration Procedures</ttcol>
	
	<c>0, 3-32767</c>
	<c>Standards Action</c>
	<c>32768-65530</c>
	<c>First Come, First Served</c>
	<c>65531-65534</c>
	<c>Experimental</c>
	<c>1-2, 65535</c>
	<c>Reserved</c>
</texttable>
<t>
	Initial values for this registry are:
</t>
<texttable>
	<ttcol align='center'>Type</ttcol>
	<ttcol align='center'>Description</ttcol>
	<ttcol align='center'>Reference</ttcol>

	<c>0</c>
	<c>String</c>
	<c>this document</c>

	<c>1</c>
	<c>Reserved</c>
	<c>this document</c>

	<c>2</c>
	<c>Reserved</c>
	<c>this document</c>

	<c>3</c>
	<c>VRF/Table Name</c>
	<c>this document</c>

	<c>4</c>
	<c>Admin Label</c>
	<c>this document</c>
	
	<c>65535</c>
	<c>Reserved</c>
	<c>this document</c>
</texttable>
<t>
	IANA is also requested to rename the existing "BMP Initiation
	and Peer Up Information TLVs" registry to "BMP Initiation
	Information TLVs" and seed it with the following values:
</t>
<texttable>
	<ttcol align='center'>Type</ttcol>
	<ttcol align='center'>Description</ttcol>
	<ttcol align='center'>Reference</ttcol>

	<c>0</c>
	<c>String</c>
	<c>this document</c>

	<c>1</c>
	<c>sysDescr</c>
	<c>this document</c>

	<c>2</c>
	<c>sysName</c>
	<c>this document</c>

	<c>3</c>
	<c>Reserved</c>
	<c>this document</c>

	<c>4</c>
	<c>Reserved</c>
	<c>this document</c>
	
	<c>65535</c>
	<c>Reserved</c>
	<c>this document</c>
</texttable>
</section>

<section anchor="Security" title="Security Considerations">
<t>
	This rearrangement of deck chairs does not change the
	underlying security issues inherent in the existing <xref
	target="RFC7854"/>.
</t>
</section>

<section anchor="Implementation" title="Implementation status - RFC EDITOR: REMOVE BEFORE PUBLICATION">
<t>
   This section records the status of known implementations of the
   protocol defined by this specification at the time of posting of this
   Internet-Draft.  The description of implementations in this section
   is intended to assist the IETF in its decision processes in progressing
   drafts to RFCs. Please note that the listing of any individual
   implementation here does not imply endorsement by the IETF. Furthermore,
   no effort has been spent to verify the information presented here that
   was supplied by IETF contributors.  This is not intended as, and must
   not be construed to be, a catalog of available implementations or their
   features. Readers are advised to note that other implementations may
   exist.
</t>
<t>
   As of today these vendors have produced an implementation of the
   BMP Peer Up Namespace:

   <list style="symbols">
   <t>FRRouting</t>
   <t>pmacct</t>
   </list>
</t>
</section>

<section anchor="Acknowledgements" title="Acknowledgements">
<t>
	The authors would like to thank Maxence Younsi for his review.
</t>
</section>

  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <references title="Normative References">
      <!--?rfc include=
      "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
      
      <?rfc include="reference.RFC.2119.xml"?>
	  <?rfc include="reference.RFC.1213.xml"?>
	  <?rfc include="reference.RFC.7854.xml"?>
	  <?rfc include="reference.RFC.8671.xml"?>
	  <?rfc include="reference.RFC.9069.xml"?>
	  <?rfc include="reference.RFC.8174.xml"?>
<!--	  <?rfc include="reference.RFC.8126.xml"?> -->
    </references>
    
  </back>
</rfc>
