X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fb75e2d8200e8fed10ed4436462fb73038a233ee..72cfaf84e1338bfa4821d04a291c702f87f12a82:/doc/doxygen/pls.doc diff --git a/doc/doxygen/pls.doc b/doc/doxygen/pls.doc index e8a223f51d..11d26c9d3e 100644 --- a/doc/doxygen/pls.doc +++ b/doc/doxygen/pls.doc @@ -1,114 +1,22 @@ /*! \page pls Packet level simulation -It is possible to use a packet-level network simulator -instead of the default flow-based simulation. You may want to use such -an approach if you have doubts about the validity of the default model -or if you want to perform some validation experiments. At the moment, -we support the NS3 and GTNetS simulators. +\tableofcontents +It is possible to use a packet-level network simulator instead of the default flow-based models. You may want to use +this feature if you have doubts about the validity of the default model or want to perform some validation experiments. -\section pls_simgrid_configuration_gtnets GTNetS as a SimGrid model +At the moment, we support the well-known ns-3 packet-level simulator. Earlier +releases of SimGrid did support the GTNetS simulator. Its support could possibly be revived by someone who would +need it. -\subsection pls_simgrid_configuration_gtnets_compile Compiling a patched version of GTNetS +\section pls_simgrid_configuration_ns3 ns-3 as a SimGrid model -GTNetS needs to be patched to work with SimGrid, so the easiest -solution is to run the following commands: +This section explains how to replace the SimGrid network models by those of the well-known +ns-3 packet-level network simulator. -\verbatim -# Get the files that we prepared for you -svn checkout svn://scm.gforge.inria.fr/svn/simgrid/contrib/trunk/GTNetS/ -cd GTNetS - -# Unpack and patch the sources -unzip gtnets-current.zip -tar zxvf gtnets-current-patch.tgz -cd gtnets-current -cat ../*.patch | patch -p1 - -# Compile GTNetS -ln -sf Makefile.linux Makefile -sed -i 's/-fPIC/-fPIC -fpermissive/g' Makefile -make depend -make opt # compile an optimized version (required) -make debug # compile a debug version (optional) - -# Install under /opt -mkdir -p /opt/gtnets/include /opt/gtnets/lib -cp -fr SRC/*.h /opt/gtnets/include -cp libgtsim-opt.so /opt/gtnets/lib/libgtsim.so -\endverbatim - -Some remarks: - - +\subsection pls_simgrid_configuration_ns3_install Installing ns-3 -Add the following to your .bashrc so that it gets defined each time: - -\verbatim -export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}/opt/gtnets/lib/ -\endverbatim - -\subsection pls_simgrid_configuration_gtnets_config Enabling SimGrid's support for GTNetS - -You just have to enable GTNetS in ccmake or cmake as follows, and -recompile SimGrid. - -\verbatim -cmake . -Denable_gtnets=ON -Dgtnets_path=/opt/gtnets -\endverbatim - -By the end of the configuration, cmake reports whether GTNetS was found. -You can also double-check by executing the tests after the compilation. - -\verbatim -$ ctest -R gtnets -(several tests should be run) -\endverbatim - -\subsection pls_simgrid_configuration_gtnets_use Using GTNetS from SimGrid - -A working example can be found in the folder examples/msg/gtnets. - -\verbatim -gtnets/gtnets gtnets/onelink-p.xml gtnets/onelink-d.xml --cfg=network/model:GTNets -\endverbatim - -For more information, please refer to the GTNetS -Website or to this -possibly outdated longer HowTo - -\section pls_simgrid_configuration_ns3 NS3 as a SimGrid model - -You may want to replace the SimGrid network models by the ones of the -well known packet-level network simulator NS-3 instead. -This section explains how to do so. - -\subsection pls_simgrid_configuration_ns3_install Installing NS3 - -The easiest is to install it with the package manager. Under -Debian/Ubuntu, simply type as root: +The easiest is to install it with the package manager. Under Debian/Ubuntu, simply type as root: \verbatim apt-get install libns3-dev ns3 @@ -127,69 +35,61 @@ cd ns-allinone-3.22/ns-3.22/ ./waf install \endverbatim -For more information, please refer to the NS-3 documentation. +For more information, please refer to the ns-3 documentation. -\subsection pls_simgrid_configuration_ns3_config Enabling SimGrid's support for NS3 +\subsection pls_simgrid_configuration_ns3_config Enabling SimGrid's support for ns-3 -Normally, you just have to enable NS3 in ccmake or cmake as follows. -If you installed NS3 in a regular path, just drop the ns3_path -configuration item. +Normally, you just have to enable ns-3 in ccmake or cmake as follows. If you installed ns-3 in a regular path, just +drop the ns3_path configuration item. \verbatim cmake . -Denable_ns3=ON -Dns3_path= \endverbatim -By the end of the configuration, cmake reports whether NS-3 was found. -You can also double-check by executing the tests after the compilation. +By the end of the configuration, cmake reports whether ns-3 was found. You can also double-check by executing the tests +after the compilation. \verbatim $ ctest -R ns3 -(several tests should be run) +(test(s) should be run) \endverbatim -If you have a NS3 version that is not known (yet) to SimGrid, the -detection may fail. In that case, edit the file -buildtools/Cmake/Modules/FindNS3.cmake in your SimGrid tree. The -required changes are very easy, and documented at the beginning of -this file. +If you have a ns-3 version that is not known to SimGrid (yet), the detection may fail. In that case, edit the +tools/cmake/Modules/FindNS3.cmake file in your SimGrid tree. The required changes are very easy, and documented at the +beginning of this file. -If the compilation fails when linking the library because of some .a -file that cannot be used dynamically, that's probably because you only -installed the libns3-dev library on your Debian, where you also need -libns3-3. That's probably a bug of the libns3-dev package that should -depend on the dynamic libraries corresponding to its .so files. +If the compilation fails when linking the library because of some .a file that cannot be used dynamically, this is +probably because you only installed the libns3-dev library on your Debian, where you also need libns3-3. This is +probably a bug of the libns3-dev package that should depend on the dynamic libraries corresponding to its .so files. -\subsection pls_simgrid_configuration_ns3_use Using NS3 from SimGrid +\subsection pls_simgrid_configuration_ns3_use Using ns-3 from SimGrid -A working example of NS3/SimGrid interactions can be found in -examples/msg/ns3. Basically, you just have to run your SimGrid -simulation with the configuration option "network/model" set to the -value "NS3". The rest remains unchanged. +A working example of ns-3/SimGrid interactions can be found in examples/msg/network-ns3/. Basically, you just have to +run your SimGrid simulation with the configuration option "network/model" set to "NS3". The rest remains unchanged. -The following should work from the examples/msg/ns3 folder (ns3 here -is the name of our example binary). +The following should work from the examples/msg/network-ns3 folder (nestwork-ns3 is the name of our example binary). \verbatim -./ns3 ./3hosts_2links_p.xml 3hosts_2links_d.xml --cfg=network/model:NS3 --log=root.threshold:info +./network-ns3 ./3hosts_2links_p.xml 3hosts_2links_d.xml --cfg=network/model:NS3 --log=root.threshold:info \endverbatim -A ns-3 platform is automatically created from the SimGrid platform -file that you will provide. There is some caveats to know: +A ns-3 platform is automatically created from the provided SimGrid platform file. However, there are some known caveats: - More about ns-3 simulator (Official website) +\subsection pls_examples Examples + +There is an example in the \c examples/ folder, that shows how to use the bindings. See also the \ref MSG_ex_PLS +"documentation for this example". + */