A Discrete-Event Network Simulator
API
ns3::GlobalRouteManager Class Reference

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. More...
 
static void BuildGlobalRoutingDatabase ()
 Build the routing database by gathering Link State Advertisements from each node exporting a GlobalRouter interface. More...
 
static void DeleteGlobalRoutes ()
 Delete all static routes on all nodes that have a GlobalRouterInterface. More...
 
static void InitializeRoutes ()
 Compute routes using a Dijkstra SPF computation and populate per-node forwarding tables. More...
 

Private Member Functions

 GlobalRouteManager (GlobalRouteManager &srm)
 Global Route Manager copy construction is disallowed. More...
 
GlobalRouteManageroperator= (GlobalRouteManager &srm)
 Global Router copy assignment operator is disallowed. More...
 

Detailed Description

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.

Definition at line 40 of file global-route-manager.h.

Constructor & Destructor Documentation

◆ GlobalRouteManager()

ns3::GlobalRouteManager::GlobalRouteManager ( GlobalRouteManager srm)
private

Global Route Manager copy construction is disallowed.

There's no need for it and a compiler provided shallow copy would be wrong.

Parameters
srmobject to copy from

Member Function Documentation

◆ AllocateRouterId()

uint32_t ns3::GlobalRouteManager::AllocateRouterId ( void  )
static

Allocate a 32-bit router ID from monotonically increasing counter.

Returns
A new new RouterId.

Definition at line 62 of file global-route-manager.cc.

References NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::GlobalRouter::GlobalRouter().

+ Here is the caller graph for this function:

◆ BuildGlobalRoutingDatabase()

void ns3::GlobalRouteManager::BuildGlobalRoutingDatabase ( void  )
static

Build the routing database by gathering Link State Advertisements from each node exporting a GlobalRouter interface.

Definition at line 46 of file global-route-manager.cc.

References ns3::SimulationSingleton< T >::Get(), and NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::Ipv4GlobalRouting::NotifyAddAddress(), ns3::Ipv4GlobalRouting::NotifyInterfaceDown(), ns3::Ipv4GlobalRouting::NotifyInterfaceUp(), ns3::Ipv4GlobalRouting::NotifyRemoveAddress(), ns3::Ipv4GlobalRoutingHelper::PopulateRoutingTables(), and ns3::Ipv4GlobalRoutingHelper::RecomputeRoutingTables().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DeleteGlobalRoutes()

void ns3::GlobalRouteManager::DeleteGlobalRoutes ( )
static

Delete all static routes on all nodes that have a GlobalRouterInterface.

Definition at line 38 of file global-route-manager.cc.

References ns3::SimulationSingleton< T >::Get(), and NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::Ipv4GlobalRouting::NotifyAddAddress(), ns3::Ipv4GlobalRouting::NotifyInterfaceDown(), ns3::Ipv4GlobalRouting::NotifyInterfaceUp(), ns3::Ipv4GlobalRouting::NotifyRemoveAddress(), and ns3::Ipv4GlobalRoutingHelper::RecomputeRoutingTables().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ InitializeRoutes()

void ns3::GlobalRouteManager::InitializeRoutes ( void  )
static

Compute routes using a Dijkstra SPF computation and populate per-node forwarding tables.

Definition at line 54 of file global-route-manager.cc.

References ns3::SimulationSingleton< T >::Get(), and NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::Ipv4GlobalRouting::NotifyAddAddress(), ns3::Ipv4GlobalRouting::NotifyInterfaceDown(), ns3::Ipv4GlobalRouting::NotifyInterfaceUp(), ns3::Ipv4GlobalRouting::NotifyRemoveAddress(), ns3::Ipv4GlobalRoutingHelper::PopulateRoutingTables(), and ns3::Ipv4GlobalRoutingHelper::RecomputeRoutingTables().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator=()

GlobalRouteManager& ns3::GlobalRouteManager::operator= ( GlobalRouteManager srm)
private

Global Router copy assignment operator is disallowed.

There's no need for it and a compiler provided shallow copy would be wrong.

Parameters
srmobject to copy from
Returns
the copied object

The documentation for this class was generated from the following files: