#include <global-route-manager.h>
Static Public Member Functions | |
static void | PopulateRoutingTables () NS_DEPRECATED |
Build a routing database and initialize the routing tables of the nodes in the simulation. Makes all nodes in the simulation into routers. | |
static void | RecomputeRoutingTables () NS_DEPRECATED |
Remove all routes that were previously installed in a prior call to either PopulateRoutingTables() or RecomputeRoutingTables(), and add a new set of routes. | |
static uint32_t | AllocateRouterId () |
Allocate a 32-bit router ID from monotonically increasing counter. | |
static void | DeleteGlobalRoutes () |
Delete all static routes on all nodes that have a GlobalRouterInterface. | |
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. | |
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. |
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. Makes all nodes in the simulation into routers.
All this function does is call the functions BuildGlobalRoutingDatabase () and InitializeRoutes ().
InitializeRoutes ();
static void ns3::GlobalRouteManager::RecomputeRoutingTables | ( | ) | [static] |
Remove all routes that were previously installed in a prior call to either PopulateRoutingTables() or RecomputeRoutingTables(), and add a new set of routes.
This method does not change the set of nodes over which GlobalRouting is being used, but it will dynamically update its representation of the global topology before recomputing routes. Users must first call PopulateRoutingTables() and then may subsequently call RecomputeRoutingTables() at any later time in the simulation.
BuildGlobalRoutingDatabase ();
InitializeRoutes ();