draft-ietf-grow-bmp-tlv-04.txt | draft-ietf-grow-bmp-tlv-05.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: May 20, 2021 H. Smit | Expires: 28 January 2022 27 July 2021 | |||
Independent | ||||
November 16, 2020 | ||||
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-04 | draft-ietf-grow-bmp-tlv-05 | |||
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 43 ¶ | 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 May 20, 2021. | This Internet-Draft will expire on 28 January 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 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 | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
(https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Simplified BSD License. | |||
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 . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
1. Introduction | 1. Introduction | |||
The BGP Monitoring Protocol (BMP) is defined in RFC 7854 [RFC7854]. | The BGP Monitoring Protocol (BMP) is defined in The Route Monitoring | |||
message consists of: The Peer Down Notification message consists of: | ||||
The Route Monitoring message consists of: | RFC 7854 [RFC7854]. | |||
o Common Header | ||||
o Per-Peer Header | * Common Header | |||
o BGP Update PDU | * Per-Peer Header | |||
The Peer Down Notification message consists of: | * BGP Update PDU | |||
o Common Header | * Common Header | |||
o Per-Peer Header | * Per-Peer Header | |||
o Reason | * Reason | |||
o Data (only if Reason code is 1, 2 or 3) | * 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: | |||
o 2 octets of TLV Type, | * 2 octets of TLV Type, | |||
o 2 octets of TLV Length, | * 2 octets of TLV Length, | |||
o 0 or more octets of TLV Value. | * 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. | |||
In Route Monitoring messages there may be a need to map TLVs to NLRIs | Route Monitoring messages may require per-NLRI TLVs, that is, there | |||
contained in the BGP Update message, for example, to express | may be a need to map TLVs to NLRIs contained in the BGP Update | |||
additional characteristics of a specific NLRI. For this purpose | message, for example, to express additional characteristics of a | |||
specifically TLVs in Route Monitoring messages can be optionally | specific NLRI. For this purpose specifically, TLVs in Route | |||
indexed, with the index starting at zero to refer to the first NLRI, | Monitoring messages can be optionally indexed, with the index | |||
and encoded as in the following figure: | starting at zero to refer to the first NLRI, and 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 | ||||
to Route Monitoring messages and, for example, they do not apply to | ||||
Route Mirroring ones because the sender may not be aware of the | ||||
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: | |||
o Version: Indicates the BMP version. This is set to '4' for all | * Version: Indicates the BMP version. This is set to '4' for all | |||
messages. | messages. | |||
o Message Length: Total length of the message in bytes (including | * 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: | |||
o Type = TBD1: the BGP Update PDU is encoded with support for the | * 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. | |||
o Type = TBD2: the BGP Update PDU is encoded with the ADD-PATH | * 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. | |||
o Type = TBD3: the BGP Update PDU is encoded with the Multiple | * 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 39 ¶ | 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): | |||
o Type = TBD1: Support for the 4-octet AS number capability. The | * 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. | |||
o Type = TBD2: ADD-PATH capability. The value field contains a | * 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. | |||
o Type = TBD3: Multiple Labels capability. The value field contains | * 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 6, line 42 ¶ | skipping to change at page 6, line 46 ¶ | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8277] Rosen, E., "Using BGP to Bind MPLS Labels to Address | [RFC8277] Rosen, E., "Using BGP to Bind MPLS Labels to Address | |||
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 and Camilo Cardona for | The authors would like to thank Jeff Haas, Camilo Cardona, Thomas | |||
their valuable input. The authors would also like to thank Greg | Graf and Pierre Francois for their valuable input. The authors would | |||
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 | |||
Hoofddorp, WT 2132 | 2132 Hoofddorp | |||
NL | Netherlands | |||
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 100095 | Beijing | |||
100095 | ||||
China | China | |||
Email: guyunan@huawei.com | Email: guyunan@huawei.com | |||
Henk Smit | ||||
Independent | ||||
NL | ||||
Email: hhw.smit@xs4all.nl | ||||
End of changes. 31 change blocks. | ||||
51 lines changed or deleted | 53 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/ |