merge
This commit is contained in:
@@ -14,7 +14,7 @@ The @command{ns-3} simulator is a discrete-event network
|
||||
simulator targeted primarily for research and educational use.
|
||||
The @uref{http://www.nsnam.org,,@command{ns-3} project}, started in
|
||||
2006, is an open-source project. The goal of the project is to
|
||||
build a new netework simulator primarily for research and educational use.
|
||||
build a new network simulator primarily for research and educational use.
|
||||
|
||||
The purpose of this tutorial is to introduce new @command{ns-3} users to the
|
||||
system in a structured way. It is sometimes difficult for new users to
|
||||
@@ -31,14 +31,14 @@ into the workings of the system.
|
||||
Primary documentation for the @command{ns-3} project is available in
|
||||
three forms:
|
||||
@itemize @bullet
|
||||
@item ns-3 Manual: Documentation of the public APIs of the simulator
|
||||
@item @uref{http://www.nsnam.org/doxygen/index.html,,ns-3 Doxygen/Manual}: Documentation of the public APIs of the simulator
|
||||
@item Tutorial (this document)
|
||||
@item ns-3 wiki (http://www.nsnam.org/wiki/index.php)
|
||||
@item @uref{http://www.nsnam.org/wiki/index.php,, ns-3 wiki}
|
||||
@end itemize
|
||||
|
||||
|
||||
A few key points are worth noting at the onset:
|
||||
@itemize @bullet
|
||||
@item @command{ns-3} is not an extension of @command{ns-2}; it is a new
|
||||
@item @command{ns-3} is not an extension of @uref{http://www.isi.edu/nsnam/ns,,ns-2}; it is a new
|
||||
simulator. The two simulators are both written in C++ but @command{ns-3}
|
||||
is a new simulator that does not support the @command{ns-2} APIs.
|
||||
Some models from @command{ns-2} have already been ported from @command{ns-2}
|
||||
@@ -322,11 +322,11 @@ There is a similar book on Multicast Sockets,
|
||||
that covers material you may need to understand for the multicast examples.
|
||||
|
||||
@c ========================================================================
|
||||
@c The Basics
|
||||
@c Downloading and Compiling
|
||||
@c ========================================================================
|
||||
|
||||
@node The-Basics
|
||||
@chapter The Basics
|
||||
@node Downloading and Compiling
|
||||
@chapter Downloading and Compiling
|
||||
|
||||
@cindex Linux
|
||||
@cindex Cygwin
|
||||
|
||||
@@ -80,7 +80,7 @@ see @uref{http://www.nsnam.org/docs/tutorial.pdf}.
|
||||
Part 1: Overview
|
||||
* Overview::
|
||||
* Resources::
|
||||
* The-Basics::
|
||||
* Downloading and Compiling::
|
||||
* Some-Prerequisites::
|
||||
* A-First-ns-3-Script::
|
||||
Part 2: Details
|
||||
|
||||
@@ -78,21 +78,24 @@ public:
|
||||
* \param closeCompleted Callback invoked when the close operation is
|
||||
* completed.
|
||||
*/
|
||||
void SetCloseCallback (Callback<void,Ptr<Socket> > closeCompleted);
|
||||
void SetCloseCallback (Callback<void, Ptr<Socket> > closeCompleted);
|
||||
|
||||
/**
|
||||
* \param connectionSucceeded this callback is invoked when the connection request
|
||||
* initiated by the user is successfully completed. The callback is passed
|
||||
* back a pointer to the same socket object.
|
||||
* \param connectionFailed this callback is invoked when the connection request
|
||||
* initiated by the user is unsuccessfully completed. The callback is passed
|
||||
* back a pointer to the same socket object.
|
||||
* \param halfClose XXX When exactly is this callback invoked ? If it invoked when the
|
||||
* other side closes the connection ? Or when I call Close ?
|
||||
* \param connectionSucceeded this callback is invoked when the
|
||||
* connection request initiated by the user is successfully
|
||||
* completed. The callback is passed back a pointer to
|
||||
* the same socket object.
|
||||
* \param connectionFailed this callback is invoked when the
|
||||
* connection request initiated by the user is unsuccessfully
|
||||
* completed. The callback is passed back a pointer to the
|
||||
* same socket object.
|
||||
* \param halfClose XXX When exactly is this callback invoked? If
|
||||
* it invoked when the other side closes the connection ?
|
||||
* Or when I call Close ?
|
||||
*/
|
||||
void SetConnectCallback (Callback<void, Ptr<Socket> > connectionSucceeded,
|
||||
Callback<void, Ptr<Socket> > connectionFailed,
|
||||
Callback<void, Ptr<Socket> > halfClose);
|
||||
Callback<void, Ptr<Socket> > connectionFailed,
|
||||
Callback<void, Ptr<Socket> > halfClose);
|
||||
/**
|
||||
* \brief Accept connection requests from remote hosts
|
||||
* \param connectionRequest Callback for connection request from peer.
|
||||
@@ -100,28 +103,31 @@ public:
|
||||
* ip address and the port number of the connection originator.
|
||||
* This callback must return true to accept the incoming connection,
|
||||
* false otherwise. If the connection is accepted, the
|
||||
* "newConnectionCreated" callback will be invoked later to give access
|
||||
* to the user to the socket created to match this new connection. If the
|
||||
* user does not explicitely specify this callback, all incoming
|
||||
* connections will be refused.
|
||||
* "newConnectionCreated" callback will be invoked later to
|
||||
* give access to the user to the socket created to match
|
||||
* this new connection. If the user does not explicitly
|
||||
* specify this callback, all incoming connections will be refused.
|
||||
* \param newConnectionCreated Callback for new connection: when a new
|
||||
* is accepted, it is created and the corresponding socket is passed
|
||||
* back to the user through this callback. This user callback is passed
|
||||
* a pointer to the new socket, and the ip address and port number
|
||||
* of the connection originator.
|
||||
* back to the user through this callback. This user callback is
|
||||
* passed a pointer to the new socket, and the ip address and
|
||||
* port number of the connection originator.
|
||||
* \param closeRequested Callback for connection close request from peer.
|
||||
* XXX: when is this callback invoked ?
|
||||
*/
|
||||
void SetAcceptCallback (Callback<bool, Ptr<Socket>, const Address &> connectionRequest,
|
||||
Callback<void, Ptr<Socket>, const Address&> newConnectionCreated,
|
||||
Callback<void, Ptr<Socket> > closeRequested);
|
||||
void SetAcceptCallback (Callback<bool, Ptr<Socket>,
|
||||
const Address &> connectionRequest,
|
||||
Callback<void, Ptr<Socket>,
|
||||
const Address&> newConnectionCreated,
|
||||
Callback<void, Ptr<Socket> > closeRequested);
|
||||
void SetSendCallback (Callback<void, Ptr<Socket>, uint32_t> dataSent);
|
||||
/**
|
||||
* \brief Receive data
|
||||
* \param receivedData Invoked whenever new data is received.
|
||||
*
|
||||
*/
|
||||
void SetRecvCallback (Callback<void, Ptr<Socket>, Ptr<Packet>,const Address&> receivedData);
|
||||
void SetRecvCallback (Callback<void, Ptr<Socket>, Ptr<Packet>,
|
||||
const Address&> receivedData);
|
||||
|
||||
/**
|
||||
* \param address the address to try to allocate
|
||||
|
||||
Reference in New Issue
Block a user