⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc3063.txt

📁 最新的RFC
💻 TXT
📖 第 1 页 / 共 5 页
字号:
   each other in a loop.  This case would happen when a node withdraw a   thread immediately after extending it into an L3 loop.   A heuristics for self-chasing is to delay the execution of thread   withdrawing at an initiating node of the thread withdrawing.  Anyway,   the thread TTL mechanism can eliminate any kind of thread looping.7.  Loop prevention examples   In this section, we show two examples to show how the algorithm can   prevent LSP loops in given networks.   We assume that the ordered downstream-on-demand allocation is   employed, that all the LSPs are with regard to the same FEC, and that   all nodes are VC-merge capable.7.1.  First example   Consider an MPLS network shown in Fig.14 in which an L3 loop exists.   Each directed link represents the current next hop of the FEC at each   node.  Now leaf nodes R1 and R6 initiate creation of an LSP.               R11 ------- R10 <-------------------- R9                |           |                         ^                |           |                         |                |           |                         |                v           v                         |                R1 -------> R2 --------> R3 --------> R4 --------- R5              [leaf]                     ^                                         |                                         |                                         |                R6 -------> R7 --------> R8              [leaf]                      Fig. 14   Example MPLS network (1)Ohba, et al.                  Experimental                     [Page 19]RFC 3063             MPLS Loop Prevention Mechanism        February 2001   Assume that R1 and R6 send a label request message at the same time,   and that the initial thread TTL is 255.  First we show an example of   how to prevent LSP loops.   A set of thread attributes is represented by (color, hop count, TTL).   The request from R1 and R6 contains (re,1,255) and (bl,1,255),   respectively.   Assume that R3 receives the request originated from R1 before   receiving the request originated from R6.  When R3 receives the first   request with red thread, R3 forwards it with (re,3,253) without   changing thread color, since both the receiving incoming link and the   outgoing link are newly created.  Then R3 receives the second request   with blue thread.  In this time, the outgoing link is already exists.   Thus, R3 performs thread extending with changing color, i.e., creates   a new brown thread and forwards the request with (br,4,255).   When R2 receives the request from R10 with (re,6,250), it finds that   the red thread forms a loop, and stalls the red thread.  Then, R2   creates a purple thread of hop count unknown and extends it   downstream by sending a request with (pu,U,255) to R3, where "U"   represents "unknown".   After that, R2 receives another request from R10 with (br,7,252).   The brown thread is merged into purple thread.  R2 sends no request   to R3.   On the other hand, the purple thread goes round without changing   color through existing links, and R2 finds the thread loop and stalls   the purple thread.  Since the received thread hop count is unknown,   no thread is created any more.  In this case no thread rewinding   occurs.  The current state of the network is shown in Fig.15.Ohba, et al.                  Experimental                     [Page 20]RFC 3063             MPLS Loop Prevention Mechanism        February 2001           *: location of thread stalling                                      (pu,U)               R11 ------- R10 <-------------------- R9                |           |                         ^                |           |(pu,U)*                  |                |           |                         |(pu,U)                v           v                         |                R1 -------> R2 --------> R3 --------> R4 --------- R5              [leaf] (re,1)      (pu,U)  ^  (pu,U)                                         |                                         | (bl,3)                                         |                R6 -------> R7 --------> R8              [leaf] (bl,1)      (bl,2)                            Fig.15  The network state   Then R10 changes its next hop from R2 to R11.   Since R10 has a purple thread on the old downstream link, it first   sends a path teardown message to the old next hop R2 for withdrawing   the purple thread.  Next, it creates a green thread of hop count   unknown and sends a request with (gr,U,255) to R11.   When R2 receives the teardown message from R10, R2 removes the   stalled incoming link between R10 and R2.   On the other hand, the green thread reaches R1 and Hmax is updated   from zero to unknown.  In this case, R1 performs thread extending   with changing color since the thread is received on a new incoming   link but extended on the already existing outgoing link.  As a   result, R1 creates an orange thread of hop count unknown and extend   it to R2.   The orange thread goes round through existing links without changing   color, and finally it is stalled at R1.   The state of the network is now shown in Fig.16.Ohba, et al.                  Experimental                     [Page 21]RFC 3063             MPLS Loop Prevention Mechanism        February 2001           *: location of thread stalling                    (or,U)             (or,U)               R11 <------ R10 <-------------------- R9                |           |                         ^                |(or,U)*    |                         |                |           |                         |(or,U)                v           |                         |                R1 -------> R2 --------> R3 --------> R4 --------- R5              [leaf] (or,U)      (or,U)  ^  (or,U)                                         |                                         | (bl,3)                                         |                R6 -------> R7 --------> R8              [leaf] (bl,1)      (bl,2)                            Fig.16  The network state   Then R4 changes its next hop from R9 to R5.   Since R4 is extending an orange thread, it first sends a teardown   message to the old next hop R9 to withdraw the orange thread on the   old route.  Next, it creates a yellow thread of hop count unknown,   and sends a request message with (ye,U,255) to R5.   Since R5 is the egress node, the yellow thread rewinding starts.  R5   returns a label mapping message.  The thread rewinding procedure is   performed at each node, as the label mapping message is returned   upstream hop-by-hop.   If R1 receives a label mapping message before receiving the orange   thread's withdrawal from R11, R1 returns a label mapping message to   R11.  On receiving the orange thread's withdrawal, R1 will create a   transparent thread and extend it by sending an update message with   (tr,1,255) in order to notify downstream of the known hop count.   Otherwise, if R1 receives the orange thread's withdrawal before   receiving a label mapping message, R1 removes the stalled incoming   orange link and waits for rewinding of the outgoing orange thread.   Finally, when R1 receives a label mapping message from R2, it creates   a transparent thread (tr,1,255) and extend it downstream.   In both cases, a merged LSP ((R1->R2),(R6->R7->R8))->R3->R4->R5) is   established and every node obtains the correct link hop count.  The   final network state is shown in Fig.17.Ohba, et al.                  Experimental                     [Page 22]RFC 3063             MPLS Loop Prevention Mechanism        February 2001               R11 <------ R10 <-------------------- R9                |           |                         |                |           |                         |                |           |                         |                v           |                         |                R1 -------> R2 --------> R3 --------> R4 --------> R5              [leaf] (tr,1)      (tr,2)  ^  (tr,4)        (tr,5)                                         |                                         | (tr,3)                                         |                R6 -------> R7 --------> R8              [leaf] (tr,1)      (tr,2)                       Fig.17  The final network state7.2.  Second example                          +----- R6----> R7-----+                          |                     |                          |                     v                   R1---->R2                    R4----->R5                          |                     ^                          |                     |                          +--------->R3---------+                   Fig.18   Example MPLS network (2)   Assume that in Fig.18, there is an established LSP R1->R2->R3->R4-   >R5, and the next hop changes at R2 from R3 to R6.  R2 sends a   request to R6 with a red thread (re,2,255).  When the request with   (re,4,253) reaches R4, it extends the thread to R5 with changing   color.  Thus, a new green thread is created at R4 and extended to R5   by sending an update message with (gr,5,255).   When R5 receives the update, it updates the incoming link hop count   to 5 and returns an ack (or a notification message with a success   code) for the update.  When R4 receives the ack for the update, it   returns a label mapping message to R7.   When R2 receives the label mapping message on the new route, it sends   a teardown message to R3.  When R4 receives the teardown message, it   does not sends an update to R5 since Hmax does not change.  Now an   established LSP R1->R2->R6->R7->R4->R5 is obtained.   Then, the next hop changes again at R2 from R6 to R3.Ohba, et al.                  Experimental                     [Page 23]RFC 3063             MPLS Loop Prevention Mechanism        February 2001   R2 sends a request with a blue thread (bl,2,255) to R3.  R3 forwards   the request with (bl,3,254) to R4.   When R4 receives the request, it immediately returns a label mapping   message to R3 since Hmax does not change.   When R2 receives the label mapping message on the new route, it sends   a teardown message to R6.  The teardown message reaches R4,   triggering an update message with a transparent thread (tr,4,255) to   R5, since Hmax decreases from 4 to 3.  R5 updates the incoming link   hop count to 4 without returning an ack.8. Thread control block   A thread control block (TCB) is maintained per LSP at each node and   may contain the following information:         - FEC         - State         - Incoming links             Each incoming link has the following attributes:               o  neighbor: upstream neighbor node address                 o  color: received thread color                 o  hop count: received thread hop count               o  label               o  S-flag: indicates a stalled link         - Outgoing links             Each outgoing link has the following attributes:               o  neighbor: downstream neighbor node address                 o  color: received thread color                 o  hop count: received thread hop count               o  label               o  C-flag: indicates the link to the current next hop   If a transparent thread is received on an incoming link for which no   label is assigned yet or a non-transparent color is stored, discard   the thread without entering the FSM.  An error message may be   returned to the sender.   Whenever a thread is received on an incoming link, the following   actions are taken before entering the FSM: (1) Store the received   thread color and hop count on the link, replacing the old thread   color and hop count, and (2) set the following flags that are used   for an event switch within "Recv thread" event (see section 8.1).Ohba, et al.                  Experimental                     [Page 24]RFC 3063             MPLS Loop Prevention Mechanism        February 2001      o  Color flag (CL-flag):            Set if the received thread is colored.      o  Loop flag (LP-flag):            Set if the received thread forms a loop.      o  Arrived on new link flag (NL-flag):            Set if the received thread arrives on a new incoming link.   If LP-flag is set, there must be an incoming link L, other than the   receiving link, which stores the same thread color as the received   one.  The TCB to which link L belongs is referred to as the   "detecting TCB".  If the receiving LSR is VC-merge capable, the   detecting TCB and the receiving TCB is the same, otherwise, the two   TCBs are different.   Before performing a thread extending, the thread TTL is decremented   by one.  If the resulting TTL becomes zero, the thread is not   extended but silently discarded.  Otherwise, the thread is extended   and the extended thread hop count and color are stored into the

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -