#include "simgrid/kernel/routing/NetPoint.hpp"
#include "simgrid/kernel/routing/RoutedZone.hpp"
#include "src/surf/network_interface.hpp"
+#if SIMGRID_HAVE_NS3
+#include "src/surf/network_ns3.hpp"
+#endif
#include "xbt/string.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_star, surf, "Routing part of surf");
{
check_add_route_param(src, dst, gw_src, gw_dst, symmetrical);
- s4u::NetZone::on_route_creation(symmetrical, gw_src, gw_dst, gw_src, gw_dst, link_list_);
+ s4u::NetZone::on_route_creation(symmetrical, src, dst, gw_src, gw_dst, link_list_);
/* loopback */
if (src == dst) {
void StarZone::do_seal()
{
+#if SIMGRID_HAVE_NS3
+ xbt_assert(not dynamic_cast<resource::NetworkNS3Model*>(get_network_model().get()),
+ "StarZone are not supported by NS-3 right now");
+#endif
/* add default empty links if nothing was configured by user */
for (auto const& node : get_vertices()) {
auto route = routes_.emplace(node->id(), StarRoute());
{
ns3::NodeContainer Nodes;
+ xbt_assert(cluster.topology == simgrid::kernel::routing::ClusterTopology::FLAT,
+ "NS-3 is supported only by flat clusters. Do not use with other topologies");
+
for (int const& i : cluster.radicals) {
// Create private link
std::string host_id = cluster.prefix + std::to_string(i) + cluster.suffix;
simgrid::kernel::routing::NetPoint* /*gw_dst*/,
std::vector<simgrid::kernel::resource::LinkImpl*> const& link_list)
{
+ xbt_assert(src && dst, "NS-3: add_route, invalid src or destination");
if (link_list.size() == 1) {
auto const* link = static_cast<simgrid::kernel::resource::LinkNS3*>(link_list[0]);
XBT_DEBUG("</zone>");
sg_platf_new_Zone_seal();
+ simgrid::kernel::routing::on_cluster_creation(*cluster);
}
void sg_platf_new_cluster(simgrid::kernel::routing::ClusterCreationArgs* cluster)
sg_platf_new_cluster_flat(cluster);
break;
}
-
- simgrid::kernel::routing::on_cluster_creation(*cluster);
}
void routing_cluster_add_backbone(simgrid::kernel::resource::LinkImpl* bb)