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.