The DUAL Finite-State Machine Engine contains all the logic used to calculate and compare EIGRP routes in an internetwork. DUAL tracks all routes advertised by neighbors and uses the composite metric of each route to compare them. Selected route paths must be both loop-free and have the lowest cost. These route paths then are inserted into the routing table by the DUAL engine.
Routes selected for routing table insertion also are evaluated by the feasible successor process, as described for use by IGRP. Feasible successors are routes to a destination where the neighbor router is the next hop in a least-cost path.
The DUAL finite-state machine embodies the decision process for all route computations by tracking all routes advertised by all neighbors. DUAL uses distance information to select efficient, loop-free paths and selects routes for insertion in a routing table based on feasible successors.
As noted previously, a feasible successor is a neighboring router used for packet forwarding that is a least-cost path to a destination that is guaranteed not to be part of a routing loop. When a routing neighbor changes a metric or a topology change occurs, DUAL tests for feasible successors. If a successor is found, DUAL uses feasible successors to avoid unnecessarily recomputing the route. When no feasible successors exist but neighbors still advertise the destination, the router performs a recomputation (also known as a diffusing computation) to determine a new successor.