Let us consider the backup label mappings that need to be advertised before a multicast routing tree can be repaired. Consider a multicast routing tree and the mLSP that has been established for the multicast routing tree. In the following, we will refer to the label mappings that define this mLSP as ``original label mappings''. We establish two series of new mappings for the backup path as follows. First, label mappings are established on the path between and via . Second, label mappings are established on the path between and via . Therefore, backup mappings are established on all links of the backup path in both directions, and on all links of the protected path in a single direction. Consider the example network in Figure 4.8(a). We show these additional backup mappings for this network in Figure 4.8(b). With both mappings from the original mLSP and these additional mappings, two new unidirectional mLSPs are defined (Figure 4.8(c)). For instance, suppose sends a packet on the backup path using the new backup label mapping. Node forwards the packet to which forwards the packet to , still using backup label mappings. Node duplicates the packet and sends a copy to using a backup label mapping, one copy to and one copy to using original label mappings. When receives the packet, it forwards the packet to both using a backup label mapping and to using an original label mapping. Node does not forward packets that use backup label mappings and come from a link of the protected path to another link of the protected path. We will explain why when we focus on switchback.
Switchover is performed as follows: when a PSL is notified of a link failure, it forwards all the packets it receives on the backup path using the backup mapping. Suppose for instance that link fails. The PSLs and perform switchover and the backup path is merged with the original multicast routing tree, yielding a new, repaired multicast routing tree. Suppose sends a packet on the new multicast routing tree. The packet reaches nodes , , , and using original label mappings. When receives the packet, it forwards the packet on the backup path as described above, except that does not forward the packet to . We show the path followed by packets sent by after switchover in Figure 4.9.
If a second link of the protected path fails, then the PSLs are notified of the second link failure and ignore it. The repaired multicast routing tree is split into two trees and the multicast group is partitioned. We do not consider the case where only one direction of a link fails, since links are assumed to be bidirectional and a failure generally affects both directions.
Both PSLs do not perform switchover simultaneously. When a link fails, a multicast routing tree is split into two smaller subtrees and . Suppose is the subtree that contains PSL and is the subtree which contains PSL (see Figure 4.9). After the link failure and before and are notified of the failure, traffic sent by nodes from cannot reach nodes of and traffic sent by nodes from cannot reach nodes of . Suppose is notified of the failure and performs switchover before . After has performed switchover and before has performed switchover, traffic sent by nodes of can reach nodes of but conversely traffic sent by nodes of cannot reach nodes of . After both PSLs have performed switchover, no node is dropped from the multicast routing tree. Switchover consists in a change in the MPLS forwarding table of the LSRs, thus switchover is almost instantaneous. The total time to repair the tree is therefore . The order of magnitude of is a few tens of milliseconds.
We now discuss the switchback mechanism. When a node detects a link failure, it stops forwarding traffic over the failed link. When this node detects the link repair, it sends out notification messages as explained in Section 4.3 and resumes forwarding traffic over the repaired link. When a PSL is notified that a failed link is repaired, it stops forwarding traffic over the backup path. Like switchover, switchback is not performed simultaneously by both PSLs. After the link repair detection and before and are notified of the link recovery, when a node sends a packet then all other nodes receive two copies of this packet. Consider for example Figure 4.10 and suppose that nodes and have detected the repair of link and that neither nor have performed switchback. When sends a packet to the multicast group, node duplicates the packet and sends one copy to (Figure 4.10(a)) and the other copy to (Figure 4.10(b)). We now follow the path of the first copy. Node forwards it to which forwards the packet to both node and, since the repair of link has been detected, node . Node forwards the packet to , and . Node has not performed switchback thus it forwards the packet to . The packet then reaches . Node forwards the packet to , which forwards the packet to and . Node does not forward the packet coming from a link of the protected path (link ) to another link of the protected path (link ), thus the packet is not forwarded to . If the packet was forwarded to , then it would loop on the path formed by the protected and the backup paths. Now consider the second copy of the packet made by after receives the packet from . Node forwards the packet to which forwards the packet over the backup path to via . Node sends the packet to which forwards the packet to and . Since the repair of link has been detected, also sends the packet to , forwards the packet to and . Node does not forward the packet to and breaks the loop. Therefore, during this transient period, all nodes receive duplicate copies of all packets. When only one PSL, for instance , has performed switchback then traffic from nodes of is delivered twice to the nodes of and only once to the nodes of , and traffic from nodes of is delivered twice to the nodes of and only once to the nodes of . When the second PSL performs switchback then no node is forwarded on the backup path anymore and traffic is forwarded on the original mLSP as before the link failure.
We define the time to switch traffic back on the original tree as the time between the instant at which the failed link is repaired and the instant at which both PSLs have performed switchback. Therefore . During the time , certain links must carry twice the same data, possibly leading to congestion. If the traffic that uses the mLSP before switchback represents less than 50% of the capacity of the links that is allocated to the mLSP then no congestion will occur and nodes will simply receive the same packets twice. It is up to the application layer to drop the redundant packets. On the other hand if traffic that flows on the mLSP before switchback represents more than 50% of the capacity of the links that is allocated to the mLSP then the mLSP will be congested and packets will be dropped. However, since the time during which congestion may occur is smaller than the interruption of service due to link failure. Moreover congestion that may be caused by switchback is very limited in time (a few milliseconds) and therefore does not prevent the network from functioning properly.
In this chapter, we have exposed the principles of MPLS multicast Fast Reroute. Implementing this mechanism requires the ability to advertise a mLSP and the backup path mappings. Second, the probing and notification mechanisms must be implemented. Finally, nodes must perform switchover or switchback when they are notified to. In the next chapter, we present an implementation of all these mechanisms.