author | Tom Henderson <tomh@tomh.org> |
Tue, 24 Nov 2015 09:54:13 -0800 | |
changeset 17 | fbb156e4ed76 |
parent 0 | e4a50ea0f07c |
permissions | -rw-r--r-- |
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" |