-As *AsGeneric::autonomousSystemExist(char *element)
-{
- //return rc; // FIXME: BYPASSERROR OF FOREACH WITH BREAK
- As *element_as, *result, *elem;
- xbt_dict_cursor_t cursor = NULL;
- char *key;
- element_as = ((RoutingEdge*)
- xbt_lib_get_or_null(as_router_lib, element,
- ROUTING_ASR_LEVEL))->getRcComponent();
- result = ((As*) - 1);
- if (element_as != this)
- result = asExist(element_as);
-
- int found = 0;
- if (result) {
- xbt_dict_foreach(element_as->p_routingSons, cursor, key, elem) {
- found = !strcmp(elem->p_name, element);
- if (found)
- break;
- }
- if (found)
- return element_as;
+ xbt_assert(this == dst_as,
+ "Internal error: route destination %s@%s is not in AS %s as expected (route source: %s@%s). Please report that bug.",
+ src->name(), dst->name(), src_as->name_, dst_as->name_, name_);
+}
+void AsGeneric::parseRouteCheckParams(sg_platf_route_cbarg_t route) {
+ const char *srcName = route->src;
+ const char *dstName = route->dst;
+ NetCard *src = sg_netcard_by_name_or_null(srcName);
+ NetCard *dst = sg_netcard_by_name_or_null(dstName);
+
+ if(!route->gw_dst && !route->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(!xbt_dynar_is_empty(route->link_list), "Empty route (between %s and %s) forbidden.", srcName, dstName);
+ } else {
+ XBT_DEBUG("Load ASroute from %s@%s to %s@%s", srcName, route->gw_src->name(), dstName, route->gw_dst->name());
+ xbt_assert(src, "Cannot add a route from %s@%s to %s@%s: %s does not exist.",
+ srcName,route->gw_src->name(), dstName,route->gw_dst->name(), srcName);
+ xbt_assert(dst, "Cannot add a route from %s@%s to %s@%s: %s does not exist.",
+ srcName,route->gw_src->name(), dstName,route->gw_dst->name(), dstName);
+ xbt_assert(!xbt_dynar_is_empty(route->link_list), "Empty route (between %s@%s and %s@%s) forbidden.",
+ srcName,route->gw_src->name(), dstName,route->gw_dst->name());