Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
New actions for the time independent trace replay framework:
[simgrid.git] / src / surf / surfxml_parse.c
index 95080a4..89433f2 100644 (file)
@@ -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 },
@@ -669,17 +677,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 +720,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;