Adding partitioning support to AnnotatedTopologyReader
diff --git a/plugins/topology/annotated-topology-reader.cc b/plugins/topology/annotated-topology-reader.cc
index f3cfc53..50a5ae4 100644
--- a/plugins/topology/annotated-topology-reader.cc
+++ b/plugins/topology/annotated-topology-reader.cc
@@ -87,16 +87,16 @@
 }
 
 Ptr<Node>
-AnnotatedTopologyReader::CreateNode (const std::string name)
+AnnotatedTopologyReader::CreateNode (const std::string name, uint32_t systemId)
 {
-  return CreateNode (name, m_randX.GetValue (), m_randY.GetValue ());
+  return CreateNode (name, m_randX.GetValue (), m_randY.GetValue (), systemId);
 }
 
 Ptr<Node>
-AnnotatedTopologyReader::CreateNode (const std::string name, double posX, double posY)
+AnnotatedTopologyReader::CreateNode (const std::string name, double posX, double posY, uint32_t systemId)
 {
   NS_LOG_FUNCTION (this << name << posX << posY);
-  Ptr<Node> node = CreateObject<Node> ();
+  Ptr<Node> node = CreateObject<Node> (systemId);
   Ptr<MobilityModel> loc = DynamicCast<MobilityModel> (m_mobilityFactory.Create ());
   node->AggregateObject (loc);
 
@@ -150,11 +150,12 @@
       istringstream lineBuffer (line);
       string name, city;
       double latitude, longitude;
+      uint32_t systemId = 0;
 
-      lineBuffer >> name >> city >> latitude >> longitude;
+      lineBuffer >> name >> city >> latitude >> longitude >> systemId;
       if (name.empty ()) continue;
 
-      Ptr<Node> node = CreateNode (name, m_scale*longitude, -m_scale*latitude);
+      Ptr<Node> node = CreateNode (name, m_scale*longitude, -m_scale*latitude, systemId);
     }
 
   map<string, set<string> > processedLinks; // to eliminate duplications
diff --git a/plugins/topology/annotated-topology-reader.h b/plugins/topology/annotated-topology-reader.h
index 95ce123..48c164b 100644
--- a/plugins/topology/annotated-topology-reader.h
+++ b/plugins/topology/annotated-topology-reader.h
@@ -110,10 +110,10 @@
 
 protected:
   Ptr<Node>
-  CreateNode (const std::string name);
+  CreateNode (const std::string name, uint32_t systemId);
 
   Ptr<Node>
-  CreateNode (const std::string name, double posX, double posY);
+  CreateNode (const std::string name, double posX, double posY, uint32_t systemId);
   
 protected:
   /**
diff --git a/plugins/topology/rocketfuel-weights-reader.cc b/plugins/topology/rocketfuel-weights-reader.cc
index 4b4fb32..e5fb035 100644
--- a/plugins/topology/rocketfuel-weights-reader.cc
+++ b/plugins/topology/rocketfuel-weights-reader.cc
@@ -122,13 +122,13 @@
       Ptr<Node> fromNode = Names::Find<Node> (m_path, from);
       if (fromNode == 0)
         {
-          fromNode = CreateNode (from);
+          fromNode = CreateNode (from, 0);
         }
 
       Ptr<Node> toNode   = Names::Find<Node> (m_path, to);
       if (toNode == 0)
         {
-          toNode = CreateNode (to);
+          toNode = CreateNode (to, 0);
         }
 
       Link *link;