#include <global-route-manager-impl.h>
Public Member Functions | |
virtual void | DeleteGlobalRoutes () |
Delete all static routes on all nodes that have a GlobalRouterInterface. | |
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. |
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.
virtual void ns3::GlobalRouteManagerImpl::DeleteGlobalRoutes | ( | ) | [virtual] |
Delete all static routes on all nodes that have a GlobalRouterInterface.
TODO: separate manually assigned static routes from static routes that the global routing code injects, and only delete the latter