📄 rfc3215.txt
字号:
Control Block and use the state machine of Next Hop Trigger Control
Block to establish a new LSP through the better next hop.
Boscher, et al. Informational [Page 23]
RFC 3215 LDP State Machine January 2002
2.2.6.1 Next Hop Trigger Control Block
-- State
-- LSP Control Block Pointer, that points to the original LSP control
block.
-- New Next Hop LSP Control Block Pointer, that points to the LSP
Control Block that is setting up an LSP through the new next hop.
2.2.6.2 States
-- IDLE
This is the initial LSP state, when the Trigger_Control_Block is
created.
-- NEW_NH_RETRY
This is the state where an LSR waits for a retry timer to expire and
then tries to establish an LSP through a new next hop.
-- NEW_NH_RESPONSE_AWAITED
This is the state where an LSR is in the middle of establishing a new
LSP through a new next hop. It has triggered a LSP control block to
send an LDP-REQUEST towards the new next hop and is waiting for the
LDP-MAPPING.
2.2.6.3 Events
-- Internal New NH
The LSR detects there is a new next hop for a FEC.
-- Internal Retry Timeout
The LSP retry timer expires.
-- Internal LSP UP
The LSP to the new Next Hop is UP
-- Internal LSP NAK
The LSP through the new next hop could not get set up
Boscher, et al. Informational [Page 24]
RFC 3215 LDP State Machine January 2002
-- Internal Destroy
This event is triggered when the LSR lost the LDP session with its
upstream neighbor.
2.2.6.4 State Transition for next hop change
+---------------------+
| |
| IDLE |<------------+
| | |
+---------------------+ |
| |
| |
| (Internal New NH) |
| |
v |
+---------------------+ |
| | |
| NEW_NH_RETRY |----------->-+
| | (Internal |
+---------------------+ Destroy) |
| |
| |
| (Internal retry timeout) |
| |
v |
+---------------------+ |
| | (Internal |
| NEW_NH_RESPONSE | Destroy) |
| _AWAITED |----------->-+
| | |
+---------------------+ |
| |
| (Internal LSP UP) |
| (Internal LSP NAK) |
+------------------------>-+
2.2.6.5 State Machine
2.2.6.5.1 State -- "IDLE"
State: IDLE
Event: Internal New NH
New State: NEW_NH_RETRY
Boscher, et al. Informational [Page 25]
RFC 3215 LDP State Machine January 2002
Actions:
Start the LSP retry timer and go to the `NEW_NH_RETRY' state.
State: IDLE
Event: Internal retry timeout
New State: IDLE
Actions:
Ignore. It is an internal implementation error.
State: IDLE
Event: Internal LSP UP
New State: IDLE
Actions:
Ignore. It is an internal implementation error.
State: IDLE
Event: Internal LSP NAK
New State: IDLE
Actions:
Ignore. It is an internal implementation error.
State: IDLE
Event: Internal destroy
New State: IDLE
Actions:
Ignore. It is an internal implementation error.
Boscher, et al. Informational [Page 26]
RFC 3215 LDP State Machine January 2002
2.2.6.5.2 State -- "NEW_NH_RETRY"
State: NEW_NH_RETRY
Event: Internal New NH
New State: NEW_NH_RETRY
Actions:
Restart the LSP retry timer.
State: NEW_NH_RETRY
Event: Internal retry timeout
New State: Depends on action routine.
Actions:
If the new next hop is the same one as the old next hop, go to
IDLE and delete the control block.
Otherwise, create an LSP control block that will try to establish
a new LSP through the new next hop, send event `Internal Setup' to
its state machine and go to NEW_NH_RESPONSE_AWAITED.
State: NEW_NH_RETRY
Event: Internal LSP UP
New State: NEW_NH_RETRY
Actions:
Ignore. It is an internal implementation error.
State: NEW_NH_RETRY
Event: Internal LSP NAK
New State: NEW_NH_RETRY
Actions:
Ignore. It is an internal implementation error.
State: NEW_NH_RETRY
Boscher, et al. Informational [Page 27]
RFC 3215 LDP State Machine January 2002
Event: Internal destroy
New State: IDLE
Actions:
Stop the timer, go to IDLE and delete the control block.
2.2.6.5.3 State -- "NEW_NH_RESPONSE_AWAITED"
State: NEW_NH_RESPONSE_AWAITED
Event: Internal New NH
New State: NEW_NH_RETRY
Actions:
Restart the LSP retry timer, send `Internal destroy' to the
control block of the LSP for the new next hop and go to the
`NEW_NH_RETRY' state.
State: NEW_NH_RESPONSE_AWAITED
Event: Internal retry timeout
New State: NEW_NH_RESPONSE_AWAITED
Actions:
Ignore. It is an internal implementation error.
State: NEW_NH_RESPONSE_AWAITED
Event: Internal LSP UP
New State: IDLE
Actions:
Send event `Internal cross-connect' event to the LSP control block
of the new next hop.
Send event `Internal destroy' event to the original LSP control
block.
Then go to IDLE and delete the control block.
Boscher, et al. Informational [Page 28]
RFC 3215 LDP State Machine January 2002
State: NEW_NH_RESPONSE_AWAITED
Event: Internal LSP NAK
New State: IDLE
Actions:
Delete the control block.
State: NEW_NH_RESPONSE_AWAITED
Event: Internal destroy
New State: IDLE
Actions:
Send event `Internal destroy' the control block for the new LSP
through the new next hop.
2.2.7 LDP Related Message Handling
- If an LSR receives an LDP-REQUEST from an upstream LSR:
a) If this is a duplicate request, discard the message. A
duplicate request means that there is a LSP Control Block that
has the same FEC, Upstream Label Request ID and Upstream Label
Request ID and same Upstream LDP Session Identifier.
b) Otherwise, create a new LSP Control Block, store the relevant
information from the message into the control block, then pass
the event `LDP Request' to its state machine.
- If an LSR receives an LDP-MAPPING from a downstream LSR:
a) Extract the 'Label Request Message ID' field and from the LDP-
MAPPING.
b) Find an LSP Control Block that has the same Downstream Label
Request ID and the same Downstream LDP Session Identifier.
c) If an LSP Control Block is found, pass the event `LDP Mapping'
to its state machine.
d) If there is no matching LSP Control Block found, then try to
find an LSP Control Block that has the same Downstream Label
and the same Downstream LDP Session Identifier.
Boscher, et al. Informational [Page 29]
RFC 3215 LDP State Machine January 2002
e) If an LSP Control Block is found, pass the event `LDP Mapping'
to its state machine.
f) Otherwise, ignore the LDP-MAPPING and send a LDP-RELEASE
downstream.
- If an LSR receives an LDP-RELEASE from an upstream LSR:
a) Find an LSP Control Block that has the same Upstream Label and
the same Upstream LDP Session Identifier.
b) If an LSP Control Block is found, pass the event `LDP Release'
to its state machine.
c) Otherwise, ignore the message.
- If an LSR receives an LDP-WITHDRAW from a downstream LSR:
a) Find an LSP Control Block that has the same Downstream Label
and the same Downstream LDP Session Identifier.
b) If an LSP Control Block is found, pass the event `LDP Withdraw'
to its state machine.
c) Otherwise, ignore the LDP-WITHDRAW and send a LDP-RELEASE
downstream.
- If an upstream LDP peer is lost:
a) Find all the LSP Control Blocks whose upstream LDP peer is that
LSR.
b) Then pass the event `Upstream Lost' to their state machines.
- If a downstream LDP peer is lost:
a) Find all the LSP Control Blocks whose downstream LDP peer is
that LSR.
b) Then pass the event `Downstream Lost' to their state machines.
- If the LSR detects a new next hop for an FEC:
For each LSP that needs "local repair", or it needs "global
repair" and it is the ingress of the LSP, pass event "Internal New
NH" to its state machine.
Boscher, et al. Informational [Page 30]
RFC 3215 LDP State Machine January 2002
- If an LSR receives an LDP-Abort from an upstream LSR:
a) Extract the LDP Request ID value from the LDP-Abort message.
b) Find an LSP Control Block that has the same Upstream Label
Request ID and the same Upstream LDP Session Identifier.
c) If an LSP Control Block is found, pass the event `LDP Upstream
Abort' to its state machine.
d) Otherwise, ignore the message.
- If the LSR receives an LDP-NAK from a downstream LSR:
a) Extract the LDP Request ID value from the LDP-NAK.
b) Find an LSP Control Block that has the same Downstream Label
Request ID and the same Downstream LDP Session Identifier.
c) If an LSP Control Block is found, pass the event `LDP
Downstream NAK' to its state machine.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -