README
author Tom Henderson <tomh@tomh.org>
Tue, 24 Nov 2015 09:54:13 -0800
changeset 17 fbb156e4ed76
parent 0 e4a50ea0f07c
permissions -rw-r--r--
add scripts to generate plots and statistics
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     1
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     2
    The Network Simulator, Version 3
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     3
    --------------------------------
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     4
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     5
Table of Contents:
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     6
------------------
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     7
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     8
1) An overview
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
     9
2) Building ns-3
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    10
3) Running ns-3
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    11
4) Getting access to the ns-3 documentation
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    12
5) Working with the development version of ns-3
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    13
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    14
Note:  Much more substantial information about ns-3 can be found at
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    15
http://www.nsnam.org
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    16
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    17
1) An Open Source project
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    18
-------------------------
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    19
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    20
ns-3 is a free open source project aiming to build a discrete-event
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    21
network simulator targeted for simulation research and education.   
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    22
This is a collaborative project; we hope that
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    23
the missing pieces of the models we have not yet implemented
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    24
will be contributed by the community in an open collaboration
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    25
process.
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    26
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    27
The process of contributing to the ns-3 project varies with
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    28
the people involved, the amount of time they can invest
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    29
and the type of model they want to work on, but the current
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    30
process that the project tries to follow is described here:
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    31
http://www.nsnam.org/developers/contributing-code/
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    32
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    33
This README excerpts some details from a more extensive
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    34
tutorial that is maintained at:
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    35
http://www.nsnam.org/documentation/latest/
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    36
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    37
2) Building ns-3
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    38
----------------
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    39
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    40
The code for the framework and the default models provided
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    41
by ns-3 is built as a set of libraries. User simulations
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    42
are expected to be written as simple programs that make
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    43
use of these ns-3 libraries.
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    44
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    45
To build the set of default libraries and the example
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    46
programs included in this package, you need to use the
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    47
tool 'waf'. Detailed information on how use waf is 
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    48
included in the file doc/build.txt
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    49
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    50
However, the real quick and dirty way to get started is to
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    51
type the command
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    52
  ./waf configure --enable-examples
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    53
followed by
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    54
  ./waf 
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    55
in the the directory which contains
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    56
this README file. The files built will be copied in the
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    57
build/ directory.
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    58
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    59
The current codebase is expected to build and run on the
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    60
set of platforms listed in the RELEASE_NOTES file.
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    61
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    62
Other platforms may or may not work: we welcome patches to 
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    63
improve the portability of the code to these other platforms. 
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    64
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    65
3) Running ns-3
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    66
---------------
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    67
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    68
On recent Linux systems, once you have built ns-3 (with examples
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    69
enabled), it should be easy to run the sample programs with the
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    70
following command, such as:
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    71
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    72
  ./waf --run simple-global-routing
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    73
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    74
That program should generate a simple-global-routing.tr text 
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    75
trace file and a set of simple-global-routing-xx-xx.pcap binary
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    76
pcap trace files, which can be read by tcpdump -tt -r filename.pcap
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    77
The program source can be found in the examples/routing directory.
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    78
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    79
4) Getting access to the ns-3 documentation
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    80
-------------------------------------------
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    81
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    82
Once you have verified that your build of ns-3 works by running
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    83
the simple-point-to-point example as outlined in 4) above, it is
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    84
quite likely that you will want to get started on reading
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    85
some ns-3 documentation. 
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    86
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    87
All of that documentation should always be available from
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    88
the ns-3 website: http:://www.nsnam.org/documentation/.
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    89
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    90
This documentation includes:
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    91
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    92
  - a tutorial
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    93
 
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    94
  - a reference manual
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    95
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    96
  - models in the ns-3 model library
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    97
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    98
  - a wiki for user-contributed tips: http://www.nsnam.org/wiki/
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
    99
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   100
  - API documentation generated using doxygen: this is
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   101
    a reference manual, most likely not very well suited 
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   102
    as introductory text:
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   103
    http://www.nsnam.org/doxygen/index.html
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   104
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   105
5) Working with the development version of ns-3
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   106
-----------------------------------------------
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   107
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   108
If you want to download and use the development version 
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   109
of ns-3, you need to use the tool 'mercurial'. A quick and
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   110
dirty cheat sheet is included in doc/mercurial.txt but
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   111
reading through the mercurial tutorials included on the
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   112
mercurial website is usually a good idea if you are not
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   113
familiar with it.
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   114
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   115
If you have successfully installed mercurial, you can get
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   116
a copy of the development version with the following command:
e4a50ea0f07c initial commit of new repository 5-Oct-2015
Tom Henderson <tomh@tomh.org>
parents:
diff changeset
   117
"hg clone http://code.nsnam.org/ns-3-dev"