rfc9072xml2.original.xml   rfc9072.xml 
<?xml version="1.0" encoding="US-ASCII"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced.
An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC <!-- [CS] updated by Chris 05/05/21 -->
.2119.xml">
<!ENTITY RFC4271 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.4271.xml">
<!ENTITY RFC4272 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.4272.xml">
<!ENTITY RFC5492 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.5492.xml">
<!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.8174.xml">
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml.resource.o
rg/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="no"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="std" docName="draft-ietf-idr-ext-opt-param-13" ipr="trust200902"
updates="4271">
<front> <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-idr-ext-opt-
param-13" number="9072" ipr="trust200902" updates="4271" obsoletes="" submission
Type="IETF" category="std" consensus="true" xml:lang="en" tocInclude="true" tocD
epth="4" symRefs="true" sortRefs="true" version="3">
<!-- xml2rfc v2v3 conversion 3.7.0 -->
<front>
<title abbrev="Extended Optional Parameters Length">Extended <title abbrev="Extended Optional Parameters Length">Extended
Optional Parameters Length for BGP OPEN Message</title> Optional Parameters Length for BGP OPEN Message</title>
<seriesInfo name="RFC" value="9072"/>
<author fullname="Enke Chen" initials="E.C." <author fullname="Enke Chen" initials="E." surname="Chen">
surname="Chen">
<organization>Palo Alto Networks</organization> <organization>Palo Alto Networks</organization>
<address> <address>
<email>enchen@paloaltonetworks.com</email> <email>enchen@paloaltonetworks.com</email>
</address> </address>
</author> </author>
<author fullname="John Scudder" initials="J." surname="Scudder">
<author fullname="John Scudder" initials="J.S."
surname="Scudder">
<organization>Juniper Networks</organization> <organization>Juniper Networks</organization>
<address> <address>
<email>jgs@juniper.net</email> <email>jgs@juniper.net</email>
</address> </address>
</author> </author>
<date year="2021" month="June" />
<date/>
<area>General</area> <area>General</area>
<workgroup>IDR</workgroup> <workgroup>IDR</workgroup>
<keyword>IDR</keyword> <keyword>IDR</keyword>
<keyword>BGP</keyword> <keyword>BGP</keyword>
<abstract> <abstract>
<t> <t>
The Optional Parameters in the BGP OPEN message as defined in the base 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 length BGP specification are limited to 255 octets due to a one-octet length
field. BGP Capabilities are carried in this field and may foreseeably field.
exceed 255 octets in the future, leading to concern about this
BGP capabilities are carried in this field and may foreseeably
exceed 255 octets in the future, leading to concerns about this
limitation. limitation.
</t> </t>
<t> <t>
This document updates RFC 4271 by extending, in a This document updates RFC 4271 by extending, in a backward-compatible manner, th
backward-compatible manner, the length of the Optional Parameters in the e length of the Optional Parameters in a BGP OPEN message. The Parameter Length
BGP OPEN. The Parameter Length field of individual Optional Parameters field of individual Optional Parameters is also extended.
is also extended.
</t> </t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section title="Introduction"> <section numbered="true" toc="default">
<name>Introduction</name>
<t> <t>
The Optional Parameters Length field in the BGP OPEN message is defined The Optional Parameters Length field in the BGP OPEN message is defined
in <xref target="RFC4271">the base BGP specification</xref> as one in <xref target="RFC4271" format="default">the base BGP specification</xref> as one
octet, thus limiting the Optional Parameters field in the OPEN message octet, thus limiting the Optional Parameters field in the OPEN message
to 255 octets. Since BGP Capabilities <xref target="RFC5492"></xref> are to 255 octets. Since BGP capabilities <xref target="RFC5492" format="default"/> are
carried in the Optional Parameters field, and new BGP capabilities carried in the Optional Parameters field, and new BGP capabilities
continue to be introduced, the limitation is a concern for BGP continue to be introduced, the limitation is a concern for BGP
development. development.
</t> </t>
<t> <t>
This document updates <xref target="RFC4271"/> by extending, in a This document updates <xref target="RFC4271" format="default"/> by extending the
backward-compatible manner, the length of the Optional Parameters in BGP length of the Optional Parameters in BGP
OPEN. This is done by using Optional Parameter Type 255 as a OPEN in a
distinguished value, that indicates an extended Optional Parameters backward-compatible manner. This is done by using Optional Parameter type code 2
55 as a
distinguished value, which indicates an extended Optional Parameters
Length field follows and that the parsing of the BGP OPEN should be Length field follows and that the parsing of the BGP OPEN should be
modified according to these procedures. In this case the Parameter Length modified according to these procedures. In this case, the Parameter Length
field of the individual Optional Parameters in the BGP OPEN message is field of the individual Optional Parameters in the BGP OPEN message is
also extended. also extended.
</t> </t>
<section numbered="true" toc="default">
<section title="Requirements Language"> <name>Requirements Language</name>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL <t>
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU
"MAY", and "OPTIONAL" in this document are to be interpreted as IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
described in BCP 14 <xref target="RFC2119"/> <xref NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>
target="RFC8174"/> when, and only when, RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
they appear in all capitals, as shown here.</t> "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to
be interpreted as
described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.
</t>
</section> </section>
</section> </section>
<section anchor="protocol_extensions" numbered="true" toc="default">
<section anchor="protocol_extensions" title="Update to RFC 4271"> <name>Update to RFC 4271</name>
<t> <t>
This document reserves Optional Parameter Type code 255 as the "Extended This document reserves Optional Parameter type code 255 as the "Extended
Length" type code. Length".
</t> </t>
<t> <t>
In the event that the length of Optional Parameters in the BGP OPEN In the event that the length of the Optional Parameters in the BGP OPEN
message does not exceed 255, the encodings of <xref target="RFC4271">the message does not exceed 255, the encodings of <xref target="RFC4271" format="def
base BGP specification</xref> SHOULD be used without alteration. ault">the
Configuration MAY override this to force the extended format to be used base BGP specification</xref> <bcp14>SHOULD</bcp14> be used without alteration.
in all cases; this might be used, for example to test that a peer Configuration <bcp14>MAY</bcp14> override this to force the extended format to b
supports this specification. (In any case, an implementation MUST accept e used
in all cases; this might be used, for example, to test that a peer
supports this specification. (In any case, an implementation <bcp14>MUST</bcp14>
accept
an OPEN message that uses the encoding of this specification even if the an OPEN message that uses the encoding of this specification even if the
length of Optional Parameters is 255 or less.) length of the Optional Parameters is 255 or less.)
</t> </t>
<t> <t>
However, if the length of Optional Parameters in the BGP OPEN message However, if the length of the Optional Parameters in the BGP OPEN message
does exceed 255, the OPEN message MUST be encoded according to the does exceed 255, the OPEN message <bcp14>MUST</bcp14> be encoded according to th
e
procedure below. procedure below.
</t> </t>
<figure title="Extended Encoding OPEN Format" anchor="open_fmt">
<artwork><![CDATA[ <figure anchor="open_fmt">
0 1 2 3 <name>Extended Encoding OPEN Format</name>
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 <artwork name="" type="" align="left" alt=""><![CDATA[
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
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Version | | Version |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| My Autonomous System | | My Autonomous System |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hold Time | | Hold Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BGP Identifier | | BGP Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Non-Ext OP Len.|Non-Ext OP Type| Extended Opt. Parm. Length | |Non-Ext OP Len.|Non-Ext OP Type| Extended Opt. Parm. Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Optional Parameters (variable) | | Optional Parameters (variable) |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork> ]]></artwork>
</figure> </figure>
<t> <t>
The Non-Extended Optional Parameters Length field (Non-Ext OP Len) The Non-Extended Optional Parameters Length field (Non-Ext OP Len.)
SHOULD be set to 255 on transmission and in any event MUST NOT be set to <bcp14>SHOULD</bcp14> be set to 255 on transmission and, in any event, <bcp14>MU
0, and MUST be ignored on receipt once the use of the extended format is ST NOT</bcp14> be set to
0; it <bcp14>MUST</bcp14> be ignored on receipt once the use of the extended for
mat is
determined positively by inspection of the Non-Extended Optional determined positively by inspection of the Non-Extended Optional
Parameters Type (Non-Ext OP Type) field. Parameters Type (Non-Ext OP Type) field.
</t> </t>
<t> <t>
The subsequent one-octet field (that would be the first Optional The subsequent one-octet field (which would be the first Optional
Parameter Type field in the non-extended format, and is called "Non-Ext Parameter Type field in the non-extended format and is called "Non-Ext
OP Type" in the figure above) MUST be set to 255 on transmission. On OP Type" in the <xref target="open_fmt" format="none">figure above</xref>) <bcp1
4>MUST</bcp14> be set to 255 on transmission. On
receipt, a value of 255 for this field is the indication that the receipt, a value of 255 for this field is the indication that the
extended format is in use. extended format is in use.
</t> </t>
<t> <t>
In this extended encoding, the subsequent two-octet field, termed In this extended encoding, the subsequent two-octet field, termed
the Extended Optional Parameters Length field, is an unsigned the "Extended Optional Parameters Length field", is an unsigned
integer indicating the total length of the Optional Parameters field integer indicating the total length of the Optional Parameters field
in octets. If the value of this field is zero, no Optional in octets. If the value of this field is zero, no Optional
Parameters are present. Parameters are present.
</t> </t>
<t> <t>
Likewise, in that situation the Optional Parameters encoding is modified Likewise, in that situation, the Optional Parameters encoding is modified
to be the following: to be the following:
</t> </t>
<figure title="Extended Parameters Format" anchor="parm_fmt"> <figure anchor="parm_fmt">
<artwork><![CDATA[ <name>Extended Parameters Format</name>
0 1 2 <artwork name="" type="" align="left" alt=""><![CDATA[
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
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) ~
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork> ]]></artwork>
</figure> </figure>
<t> <t>
The rules for encoding Optional Parameters are unchanged with respect The rules for encoding Optional Parameters are unchanged with respect
to those given in <xref target="RFC4271"/> other than the extension to those given in <xref target="RFC4271" format="default"/>, except that the Par
of the Parameter Length field to be a two-octet unsigned integer. ameter Length field is extended to be a two-octet unsigned integer.
</t> </t>
<t> <t>
In parsing an OPEN message, if the one-octet "Optional Parameters In parsing an OPEN message, if the one-octet Optional Parameters
Length" field (labeled "Non-Ext OP Len." in <xref Length field (labeled "Non-Ext OP Len." in <xref target="open_fmt" format="defau
target="open_fmt"/>) is non-zero, a BGP speaker lt"/>) is non-zero, a BGP speaker
MUST use the value of the octet following the one-octet "Optional <bcp14>MUST</bcp14> use the value of the octet following the one-octet Optional
Parameters Length" field (labeled "Non-Ext OP Type" in <xref Parameters Length field (labeled "Non-Ext OP Type" in <xref target="open_fmt" fo
target="open_fmt"/>) to determine both the encoding of the Optional rmat="default"/>) to determine both the encoding of the Optional
Parameters length and the size of the "Parameter Length" field of Parameters length and the size of the Parameter Length field of
individual Optional Parameters. If the value of the "Non-Ext OP Type" individual Optional Parameters. If the value of the "Non-Ext OP Type"
field is 255, then the encoding described above is used for the Optional field is 255, then the encoding described above is used for the Optional
Parameters length. Otherwise the encoding defined in <xref Parameters length. Otherwise, the encoding defined in <xref target="RFC4271" for
target="RFC4271"></xref> is used. mat="default"/> is used.
</t> </t>
</section> </section>
<section numbered="true" toc="default">
<section title="Backward Compatibility"> <name>Backward Compatibility</name>
<t> <t>
If a BGP speaker supporting this specification (a "new speaker") is If a BGP speaker supporting this specification (a "new speaker") is
peering with one which does not (an "old speaker") no interoperability peering with one that does not (an "old speaker"), no interoperability
issues arise unless the new speaker needs to encode Optional Parameters issues arise unless the new speaker needs to encode Optional Parameters
whose length exceeds 255. In that case, it will transmit an OPEN whose length exceeds 255. In that case, it will transmit an OPEN
message which the old speaker will interpret as containing an Optional message that the old speaker will interpret as containing an Optional
Parameter with type code 255. Since by definition the old speaker will Parameter with type code 255. Since the old speaker will
not recognize that type code, the old speaker is expected to close not recognize that type code by definition, the old speaker is expected to close
the connection with a NOTIFICATION with an Error Code of OPEN Message the connection with a NOTIFICATION with an error code of "OPEN Message
Error and an Error Subcode of Unsupported Optional Parameters, according Error" and an error subcode of "Unsupported Optional Parameters", according
to Section 6.2 of <xref target="RFC4271"></xref>. to <xref target="RFC4271" sectionFormat="of" section="6.2"/>.
</t> </t>
<t> <t>
Although the Optional Parameter Type code 255 is used in this Although the Optional Parameter type code 255 is used in this
specification as the indication that the extended encoding is in use, it specification as the indication that the extended encoding is in use, it
is not a bona fide Optional Parameter Type in the usual sense, and MUST is not a bona fide Optional Parameter type code in the usual sense and <bcp14>MU
NOT be used other than as described above. If encountered in any ST
position other than the first Optional Parameter Type, it MUST be NOT</bcp14> be used other than as described above.
<!--[rfced] Please clarify if "Optional Parameter Type" (2 instances in
Section 3) refers to the "Non-Parameter Type field", as described in
Section 2. If so, should "Optional Parameter Type" be updated as
"Non Ext OP Type"?
Original (Section 2):
The subsequent one-octet field (which would be the first Optional
Parameter Type field in the non-extended format and is called "Non-
Ext OP Type" in the figure above) MUST be set to 255 on transmission.
Original (Section 3):
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 bona fide Optional Parameter Type in the usual sense, and
MUST NOT be used other than as described above.
If encountered in any position other than the first Optional Parameter
Type, it MUST be treated as an unrecognized Optional Parameter and
handled according to [RFC4271], Section 6.2.
Perhaps:
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 bona fide Non-Ext OP Type in the usual sense and
MUST NOT be used other than as described above.
If encountered in any position other than the first Non-Ext OP Type,
it MUST be treated as an unrecognized Optional Parameter and handled
according to [RFC4271], Section 6.2.
-->
If encountered other than as the Non-Ext OP Type, it <bcp14>MUST</bcp14> be
treated as an unrecognized Optional Parameter and handled according to treated as an unrecognized Optional Parameter and handled according to
<xref target="RFC4271"/> Section 6.2. <xref target="RFC4271" sectionFormat="comma" section="6.2"/>.
</t> </t>
<t> <t>
It is not considered an error to receive an OPEN message whose Extended It is not considered an error to receive an OPEN message whose Extended
Optional Parameters Length value is less than or equal to 255. It is not Optional Parameters Length value is less than or equal to 255. It is not
considered a fatal error to receive an OPEN message whose (non-extended) considered a fatal error to receive an OPEN message whose (non-extended)
Optional Parameters Length value is not 255, and whose first Optional Optional Parameters Length value is not 255 and whose first Optional
Parameter type code is 255 -- in this case the encoding of this Parameter type code is 255 -- in this case, the encoding of this
specification MUST be used for decoding the message. specification <bcp14>MUST</bcp14> be used for decoding the message.
</t> </t>
</section> </section>
<section numbered="true" toc="default">
<section title="IANA Considerations"> <name>IANA Considerations</name>
<t> <t>
IANA is requested to designate type code 255 in the BGP OPEN Optional IANA has assigned value 255 as the Extended Length type code in the "BGP OPEN Op
Parameter Types registry as the Extended Length type code. tional
Parameter Types" registry.
</t> </t>
</section> </section>
<section numbered="true" toc="default">
<section title="Security Considerations"> <name>Security Considerations</name>
<t> <t>
This extension to BGP does not change the underlying security or This extension to BGP does not change the underlying security or
confidentiality issues confidentiality issues
inherent in the existing BGP <xref target="RFC4272"/>. inherent in the existing BGP <xref target="RFC4272" format="default"/>.
</t> </t>
</section> </section>
</middle>
<section title="Acknowledgements"> <back>
<references>
<name>References</name>
<references>
<name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.2119.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4271.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8174.xml"/>
</references>
<references>
<name>Informative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.5492.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4272.xml"/>
</references>
</references>
<section numbered="false" toc="default">
<name>Acknowledgements</name>
<t> <t>
The authors would like to thank Yakov Rekhter and Srihari Sangli for The authors would like to thank <contact fullname="Yakov Rekhter"/> and <contact fullname="Srihari Sangli"/> for
discussing various options to enlarge the Optional Parameters field. We discussing various options to enlarge the Optional Parameters field. We
would also like to thank Matthew Bocci, Bruno Decraene, John Heasley, would also like to thank <contact fullname="Matthew Bocci"/>, <contact fullname=
Jakob Heitz, Christer Holmberg, Pradosh Mohapatra, Keyur Patel and Hannes Gredle "Bruno Decraene"/>, <contact fullname="John Heasley"/>,
r for their <contact fullname="Jakob Heitz"/>, <contact fullname="Christer Holmberg"/>, <con
tact fullname="Pradosh Mohapatra"/>, <contact fullname="Keyur Patel"/>, and <con
tact fullname="Hannes Gredler"/> for their
valuable comments. valuable comments.
</t> </t>
</section> </section>
</middle>
<back>
<references title="Normative References">
&RFC2119;
&RFC4271;
&RFC8174;
</references>
<references title="Informative References">
&RFC5492;
&RFC4272;
</references>
</back> </back>
</rfc> </rfc>
 End of changes. 51 change blocks. 
156 lines changed or deleted 188 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/