# HG changeset patch # User Tom Henderson # Date 1423166088 28800 # Node ID eb503c6688a40fa9c91437c124a42987221321d3 # Parent 4db6a4741ec7e935eb6c65e6ba1e1c19cd1e6138 tutorial updates for ns-3.22 diff -r 4db6a4741ec7 -r eb503c6688a4 doc/tutorial/source/getting-started.rst --- a/doc/tutorial/source/getting-started.rst Tue Feb 03 16:27:01 2015 -0800 +++ b/doc/tutorial/source/getting-started.rst Thu Feb 05 11:54:48 2015 -0800 @@ -72,6 +72,12 @@ downloading and building of various subsystems of |ns3| for you. We recommend that you begin your |ns3| work in this environment. +One practice is to create a directory called ``workspace`` in one's home +directory under which one can keep local Mercurial repositories. +Any directory name will do, but we'll assume that ``workspace`` is used +herein (note: ``repos`` may also be used in some documentation as +an example directory name). + Downloading |ns3| Using a Tarball +++++++++++++++++++++++++++++++++ @@ -90,32 +96,37 @@ $ cd $ mkdir workspace $ cd workspace - $ wget http://www.nsnam.org/release/ns-allinone-3.20.tar.bz2 - $ tar xjf ns-allinone-3.20.tar.bz2 + $ wget http://www.nsnam.org/release/ns-allinone-3.22.tar.bz2 + $ tar xjf ns-allinone-3.22.tar.bz2 -If you change into the directory ``ns-allinone-3.20`` you should see a +If you change into the directory ``ns-allinone-3.22`` you should see a number of files:: $ ls - bake constants.py ns-3.20 README - build.py netanim-3.103 pybindgen-0.16.0.825 util.py + bake constants.py ns-3.22 README + build.py netanim-3.105 pybindgen-0.16.0.886 util.py -You are now ready to build the |ns3| distribution. +You are now ready to build the base |ns3| distribution. Downloading |ns3| Using Bake ++++++++++++++++++++++++++++ Bake is a tool for distributed integration and building, -developed for the |ns3| project.  First of all, Bake is -developed in Python, and should be fetched from the project's -master code repositories using a tool called Mercurial, so to -run Bake one must have Python and mercurial on one's machine. +developed for the |ns3| project.  Bake can be used to fetch development +versions of the |ns3| software, and to download and build extensions to the +base |ns3| distribution, such as the Direct Code Execution environment, +Network Simulation Cradle, ability to create new Python bindings, and +others. -One practice is to create a directory called ``workspace`` in one's home -directory under which one can keep local Mercurial repositories. -Any directory name will do, but we'll assume that ``workspace`` is used -herein (note: ``repos`` may also be used in some documentation as -an example directory name). You can get a copy of ``bake`` by typing the +In recent |ns3| releases, Bake has been included in the release +tarball. The configuration file included in the released version +will allow one to download any software that was current at the +time of the release. That is, for example, the version of Bake that +is distributed with the ns-3.21 release can be used to fetch components +for that |ns3| release or earlier, but can't be used to fetch components +for later releases (unless the ``bakeconf.xml`` file is updated). + +You can also get the most recent copy of ``bake`` by typing the following into your Linux shell (assuming you have installed Mercurial):: $ cd @@ -134,7 +145,7 @@ adding changesets adding manifests adding file changes - added 252 changesets with 661 changes to 62 files + added 339 changesets with 796 changes to 63 files updating to branch default 45 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -152,10 +163,10 @@ There are a few configuration targets available: -1. ``ns-3.20``: the module corresponding to the release; it will download +1. ``ns-3.22``: the module corresponding to the release; it will download components similar to the release tarball. 2. ``ns-3-dev``: a similar module but using the development code tree -3. ``ns-allinone-3.20``: the module that includes other optional features +3. ``ns-allinone-3.22``: the module that includes other optional features such as click routing, openflow for |ns3|, and the Network Simulation Cradle 4. ``ns-3-allinone``: similar to the released version of the allinone @@ -173,7 +184,7 @@ `"ns-3 Releases" `_ web page and clicking on the latest release link. We'll proceed in -this tutorial example with ``ns-3.20``. +this tutorial example with ``ns-3.22``. We are now going to use the bake tool to pull down the various pieces of |ns3| you will be using. First, we'll say a word about running bake. @@ -199,7 +210,7 @@ Step into the workspace directory and type the following into your shell:: - $ ./bake.py configure -e ns-3.20 + $ ./bake.py configure -e ns-3.22 Next, we'l ask bake to check whether we have enough tools to download various components. Type:: @@ -232,7 +243,9 @@ In particular, download tools such as Mercurial, CVS, GIT, and Bazaar are our principal concerns at this point, since they allow us to fetch -the code. Please install missing tools at this stage if you are able to. +the code. Please install missing tools at this stage, in the usual +way for your system (if you are able to), or contact your system +administrator as needed to install these tools. Next, try to download the software:: @@ -243,17 +256,17 @@ >> Searching for system dependency pygoocanvas - OK >> Searching for system dependency python-dev - OK >> Searching for system dependency pygraphviz - OK - >> Downloading pybindgen-0.16.0.825 - OK + >> Downloading pybindgen-0.16.0.886 - OK >> Searching for system dependency g++ - OK >> Searching for system dependency qt4 - OK - >> Downloading netanim-3.103 - OK - >> Downloading ns-3.20 - OK + >> Downloading netanim-3.105 - OK + >> Downloading ns-3.22 - OK The above suggests that three sources have been downloaded. Check the ``source`` directory now and type ``ls``; one should see:: $ ls - netanim-3.103 ns-3.20 pybindgen-0.16.0.825 + netanim-3.105 ns-3.22 pybindgen-0.16.0.886 You are now ready to build the |ns3| distribution. @@ -272,7 +285,7 @@ If you downloaded using a tarball you should have a directory called something like -``ns-allinone-3.20`` under your ``~/workspace`` directory. +``ns-allinone-3.22`` under your ``~/workspace`` directory. Type the following:: $ ./build.py --enable-examples --enable-tests @@ -286,31 +299,31 @@ You will see lots of typical compiler output messages displayed as the build script builds the various pieces you downloaded. Eventually you should see the -following magic words:: +following:: - Waf: Leaving directory `/path/to/workspace/ns-allinone-3.20/ns-3.20/build' + Waf: Leaving directory `/path/to/workspace/ns-allinone-3.22/ns-3.22/build' 'build' finished successfully (6m25.032s) Modules built: antenna aodv applications bridge buildings config-store core csma csma-layout - dsdv dsr emu - energy fd-net-device flow-monitor - internet lte mesh + dsdv dsr energy + fd-net-device flow-monitor internet + lr-wpan lte mesh mobility mpi netanim (no Python) network nix-vector-routing olsr point-to-point point-to-point-layout propagation - spectrum stats tap-bridge - test (no Python) tools topology-read - uan virtual-net-device wifi - wimax - + sixlowpan spectrum stats + tap-bridge test (no Python) topology-read + uan virtual-net-device visualizer + wifi wimax + Modules not built (see ns-3 tutorial for explanation): brite click openflow visualizer - Leaving directory `./ns-3.20' + Leaving directory `./ns-3.22' Regarding the portion about modules not built:: @@ -336,9 +349,9 @@ and you should see something like:: - >> Building pybindgen-0.16.0.825 - OK - >> Building netanim-3.103 - OK - >> Building ns-3.20 - OK + >> Building pybindgen-0.16.0.886 - OK + >> Building netanim-3.105 - OK + >> Building ns-3.22 - OK *Hint: you can also perform both steps, download and build by calling 'bake.py deploy'.*