X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/47ba551ee792c3cc4a5960dfb0dc9c42d08509d3..371d168e21b83e2364c2ac2dbff3847588769c2b:/src/kernel/routing/RoutedZone.cpp diff --git a/src/kernel/routing/RoutedZone.cpp b/src/kernel/routing/RoutedZone.cpp index 2f02a1aff5..8457254713 100644 --- a/src/kernel/routing/RoutedZone.cpp +++ b/src/kernel/routing/RoutedZone.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2009-2022. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2009-2023. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -10,8 +10,9 @@ #include "xbt/graph.h" #include "xbt/log.h" #include "xbt/sysdep.h" +#include "xbt/asserts.hpp" -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(ker_routing_generic, ker_routing, "Kernel Generic Routing"); +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(ker_routing_generic, ker_platform, "Kernel Generic Routing"); /* ***************************************************************** */ /* *********************** GENERIC METHODS ************************* */ @@ -26,11 +27,10 @@ RoutedZone::RoutedZone(const std::string& name) : NetZoneImpl(name) {} Route* RoutedZone::new_extended_route(RoutingMode hierarchy, NetPoint* gw_src, NetPoint* gw_dst, const std::vector& link_list, bool preserve_order) { - auto* result = new Route(); + xbt_enforce(hierarchy != RoutingMode::recursive || (gw_src && gw_dst), "nullptr is obviously a deficient gateway"); + auto* result = new Route(); if (hierarchy == RoutingMode::recursive) { - xbt_assert(gw_src && gw_dst, "nullptr is obviously a deficient gateway"); - result->gw_src_ = gw_src; result->gw_dst_ = gw_dst; } @@ -46,65 +46,65 @@ Route* RoutedZone::new_extended_route(RoutingMode hierarchy, NetPoint* gw_src, N void RoutedZone::get_route_check_params(const NetPoint* src, const NetPoint* dst) const { - xbt_assert(src, "Cannot find a route from nullptr to %s", dst->get_cname()); - xbt_assert(dst, "Cannot find a route from %s to nullptr", src->get_cname()); + xbt_enforce(src, "Cannot have a route with (nullptr) source"); + xbt_enforce(dst, "Cannot have a route with (nullptr) destination"); const NetZoneImpl* src_as = src->get_englobing_zone(); const NetZoneImpl* dst_as = dst->get_englobing_zone(); - xbt_assert(src_as == dst_as, + xbt_enforce(src_as == dst_as, "Internal error: %s@%s and %s@%s are not in the same netzone as expected. Please report that bug.", src->get_cname(), src_as->get_cname(), dst->get_cname(), dst_as->get_cname()); - xbt_assert(this == dst_as, + xbt_enforce(this == dst_as, "Internal error: route destination %s@%s is not in netzone %s as expected (route source: " "%s@%s). Please report that bug.", src->get_cname(), dst->get_cname(), src_as->get_cname(), dst_as->get_cname(), get_cname()); } + void RoutedZone::add_route_check_params(NetPoint* src, NetPoint* dst, NetPoint* gw_src, NetPoint* gw_dst, const std::vector& link_list, bool symmetrical) const { + get_route_check_params(src, dst); const char* srcName = src->get_cname(); const char* dstName = dst->get_cname(); if (not gw_dst || not gw_src) { XBT_DEBUG("Load Route from \"%s\" to \"%s\"", srcName, dstName); - xbt_assert(src, "Cannot add a route from %s to %s: %s does not exist.", srcName, dstName, srcName); - xbt_assert(dst, "Cannot add a route from %s to %s: %s does not exist.", srcName, dstName, dstName); - xbt_assert(not link_list.empty(), "Empty route (between %s and %s) forbidden.", srcName, dstName); - xbt_assert(not src->is_netzone(), + xbt_enforce(not link_list.empty(), "Empty route (between %s and %s) forbidden.", srcName, dstName); + xbt_enforce(not src->is_netzone(), "When defining a route, src cannot be a netzone such as '%s'. Did you meant to have a NetzoneRoute?", srcName); - xbt_assert(not dst->is_netzone(), + xbt_enforce(not dst->is_netzone(), "When defining a route, dst cannot be a netzone such as '%s'. Did you meant to have a NetzoneRoute?", dstName); NetZoneImpl::on_route_creation(symmetrical, src, dst, gw_src, gw_dst, get_link_list_impl(link_list, false)); } else { XBT_DEBUG("Load NetzoneRoute from %s@%s to %s@%s", srcName, gw_src->get_cname(), dstName, gw_dst->get_cname()); - xbt_assert(src->is_netzone(), "When defining a NetzoneRoute, src must be a netzone but '%s' is not", srcName); - xbt_assert(dst->is_netzone(), "When defining a NetzoneRoute, dst must be a netzone but '%s' is not", dstName); + xbt_enforce(src->is_netzone(), "When defining a NetzoneRoute, src must be a netzone but '%s' is not", srcName); + xbt_enforce(dst->is_netzone(), "When defining a NetzoneRoute, dst must be a netzone but '%s' is not", dstName); - xbt_assert(gw_src->is_host() || gw_src->is_router(), + xbt_enforce(gw_src->is_host() || gw_src->is_router(), "When defining a NetzoneRoute, gw_src must be a host or a router but '%s' is not.", srcName); - xbt_assert(gw_dst->is_host() || gw_dst->is_router(), + xbt_enforce(gw_dst->is_host() || gw_dst->is_router(), "When defining a NetzoneRoute, gw_dst must be a host or a router but '%s' is not.", dstName); - xbt_assert(gw_src != gw_dst, "Cannot define a NetzoneRoute from '%s' to itself", gw_src->get_cname()); + xbt_enforce(gw_src != gw_dst, "Cannot define a NetzoneRoute from '%s' to itself", gw_src->get_cname()); - xbt_assert(src, "Cannot add a route from %s@%s to %s@%s: %s does not exist.", srcName, gw_src->get_cname(), dstName, + xbt_enforce(src, "Cannot add a route from %s@%s to %s@%s: %s does not exist.", srcName, gw_src->get_cname(), dstName, gw_dst->get_cname(), srcName); - xbt_assert(dst, "Cannot add a route from %s@%s to %s@%s: %s does not exist.", srcName, gw_src->get_cname(), dstName, + xbt_enforce(dst, "Cannot add a route from %s@%s to %s@%s: %s does not exist.", srcName, gw_src->get_cname(), dstName, gw_dst->get_cname(), dstName); - xbt_assert(not link_list.empty(), "Empty route (between %s@%s and %s@%s) forbidden.", srcName, gw_src->get_cname(), + xbt_enforce(not link_list.empty(), "Empty route (between %s@%s and %s@%s) forbidden.", srcName, gw_src->get_cname(), dstName, gw_dst->get_cname()); const auto* netzone_src = get_netzone_recursive(src); - xbt_assert(netzone_src->is_component_recursive(gw_src), + xbt_enforce(netzone_src->is_component_recursive(gw_src), "Invalid NetzoneRoute from %s@%s to %s@%s: gw_src %s belongs to %s, not to %s.", srcName, gw_src->get_cname(), dstName, gw_dst->get_cname(), gw_src->get_cname(), gw_src->get_englobing_zone()->get_cname(), srcName); const auto* netzone_dst = get_netzone_recursive(dst); - xbt_assert(netzone_dst->is_component_recursive(gw_dst), + xbt_enforce(netzone_dst->is_component_recursive(gw_dst), "Invalid NetzoneRoute from %s@%s to %s@%s: gw_dst %s belongs to %s, not to %s.", srcName, gw_src->get_cname(), dstName, gw_dst->get_cname(), gw_dst->get_cname(), gw_dst->get_englobing_zone()->get_cname(), dst->get_cname());