--- 1/draft-ietf-grow-bmp-tlv-02.txt 2020-09-09 11:13:09.923339268 -0700 +++ 2/draft-ietf-grow-bmp-tlv-03.txt 2020-09-09 11:13:09.939339672 -0700 @@ -1,21 +1,21 @@ Global Routing Operations P. Lucente Internet-Draft NTT Updates: 7854 (if approved) Y. Gu Intended status: Standards Track Huawei -Expires: September 10, 2020 H. Smit +Expires: March 13, 2021 H. Smit Independent - March 9, 2020 + September 9, 2020 TLV support for BMP Route Monitoring and Peer Down Messages - draft-ietf-grow-bmp-tlv-02 + draft-ietf-grow-bmp-tlv-03 Abstract Most of the message types defined by the BGP Monitoring Protocol (BMP) do provision for optional trailing data. However, Route Monitoring messages (to provide a snapshot of the monitored Routing Information Base) and Peer Down messages (to indicate that a peering session was terminated) do not. Supporting optional data in TLV format across all BMP message types allows for an homogeneous and extensible surface that would be useful for the most different use- @@ -32,21 +32,21 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." - This Internet-Draft will expire on September 10, 2020. + This Internet-Draft will expire on March 13, 2021. Copyright Notice Copyright (c) 2020 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 @@ -57,27 +57,27 @@ described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. TLV encoding . . . . . . . . . . . . . . . . . . . . . . . . 3 4. BMP Message Format . . . . . . . . . . . . . . . . . . . . . 4 4.1. Common Header . . . . . . . . . . . . . . . . . . . . . . 4 4.2. TLV data in Route Monitoring . . . . . . . . . . . . . . 4 - 4.3. TLV data in Peer Down . . . . . . . . . . . . . . . . . . 4 - 4.4. TLV data in other BMP messages . . . . . . . . . . . . . 4 + 4.3. TLV data in Peer Down . . . . . . . . . . . . . . . . . . 5 + 4.4. TLV data in other BMP messages . . . . . . . . . . . . . 5 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 - 7. Normative References . . . . . . . . . . . . . . . . . . . . 5 + 7. Normative References . . . . . . . . . . . . . . . . . . . . 6 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 6 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 1. Introduction The BGP Monitoring Protocol (BMP) is defined in RFC 7854 [RFC7854]. The Route Monitoring message consists of: o Common Header o Per-Peer Header @@ -88,22 +88,22 @@ o Common Header o Per-Peer Header o Reason o Data (only if Reason code is 1, 2 or 3) This means that both Route Monitoring and Peer Down messages have a non-extensible format. In the Route Monitoring case, this is - limiting if transmitting characteristics of transported NLRIs is - desired (ie. to help stateless parsing) or vendor-specific data. In + limiting if wanting to transmit characteristics of transported NLRIs + (ie. to help stateless parsing) or to add vendor-specific data. In the Peer Down case, this is limiting if matching TLVs sent with the Peer Up is desired. The proposal of this document is to bump the BMP version, for backward compatibility, and allow all message types to provision for trailing TLV data. 2. Terminology 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 @@ -118,52 +118,81 @@ o 2 octets of TLV Type, o 2 octets of TLV Length, o 0 or more octets of TLV Value. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type (2 octets) | Length (2 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Value (variable, between, 0 and 65535 octets) | + ~ Value (variable) ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1 TLVs SHOULD be sorted by their code point. Multiple TLVs of the same type can be repeated as part of the same message, and it is left to the specific use-cases whether all, any, the first or the last TLV should be considered. - TLVs can be recursive and include sub-TLVs as their value. + TLVs can be recursive and include sub-TLVs as their value. This + approach can be useful to build container TLVs to better isolate a + group of TLVs for the same function from TLVs meant for different + functions. This scheme SHOULD be used whenever a certain function + requires a specific mapping related to the order of NLRIs contained + in the Route Monitor BGP message. Here below an example of a TLV for + fictional function 'FuncA' containing two sub-TLV types, 'X' and 'Y': + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Type FuncA (2 octets) | Length (2 octets) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sub-Type X (2 octets) | Length (2 octets) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ~ Value (variable) ~ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sub-Type Y (2 octets) | Length (2 octets) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ~ Value (variable) ~ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sub-Type X (2 octets) | Length (2 octets) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ~ Value (variable) ~ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Sub-Type Y (2 octets) | Length (2 octets) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + ~ Value (variable) ~ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 2 4. BMP Message Format 4.1. Common Header Section 4.1 of [RFC7854] defines the Common Header. While the structure remains unaltered, the following two definitions are changed: o Version: Indicates the BMP version. This is set to '4' for all messages. - o Message Length: Length of the message in bytes (including headers, - data, encapsulated messages and TLV data, if any) + o Message Length: Total length of the message in bytes (including + headers, encapsulated BGP message and optional data) 4.2. TLV data in Route Monitoring The Route Monitoring message type is defined in Section 4.6 of [RFC7854]. The BGP Update PDU Section 4.3 of [RFC4271] MAY be - followed by TLV data. This document defines the following new codes - to help stateless parsing of BGP Update PDUs: + followed by TLV data. This document defines the following new code + points to help stateless parsing of BGP Update PDUs: o Type = TBD1: the BGP Update PDU is encoded with support for the 4-octet AS number capability RFC 6793 [RFC6793], value MUST be boolean. o Type = TBD2: the BGP Update PDU is encoded with the ADD-PATH capability RFC 7911 [RFC7911], value MUST be boolean. o Type = TBD3: the BGP Update PDU is encoded with the Multiple Labels capability RFC 8277 [RFC8277], value MUST be boolean. @@ -236,22 +265,23 @@ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8277] Rosen, E., "Using BGP to Bind MPLS Labels to Address Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017, . Acknowledgements - The authors would like to thank Jeff Haas for his valuable input. - The authors would also like to thank Greg Skinner for his review. + The authors would like to thank Jeff Haas and Camilo Cardona for + their valuable input. The authors would also like to thank Greg + Skinner for his review. Authors' Addresses Paolo Lucente NTT Siriusdreef 70-72 Hoofddorp, WT 2132 NL Email: paolo@ntt.net