A global global router. More...
#include <global-route-manager.h>
Static Public Member Functions | |
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. |
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.