The resulting traffic volume on that path may cause congestion, while another is underloaded. To maximize the performance of the overall network, it may be desirable to shift some fraction of traffic from one link to another. Explicitly routed paths, implemented using MPLS, can be used as a more straightforward and flexible way of addressing this problem, allowing some fraction of the traffic on a congested path to be moved to a less congested path. The solution to the traffic engineering problem relies on the fact that labels and label-switched paths can be established by a variety of different control modules, as discussed earlier. By defining policies that select certain packets to follow these paths, traffic flow across the network can be managed.
Control messages flow down the path, setting up the necessary label-forwarding information along it.
The operator also specifies a policy in terms of a predicate that packets must match if they are to use the explicit path. It is possible to bind multiple predicates to a single explicit path and for many explicit paths to originate at the same router. This form of traffic engineering requires considerable network operator intervention. In later releases of MPLS, establishment of traffic engineering policies will be implemented with constraint-based routing. IP and ATM Integration MPLS enables an ATM switch to perform virtually all of the functions of an IP router.