doxygen update (@internal)
This commit is contained in:
@@ -43,94 +43,117 @@ namespace ns3 {
|
||||
class CandidateQueue
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Create an empty SPF Candidate Queue.
|
||||
*
|
||||
* @see SPFVertex
|
||||
*/
|
||||
/**
|
||||
* @brief Create an empty SPF Candidate Queue.
|
||||
* @internal
|
||||
*
|
||||
* @see SPFVertex
|
||||
*/
|
||||
CandidateQueue ();
|
||||
/**
|
||||
* Destroy an SPF Candidate Queue and release any resources held by the
|
||||
* contents.
|
||||
*
|
||||
* @see SPFVertex
|
||||
*/
|
||||
|
||||
/**
|
||||
* @internal Destroy an SPF Candidate Queue and release any resources held
|
||||
* by the contents.
|
||||
* @internal
|
||||
*
|
||||
* @see SPFVertex
|
||||
*/
|
||||
virtual ~CandidateQueue ();
|
||||
/**
|
||||
* Empty the Candidate Queue and release all of the resources associated
|
||||
* with the Shortest Path First Vertex pointers in the queue.
|
||||
*
|
||||
* @see SPFVertex
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Empty the Candidate Queue and release all of the resources
|
||||
* associated with the Shortest Path First Vertex pointers in the queue.
|
||||
* @internal
|
||||
*
|
||||
* @see SPFVertex
|
||||
*/
|
||||
void Clear (void);
|
||||
/**
|
||||
* Push a Shortest Path First Vertex pointer onto the queue according to the
|
||||
* priority scheme.
|
||||
*
|
||||
* On completion, the top of the queue will hold the Shortest Path First
|
||||
* Vertex pointer that points to a vertex having lowest value of the field
|
||||
* m_distanceFromRoot. Remaining vertices are ordered according to
|
||||
* increasing distance.
|
||||
*
|
||||
* @see SPFVertex
|
||||
* @param vNew The Shortest Path First Vertex to add to the queue.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Push a Shortest Path First Vertex pointer onto the queue according
|
||||
* to the priority scheme.
|
||||
* @internal
|
||||
*
|
||||
* On completion, the top of the queue will hold the Shortest Path First
|
||||
* Vertex pointer that points to a vertex having lowest value of the field
|
||||
* m_distanceFromRoot. Remaining vertices are ordered according to
|
||||
* increasing distance.
|
||||
*
|
||||
* @see SPFVertex
|
||||
* @param vNew The Shortest Path First Vertex to add to the queue.
|
||||
*/
|
||||
void Push (SPFVertex *vNew);
|
||||
/**
|
||||
* Pop the Shortest Path First Vertex pointer at the top of the queue.
|
||||
* The caller is given the responsiblity for releasing the resources
|
||||
* associated with the vertex.
|
||||
*
|
||||
* @see SPFVertex
|
||||
* @see Top ()
|
||||
* @returns The Shortest Path First Vertex pointer at the top of the queue.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Pop the Shortest Path First Vertex pointer at the top of the queue.
|
||||
* @internal
|
||||
*
|
||||
* The caller is given the responsiblity for releasing the resources
|
||||
* associated with the vertex.
|
||||
*
|
||||
* @see SPFVertex
|
||||
* @see Top ()
|
||||
* @returns The Shortest Path First Vertex pointer at the top of the queue.
|
||||
*/
|
||||
SPFVertex* Pop (void);
|
||||
/**
|
||||
* Return the Shortest Path First Vertex pointer at the top of the queue.
|
||||
* This method does not pop the SPFVertex* off of the queue, it simply
|
||||
* returns the pointer.
|
||||
*
|
||||
* @see SPFVertex
|
||||
* @see Pop ()
|
||||
* @returns The Shortest Path First Vertex pointer at the top of the queue.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Return the Shortest Path First Vertex pointer at the top of the
|
||||
* queue.
|
||||
* @internal
|
||||
*
|
||||
* This method does not pop the SPFVertex* off of the queue, it simply
|
||||
* returns the pointer.
|
||||
*
|
||||
* @see SPFVertex
|
||||
* @see Pop ()
|
||||
* @returns The Shortest Path First Vertex pointer at the top of the queue.
|
||||
*/
|
||||
SPFVertex* Top (void) const;
|
||||
/**
|
||||
* Test the Candidate Queue to determine if it is empty.
|
||||
*
|
||||
* @returns True if the queue is empty, false otherwise.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Test the Candidate Queue to determine if it is empty.
|
||||
* @internal
|
||||
*
|
||||
* @returns True if the queue is empty, false otherwise.
|
||||
*/
|
||||
bool Empty (void) const;
|
||||
/**
|
||||
* Return the number of Shortest Path First Vertex pointers presently
|
||||
* stored in the Candidate Queue.
|
||||
*
|
||||
* @see SPFVertex
|
||||
* @returns The number of SPFVertex* pointers in the Candidate Queue.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Return the number of Shortest Path First Vertex pointers presently
|
||||
* stored in the Candidate Queue.
|
||||
* @internal
|
||||
*
|
||||
* @see SPFVertex
|
||||
* @returns The number of SPFVertex* pointers in the Candidate Queue.
|
||||
*/
|
||||
uint32_t Size (void) const;
|
||||
/**
|
||||
* Searches the Candidate Queue for a Shortest Path First Vertex pointer
|
||||
* that points to a vertex having the given IP address.
|
||||
*
|
||||
* @see SPFVertex
|
||||
* @param addr The IP address to search for.
|
||||
* @returns The SPFVertex* pointer corresponding to the given IP address.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Searches the Candidate Queue for a Shortest Path First Vertex
|
||||
* pointer that points to a vertex having the given IP address.
|
||||
* @internal
|
||||
*
|
||||
* @see SPFVertex
|
||||
* @param addr The IP address to search for.
|
||||
* @returns The SPFVertex* pointer corresponding to the given IP address.
|
||||
*/
|
||||
SPFVertex* Find (const Ipv4Address addr) const;
|
||||
/**
|
||||
* Reorders the Candidate Queue according to the priority scheme. On
|
||||
* completion, the top of the queue will hold the Shortest Path First
|
||||
* Vertex pointer that points to a vertex having lowest value of the field
|
||||
* m_distanceFromRoot. Remaining vertices are ordered according to
|
||||
* increasing distance.
|
||||
*
|
||||
* This method is provided in case the values of m_distanceFromRoot change
|
||||
* during the routing calculations.
|
||||
*
|
||||
* @see SPFVertex
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Reorders the Candidate Queue according to the priority scheme.
|
||||
* @internal
|
||||
*
|
||||
* On completion, the top of the queue will hold the Shortest Path First
|
||||
* Vertex pointer that points to a vertex having lowest value of the field
|
||||
* m_distanceFromRoot. Remaining vertices are ordered according to
|
||||
* increasing distance.
|
||||
*
|
||||
* This method is provided in case the values of m_distanceFromRoot change
|
||||
* during the routing calculations.
|
||||
*
|
||||
* @see SPFVertex
|
||||
*/
|
||||
void Reorder (void);
|
||||
|
||||
protected:
|
||||
@@ -138,17 +161,18 @@ protected:
|
||||
CandidateList_t m_candidates;
|
||||
|
||||
private:
|
||||
/**
|
||||
* Candidate Queue copy construction is disallowed (not implemented) to
|
||||
* prevent the compiler from slipping in incorrect versions that don't
|
||||
* properly deal with deep copies.
|
||||
*/
|
||||
/**
|
||||
* Candidate Queue copy construction is disallowed (not implemented) to
|
||||
* prevent the compiler from slipping in incorrect versions that don't
|
||||
* properly deal with deep copies.
|
||||
*/
|
||||
CandidateQueue (CandidateQueue& sr);
|
||||
/**
|
||||
* Candidate Queue assignment operator is disallowed (not implemented) to
|
||||
* prevent the compiler from slipping in incorrect versions that don't
|
||||
* properly deal with deep copies.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Candidate Queue assignment operator is disallowed (not implemented) to
|
||||
* prevent the compiler from slipping in incorrect versions that don't
|
||||
* properly deal with deep copies.
|
||||
*/
|
||||
CandidateQueue& operator= (CandidateQueue& sr);
|
||||
};
|
||||
|
||||
|
||||
@@ -61,6 +61,7 @@ class SPFVertex
|
||||
public:
|
||||
/**
|
||||
* @brief Enumeration of the possible types of SPFVertex objects.
|
||||
* @internal
|
||||
*
|
||||
* Currently we use VertexRouter to identify objects that represent a router
|
||||
* in the simulation topology, and VertexNetwork to identify objects that
|
||||
@@ -75,6 +76,7 @@ public:
|
||||
/**
|
||||
* @brief Construct an empty ("uninitialized") SPFVertex (Shortest Path First
|
||||
* Vertex).
|
||||
* @internal
|
||||
*
|
||||
* The Vertex Type is set to VertexUnknown, the Vertex ID is set to
|
||||
* 255.255.255.255, and the distance from root is set to infinity
|
||||
@@ -89,6 +91,7 @@ public:
|
||||
|
||||
/**
|
||||
* @brief Construct an initialized SPFVertex (Shortest Path First Vertex).
|
||||
* @internal
|
||||
*
|
||||
* The Vertex Type is initialized to VertexRouter and the Vertex ID is found
|
||||
* from the Link State ID of the Link State Advertisement (LSA) passed as a
|
||||
@@ -106,6 +109,7 @@ public:
|
||||
|
||||
/**
|
||||
* @brief Destroy an SPFVertex (Shortest Path First Vertex).
|
||||
* @internal
|
||||
*
|
||||
* The children vertices of the SPFVertex are recursively deleted.
|
||||
*
|
||||
@@ -115,6 +119,7 @@ public:
|
||||
|
||||
/**
|
||||
* @brief Get the Vertex Type field of a SPFVertex object.
|
||||
* @internal
|
||||
*
|
||||
* The Vertex Type describes the kind of simulation object a given SPFVertex
|
||||
* represents.
|
||||
@@ -126,6 +131,7 @@ public:
|
||||
|
||||
/**
|
||||
* @brief Set the Vertex Type field of a SPFVertex object.
|
||||
* @internal
|
||||
*
|
||||
* The Vertex Type describes the kind of simulation object a given SPFVertex
|
||||
* represents.
|
||||
@@ -137,6 +143,7 @@ public:
|
||||
|
||||
/**
|
||||
* @brief Get the Vertex ID field of a SPFVertex object.
|
||||
* @internal
|
||||
*
|
||||
* The Vertex ID uniquely identifies the simulation object a given SPFVertex
|
||||
* represents. Typically, this is the Router ID for SPFVertex objects
|
||||
@@ -152,6 +159,7 @@ public:
|
||||
|
||||
/**
|
||||
* @brief Set the Vertex ID field of a SPFVertex object.
|
||||
* @internal
|
||||
*
|
||||
* The Vertex ID uniquely identifies the simulation object a given SPFVertex
|
||||
* represents. Typically, this is the Router ID for SPFVertex objects
|
||||
@@ -170,6 +178,7 @@ public:
|
||||
* @brief Get the Global Router Link State Advertisement returned by the
|
||||
* Global Router represented by this SPFVertex during the route discovery
|
||||
* process.
|
||||
* @internal
|
||||
*
|
||||
* @see GlobalRouter
|
||||
* @see GlobalRouterLSA
|
||||
@@ -183,6 +192,7 @@ public:
|
||||
* @brief Set the Global Router Link State Advertisement returned by the
|
||||
* Global Router represented by this SPFVertex during the route discovery
|
||||
* process.
|
||||
* @internal
|
||||
*
|
||||
* @see SPFVertex::GetLSA ()
|
||||
* @see GlobalRouter
|
||||
@@ -196,6 +206,7 @@ public:
|
||||
|
||||
/**
|
||||
* @brief Get the distance from the root vertex to "this" SPFVertex object.
|
||||
* @internal
|
||||
*
|
||||
* Each router in the simulation is associated with an SPFVertex object. When
|
||||
* calculating routes, each of these routers is, in turn, chosen as the "root"
|
||||
@@ -218,6 +229,7 @@ public:
|
||||
|
||||
/**
|
||||
* @brief Set the distance from the root vertex to "this" SPFVertex object.
|
||||
* @internal
|
||||
*
|
||||
* Each router in the simulation is associated with an SPFVertex object. When
|
||||
* calculating routes, each of these routers is, in turn, chosen as the "root"
|
||||
@@ -239,6 +251,7 @@ public:
|
||||
/**
|
||||
* @brief Get the interface ID that should be used to begin forwarding packets
|
||||
* from the root SPFVertex to "this" SPFVertex.
|
||||
* @internal
|
||||
*
|
||||
* Each router node in the simulation is associated with an SPFVertex object.
|
||||
* When calculating routes, each of these routers is, in turn, chosen as the
|
||||
@@ -280,6 +293,7 @@ public:
|
||||
/**
|
||||
* @brief Set the interface ID that should be used to begin forwarding packets
|
||||
* from the root SPFVertex to "this" SPFVertex.
|
||||
* @internal
|
||||
*
|
||||
* Each router node in the simulation is associated with an SPFVertex object.
|
||||
* When calculating routes, each of these routers is, in turn, chosen as the
|
||||
@@ -321,6 +335,7 @@ public:
|
||||
/**
|
||||
* @brief Get the IP address that should be used to begin forwarding packets
|
||||
* from the root SPFVertex to "this" SPFVertex.
|
||||
* @internal
|
||||
*
|
||||
* Each router node in the simulation is associated with an SPFVertex object.
|
||||
* When calculating routes, each of these routers is, in turn, chosen as the
|
||||
@@ -363,6 +378,7 @@ public:
|
||||
/**
|
||||
* @brief Set the IP address that should be used to begin forwarding packets
|
||||
* from the root SPFVertex to "this" SPFVertex.
|
||||
* @internal
|
||||
*
|
||||
* Each router node in the simulation is associated with an SPFVertex object.
|
||||
* When calculating routes, each of these routers is, in turn, chosen as the
|
||||
@@ -405,6 +421,7 @@ public:
|
||||
/**
|
||||
* @brief Get a pointer to the SPFVector that is the parent of "this"
|
||||
* SPFVertex.
|
||||
* @internal
|
||||
*
|
||||
* Each router node in the simulation is associated with an SPFVertex object.
|
||||
* When calculating routes, each of these routers is, in turn, chosen as the
|
||||
@@ -425,6 +442,7 @@ public:
|
||||
/**
|
||||
* @brief Set the pointer to the SPFVector that is the parent of "this"
|
||||
* SPFVertex.
|
||||
* @internal
|
||||
*
|
||||
* Each router node in the simulation is associated with an SPFVertex object.
|
||||
* When calculating routes, each of these routers is, in turn, chosen as the
|
||||
@@ -444,6 +462,7 @@ public:
|
||||
|
||||
/**
|
||||
* @brief Get the number of children of "this" SPFVertex.
|
||||
* @internal
|
||||
*
|
||||
* Each router node in the simulation is associated with an SPFVertex object.
|
||||
* When calculating routes, each of these routers is, in turn, chosen as the
|
||||
@@ -466,6 +485,7 @@ public:
|
||||
/**
|
||||
* @brief Get a borrowed SPFVertex pointer to the specified child of "this"
|
||||
* SPFVertex.
|
||||
* @internal
|
||||
*
|
||||
* Each router node in the simulation is associated with an SPFVertex object.
|
||||
* When calculating routes, each of these routers is, in turn, chosen as the
|
||||
@@ -494,6 +514,7 @@ public:
|
||||
/**
|
||||
* @brief Get a borrowed SPFVertex pointer to the specified child of "this"
|
||||
* SPFVertex.
|
||||
* @internal
|
||||
*
|
||||
* Each router node in the simulation is associated with an SPFVertex object.
|
||||
* When calculating routes, each of these routers is, in turn, chosen as the
|
||||
@@ -561,6 +582,7 @@ class GlobalRouteManagerLSDB
|
||||
public:
|
||||
/**
|
||||
* @brief Construct an empty Global Router Manager Link State Database.
|
||||
* @internal
|
||||
*
|
||||
* The database map composing the Link State Database is initialized in
|
||||
* this constructor.
|
||||
@@ -569,6 +591,7 @@ public:
|
||||
|
||||
/**
|
||||
* @brief Destroy an empty Global Router Manager Link State Database.
|
||||
* @internal
|
||||
*
|
||||
* The database map is walked and all of the Link State Advertisements stored
|
||||
* in the database are freed; then the database map itself is clear ()ed to
|
||||
@@ -579,6 +602,7 @@ public:
|
||||
/**
|
||||
* @brief Insert an IP address / Link State Advertisement pair into the Link
|
||||
* State Database.
|
||||
* @internal
|
||||
*
|
||||
* The IPV4 address and the GlobalRouterLSA given as parameters are converted
|
||||
* to an STL pair and are inserted into the database map.
|
||||
@@ -594,6 +618,7 @@ public:
|
||||
/**
|
||||
* @brief Look up the Link State Advertisement associated with the given
|
||||
* IP Address.
|
||||
* @internal
|
||||
*
|
||||
* The database map is searched for the given IPV4 address and corresponding
|
||||
* GlobalRouterLSA is returned.
|
||||
@@ -609,6 +634,7 @@ public:
|
||||
|
||||
/**
|
||||
* @brief Set all LSA flags to an initialized state, for SPF computation
|
||||
* @internal
|
||||
*
|
||||
* This function walks the database and resets the status flags of all of the
|
||||
* contained Link State Advertisements to LSA_SPF_NOT_EXPLORED. This is done
|
||||
@@ -657,6 +683,7 @@ public:
|
||||
/**
|
||||
* @brief Select which nodes in the system are to be router nodes and
|
||||
* aggregate the appropriate interfaces onto those nodes.
|
||||
* @internal
|
||||
*
|
||||
*/
|
||||
virtual void SelectRouterNodes ();
|
||||
@@ -664,23 +691,26 @@ public:
|
||||
/**
|
||||
* @brief Build the routing database by gathering Link State Advertisements
|
||||
* from each node exporting a GlobalRouter interface.
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
virtual void BuildGlobalRoutingDatabase ();
|
||||
|
||||
/**
|
||||
* @brief Compute routes using a Dijkstra SPF computation and populate
|
||||
* per-node forwarding tables
|
||||
* @internal
|
||||
*/
|
||||
virtual void InitializeRoutes ();
|
||||
|
||||
/**
|
||||
* @brief Debugging routine; allow client code to supply a pre-built LSDB
|
||||
* @internal
|
||||
*/
|
||||
void DebugUseLsdb (GlobalRouteManagerLSDB*);
|
||||
|
||||
/**
|
||||
* @brief Debugging routine; call the core SPF from the unit tests
|
||||
* @internal
|
||||
*/
|
||||
void DebugSPFCalculate (Ipv4Address root);
|
||||
|
||||
|
||||
@@ -54,6 +54,7 @@ private:
|
||||
/**
|
||||
* @brief Select which nodes in the system are to be router nodes and
|
||||
* aggregate the appropriate interfaces onto those nodes.
|
||||
* @internal
|
||||
*
|
||||
*/
|
||||
static void SelectRouterNodes ();
|
||||
@@ -61,6 +62,7 @@ private:
|
||||
/**
|
||||
* @brief Build the routing database by gathering Link State Advertisements
|
||||
* from each node exporting a GlobalRouter interface.
|
||||
* @internal
|
||||
*
|
||||
*/
|
||||
static void BuildGlobalRoutingDatabase ();
|
||||
@@ -68,6 +70,7 @@ private:
|
||||
/**
|
||||
* @brief Compute routes using a Dijkstra SPF computation and populate
|
||||
* per-node forwarding tables
|
||||
* @internal
|
||||
*/
|
||||
static void InitializeRoutes ();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user