draft-ietf-idr-bgp4-cap-neg-00.txt   draft-ietf-idr-bgp4-cap-neg-01.txt 
Network Working Group Ravi Chandra Network Working Group Ravi Chandra
Internet Draft Cisco Systems Internet Draft Cisco Systems
Expiration Date: February 1998 John G. Scudder Expiration Date: October 1998 John G. Scudder
Internet Engineering Group, LLC Internet Engineering Group, LLC
Capabilities Negotiation with BGP-4 Capabilities Negotiation with BGP-4
draft-ietf-idr-bgp4-cap-neg-00.txt draft-ietf-idr-bgp4-cap-neg-01.txt
1. Status of this Memo 1. Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts. working documents as Internet-Drafts.
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.''
To learn the current status of any Internet-Draft, please check the To view the entire list of current Internet-Drafts, please check the
``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern
munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific
ftp.isi.edu (US West Coast). Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast).
2. Abstract 2. Abstract
Currently BGP-4 [BGP-4] requires that when a BGP speaker receives an Currently BGP-4 [BGP-4] requires that when a BGP speaker receives an
OPEN message with one or more unrecognized Optional Parameters, the OPEN message with one or more unrecognized Optional Parameters, the
speaker must terminate BGP peering. This complicates introduction of speaker must terminate BGP peering. This complicates introduction of
new capabilities in BGP. new capabilities in BGP.
This document defines new Optional Parameter, called Capabilities, This document defines new Optional Parameter, called Capabilities,
that is expected to facilitate introduction of new capabilities in that is expected to facilitate introduction of new capabilities in
BGP by providing graceful capability negotiation. BGP by providing graceful capability negotiation without requiring
that BGP peering be terminated.
The proposed parameter is backward compatible - a router that The proposed parameter is backward compatible - a router that
supports the parameter can maintain BGP peering with a router that supports the parameter can maintain BGP peering with a router that
doesn't support the parameter. doesn't support the parameter.
3. Overview of Operations 3. Overview of Operations
When a BGP speaker that supports capabilities negotiation sends an When a BGP speaker that supports capabilities negotiation sends an
OPEN message to its BGP peer, the message includes an Optional OPEN message to its BGP peer, the message may include an Optional
Parameter, called Capabilities. The parameter lists the capabilities Parameter, called Capabilities. The parameter lists the capabilities
supported by the speaker. The speaker can mark a listed capability as supported by the speaker.
"Required", which means that if the peer doesn't recognize/support
the capability, the BGP peering shall be terminated.
When the peer receives the OPEN message, if the message contains the
Capabilities Optional Parameter, the peer checks whether it supports
all of the listed capabilities marked as R, and if not, sends a
NOTIFICATION message, and terminates peering. The Error Subcode in
the message is set to Unsupported Capability. The message should
contain all the capabilities marked as R that are not supported by
the peer. If the peer doesn't support a capability that is not
marked as R, the peer should not use this as a reason to terminate
peering.
A BGP speaker may use a particular capability when peering with A BGP speaker may use a particular capability when peering with
another speaker if both speakers support that capability. A BGP another speaker only if both speakers support that capability. A BGP
speaker determines the capabilities supported by its peer by speaker determines the capabilities supported by its peer by
examining the list of capabilities present in the Capabilities examining the list of capabilities present in the Capabilities
Optional Parameter carried by the OPEN message that the peer sends to Optional Parameter carried by the OPEN message that the speaker
the speaker. receives from the peer.
A BGP speaker determines that its peer doesn't support capabilities A BGP speaker determines that its peer doesn't support capabilities
negotiation, if in response to an OPEN message that carries the negotiation, if in response to an OPEN message that carries the
Capabilities Optional Parameter, the speaker receives a NOTIFICATION Capabilities Optional Parameter, the speaker receives a NOTIFICATION
message with the Error Subcode set to Unsupported Optional Parameter. message with the Error Subcode set to Unsupported Optional Parameter.
If a BGP speaker that supports a certain capability determines that
its peer doesn't support this capability, the speaker may send a
NOTIFICATION message to the peer, and terminate peering. The Error
Subcode in the message is set to Unsupported Capability. The message
should contain the capability (capabilities) that causes the speaker
to send the message. The decision to send the message is local to
the speaker.
4. Capabilities Optional Parameter (Parameter Type 2): 4. Capabilities Optional Parameter (Parameter Type 2):
This is an Optional Parameter that is used by a BGP speaker to convey This is an Optional Parameter that is used by a BGP speaker to convey
to its BGP peer the list of capabilities supported by the speaker. to its BGP peer the list of capabilities supported by the speaker.
The parameter contains one or more triples <Capability Code, The parameter contains one or more triples <Capability Code,
Capability Length, Capability Value>, where each triple is encoded as Capability Length, Capability Value>, where each triple is encoded as
shown below: shown below:
+------------------------------+ +------------------------------+
skipping to change at page 3, line 5 skipping to change at page 3, line 4
Capability Length, Capability Value>, where each triple is encoded as Capability Length, Capability Value>, where each triple is encoded as
shown below: shown below:
+------------------------------+ +------------------------------+
| Capability Code (1 octet) | | Capability Code (1 octet) |
+------------------------------+ +------------------------------+
| Capability Length (1 octet) | | Capability Length (1 octet) |
+------------------------------+ +------------------------------+
| Capability Value (variable) | | Capability Value (variable) |
+------------------------------+ +------------------------------+
The use and meaning of these fields are as follows: The use and meaning of these fields are as follows:
Capability Code: Capability Code:
Capability Code is a one octet field that unambiguously Capability Code is a one octet field that unambiguously
identifies individual capabilities. identifies individual capabilities.
The high-order bit of this field is used to mark the capability
as "Required" (if the bit is set to 1).
Capability Length: Capability Length:
Capability Length is a one octet field that contains the length Capability Length is a one octet field that contains the length
of the Capability Value field in octets. of the Capability Value field in octets.
Capability Value: Capability Value:
Capability Value is a variable length field that is interpreted Capability Value is a variable length field that is interpreted
according to the value of the Capability Code field. according to the value of the Capability Code field.
A particular capability, as identified by its Capability Code, may
occur more than once within the Optional Parameter.
This document reserves Capability Codes 128-255 for vendor-specific
applications.
This document reserves value 0.
Capability Codes (other than those reserved for vendor specific use)
are assigned only by the IETF consensus process and IESG approval.
5. Extensions to Error Handling 5. Extensions to Error Handling
This document defines new Error Subcode - Unsupported Capability. This document defines new Error Subcode - Unsupported Capability.
The value of this Subcode is 7. The Data field in the NOTIFICATION The value of this Subcode is 7. The Data field in the NOTIFICATION
message lists the set of capabilities that are marked as Required, message lists the set of capabilities that cause the speaker to send
but are either unsupported or unrecognized by the BGP speaker that the message. Each such capability is encoded the same way as it was
sends the message. Each such capability is encoded the same way as it encoded in the received OPEN message.
was encoded in the received OPEN message.
6. Security Considerations 6. Security Considerations
Security issues are not discussed in this document. This extension to BGP does not change the underlying security issues.
7. Acknowledgements 7. Acknowledgements
To be supplied. To be supplied.
8. References 8. References
[BGP-4] [BGP-4] Rekhter, Y., and T. Li, "A Border Gateway Protocol 4 (BGP-
4)", RFC 1771, March 1995.
9. Author Information 9. Author Information
Ravi Chandra Ravi Chandra
Cisco Systems, Inc. Cisco Systems, Inc.
170 West Tasman Drive 170 West Tasman Drive
San Jose, CA 95134 San Jose, CA 95134
e-mail: rchandra@cisco.com e-mail: rchandra@cisco.com
John G. Scudder John G. Scudder
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/