draft-ietf-grow-bmp-tlv-05.txt | draft-ietf-grow-bmp-tlv-06.txt | |||
---|---|---|---|---|
Global Routing Operations P. Lucente | Global Routing Operations P. Lucente | |||
Internet-Draft NTT | Internet-Draft NTT | |||
Updates: 7854 (if approved) Y. Gu | Updates: 7854 (if approved) Y. Gu | |||
Intended status: Standards Track Huawei | Intended status: Standards Track Huawei | |||
Expires: 28 January 2022 27 July 2021 | Expires: April 28, 2022 October 25, 2021 | |||
TLV support for BMP Route Monitoring and Peer Down Messages | TLV support for BMP Route Monitoring and Peer Down Messages | |||
draft-ietf-grow-bmp-tlv-05 | draft-ietf-grow-bmp-tlv-06 | |||
Abstract | Abstract | |||
Most of the message types defined by the BGP Monitoring Protocol | Most of the message types defined by the BGP Monitoring Protocol | |||
(BMP) do provision for optional trailing data. However, Route | (BMP) do provision for optional trailing data. However, Route | |||
Monitoring messages (to provide a snapshot of the monitored Routing | Monitoring messages (to provide a snapshot of the monitored Routing | |||
Information Base) and Peer Down messages (to indicate that a peering | Information Base) and Peer Down messages (to indicate that a peering | |||
session was terminated) do not. Supporting optional data in TLV | session was terminated) do not. Supporting optional data in TLV | |||
format across all BMP message types allows for an homogeneous and | format across all BMP message types allows for an homogeneous and | |||
extensible surface that would be useful for the most different use- | extensible surface that would be useful for the most different use- | |||
skipping to change at page 1, line 41 ¶ | skipping to change at page 1, line 41 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on 28 January 2022. | This Internet-Draft will expire on April 28, 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Simplified BSD License text | to this document. Code Components extracted from this document must | |||
as described in Section 4.e of the Trust Legal Provisions and are | include Simplified BSD License text as described in Section 4.e of | |||
provided without warranty as described in the Simplified BSD License. | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
3. TLV encoding . . . . . . . . . . . . . . . . . . . . . . . . 3 | 3. TLV encoding . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
4. BMP Message Format . . . . . . . . . . . . . . . . . . . . . 4 | 4. BMP Message Format . . . . . . . . . . . . . . . . . . . . . 4 | |||
4.1. Common Header . . . . . . . . . . . . . . . . . . . . . . 4 | 4.1. Common Header . . . . . . . . . . . . . . . . . . . . . . 4 | |||
4.2. TLV data in Route Monitoring . . . . . . . . . . . . . . 4 | 4.2. TLV data in Route Monitoring . . . . . . . . . . . . . . 4 | |||
4.3. TLV data in Peer Down . . . . . . . . . . . . . . . . . . 5 | 4.3. TLV data in Peer Down . . . . . . . . . . . . . . . . . . 5 | |||
4.4. TLV data in other BMP messages . . . . . . . . . . . . . 5 | 4.4. TLV data in other BMP messages . . . . . . . . . . . . . 5 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | |||
6. Operational Considerations . . . . . . . . . . . . . . . . . 5 | 6. Operational Considerations . . . . . . . . . . . . . . . . . 5 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | |||
8. Normative References . . . . . . . . . . . . . . . . . . . . 6 | 8. Normative References . . . . . . . . . . . . . . . . . . . . 6 | |||
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 6 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
1. Introduction | 1. Introduction | |||
The BGP Monitoring Protocol (BMP) is defined in The Route Monitoring | The BGP Monitoring Protocol (BMP) is defined in RFC 7854 [RFC7854]. | |||
message consists of: The Peer Down Notification message consists of: | ||||
RFC 7854 [RFC7854]. | ||||
* Common Header | The Route Monitoring message consists of: | |||
* Per-Peer Header | o Common Header | |||
* BGP Update PDU | o Per-Peer Header | |||
* Common Header | o BGP Update PDU | |||
* Per-Peer Header | The Peer Down Notification message consists of: | |||
* Reason | o Common Header | |||
* Data (only if Reason code is 1, 2 or 3) | 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 | This means that both Route Monitoring and Peer Down messages have a | |||
non-extensible format. In the Route Monitoring case, this is | non-extensible format. In the Route Monitoring case, this is | |||
limiting if wanting to transmit characteristics of transported NLRIs | limiting if wanting to transmit characteristics of transported NLRIs | |||
(ie. to help stateless parsing) or to add vendor-specific data. In | (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 | 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 | Peer Up is desired. The proposal of this document is to bump the BMP | |||
version, for backward compatibility, and allow all message types to | version, for backward compatibility, and allow all message types to | |||
provision for trailing TLV data. | provision for trailing TLV data. | |||
2. Terminology | 2. Terminology | |||
skipping to change at page 3, line 26 ¶ | skipping to change at page 3, line 26 ¶ | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 RFC 2119 [RFC2119] RFC 8174 [RFC8174] when, and only when, they | 14 RFC 2119 [RFC2119] RFC 8174 [RFC8174] when, and only when, they | |||
appear in all capitals, as shown here. | appear in all capitals, as shown here. | |||
3. TLV encoding | 3. TLV encoding | |||
The TLV data type is already defined in Section 4.4 of [RFC7854] for | The TLV data type is already defined in Section 4.4 of [RFC7854] for | |||
the Initiation and Peer Up message types. A TLV consists of: | the Initiation and Peer Up message types. A TLV consists of: | |||
* 2 octets of TLV Type, | o 2 octets of TLV Type, | |||
* 2 octets of TLV Length, | o 2 octets of TLV Length, | |||
* 0 or more octets of TLV Value. | 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 | 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) | | | Type (2 octets) | Length (2 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Value (variable) ~ | ~ Value (variable) ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 1 | Figure 1 | |||
TLVs SHOULD be sorted by their code point. Multiple TLVs of the same | 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 | 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 | the specific use-cases whether all, any, the first or the last TLV | |||
should be considered. | should be considered. | |||
Route Monitoring messages may require per-NLRI TLVs, that is, there | Route Monitoring messages may require per-NLRI TLVs, that is, there | |||
may be a need to map TLVs to NLRIs contained in the BGP Update | may be a need to map TLVs to NLRIs contained in the BGP Update | |||
message, for example, to express additional characteristics of a | message, for example, to express additional characteristics of a | |||
specific NLRI. For this purpose specifically, TLVs in Route | specific NLRI. For this purpose specifically, TLVs in Route | |||
Monitoring messages can be optionally indexed, with the index | Monitoring messages MUST be indexed, with the index starting at one | |||
starting at zero to refer to the first NLRI, and encoded as in the | (1) to refer to the first NLRI. Index zero (0) specifies that a TLV | |||
following figure: | does apply to all NLRIs contained in the BGP Update message. Indexed | |||
TLVs are encoded as in the following figure: | ||||
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 | 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) | | | Type (2 octets) | Length (2 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Index (2 octets) | | | Index (2 octets) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Value (variable) ~ | ~ Value (variable) ~ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 2 | Figure 2 | |||
Of the BMP message types defined so far, indexed TLVs do apply only | Of the BMP message types defined so far, indexed TLVs do apply only | |||
to Route Monitoring messages and, for example, they do not apply to | to Route Monitoring messages and, for example, they do not apply to | |||
Route Mirroring ones because the sender may not be aware of the | Route Mirroring ones because the sender may not be aware of the | |||
payload of the transported BGP Update message. | payload of the transported BGP Update message. | |||
4. BMP Message Format | 4. BMP Message Format | |||
4.1. Common Header | 4.1. Common Header | |||
Section 4.1 of [RFC7854] defines the Common Header. While the | Section 4.1 of [RFC7854] defines the Common Header. While the | |||
structure remains unaltered, the following two definitions are | structure remains unaltered, the following two definitions are | |||
changed: | changed: | |||
* Version: Indicates the BMP version. This is set to '4' for all | o Version: Indicates the BMP version. This is set to '4' for all | |||
messages. | messages. | |||
* Message Length: Total length of the message in bytes (including | o Message Length: Total length of the message in bytes (including | |||
headers, encapsulated BGP message and optional data) | headers, encapsulated BGP message and optional data) | |||
4.2. TLV data in Route Monitoring | 4.2. TLV data in Route Monitoring | |||
The Route Monitoring message type is defined in Section 4.6 of | The Route Monitoring message type is defined in Section 4.6 of | |||
[RFC7854]. The BGP Update PDU Section 4.3 of [RFC4271] MAY be | [RFC7854]. The BGP Update PDU Section 4.3 of [RFC4271] MAY be | |||
followed by TLV data. This document defines the following new code | followed by TLV data. This document defines the following new code | |||
points to help stateless parsing of BGP Update PDUs: | points to help stateless parsing of BGP Update PDUs: | |||
* Type = TBD1: the BGP Update PDU is encoded with support for the | o Type = TBD1: the BGP Update PDU is encoded with support for the | |||
4-octet AS number capability RFC 6793 [RFC6793], value MUST be | 4-octet AS number capability RFC 6793 [RFC6793], value MUST be | |||
boolean. | boolean. | |||
* Type = TBD2: the BGP Update PDU is encoded with the ADD-PATH | o Type = TBD2: the BGP Update PDU is encoded with the ADD-PATH | |||
capability RFC 7911 [RFC7911], value MUST be boolean. | capability RFC 7911 [RFC7911], value MUST be boolean. | |||
* Type = TBD3: the BGP Update PDU is encoded with the Multiple | o Type = TBD3: the BGP Update PDU is encoded with the Multiple | |||
Labels capability RFC 8277 [RFC8277], value MUST be boolean. | Labels capability RFC 8277 [RFC8277], value MUST be boolean. | |||
4.3. TLV data in Peer Down | 4.3. TLV data in Peer Down | |||
The Peer Down Notification message type is defined in Section 4.9 of | The Peer Down Notification message type is defined in Section 4.9 of | |||
[RFC7854]. For Reason codes 1 or 3, a BGP Notification PDU follows; | [RFC7854]. For Reason codes 1 or 3, a BGP Notification PDU follows; | |||
the PDU MAY be followed by TLV data. For Reason code 2, a 2-byte | the PDU MAY be followed by TLV data. For Reason code 2, a 2-byte | |||
field to give additional FSM info follows; this field MAY be followed | field to give additional FSM info follows; this field MAY be followed | |||
by TLV data. For all other Reason codes, TLV data MAY follow the | by TLV data. For all other Reason codes, TLV data MAY follow the | |||
Reason field. | Reason field. | |||
skipping to change at page 5, line 45 ¶ | skipping to change at page 5, line 45 ¶ | |||
the packing of information in such messages and have specific impacts | the packing of information in such messages and have specific impacts | |||
on the memory and CPU used in a BMP implementation. As a result of | on the memory and CPU used in a BMP implementation. As a result of | |||
that it should always be possible to disable such features to | that it should always be possible to disable such features to | |||
mitigate their impact. | mitigate their impact. | |||
7. IANA Considerations | 7. IANA Considerations | |||
This document defines the following new TLV types for BMP Route | This document defines the following new TLV types for BMP Route | |||
Monitoring and Peer Down messages (Section 4.2): | Monitoring and Peer Down messages (Section 4.2): | |||
* Type = TBD1: Support for the 4-octet AS number capability. The | o Type = TBD1: Support for the 4-octet AS number capability. The | |||
value field contains a boolean value of 1 if the BGP Update PDU | value field contains a boolean value of 1 if the BGP Update PDU | |||
enclosed in the Route Monitoring message was encoded according to | enclosed in the Route Monitoring message was encoded according to | |||
the capability. | the capability. | |||
* Type = TBD2: ADD-PATH capability. The value field contains a | o Type = TBD2: ADD-PATH capability. The value field contains a | |||
boolean value of 1 if the BGP Update PDU enclosed in the Route | boolean value of 1 if the BGP Update PDU enclosed in the Route | |||
Monitoring message was encoded according to the capability. | Monitoring message was encoded according to the capability. | |||
* Type = TBD3: Multiple Labels capability. The value field contains | o Type = TBD3: Multiple Labels capability. The value field contains | |||
a boolean value of 1 if the BGP Update PDU enclosed in the Route | a boolean value of 1 if the BGP Update PDU enclosed in the Route | |||
Monitoring message was encoded according to the capability. | Monitoring message was encoded according to the capability. | |||
8. Normative References | 8. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
skipping to change at page 7, line 4 ¶ | skipping to change at page 7, line 6 ¶ | |||
Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017, | Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017, | |||
<https://www.rfc-editor.org/info/rfc8277>. | <https://www.rfc-editor.org/info/rfc8277>. | |||
Acknowledgements | Acknowledgements | |||
The authors would like to thank Jeff Haas, Camilo Cardona, Thomas | The authors would like to thank Jeff Haas, Camilo Cardona, Thomas | |||
Graf and Pierre Francois for their valuable input. The authors would | Graf and Pierre Francois for their valuable input. The authors would | |||
also like to thank Greg Skinner for his review. | also like to thank Greg Skinner for his review. | |||
Authors' Addresses | Authors' Addresses | |||
Paolo Lucente | Paolo Lucente | |||
NTT | NTT | |||
Siriusdreef 70-72 | Siriusdreef 70-72 | |||
2132 Hoofddorp | Hoofddorp, WT 2132 | |||
Netherlands | NL | |||
Email: paolo@ntt.net | Email: paolo@ntt.net | |||
Yunan Gu | Yunan Gu | |||
Huawei | Huawei | |||
Huawei Bld., No.156 Beiqing Rd. | Huawei Bld., No.156 Beiqing Rd. | |||
Beijing | Beijing 100095 | |||
100095 | ||||
China | China | |||
Email: guyunan@huawei.com | Email: guyunan@huawei.com | |||
End of changes. 30 change blocks. | ||||
41 lines changed or deleted | 45 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |