#include <global-route-manager-impl.h>
Public Member Functions | |
GlobalRouteManagerLSDB () | |
Construct an empty Global Router Manager Link State Database. | |
~GlobalRouteManagerLSDB () | |
Destroy an empty Global Router Manager Link State Database. | |
void | Insert (Ipv4Address addr, GlobalRoutingLSA *lsa) |
Insert an IP address / Link State Advertisement pair into the Link State Database. | |
GlobalRoutingLSA * | GetLSA (Ipv4Address addr) const |
Look up the Link State Advertisement associated with the given link state ID (address). | |
GlobalRoutingLSA * | GetLSAByLinkData (Ipv4Address addr) const |
Look up the Link State Advertisement associated with the given link state ID (address). This is a variation of the GetLSA call to allow the LSA to be found by matching addr with the LinkData field of the TransitNetwork link record. | |
void | Initialize () |
Set all LSA flags to an initialized state, for SPF computation. | |
Private Member Functions | |
GlobalRouteManagerLSDB (GlobalRouteManagerLSDB &lsdb) | |
GlobalRouteManagerLSDB copy construction is disallowed. There's no need for it and a compiler provided shallow copy would be wrong. | |
GlobalRouteManagerLSDB & | operator= (GlobalRouteManagerLSDB &lsdb) |
The SPFVertex copy assignment operator is disallowed. There's no need for it and a compiler provided shallow copy would be wrong. |
Each node in the simulation participating in global routing has a GlobalRouter interface. The primary job of this interface is to export Global Router Link State Advertisements (LSAs). These advertisements in turn contain a number of Global Router Link Records that describe the point to point links from the underlying node to other nodes (that will also export their own LSAs.
This class implements a searchable database of LSAs gathered from every router in the simulation.