X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1e73faf0938f7ef712e1711e3b79e0be16441a0e..d531b19a0d1b2931ce8177bacd0124065c68476f:/src/surf/surfxml_parse.c diff --git a/src/surf/surfxml_parse.c b/src/surf/surfxml_parse.c index 95080a44d5..a8016911e4 100644 --- a/src/surf/surfxml_parse.c +++ b/src/surf/surfxml_parse.c @@ -112,15 +112,23 @@ double surf_parse_get_time(const char *string) double surf_parse_get_bandwidth(const char *string) { const struct unit_scale units[] = { + { "TiBps", pow(1024, 4) }, + { "GiBps", pow(1024, 3) }, + { "MiBps", pow(1024, 2) }, + { "KiBps", 1024 }, { "TBps", 1e12 }, { "GBps", 1e9 }, { "MBps", 1e6 }, - { "KBps", 1e3 }, + { "kBps", 1e3 }, { "Bps", 1.0 }, - { "", 1.0 }, /* default unit is bytes ber second */ - { "tbps", 0.125 * 1e12 }, - { "gbps", 0.125 * 1e9 }, - { "mbps", 0.125 * 1e6 }, + { "", 1.0 }, /* default unit is bytes per second */ + { "Tibps", 0.125 * pow(1024, 4) }, + { "Gibps", 0.125 * pow(1024, 3) }, + { "Mibps", 0.125 * pow(1024, 2) }, + { "Kibps", 0.125 * 1024 }, + { "Tbps", 0.125 * 1e12 }, + { "Gbps", 0.125 * 1e9 }, + { "Mbps", 0.125 * 1e6 }, { "kbps", 0.125 * 1e3 }, { "bps", 0.125 }, { NULL, 0 } @@ -132,19 +140,19 @@ double surf_parse_get_power(const char *string) { const struct unit_scale units[] = { { "yottaflops", 1e24 }, - { "yf", 1e24 }, + { "Yf", 1e24 }, { "zettaflops", 1e21 }, - { "zf", 1e21 }, + { "Zf", 1e21 }, { "exaflops", 1e18 }, - { "ef", 1e18 }, + { "Ef", 1e18 }, { "petaflops", 1e15 }, - { "pf", 1e15 }, + { "Pf", 1e15 }, { "teraflops", 1e12 }, - { "tf", 1e12 }, + { "Tf", 1e12 }, { "gigaflops", 1e9 }, - { "gf", 1e9 }, + { "Gf", 1e9 }, { "megaflops", 1e6 }, - { "mf", 1e6 }, + { "Mf", 1e6 }, { "kiloflops", 1e3 }, { "kf", 1e3 }, { "flops", 1.0 }, @@ -427,9 +435,11 @@ void STag_surfxml_router(void){ sg_platf_new_router(&router); } -void STag_surfxml_cluster(void){ +void ETag_surfxml_cluster(void){ s_sg_platf_cluster_cbarg_t cluster; memset(&cluster,0,sizeof(cluster)); + cluster.properties = current_property_set; + cluster.id = A_surfxml_cluster_id; cluster.prefix = A_surfxml_cluster_prefix; cluster.suffix = A_surfxml_cluster_suffix; @@ -481,6 +491,12 @@ void STag_surfxml_cluster(void){ cluster.availability_trace = A_surfxml_cluster_availability___file; cluster.state_trace = A_surfxml_cluster_state___file; sg_platf_new_cluster(&cluster); + + current_property_set = NULL; +} + +void STag_surfxml_cluster(void){ + xbt_assert(current_property_set == NULL, "Someone forgot to reset the property set to NULL in its closing tag (or XML malformed)"); } void STag_surfxml_cabinet(void){ @@ -669,17 +685,8 @@ void ETag_surfxml_ASroute(void){ ASroute.src = A_surfxml_ASroute_src; ASroute.dst = A_surfxml_ASroute_dst; - if (!strcmp(current_routing->model_desc->name,"RuleBased")) { - // DIRTY PERL HACK AHEAD: with the rulebased routing, the {src,dst}_gateway fields - // store the provided name instead of the entity directly (model_rulebased_parse_ASroute knows) - // - // This is because the user will provide something like "^AS_(.*)$" instead of the proper name of a given entity - ASroute.gw_src = (sg_routing_edge_t) A_surfxml_ASroute_gw___src; - ASroute.gw_dst = (sg_routing_edge_t) A_surfxml_ASroute_gw___dst; - } else { - ASroute.gw_src = sg_routing_edge_by_name_or_null(A_surfxml_ASroute_gw___src); - ASroute.gw_dst = sg_routing_edge_by_name_or_null(A_surfxml_ASroute_gw___dst); - } + ASroute.gw_src = sg_routing_edge_by_name_or_null(A_surfxml_ASroute_gw___src); + ASroute.gw_dst = sg_routing_edge_by_name_or_null(A_surfxml_ASroute_gw___dst); ASroute.link_list = parsed_link_list; @@ -721,17 +728,8 @@ void ETag_surfxml_bypassASroute(void){ ASroute.link_list = parsed_link_list; ASroute.symmetrical = FALSE; - if (!strcmp(current_routing->model_desc->name,"RuleBased")) { - // DIRTY PERL HACK AHEAD: with the rulebased routing, the {src,dst}_gateway fields - // store the provided name instead of the entity directly (model_rulebased_parse_ASroute knows) - // - // This is because the user will provide something like "^AS_(.*)$" instead of the proper name of a given entity - ASroute.gw_src = (sg_routing_edge_t) A_surfxml_bypassASroute_gw___src; - ASroute.gw_dst = (sg_routing_edge_t) A_surfxml_bypassASroute_gw___dst; - } else { - ASroute.gw_src = sg_routing_edge_by_name_or_null(A_surfxml_bypassASroute_gw___src); - ASroute.gw_dst = sg_routing_edge_by_name_or_null(A_surfxml_bypassASroute_gw___dst); - } + ASroute.gw_src = sg_routing_edge_by_name_or_null(A_surfxml_bypassASroute_gw___src); + ASroute.gw_dst = sg_routing_edge_by_name_or_null(A_surfxml_bypassASroute_gw___dst); sg_platf_new_bypassASroute(&ASroute); parsed_link_list = NULL; @@ -898,7 +896,6 @@ void ETag_surfxml_trace___connect(void){} void STag_surfxml_trace(void){} void ETag_surfxml_router(void){} void ETag_surfxml_host___link(void){} -void ETag_surfxml_cluster(void){} void ETag_surfxml_cabinet(void){} void ETag_surfxml_peer(void){} void STag_surfxml_backbone(void){}