--- a/src/routing/global-routing/global-route-manager-impl.h Sun Nov 30 21:21:23 2008 -0800
+++ b/src/routing/global-routing/global-route-manager-impl.h Sun Nov 30 23:37:12 2008 -0800
@@ -547,6 +547,23 @@
*/
uint32_t AddChild (SPFVertex* child);
+ /**
+ * @brief Set the value of the VertexProcessed flag
+ *
+ * Flag to note whether vertex has been processed in stage two of
+ * SPF computation
+ * @param value boolean value to set the flag
+ */
+ void SetVertexProcessed (bool value);
+
+ /**
+ * @brief Check the value of the VertexProcessed flag
+ *
+ * Flag to note whether vertex has been processed in stage two of
+ * SPF computation
+ * @returns value of underlying flag
+ */
+ bool IsVertexProcessed (void) const;
private:
VertexType m_vertexType;
Ipv4Address m_vertexId;
@@ -557,6 +574,7 @@
SPFVertex* m_parent;
typedef std::list<SPFVertex*> ListOfSPFVertex_t;
ListOfSPFVertex_t m_children;
+ bool m_vertexProcessed;
/**
* @brief The SPFVertex copy construction is disallowed. There's no need for
@@ -771,6 +789,7 @@
SPFVertex* m_spfroot;
GlobalRouteManagerLSDB* m_lsdb;
void SPFCalculate (Ipv4Address root);
+ void SPFProcessStubs (SPFVertex* v);
void SPFNext (SPFVertex*, CandidateQueue&);
int SPFNexthopCalculation (SPFVertex* v, SPFVertex* w,
GlobalRoutingLinkRecord* l, uint32_t distance);
@@ -779,6 +798,7 @@
GlobalRoutingLinkRecord* prev_link);
void SPFIntraAddRouter (SPFVertex* v);
void SPFIntraAddTransit (SPFVertex* v);
+ void SPFIntraAddStub (GlobalRoutingLinkRecord *l, SPFVertex* v);
uint32_t FindOutgoingTypeId (Ipv4Address a,
Ipv4Mask amask = Ipv4Mask("255.255.255.255"));