#include <global-router-interface.h>
Public Member Functions | |
GlobalRouter () | |
Create a Global Router class. | |
Ipv4Address | GetRouterId (void) const |
Get the Router ID associated with this Global Router. | |
uint32_t | DiscoverLSAs (void) |
Walk the connected channels, discover the adjacent routers and build the associated number of Global Routing Link State Advertisements that this router can export. | |
uint32_t | GetNumLSAs (void) const |
Get the Number of Global Routing Link State Advertisements that this router can export. | |
bool | GetLSA (uint32_t n, GlobalRoutingLSA &lsa) const |
Get a Global Routing Link State Advertisements that this router has said that it can export. | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
The Interface ID of the Global Router interface. | |
Private Member Functions | |
virtual void | DoDispose (void) |
GlobalRouter (GlobalRouter &sr) | |
Global Router copy construction is disallowed. | |
GlobalRouter & | operator= (GlobalRouter &sr) |
Global Router assignment operator is disallowed. |
An interface aggregated to a node that provides global routing information to a global route manager. The presence of the interface indicates that the node is a router. The interface is the mechanism by which the router advertises its connections to neighboring routers. We're basically allowing the route manager to query for link state advertisements.
uint32_t ns3::GlobalRouter::DiscoverLSAs | ( | void | ) |
Walk the connected channels, discover the adjacent routers and build the associated number of Global Routing Link State Advertisements that this router can export.
This is a fairly expensive operation in that every time it is called the current list of LSAs is built by walking connected point-to-point channels and peeking into adjacent IPV4 stacks to get address information. This is done to allow for limited dymanics of the Global Routing environment. By that we mean that you can discover new link state advertisements after a network topology change by calling DiscoverLSAs and then by reading those advertisements.
virtual void ns3::GlobalRouter::DoDispose | ( | void | ) | [private, virtual] |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.
Reimplemented from ns3::Object.
bool ns3::GlobalRouter::GetLSA | ( | uint32_t | n, | |
GlobalRoutingLSA & | lsa | |||
) | const |
Get a Global Routing Link State Advertisements that this router has said that it can export.
This is a fairly inexpensive expensive operation in that the hard work was done in GetNumLSAs. We just copy the indicated Global Routing Link State Advertisement into the requested GlobalRoutingLSA object.
You must call GlobalRouter::GetNumLSAs before calling this method in order to discover the adjacent routers and build the advertisements. GetNumLSAs will return the number of LSAs this router advertises. The parameter n (requested LSA number) must be in the range 0 to GetNumLSAs() - 1.
GlobalRouting::GetNumLSAs ()
n | The index number of the LSA you want to read. | |
lsa | The GlobalRoutingLSA class to receive the LSA information. |
uint32_t ns3::GlobalRouter::GetNumLSAs | ( | void | ) | const |
Get the Number of Global Routing Link State Advertisements that this router can export.
To get meaningful information you must have previously called DiscoverLSAs. After you know how many LSAs are present in the router, you may call GetLSA () to retrieve the actual advertisement.
GlobalRouting::DiscoverLSAs ()
GlobalRouting::GetLSA ()
Ipv4Address ns3::GlobalRouter::GetRouterId | ( | void | ) | const |
Get the Router ID associated with this Global Router.
The Router IDs are allocated in the RoutingEnvironment -- one per Router, starting at 0.0.0.1 and incrementing with each instantiation of a router.
static TypeId ns3::GlobalRouter::GetTypeId | ( | void | ) | [static] |
The Interface ID of the Global Router interface.
This method returns the TypeId associated to ns3::GlobalRouter.
Reimplemented from ns3::Object.