a Link State Advertisement (LSA) for a router, used in global routing. More...
#include <global-router-interface.h>

Public Types | |
| enum | LSType { Unknown = 0, RouterLSA, NetworkLSA, SummaryLSA, SummaryLSA_ASBR, ASExternalLSAs } |
corresponds to LS type field of RFC 2328 OSPF LSA header More... | |
| enum | SPFStatus { LSA_SPF_NOT_EXPLORED = 0, LSA_SPF_CANDIDATE, LSA_SPF_IN_SPFTREE } |
Enumeration of the possible values of the status flag in the Routing Link State Advertisements. More... | |
Public Member Functions | |
| GlobalRoutingLSA () | |
| Create a blank Global Routing Link State Advertisement. | |
| GlobalRoutingLSA (SPFStatus status, Ipv4Address linkStateId, Ipv4Address advertisingRtr) | |
| Create an initialized Global Routing Link State Advertisement. | |
| GlobalRoutingLSA (GlobalRoutingLSA &lsa) | |
| Copy constructor for a Global Routing Link State Advertisement. | |
| ~GlobalRoutingLSA () | |
| Destroy an existing Global Routing Link State Advertisement. | |
| GlobalRoutingLSA & | operator= (const GlobalRoutingLSA &lsa) |
| Assignment operator for a Global Routing Link State Advertisement. | |
| void | CopyLinkRecords (const GlobalRoutingLSA &lsa) |
| Copy any Global Routing Link Records in a given Global Routing Link State Advertisement to the current LSA. | |
| uint32_t | AddLinkRecord (GlobalRoutingLinkRecord *lr) |
| Add a given Global Routing Link Record to the LSA. | |
| uint32_t | GetNLinkRecords (void) const |
| Return the number of Global Routing Link Records in the LSA. | |
| GlobalRoutingLinkRecord * | GetLinkRecord (uint32_t n) const |
| Return a pointer to the specified Global Routing Link Record. | |
| void | ClearLinkRecords (void) |
| Release all of the Global Routing Link Records present in the Global Routing Link State Advertisement and make the list of link records empty. | |
| bool | IsEmpty (void) const |
| Check to see if the list of Global Routing Link Records present in the Global Routing Link State Advertisement is empty. | |
| void | Print (std::ostream &os) const |
| Print the contents of the Global Routing Link State Advertisement and any Global Routing Link Records present in the list. Quite verbose. | |
| LSType | GetLSType (void) const |
| Return the LSType field of the LSA. | |
| void | SetLSType (LSType typ) |
| Set the LS type field of the LSA. | |
| Ipv4Address | GetLinkStateId (void) const |
| Get the Link State ID as defined by the OSPF spec. We always set it to the router ID of the router making the advertisement. | |
| void | SetLinkStateId (Ipv4Address addr) |
| Set the Link State ID is defined by the OSPF spec. We always set it to the router ID of the router making the advertisement. | |
| Ipv4Address | GetAdvertisingRouter (void) const |
| Get the Advertising Router as defined by the OSPF spec. We always set it to the router ID of the router making the advertisement. | |
| void | SetAdvertisingRouter (Ipv4Address rtr) |
| Set the Advertising Router as defined by the OSPF spec. We always set it to the router ID of the router making the advertisement. | |
| void | SetNetworkLSANetworkMask (Ipv4Mask mask) |
| For a Network LSA, set the Network Mask field that precedes the list of attached routers. | |
| Ipv4Mask | GetNetworkLSANetworkMask (void) const |
| For a Network LSA, get the Network Mask field that precedes the list of attached routers. | |
| uint32_t | AddAttachedRouter (Ipv4Address addr) |
| Add an attached router to the list in the NetworkLSA. | |
| uint32_t | GetNAttachedRouters (void) const |
| Return the number of attached routers listed in the NetworkLSA. | |
| Ipv4Address | GetAttachedRouter (uint32_t n) const |
| Return an Ipv4Address corresponding to the specified attached router. | |
| SPFStatus | GetStatus (void) const |
| Get the SPF status of the advertisement. | |
| void | SetStatus (SPFStatus status) |
| Set the SPF status of the advertisement. | |
| Ptr< Node > | GetNode (void) const |
| Get the Node pointer of the node that originated this LSA. | |
| void | SetNode (Ptr< Node > node) |
| Set the Node pointer of the node that originated this LSA. | |
a Link State Advertisement (LSA) for a router, used in global routing.
Roughly equivalent to a global incarnation of the OSPF link state header combined with a list of Link Records. Since it's global, there's no need for age or sequence number. See RFC 2328, Appendix A.
| ns3::GlobalRoutingLSA::GlobalRoutingLSA | ( | ) |
Create a blank Global Routing Link State Advertisement.
On completion Ipv4Address variables initialized to 0.0.0.0 and the list of Link State Records is empty.
| ns3::GlobalRoutingLSA::GlobalRoutingLSA | ( | SPFStatus | status, | |
| Ipv4Address | linkStateId, | |||
| Ipv4Address | advertisingRtr | |||
| ) |
Create an initialized Global Routing Link State Advertisement.
On completion the list of Link State Records is empty.
| status | The status to of the new LSA. | |
| linkStateId | The Ipv4Address for the link state ID field. | |
| advertisingRtr | The Ipv4Address for the advertising router field. |
| ns3::GlobalRoutingLSA::GlobalRoutingLSA | ( | GlobalRoutingLSA & | lsa | ) |
Copy constructor for a Global Routing Link State Advertisement.
Takes a piece of memory and constructs a semantically identical copy of the given LSA.
| lsa | The existing LSA to be used as the source. |
| ns3::GlobalRoutingLSA::~GlobalRoutingLSA | ( | ) |
Destroy an existing Global Routing Link State Advertisement.
Any Global Routing Link Records present in the list are freed.
| uint32_t ns3::GlobalRoutingLSA::AddAttachedRouter | ( | Ipv4Address | addr | ) |
Add an attached router to the list in the NetworkLSA.
| addr | The Ipv4Address of the interface on the network link |
| uint32_t ns3::GlobalRoutingLSA::AddLinkRecord | ( | GlobalRoutingLinkRecord * | lr | ) |
Add a given Global Routing Link Record to the LSA.
| lr | The Global Routing Link Record to be added. |
| void ns3::GlobalRoutingLSA::CopyLinkRecords | ( | const GlobalRoutingLSA & | lsa | ) |
Copy any Global Routing Link Records in a given Global Routing Link State Advertisement to the current LSA.
Existing Link Records are not deleted -- this is a concatenation of Link Records.
| lsa | The LSA to copy the Link Records from. |
| Ipv4Address ns3::GlobalRoutingLSA::GetAdvertisingRouter | ( | void | ) | const |
Get the Advertising Router as defined by the OSPF spec. We always set it to the router ID of the router making the advertisement.
| Ipv4Address ns3::GlobalRoutingLSA::GetAttachedRouter | ( | uint32_t | n | ) | const |
Return an Ipv4Address corresponding to the specified attached router.
| n | The attached router number desired (number in the list). |
| GlobalRoutingLinkRecord* ns3::GlobalRoutingLSA::GetLinkRecord | ( | uint32_t | n | ) | const |
Return a pointer to the specified Global Routing Link Record.
| n | The LSA number desired. |
| Ipv4Address ns3::GlobalRoutingLSA::GetLinkStateId | ( | void | ) | const |
Get the Link State ID as defined by the OSPF spec. We always set it to the router ID of the router making the advertisement.
| uint32_t ns3::GlobalRoutingLSA::GetNAttachedRouters | ( | void | ) | const |
Return the number of attached routers listed in the NetworkLSA.
| Ipv4Mask ns3::GlobalRoutingLSA::GetNetworkLSANetworkMask | ( | void | ) | const |
For a Network LSA, get the Network Mask field that precedes the list of attached routers.
| uint32_t ns3::GlobalRoutingLSA::GetNLinkRecords | ( | void | ) | const |
Return the number of Global Routing Link Records in the LSA.
| SPFStatus ns3::GlobalRoutingLSA::GetStatus | ( | void | ) | const |
| bool ns3::GlobalRoutingLSA::IsEmpty | ( | void | ) | const |
| GlobalRoutingLSA& ns3::GlobalRoutingLSA::operator= | ( | const GlobalRoutingLSA & | lsa | ) |
Assignment operator for a Global Routing Link State Advertisement.
Takes an existing Global Routing Link State Advertisement and overwrites it to make a semantically identical copy of a given prototype LSA.
If there are any Global Routing Link Records present in the existing LSA, they are freed before the assignment happens.
| lsa | The existing LSA to be used as the source. |
| void ns3::GlobalRoutingLSA::SetAdvertisingRouter | ( | Ipv4Address | rtr | ) |
Set the Advertising Router as defined by the OSPF spec. We always set it to the router ID of the router making the advertisement.
| rtr | ID of the router making advertisement |
| void ns3::GlobalRoutingLSA::SetLinkStateId | ( | Ipv4Address | addr | ) |
Set the Link State ID is defined by the OSPF spec. We always set it to the router ID of the router making the advertisement.
| addr | IPv4 address which will act as ID |
| void ns3::GlobalRoutingLSA::SetStatus | ( | SPFStatus | status | ) |
1.6.1