X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4628fd83cec233fef96d40e2cb5412cfe5522f15..cf703c9202818f2d52477ff7dd89d9374e04d842:/src/surf/surf_routing_full.c diff --git a/src/surf/surf_routing_full.c b/src/surf/surf_routing_full.c index 23654dfaaa..3c2c05d233 100644 --- a/src/surf/surf_routing_full.c +++ b/src/surf/surf_routing_full.c @@ -206,12 +206,21 @@ void model_full_set_route(AS_t rc, const char *src, if(!route->dst_gateway && !route->src_gateway) XBT_DEBUG("Load Route from \"%s\" to \"%s\"", src, dst); else{ - if (xbt_dict_get_or_null(rc->to_index, route->src_gateway) == NULL) - surf_parse_error("The ASroute source gateway must be part of the current AS (being in a sub-AS is not enough), but '%s' is not in '%s'.", - route->src_gateway,rc->name); - if (xbt_dict_get_or_null(rc->to_index, route->dst_gateway) == NULL) - surf_parse_error("The ASroute destination gateway must be part of the current AS (being in a sub-AS is not enough), but '%s' is not in '%s'.", - route->dst_gateway,rc->name); + AS_t subas = xbt_dict_get_or_null(rc->routing_sons, src); + if (subas==NULL) + surf_parse_error("The source of an ASroute must be a sub-AS declared within the current AS, but '%s' is not an AS within '%s'", + src,rc->name); + if (xbt_dict_get_or_null(subas->to_index, route->src_gateway) == NULL) + surf_parse_error("In an ASroute, source gateway must be part of the source sub-AS (in particular, being in a sub-sub-AS is not allowed), but '%s' is not in '%s'.", + route->src_gateway,subas->name); + + subas = xbt_dict_get_or_null(rc->routing_sons, dst); + if (subas==NULL) + surf_parse_error("The destination of an ASroute must be a sub-AS declared within the current AS, but '%s' is not an AS within '%s'", + dst,rc->name); + if (xbt_dict_get_or_null(subas->to_index, route->dst_gateway) == NULL) + surf_parse_error("In an ASroute, destination gateway must be part of the destination sub-AS (in particular, in a sub-sub-AS is not allowed), but '%s' is not in '%s'.", + route->dst_gateway,subas->name); XBT_DEBUG("Load ASroute from \"%s(%s)\" to \"%s(%s)\"", src, route->src_gateway, dst, route->dst_gateway);