As per Relevance of the word procedure, we have this rfc below:











Network Working Group L.
Request for Comments: 3036 Nortel Networks Inc
Category: Standards Track P.
Ennovate
N.
IBM
A.
PhotonEx
B.
Cisco Systems, Inc
January 2001


LDP

Status of this

This document specifies an Internet standards track protocol for
Internet community, and requests discussion and suggestions
improvements. Please refer to the current edition of the "
Official Protocol Standards" (STD 1) for the standardization
and status of this protocol. Distribution of this memo is unlimited

Copyright

Copyright (C) The Internet Society (2001). All Rights Reserved



The architecture for Multi Protocol Label Switching (MPLS)
described in RFC 3031. A fundamental concept in MPLS is that
Label Switching Routers (LSRs) must agree on the meaning of
labels used to forward traffic between and through them. This
understanding is achieved by using a set of procedures, called
label distribution protocol, by which one LSR informs another
label bindings it has made. This document defines a set of
procedures called LDP (for Label Distribution Protocol) by which
distribute labels to support MPLS forwarding along normally
paths












Andersson, et al. Standards Track [Page 1]

RFC 3036 LDP Specification January 2001


Table of

1 LDP Overview ....................................... 5
1.1 LDP Peers .......................................... 6
1.2 LDP Message Exchange ............................... 6
1.3 LDP Message Structure .............................. 7
1.4 LDP Error Handling ................................. 7
1.5 LDP Extensibility and Future Compatibility ......... 7
1.6 Specification Language ............................. 7
2 LDP Operation ...................................... 8
2.1 FECs ............................................... 8
2.2 Label Spaces, Identifiers, Sessions and Transport .. 9
2.2.1 Label Spaces ....................................... 9
2.2.2 LDP Identifiers .................................... 10
2.2.3 LDP Sessions ....................................... 10
2.2.4 LDP Transport ...................................... 11
2.3 LDP Sessions between non-Directly Connected LSRs ... 11
2.4 LDP Discovery ..................................... 11
2.4.1 Basic Discovery Mechanism .......................... 12
2.4.2 Extended Discovery Mechanism ....................... 12
2.5 Establishing and Maintaining LDP Sessions .......... 13
2.5.1 LDP Session Establishment .......................... 13
2.5.2 Transport Connection Establishment ................. 13
2.5.3 Session Initialization ............................. 14
2.5.4 Initialization State Machine ....................... 17
2.5.5 Maintaining Hello Adjacencies ...................... 20
2.5.6 Maintaining LDP Sessions ........................... 20
2.6 Label Distribution and Management .................. 21
2.6.1 Label Distribution Control Mode .................... 21
2.6.1.1 Independent Label Distribution Control ............. 21
2.6.1.2 Ordered Label Distribution Control ................. 21
2.6.2 Label Retention Mode ............................... 22
2.6.2.1 Conservative Label Retention Mode .................. 22
2.6.2.2 Liberal Label Retention Mode ....................... 22
2.6.3 Label Advertisement Mode ........................... 23
2.7 LDP Identifiers and Next Hop Addresses ............. 23
2.8 Loop Detection ..................................... 24
2.8.1 Label Request Message .............................. 24
2.8.2 Label Mapping Message .............................. 26
2.8.3 Discussion ......................................... 27
2.9 Authenticity and Integrity of LDP Messages ......... 28
2.9.1 TCP MD5 Signature Option ........................... 28
2.9.2 LDP Use of TCP MD5 Signature Option ................ 30
2.10 Label Distribution for Explicitly Routed LSPs ...... 30
3 Protocol Specification ............................. 31
3.1 LDP PDUs ........................................... 31
3.2 LDP Procedures ..................................... 32
3.3 Type-Length-Value Encoding ......................... 32



Andersson, et al. Standards Track [Page 2]

RFC 3036 LDP Specification January 2001


3.4 TLV Encodings for Commonly Used Parameters ......... 34
3.4.1 FEC TLV ............................................ 34
3.4.1.1 FEC Procedures ..................................... 37
3.4.2 Label TLVs ......................................... 37
3.4.2.1 Generic Label TLV .................................. 37
3.4.2.2 ATM Label TLV ...................................... 38
3.4.2.3 Frame Relay Label TLV .............................. 38
3.4.3 Address List TLV ................................... 39
3.4.4 Hop Count TLV ...................................... 40
3.4.4.1 Hop Count Procedures ............................... 40
3.4.5 Path Vector TLV .................................... 41
3.4.5.1 Path Vector Procedures ............................. 42
3.4.5.1.1 Label Request Path Vector .......................... 42
3.4.5.1.2 Label Mapping Path Vector .......................... 43
3.4.6 Status TLV ......................................... 43
3.5 LDP Messages ....................................... 45
3.5.1 Notification Message ............................... 47
3.5.1.1 Notification Message Procedures .................... 48
3.5.1.2 Events Signaled by Notification Messages ........... 49
3.5.1.2.1 Malformed PDU or Message ........................... 49
3.5.1.2.2 Unknown or Malformed TLV ........................... 50
3.5.1.2.3 Session KeepAlive Timer Expiration ................. 50
3.5.1.2.4 Unilateral Session Shutdown ........................ 51
3.5.1.2.5 Initialization Message Events ...................... 51
3.5.1.2.6 Events Resulting From Other Messages ............... 51
3.5.1.2.7 Internal Errors .................................... 51
3.5.1.2.8 Miscellaneous Events ............................... 51
3.5.2 Hello Message ...................................... 51
3.5.2.1 Hello Message Procedures ........................... 54
3.5.3 Initialization Message ............................. 55
3.5.3.1 Initialization Message Procedures .................. 63
3.5.4 KeepAlive Message .................................. 63
3.5.4.1 KeepAlive Message Procedures ....................... 63
3.5.5 Address Message .................................... 64
3.5.5.1 Address Message Procedures ......................... 64
3.5.6 Address Withdraw Message ........................... 65
3.5.6.1 Address Withdraw Message Procedures ................ 66
3.5.7 Label Mapping Message .............................. 66
3.5.7.1 Label Mapping Message Procedures ................... 67
3.5.7.1.1 Independent Control Mapping ........................ 67
3.5.7.1.2 Ordered Control Mapping ............................ 68
3.5.7.1.3 Downstream on Demand Label Advertisement ........... 68
3.5.7.1.4 Downstream Unsolicited Label Advertisement ......... 69
3.5.8 Label Request Message .............................. 69
3.5.8.1 Label Request Message Procedures ................... 70
3.5.9 Label Abort Request Message ........................ 72
3.5.9.1 Label Abort Request Message Procedures ............. 73
3.5.10 Label Withdraw Message ............................. 74



Andersson, et al. Standards Track [Page 3]

RFC 3036 LDP Specification January 2001


3.5.10.1 Label Withdraw Message Procedures .................. 75
3.5.11 Label Release Message .............................. 76
3.5.11.1 Label Release Message Procedures ................... 77
3.6 Messages and TLVs for Extensibility ................ 78
3.6.1 LDP Vendor-private Extensions ...................... 78
3.6.1.1 LDP Vendor-private TLVs ............................ 78
3.6.1.2 LDP Vendor-private Messages ........................ 80
3.6.2 LDP Experimental Extensions ........................ 81
3.7 Message Summary .................................... 81
3.8 TLV Summary ........................................ 82
3.9 Status Code Summary ................................ 83
3.10 Well-known Numbers ................................. 84
3.10.1 UDP and TCP Ports .................................. 84
3.10.2 Implicit NULL Label ................................ 84
4 IANA Considerations ................................ 84
4.1 Message Type Name Space ............................ 84
4.2 TLV Type Name Space ................................ 85
4.3 FEC Type Name Space ................................ 85
4.4 Status Code Name Space ............................. 86
4.5 Experiment ID Name Space ........................... 86
5 Security Considerations ............................ 86
5.1 Spoofing ........................................... 86
5.2 Privacy ............................................ 87
5.3 Denial of Service .................................. 87
6 Areas for Future Study ............................. 89
7 Intellectual Property Considerations ............... 89
8 Acknowledgments .................................... 89
9 References ......................................... 89
10 Authors' Addresses ................................. 92
Appendix A LDP Label Distribution Procedures .................. 93
A.1 Handling Label Distribution Events ................. 95
A.1.1 Receive Label Request .............................. 96
A.1.2 Receive Label Mapping .............................. 99
A.1.3 Receive Label Abort Request ........................ 105
A.1.4 Receive Label Release .............................. 107
A.1.5 Receive Label Withdraw ............................. 109
A.1.6 Recognize New FEC .................................. 110
A.1.7 Detect Change in FEC Next Hop ...................... 113
A.1.8 Receive Notification / Label Request Aborted ....... 116
A.1.9 Receive Notification / No Label Resources .......... 116
A.1.10 Receive Notification / No Route .................... 117
A.1.11 Receive Notification / Loop Detected ............... 118
A.1.12 Receive Notification / Label Resources Available ... 118
A.1.13 Detect local label resources have become available . 119
A.1.14 LSR decides to no longer label switch a FEC ........ 120
A.1.15 Timeout of deferred label request .................. 121
A.2 Common Label Distribution Procedures ............... 121
A.2.1 Send_Label ......................................... 121



Andersson, et al. Standards Track [Page 4]

RFC 3036 LDP Specification January 2001


A.2.2 Send_Label_Request ................................. 123
A.2.3 Send_Label_Withdraw ................................ 124
A.2.4 Send_Notification .................................. 125
A.2.5 Send_Message ....................................... 125
A.2.6 Check_Received_Attributes .......................... 126
A.2.7 Prepare_Label_Request_Attributes ................... 127
A.2.8 Prepare_Label_Mapping_Attributes ................... 129
Full Copyright Statement ...................................... 132

1. LDP

The MPLS architecture [RFC3031] defines a label distribution
as a set of procedures by which one Label Switched Router (LSR
informs another of the meaning of labels used to forward
between and through them

The MPLS architecture does not assume a single label
protocol. In fact, a number of different label
protocols are being standardized. Existing protocols have
extended so that label distribution can be piggybacked on them.
protocols have also been defined for the explicit purpose
distributing labels. The MPLS architecture discusses some of
considerations when choosing a label distribution protocol for use
particular MPLS applications such as Traffic Engineering [RFC2702].

The Label Distribution Protocol (LDP) defined in this document is
new protocol defined for distributing labels. It is the set
procedures and messages by which Label Switched Routers (LSRs
establish Label Switched Paths (LSPs) through a network by
network-layer routing information directly to data-link
switched paths. These LSPs may have an endpoint at a
attached neighbor (comparable to IP hop-by-hop forwarding), or
have an endpoint at a network egress node, enabling switching via
intermediary nodes

LDP associates a Forwarding Equivalence Class (FEC) [RFC3031]
each LSP it creates. The FEC associated with an LSP specifies
packets are "mapped" to that LSP. LSPs are extended through
network as each LSR "splices" incoming labels for a FEC to
outgoing label assigned to the next hop for the given FEC

More information about the applicability of LDP can be found
[RFC3037].

This document assumes familiarity with the MPLS
[RFC3031]. Note that [RFC3031] includes a glossary of
terminology, such as ingress, label switched path, etc




Andersson, et al. Standards Track [Page 5]

RFC 3036 LDP Specification January 2001


1.1. LDP

Two LSRs which use LDP to exchange label/FEC mapping information
known as "LDP Peers" with respect to that information and we speak
there being an "LDP Session" between them. A single LDP
allows each peer to learn the other's label mappings; i.e.,
protocol is bi-directional

1.2. LDP Message

There are four categories of LDP messages

1. Discovery messages, used to announce and maintain the
of an LSR in a network

2. Session messages, used to establish, maintain, and
sessions between LDP peers

3. Advertisement messages, used to create, change, and
label mappings for FECs

4. Notification messages, used to provide advisory information
to signal error information

Discovery messages provide a mechanism whereby LSRs indicate
presence in a network by sending a Hello message periodically.
is transmitted as a UDP packet to the LDP port at the `all routers
this subnet' group multicast address. When an LSR chooses
establish a session with another LSR learned via the Hello message
it uses the LDP initialization procedure over TCP transport.
successful completion of the initialization procedure, the two
are LDP peers, and may exchange advertisement messages

When to request a label or advertise a label mapping to a peer
largely a local decision made by an LSR. In general, the
requests a label mapping from a neighboring LSR when it needs one
and advertises a label mapping to a neighboring LSR when it
the neighbor to use a label

Correct operation of LDP requires reliable and in order delivery
messages. To satisfy these requirements LDP uses the TCP
for session, advertisement and notification messages; i.e.,
everything but the UDP-based discovery mechanism








Andersson, et al. Standards Track [Page 6]

RFC 3036 LDP Specification January 2001


1.3. LDP Message

All LDP messages have a common structure that uses a Type-Length
Value (TLV) encoding scheme; see Section "Type-Length-Value
encoding. The Value part of a TLV-encoded object, or TLV for short
may itself contain one or more TLVs

1.4. LDP Error

LDP errors and other events of interest are signaled to an LDP
by notification messages

There are two kinds of LDP notification messages

1. Error notifications, used to signal fatal errors. If an
receives an error notification from a peer for an LDP session
it terminates the LDP session by closing the TCP
connection for the session and discarding all label
learned via the session

2. Advisory notifications, used to pass an LSR information
the LDP session or the status of some previous message
from the peer

1.5. LDP Extensibility and Future

Functionality may be added to LDP in the future. It is likely
future functionality will utilize new messages and object
(TLVs). It may be desirable to employ such new messages and
within a network using older implementations that do not
them. While it is not possible to make every future
backwards compatible, some prior planning can ease the
of new capabilities. This specification defines rules for
unknown message types and unknown TLVs for this purpose

1.6. Specification

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
document are to be interpreted as described in [RFC2119].











Andersson, et al. Standards Track [Page 7]

RFC 3036 LDP Specification January 2001


2. LDP

2.1.

It is necessary to precisely specify which packets may be mapped
each LSP. This is done by providing a FEC specification for
LSP. The FEC identifies the set of IP packets which may be mapped
that LSP

Each FEC is specified as a set of one or more FEC elements. Each
element identifies a set of packets which may be mapped to
corresponding LSP. When an LSP is shared by multiple FEC elements
that LSP is terminated at (or before) the node where the FEC
can no longer share the same path

Following are the currently defined types of FEC elements.
element types may be added as needed

1. Address Prefix. This element is an address prefix of
length from 0 to a full address, inclusive

2. Host Address. This element is a full host address

(We will see below that an Address Prefix FEC element which is a
address has a different effect than a Host Address FEC element
has the same address.)

We say that a particular address "matches" a particular
prefix if and only if that address begins with that prefix. We
say that a particular packet matches a particular LSP if and only
that LSP has an Address Prefix FEC element which matches the packet'
destination address. With respect to a particular packet and
particular LSP, we refer to any Address Prefix FEC element
matches the packet as the "matching prefix".

The procedure for mapping a particular packet to a particular
uses the following rules. Each rule is applied in turn until
packet can be mapped to an LSP

- If there is exactly one LSP which has a Host Address
element that is identical to the packet's destination address
then the packet is mapped to that LSP

- If there are multiple LSPs, each containing a Host Address
element that is identical to the packet's destination address
then the packet is mapped to one of those LSPs. The
for selecting one of those LSPs is beyond the scope of
document



Andersson, et al. Standards Track [Page 8]

RFC 3036 LDP Specification January 2001


- If a packet matches exactly one LSP, the packet is mapped
that LSP

- If a packet matches multiple LSPs, it is mapped to the
whose matching prefix is the longest. If there is no one
whose matching prefix is longest, the packet is mapped to
from the set of LSPs whose matching prefix is longer than
others. The procedure for selecting one of those LSPs
beyond the scope of this document

- If it is known that a packet must traverse a particular
router, and there is an LSP which has an Address Prefix
element which is an address of that router, then the packet
mapped to that LSP. The procedure for obtaining this
is beyond the scope of this document

The procedure for determining that a packet must traverse
particular egress router is beyond the scope of this document. (
an example, if one is running a link state routing algorithm, it
be possible to obtain this information from the link state data base
As another example, if one is running BGP, it may be possible
obtain this information from the BGP next hop attribute of
packet's route.)

It is worth pointing out a few consequences of these rules

- A packet may be sent on the LSP whose Address Prefix
element is the address of the packet's egress router ONLY
there is no LSP matching the packet's destination address

- A packet may match two LSPs, one with a Host Address
element and one with an Address Prefix FEC element. In
case, the packet is always assigned to the former

- A packet which does not match a particular Host Address
element may not be sent on the corresponding LSP, even if
Host Address FEC element identifies the packet's egress router

2.2. Label Spaces, Identifiers, Sessions and

2.2.1. Label

The notion of "label space" is useful for discussing the
and distribution of labels. There are two types of label spaces







Andersson, et al. Standards Track [Page 9]

RFC 3036 LDP Specification January 2001


- Per interface label space. Interface-specific incoming
are used for interfaces that use interface resources
labels. An example of such an interface is a label-
ATM interface that uses VCIs as labels, or a Frame
interface that uses DLCIs as labels

Note that the use of a per interface label space only
sense when the LDP peers are "directly connected" over
interface, and the label is only going to be used for
sent over that interface

- Per platform label space. Platform-wide incoming labels
used for interfaces that can share the same labels

2.2.2. LDP

An LDP identifier is a six octet quantity used to identify an
label space. The first four octets identify the LSR and must be
globally unique value, such as a 32-bit router Id assigned to
LSR. The last two octets identify a specific label space within
LSR. The last two octets of LDP Identifiers for platform-wide
spaces are always both zero. This document uses the following
representation for LDP Identifiers

: