documentation: Update tutorial to ns-3.29 and conversion to git

This commit is contained in:
Tom Henderson
2019-01-07 15:27:20 -08:00
parent d82d059ab4
commit 9548c0ce9b
4 changed files with 639 additions and 459 deletions

View File

@@ -869,7 +869,7 @@ Ns-3 Source Code
Now that you have used some of the |ns3| helpers you may want to
have a look at some of the source code that implements that functionality.
The most recent code can be browsed on our web server at the following link:
http://code.nsnam.org/ns-3-dev. There, you will see the Mercurial
https://gitlab.com/nsnam/ns-3-dev.git. There, you will see the Mercurial
summary page for our |ns3| development tree.
At the top of the page, you will see a number of links,

File diff suppressed because it is too large Load Diff

View File

@@ -27,13 +27,10 @@ A few key points are worth noting at the onset:
* |ns3| is not a backwards-compatible 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 |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 a new simulator that does not support the |ns2| APIs.
About |ns3|
***********
About ns-3
**********
|ns3| has been developed to provide an open, extensible network simulation
platform, for networking research and education. In brief, |ns3| provides
@@ -58,16 +55,17 @@ a few distinguishing features of |ns3| in contrast to other tools.
data analysis and visualization tools can be used with |ns3|. However,
users should expect to work at the command line and with C++ and/or
Python software development tools.
* |ns3| is primarily used on Linux systems, although support exists
for FreeBSD, Cygwin (for Windows), and native Windows Visual Studio
support is in the process of being developed.
* |ns3| is primarily used on Linux or macOS systems, although support exists
for BSD systems and also for Windows frameworks that can build Linux code,
such as Windows Subsystem for Linux, or Cygwin. Native Windows
Visual Studio is not presently supported although a developer is working
on future support. Windows users may also use a Linux virtual machine.
* |ns3| is not an officially supported software product of any company.
Support for |ns3| is done on a best-effort basis on the
ns-3-users mailing list.
ns-3-users forum (ns-3-users@googlegroups.com).
For |ns2| Users
***************
For ns-2 Users
**************
For those familiar with |ns2| (a popular tool that preceded |ns3|),
the most visible outward change when moving to
@@ -135,20 +133,23 @@ contribute to |ns3| like they have for |ns2|:
* Open source licensing based on GNU GPLv2 compatibility
* `wiki
<http://www.nsnam.org/wiki>`_
<https://www.nsnam.org/wiki>`_
* `Contributed Code
<http://www.nsnam.org/wiki/Contributed_Code>`_ page, similar to |ns2|'s popular Contributed Code
<https://www.nsnam.org/wiki/Contributed_Code>`_ page, similar to |ns2|'s popular Contributed Code
`page
<http://nsnam.isi.edu/nsnam/index.php/Contributed_Code>`_
* Open `bug tracker
<http://www.nsnam.org/bugzilla>`_
* Use of GitLab.com including issue tracker
<https://www.gitlab.com/nsnam>`_
We realize that if you are reading this document, contributing back to
the project is probably not your foremost concern at this point, but
we want you to be aware that contributing is in the spirit of the project and
that even the act of dropping us a note about your early experience
with |ns3| (e.g. "this tutorial section was not clear..."),
reports of stale documentation, etc. are much appreciated.
reports of stale documentation or comments in the code, etc. are much
appreciated. The preferred way to submit patches is either to fork
our project on GitLab.com and generate a Merge Request, or to open
an issue on our issue tracker and append a patch.
Tutorial Organization
*********************

View File

@@ -7,45 +7,36 @@ The Web
*******
There are several important resources of which any |ns3| user must be
aware. The main web site is located at http://www.nsnam.org and
aware. The main web site is located at https://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/documentation/. You can also find documents
https://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
find at http://www.nsnam.org/wiki/. You will find user and developer
find at https://www.nsnam.org/wiki/. You will find user and developer
FAQs there, as well as troubleshooting guides, third-party contributed code,
papers, etc.
The source code may be found and browsed at http://code.nsnam.org/.
The source code may be found and browsed at GitLab.com:
https://gitlab.com/nsnam/.
There you will find the current development tree in the repository named
``ns-3-dev``. Past releases and experimental repositories of the core
developers may also be found there.
developers may also be found at the project's old Mercurial site at
http://code.nsnam.org.
Mercurial
*********
Git
***
Complex software systems need some way to manage the organization and
changes to the underlying code and documentation. There are many ways to
perform this feat, and you may have heard of some of the systems that are
currently used to do this. The Concurrent Version System (CVS) is probably
the most well known.
The |ns3| project uses Mercurial as its source code management system.
Although you do not need to know much about Mercurial in order to complete
this tutorial, we recommend becoming familiar with Mercurial and using it
to access the source code. Mercurial has a web site at
http://www.selenic.com/mercurial/,
from which you can get binary or source releases of this Software
Configuration Management (SCM) system. Selenic (the developer of Mercurial)
also provides a tutorial at
http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial/,
and a QuickStart guide at
http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart/.
You can also find vital information about using Mercurial and |ns3|
on the main |ns3| web site.
currently used to do this. Until recently, the |ns3| project used Mercurial
as its source code management system, but in December 2018, switch to
using Git. Although you do not need to know much about Git in order to
complete this tutorial, we recommend becoming familiar with Git and using it
to access the source code. GitLab.com provides resources to get started
at: https://docs.gitlab.com/ee/gitlab-basics/.
Waf
***
@@ -63,8 +54,8 @@ 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.
For those interested in the gory details of Waf, the main web site can be
found at http://code.google.com/p/waf/.
For those interested in the gory details of Waf, the Waf book is available
at https://waf.io/book/ and the current code at https://gitlab.com/ita1024/waf/.
Development Environment
***********************
@@ -76,8 +67,8 @@ 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
possibly unfamiliar language features, idioms and design patterns as they
appear. We don't want this tutorial to devolve into a C++ tutorial, though,
so we do expect a basic command of the language. There are an almost
unimaginable number of sources of information on C++ available on the web or
so we do expect a basic command of the language. There are a wide
number of sources of information on C++ available on the web or
in print.
If you are new to C++, you may want to find a tutorial- or cookbook-based
@@ -85,7 +76,7 @@ book or web site and work through at least the basic features of the language
before proceeding. For instance, `this tutorial
<http://www.cplusplus.com/doc/tutorial/>`_.
The |ns3| system uses several components of the GNU "toolchain"
On Linux, the |ns3| system uses several components of the GNU "toolchain"
for development. A
software toolchain is the set of programming tools available in the given
environment. For a quick review of what is included in the GNU toolchain see,
@@ -93,8 +84,13 @@ http://en.wikipedia.org/wiki/GNU_toolchain. |ns3| uses gcc,
GNU binutils, and gdb. However, we do not use the GNU build system tools,
neither make nor autotools. We use Waf for these functions.
Typically an |ns3| author will work in Linux or a Linux-like
environment. For those running under Windows, there do exist environments
On macOS, the toolchain used is Xcode. |ns3| users on a Mac are strongly
encouraged to install Xcode and the command-line tools packages from the
Apple App Store, and to look at the |ns3| installation wiki for more
information (https://www.nsnam.org/wiki/Installation).
Typically an |ns3| author will work in Linux or a Unix-like environment.
For those running under Windows, there do exist environments
which simulate the Linux environment to various degrees. The |ns3|
project has in the past (but not presently) supported development in the Cygwin environment for
these users. See http://www.cygwin.com/
@@ -110,7 +106,7 @@ We will assume a basic facility with the Berkeley Sockets API in the examples
used in this tutorial. If you are new to sockets, we recommend reviewing the
API and some common usage cases. For a good overview of programming TCP/IP
sockets we recommend `TCP/IP Sockets in C, Donahoo and Calvert
<http://www.elsevier.com/wps/find/bookdescription.cws_home/717656/description#description>`_.
<https://www.elsevier.com/books/tcp-ip-sockets-in-c/donahoo/978-0-12-374540-8>`_.
There is an associated web site that includes source for the examples in the
book, which you can find at:
@@ -121,6 +117,6 @@ not have access to a copy of the book, the echo clients and servers shown in
the website above) you will be in good shape to understand the tutorial.
There is a similar book on Multicast Sockets,
`Multicast Sockets, Makofske and Almeroth
<http://www.elsevier.com/wps/find/bookdescription.cws_home/700736/description#description>`_.
<https://www.elsevier.com/books/multicast-sockets/makofske/978-1-55860-846-7>`_.
that covers material you may need to understand if you look at the multicast
examples in the distribution.