src/routing/global-routing/global-route-manager-impl.h
changeset 3960 34908804c029
parent 3959 ec65107df095
child 4297 d8501bae8be1
--- 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"));