📄 rfc3215.txt
字号:
Network Working Group C. Boscher
Request for Comments: 3215 P. Cheval
Category: Informational Alcatel
L. Wu
Cisco
E. Gray
Sandburst
January 2002
LDP State Machine
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2002). All Rights Reserved.
Abstract
This document provides state machine tables for ATM (Asynchronous
Transfer Mode) switch LSRs. In the current LDP specification, there
is no state machine specified for processing LDP messages. We think
that defining a common state machine is very important for
interoperability between different LDP and CR-LDP implementations.
We begin in section 1 by defining a list of terminologies. Then in
section 2, we propose two sets of state machine tables for ATM switch
LSRs that use downstream-on-demand mode, one method can be used for
non-vc merge capable ATM LSRs, while the other one can be used for
the vc-merge capable ATM LSRs. In section 3, we provides a state
machine for downstream unsolicited mode ATM LSRs.
We focus on the LDP state machines and the associated control blocks
used for establishing and maintaining LSPs. We do not describe state
machines for the "LDP controller" that is in charge of LDP session
initialization, address mapping messages management, routing
interface, etc. that is defined in the LDP specification.
Even though the state machines in this document are specific for
ATM-LSR, they can be easily adapted for other types of LSRs.
Boscher, et al. Informational [Page 1]
RFC 3215 LDP State Machine January 2002
Table Of Contents
1. Terminology ................................................... 4
2. State Machine for Downstream-on-Demand Mode ................... 4
2.1 An LSR's Behavior in the Case of a Next Hop Change ........... 4
2.2. ATM Switch LSR with No VC-merge Capability .................. 5
2.2.1 LSP Control Block .......................................... 5
2.2.2 States ..................................................... 7
2.2.3 Events ..................................................... 8
2.2.4 State Transitions .......................................... 9
2.2.5 State Machine .............................................. 10
2.2.5.1 State -- "IDLE" .......................................... 10
2.2.5.2 State -- "RESPONSE_AWAITED" .............................. 13
2.2.5.3 State -- "ESTABLISHED" ................................... 16
2.2.5.4 State -- "RELEASE_AWAITED" ............................... 21
2.2.6 Handling the Next Hop Change ............................... 23
2.2.6.1 Next Hop Trigger Control Block ........................... 24
2.2.6.2 States ................................................... 24
2.2.6.3 Events ................................................... 24
2.2.6.4 State Transition for next hop change ..................... 25
2.2.6.5 State Machine ............................................ 25
2.2.6.5.1 State -- "IDLE" ........................................ 25
2.2.6.5.2 State -- "NEW_NH_RETRY" ................................ 27
2.2.6.5.3 State -- "NEW_NH_RESPONSE_AWAITED" ..................... 28
2.2.7 LDP Related Message Handling ............................... 29
2.3. ATM Switch LSR with VC-merge ................................ 31
2.3.1 VC-merge ................................................... 31
2.3.2 Control Block .............................................. 31
2.3.3 State Machines for Downstream-on-demand Mode ............. 34
2.3.3.1 State of the Upstream LSP Control Block's State Machine
for Downstream-on-demand Mode ............................ 34
2.3.3.2 Events of the Upstream LSP Control Block's State Machine
for Downstream-on-demand Mode ............................ 35
2.3.3.3 State Transitions of the Upstream LSP Control Block's State
Machine for Downstream-on-demand Mode .................... 36
2.3.3.4 Upstream LSP Control Block's State Machine
for Downstream-on-demand Mode ............................ 37
2.3.3.4.1 State -- "IDLE" ........................................ 37
2.3.3.4.2 State -- "RESPONSE_AWAITED" ............................ 39
2.3.3.4.3 State -- "ESTABLISHED" ................................. 42
2.3.3.4.4 State -- "RELEASE_AWAITED" ............................. 45
2.3.3.5 State of the Downstream LSP Control Block's State Machine
for Downstream-on-demand Mode ............................ 47
2.3.3.6 Events of the Downstream LSP Control Block's State Machine
for Downstream-on-demand Mode ............................ 47
2.3.3.7 State Transitions of the Downstream LSP Control Block's
State Machine for Downstream-on-demand mode .............. 48
Boscher, et al. Informational [Page 2]
RFC 3215 LDP State Machine January 2002
2.3.3.8 Downstream LSP Control Block's State Machine for
Downstream-on-demand Mode ................................ 49
2.3.3.8.1 State -- "IDLE" ........................................ 48
2.3.3.8.2 State -- "RESPONSE_AWAITED" ............................ 50
2.3.3.8.3 State -- "ESTABLISHED" ................................. 52
2.3.3.9 State of the Next_Hop_Trigger_Control_Block's State
Machine for Downstream-on-demand Mode .................... 53
2.3.3.10 Events of the Next_Hop_Trigger_Control_Block's State
Machine for Downstream-on-demand Mode ................... 53
2.3.3.11 State Transitions of the Next_Hop_Trigger_Control_Block's
State Machine for Downstream-on-demand Mode ............. 55
2.3.3.12 State Machine ........................................... 55
2.3.3.12.1 State -- "IDLE" ....................................... 55
2.3.3.12.2 State -- "NEW_NH_RETRY" ............................... 57
2.3.3.12.3 State -- "NEW_NH_RESPONSE_AWAITED" .................... 58
2.3.4 LDP Related Message Processing ............................. 59
3. State Machine for Downstream Unsolicited ...................... 61
3.1 Control Block ................................................ 61
3.2 States of the Upstream LSP Control Block's State Machine
for Downstream Mode .......................................... 62
3.3 Events of the Upstream LSP Control Block's State Machine
for Downstream Mode .......................................... 62
3.4 State Transitions of Upstream LSP Control Block's State
Machine for Downstream Mode .................................. 64
3.5 Upstream LSP Control Block's State Machine for
Downstream Mode .............................................. 65
3.5.1 : State -- "IDLE" .......................................... 65
3.5.2 : State -- "ESTABLISHED" ................................... 66
3.5.3 : State -- "RELEASE_AWAITED" ............................... 67
3.5.4 : State -- "RESOURCE_AWAITED" .............................. 69
3.6 State of the Downstream LSP Control Block's State Machine
for Downstream Mode .......................................... 70
3.7 Events of the Downstream LSP Control Block's State Machine
for Downstream Mode .......................................... 70
3.8 State Transitions of Downstream LSP Control Block's State
Machine for Downstream Mode .................................. 71
3.9 Downstream LSP Control Block's State Machine
for Downstream Mode .......................................... 71
3.9.1 : State -- "IDLE" .......................................... 71
3.9.2 : State -- "ESTABLISHED" ................................... 73
3.10 LDP Related Message Processing for downstream mode .......... 74
4. Security Considerations ....................................... 75
5. Acknowledgements .............................................. 76
6. References .................................................... 76
7. Authors' Address .............................................. 77
8. Full Copyright Statement ...................................... 78
Boscher, et al. Informational [Page 3]
RFC 3215 LDP State Machine January 2002
1. Terminology
- LDP-REQUEST: LDP Label Request message
- LDP-MAPPING: LDP Label Mapping message
- LDP-WITHDRAW: LDP Label Withdraw message
- LDP-RELEASE: LDP Label Release message
- LDP-ABORT: LDP Abort message used to abort a LSP setup.
- LDP-NAK: LDP Notification message used to reject an LDP message.
2. State Machine for Downstream-on-Demand Mode
In this document, we provide two sets of state machines: one for the
ATM LSR that does not have VC-merge capability, and the other for the
ATM LSR that does have VC-merge capability.
State machine descriptions are given in terms of control blocks,
states, events, response actions and state transitions. Control
blocks contain the information that is required to support handling
of events. A control block may also contain any additional
information that is required either of any specific implementation or
in support of other required functions. In every case, additional
information required to support the procedures defined in the LDP
specification [4] or management objects defined in the LDP MIB [3]
would be stored in a specific LDP implementation - either as part of
the control block structure or in some other way.
The state machines cover both independent LSP control and ordered LSP
control.
Loop detection and loop prevention messages will be processed as
specified in [4]. The impact of loop detection and loop prevention
messages on state transitions is left for further study.
2.1 An LSR's Behavior in the Case of a Next Hop Change
When there is a topology change and an LSR detects a new better next
hop for an LSP, it may behave in 2 different ways:
1) It tries to do a "local repair". This means that it extends the
LSP through the new next hop, releases the old path from this LSR
forward and then splices into this newly extended LSP.
Boscher, et al. Informational [Page 4]
RFC 3215 LDP State Machine January 2002
2) If the LSP is created with the "pinned" option (CR-LDP[5]), the
LSR ignores the new next hop change, and the LSP stays unchanged.
The LSR may decide to send an LDP-MAPPING containing attributes
for this New Next Hop (NH) that have changed.
2.2. ATM Switch LSR with No VC-merge Capability
In an MPLS domain where some ATM LSRs do not have VC-merge
capability, downstream-on-demand mode is required for these ATM LSRs
[1]. Also, "conservative label retention mode" is required in this
case [1].
For each LSP, there are 2 kinds of state machines involved:
1) the LSP Control Block and its state machine that can be used to
handle normal LSP setup. It is created when the LSR receives a
new LDP Request and it is deleted when the LSP of this request is
torn down.
2) the Next Hop Trigger Control Block and its state machine that is
used to handle switching over to a better LSP through a different
next hop. It is created when the LSR decides to switch over to a
better next hop and it is deleted when the LSR finishes switching
over to the better next hop. This state machine uses a timer (and
has corresponding states) to ensure that switch over occurs in a
timely fashion after a routing transient has had time to
stabilize.
2.2.1 LSP Control Block
For each LSP, an LSP Control Block is defined that may contain the
following information:
- Upstream Label Request ID (assigned by the upstream LSR), that
is the 'Message Id' in the Label Request Message received from
the upstream LSR.
- Downstream Label Request ID (assigned by this LSR itself), that
is 'Message Id' in the Label Request Message sent to the
downstream LSR.
- Upstream LDP Identifier
- Downstream LDP Identifier
- State
- FEC
Boscher, et al. Informational [Page 5]
RFC 3215 LDP State Machine January 2002
- Upstream Label (assigned by this LSR)
- Downstream Label (assigned by the downstream LSR)
- Trigger Control Block Pointer, (Only used at the ingress LSR of
a LSP) that points to the control block that triggers setting
up this LSP or tearing down this LSP.
- Next Hop Control Block Pointer, that points to the control
block that is used for switching over to a better LSP.
The following index combinations can be used to locate a unique LSP
Control Block:
- Downstream Label and Downstream LDP Identifier, or
- Upstream Label and Upstream LDP Identifier, or
- Downstream Label Request ID and Downstream LDP Identifier
- Upstream Label Request ID and Upstream LDP Identifier
Here is the relationship between different control blocks, the detail
definition of Next Hop Trigger Control Block is described in section
2.2.6.
For example, an LSP that transits through (LSR-A, LSR-B, LSR-C, LSR-
D):
LSR-A ----> LSR-B ---> LSR-C ---> LSR-D
The control blocks in LSR-A are:
+-----------------------+
| Trigger Control Block |
| (e.g, by config) |
+-----------------------+
^
|(Trigger Control block pointer)
|
|
+-----------------------+
| LSP Control Block |
+-----------------------+
When LSR-B detects a better next hop to LSR-D through LSR-E, and it
decides to switch over to it, so control blocks in LSR-B are:
Boscher, et al. Informational [Page 6]
RFC 3215 LDP State Machine January 2002
+-----------------------+
| LSP Control Block |
| (original LSP) |
+-----------------------+
(LSP ^ |
Control | | (Next Hop Trigger Control Block Pointer)
Block | |
Pointer) | v
+--------------------------------+
| Next Hop Trigger Control Block |
+--------------------------------+
^ |
(Trigger | | (New Next Hop LSP
Control | | Control Block Pointer)
Block | |
Pointer)| |
| v
+------------------------+
| LSP Control Block |
| (for LSP: LSR-B, LSR-E,|
| LSR-D) |
+------------------------+
2.2.2 States
This section describes the various states that are used in the state
machine for the ATM non VC-merge LSR.
-- IDLE
This is the initial LSP state, when the LSP Control Block is created.
-- RESPONSE_AWAITED
This state means that the LSR has received and processed an LDP-
REQUEST from an upstream LSR, or it has received an internal set up
request. It has sent a new LDP-REQUEST towards a downstream LSR.
The LSR is waiting for the LDP-MAPPING from the downstream LSR.
-- ESTABLISHED
This state means that the LSR has received the LDP-MAPPING from the
downstream LSR and the LSP is up and operational.
-- RELEASE_AWAITED
This state means that the LSR has sent a LDP-WITHDRAW upstream and is
waiting for the LDP-RELEASE before freeing up the label resource.
Boscher, et al. Informational [Page 7]
RFC 3215 LDP State Machine January 2002
2.2.3 Events
-- LDP Request
The LSR receives an LDP-REQUEST from an upstream LSR.
-- LDP Mapping
The LSR receives an LDP-MAPPING from a downstream LSR.
-- LDP Release
The LSR receives an LDP-RELEASE from an upstream LSR.
-- LDP Withdraw
The LSR receives an LDP-WITHDRAW from a downstream LSR.
-- LDP Upstream Abort
The LSR receives an LDP-ABORT from an upstream LSR.
-- LDP Downstream NAK The LSR receives an LDP-NAK (notification) from
an downstream LSR.
-- Upstream Lost
The LSR loses its LDP session with an upstream LDP peer.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -