A global router implementation. More...
#include <global-route-manager-impl.h>

Public Member Functions | |
| virtual void | SelectRouterNodes () | 
| Select which nodes in the system are to be router nodes and aggregate the appropriate interfaces onto those nodes.  | |
| virtual void | BuildGlobalRoutingDatabase () | 
| Build the routing database by gathering Link State Advertisements from each node exporting a GlobalRouter interface.  | |
| virtual void | InitializeRoutes () | 
| Compute routes using a Dijkstra SPF computation and populate per-node forwarding tables.  | |
| void | DebugUseLsdb (GlobalRouteManagerLSDB *) | 
| Debugging routine; allow client code to supply a pre-built LSDB.  | |
| void | DebugSPFCalculate (Ipv4Address root) | 
| Debugging routine; call the core SPF from the unit tests.  | |
Private Member Functions | |
| GlobalRouteManagerImpl (GlobalRouteManagerImpl &srmi) | |
| GlobalRouteManagerImpl copy construction is disallowed. There's no need for it and a compiler provided shallow copy would be wrong.  | |
| GlobalRouteManagerImpl & | operator= (GlobalRouteManagerImpl &srmi) | 
| Global Route Manager Implementation assignment operator is disallowed. There's no need for it and a compiler provided shallow copy would be hopelessly wrong.  | |
A global router implementation.
This singleton object can query interface each node in the system for a GlobalRouter interface. For those nodes, it fetches one or more Link State Advertisements and stores them in a local database. Then, it can compute shortest paths on a per-node basis to all routers, and finally configure each of the node's forwarding tables.
The design is guided by OSPFv2 RFC 2328 section 16.1.1 and quagga ospfd.
 1.7.1