Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fix some doxygen warnings
[simgrid.git] / doc / doxygen / platform.doc
index b35d4e5..ba3bb76 100644 (file)
@@ -16,9 +16,11 @@ this information as an input:
 
 For more information on SimGrid's deployment features, please refer to the \ref deployment section.
 
-The platform description may be intricate. This documentation is all about how to write this file. First, the basic 
-concepts are introduced. Then, advanced options are explained. Finally, some hints and tips on how to write a better 
-platform description are given.
+The platform description may be intricate. This documentation is all
+about how to write this file. You should read about the
+@ref routing_basics "routing basic concepts" before proceeding. This page
+first contain a reference guide of the XML. Finally, it gives some hints and tips on how to write a better 
+platform description.
 
 \section pf_overview Some words about XML and DTD
 
@@ -34,75 +36,17 @@ If you read the DTD, you should notice the following:
     provide backward compatibility.
 \li The DTD contains definitions for both the platform description and deployment files used by SimGrid.
 
-\section pf_basics Basic concepts
-
-It is certainly very tempting to defining how the information is
-routed in the simulated network in a way that is very similar to how
-it is defined on real network. One would have to define the routing
-tables of each routers interconnections sub-networks, just like in the
-real life. Given the daunting amount of configuration required, we
-could complete the information given by the user with classical
-protocols such as BGP and RIP. Many network simulator take such
-configuration as an input, for good reasons.
-
-This is not the way it goes in SimGrid: the network routing is defined
-in a global and compact way instead. This eases the modeling of very
-large systems, and allows highly optimized datastructures and
-algorithms in the simulator. The proposed description mechanism is
-thus much more convinient and efficient. In addition, it is more
-expressive than the classical solution based on forwarding tables on
-each host and router. 
-
-The price to pay is that this representation of networks is very
-specific to SimGrid, so you will have to read further to understand
-it, even if you already know how real networks work.
-
-The central notion here are \b Networking \b Zones. NetZones represent
-network areas in which the routing is done in an homogeneous way.
-Conceptually, netzones generalize from the ideas of local networks
-(such as Ethernet switched networks) and Autonomous System. The 
-network as a whole is represented as a single hierarchy of netzones,
-meaning that every netzone is part of another netzone (but the \c
-NetRoot, which is the top-level netzone).
-
-The main goal of the routing module is to provide a list of links
-traversed by a given communication and/or a latency to apply. These
-information are then used by the network model to compute the time
-that this communication takes. This information is retrieved by three
-combined algorithms: intra-zone routing, inter-zone routing, and the
-bypass mechanism.
-
-The <b>intra-zone level</b> is naturally handled by the netzones. Each
-netzone have to specify the routing algorithm it uses for that.
-@ref{FullZone} netzones have complete matrix where matrix(a,b)
-represents the full path (the list of links) between the hosts a and
-b. @ref{FloydZone} apply the Floyd-Warshall algorithm to compute the
-paths. @ref{ClusterZone} model classical switched or hub networks,
-where each component is connected through a private link onto a common
-backbone. Many other routing algorithms are provided to model the
-classical needs, but you can naturally define your own routing if the
-provided ones do not fit your needs.
-
-The <b>inter-zone algorithm</b> is used when the communication
-traverses more than one zone. The overall path goes from the source up
-in the netzones' tree, until the first common ancestor zone, and moves
-down to the destination. It crawls the differing netzones on its path
-according to the user-defined inter-zone routes, moving from gateway
-to gateway.
-
-You can also use the <b>bypass mechanism</b> to specify manually some
-shortcuts that directly provide the list of links interconnecting two
-given processes.
+\section pf_netzones Defining a netzone
+
+Here is a simplistic example, describing a netzone using the Full
+routing.  Other supported values for the routing attribute can be
+found below, Section \ref pf_raf.
 
 
 \verbatim
 <AS id="netzone0" routing="Full">
 \endverbatim
 
-\remark
-  Other supported values for the routing attribute can be found below, Section
-  \ref pf_raf.
-
 There is also the ``<route>`` tag; this tag takes two attributes,
 ``src`` (source) and ``dst`` (destination). Both source and
 destination must be valid identifiers for routers (these will be
@@ -157,10 +101,10 @@ Here is an illustration of these concepts:
 
 \subsection  pf_As Platform: The &lt;AS&gt; tag
 
-The concept of an AS was already outlined above (Section \ref pf_basics);
-recall that the AS is so important because it groups other resources (such
-as routers/hosts) together (in fact, these resources must be contained by
-an AS).
+For historical reasons, the XML files use the expression AS for
+NetZones. Netzones are very important because they group other resources (such
+as routers/hosts) together (in fact, any such resource must be
+contained in a NetZone).
 
 Available attributes :
 
@@ -368,14 +312,14 @@ limiter_link      | no        | int    | Bandwidth for limiter link (if any). Th
 loopback_bw       | no      | int    | Bandwidth for loopback (if any). See <b>link</b> section for syntax/details. If loopback_bw and loopback_lat (see below) attributes are omitted, no loopback link is created and all intra-node communication will use the main network link of the node. Loopback link is a \ref pf_sharing_policy_fatpipe "\b FATPIPE".
 loopback_lat      | no      | int    | Latency for loopback (if any). See <b>link</b> section for syntax/details. See loopback_bw for more info.
 topology          | no      | FLAT\|TORUS\|FAT_TREE\|DRAGONFLY (default: FLAT) | Network topology to use. SimGrid currently supports FLAT (with or without backbone, as described before), <a href="http://en.wikipedia.org/wiki/Torus_interconnect">TORUS </a>, FAT_TREE, and DRAGONFLY attributes for this tag.
-topo_parameters   | no      | string | Specific parameters to pass for the topology defined in the topology tag. For torus networks, comma-separated list of the number of nodes in each dimension of the torus. For fat trees, refer to \ref simgrid::kernel::routing::AsClusterFatTree "AsClusterFatTree documentation". For dragonfly, refer to \ref simgrid::kernel::routing::AsClusterDragonfly "AsClusterDragonfly documentation".
+topo_parameters   | no      | string | Specific parameters to pass for the topology defined in the topology tag. For torus networks, comma-separated list of the number of nodes in each dimension of the torus. Please refer to the specific documentation for \ref simgrid::kernel::routing::FatTreeZone "FatTree NetZone", \ref simgrid::kernel::routing::DragonflyZone "Dragonfly NetZone".
 
 
 the router name is defined as the resulting String in the following
 java line of code:
 
 @verbatim
-router_name = prefix + clusterId + _router + suffix;
+router_name = prefix + clusterId + "_router" + suffix;
 @endverbatim
 
 
@@ -460,18 +404,14 @@ etc.
 
 \subsubsection pf_peer The &lt;peer&gt; tag
 
-This tag represents a peer, as in Peer-to-Peer (P2P) networks. However, internally,
-SimGrid transforms a peer into an AS (similar to Cluster). Hence, this tag
-is virtually only a shortcut that comes with some pre-defined resources
-and values. These are:
+This tag represents a peer, as in Peer-to-Peer (P2P) networks. This
+can only be used in Vivaldi NetZones. It creates the  following
+resources to the NetZone:
 
-\li A tiny AS whose routing type is cluster is created
 \li A host
 \li Two links: One for download and one for upload. This is
     convenient to use and simulate stuff under the last mile model (e.g., ADSL peers).
 \li It connects the two links to the host
-\li It creates a router (a gateway) that serves as an entry point for this peer zone.
-    This router has coordinates.
 
 #### Attributes ####
 
@@ -479,37 +419,14 @@ Attribute name  | Mandatory | Values | Description
 --------------- | --------- | ------ | -----------
 id              | yes       | string | The identifier of the peer. Facilitates referring to this peer.
 speed           | yes       | int    | See the description of the ``host`` tag for this attribute
-bw_in           | yes       | int    | Bandwidth downstream
-bw_out          | yes       | int    | Bandwidth upstream
+bw_in           | yes       | int    | Bandwidth of the private downstream link
+bw_out          | yes       | int    | Bandwidth of the private upstream link
 lat             | yes       | double | Latency for both up- and downstream, in seconds.
 coordinates     | no        | string | Coordinates of the gateway for this peer. Example value: 12.8 14.4 6.4
 sharing_policy  | no        | SHARED\|FULLDUPLEX (default: FULLDUPLEX) | Sharing policy for links. See <b>link</b> description for details.
 availability_file| no       | string | Availability file for the peer. Same as host availability file. See <b>host</b> description for details.
 state_file      | no        | string | State file for the peer. Same as host state file. See <b>host</b> description for details.
 
-Internally, SimGrid transforms any ``\<peer/\>`` construct such as
-\verbatim
-<peer id="FOO"
-  coordinates="12.8 14.4 6.4"
-  speed="1.5Gf"
-  bw_in="2.25GBps"
-  bw_out="2.25GBps"
-  lat="500us" />
-\endverbatim
-into an ``\<AS\>`` (see Sections \ref pf_basics and \ref pf_As). In fact, this example of the ``\<peer/\>`` tag
-is completely equivalent to the following declaration:
-
-\verbatim
-<AS id="as_FOO" routing="Cluster">
-   <host id="peer_FOO" speed="1.5Gf"/>
-   <link id="link_FOO_UP" bandwidth="2.25GBps" latency="500us"/>
-   <link id="link_FOO_DOWN" bandwidth="2.25GBps" latency="500us"/>
-   <router id="router_FOO" coordinates="25.5 9.4 1.4"/>
-   <host_link id="peer_FOO" up="link_FOO_UP" down="link_FOO_DOWN"/>
-</AS>
-\endverbatim
-
-
 \subsection pf_ne Network equipments: links and routers
 
 There are two tags at all times available to represent network entities and
@@ -1239,12 +1156,9 @@ routing model (the path is given relative to SimGrid's source directory):
 For more information on how to use the [Vivaldi Coordinates](https://en.wikipedia.org/wiki/Vivaldi_coordinates),
 see also Section \ref pf_P2P_tags "P2P tags".
 
-For documentation on how to activate this model (as some initialization must be done
-in the simulator), see Section \ref options_model_network_coord "Activating Coordinate Based Routing".
-
 Note that it is possible to combine the Vivaldi routing model with other routing models;
 an example can be found in the file \c examples/platforms/cloud.xml. This
-examples models an AS using Vivaldi that contains other ASes that use different
+examples models a NetZone using Vivaldi that contains other NetZones that use different
 routing models.
 
 #### Example platform files ####