draft-ietf-mpls-ldp-04.txt   draft-ietf-mpls-ldp-05.txt 
Network Working Group Loa Andersson Network Working Group Loa Andersson
Internet Draft Nortel Networks Inc. Internet Draft Nortel Networks Inc.
Expiration Date: November 1999 Expiration Date: December 1999
Paul Doolan Paul Doolan
Ennovate Networks Ennovate Networks
Nancy Feldman Nancy Feldman
IBM Corp IBM Corp
Andre Fredette Andre Fredette
Nortel Networks Inc. Nortel Networks Inc.
Bob Thomas Bob Thomas
Cisco Systems, Inc. Cisco Systems, Inc.
May 1999 June 1999
LDP Specification LDP Specification
draft-ietf-mpls-ldp-04.txt draft-ietf-mpls-ldp-05.txt
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 44 skipping to change at page 1, line 44
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."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
To view the list Internet-Draft Shadow Directories, see
http://www.ietf.org/shadow.html.
Abstract Abstract
An overview of Multi Protocol Label Switching (MPLS) is provided in An overview of Multi Protocol Label Switching (MPLS) is provided in
[FRAMEWORK] and a proposed architecture in [ARCH]. A fundamental [FRAMEWORK] and a proposed architecture in [ARCH]. A fundamental
concept in MPLS is that two Label Switching Routers (LSRs) must agree concept in MPLS is that two Label Switching Routers (LSRs) must agree
on the meaning of the labels used to forward traffic between and on the meaning of the labels used to forward traffic between and
through them. This common understanding is achieved by using a set through them. This common understanding is achieved by using a set
of procedures, called a label distribution protocol, by which one LSR of procedures, called a label distribution protocol, by which one LSR
informs another of label bindins it has made. This document defines informs another of label bindins it has made. This document defines
a set of such procedures called LDP (for Label Distribution a set of such procedures called LDP (for Label Distribution
skipping to change at page 2, line 20 skipping to change at page 2, line 20
Changes from Previous Draft Changes from Previous Draft
- This draft addresses issues raised during the LDP last call held - This draft addresses issues raised during the LDP last call held
February 8, 1999 through February 24, 1999. February 8, 1999 through February 24, 1999.
Open Issues Open Issues
The following LDP issues are left unresolved with this version of the The following LDP issues are left unresolved with this version of the
spec: spec:
- Section 2.16 of the MPLS architecture [ARCH] requires that the
initial label distribution protocol negotiation between peer LSRs
enable each LSR to determine whether its peer is capable of
popping the label stack. This version of LDP assumes that LSRs
support label popping for all link types except ATM and Frame
Relay. A future version may specify means to make this
determination part of the session initiation negotiation.
- LDP support for CoS is not specified in this version. CoS - LDP support for CoS is not specified in this version. CoS
support may be addressed in a future version. support may be addressed in a future version.
- LDP support for multicast is not specified in this version. - LDP support for multicast is not specified in this version.
Multicast support will be addressed in a future version. Multicast support will be addressed in a future version.
- LDP support for multipath label switching is not specified in - LDP support for multipath label switching is not specified in
this version. Multipath support will be addressed in a future this version. Multipath support will be addressed in a future
version. version.
skipping to change at page 4, line 40 skipping to change at page 4, line 40
3.5.3 Initialization Message ............................. 53 3.5.3 Initialization Message ............................. 53
3.5.3.1 Initialization Message Procedures .................. 61 3.5.3.1 Initialization Message Procedures .................. 61
3.5.4 KeepAlive Message .................................. 61 3.5.4 KeepAlive Message .................................. 61
3.5.4.1 KeepAlive Message Procedures ....................... 62 3.5.4.1 KeepAlive Message Procedures ....................... 62
3.5.5 Address Message .................................... 62 3.5.5 Address Message .................................... 62
3.5.5.1 Address Message Procedures ......................... 63 3.5.5.1 Address Message Procedures ......................... 63
3.5.6 Address Withdraw Message ........................... 63 3.5.6 Address Withdraw Message ........................... 63
3.5.6.1 Address Withdraw Message Procedures ................ 64 3.5.6.1 Address Withdraw Message Procedures ................ 64
3.5.7 Label Mapping Message .............................. 64 3.5.7 Label Mapping Message .............................. 64
3.5.7.1 Label Mapping Message Procedures ................... 65 3.5.7.1 Label Mapping Message Procedures ................... 65
3.5.7.1.1 Independent Control Mapping ........................ 65 3.5.7.1.1 Independent Control Mapping ........................ 66
3.5.7.1.2 Ordered Control Mapping ............................ 66 3.5.7.1.2 Ordered Control Mapping ............................ 66
3.5.7.1.3 Downstream on Demand Label Advertisement ........... 66 3.5.7.1.3 Downstream on Demand Label Advertisement ........... 67
3.5.7.1.4 Downstream Unsolicited Label Advertisement ......... 67 3.5.7.1.4 Downstream Unsolicited Label Advertisement ......... 67
3.5.8 Label Request Message .............................. 68 3.5.8 Label Request Message .............................. 68
3.5.8.1 Label Request Message Procedures ................... 69 3.5.8.1 Label Request Message Procedures ................... 69
3.5.9 Label Abort Request Message ........................ 70 3.5.9 Label Abort Request Message ........................ 70
3.5.9.1 Label Abort Request Message Procedures ............. 71 3.5.9.1 Label Abort Request Message Procedures ............. 71
3.5.10 Label Withdraw Message ............................. 72 3.5.10 Label Withdraw Message ............................. 73
3.5.10.1 Label Withdraw Message Procedures .................. 73 3.5.10.1 Label Withdraw Message Procedures .................. 73
3.5.11 Label Release Message .............................. 74 3.5.11 Label Release Message .............................. 74
3.5.11.1 Label Release Message Procedures ................... 74 3.5.11.1 Label Release Message Procedures ................... 75
3.6 Messages and TLVs for Extensibility ................ 75 3.6 Messages and TLVs for Extensibility ................ 76
3.6.1 LDP Vendor-private Extensions ...................... 76 3.6.1 LDP Vendor-private Extensions ...................... 76
3.6.1.1 LDP Vendor-private TLVs ............................ 76 3.6.1.1 LDP Vendor-private TLVs ............................ 76
3.6.1.2 LDP Vendor-private Messages ........................ 77 3.6.1.2 LDP Vendor-private Messages ........................ 78
3.6.2 LDP Experimental Extensions ........................ 78 3.6.2 LDP Experimental Extensions ........................ 79
3.7 Message Summary .................................... 79 3.7 Message Summary .................................... 79
3.8 TLV Summary ........................................ 79 3.8 TLV Summary ........................................ 80
3.9 Status Code Summary ................................ 80 3.9 Status Code Summary ................................ 81
3.10 Well-known Numbers ................................. 81 3.10 Well-known Numbers ................................. 82
3.10.1 UDP and TCP Ports .................................. 81 3.10.1 UDP and TCP Ports .................................. 82
3.10.2 Implicit NULL Label ................................ 81 3.10.2 Implicit NULL Label ................................ 82
4 Security Considerations ............................ 81 4 Security Considerations ............................ 82
4.1 The TCP MD5 Signature Option ....................... 81 4.1 The TCP MD5 Signature Option ....................... 82
4.2 LDP Use of the TCP MD5 Signature Option ............ 83 4.2 LDP Use of the TCP MD5 Signature Option ............ 84
5 Intellectual Property Considerations ............... 84 5 Intellectual Property Considerations ............... 84
6 Acknowledgments .................................... 84 6 Acknowledgments .................................... 85
7 References ......................................... 84 7 References ......................................... 85
8 Author Information ................................. 85 8 Author Information ................................. 86
Appendix.A LDP Label Distribution Procedures .................. 87 Appendix.A LDP Label Distribution Procedures .................. 87
A.1 Handling Label Distribution Events ................. 89 A.1 Handling Label Distribution Events ................. 89
A.1.1 Receive Label Request .............................. 90 A.1.1 Receive Label Request .............................. 90
A.1.2 Receive Label Mapping .............................. 93 A.1.2 Receive Label Mapping .............................. 93
A.1.3 Receive Label Abort Request ........................ 97 A.1.3 Receive Label Abort Request ........................ 98
A.1.4 Receive Label Release .............................. 99 A.1.4 Receive Label Release .............................. 99
A.1.5 Receive Label Withdraw ............................. 101 A.1.5 Receive Label Withdraw ............................. 101
A.1.6 Recognize New FEC .................................. 102 A.1.6 Recognize New FEC .................................. 103
A.1.7 Detect Change in FEC Next Hop ...................... 105 A.1.7 Detect Change in FEC Next Hop ...................... 106
A.1.8 Receive Notification / Label Request Aborted ....... 108 A.1.8 Receive Notification / Label Request Aborted ....... 108
A.1.9 Receive Notification / No Label Resources .......... 109 A.1.9 Receive Notification / No Label Resources .......... 109
A.1.10 Receive Notification / No Route .................... 109 A.1.10 Receive Notification / No Route .................... 110
A.1.11 Receive Notification / Loop Detected ............... 110 A.1.11 Receive Notification / Loop Detected ............... 110
A.1.12 Receive Notification / Label Resources Available ... 111 A.1.12 Receive Notification / Label Resources Available ... 111
A.1.13 Detect local label resources have become available . 111 A.1.13 Detect local label resources have become available . 112
A.1.14 LSR decides to no longer label switch a FEC ........ 112 A.1.14 LSR decides to no longer label switch a FEC ........ 113
A.1.15 Timeout of deferred label request .................. 113 A.1.15 Timeout of deferred label request .................. 113
A.2 Common Label Distribution Procedures ............... 114 A.2 Common Label Distribution Procedures ............... 114
A.2.1 Send_Label ......................................... 114 A.2.1 Send_Label ......................................... 114
A.2.2 Send_Label_Request ................................. 115 A.2.2 Send_Label_Request ................................. 116
A.2.3 Send_Label_Withdraw ................................ 117 A.2.3 Send_Label_Withdraw ................................ 117
A.2.4 Send_Notification .................................. 117 A.2.4 Send_Notification .................................. 117
A.2.5 Send_Message ....................................... 118 A.2.5 Send_Message ....................................... 118
A.2.6 Check_Received_Attributes .......................... 118 A.2.6 Check_Received_Attributes .......................... 118
A.2.7 Prepare_Label_Request_Attributes ................... 119 A.2.7 Prepare_Label_Request_Attributes ................... 120
A.2.8 Prepare_Label_Mapping_Attributes ................... 121 A.2.8 Prepare_Label_Mapping_Attributes ................... 121
1. LDP Overview 1. LDP Overview
Section 2.6 of the MPLS architecture [ARCH] defines a label Section 2.6 of the MPLS architecture [ARCH] defines a label
distribution protocol as a set of procedures by which one Label distribution protocol as a set of procedures by which one Label
Switched Router (LSR) informs another of the meaning of labels used Switched Router (LSR) informs another of the meaning of labels used
to forward traffic between and through them. to forward traffic between and through them.
The MPLS architecture does not assume a single label distribution The MPLS architecture does not assume a single label distribution
skipping to change at page 21, line 18 skipping to change at page 21, line 18
binding in response to an explicit request from another LSR. This is binding in response to an explicit request from another LSR. This is
known as Downstream On Demand label distribution. It also allows an known as Downstream On Demand label distribution. It also allows an
LSR to distribute label bindings to LSRs that have not explicitly LSR to distribute label bindings to LSRs that have not explicitly
requested them. This is known as Downstream Unsolicited label requested them. This is known as Downstream Unsolicited label
distribution. distribution.
Both of these label distribution techniques may be used in the same Both of these label distribution techniques may be used in the same
network at the same time. However, for any given LDP session, each network at the same time. However, for any given LDP session, each
LSR must be aware of the label distribution method used by its peer LSR must be aware of the label distribution method used by its peer
in order to avoid situations where one peer using Downstream in order to avoid situations where one peer using Downstream
Unsolicted label distribution assumes its peer is also. See Section Unsolicited label distribution assumes its peer is also. See Section
"Downstream on Demand label Advertisement". "Downstream on Demand label Advertisement".
2.6.1. Label Distribution Control Mode 2.6.1. Label Distribution Control Mode
The behavior of the initial setup of LSPs is determined by whether The behavior of the initial setup of LSPs is determined by whether
the LSR is operating with independent or ordered LSP control. An LSR the LSR is operating with independent or ordered LSP control. An LSR
may support both types of control as a configurable option. may support both types of control as a configurable option.
2.6.1.1. Independent Label Distribution Control 2.6.1.1. Independent Label Distribution Control
skipping to change at page 48, line 19 skipping to change at page 48, line 19
- The PDU Length field is too small (< 14) or too large - The PDU Length field is too small (< 14) or too large
(> maximum PDU length). This is a fatal error signaled by the (> maximum PDU length). This is a fatal error signaled by the
Bad PDU Length Status Code. Section "Initialization Message" Bad PDU Length Status Code. Section "Initialization Message"
describes how the maximum PDU length for a session is determined. describes how the maximum PDU length for a session is determined.
An LDP Message is malformed if: An LDP Message is malformed if:
- The Message Type is unknown. - The Message Type is unknown.
If the Message Type is < 0x8000 (high order bit = 0) it is a If the Message Type is < 0x8000 (high order bit = 0) it is an
fatal error signaled by the Unknown Message Type Status Code. error signaled by the Unknown Message Type Status Code.
If the Message Type is >= 0x8000 (high order bit = 1) it is If the Message Type is >= 0x8000 (high order bit = 1) it is
silently discarded. silently discarded.
- The Message Length is too large, that is, indicates that the - The Message Length is too large, that is, indicates that the
message extends beyond the end of the containing LDP PDU. This message extends beyond the end of the containing LDP PDU. This
is a fatal error signaled by the Bad Message Length Status Code. is a fatal error signaled by the Bad Message Length Status Code.
3.5.1.2.2. Unknown or Malformed TLV 3.5.1.2.2. Unknown or Malformed TLV
skipping to change at page 48, line 44 skipping to change at page 48, line 44
A TLV contained in an LDP message received on a TCP connection of an A TLV contained in an LDP message received on a TCP connection of an
LDP is malformed if: LDP is malformed if:
- The TLV Length is too large, that is, indicates that the TLV - The TLV Length is too large, that is, indicates that the TLV
extends beyond the end of the containing message. This is a extends beyond the end of the containing message. This is a
fatal error signaled by the Bad TLV Length Status Code. fatal error signaled by the Bad TLV Length Status Code.
- The TLV type is unknown. - The TLV type is unknown.
If the TLV type is < 0x8000 (high order bit 0) it is a fatal If the TLV type is < 0x8000 (high order bit 0) it is an error
error signaled by the Unknown TLV Status Code. signaled by the Unknown TLV Status Code.
If the TLV type is >= 08000 (high order bit 1) the TLV is If the TLV type is >= 08000 (high order bit 1) the TLV is
silently dropped. Section "Unknown TLV in Known Message Type" silently dropped. Section "Unknown TLV in Known Message Type"
elaborates on this behavior. elaborates on this behavior.
- The TLV Value is malformed. This occurs when the receiver - The TLV Value is malformed. This occurs when the receiver
handles the TLV but cannot decode the TLV Value. This is handles the TLV but cannot decode the TLV Value. This is
interpreted as indicative of a bug in either the sending or interpreted as indicative of a bug in either the sending or
receiving LSR. It is a fatal error signaled by the Malformed TLV receiving LSR. It is a fatal error signaled by the Malformed TLV
Value Status Code. Value Status Code.
skipping to change at page 54, line 34 skipping to change at page 54, line 34
protocol version 1. protocol version 1.
KeepAlive Time KeepAlive Time
Two octet unsigned non zero integer that indicates the number Two octet unsigned non zero integer that indicates the number
of seconds that the sending LSR proposes for the value of the of seconds that the sending LSR proposes for the value of the
KeepAlive Time. The receiving LSR MUST calculate the value of KeepAlive Time. The receiving LSR MUST calculate the value of
the KeepAlive Timer by using the smaller of its proposed the KeepAlive Timer by using the smaller of its proposed
KeepAlive Time and the KeepAlive Time received in the PDU. The KeepAlive Time and the KeepAlive Time received in the PDU. The
value chosen for KeepAlive Time indicates the maximum number of value chosen for KeepAlive Time indicates the maximum number of
seconds that may elapse between the receipt of successive PDUs seconds that may elapse between the receipt of successive PDUs
from the LDP peer. The KeepAlive Timer is reset each time a from the LDP peer on the session TCP connection. The KeepAlive
PDU arrives. Timer is reset each time a PDU arrives.
A, Label Advertisement Discipline A, Label Advertisement Discipline
Indicates the type of Label advertisement. A value of 0 means Indicates the type of Label advertisement. A value of 0 means
Downstream Unsolicited advertisement; a value of 1 means Downstream Unsolicited advertisement; a value of 1 means
Downstream On Demand. Downstream On Demand.
If one LSR proposes Downstream Unsolicted and the other If one LSR proposes Downstream Unsolicited and the other
proposes Downstream on Demand, the rules for resolving this proposes Downstream on Demand, the rules for resolving this
difference is: difference is:
- If the session is for a label-controlled ATM link or a - If the session is for a label-controlled ATM link or a
label-controlled Frame Relay link, then Downstream on label-controlled Frame Relay link, then Downstream on
Demand must be used. Demand must be used.
- Otherwise, Downstream Unsolicted must be used. - Otherwise, Downstream Unsolicited must be used.
If the label advertisement discipline determined in this way is If the label advertisement discipline determined in this way is
unacceptable to an LSR, it must send a Session unacceptable to an LSR, it must send a Session
Rejected/Parameters Advertisement Mode Notification message in Rejected/Parameters Advertisement Mode Notification message in
response to the Initialization message and not establish the response to the Initialization message and not establish the
session. session.
D, Loop Detection D, Loop Detection
Indicates whether loop detection based on path vectors is Indicates whether loop detection based on path vectors is
enabled. A value of 0 means loop detection is disabled; a enabled. A value of 0 means loop detection is disabled; a
skipping to change at page 57, line 33 skipping to change at page 57, line 33
the TLV. the TLV.
D, VC Directionality D, VC Directionality
A value of 0 specifies bidirectional VC capability, meaning the A value of 0 specifies bidirectional VC capability, meaning the
LSR can (within a given VPI) support the use of a given VCI as LSR can (within a given VPI) support the use of a given VCI as
a label for both link directions independently. A value of 1 a label for both link directions independently. A value of 1
specifies unidirectional VC capability, meaning (within a given specifies unidirectional VC capability, meaning (within a given
VPI) a given VCI may appear in a label mapping for one VPI) a given VCI may appear in a label mapping for one
direction on the link only. When either or both of the peers direction on the link only. When either or both of the peers
specifies unidirectional VC capability, both LSRs use specifies unidirectional VC capability, both LSRs use
unidirectional VC label assignement for the link as follows. unidirectional VC label assignment for the link as follows.
The LSRs compare their LDP Identifiers as unsigned integers. The LSRs compare their LDP Identifiers as unsigned integers.
The LSR with the larger LDP Identifier may assign only odd- The LSR with the larger LDP Identifier may assign only odd-
numbered VCIs in the VPI/VCI range as labels. The system with numbered VCIs in the VPI/VCI range as labels. The system with
the smaller LDP Identifier may assign only even-numbered VCIs the smaller LDP Identifier may assign only even-numbered VCIs
in the VPI/VCI range as labels. in the VPI/VCI range as labels.
Reserved Reserved
This field is reserved. It must be set to zero on transmission This field is reserved. It must be set to zero on transmission
and ignored on receipt. and ignored on receipt.
skipping to change at page 59, line 5 skipping to change at page 59, line 5
justified in this field and preceding bits should be set to justified in this field and preceding bits should be set to
0. 0.
Maximum VCI (16 bits) Maximum VCI (16 bits)
This 16 bit field specifies the upper bound of a block of This 16 bit field specifies the upper bound of a block of
Virtual Connection Identifiers that is supported on the Virtual Connection Identifiers that is supported on the
originating switch. If the VCI is less than 16-bits it originating switch. If the VCI is less than 16-bits it
should be right justified in this field and preceding bits should be right justified in this field and preceding bits
should be set to 0. should be set to 0.
When peer LSRs are connected indirectly by means of an ATM VP,
the sending LSR should set the Minimum and Maximum VPI fields to
0, and the receiving LSR must ignore the Minimum and Maximum VPI
fields.
See [ATM-VP] for specification of the fields for ATM Label Range See [ATM-VP] for specification of the fields for ATM Label Range
Components to be used with VP merge LSRs. Components to be used with VP merge LSRs.
Frame Relay Session Parameters Frame Relay Session Parameters
Used when an LDP session manages label exchange for a Frame Relay Used when an LDP session manages label exchange for a Frame Relay
link to specify Frame Relay-specific session parameters. link to specify Frame Relay-specific session parameters.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 62, line 9 skipping to change at page 62, line 14
Message ID Message ID
32-bit value used to identify this message. 32-bit value used to identify this message.
Optional Parameters Optional Parameters
No optional parameters are defined for the KeepAlive message. No optional parameters are defined for the KeepAlive message.
3.5.4.1. KeepAlive Message Procedures 3.5.4.1. KeepAlive Message Procedures
The KeepAlive Timer mechanism described in Section "Maintaining LDP The KeepAlive Timer mechanism described in Section "Maintaining LDP
Sessions" resets a session KeepAlive timer every time an LDP PDU is Sessions" resets a session KeepAlive timer every time an LDP PDU is
received. The KeepAlive Message is provided to allow reset of the received on the session TCP connection. The KeepAlive Message is
KeepAlive Timer in circumstances where an LSR has no other provided to allow reset of the KeepAlive Timer in circumstances where
information to communicate to an LDP peer. an LSR has no other information to communicate to an LDP peer.
An LSR must arrange that its peer receive an LDP Message from it at An LSR must arrange that its peer receive an LDP Message from it at
least every KeepAlive Time period. Any LDP protocol message will do least every KeepAlive Time period. Any LDP protocol message will do
but, in circumstances where no other LDP protocol messages have been but, in circumstances where no other LDP protocol messages have been
sent within the period, a KeepAlive message must be sent. sent within the period, a KeepAlive message must be sent.
3.5.5. Address Message 3.5.5. Address Message
An LSR sends the Address Message to an LDP peer to advertise its An LSR sends the Address Message to an LDP peer to advertise its
interface addresses. interface addresses.
skipping to change at page 70, line 38 skipping to change at page 71, line 8
3.5.9. Label Abort Request Message 3.5.9. Label Abort Request Message
The Label Abort Request message may be used to abort an outstanding The Label Abort Request message may be used to abort an outstanding
Label Request message. Label Request message.
The encoding for the Label Abort Request Message is: The encoding for the Label Abort Request Message is:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Label Abort Req (0x0402) | Message Length | |0| Label Abort Req (0x0404) | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID | | Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FEC TLV | | FEC TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label Request Message ID TLV | | Label Request Message ID TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Optional Parameters |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Message ID Message ID
32-bit value used to identify this message. 32-bit value used to identify this message.
FEC TLV FEC TLV
Identifies the FEC for which the FEC-label mapping is being Identifies the FEC for which the FEC-label mapping is being
withdrawn. withdrawn.
Label Request Message ID TLV Label Request Message ID TLV
Specifies the message ID of the Label Request message to be Specifies the message ID of the Label Request message to be
aborted. aborted.
Optional Parameters
No optional parameters are defined for the Label Abort Req message.
3.5.9.1. Label Abort Request Message Procedures 3.5.9.1. Label Abort Request Message Procedures
An LSR Ru may send a Label Abort Request message to abort an An LSR Ru may send a Label Abort Request message to abort an
outstanding Label Request message for FEC sent to LSR Rd in the outstanding Label Request message for FEC sent to LSR Rd in the
following circumstances: following circumstances:
1. Ru's next hop for FEC has changed from LSR Rd to LSR X; or 1. Ru's next hop for FEC has changed from LSR Rd to LSR X; or
2. Ru is a non-merge, non-ingress LSR and has received a Label 2. Ru is a non-merge, non-ingress LSR and has received a Label
Abort Request for FEC from an upstream peer Y. Abort Request for FEC from an upstream peer Y.
skipping to change at page 80, line 43 skipping to change at page 81, line 35
Success 0 0x00000000 "Status TLV" Success 0 0x00000000 "Status TLV"
Bad LDP Identifer 1 0x00000001 "Events Signaled by ..." Bad LDP Identifer 1 0x00000001 "Events Signaled by ..."
Bad Protocol Version 1 0x00000002 "Events Signaled by ..." Bad Protocol Version 1 0x00000002 "Events Signaled by ..."
Bad PDU Length 1 0x00000003 "Events Signaled by ..." Bad PDU Length 1 0x00000003 "Events Signaled by ..."
Unknown Message Type 0 0x00000004 "Events Signaled by ..." Unknown Message Type 0 0x00000004 "Events Signaled by ..."
Bad Message Length 1 0x00000005 "Events Signaled by ..." Bad Message Length 1 0x00000005 "Events Signaled by ..."
Unknown TLV 0 0x00000006 "Events Signaled by ..." Unknown TLV 0 0x00000006 "Events Signaled by ..."
Bad TLV length 1 0x00000007 "Events Signaled by ..." Bad TLV length 1 0x00000007 "Events Signaled by ..."
Malformed TLV Value 1 0x00000008 "Events Signaled by ..." Malformed TLV Value 1 0x00000008 "Events Signaled by ..."
Hold Timer Expired 1 0x00000009 "Events Signaled by ..." Hold Timer Expired 1 0x00000009 "Events Signaled by ..."
KeepAlive Timer 1 0x00000009 "Events Signaled by ..."
Expired
Shutdown 1 0x0000000A "Events Signaled by ..." Shutdown 1 0x0000000A "Events Signaled by ..."
Loop Detected 0 0x0000000B "Loop Detection" Loop Detected 0 0x0000000B "Loop Detection"
Unknown FEC 0 0x0000000C "FEC Procedures" Unknown FEC 0 0x0000000C "FEC Procedures"
No Route 0 0x0000000D "Label Request Mess ..." No Route 0 0x0000000D "Label Request Mess ..."
No Label Resources 0 0x0000000E "Label Request Mess ..." No Label Resources 0 0x0000000E "Label Request Mess ..."
Label Resources / 0 0x0000000F "Label Request Mess ..." Label Resources / 0 0x0000000F "Label Request Mess ..."
Available Available
Session Rejected/ 1 0x00000010 "Session Initialization" Session Rejected/ 1 0x00000010 "Session Initialization"
No Hello No Hello
Session Rejected/ 1 0x00000011 "Session Initialization" Session Rejected/ 1 0x00000011 "Session Initialization"
Parameters Advertisement Mode Parameters Advertisement Mode
Session Rejected/ 1 0x00000012 "Session Initialization" Session Rejected/ 1 0x00000012 "Session Initialization"
Parameters Max PDU Length Parameters Max PDU Length
Session Rejected/ 1 0x00000013 "Session Initialization" Session Rejected/ 1 0x00000013 "Session Initialization"
Parameters Label Range Parameters Label Range
KeepAlive Timer 1 0x00000014 "Events Signaled by ..."
Expired
Label Request Aborted 0 0x00000015 "Label Request Abort ..."
3.10. Well-known Numbers 3.10. Well-known Numbers
3.10.1. UDP and TCP Ports 3.10.1. UDP and TCP Ports
The UDP port for LDP Hello messages is 646. The UDP port for LDP Hello messages is 646.
The TCP port for establishing LDP session connections is 646. The TCP port for establishing LDP session connections is 646.
3.10.2. Implicit NULL Label 3.10.2. Implicit NULL Label
The Implicit NULL label (see [ARCH]) is represented as a Generic The Implicit NULL label (see [ARCH]) is represented as a Generic
Label TLV with a Label field of 0. Label TLV with a Label field value as specified by [ENCAP].
4. Security Considerations 4. Security Considerations
This section specifies an optional mechanism to protect against the This section specifies an optional mechanism to protect against the
introduction of spoofed TCP segments into LDP session connection introduction of spoofed TCP segments into LDP session connection
streams. streams.
It is based on use of the TCP MD5 Signature Option specified in It is based on use of the TCP MD5 Signature Option specified in
[rfc2385] for use by BGP. See [rfc1321] for a specification of the [rfc2385] for use by BGP. See [rfc1321] for a specification of the
MD5 hash function. MD5 hash function.
skipping to change at page 90, line 49 skipping to change at page 90, line 49
- StoredHopCount. The hop count, if any, previously recorded for - StoredHopCount. The hop count, if any, previously recorded for
the FEC. the FEC.
Algorithm: Algorithm:
LRq.1 Execute procedure Check_Received_Attributes (MsgSource, LRq.1 Execute procedure Check_Received_Attributes (MsgSource,
RAttributes). RAttributes).
If Loop Detected, goto LRq.13. If Loop Detected, goto LRq.13.
LRq.2 Is there a Next Hop for FEC? LRq.2 Is there a Next Hop for FEC?
If so, goto LRq.5. If not, goto LRq.5.
LRq.3 Is MsgSource the Next Hop? LRq.3 Is MsgSource the Next Hop?
Ifnot, goto LRq.5. Ifnot, goto LRq.6.
LRq.4 Execute procedure Send_Notification (MsgSource, Loop LRq.4 Execute procedure Send_Notification (MsgSource, Loop
Detected). Detected).
Goto LRq.13 Goto LRq.13
LRq.5 Execute procedure Send_Notification (MsgSource, No Route). LRq.5 Execute procedure Send_Notification (MsgSource, No Route).
Goto LRq.13. Goto LRq.13.
LRq.6 Has LSR previously received a label request for FEC from LRq.6 Has LSR previously received a label request for FEC from
MsgSource? MsgSource?
skipping to change at page 92, line 4 skipping to change at page 92, line 4
4. Is LSR egress for FEC? OR 4. Is LSR egress for FEC? OR
Has LSR previously received and retained a label Has LSR previously received and retained a label
mapping for FEC from Next Hop? mapping for FEC from Next Hop?
If so, goto LRq.11. If not, goto LRq.10. If so, goto LRq.11. If not, goto LRq.10.
For Downstream Unsolicited Ordered Control OR For Downstream Unsolicited Ordered Control OR
For Downstream On Demand Ordered Control For Downstream On Demand Ordered Control
1. Is LSR egress for FEC? OR 1. Is LSR egress for FEC? OR
Has LSR previously received and retained a label Has LSR previously received and retained a label
mapping for FEC from Next Hop? mapping for FEC from Next Hop? (See Note 3.)
If not, goto LRq.10. If not, goto LRq.10.
2. Execute procedure 2. Execute procedure
Prepare_Label_Mapping_Attributes(MsgSource, FEC, Prepare_Label_Mapping_Attributes(MsgSource, FEC,
RAttributes, SAttributes, IsPropagating, RAttributes, SAttributes, IsPropagating,
StoredHopCount) StoredHopCount)
3. Execute procedure Send_Label (MsgSource, FEC, 3. Execute procedure Send_Label (MsgSource, FEC,
SAttributes). SAttributes).
Goto LRq.11. Goto LRq.11.
skipping to change at page 92, line 33 skipping to change at page 92, line 33
For Request On Request For Request On Request
1. Execute procedure Prepare_Label_Request_Attributes 1. Execute procedure Prepare_Label_Request_Attributes
(Next Hop, FEC, RAttributes, SAttributes); (Next Hop, FEC, RAttributes, SAttributes);
2. Execute procedure Send_Label_Request (Next Hop, FEC, 2. Execute procedure Send_Label_Request (Next Hop, FEC,
SAttributes). SAttributes).
Goto LRq.13. Goto LRq.13.
LRq.11 Has LSR successfully sent a label for FEC to MsgSource? LRq.11 Has LSR successfully sent a label for FEC to MsgSource?
If not, goto LRq.13. (See Note 3.) If not, goto LRq.13. (See Note 4.)
LRq.12 Perform LSR Label Use procedure. LRq.12 Perform LSR Label Use procedure.
For Use Immediate OR For Use Immediate OR
For Use If Loop Not Detected For Use If Loop Not Detected
1. Install label sent to MsgSource and label from Next 1. Install label sent to MsgSource and label from Next
Hop (if LSR is not egress) for forwarding/switching Hop (if LSR is not egress) for forwarding/switching
use. use.
skipping to change at page 93, line 22 skipping to change at page 93, line 28
request has been sent and marks it as outstanding. As long as request has been sent and marks it as outstanding. As long as
the request is marked outstanding the LSR should not send the request is marked outstanding the LSR should not send
another request for the same label to the peer. Such a second another request for the same label to the peer. Such a second
request would be a duplicate. The Send_Label_Request procedure request would be a duplicate. The Send_Label_Request procedure
described below obeys this rule. described below obeys this rule.
A duplicate label request is considered a protocol error and A duplicate label request is considered a protocol error and
should be dropped by the receiving LSR (perhaps with a suitable should be dropped by the receiving LSR (perhaps with a suitable
notification returned to MsgSource). notification returned to MsgSource).
3. The Send_Label procedure may fail due to lack of label 3. If LSR is not merge-capable, this test will fail.
4. The Send_Label procedure may fail due to lack of label
resources, in which case the LSR should not perform the Label resources, in which case the LSR should not perform the Label
Use procedure. Use procedure.
A.1.2. Receive Label Mapping A.1.2. Receive Label Mapping
Summary: Summary:
The response by an LSR to receipt of a FEC label mapping from an The response by an LSR to receipt of a FEC label mapping from an
LDP peer may involve one or more of the following actions: LDP peer may involve one or more of the following actions:
skipping to change at page 98, line 49 skipping to change at page 99, line 13
Goto LAbR.11. Goto LAbR.11.
LAbR.7 Is LSR merging the LSP for FEC? LAbR.7 Is LSR merging the LSP for FEC?
If not, goto LAbR.9. If not, goto LAbR.9.
LAbR.8 Are there upstream peers other than MsgSource that have LAbR.8 Are there upstream peers other than MsgSource that have
requested a label for FEC? requested a label for FEC?
If so, goto LAbR.11. If so, goto LAbR.11.
LAbR.9 Execute procedure Send_Message (Next Hop, Label Abort LAbR.9 Execute procedure Send_Message (Next Hop, Label Abort
Request, FEC, TLV), where TLV is the Label Request Message ID Request, FEC, TLV), where TLV is a Label Request Message ID
TLV received in the label abort request message from TLV containing the Message ID used by the LSR in the
MsgSource. outstanding Label Request message.
LAbR.10 Record that a label abort request for FEC is pending. LAbR.10 Record that a label abort request for FEC is pending.
LAbR.11 Delete record of label request for FEC from MsgSource. LAbR.11 Delete record of label request for FEC from MsgSource.
LAbR.12 DONE LAbR.12 DONE
Notes: Notes:
1. LSR uses FEC and the Label Request Message ID TLV carried by 1. LSR uses FEC and the Label Request Message ID TLV carried by
skipping to change at page 100, line 21 skipping to change at page 100, line 37
LRl.6 Is LSR egress for the FEC? LRl.6 Is LSR egress for the FEC?
If so, goto LRl.10 If so, goto LRl.10
LRl.7 Is there a Next Hop for FEC? AND LRl.7 Is there a Next Hop for FEC? AND
Does LSR have a previously received label mapping for FEC Does LSR have a previously received label mapping for FEC
from Next Hop? from Next Hop?
If not, goto LRl.10. If not, goto LRl.10.
LRl.8 Is LSR configured to propagate releases? LRl.8 Is LSR configured to propagate releases?
If so, goto LRl.10. (See Note 3.) If not, goto LRl.10. (See Note 3.)
LRl.9 Execute procedure Send_Message (Next Hop, Label Release, FEC, LRl.9 Execute procedure Send_Message (Next Hop, Label Release, FEC,
Label from Next Hop). Label from Next Hop).
LRl.10 Remove Label from forwarding/switching use for traffic from LRl.10 Remove Label from forwarding/switching use for traffic from
MsgSource. MsgSource.
LRl.11 Do any peers still hold Label for FEC? LRl.11 Do any peers still hold Label for FEC?
If so, goto LRl.13. If so, goto LRl.13.
LRl.12 Free the Label. LRl.12 Free the Label.
LRl.13 DONE. LRl.13 DONE.
Notes: Notes:
1. If LSR is using Downstream Unsolicted label distribution, it 1. If LSR is using Downstream Unsolicited label distribution, it
should not re-advertise a label mapping for FEC to MsgSource should not re-advertise a label mapping for FEC to MsgSource
until MsgSource requests it. until MsgSource requests it.
2. LRl.4 through LRl.8 deal with determining whether where the LSR 2. LRl.4 through LRl.8 deal with determining whether where the LSR
should propagate the label release to a downstream peer should propagate the label release to a downstream peer
(LRl.9). (LRl.9).
3. If LRl.8 is reached, no upstream LSR holds a label for the FEC, 3. If LRl.8 is reached, no upstream LSR holds a label for the FEC,
and the LSR holds a label for the FEC from the FEC Next Hop. and the LSR holds a label for the FEC from the FEC Next Hop.
The LSR could propagate the Label Release to the Next Hop. By The LSR could propagate the Label Release to the Next Hop. By
skipping to change at page 117, line 42 skipping to change at page 118, line 7
A.2.4. Send_Notification A.2.4. Send_Notification
Summary: Summary:
An LSR uses the Send_Notification procedure to send an LDP peer a An LSR uses the Send_Notification procedure to send an LDP peer a
notificaction message. notificaction message.
Parameters: Parameters:
- Peer. The LDP peer to which the label withdraw is to be sent. - Peer. The LDP peer to which the Notification message is to be
sent.
- Status. Status code to be included in the Notification message. - Status. Status code to be included in the Notification message.
Additional Context: Additional Context:
None. None.
Algorithm: Algorithm:
SNt.1 Execute procedure Send_Message (Peer, Notification, Status) SNt.1 Execute procedure Send_Message (Peer, Notification, Status)
skipping to change at page 121, line 40 skipping to change at page 122, line 8
Parameters: Parameters:
- Peer. The LDP peer to which the message is to be sent. - Peer. The LDP peer to which the message is to be sent.
- FEC. The FEC for which a label request is to be sent. - FEC. The FEC for which a label request is to be sent.
- RAttributes. The attributes this LSR associates with the LSP for - RAttributes. The attributes this LSR associates with the LSP for
FEC. FEC.
- SAttributes. The attributes to be included in the Label Request - SAttributes. The attributes to be included in the Label Mapping
message. message.
- IsPropagating. The LSR is sending the Label Mapping message to - IsPropagating. The LSR is sending the Label Mapping message to
propagate one received from the FEC next hop. propagate one received from the FEC next hop.
- PrevHopCount. The Hop Count, if any, this LSR associates with the - PrevHopCount. The Hop Count, if any, this LSR associates with the
LSP for the FEC. LSP for the FEC.
Additional Context: Additional Context:
 End of changes. 

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