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 ().
1.7.1