A global global router. More...
#include <global-route-manager.h>
Static Public Member Functions | |
static void | PopulateRoutingTables () |
Build a routing database and initialize the routing tables of the nodes in the simulation. | |
static uint32_t | AllocateRouterId () |
Allocate a 32-bit router ID from monotonically increasing counter. | |
Private Member Functions | |
GlobalRouteManager (GlobalRouteManager &srm) | |
Global Route Manager copy construction is disallowed. There's no need for it and a compiler provided shallow copy would be wrong. | |
GlobalRouteManager & | operator= (GlobalRouteManager &srm) |
Global Router copy assignment operator is disallowed. There's no need for it and a compiler provided shallow copy would be wrong. | |
Static Private Member Functions | |
static void | SelectRouterNodes () |
Select which nodes in the system are to be router nodes and aggregate the appropriate interfaces onto those nodes. | |
static void | BuildGlobalRoutingDatabase () |
Build the routing database by gathering Link State Advertisements from each node exporting a GlobalRouter interface. | |
static void | InitializeRoutes () |
Compute routes using a Dijkstra SPF computation and populate per-node forwarding tables. |
A global global router.
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.
static void ns3::GlobalRouteManager::PopulateRoutingTables | ( | ) | [static] |
Build a routing database and initialize the routing tables of the nodes in the simulation.
All this function does is call BuildGlobalRoutingDatabase () and InitializeRoutes ().