X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e37929cd4f8349d37d59645a95be3ca7a01ed353..98926ddb21f3361caf5d8e3bb9d33c0d56fef7a2:/doc/doxygen/ns3.doc
diff --git a/doc/doxygen/ns3.doc b/doc/doxygen/ns3.doc
index c34f7831ae..c91fa5561e 100644
--- a/doc/doxygen/ns3.doc
+++ b/doc/doxygen/ns3.doc
@@ -5,16 +5,7 @@
You can use the well-known
ns-3 packet-level network
simulator as a SimGrid model, for example to investigate the validity
-of your simulation.
-
-This binding is still somehow limited: you can only express what is at
-the intersection between ns-3 and SimGrid. For example, ns-3 wireless
-models are not available, while no route longuer than 1 must appear in
-your SimGrid platform (add routers on need).
-
-But if you stick to what is possible in both systems, there should be
-very little things to change in your SimGrid settings (platform and
-experimental scenario) to use ns-3
+of your simulation. Just install ns-3 and recompile SimGrid accordingly.
\section pls_ns3_install Installing ns-3
@@ -28,71 +19,158 @@ You can also install it from scratch with the following commands:
\verbatim
# Download the source
-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/
+wget http://www.nsnam.org/release/ns-allinone-3.26.tar.bz2
+tar -xf ns-allinone-3.26.tar.bz2
+cd ns-allinone-3.26/ns-3.26/
# Configure, build and install
./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
+(official website).
\section pls_ns3_config Enabling SimGrid's support for ns-3
-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.
+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_HINT configuration item.
\verbatim
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,
+and this information is also available in include/simgrid_config.h
+If your local copy defines the variable \c SIMGRID_HAVE_NS3 to 1, then ns-3
+was correctly detected. If it's defined to 0, then something went
+wrong. Explore CMakeFiles/CMakeOutput.log and
+CMakeFiles/CMakeError.log to diagnose the problem.
+
+Afterward, you can test your installation as follows:
\verbatim
$ ctest -R ns3
-(test(s) should be run)
\endverbatim
-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, 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.
-
\section pls_ns3_use Using ns-3 from SimGrid
-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/network-ns3 folder (network-ns3 is the name of our example binary).
+The SimGrid-ns3 binding only contains features that are common to both
+systems: ns-3 wireless models are not available, while SimGrid routes
+cannot be longer than 1. Also, the platform built in ns-3 from the
+SimGrid description is very basic.
+
+Any route longer than one will be ignored when using ns-3. They are
+harmless, but you still need to connect your hosts using one-hop routes.
+The best solution is to add routers to split your route. Here is an
+example of invalid platform:
+
+@code{.xml}
+