X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f5b15e157009dbaef93d579aaf5f093864fc7cc7..46e0cb17f365814060eccbd32af103d1b41ae34b:/src/surf/surf_routing.c diff --git a/src/surf/surf_routing.c b/src/surf/surf_routing.c index 6e62f79fea..9f7d2ae3b3 100644 --- a/src/surf/surf_routing.c +++ b/src/surf/surf_routing.c @@ -1565,22 +1565,25 @@ void routing_parse_Scluster(void) link.latency = struct_cluster->S_cluster_lat; link.state = SURF_RESOURCE_ON; - /* FIXME: use a switch here */ - if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_SHARED) - link.policy = SURF_LINK_SHARED; - else - { - if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_FATPIPE) - link.policy = SURF_LINK_FATPIPE; - else if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_FULLDUPLEX) - link.policy = SURF_LINK_FULLDUPLEX; + switch (struct_cluster->V_cluster_sharing_policy) { + case A_surfxml_cluster_sharing_policy_SHARED: + link.policy = SURF_LINK_SHARED; + break; + case A_surfxml_cluster_sharing_policy_FULLDUPLEX: + link.policy = SURF_LINK_FULLDUPLEX; + break; + case A_surfxml_cluster_sharing_policy_FATPIPE: + link.policy = SURF_LINK_FATPIPE; + break; + default: + surf_parse_error(bprintf("Invalid cluster sharing policy for cluster %s",struct_cluster->V_cluster_id)); } sg_platf_new_link(&link); ETag_surfxml_link(); surf_parsing_link_up_down_t info = xbt_new0(s_surf_parsing_link_up_down_t, 1); - if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_FULLDUPLEX){ + if (link.policy == SURF_LINK_FULLDUPLEX) { char* tmp_link = bprintf("%s_UP",link_id); info->link_up = xbt_lib_get_or_null(link_lib, tmp_link, SURF_LINK_LEVEL); free(tmp_link); @@ -1621,21 +1624,22 @@ void routing_parse_Scluster(void) char *link_backbone = bprintf("%s_backbone", struct_cluster->V_cluster_id); XBT_DEBUG("", link_backbone,struct_cluster->S_cluster_bb_bw, struct_cluster->S_cluster_bb_lat); - A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED; - if(AX_surfxml_cluster_bb_sharing_policy == A_surfxml_cluster_bb_sharing_policy_FATPIPE) - {A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;} - memset(&link,0,sizeof(link)); link.id = link_backbone; link.bandwidth = struct_cluster->S_cluster_bb_bw; link.latency = struct_cluster->S_cluster_bb_lat; link.state = SURF_RESOURCE_ON; - /* FIXME: use a switch, and deal with FULLDUPLEX here */ - if (A_surfxml_link_sharing_policy == A_surfxml_link_sharing_policy_SHARED) - link.policy = SURF_LINK_SHARED; - else - link.policy = SURF_LINK_FATPIPE; + switch (AX_surfxml_cluster_bb_sharing_policy) { + case A_surfxml_cluster_bb_sharing_policy_FATPIPE: + link.policy = SURF_LINK_FATPIPE; + break; + case A_surfxml_cluster_bb_sharing_policy_SHARED: + link.policy = SURF_LINK_SHARED; + break; + default: + surf_parse_error(bprintf("Invalid bb sharing policy in cluster %s",struct_cluster->V_cluster_id)); + } sg_platf_new_link(&link); ETag_surfxml_link();