*********/
void surf_network_model_init_NS3()
{
- if (surf_network_model)
- return;
+ xbt_assert(surf_network_model == nullptr, "Cannot set the network model twice");
surf_network_model = new simgrid::kernel::resource::NetworkNS3Model();
- all_existing_models->push_back(surf_network_model);
}
static simgrid::config::Flag<std::string>
xbt_assert(not sg_link_energy_is_inited(),
"LinkEnergy plugin and NS3 network models are not compatible. Are you looking for Ecofen, maybe?");
+ all_existing_models.push_back(this);
+
NetPointNs3::EXTENSION_ID = simgrid::kernel::routing::NetPoint::extension_create<NetPointNs3>();
ns3_initialize(ns3_tcp_model.get().c_str());
- simgrid::kernel::routing::NetPoint::onCreation.connect([](simgrid::kernel::routing::NetPoint* pt) {
+ simgrid::kernel::routing::NetPoint::on_creation.connect([](simgrid::kernel::routing::NetPoint* pt) {
pt->extension_set<NetPointNs3>(new NetPointNs3());
XBT_VERB("SimGrid's %s is known as node %d within NS3", pt->get_cname(), pt->extension<NetPointNs3>()->node_num);
});
IPV4addr.clear();
}
-LinkImpl* NetworkNS3Model::createLink(const std::string& name, double bandwidth, double latency,
- s4u::Link::SharingPolicy policy)
+LinkImpl* NetworkNS3Model::create_link(const std::string& name, double bandwidth, double latency,
+ s4u::Link::SharingPolicy policy)
{
return new LinkNS3(this, name, bandwidth, latency);
}
**********/
NetworkNS3Action::NetworkNS3Action(kernel::resource::Model* model, double totalBytes, s4u::Host* src, s4u::Host* dst)
- : NetworkAction(model, totalBytes, false)
+ : NetworkAction(model, totalBytes, false), src_(src), dst_(dst)
{
XBT_DEBUG("Communicate from %s to %s", src->get_cname(), dst->get_cname());
- src_ = src;
- dst_ = dst;
static int port_number = 1025; // Port number is limited from 1025 to 65 000
unsigned int node1 = src->pimpl_netpoint->extension<NetPointNs3>()->node_num;