- src_as = ((network_element_info_t)
- xbt_lib_get_or_null(host_lib, src, ROUTING_HOST_LEVEL))->rc_component;
- dst_as = ((network_element_info_t)
- xbt_lib_get_or_null(host_lib, dst, ROUTING_HOST_LEVEL))->rc_component;
- xbt_assert2(src_as
- && dst_as,
- "Ask for route \"from\"(%s) or \"to\"(%s) no found", src,
- dst);
+ void * src_data = xbt_lib_get_or_null(host_lib,src, ROUTING_HOST_LEVEL);
+ void * dst_data = xbt_lib_get_or_null(host_lib,dst, ROUTING_HOST_LEVEL);
+ if(!src_data) src_data = xbt_lib_get_or_null(as_router_lib,src, ROUTING_ASR_LEVEL);
+ if(!dst_data) dst_data = xbt_lib_get_or_null(as_router_lib,dst, ROUTING_ASR_LEVEL);
+
+ if(src_data == NULL || dst_data == NULL)
+ xbt_die("Ask for route \"from\"(%s) or \"to\"(%s) no found at AS \"%s\"",
+ src, dst, rc->name);
+
+ src_as = ((network_element_info_t)src_data)->rc_component;
+ dst_as = ((network_element_info_t)dst_data)->rc_component;