draft-ietf-idr-ext-opt-param-04.txt | draft-ietf-idr-ext-opt-param-05.txt | |||
---|---|---|---|---|
Internet Engineering Task Force E. Chen | Internet Engineering Task Force E. Chen | |||
Internet-Draft Cisco Systems | Internet-Draft Cisco Systems | |||
Intended status: Standards Track J. Scudder | Updates: 4271 (if approved) J. Scudder | |||
Expires: September 15, 2016 Juniper Networks | Intended status: Standards Track Juniper Networks | |||
March 14, 2016 | Expires: December 30, 2016 June 28, 2016 | |||
Extended Optional Parameters Length for BGP OPEN Message | Extended Optional Parameters Length for BGP OPEN Message | |||
draft-ietf-idr-ext-opt-param-04 | draft-ietf-idr-ext-opt-param-05 | |||
Abstract | Abstract | |||
The Optional Parameters in the BGP OPEN message as defined in the | The Optional Parameters in the BGP OPEN message as defined in the | |||
base BGP specification are limited to 255 octets due to a one-octet | base BGP specification are limited to 255 octets due to a one-octet | |||
length field. BGP Capabilities are carried in this field and may | length field. BGP Capabilities are carried in this field and may | |||
foreseeably exceed 255 octets in the future, leading to concern about | foreseeably exceed 255 octets in the future, leading to concern about | |||
this limitation. | this limitation. | |||
In this document we extend the BGP OPEN length field in a backward- | In this document we update RFC 4271 by extending the BGP OPEN length | |||
compatible manner. The Parameter Length field of individual Optional | field in a backward-compatible manner. The Parameter Length field of | |||
Parameters is similarly extended. | individual Optional Parameters is similarly extended. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 September 15, 2016. | This Internet-Draft will expire on December 30, 2016. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 19 ¶ | skipping to change at page 2, line 19 ¶ | |||
1. Introduction | 1. Introduction | |||
The Optional Parameters Length field in the BGP OPEN message is | The Optional Parameters Length field in the BGP OPEN message is | |||
defined in the base BGP specification [RFC4271] as one octet, thus | defined in the base BGP specification [RFC4271] as one octet, thus | |||
limiting the Optional Parameters field in the OPEN message to 255 | limiting the Optional Parameters field in the OPEN message to 255 | |||
octets. As BGP Capabilities [RFC5492] are carried in the Optional | octets. As BGP Capabilities [RFC5492] are carried in the Optional | |||
Parameters field, and new BGP capabilities continue to be introduced, | Parameters field, and new BGP capabilities continue to be introduced, | |||
the limitation is becoming a concern for BGP development. | the limitation is becoming a concern for BGP development. | |||
In this document we extend the BGP OPEN length field in a backward- | In this document we update [RFC4271] by extending the BGP OPEN length | |||
compatible manner. The Parameter Length field of individual Optional | field in a backward-compatible manner. The Parameter Length field of | |||
Parameters is similarly extended. This is done by using Optional | individual Optional Parameters is similarly extended. This is done | |||
Parameters Length of 255 combined with Optional Parameter Type 255 as | by using Optional Parameters Length of 255 combined with Optional | |||
a distinguished value pair, which indicates that an extended Optional | Parameter Type 255 as a distinguished value pair, which indicates | |||
Parameters Length field follows. In this case the Parameter Length | that an extended Optional Parameters Length field follows. In this | |||
field of the Optional Parameters in the BGP OPEN message is also | case the Parameter Length field of the Optional Parameters in the BGP | |||
extended. | OPEN message is also extended. | |||
1.1. Requirements Language | 1.1. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
2. Protocol Extensions | 2. Protocol Extensions | |||
This document reserves Optional Parameter Type code 255 as the | This document reserves Optional Parameter Type code 255 as the | |||
"Extended Length" type code. | "Extended Length" type code. | |||
In the event that the length of Optional Parameters in the BGP OPEN | In the event that the length of Optional Parameters in the BGP OPEN | |||
message does not exceed 255, the encodings of the base BGP | message does not exceed 255, the encodings of the base BGP | |||
specification [RFC4271] MUST be used without alteration. | specification [RFC4271] MUST be used without alteration. | |||
However, if the length of Optional Parameters is greater than 255, | However, if the length of Optional Parameters is greater than 255, an | |||
four octets are used for the length field. Each of the first two | extended encoding is used. The (non-extended) length field is set to | |||
octets is set to 255, and the remaining two octets carry the actual | 255, as is the subsequent octet that in the non-extended format would | |||
length. In addition, the "Parameter Length" field of each Optional | be the first Optional Parameter Type. The subsequent two octets | |||
Parameter is enlarged to two octets. Other than the larger sizes of | carry the actual length. In addition, the "Parameter Length" field | |||
the given fields, there is no change to the BGP OPEN message defined | of each Optional Parameter is enlarged to two octets. Other than the | |||
in [RFC4271]. | larger sizes of the given fields, there is no change to the BGP OPEN | |||
message defined in [RFC4271]. | ||||
When receiving an OPEN, a BGP speaker determines the extended | ||||
encoding is in use if the first Optional Parameter Type field is 255. | ||||
In this case, the BGP speaker MUST ignore the non-extended Optional | ||||
Parameters Length field, and must instead rely on the Extended | ||||
Optional Parameters Length field. | ||||
Accordingly, when the length of Optional Parameters in the BGP OPEN | Accordingly, when the length of Optional Parameters in the BGP OPEN | |||
message is greater than 255, the OPEN message format is modified to | message is greater than 255, the OPEN message format is modified as | |||
be the following: | follows, repurposing the Optional Parameters Length field as well as | |||
the first Optional Parameter Type field to indicate the use of the | ||||
extended format: | ||||
0 1 2 3 | 0 1 2 3 | |||
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 | |||
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| Version | | | Version | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| My Autonomous System | | | My Autonomous System | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Hold Time | | | Hold Time | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BGP Identifier | | | BGP Identifier | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 0xFF | 0xFF | Extended Opt. Parm. Length | | |Non-Ext OP Len.|Non-Ext OP Type| Extended Opt. Parm. Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
| Optional Parameters (variable) | | | Optional Parameters (variable) | | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The non-extended Optional Parameters Length field MUST be set to 255 | ||||
on transmission, and MUST be ignored on receipt once the use of the | ||||
extended format is determined. | ||||
The subsequent one-octet field, that in the non-extended format would | ||||
be the first Optional Parameter Type field, MUST be set to 255 on | ||||
transmission. On receipt, a value of 255 for this field is the | ||||
indication that the extended format is in use. | ||||
In this extended encoding, the subsequent two-octet field, termed the | ||||
Extended Optional Parameters Length field, is an unsigned integer | ||||
indicating the total length of the Optional Parameters field in | ||||
octets. If the value of this field is zero, no Optional Parameters | ||||
are present (this would never be expected to happen with the extended | ||||
encoding, however). | ||||
Likewise, in that situation the Optional Parameters encoding is | Likewise, in that situation the Optional Parameters encoding is | |||
modified to be the following: | modified to be the following: | |||
0 1 2 | 0 1 2 | |||
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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Parm. Type | Parameter Length | | | Parm. Type | Parameter Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Parameter Value (variable) ~ | ~ Parameter Value (variable) ~ | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The rules for encoding Optional Parameters are unchanged with respect | ||||
to those given in [RFC4271] other than the extension of the Parameter | ||||
Length field to be a two-octet unsigned integer. | ||||
In parsing an OPEN message, a BGP speaker MUST use the value of the | In parsing an OPEN message, a BGP speaker MUST use the value of the | |||
one-octet "Optional Parameters Length" field and the value of the | one-octet "Optional Parameters Length" field and the value of the | |||
octet following it to determine the encoding of the Optional | octet following it to determine the encoding of the Optional | |||
Parameters length, as well as the size of the "Parameter Length" | Parameters length, as well as the size of the "Parameter Length" | |||
field of the Optional Parameters. If both values are 255, then the | field of the Optional Parameters. If both values are 255, then the | |||
four-octet encoding described above is used for the Optional | four-octet encoding described above is used for the Optional | |||
Parameters length. Otherwise the encoding defined in [RFC4271] is | Parameters length. Otherwise the encoding defined in [RFC4271] is | |||
used. | used. | |||
This encoding is chosen for backward compatibility reasons -- a BGP | This encoding is chosen for backward compatibility reasons -- a BGP | |||
skipping to change at page 4, line 32 ¶ | skipping to change at page 5, line 11 ¶ | |||
impossible that the old speaker might detect some other error first, | impossible that the old speaker might detect some other error first, | |||
such as a length error, depending on the details of the | such as a length error, depending on the details of the | |||
implementation. In no case would the peering be expected to | implementation. In no case would the peering be expected to | |||
establish successfully; the only question is which NOTIFICATION would | establish successfully; the only question is which NOTIFICATION would | |||
be generated. | be generated. | |||
We note that in any case, such a peering could not succeed, since by | We note that in any case, such a peering could not succeed, since by | |||
definition the extended length encoding would not be used by the new | definition the extended length encoding would not be used by the new | |||
speaker unless the basic encoding was insufficient. | speaker unless the basic encoding was insufficient. | |||
Although the Optional Parameter Type code 255 is used in this | ||||
specification as the indication that the extended encoding is in use, | ||||
it is not a bonafide Optional Parameter Type in the usual sense, and | ||||
MUST NOT be used other than as described above. If encountered as an | ||||
actual Optional Parameter Type code, it MUST be treated as an | ||||
unrecognized Optional Parameter and handled according to [RFC4271] | ||||
Section 6.2. | ||||
4. IANA Considerations | 4. IANA Considerations | |||
IANA is requested to designate BGP OPEN Optional Parameter Type code | IANA is requested to designate BGP OPEN Optional Parameter Type code | |||
255 as the Extended Length type code. | 255 as the Extended Length type code. | |||
5. Security Considerations | 5. Security Considerations | |||
This extension to BGP does not change the underlying security issues. | This extension to BGP does not change the underlying security issues | |||
inherent in the existing BGP [RFC4272]. | ||||
6. Acknowledgements | 6. Acknowledgements | |||
The authors would like to thank Yakov Rekhter and Srihari Sangli for | The authors would like to thank Yakov Rekhter and Srihari Sangli for | |||
discussing various options to enlarge the Optional Parameters field. | discussing various options to enlarge the Optional Parameters field. | |||
We would also like to thank Pradosh Mohapatra, Keyur Patel and Hannes | We would also like to thank Matthew Bocci, Jakob Heitz, Pradosh | |||
Gredler for their valuable comments. | Mohapatra, Keyur Patel and Hannes Gredler for their valuable | |||
comments. | ||||
7. References | 7. References | |||
7.1. Normative References | 7.1. 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, | |||
<http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | |||
Border Gateway Protocol 4 (BGP-4)", RFC 4271, | Border Gateway Protocol 4 (BGP-4)", RFC 4271, | |||
DOI 10.17487/RFC4271, January 2006, | DOI 10.17487/RFC4271, January 2006, | |||
<http://www.rfc-editor.org/info/rfc4271>. | <http://www.rfc-editor.org/info/rfc4271>. | |||
7.2. Informative References | 7.2. Informative References | |||
[RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", | ||||
RFC 4272, DOI 10.17487/RFC4272, January 2006, | ||||
<http://www.rfc-editor.org/info/rfc4272>. | ||||
[RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement | [RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement | |||
with BGP-4", RFC 5492, DOI 10.17487/RFC5492, February | with BGP-4", RFC 5492, DOI 10.17487/RFC5492, February | |||
2009, <http://www.rfc-editor.org/info/rfc5492>. | 2009, <http://www.rfc-editor.org/info/rfc5492>. | |||
Authors' Addresses | Authors' Addresses | |||
Enke Chen | Enke Chen | |||
Cisco Systems | Cisco Systems | |||
Email: enkechen@cisco.com | Email: enkechen@cisco.com | |||
End of changes. 14 change blocks. | ||||
29 lines changed or deleted | 72 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |