draft-ietf-mpls-ldp-state-00.txt   draft-ietf-mpls-ldp-state-01.txt 
MPLS Working Group Liwen Wu MPLS Working Group Liwen Wu
Internet Draft Pierrick Cheval Internet Draft Pierrick Cheval
Expiration Date: August 1999 Christophe Boscher Expiration Date: December 1999 Christophe Boscher
Alcatel USA Alcatel USA
Eric Gray Eric Gray
Lucent Lucent
Februray 1999 June 1999
LDP State Machine LDP State Machine
draft-ietf-mpls-ldp-state-00.txt draft-ietf-mpls-ldp-state-01.txt
0. Status of this Memo 0. 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 2, line 8 skipping to change at page 2, line 8
1. Abstract 1. Abstract
In the current LDP draft [Ref5], there is no state machine specified In the current LDP draft [Ref5], there is no state machine specified
for processing the LDP messages. We think that defining a common for processing the LDP messages. We think that defining a common
state machine is very important for interoperability between state machine is very important for interoperability between
different ldp implementations. different ldp implementations.
This draft provides state machine tables for ATM switch LSRs. We This draft provides state machine tables for ATM switch LSRs. We
begin in section 2 by defining a list of terminologies. Then in begin in section 2 by defining a list of terminologies. Then in
section 3, we propose two sets of state machine tables for ATM switch section 3, we propose two sets of state machine tables for ATM switch
LSRs, one for non-vc merge ATM LSRs and one for the vc merge ATM LSRs which use downstream-on-demand mode, one method can be used for
LSRs. Finally, in section 4, we outline the possible future working non-vc mergable ATM LSRs, while the other one can be used for the
items. vc-mergable ATM LSRs. In section 4, we provides a state machine for
downstream mode ATM LSR.
Even though the state machines in this document are specific for Even though the state machines in this document are specific for
ATM-LSR, they can be easily adapted for other types of LSRs. ATM-LSR, they can be easily adapted for other types of LSRs.
2. Terminologies 2. Terminologies
- LDP-REQUEST: LDP Label Request message - LDP-REQUEST: LDP Label Request message
- LDP-MAPPING: LDP Label Mapping message - LDP-MAPPING: LDP Label Mapping message
- LDP-WITHDRAW: LDP Label Withdraw message - LDP-WITHDRAW: LDP Label Withdraw message
- LDP-RELEASE: LDP Label Release message - LDP-RELEASE: LDP Label Release message
- LDP-NAK: It is a LDP notifications which is used to abort a LSP - LDP-ABORT: It is a LDP Abort message which is used to abort a LSP
setup or reject a LSP Label Request message. setup.
3. State Machine - LDP-NAK: It is a LDP Notification msg which is to reject a LDP
message.
3. State Machine for Downstream-on-Demand Mode
This draft focuses on the LDP state machines and the associated This draft focuses on the LDP state machines and the associated
control blocks. It does not describe the "LDP controller" which is control blocks. It does not describe the "LDP controller" which is
in charge of LDP session initialization, address mapping messages in charge of LDP session initialization, address mapping messages
management, routing interface, etc. management, routing interface, etc.
In this draft, we provide two sets of state machines: one for the ATM In this draft, we provide two sets of state machines: one for the ATM
LSR which does not have VC-merge capability, and the other one for LSR which does not have VC-merge capability, and the other one for
the ATM LSR which does have VC-merge capability. the ATM LSR which does have VC-merge capability.
skipping to change at page 3, line 7 skipping to change at page 3, line 10
3.0 An LSR's Behavior in the Case of a Next Hop Change 3.0 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 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: 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 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 LSP through the new next hop, releases the old path from this LSR
forward and then splices into this newly extended LSP. forward and then splices into this newly extended LSP.
2) If the LSP is created with the "pinned" option, the LSR ignores 2) If the LSP is created with the "pinned" option[Ref7,CR-LDP], the
the new next hop change, and the LSP stays unchanged. The LSR may LSR ignores the new next hop change, and the LSP stays unchanged. The
decide to send an LDP-MAPPING which contains the attribute about this LSR may decide to send an LDP-MAPPING which contains the attribute
New Next Hop (NH) change. about this New Next Hop (NH) change.
3.1. ATM Switch LSR with NO VC-merge 3.1. ATM Switch LSR with NO VC-merge
In an MPLS domain where some ATM LSRs do not have VC-merge In an MPLS domain where some ATM LSRs do not have VC-merge
capability, downstream-on-demand mode is required for these ATM capability, downstream-on-demand mode is required for these ATM
LSRs[Ref1]. Also, "conservative label retention mode" is required in LSRs[Ref1]. Also, "conservative label retention mode" is required in
this case[Ref1]. this case[Ref1].
For each LSP, there are 2 kinds of state machines involves: For each LSP, there are 2 kinds of state machines involves:
skipping to change at page 3, line 38 skipping to change at page 3, line 41
next hop. It is created when the LSR decides to switch over to a 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 better next hop and it is deleted when the LSR finishes switching
over to the better next hop. over to the better next hop.
3.1.1 LSP Control Block 3.1.1 LSP Control Block
For each LSP, an LSP_Control_Block is defined which may contain the For each LSP, an LSP_Control_Block is defined which may contain the
following information: following information:
- Upstream Label Request ID(assigned by the upstream LSR), which is - Upstream Label Request ID(assigned by the upstream LSR), which is
the 'Return Message Id' in the Label Request Message received from the 'Message Id' in the Label Request Message received from the
the upstream LSR. upstream LSR.
- Downstream Label Request ID (assigned by this LSR itself), which - Downstream Label Request ID (assigned by this LSR itself), which
is 'Return Message Id' in the Label Request Message sent to the is 'Message Id' in the Label Request Message sent to the
downstrearm LSR. downstrearm LSR.
- Upstream LDP Session Identifier - Upstream LDP Identifier
- Downstream LDP Session Identifier
- Downstream LDP Identifier
- State - State
- FEC - FEC
- Upstream Label(assigned by this LSR) - Upstream Label(assigned by this LSR)
- Downstream Label(assigned by the downstream LSR) - Downstream Label(assigned by the downstream LSR)
- Trigger Control Block Pointer, (Only used at the ingress LSR of a - Trigger Control Block Pointer, (Only used at the ingress LSR of a
LSP)which points to the control block that triggers setting up this LSP)which points to the control block that triggers setting up this
LSP or tearing down this LSP. LSP or tearing down this LSP.
- Next Hop Control Block Pointer, which points to the control block - Next Hop Control Block Pointer, which points to the control block
which is used for switching over to a better LSP. which is used for switching over to a better LSP.
skipping to change at page 4, line 18 skipping to change at page 4, line 22
- Trigger Control Block Pointer, (Only used at the ingress LSR of a - Trigger Control Block Pointer, (Only used at the ingress LSR of a
LSP)which points to the control block that triggers setting up this LSP)which points to the control block that triggers setting up this
LSP or tearing down this LSP. LSP or tearing down this LSP.
- Next Hop Control Block Pointer, which points to the control block - Next Hop Control Block Pointer, which points to the control block
which is used for switching over to a better LSP. which is used for switching over to a better LSP.
The following index combinations can be used to locate a unique The following index combinations can be used to locate a unique
LSP_Control_Block: LSP_Control_Block:
- Downstream Label and Downstream LDP Session Identifier, or - Downstream Label and Downstream LDP Identifier, or
- Upstream Label and Upstream LDP Session Identifier, or - Upstream Label and Upstream LDP Identifier, or
- Upstream Label Request ID and Upstream LDP Session Identifier - Upstream Label Request ID and Upstream LDP Identifier
Here is the relationship between different control blocks, the detail Here is the relationship between different control blocks, the detail
definition of Next Hop Trigger Block is described in section 3.1.6. definition of Next Hop Trigger Block is described in section 3.1.6.
For example, an LSP which transit through (LSR-A, LSR-B, LSR-C,LSR- For example, an LSP which transit through (LSR-A, LSR-B, LSR-C,LSR-
D): D):
LSR-A ----> LSR-B ---> LSR-C ---> LSR-D LSR-A ----> LSR-B ---> LSR-C ---> LSR-D
The control blocks in LSR-A are: The control blocks in LSR-A are:
skipping to change at page 6, line 30 skipping to change at page 6, line 30
The LSR receives an LDP-MAPPING from a downstream LSR. The LSR receives an LDP-MAPPING from a downstream LSR.
-- LDP Release -- LDP Release
The LSR receives an LDP-RELEASE from an upstream LSR. The LSR receives an LDP-RELEASE from an upstream LSR.
-- LDP Withdraw -- LDP Withdraw
The LSR receives an LDP-WITHDRAW from a downstream LSR. The LSR receives an LDP-WITHDRAW from a downstream LSR.
-- LDP Upstream Nak -- LDP Upstream Abort
The LSR receives an LDP-NAK from an upstream LSR.
-- LDP Downstream Nak The LSR receives an LDP-ABORT from an upstream LSR.
The LSR receives an LDP-NAK from a downstream LSR. -- LDP Downstream Nak The LSR receives an LDP-NAK(notification) from
an downstream LSR.
-- Upstream Lost -- Upstream Lost
The LSR loses its LDP session with an upstream LDP peer. The LSR loses its LDP session with an upstream LDP peer.
-- Downstream Lost -- Downstream Lost
The LSR loses its LDP session with a downstream LDP peer. The LSR loses its LDP session with a downstream LDP peer.
-- Internal SetUp -- Internal SetUp
skipping to change at page 7, line 6 skipping to change at page 7, line 4
The LSR loses its LDP session with a downstream LDP peer. The LSR loses its LDP session with a downstream LDP peer.
-- Internal SetUp -- Internal SetUp
For some reason, e.g. a configuration request of a traffic For some reason, e.g. a configuration request of a traffic
engineering tunnel, or recognizing a new FEC could trigger an engineering tunnel, or recognizing a new FEC could trigger an
Internal SetUp event to set up a new LSP from this node. Internal SetUp event to set up a new LSP from this node.
-- Internal Destroy -- Internal Destroy
The LSR send an Internal Destroy event to tear down an LSP. The LSR send an Internal Destroy event to tear down an LSP.
-- Internal Cross-Connect -- Internal Cross-Connect
The LSR send an Internal Cross-Connect to splice two LSPs into one The LSR send an Internal Cross-Connect to splice two LSPs into one
LSP. LSP. This happens when a LSR switchs over to a better next hop
-- Internal New NH -- Internal New NH
The LSR decides to switch over the better next hop. The LSR decides to switch over the better next hop.
3.1.4 State Transitions 3.1.4 State Transitions
The following diagram describes briefly the state transitions. The following diagram describes briefly the state transitions.
+-------------------+ +-------------------+
| | | |
+-------->| IDLE |<--------------+ +-------->| IDLE |<--------------+
| | | | | | | |
| +-------------------+ |(LDP Release) | +-------------------+ |(LDP Release)
|(LDP Upstream Nak) | | |(LDP Upstream | |
|(LDP DownstreamNak)|(LDP Request) |(LDP Upstream Nak) | Abort) |(LDP Request) |(LDP Upstream Abort)
|(Downstream Lost) |(Internal SetUp) | |(Downstream Lost) |(Internal SetUp) |
| | | |(Downstream Nak) | |(LDP Downstream Nak)
|(Upstream Lost) v |(Upstream Lost) |(Upstream Lost) v |(Upstream Lost)
| +-------------------+ | | +-------------------+ |
| | | | | | | |
+---------| RESPONSE_AWAITED | | +---------| RESPONSE_AWAITED | |
| | | | | |
+-------------------+ | +-------------------+ |
| | | |
|(LDP Mapping) | |(LDP Mapping) |
| | | |
v | v |
skipping to change at page 9, line 22 skipping to change at page 9, line 22
If this LSR is the LSP Egress or Proxy Egress [Ref2] If this LSR is the LSP Egress or Proxy Egress [Ref2]
Then: Then:
Choose an upstream label, connect this upstream label to the local Choose an upstream label, connect this upstream label to the local
IP forwarding module, allocate the resources, send the LDP-MAPPING IP forwarding module, allocate the resources, send the LDP-MAPPING
message upstream with the upstream label, and go to the new state message upstream with the upstream label, and go to the new state
`ESTABLISHED'. `ESTABLISHED'.
else else
Obtain a next hop (or interface) with the FEC specified in the Obtain a next hop (or interface) with the FEC specified in the
LDP-REQUEST message, propagate the LDP-REQUEST message towards the LDP-REQUEST message, propagate the LDP-REQUEST message, with newly
obtained next hop, and go to the new state `RESPONSE_AWAITED'. assigned Message ID by this LSR, towards the obtained next hop,
and go to the new state `RESPONSE_AWAITED'.
If the LSR uses the independent control mode[Ref2], choose an If the LSR uses the independent control mode[Ref2], choose an
upstream label, connect this upstream label to the local IP upstream label, connect this upstream label to the local IP
forwarding module, and send an LDP-MAPPING message upstream with forwarding module, and send an LDP-MAPPING message upstream with
the upstream label. the upstream label.
If unable to process the request for any reason, issue an LDP-NAK If unable to process the request for any reason, issue an LDP-NAK
message to the sender with the appropriate error code and delete the message to the sender with the appropriate error code and delete the
control block. control block.
skipping to change at page 10, line 19 skipping to change at page 10, line 20
Event: LDP Withdraw Event: LDP Withdraw
New State: IDLE New State: IDLE
Actions: Actions:
Ignore the event. It is an internal implementation error. Ignore the event. It is an internal implementation error.
State: IDLE State: IDLE
Event: LDP Upstream Nak Event: LDP Upstream Abort
New State: IDLE New State: IDLE
Actions: Actions:
Ignore the event. It is an internal implementation error. Ignore the event. It is an internal implementation error.
State: IDLE State: IDLE
Event: LDP Downstream Nak Event: LDP Downstream Nak
skipping to change at page 12, line 40 skipping to change at page 12, line 42
2) Else If the LSR uses the ordered control mode, choose an upstream 2) Else If the LSR uses the ordered control mode, choose an upstream
label. label.
3) Connect the upstream label to the downstream label. Allocate the 3) Connect the upstream label to the downstream label. Allocate the
resources. propagate the LDP-MAPPING message upstream with the resources. propagate the LDP-MAPPING message upstream with the
upstream label. upstream label.
If unable to process the message, disconnect the upstream label from If unable to process the message, disconnect the upstream label from
the downstream label, free the upstream label, release the resources, the downstream label, free the upstream label, release the resources,
send an LDP-RELEASE message downstream and an LDP-Nak upstream, and send an LDP-RELEASE message downstream and an LDP-Nak upstream with
delete the LSP_Control_Block. status (No Label Resources[ref-5]), and delete the LSP_Control_Block.
State: RESPONSE_AWAITED State: RESPONSE_AWAITED
Event: LDP Release Event: LDP Release
New State: IDLE New State: IDLE
Actions: Actions:
If the LSR uses the independent control mode, free the upstream If the LSR uses the independent control mode, free the upstream
label. label.
Send an LDP-NAK message downstream and delete the LSP_Control_Block. Send an LDP-ABORT message downstream and delete the
LSP_Control_Block.
State: RESPONSE_AWAITED State: RESPONSE_AWAITED
Event: LDP Withdraw Event: LDP Withdraw
New State: RESPONSE_AWAITED New State: RESPONSE_AWAITED
Actions: Actions:
Ignore the event. It's a protocol error from the downstream LSR. Ignore the event. It's a protocol error from the downstream LSR.
State: RESPONSE_AWAITED State: RESPONSE_AWAITED
Event: LDP Upstream Nak Event: LDP Upstream Abort
New State: IDLE New State: IDLE
Actions: Actions:
If the LSR uses the independent control mode, free the upstream If the LSR uses the independent control mode, free the upstream
label. label.
Send an LDP-NAK message downstream. Send an LDP-ABORT message downstream.
Delete the LSP_Control_Block. Delete the LSP_Control_Block.
State: RESPONSE_AWAITED State: RESPONSE_AWAITED
Event: LDP Downstream Nak Event: LDP Downstream Nak
New State: Depends on the action routine New State: Depends on the action routine
Actions: Actions:
skipping to change at page 14, line 16 skipping to change at page 14, line 22
Event: Upstream Lost Event: Upstream Lost
New State: IDLE New State: IDLE
Actions: Actions:
If the LSR uses the independent control mode, free the upstream If the LSR uses the independent control mode, free the upstream
label. label.
Send an LDP-NAK downstream and delete the LSP_Control_Block. Send an LDP-ABORT downstream and delete the LSP_Control_Block.
State: RESPONSE_AWAITED State: RESPONSE_AWAITED
Event: Downstream Lost Event: Downstream Lost
New State: Depends on the action routine New State: Depends on the action routine
Actions: Actions:
1. If the LSP is triggered by the local router(Trigger Control Block 1. If the LSP is triggered by the local router(Trigger Control Block
Pointer is not zero), send event "Internal LSP DOWN" to the trigger Pointer is not zero), send event "Internal LSP DOWN" to the trigger
control block. control block.
2. Else, If the LSR uses the independent control mode, free the 2. Else, If the LSR uses the independent control mode, free the
upstream label and send an LDP-WITHDRAW upstream and go to state upstream label and send an LDP-WITHDRAW upstream and go to state
'RELEASE_AWAITED'. 'RELEASE_AWAITED'.
If the LSR uses the ordered control mode, send an LDP-NAK upstream If the LSR uses the ordered control mode, send an LDP-NAK
and then delete the control block. upstream(with a status No Route[Ref-5]) and then delete the control
block.
State: RESPONSE_AWAITED State: RESPONSE_AWAITED
Event: Internal SetUp Event: Internal SetUp
New State: RESPONSE_AWAITED New State: RESPONSE_AWAITED
Actions: Actions:
Ignore, it is an internal implementation error. Ignore, it is an internal implementation error.
skipping to change at page 15, line 4 skipping to change at page 15, line 12
Actions: Actions:
Ignore, it is an internal implementation error. Ignore, it is an internal implementation error.
State: RESPONSE_AWAITED State: RESPONSE_AWAITED
Event: Internal Destroy Event: Internal Destroy
New State: IDLE New State: IDLE
Actions: Actions:
Send an LDP-NAK downstream and delete the LSP_Control_Block. Send an LDP-ABORT downstream and delete the LSP_Control_Block.
State: RESPONSE_AWAITED State: RESPONSE_AWAITED
Event: Internal Cross-Connect Event: Internal Cross-Connect
New State: RESPONSE_AWAITED New State: RESPONSE_AWAITED
Actions: Actions:
Ignore the event. It is an internal implementation error. Ignore the event. It is an internal implementation error.
State: RESPONSE_AWAITED State: RESPONSE_AWAITED
Event: Internal New NH Event: Internal New NH
New State: RESPONSE_AWAITED New State: RESPONSE_AWAITED
Actions: Actions:
Send LDP-NAK to the old downstream, and send LDP-REQUEST to the new Send LDP-ABORT to the old downstream, and send LDP-REQUEST to the new
next hop. next hop.
3.1.5.3 State --"ESTABLISHED" 3.1.5.3 State --"ESTABLISHED"
State: ESTABLISHED State: ESTABLISHED
Event: LDP Request Event: LDP Request
New State: ESTABLISHED New State: ESTABLISHED
skipping to change at page 17, line 11 skipping to change at page 17, line 17
Disconnect the upstream label from the downstream label. And Disconnect the upstream label from the downstream label. And
Propagate the LDP-WITHDRAW message upstream and go to state Propagate the LDP-WITHDRAW message upstream and go to state
'RELEASE_AWAITED'. 'RELEASE_AWAITED'.
3.3) If the LSP is in the middle of switching over to a better LSP, 3.3) If the LSP is in the middle of switching over to a better LSP,
send event 'Internal Destroy' to the state machine of its New Next send event 'Internal Destroy' to the state machine of its New Next
Hop LSP Control Block. Hop LSP Control Block.
State: ESTABLISHED State: ESTABLISHED
Event: LDP Upstream Nak Event: LDP Upstream Abort
New State: IDLE New State: IDLE
Actions: Actions:
Disconnect the upstream label from the downstream label. Disconnect the upstream label from the downstream label.
Free the upstream label. Free the upstream label.
Send event "Internal Destroy" if the LSR was in the middle of Send event "Internal Destroy" if the LSR was in the middle of
skipping to change at page 19, line 39 skipping to change at page 19, line 45
Actions: Actions:
1) If the LSR was in the middle of switching over to a better next 1) If the LSR was in the middle of switching over to a better next
hop(Next Hop Trigger Control Block Pointer is not zero), it send hop(Next Hop Trigger Control Block Pointer is not zero), it send
"Internal New NH" to that control block. "Internal New NH" to that control block.
2) Else, create a new Next Hop Trigger Control Block, set Next Hop 2) Else, create a new Next Hop Trigger Control Block, set Next Hop
Trigger Control Block pointer which points this control block. And Trigger Control Block pointer which points this control block. And
then pass "Internal New NH" to this control block. then pass "Internal New NH" to this control block.
3.1.5.4 State --"RELEASE_AWAITED"
State RELEASE_AWAITED State RELEASE_AWAITED
Event LDP Request Event LDP Request
New State: RELEASE_AWAITED New State: RELEASE_AWAITED
Actions: Actions:
Ignore the event. It is an internal implementation error. Ignore the event. It is an internal implementation error.
State RELEASE_AWAITED State RELEASE_AWAITED
Event LDP Mapping Event LDP Mapping
New State: RELEASE_AWAITED New State: RELEASE_AWAITED
Actions: Actions:
Ignore the event. It is an protocol error from the downstream LDP It is an protocol error from the downstream LDP peer, but anyway send
peer. a LDP-RELEASE downstream.
State RELEASE_AWAITED State RELEASE_AWAITED
Event LDP Release Event LDP Release
New State: IDLE New State: IDLE
Actions: Actions:
1) Free the upstream label 1) Free the upstream label
2) Delete the control block. 2) Delete the control block.
State RELEASE_AWAITED State RELEASE_AWAITED
Event LDP Withdraw Event LDP Withdraw
New State: IDLE New State: RELEASE_AWAITED
Actions: Actions:
Ignore the event. It is an protocol error from the downstream LDP It is an protocol error from the downstream LDP peer, but send a
peer. LDP-RELEASE anyway.
State RELEASE_AWAITED State RELEASE_AWAITED
Event LDP Upstream Nak Event LDP Upstream Nak
New State: IDLE New State: IDLE
Actions: Actions:
1) Free the upstream label 1) Free the upstream label
skipping to change at page 28, line 47 skipping to change at page 28, line 47
c) If an LSP_Control_Block is found, pass the event `LDP Mapping' to c) If an LSP_Control_Block is found, pass the event `LDP Mapping' to
its state machine. its state machine.
d) If there is no matching LSP_Control_Block found, then try to find d) If there is no matching LSP_Control_Block found, then try to find
an LSP_Control_Block which has the same Downstream Lable and the same an LSP_Control_Block which has the same Downstream Lable and the same
Downstream LDP Session Identifier. Downstream LDP Session Identifier.
e) If an LSP_Control_Block is found, pass the event 'LDP Mapping' to e) If an LSP_Control_Block is found, pass the event 'LDP Mapping' to
its state machine. its state machine.
f) Otherwise, ignore the LDP-MAPPING message. f) Otherwise, ignore the LDP-MAPPING message and send a LDP-RELEASE
message downstream.
- If an LSR receives an LDP-RELEASE from an upstream LSR: - If an LSR receives an LDP-RELEASE from an upstream LSR:
a) Find an LSP_Control_Block which has the same Upstream Label and a) Find an LSP_Control_Block which has the same Upstream Label and
the same Upstream LDP Session Identifier. the same Upstream LDP Session Identifier.
b) If an LSP_Control_Block is found, pass the event 'LDP Release' to b) If an LSP_Control_Block is found, pass the event 'LDP Release' to
its state machine. its state machine.
c) Otherwise, ignore the message. c) Otherwise, ignore the message.
- If an LSR receives an LDP-WITHDRAW from a downstream LSR: - If an LSR receives an LDP-WITHDRAW from a downstream LSR:
a) Find an LSP_Control_Block which has the same Downstream Label and a) Find an LSP_Control_Block which has the same Downstream Label and
the same Downstream LDP Session Identifier. the same Downstream LDP Session Identifier.
b) If an LSP_Control_Block is found, pass the event 'LDP Withdraw' to b) If an LSP_Control_Block is found, pass the event 'LDP Withdraw' to
its state machine. its state machine.
c) Otherwise, ignore the LDP-WITHDRAW message. c) Otherwise, ignore the LDP-WITHDRAW message and send a LDP-RELEASE
message downstream.
- If an upstream LDP peer is lost: - If an upstream LDP peer is lost:
a) Find all the LSP_Control_Blocks whose upstream LDP peer is that a) Find all the LSP_Control_Blocks whose upstream LDP peer is that
LSR. LSR.
b) Then pass the event 'Upstream Lost' to their state machines. b) Then pass the event 'Upstream Lost' to their state machines.
- If a downstream LDP peer is lost: - If a downstream LDP peer is lost:
skipping to change at page 29, line 41 skipping to change at page 29, line 44
LSR. LSR.
b) Then pass the event 'Downstream Lost' to their state machines. b) Then pass the event 'Downstream Lost' to their state machines.
- If the LSR detects a new next hop for an FEC: - If the LSR detects a new next hop for an FEC:
For each LSP which needs "local repair", or it needs "global repair" For each LSP which needs "local repair", or it needs "global repair"
and it is the ingress of the LSP, pass event "Internal New NH" to its and it is the ingress of the LSP, pass event "Internal New NH" to its
state machine. state machine.
- If an LSR receives an LDP-NAK from an upstream LSR: - If an LSR receives an LDP-Abort from an upstream LSR:
a) Extract the LDP Request ID value from the LDP-NAK message. a) Extract the LDP Request ID value from the LDP-Abort message.
b) Find an LSP_Control_Block which has the same Upstream Label b) Find an LSP_Control_Block which has the same Upstream Label
Request ID and the same Upstream LDP Session Identifier. Request ID and the same Upstream LDP Session Identifier.
c) If an LSP_Control_Block is found, pass the event 'LDP Upstream c) If an LSP_Control_Block is found, pass the event 'LDP Upstream
Nak' to its state machine. Abort' to its state machine.
d) Otherwise, ignore the message. d) Otherwise, ignore the message.
- If the LSR receives an LDP-NAK from a downstream LSR: - If the LSR receives an LDP-NAK from a downstream LSR:
a) Extract the LDP Request ID value from the LDP-NAK. a) Extract the LDP Request ID value from the LDP-NAK.
b) Find an LSP_Control_Block which has the same Downstream Label b) Find an LSP_Control_Block which has the same Downstream Label
Request ID and the same Downstream LDP Session Identifier. Request ID and the same Downstream LDP Session Identifier.
skipping to change at page 34, line 47 skipping to change at page 34, line 47
The LSR receives an LDP-RELEASE from an upstream LSR. The LSR receives an LDP-RELEASE from an upstream LSR.
-- Internal Downstream Withdraw -- Internal Downstream Withdraw
This event is sent by one Downstream_LSP_Control_Block's state This event is sent by one Downstream_LSP_Control_Block's state
machine. This Downstream_LSP_Control_Block is the merged machine. This Downstream_LSP_Control_Block is the merged
Downstream_LSP_Control_Block of this Upstream_LSP_Control_Block. The Downstream_LSP_Control_Block of this Upstream_LSP_Control_Block. The
event is the result of receiving an LDP-WITHDRAW message by the event is the result of receiving an LDP-WITHDRAW message by the
Downstream_LSP_Control_Block's state machine. Downstream_LSP_Control_Block's state machine.
-- LDP Upstream Nak -- LDP Upstream Abort
The LSR receives an LDP-NAK from an upstream LSR. The LSR receives an LDP-ABORT from an upstream LSR.
-- Internal Downstream Nak -- Internal Downstream Nak
This event is sent by one Downstream_LSP_Control_Block's state This event is sent by one Downstream_LSP_Control_Block's state
machine. This Downstream_LSP_Control_Block is the merged machine. This Downstream_LSP_Control_Block is the merged
Downstream_LSP_Control_Block of this Upstream_LSP_Control_Block. The Downstream_LSP_Control_Block of this Upstream_LSP_Control_Block. The
event is the result of receiving an LDP-NAK message by the event is the result of receiving an LDP-NAK message by the
Downstream_LSP_Control_Block's state machine, or it detects an error. Downstream_LSP_Control_Block's state machine, or it detects an error.
-- Upstream Lost -- Upstream Lost
skipping to change at page 36, line 13 skipping to change at page 36, line 13
through the new next hop. through the new next hop.
3.2.3.3 State Transitions of the Upstream_LSP_Control_Block's State 3.2.3.3 State Transitions of the Upstream_LSP_Control_Block's State
Machine for Downstream-on-demand Mode Machine for Downstream-on-demand Mode
+-------------------+ +-------------------+
| | | |
+-------->| IDLE |<------------+ +-------->| IDLE |<------------+
| | | | | | | |
| +-------------------+ | | +-------------------+ |
|(LDP Upstream Nak)| | |(LDP Abort) | |
|(Internal |(LDP Request) | |(Internal |(LDP Request) |
| Downstream Nak) | | | Downstream Nak) | |
|(Upstream Lost) | | |(Upstream Lost) | |
| v | | v |
| +-------------------+ | | +-------------------+ |
| | | | | | | |
+---------| RESPONSE_AWAITED | | +---------| RESPONSE_AWAITED | |
| | |(Upstream Lost) | | |(Upstream Lost)
+-------------------+ | +-------------------+ |
| | | |
|(Internal Downstream | |(Internal Downstream |
| mapping) |(LDP Release) | mapping) |(LDP Release)
| | | |
v | v |
+-------------------+ | +-------------------+ |
| | |(LDP Upstream Nak) | | |(LDP Abort)
| ESTABLISHED |------->-----+ | ESTABLISHED |------->-----+
| | | | | |
+-------------------+ | +-------------------+ |
| | | |
| | | |
|(Internal Downstream Withdraw) |(Internal Downstream Withdraw)
|(Internal Downstream Nak) |(Internal Downstream Nak)
v v
+-------------------+ | +-------------------+ |
| | | | | |
skipping to change at page 38, line 30 skipping to change at page 38, line 30
Event: Internal Downstream Withdraw Event: Internal Downstream Withdraw
New State: IDLE New State: IDLE
Actions: Actions:
Ignore the event. It is an internal implementation error. Ignore the event. It is an internal implementation error.
State: IDLE State: IDLE
Event: LDP Upstream Nak Event: LDP Upstream Abort
New State: IDLE New State: IDLE
Actions: Actions:
Ignore the event. It is an internal implementation error. Ignore the event. It is an internal implementation error.
State: IDLE State: IDLE
Event: Internal Downstream Nak Event: Internal Downstream Nak
skipping to change at page 40, line 40 skipping to change at page 40, line 40
Event: Internal Downstream Withdraw Event: Internal Downstream Withdraw
New State: RESPONSE_AWAITED New State: RESPONSE_AWAITED
Actions Actions
Ignore the event. It is an internal implementation error. Ignore the event. It is an internal implementation error.
State: RESPONSE_AWAITED State: RESPONSE_AWAITED
Event: LDP Upstream Nak Event: LDP Upstream Abort
New State: IDLE New State: IDLE
Actions Actions
If the LSR uses the independent control mode, free the upstream label If the LSR uses the independent control mode, free the upstream label
and the resources. and the resources.
Send the event 'Internal DeleteUpstream' to its Send the event 'Internal DeleteUpstream' to its
Downstream_LSP_Control_Block's state machine. Downstream_LSP_Control_Block's state machine.
skipping to change at page 43, line 45 skipping to change at page 43, line 45
Propagate the LDP-WITHDRAW upstream and go to state Propagate the LDP-WITHDRAW upstream and go to state
'RELEASE_AWAITED'. 'RELEASE_AWAITED'.
Send the event "Internal Destroy' to the Next_Hop_Trigger_Block's Send the event "Internal Destroy' to the Next_Hop_Trigger_Block's
state machine if the LSR was in the middle of switching over to the state machine if the LSR was in the middle of switching over to the
better next hop. better next hop.
State: ESTABLISHED State: ESTABLISHED
Event: LDP Upstream Nak Event: LDP Upstream Abort
New State: IDLE New State: IDLE
Actions Actions
Disconnect the upstream label from the downstream label, free the Disconnect the upstream label from the downstream label, free the
upstream label and the resources. upstream label and the resources.
Send the event 'Internal DeleteUpstream' to its Send the event 'Internal DeleteUpstream' to its
Downstream_LSP_Control_Block's state machine. Downstream_LSP_Control_Block's state machine.
skipping to change at page 46, line 24 skipping to change at page 46, line 24
Event: Internal Downstream Withdraw Event: Internal Downstream Withdraw
New State: RELEASE_AWAITED New State: RELEASE_AWAITED
Actions: Actions:
Ignore the event. It is a protocol error from the downstream LSR. Ignore the event. It is a protocol error from the downstream LSR.
State: RELEASE_AWAITED State: RELEASE_AWAITED
Event: LDP Upstream Nak Event: LDP Upstream Abort
New State: IDLE New State: IDLE
Actions: Actions:
Free the upstream lable resource. and delete the control block. Free the upstream lable resource. and delete the control block.
State: RELEASE_AWAITED State: RELEASE_AWAITED
Event: Internal Downstream Nak Event: Internal Downstream Nak
skipping to change at page 51, line 30 skipping to change at page 51, line 30
Event: Internal DeleteUpstream Event: Internal DeleteUpstream
New State: Depend on the action routine New State: Depend on the action routine
Actions Actions
Delete the Upstream_LSP_Control_Block pointer from the Delete the Upstream_LSP_Control_Block pointer from the
Upstream_LSP_Control_Block pointers list. Upstream_LSP_Control_Block pointers list.
If the list becomes empty, release the resources, send an LDP-NAK If the list becomes empty, release the resources, send an LDP-Abort
downstream, and then delete the control block. downstream, and then delete the control block.
State: RESPONSE_AWAITED State: RESPONSE_AWAITED
Event: LDP Mapping Event: LDP Mapping
New State: ESTABLISHED New State: ESTABLISHED
Actions Actions
skipping to change at page 52, line 4 skipping to change at page 52, line 4
pointers list, pass the event 'Internal Downstream Mapping' to its pointers list, pass the event 'Internal Downstream Mapping' to its
state machine. state machine.
State: RESPONSE_AWAITED State: RESPONSE_AWAITED
Event: LDP Withdraw Event: LDP Withdraw
New State: RESPONSE_AWAITED New State: RESPONSE_AWAITED
Actions Actions
Ignore the event. It is a protocol error from the downstream LDP It is a protocol error from the downstream LDP peer and send a LDP-
peer. RELEASE msg downstream
State: RESPONSE_AWAITED State: RESPONSE_AWAITED
Event: LDP Downstream Nak Event: LDP Downstream Nak
New State: IDLE New State: IDLE
Actions Actions
For each Upstream_LSP_Control_Block in the Upstream_LSP_Control_Block For each Upstream_LSP_Control_Block in the Upstream_LSP_Control_Block
skipping to change at page 53, line 38 skipping to change at page 53, line 38
Event: LDP Withdraw Event: LDP Withdraw
New State: IDLE New State: IDLE
Actions Actions
For each Upstream_LSP_Control_Block in the Upstream_LSP_Control_Block For each Upstream_LSP_Control_Block in the Upstream_LSP_Control_Block
pointers list, pass the event 'Internal Downstream withdraw' to its pointers list, pass the event 'Internal Downstream withdraw' to its
state machine. state machine.
Release the resources, and delete the control block. Release the resources, and delete the control block and send LDP-
RELEASE downstream.
State: ESTABLISHED State: ESTABLISHED
Event: LDP Downstream Nak Event: LDP Downstream Nak
New State: ESTABLISHED New State: ESTABLISHED
Actions Actions
It is a protocol error from the downstream LDP peer. It is a protocol error from the downstream LDP peer.
skipping to change at page 60, line 29 skipping to change at page 60, line 29
Pass the event `Downstream Lost' to the state machines of all the Pass the event `Downstream Lost' to the state machines of all the
Downstream_LSP_Control_Blocks whose the downstream LDP peer is that Downstream_LSP_Control_Blocks whose the downstream LDP peer is that
LSR. LSR.
- If a next hop of an FEC is changed: - If a next hop of an FEC is changed:
For all the Upstream_LSP_Control_Blocks which are infected by this For all the Upstream_LSP_Control_Blocks which are infected by this
change, pass the event 'Internal New NH' to their state machines. change, pass the event 'Internal New NH' to their state machines.
- If an LSR receives an LDP-NAK from an Upstream LSR: - If an LSR receives an LDP-ABORT from an Upstream LSR:
Use the Upstream LDP Request ID and Upstream LDP Session Identifier Use the Upstream LDP Request ID and Upstream LDP Session Identifier
to locate the Upstream_LSP_Control_Block and pass the event `LDP to locate the Upstream_LSP_Control_Block and pass the event `LDP
Upstream Nak' to its state machine. Abort' to its state machine.
- If an LSR receives an LDP-NAK from a downstream LSR: - If an LSR receives an LDP-NAK from a downstream LSR:
Use the Downstream LDP Request ID and Downstream Session Identifier Use the Downstream LDP Request ID and Downstream Session Identifier
to locate a Downstream_LSP_control_block and pass the event `LDP to locate a Downstream_LSP_control_block and pass the event `LDP
Downstream Nak' to its state machine. Downstream Nak' to its state machine.
3.2.4 Downstream Unsolicited 4. State Machine for Downstream Unsolicited
The following sections describe the state machines for the ATM-LSR The following sections describe the state machines for the ATM-LSR
which uses downstream unsolicited mode. which uses downstream unsolicited mode.
While both independent LSP control and ordered LSP control modes are While both independent LSP control and ordered LSP control modes are
possible, only the ordered mode is taken into account, because the possible, only the ordered mode is taken into account, because the
independant LSP control mode uses the liberal label retention mode independant LSP control mode uses the liberal label retention mode
and so is considered burning too many ATM resources. and so is considered burning too many ATM resources.
In downstream unsolicited mode, multiple path is not allowed in this In downstream unsolicited mode, multiple path is not allowed in this
version and will be For Further Study(FFS). We suspect with multiple version and will be For Further Study(FFS). We suspect with multiple
next hops and Downstream mode, it is easy to get into loop condition. next hops and Downstream mode, it is easy to get into loop condition.
3.2.4.0 Control Block 4.0 Control Block
There are 2 types of control blocks involved: There are 2 types of control blocks involved:
Upstream_LSP_Control_Block, Downstream_LSP_Control_Block. Upstream_LSP_Control_Block, Downstream_LSP_Control_Block.
There is a list of Upstream_LSP_Control_Blocks for each FEC in the There is a list of Upstream_LSP_Control_Blocks for each FEC in the
routing table, with each one correspondng to a LDP peer. A routing table, with each one correspondng to a LDP peer. A
Upstream_LSP_Control_Block is created for each FEC when there is a Upstream_LSP_Control_Block is created for each FEC when there is a
label ready to be distributed to that upstream. It is deleted when label ready to be distributed to that upstream. It is deleted when
the FEC is deleted from the FEC table, or the LDP peer disappears, or the FEC is deleted from the FEC table, or the LDP peer disappears, or
the downstream label is withdrawed. the downstream label is withdrawed.
skipping to change at page 62, line 7 skipping to change at page 62, line 7
- Downstream LDP Session Identifier - Downstream LDP Session Identifier
- Downstream Label(assigned by the downstream LSR) - Downstream Label(assigned by the downstream LSR)
- Downstream Label Request ID (assigned by the LSR itself) - Downstream Label Request ID (assigned by the LSR itself)
Downstream Label and Downstream LDP Session Identifier, or FEC and Downstream Label and Downstream LDP Session Identifier, or FEC and
Downsteam LDP Session Identifier can be used to locate a unique Downsteam LDP Session Identifier can be used to locate a unique
Downstream_LSP_Control_Block. Downstream_LSP_Control_Block.
3.2.4.1 States of the Upstream_LSP_Control_Block's State Machine 4.1 States of the Upstream_LSP_Control_Block's State Machine
for Downstream Mode for Downstream Mode
-- IDLE -- IDLE
This is the initial LSP state. This is the initial LSP state.
-- ESTABLISHED -- ESTABLISHED
This state means that the LSR has received the LDP-MAPPING message This state means that the LSR has received the LDP-MAPPING message
from the downstream LSR and the LSP is up and operational. from the downstream LSR and the LSP is up and operational.
-- RELEASE_AWAITED -- RELEASE_AWAITED
This state means that the LSR is waiting for the LDP-RELEASE msg in This state means that the LSR is waiting for the LDP-RELEASE msg in
respond to the LDP-WITHDRAW sent by this LSR. respond to the LDP-WITHDRAW sent by this LSR.
-- RESOUCES_AWAITED -- RESOUCES_AWAITED
This state means that the LSR is waiting for the label resources. This state means that the LSR is waiting for the label resources.
3.2.4.2 Events of the Upstream_LSP_Control_Block's State Machine 4.2 Events of the Upstream_LSP_Control_Block's State Machine
for Downstream Mode for Downstream Mode
-- Internal Downstream Mapping -- Internal Downstream Mapping
This event is sent by one Downstream_LSP_Control_Block's state This event is sent by one Downstream_LSP_Control_Block's state
machine. The event is the result of receiving an LDP-MAPPING message machine. The event is the result of receiving an LDP-MAPPING message
by the Downstream_LSP_Control_Block's state machine. Or when the LDP by the Downstream_LSP_Control_Block's state machine. Or when the LDP
peer is discovered and there is a downstream Label available for this peer is discovered and there is a downstream Label available for this
FEC. FEC.
skipping to change at page 64, line 5 skipping to change at page 64, line 5
-- Delete FEC -- Delete FEC
This event means that either the FEC is removed from the forwarding This event means that either the FEC is removed from the forwarding
table. table.
-- Upstream Lost -- Upstream Lost
This event means that the upstream LDP peer is lost. This event means that the upstream LDP peer is lost.
3.2.4.3 State Transitions of Upstream_LSP_Control_Block's State 4.3 State Transitions of Upstream_LSP_Control_Block's State
Machine for Downstream Mode Machine for Downstream Mode
| |
|(created when |(created when
|a label is to be distributed |a label is to be distributed
| to the LDP peer) | to the LDP peer)
v v
+-------------------+ +-------------------+
| | | |
| IDLE |<--------------+ | IDLE |<--------------+
skipping to change at page 64, line 49 skipping to change at page 64, line 49
| | | | | | | |
| +-------------------+ | | +-------------------+ |
| | | |
| (Internal Downstream Withdraw) |(LDP Release) | (Internal Downstream Withdraw) |(LDP Release)
| +-------------------+ | | +-------------------+ |
| | | | | | | |
+---->| RELEASE_AWAITED |---------------+ +---->| RELEASE_AWAITED |---------------+
| | | |
+-------------------+ +-------------------+
3.2.4.4 Upstream_LSP_Control_Block's State Machine for 4.4 Upstream_LSP_Control_Block's State Machine for
Downstream Mode Downstream Mode
3.2.4.4.1 : State -- "IDLE" 4.4.1 : State -- "IDLE"
State: IDLE State: IDLE
Event: Internal Downstream mapping Event: Internal Downstream mapping
New State: Depends on the action. New State: Depends on the action.
Actions Actions
Choose an upstream label, connect the upstream label with the Choose an upstream label, connect the upstream label with the
skipping to change at page 66, line 25 skipping to change at page 66, line 25
State: IDLE State: IDLE
Event: Upstream Lost Event: Upstream Lost
New State: IDLE New State: IDLE
Actions Actions
Delete the control block. Delete the control block.
3.2.4.4.2 : State -- "ESTABLISHED" 4.4.2 : State -- "ESTABLISHED"
State: ESTABLISHED State: ESTABLISHED
Event: Internal Downstream Mapping Event: Internal Downstream Mapping
New State: ESTABLISHED New State: ESTABLISHED
Actions Actions
Process the new attributes of the new mapping msg. Process the new attributes of the new mapping msg.
skipping to change at page 67, line 47 skipping to change at page 67, line 47
State: ESTABLISHED State: ESTABLISHED
Event: Upstream Lost Event: Upstream Lost
New State: IDLE New State: IDLE
Actions Actions
Release the upstream label and delete the control block. Release the upstream label and delete the control block.
3.2.4.4.2 : State -- "RELEASE_AWAITED" 4.4.2 : State -- "RELEASE_AWAITED"
State: RELEASE_AWAITED State: RELEASE_AWAITED
Event: Internal Downstream Mapping Event: Internal Downstream Mapping
New State: RELEASE_AWAITED New State: RELEASE_AWAITED
Actions Actions
Ignore the msg. Ignore the msg.
skipping to change at page 69, line 12 skipping to change at page 69, line 12
State: RELEASE_AWAITED State: RELEASE_AWAITED
Event: Upstream Lost Event: Upstream Lost
New State: IDLE New State: IDLE
Actions Actions
Release the upstream label and delete the control block. Release the upstream label and delete the control block.
3.2.4.4.2 : State -- "RESOURCE_AWAITED" 4.4.2 : State -- "RESOURCE_AWAITED"
State: RESOURCE_AWAITED State: RESOURCE_AWAITED
Event: Internal Downstream Mapping Event: Internal Downstream Mapping
New State: RESOURCE_AWAITED New State: RESOURCE_AWAITED
Actions Actions
Ignore the msg. Ignore the msg.
skipping to change at page 70, line 27 skipping to change at page 70, line 27
State: RESOURCE_AWAITED State: RESOURCE_AWAITED
Event: Upstream Lost Event: Upstream Lost
New State: IDLE New State: IDLE
Actions Actions
Delete the control block. Delete the control block.
3.2.4.5 State of the Downstream_LSP_Control_Block's State Machine 4.5 State of the Downstream_LSP_Control_Block's State Machine
for Downstream Mode for Downstream Mode
-- IDLE -- IDLE
This is the initial LSP state. This is the initial LSP state.
-- ESTABLISHED -- ESTABLISHED
This state means that the LSR has received the LDP-MAPPING msg from This state means that the LSR has received the LDP-MAPPING msg from
the downstream LSR. the downstream LSR.
skipping to change at page 72, line 5 skipping to change at page 72, line 5
The FEC is deleted from the forwarding table. The FEC is deleted from the forwarding table.
-- Next Hop Change -- Next Hop Change
The next hop for this FEC is change to different LSR. The next hop for this FEC is change to different LSR.
-- Downstream Lost -- Downstream Lost
The downstream peer is gone. The downstream peer is gone.
3.2.4.7 State Transitions of Downstream_LSP_Control_Block's State 4.7 State Transitions of Downstream_LSP_Control_Block's State
Machine for Downstream Mode Machine for Downstream Mode
| |
|(FEC is being added into the forwarding |(FEC is being added into the forwarding
table) table)
v v
+-------------------+ +-------------------+
| | | |
| IDLE |<--------------+ | IDLE |<--------------+
| | | | | |
skipping to change at page 72, line 33 skipping to change at page 72, line 33
v | v |
+-------------------+ | +-------------------+ |
| | | | | |
| ESTABLISHED |---------------+ | ESTABLISHED |---------------+
| | | |
+-------------------+ +-------------------+
| |
|(FEC is deleted from the forwarding table) |(FEC is deleted from the forwarding table)
v v
3.2.4.8 Downstream_LSP_Control_Block's State Machine 4.8 Downstream_LSP_Control_Block's State Machine
for Downstream Mode for Downstream Mode
3.2.4.8.1 : State -- "IDLE" 4.8.1 : State -- "IDLE"
State: IDLE State: IDLE
Event: LDP mapping Event: LDP mapping
New State: ESTABLISHED New State: ESTABLISHED
Actions Actions
For all the LDP peers except the downstream LSR which assigned the For all the LDP peers except the downstream LSR which assigned the
skipping to change at page 73, line 41 skipping to change at page 73, line 41
State: IDLE State: IDLE
Event: Downstream Lost Event: Downstream Lost
New State: IDLE New State: IDLE
Actions Actions
Ignore the event. Ignore the event.
3.2.4.8.1 : State -- "ESTABLISHED" 4.8.1 : State -- "ESTABLISHED"
State: ESTABLISHED State: ESTABLISHED
Event: LDP mapping Event: LDP mapping
New State: ESTABLISHED New State: ESTABLISHED
Actions Actions
For each Upstream_LSP_control_block of this FEC, pass event `Internal For each Upstream_LSP_control_block of this FEC, pass event `Internal
skipping to change at page 75, line 5 skipping to change at page 75, line 5
Event: Downstream Lost Event: Downstream Lost
New State: IDLE New State: IDLE
Actions Actions
Send LDP-WITHDRAW to all Upstream_Control_Block's state machine of Send LDP-WITHDRAW to all Upstream_Control_Block's state machine of
this FEC. this FEC.
3.2.4.5 LDP Related Message Processing for downstream mode. 4.5 LDP Related Message Processing for downstream mode.
- If an LSR receives an LDP-REQUEST message: - If an LSR receives an LDP-REQUEST message:
If there is a next hop for this FEC and there is a If there is a next hop for this FEC and there is a
Downstream_Control_Block for this FEC whose state is 'ESTABLISHED', Downstream_Control_Block for this FEC whose state is 'ESTABLISHED',
create a new Upstream_Control_Block and pass 'internal Mapping' event create a new Upstream_Control_Block and pass 'internal Mapping' event
to its state machine. to its state machine.
- If an LSR receives an LDP-MAPPING message: - If an LSR receives an LDP-MAPPING message:
skipping to change at page 76, line 28 skipping to change at page 76, line 28
- If an LSR receives an LDP-NAK from an Upstream LSR: - If an LSR receives an LDP-NAK from an Upstream LSR:
Ignore the msg. An LDP-NAK should never appear in the downstream-mode Ignore the msg. An LDP-NAK should never appear in the downstream-mode
LSR LSR
- If an LSR receives an LDP-NAK from a downstream LSR: - If an LSR receives an LDP-NAK from a downstream LSR:
Ignore the msg. It is an protocol error from the downstream LSR. Ignore the msg. It is an protocol error from the downstream LSR.
4. The Possible Future Works
The following is a list of items that might need to be worked on in
the future:
1) Support senario such that: in a downstream-on-demand mode, a Label
request contains multiple FEC items, whereas the corresponding Label
Withdraw only withdraw one FEC item.
2) The impact of loop detection, loop recovery and loop prevention
3)Once the LSP is operational, whether the LSR can receive an LDP-NAK
message is also debatable.
4)In this draft, for the VC-merge case, the LDP-REQUEST message only
goes up to the merge point. Whether the LDP-REQUEST need to go all
the way to the egress and back in order for the path to be setup
(brute force way) is debatable.
5) Define all the necessary information for the control block. For
example, the ER-HOP list information used to re-build a Label Request
in case of "local repair".
5. Security Considerations 5. Security Considerations
Security considerations will be addressed in a future revision of Security considerations will be addressed in a future revision of
this document. this document.
6. Acknowledgements 6. Acknowledgements
The authors would like to acknowledge the helpful comments and The authors would like to acknowledge the helpful comments and
suggestions of the following people: suggestions of the following people: Bob Thomas
7. Authors's Address 7. Authors's Address
Liwen Wu Liwen Wu
Alcatel Alcatel
44983 Knoll Square 44983 Knoll Square
Ashburn, VA. 20147 Ashburn, VA. 20147
U.S.A U.S.A
Phone: 703-724-2619 Phone: 703-724-2619
skipping to change at page 78, line 22 skipping to change at page 77, line 46
Label Distribution Protocol (LDP)", Joan Cucchiara, Hans Sjostrand, Label Distribution Protocol (LDP)", Joan Cucchiara, Hans Sjostrand,
James V. Luciani, work in progress, Internet Draft, <draft-ietf-mpls- James V. Luciani, work in progress, Internet Draft, <draft-ietf-mpls-
ldp-mib-00.txt> ldp-mib-00.txt>
4."Requirements for Traffic Engineering Over MPLS", Daniel O.Awduche, 4."Requirements for Traffic Engineering Over MPLS", Daniel O.Awduche,
Joe Malcolm, Johnson Agogbua, Mike O'Dell, Jim McMaus, work in Joe Malcolm, Johnson Agogbua, Mike O'Dell, Jim McMaus, work in
progress,Internet Draft, <draft-ietf-mpls-traffic-eng-00.txt> progress,Internet Draft, <draft-ietf-mpls-traffic-eng-00.txt>
5. "LDP Specification", Loa Andersson, Paul Doolan,Nancy Feldman, Andre 5. "LDP Specification", Loa Andersson, Paul Doolan,Nancy Feldman, Andre
Fredette, Bob Thomas, work in progress, Internet Draft, <draft-ietf- Fredette, Bob Thomas, work in progress, Internet Draft, <draft-ietf-
mpls-ldp-03.txt> mpls-ldp-04.txt>
6. "MPLS Loop Prevention Mechanism", Yoshihiro Ohba, Yasuhiro Katsube, 6. "MPLS Loop Prevention Mechanism", Yoshihiro Ohba, Yasuhiro Katsube,
Eric Rosen, Paul Doolan, work in progress, Internet Draft, <draft- Eric Rosen, Paul Doolan, work in progress, Internet Draft, <draft-
ohba-mpls-loop-prevention-02.txt> ohba-mpls-loop-prevention-02.txt>
7. "Constraint-Based LSP Set up Using LDP", Bilel Jamoussi, et.al.,
work in progress, Internet Draft, <draft-ietf-mpls-cr-ldp-01.txt>
 End of changes. 

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