Freshen the tutorial
authorTom Henderson <tomh@tomh.org>
Fri, 23 Dec 2011 12:00:12 -0800
changeset 7654 62ecccd96cad
parent 7653 c78cc7e78b3f
child 7655 b60c39fc3abf
Freshen the tutorial
doc/tutorial/source/conclusion.rst
doc/tutorial/source/getting-started.rst
doc/tutorial/source/introduction.rst
doc/tutorial/source/resources.rst
--- a/doc/tutorial/source/conclusion.rst	Fri Dec 23 11:29:36 2011 -0800
+++ b/doc/tutorial/source/conclusion.rst	Fri Dec 23 12:00:12 2011 -0800
@@ -7,17 +7,8 @@
 Futures
 *******
 
-This document is a work in process.  We hope and expect it to grow over time
-to cover more and more of the nuts and bolts of |ns3|.  
-
-We hope to add the following chapters over the next few releases:
-
-* The Callback System
-* The Object System and Memory Management
-* The Routing System
-* Adding a New NetDevice and Channel
-* Adding a New Protocol
-* Working with Real Networks and Hosts
+This document is intended as a living document.  We hope and expect it to 
+grow over time to cover more and more of the nuts and bolts of |ns3|.  
 
 Writing manual and tutorial chapters is not something we all get excited about,
 but it is very important to the project.  If you are an expert in one of these
@@ -28,10 +19,13 @@
 *******
 
 |ns3| is a large and complicated system.  It is impossible to cover all 
-of the things you will need to know in one small tutorial.
+of the things you will need to know in one small tutorial.  Readers
+who want to learn more are encouraged to read the following additional
+documentation:
 
-We have really just scratched the surface of |ns3| in this tutorial, 
-but we hope to have covered enough to get you started doing useful networking 
-research using our favorite simulator.
+* The |ns3| manual
+* The |ns3| model library documentatio
+* The |ns3| Doxygen (API documentation)
+* The |ns3| wiki
 
 -- The |ns3| development team.
--- a/doc/tutorial/source/getting-started.rst	Fri Dec 23 11:29:36 2011 -0800
+++ b/doc/tutorial/source/getting-started.rst	Fri Dec 23 12:00:12 2011 -0800
@@ -53,7 +53,6 @@
 following into your Linux shell (assuming you have installed Mercurial):
 
 ::
-
   cd
   mkdir repos
   cd repos
@@ -69,11 +68,12 @@
   adding changesets
   adding manifests
   adding file changes
-  added 31 changesets with 45 changes to 7 files
+  added 47 changesets with 67 changes to 7 files
+  updating to branch default
   7 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 After the clone command completes, you should have a directory called 
-``ns-3-allinone`` under your ``~/repos`` directory, the contents of which should 
+``ns-3-allinone``, the contents of which should 
 look something like the following:
 
 ::
@@ -221,7 +221,7 @@
 in one's home directory under which one can keep local Mercurial repositories.
 One could also keep a ``tarballs`` directory.  *Hint:  the tutorial
 will assume you downloaded into a ``repos`` directory, so remember the
-placekeeper.``*  If you adopt the ``tarballs`` directory approach, you can 
+placekeeper.*  If you adopt the ``tarballs`` directory approach, you can 
 get a copy of a release by typing the following into your Linux shell 
 (substitute the appropriate version numbers, of course):
 
@@ -230,15 +230,15 @@
   cd
   mkdir tarballs
   cd tarballs
-  wget http://www.nsnam.org/releases/ns-allinone-3.10.tar.bz2
-  tar xjf ns-allinone-3.10.tar.bz2
+  wget http://www.nsnam.org/releases/ns-allinone-3.13.tar.bz2
+  tar xjf ns-allinone-3.13.tar.bz2
 
-If you change into the directory ``ns-allinone-3.10`` you should see a
+If you change into the directory ``ns-allinone-3.13`` you should see a
 number of files:
 
 ::
 
-  build.py      ns-3.10/      pybindgen-0.15.0/    util.py
+  build.py      ns-3.13/      pybindgen-0.15.0.795/    util.py
   constants.py  nsc-0.5.2/    README  
 
 You are now ready to build the |ns3| distribution.
@@ -256,7 +256,7 @@
 downloaded using Mercurial you should have a directory called 
 ``ns-3-allinone`` under your ``~/repos`` directory.  If you downloaded
 using a tarball you should have a directory called something like 
-``ns-allinone-3.10`` under your ``~/tarballs`` directory.  Take a deep
+``ns-allinone-3.13`` under your ``~/tarballs`` directory.  Take a deep
 breath and type the following:
 
 ::
@@ -274,7 +274,7 @@
 
 ::
 
-  Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
+  Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3.13/build'
   'build' finished successfully (2m30.586s)
   
   Modules built: 
@@ -292,12 +292,12 @@
   topology-read             uan                       virtual-net-device
   visualizer                wifi                      wimax
 
-Once the project has built you can say goodbye to your old friends, the 
+Once the project has built, you can stop working with the
 ``ns-3-allinone`` scripts.  You got what you needed from them and will now 
-interact directly with Waf and we do it in the ``ns-3-dev`` directory,
+interact directly with Waf and we do it in the |ns3| directory,
 not in the ``ns-3-allinone`` directory.  Go ahead and change into the 
-``ns-3-dev`` directory (or the directory for the appropriate release you
-downloaded.
+|ns3| directory (or the directory for the appropriate release  or
+development snapshot that you downloaded; e.g.  
 
 ::
 
@@ -399,7 +399,7 @@
   ./waf -d debug --enable-examples --enable-tests configure
 
 The build system is now configured and you can build the debug versions of 
-the |ns3| programs by simply typing,
+the |ns3| programs by simply typing
 
 ::
 
@@ -443,7 +443,7 @@
 
 ::
 
-  47 of 47 tests passed (47 passed, 0 failed, 0 crashed, 0 valgrind errors)
+  92 of 92 tests passed (92 passed, 0 failed, 0 crashed, 0 valgrind errors)
 
 This is the important message.
 
@@ -486,9 +486,9 @@
   PASS: TestSuite basic-random-number
   PASS: TestSuite object
   PASS: TestSuite random-number-generators
-  95 of 95 tests passed (95 passed, 0 failed, 0 crashed, 0 valgrind errors)
+  92 of 92 tests passed (92 passed, 0 failed, 0 crashed, 0 valgrind errors)
 
-This command is typically run by ``users`` to quickly verify that an 
+This command is typically run by users to quickly verify that an 
 |ns3| distribution has built correctly.  
 
 Running a Script
--- a/doc/tutorial/source/introduction.rst	Fri Dec 23 11:29:36 2011 -0800
+++ b/doc/tutorial/source/introduction.rst	Fri Dec 23 12:00:12 2011 -0800
@@ -25,48 +25,49 @@
 * Ns-3 is not an extension of `ns-2
   <http://www.isi.edu/nsnam/ns>`_; 
   it is a new simulator.  The two simulators are both written in C++ but 
-  |ns3| is a new simulator that does not support the ns-2 APIs.  Some 
-  models from ns-2 have already been ported from ns-2 to |ns3|. The 
-  project will continue to maintain ns-2 while |ns3| is being built,
+  |ns3| is a new simulator that does not support the |ns2| APIs.  Some 
+  models from |ns2| have already been ported from |ns2| to |ns3|. The 
+  project will continue to maintain |ns2| while |ns3| is being built,
   and will study transition and integration mechanisms.
 * |ns3| is open-source, and the project strives to maintain an 
-  open  environment for researchers to contribute and share their software.  
+  open environment for researchers to contribute and share their software.  
 
  
-For ns-2 Users
+For |ns2| Users
 **************
 
-For those familiar with ns-2, the most visible outward change when moving to 
-|ns3| is the choice of scripting language.  Ns-2 is 
+For those familiar with |ns2|, the most visible outward change when moving to 
+|ns3| is the choice of scripting language.  Programs in |ns2| are 
 scripted in OTcl and results of simulations can be visualized using the 
 Network Animator nam.  It is not possible to run a simulation
-in ns-2 purely from C++ (i.e., as a main() program without any OTcl).
-Moreover, some components of ns-2 are written in C++ and others in OTcl.
+in |ns2| purely from C++ (i.e., as a main() program without any OTcl).
+Moreover, some components of |ns2| are written in C++ and others in OTcl.
 In |ns3|, the simulator is written entirely in C++, with optional
 Python bindings.  Simulation scripts can therefore be written in C++
-or in Python.  The results of some simulations can be visualized by
-nam, but new animators are under development.  Since |ns3|
+or in Python.  New animators and visualizers are available and under
+current development.  Since |ns3|
 generates pcap packet trace files, other utilities can be used to
 analyze traces as well.
 In this tutorial, we will first concentrate on scripting 
 directly in C++ and interpreting results via trace files.  
 
 But there are similarities as well (both, for example, are based on C++ 
-objects, and some code from ns-2 has already been ported to |ns3|).
-We will try to highlight differences between ns-2 and |ns3|
+objects, and some code from |ns2| has already been ported to |ns3|).
+We will try to highlight differences between |ns2| and |ns3|
 as we proceed in this tutorial.
 
-A question that we often hear is "Should I still use ns-2 or move to
+A question that we often hear is "Should I still use |ns2| or move to
 |ns3|?"  The answer is that it depends.  |ns3| does not have
-all of the models that ns-2 currently has, but on the other hand, |ns3|
+all of the models that |ns2| currently has, but on the other hand, |ns3|
 does have new capabilities (such as handling multiple interfaces on nodes 
 correctly, use of IP addressing and more alignment with Internet
-protocols and designs, more detailed 802.11 models, etc.).  ns-2
-models can usually be ported to |ns3| (a porting guide is under
-development).  There is active development on multiple fronts for 
-|ns3|.  The |ns3| developers believe (and certain early users
-have proven) that |ns3| is ready for active use, and should be an 
-attractive alternative for users looking to start new simulation projects.  
+protocols and designs, more detailed 802.11 models, etc.).  |ns2|
+models can sometimes be ported to |ns3| (a porting guide is under
+development).  The support available on the user mailing list, and the
+developer and maintainer activity, is higher for |ns3|.  A good guideline
+would be to look at both simulators, and in particular the models available
+for your research, but when in doubt or when starting new simulation 
+projects, choose the tool that is under more active development (|ns3|).
 
 Contributing
 ************
@@ -75,13 +76,13 @@
 research community.  It will rely on the ongoing contributions of the 
 community to develop new models, debug or maintain existing ones, and share 
 results.  There are a few policies that we hope will encourage people to 
-contribute to |ns3| like they have for ns-2:
+contribute to |ns3| like they have for |ns2|:
 
 * Open source licensing based on GNU GPLv2 compatibility
 * `wiki
   <http://www.nsnam.org/wiki/index.php>`_
 * `Contributed Code
-  <http://www.nsnam.org/wiki/index.php/Contributed_Code>`_ page, similar to ns-2's popular Contributed Code
+  <http://www.nsnam.org/wiki/index.php/Contributed_Code>`_ page, similar to |ns2|'s popular Contributed Code
   `page
   <http://nsnam.isi.edu/nsnam/index.php/Contributed_Code>`_ 
 * Open `bug tracker
--- a/doc/tutorial/source/resources.rst	Fri Dec 23 11:29:36 2011 -0800
+++ b/doc/tutorial/source/resources.rst	Fri Dec 23 12:00:12 2011 -0800
@@ -10,7 +10,7 @@
 aware.  The main web site is located at http://www.nsnam.org and 
 provides access to basic information about the |ns3| system.  Detailed 
 documentation is available through the main web site at
-http://www.nsnam.org/documents.html.  You can also find documents 
+http://www.nsnam.org/documentation/.  You can also find documents 
 relating to the system architecture from this page.
 
 There is a Wiki that complements the main |ns3| web site which you will
@@ -61,9 +61,7 @@
 
 The build system Waf is used on the |ns3| project.  It is one 
 of the new generation of Python-based build systems.  You will not need to 
-understand any Python to build the existing |ns3| system, and will 
-only have to understand a tiny and intuitively obvious subset of Python in 
-order to extend the system in most cases.
+understand any Python to build the existing |ns3| system.
 
 For those interested in the gory details of Waf, the main web site can be 
 found at http://code.google.com/p/waf/.
@@ -72,7 +70,7 @@
 ***********************
 
 As mentioned above, scripting in |ns3| is done in C++ or Python.
-As of ns-3.2, most of the |ns3| API is available in Python, but the 
+Most of the |ns3| API is available in Python, but the 
 models are written in C++ in either case.  A working 
 knowledge of C++ and object-oriented concepts is assumed in this document.
 We will take some time to review some of the more advanced concepts or 
@@ -98,26 +96,10 @@
 Typically an |ns3| author will work in Linux or a Linux-like
 environment.  For those running under Windows, there do exist environments 
 which simulate the Linux environment to various degrees.  The |ns3| 
-project supports development in the Cygwin environment for 
+project has in the past (but not presently) supported development in the Cygwin environment for 
 these users.  See http://www.cygwin.com/ 
-for details on downloading (MinGW is presently not officially supported,
-although some of the project maintainers to work with it). Cygwin provides 
-many of the popular Linux system commands.  It can, however, sometimes be 
-problematic due to the way it actually does its emulation, and sometimes
-interactions with other Windows software can cause problems.
-
-If you do use Cygwin or MinGW; and use Logitech products, we will save you
-quite a bit of heartburn right off the bat and encourage you to take a look
-at the `MinGW FAQ
-<http://oldwiki.mingw.org/index.php/FAQ>`_.
-
-Search for "Logitech" and read the FAQ entry, "why does make often 
-crash creating a sh.exe.stackdump file when I try to compile my source code."
-Believe it or not, the ``Logitech Process Monitor`` insinuates itself into
-every DLL in the system when it is running.  It can cause your Cygwin or
-MinGW DLLs to die in mysterious ways and often prevents debuggers from 
-running.  Beware of Logitech software when using Cygwin.
-
+for details on downloading, and visit the |ns3| wiki for more information
+about Cygwin and |ns3|.  MinGW is presently not officially supported.
 Another alternative to Cygwin is to install a virtual machine environment
 such as VMware server and install a Linux virtual machine.