idnits 2.17.1 draft-ietf-grow-bmp-tlv-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The draft header indicates that this document updates RFC7854, but the abstract doesn't seem to mention this, which it should. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document date (September 9, 2020) is 1325 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) No issues found here. Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Global Routing Operations P. Lucente 3 Internet-Draft NTT 4 Updates: 7854 (if approved) Y. Gu 5 Intended status: Standards Track Huawei 6 Expires: March 13, 2021 H. Smit 7 Independent 8 September 9, 2020 10 TLV support for BMP Route Monitoring and Peer Down Messages 11 draft-ietf-grow-bmp-tlv-03 13 Abstract 15 Most of the message types defined by the BGP Monitoring Protocol 16 (BMP) do provision for optional trailing data. However, Route 17 Monitoring messages (to provide a snapshot of the monitored Routing 18 Information Base) and Peer Down messages (to indicate that a peering 19 session was terminated) do not. Supporting optional data in TLV 20 format across all BMP message types allows for an homogeneous and 21 extensible surface that would be useful for the most different use- 22 cases that need to convey additional data to a BMP station. While it 23 is not intended for this document to cover any specific utilization 24 scenario, it defines a simple way to support optional TLV data in all 25 message types. 27 Status of This Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF). Note that other groups may also distribute 34 working documents as Internet-Drafts. The list of current Internet- 35 Drafts is at https://datatracker.ietf.org/drafts/current/. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 This Internet-Draft will expire on March 13, 2021. 44 Copyright Notice 46 Copyright (c) 2020 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents 51 (https://trustee.ietf.org/license-info) in effect on the date of 52 publication of this document. Please review these documents 53 carefully, as they describe your rights and restrictions with respect 54 to this document. Code Components extracted from this document must 55 include Simplified BSD License text as described in Section 4.e of 56 the Trust Legal Provisions and are provided without warranty as 57 described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 62 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 63 3. TLV encoding . . . . . . . . . . . . . . . . . . . . . . . . 3 64 4. BMP Message Format . . . . . . . . . . . . . . . . . . . . . 4 65 4.1. Common Header . . . . . . . . . . . . . . . . . . . . . . 4 66 4.2. TLV data in Route Monitoring . . . . . . . . . . . . . . 4 67 4.3. TLV data in Peer Down . . . . . . . . . . . . . . . . . . 5 68 4.4. TLV data in other BMP messages . . . . . . . . . . . . . 5 69 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 70 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 71 7. Normative References . . . . . . . . . . . . . . . . . . . . 6 72 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 6 73 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 75 1. Introduction 77 The BGP Monitoring Protocol (BMP) is defined in RFC 7854 [RFC7854]. 79 The Route Monitoring message consists of: 81 o Common Header 83 o Per-Peer Header 85 o BGP Update PDU 87 The Peer Down Notification message consists of: 89 o Common Header 91 o Per-Peer Header 93 o Reason 95 o Data (only if Reason code is 1, 2 or 3) 96 This means that both Route Monitoring and Peer Down messages have a 97 non-extensible format. In the Route Monitoring case, this is 98 limiting if wanting to transmit characteristics of transported NLRIs 99 (ie. to help stateless parsing) or to add vendor-specific data. In 100 the Peer Down case, this is limiting if matching TLVs sent with the 101 Peer Up is desired. The proposal of this document is to bump the BMP 102 version, for backward compatibility, and allow all message types to 103 provision for trailing TLV data. 105 2. Terminology 107 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 108 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 109 "OPTIONAL" in this document are to be interpreted as described in BCP 110 14 RFC 2119 [RFC2119] RFC 8174 [RFC8174] when, and only when, they 111 appear in all capitals, as shown here. 113 3. TLV encoding 115 The TLV data type is already defined in Section 4.4 of [RFC7854] for 116 the Initiation and Peer Up message types. A TLV consists of: 118 o 2 octets of TLV Type, 120 o 2 octets of TLV Length, 122 o 0 or more octets of TLV Value. 124 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 125 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 126 | Type (2 octets) | Length (2 octets) | 127 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 128 ~ Value (variable) ~ 129 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 131 Figure 1 133 TLVs SHOULD be sorted by their code point. Multiple TLVs of the same 134 type can be repeated as part of the same message, and it is left to 135 the specific use-cases whether all, any, the first or the last TLV 136 should be considered. 138 TLVs can be recursive and include sub-TLVs as their value. This 139 approach can be useful to build container TLVs to better isolate a 140 group of TLVs for the same function from TLVs meant for different 141 functions. This scheme SHOULD be used whenever a certain function 142 requires a specific mapping related to the order of NLRIs contained 143 in the Route Monitor BGP message. Here below an example of a TLV for 144 fictional function 'FuncA' containing two sub-TLV types, 'X' and 'Y': 146 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 147 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 148 | Type FuncA (2 octets) | Length (2 octets) | 149 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 150 | Sub-Type X (2 octets) | Length (2 octets) | 151 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 152 ~ Value (variable) ~ 153 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 154 | Sub-Type Y (2 octets) | Length (2 octets) | 155 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 156 ~ Value (variable) ~ 157 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 158 | Sub-Type X (2 octets) | Length (2 octets) | 159 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 160 ~ Value (variable) ~ 161 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 162 | Sub-Type Y (2 octets) | Length (2 octets) | 163 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 164 ~ Value (variable) ~ 165 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 167 Figure 2 169 4. BMP Message Format 171 4.1. Common Header 173 Section 4.1 of [RFC7854] defines the Common Header. While the 174 structure remains unaltered, the following two definitions are 175 changed: 177 o Version: Indicates the BMP version. This is set to '4' for all 178 messages. 180 o Message Length: Total length of the message in bytes (including 181 headers, encapsulated BGP message and optional data) 183 4.2. TLV data in Route Monitoring 185 The Route Monitoring message type is defined in Section 4.6 of 186 [RFC7854]. The BGP Update PDU Section 4.3 of [RFC4271] MAY be 187 followed by TLV data. This document defines the following new code 188 points to help stateless parsing of BGP Update PDUs: 190 o Type = TBD1: the BGP Update PDU is encoded with support for the 191 4-octet AS number capability RFC 6793 [RFC6793], value MUST be 192 boolean. 194 o Type = TBD2: the BGP Update PDU is encoded with the ADD-PATH 195 capability RFC 7911 [RFC7911], value MUST be boolean. 197 o Type = TBD3: the BGP Update PDU is encoded with the Multiple 198 Labels capability RFC 8277 [RFC8277], value MUST be boolean. 200 4.3. TLV data in Peer Down 202 The Peer Down Notification message type is defined in Section 4.9 of 203 [RFC7854]. For Reason codes 1 or 3, a BGP Notification PDU follows; 204 the PDU MAY be followed by TLV data. For Reason code 2, a 2-byte 205 field to give additional FSM info follows; this field MAY be followed 206 by TLV data. For all other Reason codes, TLV data MAY follow the 207 Reason field. 209 4.4. TLV data in other BMP messages 211 All other message types defined in RFC7854 [RFC7854] do already 212 provision for TLV data. It is RECOMMENDED that all future BMP 213 message types will provision for trailing TLV data. 215 5. Security Considerations 217 It is not believed that this document adds any additional security 218 considerations. 220 6. IANA Considerations 222 This document defines the following new TLV types for BMP Route 223 Monitoring and Peer Down messages (Section 4.2): 225 o Type = TBD1: Support for the 4-octet AS number capability. The 226 value field contains a boolean value of 1 if the BGP Update PDU 227 enclosed in the Route Monitoring message was encoded according to 228 the capability. 230 o Type = TBD2: ADD-PATH capability. The value field contains a 231 boolean value of 1 if the BGP Update PDU enclosed in the Route 232 Monitoring message was encoded according to the capability. 234 o Type = TBD3: Multiple Labels capability. The value field contains 235 a boolean value of 1 if the BGP Update PDU enclosed in the Route 236 Monitoring message was encoded according to the capability. 238 7. Normative References 240 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 241 Requirement Levels", BCP 14, RFC 2119, 242 DOI 10.17487/RFC2119, March 1997, 243 . 245 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 246 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 247 DOI 10.17487/RFC4271, January 2006, 248 . 250 [RFC6793] Vohra, Q. and E. Chen, "BGP Support for Four-Octet 251 Autonomous System (AS) Number Space", RFC 6793, 252 DOI 10.17487/RFC6793, December 2012, 253 . 255 [RFC7854] Scudder, J., Ed., Fernando, R., and S. Stuart, "BGP 256 Monitoring Protocol (BMP)", RFC 7854, 257 DOI 10.17487/RFC7854, June 2016, 258 . 260 [RFC7911] Walton, D., Retana, A., Chen, E., and J. Scudder, 261 "Advertisement of Multiple Paths in BGP", RFC 7911, 262 DOI 10.17487/RFC7911, July 2016, 263 . 265 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 266 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 267 May 2017, . 269 [RFC8277] Rosen, E., "Using BGP to Bind MPLS Labels to Address 270 Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017, 271 . 273 Acknowledgements 275 The authors would like to thank Jeff Haas and Camilo Cardona for 276 their valuable input. The authors would also like to thank Greg 277 Skinner for his review. 279 Authors' Addresses 281 Paolo Lucente 282 NTT 283 Siriusdreef 70-72 284 Hoofddorp, WT 2132 285 NL 287 Email: paolo@ntt.net 289 Yunan Gu 290 Huawei 291 Huawei Bld., No.156 Beiqing Rd. 292 Beijing 100095 293 China 295 Email: guyunan@huawei.com 297 Henk Smit 298 Independent 299 NL 301 Email: hhw.smit@xs4all.nl