documentation: Update tutorial to ns-3.29 and conversion to git
This commit is contained in:
@@ -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
@@ -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
|
||||
*********************
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user