idnits 2.17.1 draft-ietf-grow-bmp-tlv-07.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 (7 March 2022) is 782 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: 8 September 2022 7 March 2022 8 TLV support for BMP Route Monitoring and Peer Down Messages 9 draft-ietf-grow-bmp-tlv-07 11 Abstract 13 Most of the message types defined by the BGP Monitoring Protocol 14 (BMP) make provision for optional trailing data. However, Route 15 Monitoring messages (which provide a snapshot of the monitored 16 Routing Information Base) and Peer Down messages (which indicate that 17 a peering session was terminated) do not. Supporting optional data 18 in TLV format across all BMP message types allows for a homogeneous 19 and extensible surface that would be useful for the most different 20 use-cases that need to convey additional data to a BMP station. 21 While it is not intended for this document to cover any specific 22 utilization scenario, it defines a simple way to support optional TLV 23 data in all message types. 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at https://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on 8 September 2022. 42 Copyright Notice 44 Copyright (c) 2022 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 49 license-info) in effect on the date of publication of this document. 50 Please review these documents carefully, as they describe your rights 51 and restrictions with respect to this document. Code Components 52 extracted from this document must include Revised BSD License text as 53 described in Section 4.e of the Trust Legal Provisions and are 54 provided without warranty as described in the Revised BSD License. 56 Table of Contents 58 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 59 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 60 3. TLV encoding . . . . . . . . . . . . . . . . . . . . . . . . 3 61 4. BMP Message Format . . . . . . . . . . . . . . . . . . . . . 4 62 4.1. Common Header . . . . . . . . . . . . . . . . . . . . . . 4 63 4.2. TLV data in Route Monitoring . . . . . . . . . . . . . . 4 64 4.3. TLV data in Peer Down . . . . . . . . . . . . . . . . . . 5 65 4.4. TLV data in other BMP messages . . . . . . . . . . . . . 5 66 5. Error handling . . . . . . . . . . . . . . . . . . . . . . . 5 67 6. Security Considerations . . . . . . . . . . . . . . . . . . . 5 68 7. Operational Considerations . . . . . . . . . . . . . . . . . 5 69 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 70 9. Normative References . . . . . . . . . . . . . . . . . . . . 6 71 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 7 72 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 74 1. Introduction 76 The BGP Monitoring Protocol (BMP) is defined in The Route Monitoring 77 message consists of: The Peer Down Notification message consists of: 78 RFC 7854 [RFC7854]. 80 * Common Header 82 * Per-Peer Header 84 * BGP Update PDU 86 * Common Header 88 * Per-Peer Header 90 * Reason 92 * Data (only if Reason code is 1, 2 or 3) 93 This means that both Route Monitoring and Peer Down messages have a 94 non-extensible format. In the Route Monitoring case, this is 95 prevents the transmission of characteristics of transported NLRIs 96 (e.g. to help with stateless parsing) or of vendor-specific data. In 97 the Peer Down case, this prevents matching with TLVs previously sent 98 with the Peer Up message. The proposal of this document is to bump 99 the BMP version, for backward compatibility, and allow all message 100 types to make provision for trailing TLV data. 102 2. Terminology 104 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 105 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 106 "OPTIONAL" in this document are to be interpreted as described in BCP 107 14 RFC 2119 [RFC2119] RFC 8174 [RFC8174] when, and only when, they 108 appear in all capitals, as shown here. 110 3. TLV encoding 112 The TLV data type is already defined in Section 4.4 of [RFC7854] for 113 the Initiation and Peer Up message types. A TLV consists of: 115 * 2 octets of TLV Type, 117 * 2 octets of TLV Length, 119 * 0 or more octets of TLV Value. 121 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 122 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 123 | Type (2 octets) | Length (2 octets) | 124 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 125 ~ Value (variable) ~ 126 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 128 Figure 1 130 TLVs SHOULD be sorted by their code point. Multiple TLVs of the same 131 type can be repeated as part of the same message, and it is left to 132 the specific use-cases whether all, any, the first or the last TLV 133 should be considered. 135 Route Monitoring messages may require per-NLRI TLVs, that is, there 136 may be a need to map TLVs to NLRIs contained in the BGP Update 137 message, for example, to express additional characteristics of a 138 specific NLRI. For this purpose specifically, TLVs in Route 139 Monitoring messages MUST be indexed, with the index starting at one 140 (1) to refer to the first NLRI. Index zero (0) specifies that a TLV 141 does apply to all NLRIs contained in the BGP Update message. Indexed 142 TLVs are encoded as in the following figure: 144 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 145 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 146 | Type (2 octets) | Length (2 octets) | 147 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 148 | Index (2 octets) | 149 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 150 ~ Value (variable) ~ 151 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 153 Figure 2 155 Of the BMP message types defined so far, indexed TLVs apply only to 156 Route Monitoring messages and, for example, they do not apply to 157 Route Mirroring messages because the sender may not be aware of the 158 payload of the transported BGP Update message. 160 4. BMP Message Format 162 4.1. Common Header 164 Section 4.1 of [RFC7854] defines the Common Header. While the 165 structure remains unaltered, the following two definitions are 166 changed: 168 * Version: Indicates the BMP version. This is set to '4' for all 169 messages. 171 * Message Length: Total length of the message in bytes (including 172 headers, encapsulated BGP message and optional data) 174 4.2. TLV data in Route Monitoring 176 The Route Monitoring message type is defined in Section 4.6 of 177 [RFC7854]. The BGP Update PDU Section 4.3 of [RFC4271] MAY be 178 followed by TLV data. This document defines the following new code 179 points to help stateless parsing of BGP Update PDUs: 181 * Type = TBD1: the BGP Update PDU is encoded with support for the 182 4-octet AS number capability RFC 6793 [RFC6793], length MUST be 1 183 and value MUST be 0 for false and 1 for true. 185 * Type = TBD2: the BGP Update PDU is encoded with the ADD-PATH 186 capability RFC 7911 [RFC7911], length MUST be 1 and value MUST be 187 0 for false and 1 for true. 189 * Type = TBD3: the BGP Update PDU is encoded with the Multiple 190 Labels capability RFC 8277 [RFC8277], length MUST be 1 and value 191 MUST be 0 for false and 1 for true. 193 4.3. TLV data in Peer Down 195 The Peer Down Notification message type is defined in Section 4.9 of 196 [RFC7854]. For Reason codes 1 or 3, a BGP Notification PDU follows; 197 the PDU MAY be followed by TLV data. For Reason code 2, a 2-byte 198 field to give additional FSM info follows; this field MAY be followed 199 by TLV data. For all other Reason codes, TLV data MAY follow the 200 Reason field. 202 4.4. TLV data in other BMP messages 204 All other message types defined in RFC7854 [RFC7854] already provide 205 for TLV data. It is RECOMMENDED that all future BMP message types 206 also provide for trailing TLV data. 208 5. Error handling 210 When a BGP PDU is enclosed in BMP messages (always for Route 211 Monitoring messages, in some cases for Peer Down messages), 212 processing of optional trailing data is subject to proper decoding of 213 a well-formed BGP message. 215 Additionally, it is worth nothing that RFC8654 [RFC8654] permits BGP 216 Updates and other messages to grow to a length of 65535 octets. This 217 may cause a BMP PDU that attempts to encapsulate such long messages 218 to overflow. 220 6. Security Considerations 222 It is not believed that this document adds any additional security 223 considerations. 225 7. Operational Considerations 227 In Route Monitoring messages, the number of TLVs can be bound to the 228 amount of NLRIs carried in the BGP Update message. This may degrade 229 the packing of information in such messages and have specific impacts 230 on the memory and CPU used in a BMP implementation. As a result of 231 that it should always be possible to disable such features to 232 mitigate their impact. 234 8. IANA Considerations 236 This document requests the definition of two new registries "BMP 237 Route Monitoring Information TLVs" and "BMP Peer Down Information 238 TLVs". As part of the "BMP Route Monitoring Information TLVs" 239 registry, the following new TLV types are defined (Section 4.2): 241 * Type = TBD1: Support for the 4-octet AS number capability. The 242 value field is set to 1 if the BGP Update PDU enclosed in the 243 Route Monitoring message was encoded according to the capability. 245 * Type = TBD2: ADD-PATH capability. The value field is set to 1 if 246 the BGP Update PDU enclosed in the Route Monitoring message was 247 encoded according to the capability. 249 * Type = TBD3: Multiple Labels capability. The value field is set 250 to 1 if the BGP Update PDU enclosed in the Route Monitoring 251 message was encoded according to the capability. 253 9. Normative References 255 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 256 Requirement Levels", BCP 14, RFC 2119, 257 DOI 10.17487/RFC2119, March 1997, 258 . 260 [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A 261 Border Gateway Protocol 4 (BGP-4)", RFC 4271, 262 DOI 10.17487/RFC4271, January 2006, 263 . 265 [RFC6793] Vohra, Q. and E. Chen, "BGP Support for Four-Octet 266 Autonomous System (AS) Number Space", RFC 6793, 267 DOI 10.17487/RFC6793, December 2012, 268 . 270 [RFC7854] Scudder, J., Ed., Fernando, R., and S. Stuart, "BGP 271 Monitoring Protocol (BMP)", RFC 7854, 272 DOI 10.17487/RFC7854, June 2016, 273 . 275 [RFC7911] Walton, D., Retana, A., Chen, E., and J. Scudder, 276 "Advertisement of Multiple Paths in BGP", RFC 7911, 277 DOI 10.17487/RFC7911, July 2016, 278 . 280 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 281 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 282 May 2017, . 284 [RFC8277] Rosen, E., "Using BGP to Bind MPLS Labels to Address 285 Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017, 286 . 288 [RFC8654] Bush, R., Patel, K., and D. Ward, "Extended Message 289 Support for BGP", RFC 8654, DOI 10.17487/RFC8654, October 290 2019, . 292 Acknowledgements 294 The authors would like to thank Jeff Haas, Camilo Cardona, Thomas 295 Graf, Pierre Francois and Ben Maddison for their valuable input. The 296 authors would also like to thank Greg Skinner and Zongpeng Du for 297 their review. 299 Authors' Addresses 301 Paolo Lucente 302 NTT 303 Siriusdreef 70-72 304 2132 Hoofddorp 305 Netherlands 306 Email: paolo@ntt.net 308 Yunan Gu 309 Huawei 310 Huawei Bld., No.156 Beiqing Rd. 311 Beijing 312 100095 313 China 314 Email: guyunan@huawei.com