Rescan wifi's bindings and fix some paths in the documentation

Mitch Watrous 2011-05-09 18:04:52 -07:00
parent 7d42502a16
commit 22efca3d83
14 changed files with 87 additions and 108 deletions

View File

@ -76,7 +76,7 @@ with --enable-gcov)
=== Extending ns-3 ===
To add new modules:
1. Create the module directory under src (or src/devices, or whatever);
1. Create the module directory under src;
2. Add the source files to it;
3. Add a 'wscript' describing it;
4. Add the module subdirectory name to the all_modules list in src/wscript.

View File

@ -603,13 +603,13 @@ RECURSIVE = YES
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
EXCLUDE = src/routing/olsr/olsr-state.h \
src/routing/olsr/olsr-repositories.h \
src/simulator/high-precision.h \
src/simulator/high-precision-128.h \
src/simulator/high-precision-double.h \
src/tools/visualizer/model/visual-simulator-impl.h \
src/tools/visualizer/model/pyviz.h
EXCLUDE = src/olsr/model/olsr-state.h \
src/olsr/model/olsr-repositories.h \
src/core/model/high-precision.h \
src/core/model/high-precision-128.h \
src/core/model/high-precision-double.h \
src/visualizer/model/visual-simulator-impl.h \
src/visualizer/model/pyviz.h
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
# directories that are symbolic links (a Unix filesystem feature) are excluded

View File

@ -34,24 +34,14 @@
*
* \section module-sec Module overview
*
* The ns-3 library is split across multiple modules:
* The ns-3 library is split across many modules. :
* - core: located in src/core and contains a number of facilities which
* do not depend on any other module. Some of these facilities are
* OS-dependent.
* - simulator: located in src/simulator and contains event scheduling
* facilities.
* - common: located in src/common and contains facilities specific
* to network simulations but shared by pretty much every model
* of a network component.
* - node: located in src/node. Defines the abstract interfaces which
* must be implemented by every node and more specifically, by
* IPv4 and IPv6 nodes.
* - devices: located in src/devices. Contains a set of MAC-level models
* - InternetStack: located in src/internet-stack. Contains TCP/IP models.
* - Applications: located in src/applications
* - Routing: located in src/routing; routing protocols.
* - Mobility: located in src/mobility; Mobility models for nodes
* - Helper: located in src/helper; Helper API for the simulator
* - network: located in src/network. Network related files.
* - internet: located in src/internet. Internet related files.
* - applications: located in src/applications
* - mobility: located in src/mobility; Mobility models for nodes
*
* More detail can be found in the <b><a href="modules.html">Modules</a></b>
* tab.

View File

@ -641,14 +641,14 @@ ConfigStore
***********
**Feedback requested:** This is an experimental feature of |ns3|. It is found
in ``src/contrib`` and not in the main tree. If you like this feature and
in ``src/config-store``. If you like this feature and
would like to provide feedback on it, please email us.
Values for |ns3| attributes can be stored in an ASCII or XML text file and
loaded into a future simulation. This feature is known as the |ns3|
ConfigStore. The ConfigStore code is in ``src/contrib/``. It is not yet
main-tree code, because we are seeking some user feedback and experience with
this.
Values for |ns3| attributes can be stored in an ASCII or XML text file
and loaded into a future simulation. This feature is known as the
|ns3| ConfigStore. The ConfigStore code is in ``src/config-store/``.
It is still considered as unstable code, because we are seeking some
user feedback and experience with this.
We can explore this system by using an example. Copy the ``csma-bridge.cc``
file to the scratch directory:::

View File

@ -27,10 +27,9 @@ on modules beneath them in the figure.
We first describe the core of the simulator; those components that are
common across all protocol, hardware, and environmental models.
The simulation core is implemented
in ``src/core``, and the core is used to build the simulation engine
``src/simulator``. Packets are fundamental objects in a network simulator
and are implemented in ``src/common``. These three simulation modules by
The simulation core is implemented in ``src/core``. Packets are
fundamental objects in a network simulator
and are implemented in ``src/network``. These two simulation modules by
themselves are intended to comprise a generic simulation core that can be
used by different kinds of networks, not just Internet-based networks. The
above modules of |ns3| are independent of specific network and device

View File

@ -195,7 +195,7 @@ There are a few example files. Try::
These examples will deposit some ``.pcap`` files in your directory,
which can be examined by tcpdump or wireshark.
Let's look at the ``examples/tcp-nsc-zoo.cc`` file for some typical
Let's look at the ``examples/tcp/tcp-nsc-zoo.cc`` file for some typical
usage. How does it differ from using native |ns3| TCP? There is one main
configuration line, when using NSC and the |ns3| helper API, that needs to be
set:::
@ -233,7 +233,7 @@ sockets, as described above and documented in `Doxygen
<http://www.nsnam.org/doxygen/classns3_1_1_tcp_socket.html>`_
Additionally, NSC TCP exports a lot of configuration variables into the
|ns3| :ref:`Attributes` system, via a `sysctl <http://en.wikipedia.org/wiki/Sysctl>`_-like interface. In the ``examples/tcp-nsc-zoo`` example, you
|ns3| :ref:`Attributes` system, via a `sysctl <http://en.wikipedia.org/wiki/Sysctl>`_-like interface. In the ``examples/tcp/tcp-nsc-zoo`` example, you
can see the following configuration:::

View File

@ -105,7 +105,7 @@ limitation found in ns-2. Presently, however, there is no model for
cross-channel interference or coupling.
The source code for the Wifi NetDevice lives in the directory
``src/devices/wifi``.
``src/wifi``.
.. _wifi-architecture:

View File

@ -16,7 +16,7 @@ of the |ns3| model are:
* packet tracing functionality
The source code for the WiMAX models lives in the directory
``src/devices/wimax``.
``src/wimax``.
There have been two academic papers published on this model:

View File

@ -31,7 +31,7 @@ TestSuite), these things need to be decided up front:
separately in src/test/ directory). You will have to edit the wscript
file in that directory to compile your new code, if it is a new file.
See the file ``src/test/sample-test-suite.cc`` and corresponding
See the file ``src/template/test/sample-test-suite.cc`` and corresponding
wscript file in that directory for a simple example, and see the directories
under ``src/test`` for more complicated examples.

View File

@ -421,10 +421,10 @@ size as the object name service code itself. Unit tests are tests that
check a single bit of functionality that are not built into the ns-3 code,
but live in the same directory as the code it tests. It is possible that
these tests check integration of multiple implementation files in a module
as well. The file src/core/names-test-suite.cc is an example of this kind
of test. The file src/common/pcap-file-test-suite.cc is another example
as well. The file src/core/test/names-test-suite.cc is an example of this kind
of test. The file src/network/test/pcap-file-test-suite.cc is another example
that uses a known good pcap file as a test vector file. This file is stored
locally in the src/common directory.
locally in the src/network directory.
System Tests
++++++++++++
@ -742,7 +742,7 @@ arguments as needed, but basedir is the minimum needed)::
(gdb) r --basedir=`pwd`
Starting program: <..>/build/debug/utils/test-runner --basedir=`pwd`
[Thread debugging using libthread_db enabled]
assert failed. file=../src/core/type-id.cc, line=138, cond="uid <= m_information.size () && uid != 0"
assert failed. file=../src/core/model/type-id.cc, line=138, cond="uid <= m_information.size () && uid != 0"
...
Here is another example of how to use valgrind to debug a memory problem

View File

@ -1766,9 +1766,9 @@ add an error model to this code also, so we wanted to demonstrate this working.
This trace sink will be connected to the "PhyRxDrop" trace source of the
point-to-point NetDevice. This trace source fires when a packet is dropped
by the physical layer of a ``NetDevice``. If you take a small detour to the
source (``src/devices/point-to-point/point-to-point-net-device.cc``) you will
source (``src/point-to-point/model/point-to-point-net-device.cc``) you will
see that this trace source refers to ``PointToPointNetDevice::m_phyRxDropTrace``.
If you then look in ``src/devices/point-to-point/point-to-point-net-device.h``
If you then look in ``src/point-to-point/model/point-to-point-net-device.h``
for this member variable, you will find that it is declared as a
``TracedCallback<Ptr<const Packet> >``. This should tell you that the
callback target should be a function that returns void and takes a single

View File

@ -7,6 +7,11 @@ def build(bld):
# Set the C++ source files for this module.
module.source = [
# Uncomment this line to compile this model source file.
#'model/sample-model.cc',
# Uncomment this line to compile this helper source file.
#'helper/sample-helper.cc',
]
# Create the module's test library.
@ -23,6 +28,11 @@ def build(bld):
# Set the C++ header files for this module.
headers.source = [
# Uncomment this line to install this model header file.
#'model/sample-model.h',
# Uncomment this line to install this helper header file.
#'helper/sample-helper.h',
]
# Uncomment these lines if this module needs a library such as the

View File

@ -1869,11 +1869,6 @@ def register_Ns3InterferenceHelper_methods(root_module, cls):
cls.add_method('CalculateSnrPer',
'ns3::InterferenceHelper::SnrPer',
[param('ns3::Ptr< ns3::InterferenceHelper::Event >', 'event')])
## interference-helper.h (module 'wifi'): static ns3::Time ns3::InterferenceHelper::CalculateTxDuration(uint32_t size, ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('CalculateTxDuration',
'ns3::Time',
[param('uint32_t', 'size'), param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## interference-helper.h (module 'wifi'): void ns3::InterferenceHelper::EraseEvents() [member function]
cls.add_method('EraseEvents',
'void',
@ -1892,26 +1887,6 @@ def register_Ns3InterferenceHelper_methods(root_module, cls):
'double',
[],
is_const=True)
## interference-helper.h (module 'wifi'): static uint32_t ns3::InterferenceHelper::GetPayloadDurationMicroSeconds(uint32_t size, ns3::WifiMode payloadMode) [member function]
cls.add_method('GetPayloadDurationMicroSeconds',
'uint32_t',
[param('uint32_t', 'size'), param('ns3::WifiMode', 'payloadMode')],
is_static=True)
## interference-helper.h (module 'wifi'): static uint32_t ns3::InterferenceHelper::GetPlcpHeaderDurationMicroSeconds(ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('GetPlcpHeaderDurationMicroSeconds',
'uint32_t',
[param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## interference-helper.h (module 'wifi'): static ns3::WifiMode ns3::InterferenceHelper::GetPlcpHeaderMode(ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('GetPlcpHeaderMode',
'ns3::WifiMode',
[param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## interference-helper.h (module 'wifi'): static uint32_t ns3::InterferenceHelper::GetPlcpPreambleDurationMicroSeconds(ns3::WifiMode mode, ns3::WifiPreamble preamble) [member function]
cls.add_method('GetPlcpPreambleDurationMicroSeconds',
'uint32_t',
[param('ns3::WifiMode', 'mode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## interference-helper.h (module 'wifi'): void ns3::InterferenceHelper::NotifyRxEnd() [member function]
cls.add_method('NotifyRxEnd',
'void',
@ -6266,11 +6241,11 @@ def register_Ns3WifiPhy_methods(root_module, cls):
'double',
[param('ns3::WifiMode', 'txMode'), param('double', 'ber')],
is_pure_virtual=True, is_const=True, is_virtual=True)
## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::CalculateTxDuration(uint32_t size, ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) const [member function]
## wifi-phy.h (module 'wifi'): static ns3::Time ns3::WifiPhy::CalculateTxDuration(uint32_t size, ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('CalculateTxDuration',
'ns3::Time',
[param('uint32_t', 'size'), param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_pure_virtual=True, is_const=True, is_virtual=True)
is_static=True)
## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureStandard(ns3::WifiPhyStandard standard) [member function]
cls.add_method('ConfigureStandard',
'void',
@ -6491,6 +6466,26 @@ def register_Ns3WifiPhy_methods(root_module, cls):
'ns3::WifiMode',
[],
is_static=True)
## wifi-phy.h (module 'wifi'): static uint32_t ns3::WifiPhy::GetPayloadDurationMicroSeconds(uint32_t size, ns3::WifiMode payloadMode) [member function]
cls.add_method('GetPayloadDurationMicroSeconds',
'uint32_t',
[param('uint32_t', 'size'), param('ns3::WifiMode', 'payloadMode')],
is_static=True)
## wifi-phy.h (module 'wifi'): static uint32_t ns3::WifiPhy::GetPlcpHeaderDurationMicroSeconds(ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('GetPlcpHeaderDurationMicroSeconds',
'uint32_t',
[param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## wifi-phy.h (module 'wifi'): static ns3::WifiMode ns3::WifiPhy::GetPlcpHeaderMode(ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('GetPlcpHeaderMode',
'ns3::WifiMode',
[param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## wifi-phy.h (module 'wifi'): static uint32_t ns3::WifiPhy::GetPlcpPreambleDurationMicroSeconds(ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('GetPlcpPreambleDurationMicroSeconds',
'uint32_t',
[param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetStateDuration() [member function]
cls.add_method('GetStateDuration',
'ns3::Time',
@ -7084,11 +7079,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls):
'ns3::Time',
[],
is_const=True, is_virtual=True)
## yans-wifi-phy.h (module 'wifi'): ns3::Time ns3::YansWifiPhy::CalculateTxDuration(uint32_t size, ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) const [member function]
cls.add_method('CalculateTxDuration',
'ns3::Time',
[param('uint32_t', 'size'), param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_const=True, is_virtual=True)
## yans-wifi-phy.h (module 'wifi'): uint32_t ns3::YansWifiPhy::GetNModes() const [member function]
cls.add_method('GetNModes',
'uint32_t',

View File

@ -1869,11 +1869,6 @@ def register_Ns3InterferenceHelper_methods(root_module, cls):
cls.add_method('CalculateSnrPer',
'ns3::InterferenceHelper::SnrPer',
[param('ns3::Ptr< ns3::InterferenceHelper::Event >', 'event')])
## interference-helper.h (module 'wifi'): static ns3::Time ns3::InterferenceHelper::CalculateTxDuration(uint32_t size, ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('CalculateTxDuration',
'ns3::Time',
[param('uint32_t', 'size'), param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## interference-helper.h (module 'wifi'): void ns3::InterferenceHelper::EraseEvents() [member function]
cls.add_method('EraseEvents',
'void',
@ -1892,26 +1887,6 @@ def register_Ns3InterferenceHelper_methods(root_module, cls):
'double',
[],
is_const=True)
## interference-helper.h (module 'wifi'): static uint32_t ns3::InterferenceHelper::GetPayloadDurationMicroSeconds(uint32_t size, ns3::WifiMode payloadMode) [member function]
cls.add_method('GetPayloadDurationMicroSeconds',
'uint32_t',
[param('uint32_t', 'size'), param('ns3::WifiMode', 'payloadMode')],
is_static=True)
## interference-helper.h (module 'wifi'): static uint32_t ns3::InterferenceHelper::GetPlcpHeaderDurationMicroSeconds(ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('GetPlcpHeaderDurationMicroSeconds',
'uint32_t',
[param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## interference-helper.h (module 'wifi'): static ns3::WifiMode ns3::InterferenceHelper::GetPlcpHeaderMode(ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('GetPlcpHeaderMode',
'ns3::WifiMode',
[param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## interference-helper.h (module 'wifi'): static uint32_t ns3::InterferenceHelper::GetPlcpPreambleDurationMicroSeconds(ns3::WifiMode mode, ns3::WifiPreamble preamble) [member function]
cls.add_method('GetPlcpPreambleDurationMicroSeconds',
'uint32_t',
[param('ns3::WifiMode', 'mode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## interference-helper.h (module 'wifi'): void ns3::InterferenceHelper::NotifyRxEnd() [member function]
cls.add_method('NotifyRxEnd',
'void',
@ -6266,11 +6241,11 @@ def register_Ns3WifiPhy_methods(root_module, cls):
'double',
[param('ns3::WifiMode', 'txMode'), param('double', 'ber')],
is_pure_virtual=True, is_const=True, is_virtual=True)
## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::CalculateTxDuration(uint32_t size, ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) const [member function]
## wifi-phy.h (module 'wifi'): static ns3::Time ns3::WifiPhy::CalculateTxDuration(uint32_t size, ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('CalculateTxDuration',
'ns3::Time',
[param('uint32_t', 'size'), param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_pure_virtual=True, is_const=True, is_virtual=True)
is_static=True)
## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureStandard(ns3::WifiPhyStandard standard) [member function]
cls.add_method('ConfigureStandard',
'void',
@ -6491,6 +6466,26 @@ def register_Ns3WifiPhy_methods(root_module, cls):
'ns3::WifiMode',
[],
is_static=True)
## wifi-phy.h (module 'wifi'): static uint32_t ns3::WifiPhy::GetPayloadDurationMicroSeconds(uint32_t size, ns3::WifiMode payloadMode) [member function]
cls.add_method('GetPayloadDurationMicroSeconds',
'uint32_t',
[param('uint32_t', 'size'), param('ns3::WifiMode', 'payloadMode')],
is_static=True)
## wifi-phy.h (module 'wifi'): static uint32_t ns3::WifiPhy::GetPlcpHeaderDurationMicroSeconds(ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('GetPlcpHeaderDurationMicroSeconds',
'uint32_t',
[param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## wifi-phy.h (module 'wifi'): static ns3::WifiMode ns3::WifiPhy::GetPlcpHeaderMode(ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('GetPlcpHeaderMode',
'ns3::WifiMode',
[param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## wifi-phy.h (module 'wifi'): static uint32_t ns3::WifiPhy::GetPlcpPreambleDurationMicroSeconds(ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) [member function]
cls.add_method('GetPlcpPreambleDurationMicroSeconds',
'uint32_t',
[param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_static=True)
## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetStateDuration() [member function]
cls.add_method('GetStateDuration',
'ns3::Time',
@ -7084,11 +7079,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls):
'ns3::Time',
[],
is_const=True, is_virtual=True)
## yans-wifi-phy.h (module 'wifi'): ns3::Time ns3::YansWifiPhy::CalculateTxDuration(uint32_t size, ns3::WifiMode payloadMode, ns3::WifiPreamble preamble) const [member function]
cls.add_method('CalculateTxDuration',
'ns3::Time',
[param('uint32_t', 'size'), param('ns3::WifiMode', 'payloadMode'), param('ns3::WifiPreamble', 'preamble')],
is_const=True, is_virtual=True)
## yans-wifi-phy.h (module 'wifi'): uint32_t ns3::YansWifiPhy::GetNModes() const [member function]
cls.add_method('GetNModes',
'uint32_t',