src/routing/global-routing/global-router-interface.cc
changeset 4628 a5a8c44e4240
parent 4616 a84f60b6cd12
child 4745 a0e27af57c8d
--- a/src/routing/global-routing/global-router-interface.cc	Tue Jun 30 10:31:11 2009 -0700
+++ b/src/routing/global-routing/global-router-interface.cc	Tue Jun 30 23:15:04 2009 -0700
@@ -24,6 +24,7 @@
 #include "ns3/channel.h"
 #include "ns3/net-device.h"
 #include "ns3/node.h"
+#include "ns3/node-list.h"
 #include "ns3/ipv4.h"
 #include "ns3/bridge-net-device.h"
 #include "ipv4-global-routing.h"
@@ -140,7 +141,8 @@
   m_linkRecords(),
   m_networkLSANetworkMask("0.0.0.0"),
   m_attachedRouters(),
-  m_status(GlobalRoutingLSA::LSA_SPF_NOT_EXPLORED)
+  m_status(GlobalRoutingLSA::LSA_SPF_NOT_EXPLORED),
+  m_node_id(0)
 {
   NS_LOG_FUNCTION_NOARGS ();
 }
@@ -156,7 +158,8 @@
   m_linkRecords(),
   m_networkLSANetworkMask("0.0.0.0"),
   m_attachedRouters(),
-  m_status(status)
+  m_status(status),
+  m_node_id(0)
 {
   NS_LOG_FUNCTION (this << status << linkStateId << advertisingRtr);
 }
@@ -165,7 +168,8 @@
   : m_lsType(lsa.m_lsType), m_linkStateId(lsa.m_linkStateId), 
     m_advertisingRtr(lsa.m_advertisingRtr), 
     m_networkLSANetworkMask(lsa.m_networkLSANetworkMask), 
-    m_status(lsa.m_status)
+    m_status(lsa.m_status),
+    m_node_id(lsa.m_node_id)
 {
   NS_LOG_FUNCTION_NOARGS ();
   NS_ASSERT_MSG(IsEmpty(), 
@@ -182,6 +186,7 @@
   m_advertisingRtr = lsa.m_advertisingRtr;
   m_networkLSANetworkMask = lsa.m_networkLSANetworkMask, 
   m_status = lsa.m_status;
+  m_node_id = lsa.m_node_id;
 
   ClearLinkRecords ();
   CopyLinkRecords (lsa);
@@ -380,6 +385,20 @@
   m_status = status;
 }
 
+  Ptr<Node>
+GlobalRoutingLSA::GetNode (void) const
+{
+  NS_LOG_FUNCTION_NOARGS ();
+  return NodeList::GetNode (m_node_id);
+}
+
+  void
+GlobalRoutingLSA::SetNode (Ptr<Node> node)
+{
+  NS_LOG_FUNCTION (node);
+  m_node_id = node->GetId ();
+}
+
   void 
 GlobalRoutingLSA::Print (std::ostream &os) const
 {
@@ -582,6 +601,7 @@
   pLSA->SetLinkStateId (m_routerId);
   pLSA->SetAdvertisingRouter (m_routerId);
   pLSA->SetStatus (GlobalRoutingLSA::LSA_SPF_NOT_EXPLORED);
+  pLSA->SetNode (node);
 
   //
   // Ask the node for the number of net devices attached. This isn't necessarily 
@@ -1123,6 +1143,7 @@
       pLSA->SetAdvertisingRouter (m_routerId);
       pLSA->SetNetworkLSANetworkMask (maskLocal);
       pLSA->SetStatus (GlobalRoutingLSA::LSA_SPF_NOT_EXPLORED);
+      pLSA->SetNode (node);
 
       //
       // Build a list of AttachedRouters by walking the devices in the channel