Hi Xuesong, > Thank you for giving detailed proof, and it is very helpful to understand the > mechanism. > As I understand, it is showed in the proof that if there is proper temporary > flooding in R = E - E* - E’, same connectivity could be achieved by the > flooding topology F’ just as G’. I agree with this.
I’m glad it helped. > The problem for me now is how to enable the temporary flooding properly. > Here is an example: > <image001.png> > The solid line presents the physical link inside flooding topology, and the > dashed line presents the physical link out of flooding topology. > From the view of me, when multipoint failure happens, node 3 is supposed to > enable the temporary flooding between 3 and 4, in order to connect with the > nodes inside the red box, while the other dashed line between node 1 and node > nobody is not supposed to do temporary flooding although node 1 is connected > to the failed link directly. > It seems a little unclear for me about how the node itself could decide > whether a dashed line should do temporary flooding or not in this case. The problem that you’re asking about is partition detection. To explain this, I’ve taken the liberty of adding some more labels to your diagram. To start, each node has its link state database and the flooding topology. Each node should receive link state updates from nodes in its partition, but will not receive updates from other nodes, thus the link state database is partially inconsistent and must be treated with care. For example, node 2 will see updates from nodes 1, 6, and 7, informing it of the failure, but it will not receive an update from node 8. Now, the job of each node is try to compute the partitions of the flooding topology. In particular, each node needs to understand which nodes are in its partition. A node cannot know all of the partitions that exist, but it turns out that that’s irrelevant. Once a node understands which nodes are in its partition, then it is a simple matter to see which links should be enabled for temporary flooding. If a neighbor is in the same partition (e.g., nodes 1 and 5), then adding the link adds no value. If the neighbor is not in the same partition (e.g., nodes 3 and 4), then it becomes a recovery link. The actual computation of the partitions is straightforward, with one caveat: we always want to perform a two-way check for connectivity. An implementation should be doing this during SPF already, so this should be familiar. The reason for doing this is quite clear: in node 2’s link state database (LSDB), the LSP for node 8 will show connectivity to node 1 even after the failure. However, node 1’s LSP will clearly show that the adjacency has failed. We can only infer connectivity when we see both sides of the adjacency are up. Given this, the specific algorithm that you choose is an implementation detail. You could do a breadth-first search or a depth-first search. Our implementation chooses to walk the entire flooding topology, building a tree of the partitions that it detects. [IPR note: we have a IPR claim for this approach, with the “don’t sue us, we won’t sue you” terms.] I hope this helps. Regards, Tony
_______________________________________________ Lsr mailing list [email protected] https://www.ietf.org/mailman/listinfo/lsr
