One document matched: draft-thomas-mpls-ldp-capabilities-01.txt
Differences from draft-thomas-mpls-ldp-capabilities-00.txt
Network Working Group S. Aggarwal
Internet Draft Juniper Networks
Expiration Date: April 2007
R. Aggarwal
Juniper Networks
J.L. Le Roux
France Telecom
Bob Thomas
Cisco Systems, Inc.
October 2006
LDP Capabilities
draft-thomas-mpls-ldp-capabilities-01.txt
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Aggarwal, et al. [Page 1]
Internet Draft draft-thomas-mpls-ldp-capabilities-01.txt October 2006
Copyright Notice
Copyright (C) The Internet Society (2006).
Abstract
A number of enhancements to the Label Distribution Protocol (LDP)
have been proposed. Some have been implemented, and some are
advancing toward standardization. It is likely that additional
enhancements will be proposed in the future. At present there is no
common mechanism for LDP speakers to activate such enhancements.
Consequently, an enhancement specification typically includes an ad
hoc procedure for activating it at session initialization time. This
draft specifies a mechanism for activating enhancements that allows
LDP speakers to enable enhancements at session establishment time as
well as to to enable and disable them following session
establishment.
Table of Contents
1 Introduction ............................................ 3
2 Specification Language .................................. 4
3 The LDP Capability Mechanism ............................ 4
4 Capability Message ...................................... 5
5 The Capability List TLV ................................. 5
6 Note on Terminology ..................................... 7
7 Procedures for Capability TLVs in Initialization Messages. 8
8 Procedures for Capability List TLVs in Capability Messages. 9
9 Extensions to Error Handling ............................ 10
10 Backward Compatibility .................................. 10
11 Security Considerations ................................. 11
12 IANA Considerations ..................................... 11
13 Acknowledgements ........................................ 12
14 References .............................................. 12
15 Author Information ...................................... 13
16 Intellectual Property Statement ......................... 13
17 Full Copyright Statement ................................ 14
Aggarwal, et al. [Page 2]
Internet Draft draft-thomas-mpls-ldp-capabilities-01.txt October 2006
1. Introduction
A number of enhancements to LDP as specified in [RFC3036] have been
proposed. These include LDP Graceful Restart [RFC3478], Fault
Tolerant LDP [RFC3479], multicast extensions [MLDP], signaling for
layer 2 circuits [PWE], a method for learning labels advertised by
next next hop routers in support of fast reroute node protection
[NNHOP], upstream label allocation [UPSTREAM_LDP], and extensions for
signaling inter-area LSPs [IALDP]. Some have been implemented, and
some are advancing toward standardization. It is likely that
additional enhancements will be proposed in the future.
At present LDP has no common mechanism for LDP speakers to activate
such enhancements. Consequently, the enhancement specifications
typically include ad hoc procedures for activating the enhancement at
session initialization time or assume that the enhancement is always
active. Furthermore, LDP has no mechanism for de-activating an
enhancement once activated.
This draft specifies an LDP capability advertisement mechanism for
managing the use of enhancements that associates capabilities with
LDP enhancements and defines an infrastructure for enabling and
disabling enhancements that enables peers to:
- Advertise the capability associated with an enhancement at
session establishment time or following session establishment,
thereby enabling the enhancement.
- Withdraw the capability associated with an enhancement following
session establishment thereby disabling the corresponding
capability.
The LDP capability advertisement mechanism is similar to the BGP
capability advertisement mechanism [RFC3392] [BGP-DYNCAP].
When the capability advertisement mechanism is in place an LDP
enhancement requiring LDP capability advertisement will be specified
by a document that:
- Describes the motivation for the enhancement;
- Specifies the behavior of LDP when the enhancement is enabled.
This includes the procedures, parameters, messages, and TLV's
required by the enhancement;
Aggarwal, et al. [Page 3]
Internet Draft draft-thomas-mpls-ldp-capabilities-01.txt October 2006
- Includes an IANA considerations section that notes that an IANA-
assigned code point for the capability corresponding to the
enhancement is required.
2. Specification Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
3. The LDP Capability Mechanism
Enhancements are likely to be announced during LDP session
establishment as each LDP speaker advertises capabilities
corresponding to the enhancements it desires.
Beyond that, capability advertisements may be used to dynamically
modify the characteristics of the session to suit changing
conditions. For example, an LSR capable of a particular enhancement
in support of some "feature" may not have advertised the
corresponding capability to its peers at session establishment time
because the feature was disabled at that time. Later an operator may
enable the feature, at which time the LSR would react by advertising
the corresponding capability to its peers. Similarly, when an
operator disables a feature associated with a capability the LSR
reacts by withdrawing the capability advertisement from its peers.
The LDP capability advertisement mechanism operates as follows:
- Each LDP speaker is assumed to implement a set of features each
of which has an associated capability. At any time a speaker may
have none, one or more of those features "enabled". When a
feature is enabled the speaker advertises the associated
capability to its peers. By advertising the capability to a peer
the speaker asserts that it shall perform the protocol actions
specified for the associated feature. For example, the actions
may involve receiving and processing messages from a peer that
the feature requires. Unless the capability has been advertised
the speaker will not perform protocol actions specified for the
corresponding feature.
- At session establishment time an LDP speaker MAY advertise
capabilities for features that are currently enabled by including
a Capability List TLV in its Initialization message.
Aggarwal, et al. [Page 4]
Internet Draft draft-thomas-mpls-ldp-capabilities-01.txt October 2006
- There is a well-known capability called Dynamic Announcement
which an LDP speaker MAY advertise in its Initialization message
to indicate that it is capable of advertising and withdrawing
capabilities following session establishment.
If a peer had advertised the Dynamic Announcement capability in
its Initialization message then at any time following session
establishment an LDP speaker MAY announce changes in its
advertised capabilities to that peer. To do this the LDP speaker
sends the peer a Capability message that includes a Capability
List TLV which specifies capabilities being advertised or
withdrawn.
4. Capability Message
The LDP Capability message is used by an LDP speaker subsequent to
session establishment to announce changes in the state for one or
more of its capabilities. In addition, it is used to carry
acknowledgements for capability state changes announcements that
require them (see Section 8).
The format of the Capability message is:
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| Capability (IANA) | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Capability List TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where the Capability List TLV specifies capability state changes
being advertised or acknowledged.
5. The Capability List TLV
An LDP speaker MAY include a Capability List TLV as an optional
parameter in an Initialization message to announce capabilities it
has enabled to its LDP peer.
In addition, if its peer had advertised the Dynamic Announcement
capability at session establishment time an LDP speaker MAY send the
peer a Capability message when the speaker wishes to change the
capabilities it has advertised. The Capability List TLV included in
Aggarwal, et al. [Page 5]
Internet Draft draft-thomas-mpls-ldp-capabilities-01.txt October 2006
the Capability message specifies the capabilities the LDP speaker
wishes to advertise or withdraw.
The Capability List TLV MAY also be carried in a Notification message
when the Status Code in the Status TLV is Unsupported Capability as
described below.
The format of the Capability List TLV is:
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|0| Capability List TLV (IANA)| Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Capability List |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where Capability List is a list of 1 or more Capability Objects, each
of which has the format:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Capability Code(IANA) | Capability Length |C|S|A| Rsrvd |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Capability Data |
| |
| +-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where:
Capability Code: Identifies the capability. Capability codes are
assigned by IANA.
Capability Length: The length in octets of the Capability Object
exclusive of the Capability Code and Length fields.
C, S, A bits:
Each MUST be 0 in a Capability Object included in an
Initialization message.
The C, S, and A bits of a Capability Object in a Capability
message are used as follows:
C bit: The Command Bit indicates whether the sender is
Aggarwal, et al. [Page 6]
Internet Draft draft-thomas-mpls-ldp-capabilities-01.txt October 2006
announcing a change in state for the specified capability or
acknowledging receipt of a state change announcement.
1 - Announcement of a capability state change
0 - Acknowledgement of an capability announcement
S bit: The State Bit indicates whether the sender is
advertising or withdrawing the specified capability. The S
bit is ignored for acknowledgements (C-bit = 0).
1 - Capability is advertised
0 - Capability is withdrawn
A bit: The Acknowledgement Request Bit indicates that the
sender requests the receiver acknowledge the change in state
of the specified capability. The A bit is ignored for
acknowledgements (C bit = 0).
1 - Acknowledgement requested for capability
advertisement (withdrawal)
0 - Acknowledgement not required
Rsvrd: Reserved for future use.
Sequence Number:
The Sequence Number MUST be 0 in a Capability Object included in
an Initialization message.
The Sequence Number is used to uniquely identify the revision of
the capability state for a capability state change initiated by a
Capability message that requires acknowledgement. The Sequence
Number is specified by the LDP speaker initiating the change and
included by its peer in the peer's acknowledgement of the change.
Capability Data: Additional data required to fully specify the
capability.
6. Note on Terminology
The sections that follow talk of enabling and disabling capabilities.
The terminology "enabling (or disabling) a capability" is short hand
for "advertising (or withdrawing) a capability". Bear in mind that
it is an LDP enhancement that is enabled or disabled and that it is
the corresponding capability that is advertisted or withdrawn.
Aggarwal, et al. [Page 7]
Internet Draft draft-thomas-mpls-ldp-capabilities-01.txt October 2006
7. Procedures for Capability TLVs in Initialization Messages
An LDP speaker SHOULD NOT include more than one instance of a
capability with the same Capability Code, Capability Length, and
Capability Value in an Initialization message. Note however, that
processing multiple instances of such a capability does not require
special handling, as additional instances do not change the meaning
of an announced capability.
An LDP speaker determines the capabilities enabled by a peer by
examining the list of capabilities in the Capability List TLV, if
present in the Initialization message the speaker receives from the
peer.
An LDP speaker that has enabled a particular capability MAY use the
capability with its peer after the speaker determines that the peer
has enabled the capability.
These procedures enable an LDP speaker A that advertises a specific
LDP capability C to establish an LDP session with speaker B that does
not advertise C though B may support the LDP Capability List TLV and
the feature associated with C. In this situation whether or not
capability C may be used for the session depends on the semantics of
the functionality associated with C. If the semantics do not require
both A and B advertise C to one another then B could use it; that is,
A's advertisement of C permits B to use the corresponding
functionality for the session.
It is the responsibility of the capability designer to specify the
behavior of an LDP speaker that has enabled a certain enhancement and
determines that its peer has not advertised the corresponding
capability. The document specifying procedures for the capability
MUST describe the behavior in this situation. If the specified
procedure is to terminate the session the LDP speaker SHOULD send a
Notification message to the peer before terminating the session. The
Status Code in the Status TLV of the Notification message SHOULD be
Unsupported Capability, and the message SHOULD contain the
unsupported capabilities (see Section 9 for more details). In this
case the session SHOULD NOT be re-established automatically. How the
session is re-established is beyond the scope of this document. It
depends on the LDP capability and MUST be specified along with the
procedures specifying the capability.
An LDP speaker that supports capability advertisement and includes a
Capability List TLV in its Initialization message MAY set the TLV U
bit to 1. This ensures that an RFC3036 compliant peer that does not
support the capability mechanism will ignore the TLV and allow the
session to be established.
Aggarwal, et al. [Page 8]
Internet Draft draft-thomas-mpls-ldp-capabilities-01.txt October 2006
8. Procedures for Capability List TLVs in Capability Messages.
An LDP speaker MUST NOT send a Capability message to a peer unless
both the speaker and its peer had advertised the Dynamic Announcement
capability in their session Initialization messages and neither has
disabled the capability by means of a Capability message.
An LDP speaker MAY send a Capability message to a peer if both the
speaker and its peer had advertised the Dynamic Announcement
capability in their session Initialization messages.
An LDP speaker determines the capabilities enabled by a peer by
determining the set of capabilities enabled at session initialization
(as specified in Section 7) and tracking changes to that set made by
Capability messages from the peer.
An LDP speaker that has enabled a particular capability MAY use the
enhancement corresponding to the capability with its peer after the
speaker determines that the peer has enabled the capability.
Some capabilities may be such that when dynamically enabled or
disabled proper operation requires synchronization of the protocol
message stream between LDP speakers. The purpose of the
synchronization is to ensure that when a protocol message is received
and processed during the state transition of such a capability the
capability state in effect at the receiver is the same as the
capability state in effect when the sender generated the message.
The following acknowledgement mechanism provides the coordination
required for such capabilities:
- The LDP speaker that initiates the state change for such a
capability MUST include an acknowledgement request with the
Capability Object in the Capability message to its peer, and the
peer receiving a Capability message for a change that includes an
acknowledgement request MUST acknowledge receipt of the
capability state change by means of a Capability message.
- For the LDP speaker initiating the capability change the change
for generating messages related to the capability takes effect
immediately after the Capability message is sent, and the change
for processing received messages takes effect immediately after
an acknowledgement is received from its peer.
- For the peer receiving the capability change announcement the
change for processing received messages takes effect immediately
after the capability change is received and the change for
generating messages takes effect immediately after the
Aggarwal, et al. [Page 9]
Internet Draft draft-thomas-mpls-ldp-capabilities-01.txt October 2006
acknowledgement is sent.
Not every capability requires the type of synchronization the
acknowledgement mechanism provides. Furthermore, the announcement of
a capability in an Initialization message does not require it since
no messages other than those required to establish the session are
permitted until the session is fully established.
It is the responsibility of the capability designer to specify
whether the capability requires the acknowledgement mechanism when it
is announced by means of a Capability message.
9. Extensions to Error Handling
This document defines a new LDP status code named Unsupported
Capability. The S bit of the Status TLV carried in a Notification
message that includes this status code SHOULD be set to 0.
In addition, this document defines a new LDP TLV named Returned TLV
that MAY be carried in a Notification message. The U- bit and F bit
settings for the Returned TLV in a Notification message is TBD and
will be specified when the Returned TLV is fully specified.
When the Status Code in a Notification message is Unsupported
Capability the message SHOULD specify the capabilities that are
unsupported. When the Notification message specifies the unsupported
capabilities it MUST specify them as a Capability List TLV included
in a Returned TLV, the Capability List TLV MUST include only the
capabilities not supported, and each capability MUST be encoded in
the way it would be in an Initialization TLV.
When the Status Code in a Notification Message is Unknown TLV the
message SHOULD specify the TLV that was unknown. When the
Notification message specifies the TLV that was unknown it MUST
include the unknown TLV in a Returned TLV.
10. Backward Compatibility
From the point of view of the LDP capability advertisement mechanism
an RFC3036 compliant peer has label distribution for IPv4 enabled by
default. To ensure compatibility with an RFC3036 compliant peer LDP
implementations that support capability advertisement have label
distribution for IPv4 enabled until it is explicitly disabled and
MUST assume that their peers do as well.
Existing LDP enhancements that use an ad hoc mechanism for activation
Aggarwal, et al. [Page 10]
Internet Draft draft-thomas-mpls-ldp-capabilities-01.txt October 2006
(e.g., [RFC3478] [RFC3479]) MAY continue to do so.
11. Security Considerations
The security considerations described in [RFC3036] that apply to the
base LDP specification apply to the capability mechanism described in
this document.
12. IANA Considerations
This document creates a new LDP capability name space for the
Capability codes contained in the Capability List TLV. The LDP
capability name space is to be managed by IANA.
- Capability Code value 0 is reserved.
- Capability Code value 1 is assigned to the Dynamic Announcement
capability defined in this document.
- Capability Code values 2 through 1023 are to be assigned by
IANA using the "IETF Consensus" policy defined in RFC 2434.
- Capability Code values 1024 through 2047 are to be assigned by
IANA, using the "First Come First Served" policy defined in RFC
2434.
- Capability Code values 2048 through 4095 are for "Private Use"
as defined in RFC 2434.
This document specifies the following which require code points
assigned by IANA:
- New LDP Capability message. The authors request message type
0x202 for the Capability message.
- New LDP Capability List TLV type. The authors request TLV type
0x505 for the Capability List TLV.
- New LDP Returned TLV TLV type. The authors request TLV type
0x506.
- New LDP Unsupported Capability Status Code.
Aggarwal, et al. [Page 11]
Internet Draft draft-thomas-mpls-ldp-capabilities-01.txt October 2006
13. Acknowledgements
The authors wish to thank Enke Chen, Vanson Lim, Ina Minei, Bin Mo,
Yakov Rekhter, and Eric Rosen for their comments.
14. References
Normative References
[RFC3036] Andersson, L., Doolan, P., Feldman, N., Fredette, A. and
Thomas, B., "LDP Specification", RFC 3036, January 2001.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC2119, March 1997.
Informative References
[RFC3392] Chandra, R. and Scudder, J., "Capabilities Advertisement
with BGP-4", November 2002
[BGP-DYNCAP] Chen, E., Sanglii, S., "Dynamic Capabilities for BGP-4",
draft-ietf-idr-dynamic-cap-08.txt, Work in Progress, June 2006
[IALDP] Decraene, B., Le Roux, JL., Minei, I, "LDP Extensions for
Inter-Area LSPs", draft-decraene-mpls-ldp-interarea-01.txt, Work in
Progress, October 2005
[MLDP] Minei, I., Wijnamds, I., Editors, "Label Distribution Protocol
Extensions for Point-to-Multipoint and Multipoint-to-Multipoint Label
Switched Paths", draft-minei-wijnands-mpls-ldp-p2mp-00.txt, Work in
Progress, September 2005
[NNHOP] Shen, N., Chen, E., Tian, A. "Discovery LDP Next-Nexthop
Labels", draft-shen-mpls-ldp-nnhop-label-02.txt, Work in Progress,
May 2005
[PWE] Martini L. Editor. "Pseudowire Setup and Maintenance using the
Label Distribution Protocol", draft-ietf-pwe3-control-protocol-
17.txt, Work in Progress, June 2005
[RFC3478] Leelanivas, M., Rekhter, Y, Aggarwal, R., "Graceful Restart
Mechanism for Label Distribution Protocol (LDP)", RFC 3478, February
2003.
[RFC3479] Farrel, A., Editor, "Fault Tolerance for the Label
Distribution Protocol (LDP)", RFC 3479, February 2003.
Aggarwal, et al. [Page 12]
Internet Draft draft-thomas-mpls-ldp-capabilities-01.txt October 2006
[UPSTREAM_LDP] Aggarwal R., Le Roux, J.L., "MPLS Upstream Label
Assignment for LDP" draft-ietf-mpls-ldp-upstream-00.txt, Work in
Progress, February 2006.
15. Author Information
Shivani Aggarwal
Juniper Networks
1194 North Mathilda Ave.
Sunnyvale, CA 94089
Email: shivani@juniper.net
Rahul Aggarwal
Juniper Networks
1194 North Mathilda Ave.
Sunnyvale, CA 94089
Email: rahul@juniper.net
Jean-Louis Le Roux
France Telecom
2, avenue Pierre-Marzin
22307 Lannion Cedex
France
E-mail: jeanlouis.leroux@orange_ft.com
Bob Thomas
Cisco Systems, Inc.
1414 Massachusetts Ave.
Boxborough MA 01719
E-mail: rhthomas@cisco.com
16. Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
Aggarwal, et al. [Page 13]
Internet Draft draft-thomas-mpls-ldp-capabilities-01.txt October 2006
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at ietf-
ipr@ietf.org.
17. Full Copyright Statement
Copyright (C) The Internet Society (2006). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Additional copyright notices are not permitted in IETF Documents
except in the case where such document is the product of a joint
development effort between the IETF and another standards development
organization or the document is a republication of the work of
another standards organization. Such exceptions must be approved on
an individual basis by the IAB.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Aggarwal, et al. [Page 14]
| PAFTECH AB 2003-2026 | 2026-04-22 16:30:20 |