X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/242fde5e8077f8193db4df5f262a9672085c8d8a..0c65a75be7d214a11c57b68c414d84df4d702e11:/doc/doxygen/pls.doc diff --git a/doc/doxygen/pls.doc b/doc/doxygen/pls.doc index e8a223f51d..8c421bf7e3 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 @@ -118,78 +26,70 @@ You can also install it from scratch with the following commands: \verbatim # Download the source -wget http://www.nsnam.org/release/ns-allinone-3.22.tar.bz2 -tar -xf ns-allinone-3.22.tar.bz2 -cd ns-allinone-3.22/ns-3.22/ +wget http://www.nsnam.org/release/ns-allinone-3.25.tar.bz2 +tar -xf ns-allinone-3.25.tar.bz2 +cd ns-allinone-3.25/ns-3.25/ # Configure, build and install -./waf configure --prefix="ns-3_install_directory" +./waf configure --prefix="/opt/ns3" # or give another path if you prefer ./waf ./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= +cmake . -Denable_ns3=ON -DNS3_HINT=/opt/ns3 # or change the path if needed \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 in the file header. -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 (network-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". + */