extern std::map<std::string, ns3::ApplicationContainer> sink_from_sock;
static ns3::InternetStackHelper stack;
-static ns3::NodeContainer Cluster_nodes;
static ns3::Ipv4InterfaceContainer interfaces;
static int number_of_nodes = 0;
-static int number_of_clusters_nodes = 0;
static int number_of_links = 1;
static int number_of_networks = 1;
NetPointNs3::NetPointNs3() : ns3_node_(ns3::CreateObject<ns3::Node>(0))
{
stack.Install(ns3_node_);
- Cluster_nodes.Add(ns3_node_);
node_num = number_of_nodes++;
}
static void clusterCreation_cb(simgrid::kernel::routing::ClusterCreationArgs const& cluster)
{
+ ns3::NodeContainer Nodes;
+
for (int const& i : *cluster.radicals) {
// Routers don't create a router on the other end of the private link by themselves.
// We just need this router to be given an ID so we create a temporary NetPointNS3 so that it gets one
ns3_add_direct_route(host_src, host_dst, cluster.bw, cluster.lat, cluster.sharing_policy);
delete host_dst;
- }
-
- //Create link backbone
- ns3::NodeContainer Nodes;
- for (unsigned int i = number_of_clusters_nodes; i < Cluster_nodes.GetN(); i++) {
- Nodes.Add(Cluster_nodes.Get(i));
- XBT_DEBUG("Add node %u to cluster", i);
+ // Also add the host to the list of hosts that will be connected to the backbone
+ Nodes.Add(host_src->ns3_node_);
}
- number_of_clusters_nodes = Cluster_nodes.GetN();
- // XBT_DEBUG("Add router %u to cluster", nodes.GetN() - Nodes.GetN() - 1);
- // Nodes.Add(nodes.Get(nodes.GetN()-Nodes.GetN()-1));
+ // Create link backbone
xbt_assert(Nodes.GetN() <= 65000, "Cluster with ns-3 is limited to 65000 nodes");
ns3::CsmaHelper csma;
} else {
number_of_links++;
}
- XBT_DEBUG("Number of nodes in Cluster_nodes: %u", Cluster_nodes.GetN());
}
static void routeCreation_cb(bool symmetrical, simgrid::kernel::routing::NetPoint* src,