diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/AUTHORS ns-3.29/AUTHORS
--- ns-3.28.1/AUTHORS 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/AUTHORS 2018-09-04 16:02:39.000000000 -0700
@@ -20,6 +20,7 @@
Biljana Bojovic (bbojovic@cttc.es)
Elena Borovkova (borokovaes@iitp.ru)
Pavel Boyko (boyko@iitp.ru)
+Matthew Bradbury (matt-bradbury@live.co.uk)
Dan Broyles (muxman@sbcglobal.net)
Jonathan Brugge (j.d.brugge@student.utwente.nl)
Junling Bu (linlinjavaer@gmail.com)
@@ -34,6 +35,7 @@
Eugene Chemeritskiy (echemeritskiy@arccn.ru)
Yufei Cheng (yfcheng@ittc.ku.edu)
Andrey Churin (aachurin@gmail.com)
+Fernando J. Cintrón (fernando.cintron@nist.gov)
Benjamin Cizdziel (ben.cizdziel@gmail.com)
Salva Climent (jocliba@gmail.com)
Luis Cortes (cortes@gatech.edu)
@@ -66,6 +68,7 @@
David Gross (gdavid.devel@gmail.com)
Maja Grubišić (maja.grubisic@live.com)
Federico Guerra (federico@guerra-tlc.com)
+Shefali Gupta (shefaligups11@gmail.com)
Charline Taibi Guguen (charline.guguen@gmail.com)
Daniel Halperin (daniel@halper.in)
Bruno Haick (bghaick@hotmail.com)
@@ -79,6 +82,7 @@
Chris Hood (chood8@gatech.edu)
Blake Hurd (naimorai@gmail.com)
Pasquale Imputato (p.imputato@gmail.com)
+Muhammad Iqbal CR (muh.iqbal.cr@gmail.com)
ishan (ishan.chhabra@gmail.com)
Mohamed Amine Ismail (amine.ismail@inria.fr, iamine@udcast.com)
Toshio Ito (debug.ito@gmail.com)
@@ -94,8 +98,10 @@
Tanmay Kathpalia (tanmay.kathpalia@landisgyr.com)
Konstantinos Katsaros (dinos.katsaros@gmail.com)
Morteza Kheirkhah (m.kheirkhah@sussex.ac.uk)
+Jörg Christian Kirchhof (christian.kirchhof@rwth-aachen.de)
Shravya Ks (shravya.ks0@gmail.com)
Flavio Kubota (flaviokubota@gmail.com)
+Manish Kumar B.(bmanish15597@gmail.com)
Joe Kopena (tjkopena@cs.drexel.edu)
Christopher Kosecki (christopher.l.kosecki.ctr@mail.mil)
Aleksey Kovalenko (kovalenko@iitp.ru)
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/bindings/python/rad_util.py ns-3.29/bindings/python/rad_util.py
--- ns-3.28.1/bindings/python/rad_util.py 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/bindings/python/rad_util.py 2018-09-04 16:02:39.000000000 -0700
@@ -274,7 +274,7 @@
>>> str(lcm(1.5e-8, 2.5e-8, precision=1e9))
'7.5e-08'
- By (an arbitary) definition:
+ By (an arbitrary) definition:
>>> lcm(0, 0)
0
@@ -390,7 +390,7 @@
index = int(len(l_sort) / 2) # Integer division correct
median = float(l_sort[index] + l_sort[index-1]) / 2
else:
- # int divsion gives mid value when count from 0
+ # int division gives mid value when count from 0
index = int(len(l_sort) / 2)
median = l_sort[index]
# Calculate IQR.
@@ -414,7 +414,7 @@
sigfigs -- number of significant figures to display (rounded)
This overrides dp if set.
suffix -- optional unit suffix to append to unit multiplier
- space -- seperator between value and unit multiplier (default: ' ')
+ space -- separator between value and unit multiplier (default: ' ')
use_extra_prefixes -- use hecto, deka, deci and centi as well if set.
(default: False)
use_full_name -- use full name for multiplier symbol,
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/bindings/python/wscript ns-3.29/bindings/python/wscript
--- ns-3.28.1/bindings/python/wscript 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/bindings/python/wscript 2018-09-04 16:02:39.000000000 -0700
@@ -191,6 +191,11 @@
stdout=subprocess.PIPE).communicate()[0]
pybindgen_version = maybe_decode(out.strip())
conf.msg('Checking for pybindgen version', pybindgen_version)
+ if not pybindgen_version:
+ Logs.warn("pybindgen_version is an empty string")
+ conf.report_optional_feature("python", "Python Bindings", False,
+ "PyBindGen version not found")
+ return
if not (split_version(pybindgen_version) >= split_version(REQUIRED_PYBINDGEN_VERSION)):
Logs.warn("pybindgen (found %r), (need %r)" %
(pybindgen_version, REQUIRED_PYBINDGEN_VERSION))
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/CHANGES.html ns-3.29/CHANGES.html
--- ns-3.28.1/CHANGES.html 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/CHANGES.html 2018-09-04 16:02:39.000000000 -0700
@@ -51,13 +51,83 @@
us a note on ns-developers mailing list.
-Changes from ns-3.28 to ns-3.28.1
+Changes from ns-3.28 to ns-3.29
+New API:
+
+ - CommandLine can now handle non-option (positional) arguments.
+ - Added CommandLine::Parse (const std::vector> args)
+ - NS_LOG_FUNCTION can now log the contents of vectors
+ - A new position allocator has been added to the buildings module, allowing
+nodes to be placed outside of buildings defined in the scenario.
+ - The Hash() method has been added to the QueueDiscItem class to compute the
+ hash of various fields of the packet header (depending on the packet type).
+ - Added a priority queue disc (PrioQueueDisc).
+ - Added 3GPP HTTP model
+
- Added TCP PRR as recovery algorithm
+
- Added a new trace source in StaWifiMac for tracing beacon arrivals
+ - Added a new helper method to ApplicationContainer to start applications with some jitter around the start time
+ - (network) Add a method to check whether a node with a given ID is within a NodeContainer.
+
+
+Changes to existing API:
+
+ - TrafficControlHelper::Install now only includes root queue discs in the returned
+ QueueDiscContainer.
+ - Recovery algorithms are now in a different class, instead of being tied to TcpSocketBase.
+ Take a look to TcpRecoveryOps for more information.
+ - The Mode, MaxPackets and MaxBytes attributes of the Queue class, that had been deprecated in favor of the MaxSize attribute in ns-3.28, have now been removed and cannot be used anymore. Likewise, the methods to get/set the old attributes have been removed as well. Commands such as:
+
+ Config::SetDefault ("ns3::QueueBase::MaxPackets", UintegerValue (4));
+
+should now be written as:
+
+ Config::SetDefault ("ns3::QueueBase::MaxSize", QueueSizeValue (QueueSize (QueueSizeUnit::PACKETS, 4)));
+
+or with a string value with 'b' (bytes) or 'p' (packets) suffix, such as:
+
+ Config::SetDefault ("ns3::QueueBase::MaxSize", StringValue ("4p"));
+
+
+ - The Limit attribute of the PfifoFastQueueDisc class, that had been deprecated in favor of the MaxSize attribute in ns-3.28, has now been removed and cannot be used anymore. Likewise, the methods to get/set the old Limit attribute have been removed as well. The GetMaxSize/SetMaxSize methods of the base QueueDisc class must be used instead.
+ - The Mode, MaxPackets and MaxBytes attributes of the CoDelQueueDisc class, that had been deprecated in favor of the MaxSize attribute in ns-3.28, have now been removed and cannot be used anymore. Likewise, the methods to get/set the old attributes have been removed as well. The GetMaxSize/SetMaxSize methods of the base QueueDisc class must be used instead.
+ - The PacketLimit attribute of the FqCoDelQueueDisc class, that had been deprecated in favor of the MaxSize attribute in ns-3.28, has now been removed and cannot be used anymore. Likewise, the methods to get/set the old PacketLimit attribute have been removed as well. The GetMaxSize/SetMaxSize methods of the base QueueDisc class must be used instead.
+ - The Mode and QueueLimit attributes of the PieQueueDisc class, that had been deprecated in favor of the MaxSize attribute in ns-3.28, have now been removed and cannot be used anymore. Likewise, the methods to get/set the old attributes have been removed as well. The GetMaxSize/SetMaxSize methods of the base QueueDisc class must be used instead.
+ - The Mode and QueueLimit attributes of the RedQueueDisc class, that had been deprecated in favor of the MaxSize attribute in ns-3.28, have now been removed and cannot be used anymore. Likewise, the methods to get/set the old attributes have been removed as well. The GetMaxSize/SetMaxSize methods of the base QueueDisc class must be used instead.
+ - Several traffic generating applications have additional trace sources that export not only the transmitted or received packet but also the source and destination addresses.
+ - The returned type of GetNDevices methods in Channel and subclasses derived from it were changed from uint32_t to std::size_t. Likewise, the input parameter type of GetDevice in Channel and its subclasses were changed from uint32_t to std::size_t.
+ - Wifi classes DcfManager, DcaTxop and EdcaTxopN were renamed to ChannelAccessManager, Txop and QosTxop, respectively.
+ - QueueDisc::DequeuePeeked has been merged into QueueDisc::Dequeue and hence no longer exists.
+ - The QueueDisc base class now provides a default implementation of the DoPeek private method
+ based on the QueueDisc::PeekDequeue method, which is now no longer available.
+ - The QueueDisc::SojournTime trace source is changed from a TracedValue to a TracedCallback; callbacks that hook this trace must provide one ns3::Time argument, not two.
+ - To avoid the code duplication in SingleModelSpectrumChannel and MultiModelSpectrumChannel classes, the attributes MaxLossDb and PropagationLossModel, and the traces PathLoss and TxSigParams are moved to the base class SpectrumChannel. Similarly, the functions AddPropagationLossModel, AddSpectrumPropagationLossModel, SetPropagationDelayModel and GetSpectrumPropagationLossModel are now defined in SpectrumChannel class. Moreover, the TracedCallback signature of LossTracedCallback has been updated from :
+
+ typedef void (* LossTracedCallback) (Ptr<SpectrumPhy> txPhy, Ptr<SpectrumPhy> rxPhy, double lossDb);
+
+ To :
+
+ typedef void (* LossTracedCallback) (Ptr<const SpectrumPhy> txPhy, Ptr<const SpectrumPhy> rxPhy, double lossDb);
+
+ - For the sake of LTE module API consistency the IPV6 related functions AssignUeIpv6Address and GetUeDefaultGatewayAddress6 are now declared in EpcHelper base class. Thus, these functions are now declared as virtual in the child classes, i.e., EmuEpcHelper and PointToPointEpcHelper.
+
Changes to build system:
+ - Waf upgraded from 1.8.19 to 2.0.9, and ns-3 build scripts aligned to the new API.
- The '--no32bit-scan' argument is removed from Waf apiscan; generation of ILP32 bindings is now automated from the LP64 bindings.
- When using on newer compilers, new warnings may trigger build failures.
The --disable-werror flag can be passed to Waf at configuration time to turn
off the Werror behavior.
+ - GTK+3 libraries (including PyGObject, GooCanvas2) are needed for the Pyviz visualizer, replacing GTK+2 libraries.
+
+Changed behavior:
+
+ - FqCoDelQueueDisc now computes the hash of the packet's 5-tuple to determine
+ the flow the packet belongs to, unless a packet filter has been configured.
+ The previous behavior is simply obtained by not configuring any packet filter.
+ Consequently, the FqCoDelIpv{4,6}PacketFilter classes have been removed.
+ - ARP packets now pass through the traffic control layer, as in Linux.
+ - The maximum size UDP packet of the UdpClient application is no longer limited to 1500 bytes.
+ - The default values of the MaxSlrc and FragmentationThreshold attributes in WifiRemoteStationManager were changed from 7 to 4 and from 2346 to 65535, respectively.
@@ -76,6 +146,9 @@
Class LrWpanMac now supports extended addressing mode. Both McpsDataRequest and PdDataIndication methods will now use extended addressing if McpsDataRequestParams::m_srcAddrMode or McpsDataRequestParams::m_dstAddrMode are set to EXT_ADDR.
Class LteUeNetDevice MAC address is now a 64-bit address and can be set during construction.
Class TcpSocketBase trace source CongestionWindow shows the values without the in-recovery inflation and the post-recovery deflation; the old behavior has been moved to the new trace source CongestionWindowInflated.
+ The Mode, MaxPackets and MaxBytes attributes of the Queue class have been deprecated in favor of the MaxSize attribute. Old attributes can still be used, but using them will be no longer possible in one of the next releases. The methods to get/set the old attributes will be removed as well.
+ The attributes of the QueueDisc subclasses that separately determine the mode and the limit of the QueueDisc have been deprecated in favor of the single MaxSize attribute.
+ The GetQueueSize method of some QueueDisc subclasses (e.g., RED) has been removed and replaced by the GetCurrentSize method of the QueueDisc base class.
Changes to build system:
Changed behavior:
- - The Mode, MaxPackets and MaxBytes attributes of the Queue class have been deprecated in favor of the MaxSize attribute. Old attributes can still be used, but using them will be no longer possible in one of the next releases. The methods to get/set the old attributes will be removed as well.
- - The attributes of the QueueDisc subclasses that separately determine the mode and the limit of the QueueDisc have been deprecated in favor of the single MaxSize attribute.
- - The GetQueueSize method of some QueueDisc subclasses (e.g., RED) has been removed and replaced by the GetCurrentSize method of the QueueDisc base class.
- All Wi-Fi management frames are now transmitted using the lowest basic rate.
- The Wi-Fi spectrum model now takes into account adjacent channels through OFDM transmit spectrum masks.
- The CsmaNetDevice::PhyTxBeginTrace will trace all attempts to transmit, even those that result in drops. Previously, eventual channel drops were excluded from this trace.
@@ -104,12 +174,12 @@
- Included the TCP SACK-based loss recovery algorithm outlined in RFC 6675.
- Added TCP SACK and the SACK emulation. Added an Attribute to TcpSocketBase class,
called "Sack", to enable or disable the SACK option usage.
-- In 'src/wifi', several changes were made to enable partial 802.11ax High Effiency (HE) support:
+
- In 'src/wifi', several changes were made to enable partial 802.11ax High Efficiency (HE) support:
- A new standard value has been added that enables the new 11ax data rates.
- A new 11ax preamble has been added.
- A new attribute was added to configure the guard interval duration for High Efficiency (HE) PHY entities. This attribute can be set using the YansWifiPhyHelper.
- - A new information element has been added: HeCapabilities. This information element is added to the MAC frame header if the node is a HE node. This HeCapabilites information element is used to advertise the HE capabilites of the node to other nodes in the network.
+ - A new information element has been added: HeCapabilities. This information element is added to the MAC frame header if the node is a HE node. This HeCapabilites information element is used to advertise the HE capabilities of the node to other nodes in the network.
- A new class were added for the RRPAA WiFi rate control mechanism.
@@ -120,7 +190,7 @@
- InstallSingleEnbDevice and InstalSingeUeDevice functions of LteHelper are now constructing LteEnbDevice and LteUeDevice
according to CA architecture. Each device, UE and eNodeB contains an instance of component carrier manager, and may
have several component carrier instances.
- - SAP interfaces are extended to include CA message exchange funtionality.
+ - SAP interfaces are extended to include CA message exchange functionality.
- RRC connection procedure is extended to allow RRC connection reconfiguration for the configuration of the secondary carriers.
- RRC measurement reporting is extended to allow measurement reporting from the secondary carriers.
- LTE traces are extended to include component carrier id.
@@ -395,7 +465,7 @@
- Added the concept of Congestion State Machine inside TcpSocketBase.
- Merged Fast Recovery and Fast Retransmit inside TcpSocketBase.
- Some member variables have been moved from TcpSocketBase inside TcpSocketState. Attributes are not touched.
- - Congestion control splitted from TcpSocketBase as subclass of TcpCongestionOps.
+ - Congestion control split from TcpSocketBase as subclass of TcpCongestionOps.
- Added Rx and Tx callbacks on TcpSocketBase.
- Added BytesInFlight trace source on TcpSocketBase. The trace is updated when the implementation requests the value.
- Added attributes about the number of connection and data retransmission attempts.
@@ -414,7 +484,7 @@
- Users of advanced queues (RED, CoDel) who have been using them directly in the NetDevice will need to adjust to the following changes:
- - RED and CoDel are no longer specializations of the Queue classe, but are now specializations of the new QueueDisc class. This means that RED and CoDel can now be installed in the context of the new Traffic Control layer instead of as queues in (some) NetDevices. The reason for such a change is to make the ns-3 stack much more similar to that of real operating systems (Linux has been taken as a reference). Queuing disciplines such as RED and CoDel can now be tested with all the NetDevices, including WifiNetDevices.
+ - RED and CoDel are no longer specializations of the Queue class, but are now specializations of the new QueueDisc class. This means that RED and CoDel can now be installed in the context of the new Traffic Control layer instead of as queues in (some) NetDevices. The reason for such a change is to make the ns-3 stack much more similar to that of real operating systems (Linux has been taken as a reference). Queuing disciplines such as RED and CoDel can now be tested with all the NetDevices, including WifiNetDevices.
- NetDevices still use queues to buffer packets. The only subclass of Queue currently available for this purpose is DropTailQueue. If one wants to approximate the old behavior, one needs to set the DropTailQueue MaxPackets attribute to very low values, e.g., 1.
- The Traffic Control layer features a mechanism by which packets dropped by the NetDevice are requeued in the queue disc (more precisely: if NetDevice::Send returns false, the packet is requeued), so that they are retransmitted later. This means that the MAC drop traces may include packets that have not been actually lost, because they have been dropped by the device, requeued by the traffic control layer and successfully retransmitted. To get the correct number of packets that have been actually lost, one has to subtract the number of packets requeued from the number of packets dropped as reported by the MAC drop trace.
@@ -450,7 +520,7 @@
- A new helper (VhtWifiMacHelper) was added to set up a Very high throughput (VHT) MAC entity.
- A new standard value has been added that enables the new 11ac data rates.
- A new 11ac preamble has been added.
- - A new information element has been added: VhtCapabilities. This information element is added to the MAC frame header if the node is a VHT node. This VhtCapabilites information element is used to advertise the VHT capabilites of the node to other nodes in the network.
+ - A new information element has been added: VhtCapabilities. This information element is added to the MAC frame header if the node is a VHT node. This VhtCapabilites information element is used to advertise the VHT capabilities of the node to other nodes in the network.
The ArpCache API was extended to allow the manual removal of ArpCache entries and the addition of permanent (static) entries for IPv4.
@@ -509,7 +579,7 @@
Changed behavior:
This section is for behavioral changes to the models that were not due to a bug fix.
- - In Wi-Fi, HT stations (802.11n) now support two-level aggregation. The InterferenceHelper now distinguishes between the PLCP and regular payload reception, for higher fidelity modeling. ACKs are now sent using legacy rates and preambles. Acces points now establish BSSBasicRateSet for control frame transmissions. PLCP header and PLCP payload reception have been decoupled to improve PHY layer modeling accuracy. RTS/CTS with A-MPDU is now fully supported.
+
- In Wi-Fi, HT stations (802.11n) now support two-level aggregation. The InterferenceHelper now distinguishes between the PLCP and regular payload reception, for higher fidelity modeling. ACKs are now sent using legacy rates and preambles. Access points now establish BSSBasicRateSet for control frame transmissions. PLCP header and PLCP payload reception have been decoupled to improve PHY layer modeling accuracy. RTS/CTS with A-MPDU is now fully supported.
- The mesh module was made more compliant to the IEEE 802.11s-2012 standard and packet traces are now parseable by Wireshark.
@@ -594,7 +664,7 @@
A new TraceSource has been added to TCP sockets: SlowStartThreshold.
- New method CommmandLine::AddValue (name, attibutePath) to provide a
+ New method CommandLine::AddValue (name, attibutePath) to provide a
shorthand argument "name" for the Attribute "path". This also has
the effect of including the help string for the Attribute in the
Usage message.
@@ -646,7 +716,7 @@
all schedulers were updated to interact with FR entity via FFR-SAP. Only PF, PSS, CQA,
FD-TBFQ, TD-TBFQ schedulers supports Frequency Reuse functionality. In the beginning
- of scheduling process, schedulers ask FR entity for avaiable RBGs and then ask if UE
+ of scheduling process, schedulers ask FR entity for available RBGs and then ask if UE
can be scheduled on RB
eNB RRC interacts with FFR entity via RRC-FFR SAP
new DL-CQI generation approach was implemented. Now DL-CQI is computed from control channel as signal
@@ -905,7 +975,7 @@
New attributes were added to help the user setup a High Throughput (HT) PHY entity. These attributes can be set using the YansWifiPhyHelper
A new standard value has been added that enables the new 11n data rates.
New 11n preambles has been added (Mixed format and greenfield). To be able to change Tx duration according to the preamble used, a new class TxVector has been added to carry the transmission parameters (mode, preamble, stbc,..). Several functions have been updated to allow the passage of TxVector instead of WifiMode in MacLow, WifiRemoteStationManager, WifiPhy, YansWifiPhy,..
- A new information element has been added: HTCapabilities. This information element is added to the MAC frame header if the node is an HT node. This HTCapabilites information element is used to advertise the HT capabilites of the node to other nodes in the network
+ A new information element has been added: HTCapabilities. This information element is added to the MAC frame header if the node is an HT node. This HTCapabilites information element is used to advertise the HT capabilities of the node to other nodes in the network
InternetStackHelper has two new functions:SetIpv4ArpJitter (bool enable)
and SetIpv6NsRsJitter (bool enable) to enable/disable
@@ -1377,7 +1447,7 @@
In the mobility module, there is a new MobilityModel::GetRelativeSpeed() method returning the relative speed of two objects.
A new Ipv6AddressGenerator class was added to generate sequential
addresses from a provided base prefix and interfaceId. It also will detect
-duplicate address assigments.
+duplicate address assignments.
Changes to existing API:
@@ -1490,7 +1560,7 @@
64 bits of fractional precision. The existing Time type is now automatically convertible to
int64x64_t to allow arbitrarily complex arithmetic operations on the content of Time
objects. The implementation of int64x64_t is based on the previously-existing
-HighPrecision type and supercedes it.
+HighPrecision type and supersedes it.
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/contrib/wscript ns-3.29/contrib/wscript
--- ns-3.28.1/contrib/wscript 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/contrib/wscript 2018-09-04 16:02:39.000000000 -0700
@@ -48,7 +48,7 @@
module = bld(features='cxx cxxstlib ns3module')
else:
module = bld(features='cxx cxxshlib ns3module')
- module.target = '%s/ns%s-%s%s' % (bld.srcnode.path_from(module.path), wutils.VERSION,
+ module.target = '%s/lib/ns%s-%s%s' % (bld.srcnode.path_from(module.path), wutils.VERSION,
name, bld.env.BUILD_SUFFIX)
linkflags = []
cxxflags = []
@@ -233,7 +233,7 @@
pymod.env.append_value('LINKFLAGS', '-Wl,-Bdynamic,--no-whole-archive')
defines = list(pymod.env['DEFINES'])
defines.extend(['NS_DEPRECATED=', 'NS3_DEPRECATED_H'])
- if Options.platform == 'win32':
+ if Utils.unversioned_sys_platform() == 'win32':
try:
defines.remove('_DEBUG') # causes undefined symbols on win32
except ValueError:
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/doxygen.conf ns-3.29/doc/doxygen.conf
--- ns-3.28.1/doc/doxygen.conf 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/doxygen.conf 2018-09-04 16:02:39.000000000 -0700
@@ -885,6 +885,7 @@
# \image command).
IMAGE_PATH = doc/ns3_html_theme/static \
+ src/applications/doc \
src/lte/doc/source/figures \
src/lte/test/reference \
src/mesh/doc \
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/manual/source/callbacks.rst ns-3.29/doc/manual/source/callbacks.rst
--- ns-3.28.1/doc/manual/source/callbacks.rst 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/manual/source/callbacks.rst 2018-09-04 16:02:39.000000000 -0700
@@ -446,7 +446,7 @@
int result = two (1.0);
-will result in a call tothe ``CbTwo`` member function (method) on the object
+will result in a call to the ``CbTwo`` member function (method) on the object
pointed to by ``&cb``.
Building Null Callbacks
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/manual/source/conf.py ns-3.29/doc/manual/source/conf.py
--- ns-3.28.1/doc/manual/source/conf.py 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/manual/source/conf.py 2018-09-04 16:02:39.000000000 -0700
@@ -41,16 +41,16 @@
# General information about the project.
project = u'ns-3'
-copyright = u'2010, ns-3 project'
+copyright = u'2018, ns-3 project'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
-version = 'ns-3.28'
+version = 'ns-3.29'
# The full version, including alpha/beta/rc tags.
-release = 'ns-3.28'
+release = 'ns-3.29'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/manual/source/documentation.rst ns-3.29/doc/manual/source/documentation.rst
--- ns-3.28.1/doc/manual/source/documentation.rst 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/manual/source/documentation.rst 2018-09-04 16:02:39.000000000 -0700
@@ -276,7 +276,7 @@
* Documentation for any ``Trace`` sources defined by the class.
* The memory footprint for each class.
-Doxygen operates by scaning the source code, looking for
+Doxygen operates by scanning the source code, looking for
specially marked comments. It also creates a cross reference,
indicating *where* each file, class, method, and variable is used.
@@ -529,11 +529,11 @@
/**
* \defgroup foo Foo protocol.
- * Implemenation of the Foo protocol.
+ * Implementation of the Foo protocol.
*/
The symbol ``foo`` is how other items can add themselves to this group.
- The string following that will be the title for the group. Any futher
+ The string following that will be the title for the group. Any further
text will be the detailed description for the group page.
* Document each file, assigning it to the relevant group. In a header file::
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/manual/source/hash-functions.rst ns-3.29/doc/manual/source/hash-functions.rst
--- ns-3.28.1/doc/manual/source/hash-functions.rst 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/manual/source/hash-functions.rst 2018-09-04 16:02:39.000000000 -0700
@@ -76,7 +76,7 @@
**********************************
The default hash function is murmur3_. FNV1a_ is also available. To specify
-the hash function explicitly, use this contructor::
+the hash function explicitly, use this constructor::
Hasher hasher = Hasher ( Create () );
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/manual/source/new-modules.rst ns-3.29/doc/manual/source/new-modules.rst
--- ns-3.28.1/doc/manual/source/new-modules.rst 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/manual/source/new-modules.rst 2018-09-04 16:02:39.000000000 -0700
@@ -213,7 +213,7 @@
#include "ns3/spectrum-model.h"
Headers used strictly internally in your implementation should not
-be included here. They are still accessible to your implemenation by
+be included here. They are still accessible to your implementation by
include statements like
.. sourcecode:: cpp
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/manual/source/python.rst ns-3.29/doc/manual/source/python.rst
--- ns-3.28.1/doc/manual/source/python.rst 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/manual/source/python.rst 2018-09-04 16:02:39.000000000 -0700
@@ -265,16 +265,15 @@
################
|ns3| has an automated process to regenerate Python bindings from the C++
-header files. The automated process is only semi-automated at the moment
-(ns-3.27) because we are in the midst of transition to new tools. The
+header files. The process is only supported for Linux at the moment
+(ns-3.29) because we are in the midst of transition to new tools. The
current process is outlined below. In short, the process currently
requires the following steps.
1. Prepare the system for scanning by installing the prerequisites,
including a development version of ``clang``, the ``CastXML`` package,
and ``pygccxml``.
-2. Perform a 64-bit scan of the module or modules of interest
-3. Create the 32-bit bindings file from the 64-bit scan output
+2. Perform a scan of the module of interest or all modules
Installing a clang development environment
##########################################
@@ -397,26 +396,8 @@
castxml binary must be in the shell's path, and pygccxml must be in the
Python path.
-Rescan 64-bit
-#############
-
-It is important that you scan the failing module with '--no32bit-scan'; e.g.:
-
-::
-
-.. sourcecode:: bash
-
- $ cd source/ns-3-dev
- $ ./waf --apiscan=wifi --no32bit-scan
-
-Generate 32-bit
-###############
-
-Once the 64-bit bindings are fixed, if you are a maintainer and need to
-generate the 32-bit equivalent:
-
-1. copy the newly scanned LP64.py file(s) to the ILP32.py filename
-2. on the ILP32.py file(s), perform global substitition of ``unsigned long`` with ``unsigned long long``
+LP64 vs ILP32 bindings
+######################
Linux (64-bit, as most modern installations use) and MacOS use different
data models, as explained here: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.cbcpx01/datatypesize64.htm
@@ -427,38 +408,35 @@
an LP64.py suffix. Only one is used on any given platform. The main
difference is in the representation of the 64 bit integer type as either
a 'long' (LP64) or 'long long' (ILP32).
-
-As of ns-3.27, the CastXML framework can generate LP64 bindings by passing
-the ``--no32bit-scan`` flag. However, the framework does not automatically
-generate 32bit scans at the moment. Instead, users must manually generate
-the ILP32.py equivalents by taking all instances of 'unsigned long' in the
-bindings file and converting them to 'unsigned long long', such as:
-
-::
- - cls.add_instance_attribute('nMarkedBytes', 'std::map< std::string, unsigned long >', is_const=False)
- + cls.add_instance_attribute('nMarkedBytes', 'std::map< std::string, unsigned long long >', is_const=False)
+The process (only supported on Linux at present) generates the LP64
+bindings using the toolchain and then copies the LP64 bindings to the
+ILP32 bindings with some type subsitutions automated by Waf scripts.
+
+Rescanning a module
+###################
-In summary, to generate LP64 bindings for Linux 64-bit systems, it is
-sufficient to call (e.g. for the ``core`` module):
+To re-scan a module:
::
.. sourcecode:: bash
- $ ./waf --apiscan=core --no32bit-scan
+ $ cd source/ns-3-dev
+ $ ./waf --apiscan=wifi
-To generate ILP32 bindings, one first must generate the LP64.py file as above,
-and then copy the file to be named with an ILP32.py suffix, and then
-hand-edit that file, replacing all instances of 'unsigned long' with
-'unsigned long long'. |ns3| maintainers are working to better automate
-this process for future releases.
+To re-scan all modules:
+
+::
+
+ $ cd source/ns-3-dev
+ $ ./waf --apiscan=all
Generating bindings on MacOS
############################
In principle, this should work (and should generate the 32-bit bindings).
-However, it is untested and we are not sure what instructions to offer.
+However, maintainers have not been able to complete this port as of ns-3.29.
We would welcome suggestions on how to enable scanning for MacOS.
Organization of the Modular Python Bindings
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/models/Makefile ns-3.29/doc/models/Makefile
--- ns-3.28.1/doc/models/Makefile 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/models/Makefile 2018-09-04 16:02:39.000000000 -0700
@@ -82,6 +82,7 @@
$(SRC)/traffic-control/doc/queue-discs.rst \
$(SRC)/traffic-control/doc/pfifo-fast.rst \
$(SRC)/traffic-control/doc/fifo.rst \
+ $(SRC)/traffic-control/doc/prio.rst \
$(SRC)/traffic-control/doc/tbf.rst \
$(SRC)/traffic-control/doc/red.rst \
$(SRC)/traffic-control/doc/codel.rst \
@@ -105,6 +106,11 @@
figures/testbed.dia \
figures/emulated-channel.dia \
$(SRC)/antenna/doc/source/figures/antenna-coordinate-system.dia \
+ $(SRC)/applications/doc/http-embedded-object-size.png \
+ $(SRC)/applications/doc/http-main-object-size.png \
+ $(SRC)/applications/doc/http-num-of-embedded-objects.png \
+ $(SRC)/applications/doc/http-parsing-time.png \
+ $(SRC)/applications/doc/http-reading-time.png \
$(SRC)/network/doc/packet.dia \
$(SRC)/network/doc/node.dia \
$(SRC)/network/doc/buffer.dia \
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/models/source/conf.py ns-3.29/doc/models/source/conf.py
--- ns-3.28.1/doc/models/source/conf.py 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/models/source/conf.py 2018-09-04 16:02:39.000000000 -0700
@@ -41,16 +41,16 @@
# General information about the project.
project = u'ns-3'
-copyright = u'2011, ns-3 project'
+copyright = u'2018, ns-3 project'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
-version = 'ns-3.28'
+version = 'ns-3.29'
# The full version, including alpha/beta/rc tags.
-release = 'ns-3.28'
+release = 'ns-3.29'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/models/source/traffic-control.rst ns-3.29/doc/models/source/traffic-control.rst
--- ns-3.28.1/doc/models/source/traffic-control.rst 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/models/source/traffic-control.rst 2018-09-04 16:02:39.000000000 -0700
@@ -7,6 +7,7 @@
queue-discs
fifo
pfifo-fast
+ prio
tbf
red
codel
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/release_steps.txt ns-3.29/doc/release_steps.txt
--- ns-3.28.1/doc/release_steps.txt 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/release_steps.txt 2018-09-04 16:02:39.000000000 -0700
@@ -152,10 +152,9 @@
1. create a new ns-3.x page which should be visible from
http://www.nsnam.org/ns-3.x
-- New Features
- Download
-- Bugs Fixed
- Documentation
+- Authors
2. Repoint http://www.nsnam.org/releases/latest to the new page
Repoint http://www.nsnam.org/documentation/latest to the new page
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/tutorial/source/conf.py ns-3.29/doc/tutorial/source/conf.py
--- ns-3.28.1/doc/tutorial/source/conf.py 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/tutorial/source/conf.py 2018-09-04 16:02:39.000000000 -0700
@@ -41,16 +41,16 @@
# General information about the project.
project = u'ns-3'
-copyright = u'2010, ns-3 project'
+copyright = u'2018, ns-3 project'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
-version = 'ns-3.28'
+version = 'ns-3.29'
# The full version, including alpha/beta/rc tags.
-release = 'ns-3.28'
+release = 'ns-3.29'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/tutorial/source/tracing.rst ns-3.29/doc/tutorial/source/tracing.rst
--- ns-3.28.1/doc/tutorial/source/tracing.rst 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/tutorial/source/tracing.rst 2018-09-04 16:02:39.000000000 -0700
@@ -720,7 +720,7 @@
you select the "API Documentation" link, you will be taken to the
|ns3| API documentation page.
-In the sidebar you should see a hierachy that begins
+In the sidebar you should see a hierarchy that begins
* ns-3
@@ -1216,7 +1216,7 @@
The ``.AddTraceSource`` in the ``GetTypeId`` method provides the
"hooks" used for connecting the trace source to the outside world
through the Config system. We already discussed the first three
-agruments to ``AddTraceSource``: the Attribute name for the Config
+arguments to ``AddTraceSource``: the Attribute name for the Config
system, a help string, and the address of the TracedValue class data
member.
@@ -1511,7 +1511,7 @@
The most common way to start pumping events is to start an
``Application``. This is done as the result of the following
-(hopefully) familar lines of an |ns3| script::
+(hopefully) familiar lines of an |ns3| script::
ApplicationContainer apps = ...
apps.Start (Seconds (1.0));
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/doc/tutorial-pt-br/source/conf.py ns-3.29/doc/tutorial-pt-br/source/conf.py
--- ns-3.28.1/doc/tutorial-pt-br/source/conf.py 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/doc/tutorial-pt-br/source/conf.py 2018-09-04 16:02:39.000000000 -0700
@@ -42,7 +42,7 @@
# General information about the project.
project = u'ns-3'
-copyright = u'2008-11, ns-3 project'
+copyright = u'2018, ns-3 project'
# The version info for the project you're documenting, acts as replacement for
@@ -50,9 +50,9 @@
# built documents.
#
# The short X.Y version.
-version = 'ns-3.28'
+version = 'ns-3.29'
# The full version, including alpha/beta/rc tags.
-release = 'ns-3.28'
+release = 'ns-3.29'
# The language for content autogenerated by . Refer to babel documentation
# for a list of supported languages.
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/energy/energy-model-example.cc ns-3.29/examples/energy/energy-model-example.cc
--- ns-3.28.1/examples/energy/energy-model-example.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/energy/energy-model-example.cc 2018-09-04 16:02:39.000000000 -0700
@@ -18,18 +18,18 @@
* Author: Sidharth Nabar , He Wu
*/
+#include
+#include
+#include
+#include
#include "ns3/core-module.h"
#include "ns3/network-module.h"
#include "ns3/mobility-module.h"
#include "ns3/config-store-module.h"
-#include "ns3/wifi-module.h"
#include "ns3/energy-module.h"
#include "ns3/internet-module.h"
-
-#include
-#include
-#include
-#include
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/wifi-radio-energy-model-helper.h"
using namespace ns3;
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/energy/energy-model-with-harvesting-example.cc ns-3.29/examples/energy/energy-model-with-harvesting-example.cc
--- ns-3.28.1/examples/energy/energy-model-with-harvesting-example.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/energy/energy-model-with-harvesting-example.cc 2018-09-04 16:02:39.000000000 -0700
@@ -47,18 +47,18 @@
*
*/
+#include
+#include
+#include
+#include
#include "ns3/core-module.h"
#include "ns3/network-module.h"
#include "ns3/mobility-module.h"
#include "ns3/config-store-module.h"
-#include "ns3/wifi-module.h"
#include "ns3/energy-module.h"
#include "ns3/internet-module.h"
-
-#include
-#include
-#include
-#include
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/wifi-radio-energy-model-helper.h"
using namespace ns3;
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/routing/manet-routing-compare.cc ns-3.29/examples/routing/manet-routing-compare.cc
--- ns-3.28.1/examples/routing/manet-routing-compare.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/routing/manet-routing-compare.cc 2018-09-04 16:02:39.000000000 -0700
@@ -71,12 +71,12 @@
#include "ns3/network-module.h"
#include "ns3/internet-module.h"
#include "ns3/mobility-module.h"
-#include "ns3/wifi-module.h"
#include "ns3/aodv-module.h"
#include "ns3/olsr-module.h"
#include "ns3/dsdv-module.h"
#include "ns3/dsr-module.h"
#include "ns3/applications-module.h"
+#include "ns3/yans-wifi-helper.h"
using namespace ns3;
using namespace dsr;
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/stats/README ns-3.29/examples/stats/README
--- ns-3.28.1/examples/stats/README 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/stats/README 2018-09-04 16:02:39.000000000 -0700
@@ -23,7 +23,7 @@
If you want to analyse the results with OMNeT++'s result analyser tool:
a) Download OMNeT++ 4 and install it. Start the IDE. (www.omnetpp.org)
-b) If you do not want to install the whole simulator framework, there is a seperate
+b) If you do not want to install the whole simulator framework, there is a separate
package which contains only the analysis tool from the OMNeT++ package.
You can download it from http://omnetpp.org/download/release/omnetpp-scave.tgz
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/stats/wifi-example-db.sh ns-3.29/examples/stats/wifi-example-db.sh
--- ns-3.28.1/examples/stats/wifi-example-db.sh 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/stats/wifi-example-db.sh 2018-09-04 16:02:39.000000000 -0700
@@ -49,7 +49,7 @@
done
#
-#Another SQL command which just collects raw numbers of frames receved.
+#Another SQL command which just collects raw numbers of frames received.
#
#CMD="select Experiments.input,avg(Singletons.value) \
# from Singletons,Experiments \
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/stats/wifi-example-sim.cc ns-3.29/examples/stats/wifi-example-sim.cc
--- ns-3.28.1/examples/stats/wifi-example-sim.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/stats/wifi-example-sim.cc 2018-09-04 16:02:39.000000000 -0700
@@ -31,17 +31,13 @@
*/
#include
-
#include
-
#include "ns3/core-module.h"
#include "ns3/network-module.h"
#include "ns3/mobility-module.h"
-#include "ns3/wifi-module.h"
#include "ns3/internet-module.h"
-
#include "ns3/stats-module.h"
-
+#include "ns3/yans-wifi-helper.h"
#include "wifi-example-apps.h"
using namespace ns3;
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/tcp/tcp-nsc-zoo.cc ns-3.29/examples/tcp/tcp-nsc-zoo.cc
--- ns-3.28.1/examples/tcp/tcp-nsc-zoo.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/tcp/tcp-nsc-zoo.cc 2018-09-04 16:02:39.000000000 -0700
@@ -89,7 +89,7 @@
internetStack.SetTcp ("ns3::NscTcpL4Protocol","Library",StringValue ("liblinux2.6.26.so"));
// this switches node 3 to NSCs Linux 2.6.26 stack.
internetStack.Install (n.Get (3));
- // and then agains disables sack/timestamps/wscale on node 3.
+ // and then again disables sack/timestamps/wscale on node 3.
Config::Set ("/NodeList/3/$ns3::Ns3NscStack/net.ipv4.tcp_sack", StringValue ("0"));
Config::Set ("/NodeList/3/$ns3::Ns3NscStack/net.ipv4.tcp_timestamps", StringValue ("0"));
Config::Set ("/NodeList/3/$ns3::Ns3NscStack/net.ipv4.tcp_window_scaling", StringValue ("0"));
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/tcp/tcp-variants-comparison.cc ns-3.29/examples/tcp/tcp-variants-comparison.cc
--- ns-3.28.1/examples/tcp/tcp-variants-comparison.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/tcp/tcp-variants-comparison.cc 2018-09-04 16:02:39.000000000 -0700
@@ -223,6 +223,7 @@
bool pcap = false;
bool sack = true;
std::string queue_disc_type = "ns3::PfifoFastQueueDisc";
+ std::string recovery = "ns3::TcpClassicRecovery";
CommandLine cmd;
@@ -246,6 +247,7 @@
cmd.AddValue ("pcap_tracing", "Enable or disable PCAP tracing", pcap);
cmd.AddValue ("queue_disc_type", "Queue disc type for gateway (e.g. ns3::CoDelQueueDisc)", queue_disc_type);
cmd.AddValue ("sack", "Enable or disable SACK option", sack);
+ cmd.AddValue ("recovery", "Recovery algorithm type to use (e.g., ns3::TcpPrrRecovery", recovery);
cmd.Parse (argc, argv);
transport_prot = std::string ("ns3::") + transport_prot;
@@ -279,6 +281,8 @@
Config::SetDefault ("ns3::TcpSocket::SndBufSize", UintegerValue (1 << 21));
Config::SetDefault ("ns3::TcpSocketBase::Sack", BooleanValue (sack));
+ Config::SetDefault ("ns3::TcpL4Protocol::RecoveryType",
+ TypeIdValue (TypeId::LookupByName (recovery)));
// Select TCP variant
if (transport_prot.compare ("ns3::TcpWestwoodPlus") == 0)
{
@@ -342,13 +346,13 @@
Time access_d (access_delay);
Time bottle_d (delay);
- Config::SetDefault ("ns3::CoDelQueueDisc::Mode", EnumValue (CoDelQueueDisc::QUEUE_DISC_MODE_BYTES));
-
uint32_t size = static_cast((std::min (access_b, bottle_b).GetBitRate () / 8) *
((access_d + bottle_d) * 2).GetSeconds ());
- Config::SetDefault ("ns3::PfifoFastQueueDisc::Limit", UintegerValue (size / mtu_bytes));
- Config::SetDefault ("ns3::CoDelQueueDisc::MaxBytes", UintegerValue (size));
+ Config::SetDefault ("ns3::PfifoFastQueueDisc::MaxSize",
+ QueueSizeValue (QueueSize (QueueSizeUnit::PACKETS, size / mtu_bytes)));
+ Config::SetDefault ("ns3::CoDelQueueDisc::MaxSize",
+ QueueSizeValue (QueueSize (QueueSizeUnit::BYTES, size)));
for (uint32_t i = 0; i < num_flows; i++)
{
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/traffic-control/queue-discs-benchmark.cc ns-3.29/examples/traffic-control/queue-discs-benchmark.cc
--- ns-3.28.1/examples/traffic-control/queue-discs-benchmark.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/traffic-control/queue-discs-benchmark.cc 2018-09-04 16:02:39.000000000 -0700
@@ -83,7 +83,7 @@
{
Simulator::Schedule (Seconds (period), &GoodputSampling, fileName, app, stream, period);
double goodput;
- uint32_t totalPackets = DynamicCast (app.Get (0))->GetTotalRx ();
+ uint64_t totalPackets = DynamicCast (app.Get (0))->GetTotalRx ();
goodput = totalPackets * 8 / (Simulator::Now ().GetSeconds () * 1024); // Kbit/s
*stream->GetStream () << Simulator::Now ().GetSeconds () << " " << goodput << std::endl;
}
@@ -99,20 +99,20 @@
std::string delay = "5ms";
std::string queueDiscType = "PfifoFast";
uint32_t queueDiscSize = 1000;
- uint32_t netdevicesQueueSize = 100;
+ uint32_t netdevicesQueueSize = 50;
bool bql = false;
std::string flowsDatarate = "20Mbps";
uint32_t flowsPacketsSize = 1000;
- float startTime = 0.1; // in s
+ float startTime = 0.1f; // in s
float simDuration = 60;
float samplingPeriod = 1;
CommandLine cmd;
cmd.AddValue ("bandwidth", "Bottleneck bandwidth", bandwidth);
cmd.AddValue ("delay", "Bottleneck delay", delay);
- cmd.AddValue ("queueDiscType", "Bottleneck queue disc type in {PfifoFast, ARED, CoDel, FqCoDel, PIE}", queueDiscType);
+ cmd.AddValue ("queueDiscType", "Bottleneck queue disc type in {PfifoFast, ARED, CoDel, FqCoDel, PIE, prio}", queueDiscType);
cmd.AddValue ("queueDiscSize", "Bottleneck queue disc size in packets", queueDiscSize);
cmd.AddValue ("netdevicesQueueSize", "Bottleneck netdevices queue size in packets", netdevicesQueueSize);
cmd.AddValue ("bql", "Enable byte queue limits on bottleneck netdevices", bql);
@@ -170,11 +170,9 @@
}
else if (queueDiscType.compare ("FqCoDel") == 0)
{
- uint32_t handle = tchBottleneck.SetRootQueueDisc ("ns3::FqCoDelQueueDisc");
+ tchBottleneck.SetRootQueueDisc ("ns3::FqCoDelQueueDisc");
Config::SetDefault ("ns3::FqCoDelQueueDisc::MaxSize",
QueueSizeValue (QueueSize (QueueSizeUnit::PACKETS, queueDiscSize)));
- tchBottleneck.AddPacketFilter (handle, "ns3::FqCoDelIpv4PacketFilter");
- tchBottleneck.AddPacketFilter (handle, "ns3::FqCoDelIpv6PacketFilter");
}
else if (queueDiscType.compare ("PIE") == 0)
{
@@ -182,6 +180,14 @@
Config::SetDefault ("ns3::PieQueueDisc::MaxSize",
QueueSizeValue (QueueSize (QueueSizeUnit::PACKETS, queueDiscSize)));
}
+ else if (queueDiscType.compare ("prio") == 0)
+ {
+ uint16_t handle = tchBottleneck.SetRootQueueDisc ("ns3::PrioQueueDisc", "Priomap",
+ StringValue ("0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1"));
+ TrafficControlHelper::ClassIdList cid = tchBottleneck.AddQueueDiscClasses (handle, 2, "ns3::QueueDiscClass");
+ tchBottleneck.AddChildQueueDisc (handle, cid[0], "ns3::FifoQueueDisc");
+ tchBottleneck.AddChildQueueDisc (handle, cid[1], "ns3::RedQueueDisc");
+ }
else
{
NS_ABORT_MSG ("--queueDiscType not valid");
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/traffic-control/traffic-control.cc ns-3.29/examples/traffic-control/traffic-control.cc
--- ns-3.28.1/examples/traffic-control/traffic-control.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/traffic-control/traffic-control.cc 2018-09-04 16:02:39.000000000 -0700
@@ -79,9 +79,9 @@
}
void
-SojournTimeTrace (Time oldValue, Time newValue)
+SojournTimeTrace (Time sojournTime)
{
- std::cout << "Sojourn time " << newValue.ToDouble (Time::MS) << "ms" << std::endl;
+ std::cout << "Sojourn time " << sojournTime.ToDouble (Time::MS) << "ms" << std::endl;
}
int
@@ -202,7 +202,7 @@
auto dscpVec = classifier->GetDscpCounts (1);
for (auto p : dscpVec)
{
- std::cout << " DSCP value: 0x" << std::hex << static_cast(p.first) << std::dec
+ std::cout << " DSCP value: 0x" << std::hex << static_cast (p.first) << std::dec
<< " count: "<< p.second << std::endl;
}
@@ -210,7 +210,7 @@
std::cout << std::endl << "*** Application statistics ***" << std::endl;
double thr = 0;
- uint32_t totalPacketsThr = DynamicCast (sinkApp.Get (0))->GetTotalRx ();
+ uint64_t totalPacketsThr = DynamicCast (sinkApp.Get (0))->GetTotalRx ();
thr = totalPacketsThr * 8 / (simulationTime * 1000000.0); //Mbit/s
std::cout << " Rx Bytes: " << totalPacketsThr << std::endl;
std::cout << " Average Goodput: " << thr << " Mbit/s" << std::endl;
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/tutorial/third.cc ns-3.29/examples/tutorial/third.cc
--- ns-3.28.1/examples/tutorial/third.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/tutorial/third.cc 2018-09-04 16:02:39.000000000 -0700
@@ -18,10 +18,11 @@
#include "ns3/point-to-point-module.h"
#include "ns3/network-module.h"
#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
#include "ns3/mobility-module.h"
#include "ns3/csma-module.h"
#include "ns3/internet-module.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
// Default Network Topology
//
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/80211e-txop.cc ns-3.29/examples/wireless/80211e-txop.cc
--- ns-3.28.1/examples/wireless/80211e-txop.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/80211e-txop.cc 2018-09-04 16:02:39.000000000 -0700
@@ -18,15 +18,24 @@
* Author: Sébastien Deronne
*/
-#include "ns3/core-module.h"
-#include "ns3/network-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/string.h"
+#include "ns3/pointer.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/udp-client-server-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/wifi-net-device.h"
+#include "ns3/qos-txop.h"
+#include "ns3/wifi-mac.h"
// This is an example that illustrates 802.11 QoS for different Access Categories.
-// It defines 4 independant Wi-Fi networks (working on different logical channels
+// It defines 4 independent Wi-Fi networks (working on different logical channels
// on the same "ns3::YansWifiPhy" channel object).
// Each network contains one access point and one station. Each station continuously
// transmits data packets to its respective AP.
@@ -46,9 +55,9 @@
//
// The user can select the distance between the stations and the APs, can enable/disable the RTS/CTS mechanism
// and can choose the payload size and the simulation duration.
-// Example: ./waf --run "80211e-txop --distance=10 --enableRts=0 --simulationTime=20 --payloadSize=1000"
+// Example: ./waf --run "80211e-txop --distance=10 --simulationTime=20 --payloadSize=1000"
//
-// The output prints the throughput measured for the 4 cases/networks decribed above. When TXOP is enabled, results show
+// The output prints the throughput measured for the 4 cases/networks described above. When TXOP is enabled, results show
// increased throughput since the channel is granted for a longer duration. TXOP is enabled by default for AC_VI and AC_VO,
// so that they can use the channel for a longer duration than AC_BE and AC_BK.
@@ -59,7 +68,7 @@
int main (int argc, char *argv[])
{
uint32_t payloadSize = 1472; //bytes
- uint64_t simulationTime = 10; //seconds
+ double simulationTime = 10; //seconds
double distance = 5; //meters
bool enablePcap = 0;
bool verifyResults = 0; //used for regression
@@ -123,9 +132,9 @@
Ptr wifi_dev = DynamicCast (dev);
Ptr wifi_mac = wifi_dev->GetMac ();
PointerValue ptr;
- Ptr edca;
- wifi_mac->GetAttribute ("BE_EdcaTxopN", ptr);
- edca = ptr.Get ();
+ Ptr edca;
+ wifi_mac->GetAttribute ("BE_Txop", ptr);
+ edca = ptr.Get ();
edca->SetTxopLimit (MicroSeconds (3008));
//Network C
@@ -162,8 +171,8 @@
dev = wifiApNodes.Get (3)->GetDevice (0);
wifi_dev = DynamicCast (dev);
wifi_mac = wifi_dev->GetMac ();
- wifi_mac->GetAttribute ("VI_EdcaTxopN", ptr);
- edca = ptr.Get ();
+ wifi_mac->GetAttribute ("VI_Txop", ptr);
+ edca = ptr.Get ();
edca->SetTxopLimit (MicroSeconds (0));
/* Setting mobility model */
@@ -306,11 +315,16 @@
Simulator::Stop (Seconds (simulationTime + 1));
Simulator::Run ();
- Simulator::Destroy ();
/* Show results */
- uint32_t totalPacketsThrough = DynamicCast (serverAppA.Get (0))->GetReceived ();
- double throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0);
+ uint64_t totalPacketsThroughA = DynamicCast (serverAppA.Get (0))->GetReceived ();
+ uint64_t totalPacketsThroughB = DynamicCast (serverAppB.Get (0))->GetReceived ();
+ uint64_t totalPacketsThroughC = DynamicCast (serverAppC.Get (0))->GetReceived ();
+ uint64_t totalPacketsThroughD = DynamicCast (serverAppD.Get (0))->GetReceived ();
+
+ Simulator::Destroy ();
+
+ double throughput = totalPacketsThroughA * payloadSize * 8 / (simulationTime * 1000000.0);
std::cout << "Throughput for AC_BE with default TXOP limit (0ms): " << throughput << " Mbit/s" << '\n';
if (verifyResults && (throughput < 28 || throughput > 29))
{
@@ -318,8 +332,7 @@
exit (1);
}
- totalPacketsThrough = DynamicCast (serverAppB.Get (0))->GetReceived ();
- throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0);
+ throughput = totalPacketsThroughB * payloadSize * 8 / (simulationTime * 1000000.0);
std::cout << "Throughput for AC_BE with non-default TXOP limit (3.008ms): " << throughput << " Mbit/s" << '\n';
if (verifyResults && (throughput < 35.5 || throughput > 36.5))
{
@@ -327,8 +340,7 @@
exit (1);
}
- totalPacketsThrough = DynamicCast (serverAppC.Get (0))->GetReceived ();
- throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0);
+ throughput = totalPacketsThroughC * payloadSize * 8 / (simulationTime * 1000000.0);
std::cout << "Throughput for AC_VI with default TXOP limit (3.008ms): " << throughput << " Mbit/s" << '\n';
if (verifyResults && (throughput < 36 || throughput > 37))
{
@@ -336,8 +348,7 @@
exit (1);
}
- totalPacketsThrough = DynamicCast (serverAppD.Get (0))->GetReceived ();
- throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0);
+ throughput = totalPacketsThroughD * payloadSize * 8 / (simulationTime * 1000000.0);
std::cout << "Throughput for AC_VI with non-default TXOP limit (0ms): " << throughput << " Mbit/s" << '\n';
if (verifyResults && (throughput < 31.5 || throughput > 32.5))
{
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/80211n-mimo.cc ns-3.29/examples/wireless/80211n-mimo.cc
--- ns-3.28.1/examples/wireless/80211n-mimo.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/80211n-mimo.cc 2018-09-04 16:02:39.000000000 -0700
@@ -31,12 +31,24 @@
// The user can choose whether UDP or TCP should be used and can configure
// some 802.11n parameters (frequency, channel width and guard interval).
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/internet-module.h"
#include "ns3/gnuplot.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/udp-client-server-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/ipv4-global-routing-helper.h"
+#include "ns3/packet-sink.h"
+#include "ns3/yans-wifi-channel.h"
using namespace ns3;
@@ -100,7 +112,7 @@
{
std::cout << modes[i] << std::endl;
Gnuplot2dDataset dataset (modes[i]);
- for (int d = 0; d <= 100; ) //distance
+ for (double d = 0; d <= 100; ) //distance
{
std::cout << "Distance = " << d << "m: " << std::endl;
uint32_t payloadSize; //1500 byte IP packet
@@ -243,7 +255,6 @@
Simulator::Stop (Seconds (simulationTime + 1));
Simulator::Run ();
- Simulator::Destroy ();
double throughput = 0;
if (udp)
@@ -261,6 +272,7 @@
dataset.Add (d, throughput);
std::cout << throughput << " Mbit/s" << std::endl;
d += step;
+ Simulator::Destroy ();
}
plot.AddDataset (dataset);
}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/dsss-validation.cc ns-3.29/examples/wireless/dsss-validation.cc
--- ns-3.28.1/examples/wireless/dsss-validation.cc 1969-12-31 16:00:00.000000000 -0800
+++ ns-3.29/examples/wireless/dsss-validation.cc 2018-09-04 16:02:39.000000000 -0700
@@ -0,0 +1,101 @@
+/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Sébastien Deronne
+ */
+
+// This example is used to validate error rate models for DSSS rates.
+//
+// It outputs plots of the Frame Success Rate versus the Signal-to-noise ratio
+// for the DSSS error rate models and for every DSSS mode.
+
+#include
+#include
+#include "ns3/gnuplot.h"
+#include "ns3/command-line.h"
+#include "ns3/yans-error-rate-model.h"
+#include "ns3/nist-error-rate-model.h"
+#include "ns3/wifi-tx-vector.h"
+
+using namespace ns3;
+
+int main (int argc, char *argv[])
+{
+ uint32_t FrameSize = 1500; //bytes
+ std::ofstream file ("frame-success-rate-dsss.plt");
+ std::vector modes;
+
+ modes.push_back ("DsssRate1Mbps");
+ modes.push_back ("DsssRate2Mbps");
+ modes.push_back ("DsssRate5_5Mbps");
+ modes.push_back ("DsssRate11Mbps");
+
+ CommandLine cmd;
+ cmd.AddValue ("FrameSize", "The frame size in bytes", FrameSize);
+ cmd.Parse (argc, argv);
+
+ Gnuplot plot = Gnuplot ("frame-success-rate-dsss.eps");
+
+ Ptr yans = CreateObject ();
+ Ptr nist = CreateObject ();
+ WifiTxVector txVector;
+
+ for (uint32_t i = 0; i < modes.size (); i++)
+ {
+ std::cout << modes[i] << std::endl;
+ Gnuplot2dDataset dataset (modes[i]);
+ txVector.SetMode (modes[i]);
+
+ for (double snr = -10.0; snr <= 20.0; snr += 0.1)
+ {
+ double psYans = yans->GetChunkSuccessRate (WifiMode (modes[i]), txVector, std::pow (10.0,snr / 10.0), FrameSize * 8);
+ if (psYans < 0.0 || psYans > 1.0)
+ {
+ //error
+ exit (1);
+ }
+ double psNist = nist->GetChunkSuccessRate (WifiMode (modes[i]), txVector, std::pow (10.0,snr / 10.0), FrameSize * 8);
+ if (psNist < 0.0 || psNist > 1.0)
+ {
+ std::cout<
*/
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/udp-client-server-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/ipv4-global-routing-helper.h"
+#include "ns3/packet-sink.h"
+#include "ns3/yans-wifi-channel.h"
// This is a simple example in order to show how to configure an IEEE 802.11ax Wi-Fi network.
//
@@ -228,7 +241,6 @@
Simulator::Stop (Seconds (simulationTime + 1));
Simulator::Run ();
- Simulator::Destroy ();
uint64_t rxBytes = 0;
if (udp)
@@ -240,7 +252,11 @@
rxBytes = DynamicCast (serverApp.Get (0))->GetTotalRx ();
}
double throughput = (rxBytes * 8) / (simulationTime * 1000000.0); //Mbit/s
+
+ Simulator::Destroy ();
+
std::cout << mcs << "\t\t\t" << channelWidth << " MHz\t\t\t" << gi << " ns\t\t\t" << throughput << " Mbit/s" << std::endl;
+
//test first element
if (mcs == 0 && channelWidth == 20 && gi == 3200)
{
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/ht-wifi-network.cc ns-3.29/examples/wireless/ht-wifi-network.cc
--- ns-3.28.1/examples/wireless/ht-wifi-network.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/ht-wifi-network.cc 2018-09-04 16:02:39.000000000 -0700
@@ -19,11 +19,24 @@
* Sebastien Deronne
*/
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/udp-client-server-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/ipv4-global-routing-helper.h"
+#include "ns3/packet-sink.h"
+#include "ns3/yans-wifi-channel.h"
// This is a simple example in order to show how to configure an IEEE 802.11n Wi-Fi network.
//
@@ -228,7 +241,6 @@
Simulator::Stop (Seconds (simulationTime + 1));
Simulator::Run ();
- Simulator::Destroy ();
uint64_t rxBytes = 0;
if (udp)
@@ -240,7 +252,11 @@
rxBytes = DynamicCast (serverApp.Get (0))->GetTotalRx ();
}
double throughput = (rxBytes * 8) / (simulationTime * 1000000.0); //Mbit/s
+
+ Simulator::Destroy ();
+
std::cout << mcs << "\t\t\t" << channelWidth << " MHz\t\t\t" << sgi << "\t\t\t" << throughput << " Mbit/s" << std::endl;
+
//test first element
if (mcs == 0 && channelWidth == 20 && sgi == 0)
{
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/mixed-network.cc ns-3.29/examples/wireless/mixed-network.cc
--- ns-3.28.1/examples/wireless/mixed-network.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/mixed-network.cc 2018-09-04 16:02:39.000000000 -0700
@@ -18,11 +18,24 @@
* Author: Sébastien Deronne
*/
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/string.h"
+#include "ns3/pointer.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/udp-client-server-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/wifi-net-device.h"
+#include "ns3/qos-txop.h"
+#include "ns3/wifi-mac.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/packet-sink.h"
// This example shows how to configure mixed networks (i.e. mixed b/g and HT/non-HT) and how are performance in several scenarios.
//
@@ -76,7 +89,7 @@
bool nGreenfieldHasTraffic;
bool isUdp;
uint32_t payloadSize;
- uint32_t simulationTime;
+ double simulationTime;
};
class Experiment
@@ -129,7 +142,7 @@
uint32_t nWifiG = params.nWifiG;
uint32_t nWifiNNGF = params.nWifiNNonGreenfield;
uint32_t nWifiNGF = params.nWifiNGreenfield;
- uint32_t simulationTime = params.simulationTime;
+ double simulationTime = params.simulationTime;
uint32_t payloadSize = params.payloadSize;
NodeContainer wifiBStaNodes;
@@ -210,8 +223,8 @@
Ptr wifi_dev = DynamicCast (dev);
Ptr wifi_mac = wifi_dev->GetMac ();
PointerValue ptr;
- wifi_mac->GetAttribute ("BE_EdcaTxopN", ptr);
- Ptr edca = ptr.Get ();
+ wifi_mac->GetAttribute ("BE_Txop", ptr);
+ Ptr edca = ptr.Get ();
edca->SetTxopLimit (MicroSeconds (3008));
}
if (nWifiNNGF > 0)
@@ -220,8 +233,8 @@
Ptr wifi_dev = DynamicCast (dev);
Ptr wifi_mac = wifi_dev->GetMac ();
PointerValue ptr;
- wifi_mac->GetAttribute ("BE_EdcaTxopN", ptr);
- Ptr edca = ptr.Get ();
+ wifi_mac->GetAttribute ("BE_Txop", ptr);
+ Ptr edca = ptr.Get ();
edca->SetTxopLimit (MicroSeconds (3008));
}
if (nWifiNGF > 0)
@@ -230,8 +243,8 @@
Ptr wifi_dev = DynamicCast (dev);
Ptr wifi_mac = wifi_dev->GetMac ();
PointerValue ptr;
- wifi_mac->GetAttribute ("BE_EdcaTxopN", ptr);
- Ptr edca = ptr.Get ();
+ wifi_mac->GetAttribute ("BE_Txop", ptr);
+ Ptr edca = ptr.Get ();
edca->SetTxopLimit (MicroSeconds (3008));
}
@@ -322,7 +335,6 @@
Simulator::Stop (Seconds (simulationTime + 1));
Simulator::Run ();
- Simulator::Destroy ();
uint64_t totalPacketsThrough = DynamicCast (serverApp.Get (0))->GetReceived ();
throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0);
@@ -368,11 +380,11 @@
Simulator::Stop (Seconds (simulationTime + 1));
Simulator::Run ();
- Simulator::Destroy ();
uint64_t totalPacketsThrough = DynamicCast (serverApp.Get (0))->GetTotalRx ();
throughput += totalPacketsThrough * 8 / (simulationTime * 1000000.0);
}
+ Simulator::Destroy ();
return throughput;
}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/mixed-wired-wireless.cc ns-3.29/examples/wireless/mixed-wired-wireless.cc
--- ns-3.28.1/examples/wireless/mixed-wired-wireless.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/mixed-wired-wireless.cc 2018-09-04 16:02:39.000000000 -0700
@@ -58,14 +58,20 @@
// Note that certain mobility patterns may cause packet forwarding
// to fail (if nodes become disconnected)
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/csma-module.h"
+#include "ns3/command-line.h"
+#include "ns3/string.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/qos-txop.h"
+#include "ns3/packet-sink-helper.h"
#include "ns3/olsr-helper.h"
-#include "ns3/internet-module.h"
-#include "ns3/netanim-module.h"
+#include "ns3/csma-helper.h"
+#include "ns3/animation-interface.h"
using namespace ns3;
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/multirate.cc ns-3.29/examples/wireless/multirate.cc
--- ns-3.28.1/examples/wireless/multirate.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/multirate.cc 2018-09-04 16:02:39.000000000 -0700
@@ -48,14 +48,26 @@
*
*/
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/stats-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/internet-module.h"
-#include "ns3/flow-monitor-helper.h"
+#include "ns3/gnuplot.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/mobility-model.h"
#include "ns3/olsr-helper.h"
+#include "ns3/ipv4-static-routing-helper.h"
+#include "ns3/ipv4-list-routing-helper.h"
+#include "ns3/rectangle.h"
+#include "ns3/flow-monitor-helper.h"
using namespace ns3;
@@ -576,10 +588,6 @@
//for commandline input
experiment.CommandSetup (argc, argv);
- // set value to 0 for enabling fragmentation
- Config::SetDefault ("ns3::WifiRemoteStationManager::FragmentationThreshold", StringValue ("2200"));
- Config::SetDefault ("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue (experiment.GetRtsThreshold ()));
-
std::ofstream outfile ((experiment.GetOutputFileName () + ".plt").c_str ());
MobilityHelper mobility;
@@ -590,10 +598,9 @@
WifiMacHelper wifiMac;
YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();
YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();
- Ssid ssid = Ssid ("Testbed");
wifiMac.SetType ("ns3::AdhocWifiMac",
- "Ssid", SsidValue (ssid));
+ "Ssid", StringValue ("Testbed"));
wifi.SetStandard (WIFI_PHY_STANDARD_holland);
wifi.SetRemoteStationManager (experiment.GetRateManager ());
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/ofdm-he-validation.cc ns-3.29/examples/wireless/ofdm-he-validation.cc
--- ns-3.28.1/examples/wireless/ofdm-he-validation.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/ofdm-he-validation.cc 2018-09-04 16:02:39.000000000 -0700
@@ -13,7 +13,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Authors: Sébastien Deronne
+ * Author: Sébastien Deronne
*/
// This example is used to validate NIST and YANS error rate models for VHT rates.
@@ -21,14 +21,13 @@
// It outputs plots of the Frame Success Rate versus the Signal-to-noise ratio for
// both NIST and YANS error rate models and for every HE MCS value.
-#include "ns3/core-module.h"
-#include "ns3/yans-error-rate-model.h"
-#include "ns3/nist-error-rate-model.h"
-#include "ns3/gnuplot.h"
-
#include
-#include
#include
+#include "ns3/gnuplot.h"
+#include "ns3/command-line.h"
+#include "ns3/yans-error-rate-model.h"
+#include "ns3/nist-error-rate-model.h"
+#include "ns3/wifi-tx-vector.h"
using namespace ns3;
@@ -73,17 +72,18 @@
for (double snr = -5.0; snr <= 40.0; snr += 0.1)
{
double ps = yans->GetChunkSuccessRate (WifiMode (modes[i]), txVector, std::pow (10.0,snr / 10.0), FrameSize * 8);
- if (ps < 0 || ps > 1)
+ if (ps < 0.0 || ps > 1.0)
{
//error
- return 0;
+ exit (1);
}
yansdataset.Add (snr, ps);
+
ps = nist->GetChunkSuccessRate (WifiMode (modes[i]), txVector, std::pow (10.0,snr / 10.0), FrameSize * 8);
- if (ps < 0 || ps > 1)
+ if (ps < 0.0 || ps > 1.0)
{
//error
- return 0;
+ exit (1);
}
nistdataset.Add (snr, ps);
}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/ofdm-ht-validation.cc ns-3.29/examples/wireless/ofdm-ht-validation.cc
--- ns-3.28.1/examples/wireless/ofdm-ht-validation.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/ofdm-ht-validation.cc 2018-09-04 16:02:39.000000000 -0700
@@ -13,7 +13,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Authors: Sébastien Deronne
+ * Author: Sébastien Deronne
*/
// This example is used to validate NIST and YANS error rate models for HT rates.
@@ -21,10 +21,13 @@
// It outputs plots of the Frame Success Rate versus the Signal-to-noise ratio for
// both NIST and YANS error rate models and for every HT MCS value.
-#include "ns3/core-module.h"
+#include
+#include
+#include "ns3/gnuplot.h"
+#include "ns3/command-line.h"
#include "ns3/yans-error-rate-model.h"
#include "ns3/nist-error-rate-model.h"
-#include "ns3/gnuplot.h"
+#include "ns3/wifi-tx-vector.h"
using namespace ns3;
@@ -66,17 +69,18 @@
for (double snr = -5.0; snr <= 30.0; snr += 0.1)
{
double ps = yans->GetChunkSuccessRate (WifiMode (modes[i]), txVector, std::pow (10.0,snr / 10.0), FrameSize * 8);
- yansdataset.Add (snr, ps);
- if (ps < 0 || ps > 1)
+ if (ps < 0.0 || ps > 1.0)
{
//error
- return 0;
+ exit (1);
}
+ yansdataset.Add (snr, ps);
+
ps = nist->GetChunkSuccessRate (WifiMode (modes[i]), txVector, std::pow (10.0,snr / 10.0), FrameSize * 8);
- if (ps < 0 || ps > 1)
+ if (ps < 0.0 || ps > 1.0)
{
//error
- return 0;
+ exit (1);
}
nistdataset.Add (snr, ps);
}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/ofdm-validation.cc ns-3.29/examples/wireless/ofdm-validation.cc
--- ns-3.28.1/examples/wireless/ofdm-validation.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/ofdm-validation.cc 2018-09-04 16:02:39.000000000 -0700
@@ -23,18 +23,21 @@
// It outputs plots of the Frame Success Rate versus the Signal-to-noise ratio for
// both NIST and YANS error rate models and for every OFDM mode.
-#include "ns3/core-module.h"
+#include
+#include
+#include "ns3/gnuplot.h"
+#include "ns3/command-line.h"
#include "ns3/yans-error-rate-model.h"
#include "ns3/nist-error-rate-model.h"
-#include "ns3/gnuplot.h"
+#include "ns3/wifi-tx-vector.h"
using namespace ns3;
int main (int argc, char *argv[])
{
uint32_t FrameSize = 1500; //bytes
- std::ofstream yansfile ("yans-frame-success-rate.plt");
- std::ofstream nistfile ("nist-frame-success-rate.plt");
+ std::ofstream yansfile ("yans-frame-success-rate-ofdm.plt");
+ std::ofstream nistfile ("nist-frame-success-rate-ofdm.plt");
std::vector modes;
modes.push_back ("OfdmRate6Mbps");
@@ -50,8 +53,8 @@
cmd.AddValue ("FrameSize", "The frame size in bytes", FrameSize);
cmd.Parse (argc, argv);
- Gnuplot yansplot = Gnuplot ("yans-frame-success-rate.eps");
- Gnuplot nistplot = Gnuplot ("nist-frame-success-rate.eps");
+ Gnuplot yansplot = Gnuplot ("yans-frame-success-rate-ofdm.eps");
+ Gnuplot nistplot = Gnuplot ("nist-frame-success-rate-ofdm.eps");
Ptr yans = CreateObject ();
Ptr nist = CreateObject ();
@@ -67,17 +70,18 @@
for (double snr = -5.0; snr <= 30.0; snr += 0.1)
{
double ps = yans->GetChunkSuccessRate (WifiMode (modes[i]), txVector, std::pow (10.0,snr / 10.0), FrameSize * 8);
- yansdataset.Add (snr, ps);
- if (ps < 0 || ps > 1)
+ if (ps < 0.0 || ps > 1.0)
{
//error
- return 0;
+ exit (1);
}
+ yansdataset.Add (snr, ps);
+
ps = nist->GetChunkSuccessRate (WifiMode (modes[i]), txVector, std::pow (10.0,snr / 10.0), FrameSize * 8);
- if (ps < 0 || ps > 1)
+ if (ps < 0.0 || ps > 1.0)
{
//error
- return 0;
+ exit (1);
}
nistdataset.Add (snr, ps);
}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/ofdm-vht-validation.cc ns-3.29/examples/wireless/ofdm-vht-validation.cc
--- ns-3.28.1/examples/wireless/ofdm-vht-validation.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/ofdm-vht-validation.cc 2018-09-04 16:02:39.000000000 -0700
@@ -13,7 +13,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Authors: Sébastien Deronne
+ * Author: Sébastien Deronne
*/
// This example is used to validate NIST and YANS error rate models for VHT rates.
@@ -22,10 +22,13 @@
// both NIST and YANS error rate models and for every VHT MCS value (MCS 9 is not
// included since it is forbidden for 20 MHz channels).
-#include "ns3/core-module.h"
+#include
+#include
+#include "ns3/gnuplot.h"
+#include "ns3/command-line.h"
#include "ns3/yans-error-rate-model.h"
#include "ns3/nist-error-rate-model.h"
-#include "ns3/gnuplot.h"
+#include "ns3/wifi-tx-vector.h"
using namespace ns3;
@@ -67,17 +70,18 @@
for (double snr = -5.0; snr <= 30.0; snr += 0.1)
{
double ps = yans->GetChunkSuccessRate (WifiMode (modes[i]), txVector, std::pow (10.0,snr / 10.0), FrameSize * 8);
- if (ps < 0 || ps > 1)
+ if (ps < 0.0 || ps > 1.0)
{
//error
- return 0;
+ exit (1);
}
yansdataset.Add (snr, ps);
+
ps = nist->GetChunkSuccessRate (WifiMode (modes[i]), txVector, std::pow (10.0,snr / 10.0), FrameSize * 8);
- if (ps < 0 || ps > 1)
+ if (ps < 0.0 || ps > 1.0)
{
//error
- return 0;
+ exit (1);
}
nistdataset.Add (snr, ps);
}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/power-adaptation-distance.cc ns-3.29/examples/wireless/power-adaptation-distance.cc
--- ns-3.28.1/examples/wireless/power-adaptation-distance.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/power-adaptation-distance.cc 2018-09-04 16:02:39.000000000 -0700
@@ -85,12 +85,24 @@
* \endcode
*/
-#include "ns3/core-module.h"
-#include "ns3/internet-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/stats-module.h"
+#include "ns3/gnuplot.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/double.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/wifi-net-device.h"
+#include "ns3/wifi-mac.h"
+#include "ns3/wifi-mac-header.h"
+#include "ns3/mobility-model.h"
using namespace ns3;
using namespace std;
@@ -347,7 +359,7 @@
wifiStaDevices.Add (wifi.Install (wifiPhy, wifiMac, wifiStaNodes.Get (0)));
//Configure the AP node
- wifi.SetRemoteStationManager (manager, "DefaultTxPowerLevel", UintegerValue (maxPower), "RtsCtsThreshold", UintegerValue (rtsThreshold));
+ wifi.SetRemoteStationManager (manager, "DefaultTxPowerLevel", UintegerValue (powerLevels - 1), "RtsCtsThreshold", UintegerValue (rtsThreshold));
wifiPhy.Set ("TxPowerStart", DoubleValue (minPower));
wifiPhy.Set ("TxPowerEnd", DoubleValue (maxPower));
wifiPhy.Set ("TxPowerLevels", UintegerValue (powerLevels));
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/power-adaptation-interference.cc ns-3.29/examples/wireless/power-adaptation-interference.cc
--- ns-3.28.1/examples/wireless/power-adaptation-interference.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/power-adaptation-interference.cc 2018-09-04 16:02:39.000000000 -0700
@@ -55,13 +55,25 @@
* \endcode
*/
-#include "ns3/core-module.h"
-#include "ns3/internet-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/stats-module.h"
-#include "ns3/flow-monitor-module.h"
+#include "ns3/gnuplot.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/double.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/wifi-net-device.h"
+#include "ns3/wifi-mac.h"
+#include "ns3/wifi-mac-header.h"
+#include "ns3/flow-monitor-helper.h"
+#include "ns3/ipv4-flow-classifier.h"
using namespace ns3;
using namespace std;
@@ -398,7 +410,7 @@
wifiStaDevices.Add (wifi.Install (wifiPhy, wifiMac, wifiStaNodes.Get (1)));
//Configure the AP nodes
- wifi.SetRemoteStationManager (manager, "DefaultTxPowerLevel", UintegerValue (maxPower), "RtsCtsThreshold", UintegerValue (rtsThreshold));
+ wifi.SetRemoteStationManager (manager, "DefaultTxPowerLevel", UintegerValue (powerLevels - 1), "RtsCtsThreshold", UintegerValue (rtsThreshold));
wifiPhy.Set ("TxPowerStart", DoubleValue (minPower));
wifiPhy.Set ("TxPowerEnd", DoubleValue (maxPower));
wifiPhy.Set ("TxPowerLevels", UintegerValue (powerLevels));
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/rate-adaptation-distance.cc ns-3.29/examples/wireless/rate-adaptation-distance.cc
--- ns-3.28.1/examples/wireless/rate-adaptation-distance.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/rate-adaptation-distance.cc 2018-09-04 16:02:39.000000000 -0700
@@ -38,24 +38,33 @@
* - (if logging is enabled) the changes of rate to standard output.
*
* Example usage:
- * ./waf --run "rate-adaptation-distance --manager=ns3::MinstrelWifiManager --outputFileName=minstrel"
+ * ./waf --run "rate-adaptation-distance --staManager=ns3::MinstrelWifiManager --apManager=ns3::MinstrelWifiManager --outputFileName=minstrel"
*
* Another example (moving towards the AP):
- * ./waf --run "rate-adaptation-distance --manager=ns3::MinstrelWifiManager --outputFileName=minstrel --stepsSize=1 --STA1_x=-200"
+ * ./waf --run "rate-adaptation-distance --staManager=ns3::MinstrelWifiManager --apManager=ns3::MinstrelWifiManager --outputFileName=minstrel --stepsSize=1 --STA1_x=-200"
*
* Example for HT rates with SGI and channel width of 40MHz:
- * ./waf --run "rate-adaptation-distance --manager=ns3::MinstrelHtWifiManager --outputFileName=minstrelHt --shortGuardInterval=true --channelWidth=40"
+ * ./waf --run "rate-adaptation-distance --staManager=ns3::MinstrelHtWifiManager --apManager=ns3::MinstrelHtWifiManager --outputFileName=minstrelHt --shortGuardInterval=true --channelWidth=40"
*
* To enable the log of rate changes:
* export NS_LOG=RateAdaptationDistance=level_info
*/
-#include "ns3/core-module.h"
-#include "ns3/internet-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/stats-module.h"
+#include "ns3/gnuplot.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/mobility-model.h"
using namespace ns3;
using namespace std;
@@ -319,7 +328,7 @@
ApplicationContainer apps_sink = sink.Install (wifiStaNodes.Get (0));
OnOffHelper onoff ("ns3::UdpSocketFactory", InetSocketAddress (sinkAddress, port));
- onoff.SetConstantRate (DataRate ("200Mb/s"), 1420);
+ onoff.SetConstantRate (DataRate ("400Mb/s"), 1420);
onoff.SetAttribute ("StartTime", TimeValue (Seconds (0.5)));
onoff.SetAttribute ("StopTime", TimeValue (Seconds (simuTime)));
ApplicationContainer apps_source = onoff.Install (wifiApNodes.Get (0));
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/simple-ht-hidden-stations.cc ns-3.29/examples/wireless/simple-ht-hidden-stations.cc
--- ns-3.28.1/examples/wireless/simple-ht-hidden-stations.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/simple-ht-hidden-stations.cc 2018-09-04 16:02:39.000000000 -0700
@@ -18,11 +18,20 @@
* Author: Sébastien Deronne
*/
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/udp-client-server-helper.h"
+#include "ns3/yans-wifi-channel.h"
// This example considers two hidden stations in an 802.11n network which supports MPDU aggregation.
// The user can specify whether RTS/CTS is used and can set the number of aggregated MPDUs.
@@ -48,7 +57,7 @@
int main (int argc, char *argv[])
{
uint32_t payloadSize = 1472; //bytes
- uint64_t simulationTime = 10; //seconds
+ double simulationTime = 10; //seconds
uint32_t nMpdus = 1;
uint32_t maxAmpduSize = 0;
bool enableRts = 0;
@@ -162,12 +171,17 @@
phy.EnablePcap ("SimpleHtHiddenStations_Sta1", staDevices.Get (0));
phy.EnablePcap ("SimpleHtHiddenStations_Sta2", staDevices.Get (1));
+ AsciiTraceHelper ascii;
+ phy.EnableAsciiAll (ascii.CreateFileStream ("SimpleHtHiddenStations.tr"));
+
Simulator::Stop (Seconds (simulationTime + 1));
Simulator::Run ();
+
+ uint64_t totalPacketsThrough = DynamicCast (serverApp.Get (0))->GetReceived ();
+
Simulator::Destroy ();
- uint32_t totalPacketsThrough = DynamicCast (serverApp.Get (0))->GetReceived ();
double throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0);
std::cout << "Throughput: " << throughput << " Mbit/s" << '\n';
if (throughput < minExpectedThroughput || (maxExpectedThroughput > 0 && throughput > maxExpectedThroughput))
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/vht-wifi-network.cc ns-3.29/examples/wireless/vht-wifi-network.cc
--- ns-3.28.1/examples/wireless/vht-wifi-network.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/vht-wifi-network.cc 2018-09-04 16:02:39.000000000 -0700
@@ -18,11 +18,24 @@
* Author: Sebastien Deronne
*/
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/udp-client-server-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/ipv4-global-routing-helper.h"
+#include "ns3/packet-sink.h"
+#include "ns3/yans-wifi-channel.h"
// This is a simple example in order to show how to configure an IEEE 802.11ac Wi-Fi network.
//
@@ -217,7 +230,6 @@
Simulator::Stop (Seconds (simulationTime + 1));
Simulator::Run ();
- Simulator::Destroy ();
uint64_t rxBytes = 0;
if (udp)
@@ -229,7 +241,11 @@
rxBytes = DynamicCast (serverApp.Get (0))->GetTotalRx ();
}
double throughput = (rxBytes * 8) / (simulationTime * 1000000.0); //Mbit/s
+
+ Simulator::Destroy ();
+
std::cout << mcs << "\t\t\t" << channelWidth << " MHz\t\t\t" << sgi << "\t\t\t" << throughput << " Mbit/s" << std::endl;
+
//test first element
if (mcs == 0 && channelWidth == 20 && sgi == 0)
{
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-adhoc.cc ns-3.29/examples/wireless/wifi-adhoc.cc
--- ns-3.28.1/examples/wireless/wifi-adhoc.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-adhoc.cc 2018-09-04 16:02:39.000000000 -0700
@@ -18,16 +18,24 @@
* Author: Mathieu Lacage
*/
-#include "ns3/core-module.h"
-#include "ns3/network-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/stats-module.h"
-#include "ns3/wifi-module.h"
+#include "ns3/gnuplot.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/mobility-model.h"
+#include "ns3/packet-socket-helper.h"
+#include "ns3/packet-socket-address.h"
using namespace ns3;
-NS_LOG_COMPONENT_DEFINE ("Main");
+NS_LOG_COMPONENT_DEFINE ("Wifi-Adhoc");
class Experiment
{
@@ -159,10 +167,6 @@
int main (int argc, char *argv[])
{
- // disable fragmentation
- Config::SetDefault ("ns3::WifiRemoteStationManager::FragmentationThreshold", StringValue ("2200"));
- Config::SetDefault ("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue ("2200"));
-
CommandLine cmd;
cmd.Parse (argc, argv);
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-aggregation.cc ns-3.29/examples/wireless/wifi-aggregation.cc
--- ns-3.28.1/examples/wireless/wifi-aggregation.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-aggregation.cc 2018-09-04 16:02:39.000000000 -0700
@@ -18,16 +18,25 @@
* Author: Sébastien Deronne
*/
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/udp-client-server-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/yans-wifi-channel.h"
// This is an example that illustrates how 802.11n aggregation is configured.
-// It defines 4 independant Wi-Fi networks (working on different channels).
+// It defines 4 independent Wi-Fi networks (working on different channels).
// Each network contains one access point and one station. Each station
-// continously transmits data packets to its respective AP.
+// continuously transmits data packets to its respective AP.
//
// Network topology (numbers in parentheses are channel numbers):
//
@@ -48,7 +57,7 @@
// The user can select the distance between the stations and the APs and can enable/disable the RTS/CTS mechanism.
// Example: ./waf --run "wifi-aggregation --distance=10 --enableRts=0 --simulationTime=20"
//
-// The output prints the throughput measured for the 4 cases/networks decribed above. When default aggregation parameters are enabled, the
+// The output prints the throughput measured for the 4 cases/networks described above. When default aggregation parameters are enabled, the
// maximum A-MPDU size is 65 kB and the throughput is maximal. When aggregation is disabled, the throughput is about the half of the
// physical bitrate as in legacy wifi networks. When only A-MSDU is enabled, the throughput is increased but is not maximal, since the maximum
// A-MSDU size is limited to 7935 bytes (whereas the maximum A-MPDU size is limited to 65535 bytes). When A-MSDU and A-MPDU are both enabled
@@ -65,7 +74,7 @@
int main (int argc, char *argv[])
{
uint32_t payloadSize = 1472; //bytes
- uint64_t simulationTime = 10; //seconds
+ double simulationTime = 10; //seconds
double distance = 5; //meters
bool enableRts = 0;
bool enablePcap = 0;
@@ -278,11 +287,16 @@
Simulator::Stop (Seconds (simulationTime + 1));
Simulator::Run ();
- Simulator::Destroy ();
/* Show results */
- uint64_t totalPacketsThrough = DynamicCast (serverAppA.Get (0))->GetReceived ();
- double throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0);
+ uint64_t totalPacketsThroughA = DynamicCast (serverAppA.Get (0))->GetReceived ();
+ uint64_t totalPacketsThroughB = DynamicCast (serverAppB.Get (0))->GetReceived ();
+ uint64_t totalPacketsThroughC = DynamicCast (serverAppC.Get (0))->GetReceived ();
+ uint64_t totalPacketsThroughD = DynamicCast (serverAppD.Get (0))->GetReceived ();
+
+ Simulator::Destroy ();
+
+ double throughput = totalPacketsThroughA * payloadSize * 8 / (simulationTime * 1000000.0);
std::cout << "Throughput with default configuration (A-MPDU aggregation enabled, 65kB): " << throughput << " Mbit/s" << '\n';
if (verifyResults && (throughput < 59 || throughput > 60))
{
@@ -290,8 +304,7 @@
exit (1);
}
- totalPacketsThrough = DynamicCast (serverAppB.Get (0))->GetReceived ();
- throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0);
+ throughput = totalPacketsThroughB * payloadSize * 8 / (simulationTime * 1000000.0);
std::cout << "Throughput with aggregation disabled: " << throughput << " Mbit/s" << '\n';
if (verifyResults && (throughput < 30 || throughput > 30.5))
{
@@ -299,8 +312,7 @@
exit (1);
}
- totalPacketsThrough = DynamicCast (serverAppC.Get (0))->GetReceived ();
- throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0);
+ throughput = totalPacketsThroughC * payloadSize * 8 / (simulationTime * 1000000.0);
std::cout << "Throughput with A-MPDU disabled and A-MSDU enabled (8kB): " << throughput << " Mbit/s" << '\n';
if (verifyResults && (throughput < 51 || throughput > 52))
{
@@ -308,8 +320,7 @@
exit (1);
}
- totalPacketsThrough = DynamicCast (serverAppD.Get (0))->GetReceived ();
- throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0);
+ throughput = totalPacketsThroughD * payloadSize * 8 / (simulationTime * 1000000.0);
std::cout << "Throughput with A-MPDU enabled (32kB) and A-MSDU enabled (4kB): " << throughput << " Mbit/s" << '\n';
if (verifyResults && (throughput < 58 || throughput > 59))
{
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-ap.cc ns-3.29/examples/wireless/wifi-ap.cc
--- ns-3.28.1/examples/wireless/wifi-ap.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-ap.cc 2018-09-04 16:02:39.000000000 -0700
@@ -18,12 +18,19 @@
* Author: Mathieu Lacage
*/
-
-#include "ns3/core-module.h"
-#include "ns3/network-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/wifi-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/boolean.h"
+#include "ns3/string.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/mobility-model.h"
+#include "ns3/packet-socket-helper.h"
+#include "ns3/packet-socket-address.h"
+#include "ns3/athstats-helper.h"
using namespace ns3;
@@ -110,16 +117,10 @@
{
CommandLine cmd;
cmd.AddValue ("verbose", "Print trace information if true", g_verbose);
-
cmd.Parse (argc, argv);
Packet::EnablePrinting ();
- // enable rts cts all the time.
- Config::SetDefault ("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue ("0"));
- // disable fragmentation
- Config::SetDefault ("ns3::WifiRemoteStationManager::FragmentationThreshold", StringValue ("2200"));
-
WifiHelper wifi;
MobilityHelper mobility;
NodeContainer stas;
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-ap.py ns-3.29/examples/wireless/wifi-ap.py
--- ns-3.28.1/examples/wireless/wifi-ap.py 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-ap.py 2018-09-04 16:02:39.000000000 -0700
@@ -99,11 +99,6 @@
ns.network.Packet.EnablePrinting();
- # enable rts cts all the time.
- ns.core.Config.SetDefault("ns3::WifiRemoteStationManager::RtsCtsThreshold", ns.core.StringValue("0"))
- # disable fragmentation
- ns.core.Config.SetDefault("ns3::WifiRemoteStationManager::FragmentationThreshold", ns.core.StringValue("2200"))
-
wifi = ns.wifi.WifiHelper()
mobility = ns.mobility.MobilityHelper()
stas = ns.network.NodeContainer()
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-backward-compatibility.cc ns-3.29/examples/wireless/wifi-backward-compatibility.cc
--- ns-3.28.1/examples/wireless/wifi-backward-compatibility.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-backward-compatibility.cc 2018-09-04 16:02:39.000000000 -0700
@@ -18,11 +18,19 @@
* Author: Sebastien Deronne
*/
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/udp-client-server-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/ipv4-global-routing-helper.h"
+#include "ns3/yans-wifi-channel.h"
// This is an example to show how to configure an IEEE 802.11 Wi-Fi
// network where the AP and the station use different 802.11 standards.
@@ -206,20 +214,19 @@
Simulator::Stop (Seconds (simulationTime + 1));
Simulator::Run ();
- Simulator::Destroy ();
uint64_t rxBytes;
double throughput;
+ bool error = false;
if (apHasTraffic)
{
rxBytes = payloadSize * DynamicCast (staServerApp.Get (0))->GetReceived ();
throughput = (rxBytes * 8) / (simulationTime * 1000000.0); //Mbit/s
std::cout << "AP Throughput: " << throughput << " Mbit/s" << std::endl;
if (throughput == 0)
- {
- NS_LOG_ERROR ("No traffic received!");
- exit (1);
- }
+ {
+ error = true;
+ }
}
if (staHasTraffic)
{
@@ -227,10 +234,18 @@
throughput = (rxBytes * 8) / (simulationTime * 1000000.0); //Mbit/s
std::cout << "STA Throughput: " << throughput << " Mbit/s" << std::endl;
if (throughput == 0)
- {
- NS_LOG_ERROR ("No traffic received!");
- exit (1);
- }
+ {
+ error = true;
+ }
}
+
+ Simulator::Destroy ();
+
+ if (error)
+ {
+ NS_LOG_ERROR ("No traffic received!");
+ exit (1);
+ }
+
return 0;
}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-blockack.cc ns-3.29/examples/wireless/wifi-blockack.cc
--- ns-3.28.1/examples/wireless/wifi-blockack.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-blockack.cc 2018-09-04 16:02:39.000000000 -0700
@@ -32,7 +32,7 @@
*
* In this example a QoS sta sends UDP datagram packets to access point. On the access point
* there is no application installed so it replies to every packet with an ICMP frame. However
- * our attention is on originator sta n1. We have set blockAckThreshold (mininum number of packets to use
+ * our attention is on originator sta n1. We have set blockAckThreshold (minimum number of packets to use
* block ack) to 2 so if there are in the BestEffort queue more than 2 packets a block ack will be
* negotiated. We also set a timeout for block ack inactivity to 3 blocks of 1024 microseconds. This timer is
* reset when:
@@ -40,12 +40,22 @@
* - the recipient receives a block ack request or a MPDU with ack policy Block Ack.
*/
-#include "ns3/core-module.h"
-#include "ns3/internet-module.h"
-#include "ns3/network-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
+#include "ns3/command-line.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/mobility-model.h"
+#include "ns3/rectangle.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/ipv4-global-routing-helper.h"
using namespace ns3;
@@ -56,7 +66,7 @@
CommandLine cmd;
cmd.Parse (argc, argv);
- LogComponentEnable ("EdcaTxopN", LOG_LEVEL_DEBUG);
+ LogComponentEnable ("QosTxop", LOG_LEVEL_DEBUG);
LogComponentEnable ("BlockAckManager", LOG_LEVEL_INFO);
Ptr sta = CreateObject ();
@@ -138,7 +148,7 @@
Simulator::Stop (Seconds (10.0));
- phy.EnablePcap ("test-blockack-2", ap->GetId (), 0);
+ phy.EnablePcap ("test-blockack", ap->GetId (), 0);
Simulator::Run ();
Simulator::Destroy ();
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-clear-channel-cmu.cc ns-3.29/examples/wireless/wifi-clear-channel-cmu.cc
--- ns-3.28.1/examples/wireless/wifi-clear-channel-cmu.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-clear-channel-cmu.cc 2018-09-04 16:02:39.000000000 -0700
@@ -18,15 +18,22 @@
* Author: Guangyu Pei
*/
-#include "ns3/core-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/stats-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/gnuplot.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/mobility-model.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
using namespace ns3;
-NS_LOG_COMPONENT_DEFINE ("Main");
+NS_LOG_COMPONENT_DEFINE ("ClearChannelCmu");
class Experiment
{
@@ -167,9 +174,6 @@
modes.push_back ("DsssRate2Mbps");
modes.push_back ("DsssRate5_5Mbps");
modes.push_back ("DsssRate11Mbps");
- // disable fragmentation
- Config::SetDefault ("ns3::WifiRemoteStationManager::FragmentationThreshold", StringValue ("2200"));
- Config::SetDefault ("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue ("2200"));
CommandLine cmd;
cmd.Parse (argc, argv);
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-hidden-terminal.cc ns-3.29/examples/wireless/wifi-hidden-terminal.cc
--- ns-3.28.1/examples/wireless/wifi-hidden-terminal.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-hidden-terminal.cc 2018-09-04 16:02:39.000000000 -0700
@@ -15,10 +15,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Authors: Pavel Boyko
- */
-
-/*
+ * Author: Pavel Boyko
+ *
* Classical hidden terminal problem and its RTS/CTS solution.
*
* Topology: [node 0] <-- -50 dB --> [node 1] <-- -50 dB --> [node 2]
@@ -30,13 +28,22 @@
* - IP flow monitor
*/
-#include "ns3/core-module.h"
-#include "ns3/propagation-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/internet-module.h"
-#include "ns3/flow-monitor-module.h"
-#include "ns3/wifi-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/string.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/udp-echo-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/constant-position-mobility-model.h"
+#include "ns3/propagation-loss-model.h"
+#include "ns3/propagation-delay-model.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/flow-monitor-helper.h"
+#include "ns3/ipv4-flow-classifier.h"
using namespace ns3;
@@ -52,7 +59,7 @@
nodes.Create (3);
// 2. Place nodes somehow, this is required by every wireless simulation
- for (size_t i = 0; i < 3; ++i)
+ for (uint8_t i = 0; i < 3; ++i)
{
nodes.Get (i)->AggregateObject (CreateObject ());
}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-multi-tos.cc ns-3.29/examples/wireless/wifi-multi-tos.cc
--- ns-3.28.1/examples/wireless/wifi-multi-tos.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-multi-tos.cc 2018-09-04 16:02:39.000000000 -0700
@@ -18,11 +18,22 @@
* Author: Sebastien Deronne
*/
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/ipv4-global-routing-helper.h"
+#include "ns3/packet-sink.h"
+#include "ns3/yans-wifi-channel.h"
// This is a simple example in order to show how to configure an IEEE 802.11n Wi-Fi network
// with multiple TOS. It outputs the aggregated UDP throughput, which depends on the number of
@@ -123,7 +134,7 @@
ApplicationContainer sourceApplications, sinkApplications;
std::vector tosValues = {0x70, 0x28, 0xb8, 0xc0}; //AC_BE, AC_BK, AC_VI, AC_VO
uint32_t portNumber = 9;
- for (uint8_t index = 0; index < nWifi; ++index)
+ for (uint32_t index = 0; index < nWifi; ++index)
{
for (uint8_t tosValue : tosValues)
{
@@ -151,14 +162,16 @@
Simulator::Stop (Seconds (simulationTime + 1));
Simulator::Run ();
- Simulator::Destroy ();
double throughput = 0;
- for (unsigned index = 0; index < sinkApplications.GetN (); ++index)
+ for (uint32_t index = 0; index < sinkApplications.GetN (); ++index)
{
uint64_t totalPacketsThrough = DynamicCast (sinkApplications.Get (index))->GetTotalRx ();
throughput += ((totalPacketsThrough * 8) / (simulationTime * 1000000.0)); //Mbit/s
}
+
+ Simulator::Destroy ();
+
if (throughput > 0)
{
std::cout << "Aggregated throughput: " << throughput << " Mbit/s" << std::endl;
@@ -168,5 +181,6 @@
NS_LOG_ERROR ("Obtained throughput is 0!");
exit (1);
}
+
return 0;
}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-pcf.cc ns-3.29/examples/wireless/wifi-pcf.cc
--- ns-3.28.1/examples/wireless/wifi-pcf.cc 1969-12-31 16:00:00.000000000 -0800
+++ ns-3.29/examples/wireless/wifi-pcf.cc 2018-09-04 16:02:39.000000000 -0700
@@ -0,0 +1,286 @@
+/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2017
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Sebastien Deronne
+ */
+
+#include "ns3/log.h"
+#include "ns3/config.h"
+#include "ns3/command-line.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/string.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/packet-sink.h"
+#include "ns3/ssid.h"
+#include "ns3/wifi-mac-header.h"
+
+/* This is a simple example in order to show the frames exchanged in 802.11 PCF.
+ * The output prints the overal throughput as well as the number of different PCF frames that have been transmitted.
+ *
+ * It is possible to tune some parameters using the command line:
+ * - number of connected stations
+ * - enable/disable PCF
+ * - enable PCAP output file generation in order to vizualise frame exchange.
+ * - configure UDP data traffic:
+ * -> enable/disable data generation: --withData=<0|1>
+ * -> select traffic direction: --trafficDirection=
+ *
+ * For example, one can observe the benefit of PCF over DCF when the number of stations increased:
+ * ./waf --run "wifi-pcf enablePcf=0 --nWifi=10" => DCF only
+ * ./waf --run "wifi-pcf enablePcf=1 --nWifi=10" => alternance of PCF and DCF
+ *
+ * One can also change the value of cfpMaxDuration: a shorter valer means the granted time for PCF is shorter, and so it's benefit is reduced.
+ * ./waf --run "wifi-pcf enablePcf=1 --nWifi=10 --cfpMaxDuration=10240"
+ *
+ * One can also see the different types of piggybacked frames depending on the traffic direction and whether PCF is enabled or not:
+ * ./waf --run "wifi-pcf enablePcf=0 --nWifi=1" => only CF_POLL and DATA_NULL frames should be seen
+ * ./waf --run "wifi-pcf enablePcf=1 --nWifi=1 --trafficDirection=upstream" => no DATA_NULL frames should be seen
+ * ./waf --run "wifi-pcf enablePcf=1 --nWifi=1 --trafficDirection=downstream" => no CF_END_ACK frames should be seen
+ */
+
+using namespace ns3;
+
+NS_LOG_COMPONENT_DEFINE ("WifiPcf");
+
+uint64_t m_countBeacon;
+uint64_t m_countCfPoll;
+uint64_t m_countCfPollAck;
+uint64_t m_countCfPollData;
+uint64_t m_countCfPollDataAck;
+uint64_t m_countCfEnd;
+uint64_t m_countCfEndAck;
+uint64_t m_countDataNull;
+uint64_t m_countData;
+
+void TxCallback (std::string context, Ptr p)
+{
+ WifiMacHeader hdr;
+ p->PeekHeader (hdr);
+ if (hdr.IsBeacon ())
+ {
+ m_countBeacon++;
+ }
+ else if (hdr.IsCfPoll ())
+ {
+ if (hdr.IsCfAck () && hdr.HasData ())
+ {
+ m_countCfPollDataAck++;
+ }
+ else if (!hdr.IsCfAck () && hdr.HasData ())
+ {
+ m_countCfPollData++;
+ }
+ else if (hdr.IsCfAck () && !hdr.HasData ())
+ {
+ m_countCfPollAck++;
+ }
+ else
+ {
+ m_countCfPoll++;
+ }
+ }
+ else if (hdr.IsCfEnd ())
+ {
+ if (hdr.IsCfAck ())
+ {
+ m_countCfEndAck++;
+ }
+ else
+ {
+ m_countCfEnd++;
+ }
+ }
+ else if (hdr.IsData ())
+ {
+ if (!hdr.HasData ())
+ {
+ m_countDataNull++;
+ }
+ else
+ {
+ m_countData++;
+ }
+ }
+}
+
+int main (int argc, char *argv[])
+{
+ uint32_t nWifi = 1;
+ bool enablePcap = false;
+ bool enablePcf = true;
+ bool withData = true;
+ std::string trafficDirection = "upstream";
+ uint64_t cfpMaxDurationUs = 65536; //microseconds
+ double simulationTime = 10; //seconds
+
+ CommandLine cmd;
+ cmd.AddValue ("nWifi", "Number of wifi STA devices", nWifi);
+ cmd.AddValue ("enablePcf", "Enable/disable PCF mode", enablePcf);
+ cmd.AddValue ("withData", "Enable/disable UDP data packets generation", withData);
+ cmd.AddValue ("trafficDirection", "Data traffic direction (if withData is set to 1): upstream (all STAs -> AP) or downstream (AP -> all STAs)", trafficDirection);
+ cmd.AddValue ("cfpMaxDuration", "CFP max duration in microseconds", cfpMaxDurationUs);
+ cmd.AddValue ("simulationTime", "Simulation time in seconds", simulationTime);
+ cmd.AddValue ("enablePcap", "Enable/disable PCAP output", enablePcap);
+ cmd.Parse (argc, argv);
+
+ m_countBeacon = 0;
+ m_countCfEnd = 0;
+ m_countCfEndAck = 0;
+ m_countCfPoll = 0;
+ m_countCfPollAck = 0;
+ m_countCfPollData = 0;
+ m_countCfPollDataAck = 0;
+ m_countDataNull = 0;
+ m_countData = 0;
+ m_countDataNull = 0;
+ m_countData = 0;
+
+ NodeContainer wifiStaNodes;
+ wifiStaNodes.Create (nWifi);
+
+ NodeContainer wifiApNode;
+ wifiApNode.Create (1);
+
+ YansWifiChannelHelper channel = YansWifiChannelHelper::Default ();
+ YansWifiPhyHelper phy = YansWifiPhyHelper::Default ();
+ phy.SetPcapDataLinkType (YansWifiPhyHelper::DLT_IEEE802_11_RADIO);
+ phy.SetChannel (channel.Create ());
+
+ WifiHelper wifi;
+ WifiMacHelper mac;
+
+ Ssid ssid = Ssid ("wifi-pcf");
+ wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager", "DataMode", StringValue ("OfdmRate54Mbps"), "ControlMode", StringValue ("OfdmRate24Mbps"));
+
+ NetDeviceContainer staDevices;
+ mac.SetType ("ns3::StaWifiMac",
+ "Ssid", SsidValue (ssid),
+ "ActiveProbing", BooleanValue (false),
+ "PcfSupported", BooleanValue (enablePcf));
+ staDevices = wifi.Install (phy, mac, wifiStaNodes);
+
+ mac.SetType ("ns3::ApWifiMac",
+ "Ssid", SsidValue (ssid),
+ "BeaconGeneration", BooleanValue (true),
+ "PcfSupported", BooleanValue (enablePcf),
+ "CfpMaxDuration", TimeValue (MicroSeconds (cfpMaxDurationUs)));
+
+ NetDeviceContainer apDevice;
+ apDevice = wifi.Install (phy, mac, wifiApNode);
+
+ MobilityHelper mobility;
+
+ Ptr positionAlloc = CreateObject ();
+
+ for (uint32_t i = 0; i < nWifi; i++)
+ {
+ positionAlloc->Add (Vector (1.0, 0.0, 0.0));
+ }
+ positionAlloc->Add (Vector (0.0, 0.0, 0.0));
+ mobility.SetPositionAllocator (positionAlloc);
+
+ mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
+
+ mobility.Install (wifiApNode);
+ mobility.Install (wifiStaNodes);
+
+ InternetStackHelper stack;
+ stack.Install (wifiApNode);
+ stack.Install (wifiStaNodes);
+
+ Ipv4AddressHelper address;
+
+ address.SetBase ("10.1.1.0", "255.255.255.0");
+ Ipv4InterfaceContainer StaInterface;
+ StaInterface = address.Assign (staDevices);
+ Ipv4InterfaceContainer ApInterface;
+ ApInterface = address.Assign (apDevice);
+
+ ApplicationContainer sourceApplications, sinkApplications;
+ if (withData)
+ {
+ uint32_t portNumber = 9;
+ for (uint32_t index = 0; index < nWifi; ++index)
+ {
+ auto ipv4 = (trafficDirection == "upstream") ? wifiApNode.Get (0)->GetObject () : wifiStaNodes.Get (index)->GetObject ();
+ const auto address = ipv4->GetAddress (1, 0).GetLocal ();
+ InetSocketAddress sinkSocket (address, portNumber++);
+ OnOffHelper onOffHelper ("ns3::UdpSocketFactory", sinkSocket);
+ onOffHelper.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1]"));
+ onOffHelper.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0]"));
+ onOffHelper.SetAttribute ("DataRate", DataRateValue (50000000 / nWifi));
+ onOffHelper.SetAttribute ("PacketSize", UintegerValue (1472)); //bytes
+ PacketSinkHelper packetSinkHelper ("ns3::UdpSocketFactory", sinkSocket);
+ if (trafficDirection == "upstream")
+ {
+ sourceApplications.Add (onOffHelper.Install (wifiStaNodes.Get (index)));
+ sinkApplications.Add (packetSinkHelper.Install (wifiApNode.Get (0)));
+ }
+ else if (trafficDirection == "downstream")
+ {
+ sinkApplications.Add (packetSinkHelper.Install (wifiStaNodes.Get (index)));
+ sourceApplications.Add (onOffHelper.Install (wifiApNode.Get (0)));
+ }
+ else
+ {
+ NS_ASSERT_MSG (false, "Invalid trafficDirection!");
+ }
+ }
+ sinkApplications.Start (Seconds (0.0));
+ sinkApplications.Stop (Seconds (simulationTime + 1));
+ sourceApplications.Start (Seconds (1.0));
+ sourceApplications.Stop (Seconds (simulationTime + 1));
+ }
+
+ Config::Connect ("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Phy/$ns3::WifiPhy/PhyTxBegin", MakeCallback (&TxCallback));
+
+ if (enablePcap)
+ {
+ phy.EnablePcap ("wifi_pcf", apDevice.Get (0));
+ }
+
+ Simulator::Stop (Seconds (simulationTime + 1));
+ Simulator::Run ();
+
+ double throughput = 0;
+ for (uint32_t index = 0; index < sinkApplications.GetN (); ++index)
+ {
+ uint64_t totalPacketsThrough = DynamicCast (sinkApplications.Get (index))->GetTotalRx ();
+ throughput += ((totalPacketsThrough * 8) / (simulationTime * 1000000.0)); //Mbit/s
+ }
+
+ std::cout << "Throughput: " << throughput << " Mbit/s" << std::endl;
+
+ std::cout << "# tx beacons: " << m_countBeacon << std::endl;
+ std::cout << "# tx CF-END: " << m_countCfEnd << std::endl;
+ std::cout << "# tx CF-END-ACK: " << m_countCfEndAck << std::endl;
+ std::cout << "# tx CF-POLL: " << m_countCfPoll << std::endl;
+ std::cout << "# tx CF-POLL-ACK: " << m_countCfPollAck << std::endl;
+ std::cout << "# tx CF-POLL-DATA: " << m_countCfPollData << std::endl;
+ std::cout << "# tx CF-POLL-DATA-ACK: " << m_countCfPollDataAck << std::endl;
+ std::cout << "# tx DATA-NULL: " << m_countDataNull << std::endl;
+ std::cout << "# tx DATA: " << m_countData << std::endl;
+
+ Simulator::Destroy ();
+ return 0;
+}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-simple-adhoc.cc ns-3.29/examples/wireless/wifi-simple-adhoc.cc
--- ns-3.28.1/examples/wireless/wifi-simple-adhoc.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-simple-adhoc.cc 2018-09-04 16:02:39.000000000 -0700
@@ -50,10 +50,17 @@
// tcpdump -r wifi-simple-adhoc-0-0.pcap -nn -tt
//
-#include "ns3/core-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/mobility-model.h"
+#include "ns3/internet-stack-helper.h"
using namespace ns3;
@@ -92,22 +99,16 @@
bool verbose = false;
CommandLine cmd;
-
cmd.AddValue ("phyMode", "Wifi Phy mode", phyMode);
cmd.AddValue ("rss", "received signal strength", rss);
cmd.AddValue ("packetSize", "size of application packet sent", packetSize);
cmd.AddValue ("numPackets", "number of packets generated", numPackets);
cmd.AddValue ("interval", "interval (seconds) between packets", interval);
cmd.AddValue ("verbose", "turn on all WifiNetDevice log components", verbose);
-
cmd.Parse (argc, argv);
// Convert to time object
Time interPacketInterval = Seconds (interval);
- // disable fragmentation for frames below 2200 bytes
- Config::SetDefault ("ns3::WifiRemoteStationManager::FragmentationThreshold", StringValue ("2200"));
- // turn off RTS/CTS for frames below 2200 bytes
- Config::SetDefault ("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue ("2200"));
// Fix non-unicast data rate to be the same as that of unicast
Config::SetDefault ("ns3::WifiRemoteStationManager::NonUnicastMode",
StringValue (phyMode));
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-simple-adhoc-grid.cc ns-3.29/examples/wireless/wifi-simple-adhoc-grid.cc
--- ns-3.28.1/examples/wireless/wifi-simple-adhoc-grid.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-simple-adhoc-grid.cc 2018-09-04 16:02:39.000000000 -0700
@@ -69,11 +69,21 @@
// tcpdump -r wifi-simple-adhoc-grid-0-0.pcap -nn -tt
//
-#include "ns3/core-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/mobility-model.h"
#include "ns3/olsr-helper.h"
+#include "ns3/ipv4-static-routing-helper.h"
+#include "ns3/ipv4-list-routing-helper.h"
+#include "ns3/internet-stack-helper.h"
using namespace ns3;
@@ -117,7 +127,6 @@
bool tracing = false;
CommandLine cmd;
-
cmd.AddValue ("phyMode", "Wifi Phy mode", phyMode);
cmd.AddValue ("distance", "distance (m)", distance);
cmd.AddValue ("packetSize", "size of application packet sent", packetSize);
@@ -128,15 +137,10 @@
cmd.AddValue ("numNodes", "number of nodes", numNodes);
cmd.AddValue ("sinkNode", "Receiver node number", sinkNode);
cmd.AddValue ("sourceNode", "Sender node number", sourceNode);
-
cmd.Parse (argc, argv);
// Convert to time object
Time interPacketInterval = Seconds (interval);
- // disable fragmentation for frames below 2200 bytes
- Config::SetDefault ("ns3::WifiRemoteStationManager::FragmentationThreshold", StringValue ("2200"));
- // turn off RTS/CTS for frames below 2200 bytes
- Config::SetDefault ("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue ("2200"));
// Fix non-unicast data rate to be the same as that of unicast
Config::SetDefault ("ns3::WifiRemoteStationManager::NonUnicastMode",
StringValue (phyMode));
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-simple-infra.cc ns-3.29/examples/wireless/wifi-simple-infra.cc
--- ns-3.28.1/examples/wireless/wifi-simple-infra.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-simple-infra.cc 2018-09-04 16:02:39.000000000 -0700
@@ -51,10 +51,18 @@
// tcpdump -r wifi-simple-infra-0-0.pcap -nn -tt
//
-#include "ns3/core-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/mobility-model.h"
+#include "ns3/internet-stack-helper.h"
using namespace ns3;
@@ -93,22 +101,16 @@
bool verbose = false;
CommandLine cmd;
-
cmd.AddValue ("phyMode", "Wifi Phy mode", phyMode);
cmd.AddValue ("rss", "received signal strength", rss);
cmd.AddValue ("packetSize", "size of application packet sent", packetSize);
cmd.AddValue ("numPackets", "number of packets generated", numPackets);
cmd.AddValue ("interval", "interval (seconds) between packets", interval);
cmd.AddValue ("verbose", "turn on all WifiNetDevice log components", verbose);
-
cmd.Parse (argc, argv);
// Convert to time object
Time interPacketInterval = Seconds (interval);
- // disable fragmentation for frames below 2200 bytes
- Config::SetDefault ("ns3::WifiRemoteStationManager::FragmentationThreshold", StringValue ("2200"));
- // turn off RTS/CTS for frames below 2200 bytes
- Config::SetDefault ("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue ("2200"));
// Fix non-unicast data rate to be the same as that of unicast
Config::SetDefault ("ns3::WifiRemoteStationManager::NonUnicastMode",
StringValue (phyMode));
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-simple-interference.cc ns-3.29/examples/wireless/wifi-simple-interference.cc
--- ns-3.28.1/examples/wireless/wifi-simple-interference.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-simple-interference.cc 2018-09-04 16:02:39.000000000 -0700
@@ -79,10 +79,17 @@
// that are no longer interfering:
// ./waf --run "wifi-simple-interference --delta=30000"
-#include "ns3/core-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/mobility-model.h"
+#include "ns3/internet-stack-helper.h"
using namespace ns3;
@@ -144,7 +151,6 @@
double offset = 91; // This is a magic number used to set the
// transmit power, based on other configuration
CommandLine cmd;
-
cmd.AddValue ("phyMode", "Wifi Phy mode", phyMode);
cmd.AddValue ("Prss", "Intended primary received signal strength (dBm)", Prss);
cmd.AddValue ("Irss", "Intended interfering received signal strength (dBm)", Irss);
@@ -152,15 +158,10 @@
cmd.AddValue ("PpacketSize", "size of application packet sent", PpacketSize);
cmd.AddValue ("IpacketSize", "size of interfering packet sent", IpacketSize);
cmd.AddValue ("verbose", "turn on all WifiNetDevice log components", verbose);
-
cmd.Parse (argc, argv);
// Convert to time object
Time interPacketInterval = Seconds (interval);
- // disable fragmentation for frames below 2200 bytes
- Config::SetDefault ("ns3::WifiRemoteStationManager::FragmentationThreshold", StringValue ("2200"));
- // turn off RTS/CTS for frames below 2200 bytes
- Config::SetDefault ("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue ("2200"));
// Fix non-unicast data rate to be the same as that of unicast
Config::SetDefault ("ns3::WifiRemoteStationManager::NonUnicastMode",
StringValue (phyMode));
@@ -219,11 +220,6 @@
InternetStackHelper internet;
internet.Install (c);
- Ipv4AddressHelper ipv4;
- NS_LOG_INFO ("Assign IP Addresses.");
- ipv4.SetBase ("10.1.1.0", "255.255.255.0");
- Ipv4InterfaceContainer i = ipv4.Assign (devices);
-
TypeId tid = TypeId::LookupByName ("ns3::UdpSocketFactory");
Ptr recvSink = Socket::CreateSocket (c.Get (0), tid);
InetSocketAddress local = InetSocketAddress (Ipv4Address ("10.1.1.1"), 80);
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-sleep.cc ns-3.29/examples/wireless/wifi-sleep.cc
--- ns-3.28.1/examples/wireless/wifi-sleep.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-sleep.cc 2018-09-04 16:02:39.000000000 -0700
@@ -45,12 +45,22 @@
// two for the remaining energy on each node and two for the state transitions
// of each node.
-#include "ns3/core-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/internet-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/energy-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/mobility-model.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/basic-energy-source-helper.h"
+#include "ns3/wifi-radio-energy-model-helper.h"
+#include "ns3/wifi-utils.h"
+#include "ns3/wifi-net-device.h"
using namespace ns3;
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-spectrum-per-example.cc ns-3.29/examples/wireless/wifi-spectrum-per-example.cc
--- ns-3.28.1/examples/wireless/wifi-spectrum-per-example.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-spectrum-per-example.cc 2018-09-04 16:02:39.000000000 -0700
@@ -24,13 +24,27 @@
*/
#include
-#include "ns3/core-module.h"
-#include "ns3/network-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/spectrum-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/spectrum-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/udp-client-server-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/ipv4-global-routing-helper.h"
+#include "ns3/packet-sink.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/multi-model-spectrum-channel.h"
+#include "ns3/propagation-loss-model.h"
// This is a simple example of an IEEE 802.11n Wi-Fi network.
//
@@ -525,7 +539,7 @@
else
{
//TCP
- uint32_t totalBytesRx = DynamicCast (serverApp.Get (0))->GetTotalRx ();
+ uint64_t totalBytesRx = DynamicCast (serverApp.Get (0))->GetTotalRx ();
totalPacketsThrough = totalBytesRx / tcpPacketSize;
throughput = totalBytesRx * 8 / (simulationTime * 1000000.0); //Mbit/s
}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-spectrum-per-interference.cc ns-3.29/examples/wireless/wifi-spectrum-per-interference.cc
--- ns-3.28.1/examples/wireless/wifi-spectrum-per-interference.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-spectrum-per-interference.cc 2018-09-04 16:02:39.000000000 -0700
@@ -24,12 +24,26 @@
*/
#include
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/spectrum-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/string.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/spectrum-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/udp-client-server-helper.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/packet-sink.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/multi-model-spectrum-channel.h"
+#include "ns3/propagation-loss-model.h"
+#include "ns3/waveform-generator.h"
+#include "ns3/waveform-generator-helper.h"
+#include "ns3/non-communicating-net-device.h"
+#include "ns3/wifi-net-device.h"
// This is a simple example of an IEEE 802.11n Wi-Fi network with a
// non-Wi-Fi interferer. It is an adaptation of the wifi-spectrum-per-example
@@ -573,7 +587,7 @@
Simulator::Run ();
double throughput = 0;
- uint32_t totalPacketsThrough = 0;
+ uint64_t totalPacketsThrough = 0;
if (udp)
{
//UDP
@@ -583,7 +597,7 @@
else
{
//TCP
- uint32_t totalBytesRx = DynamicCast (serverApp.Get (0))->GetTotalRx ();
+ uint64_t totalBytesRx = DynamicCast (serverApp.Get (0))->GetTotalRx ();
totalPacketsThrough = totalBytesRx / tcpPacketSize;
throughput = totalBytesRx * 8 / (simulationTime * 1000000.0); //Mbit/s
}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-spectrum-saturation-example.cc ns-3.29/examples/wireless/wifi-spectrum-saturation-example.cc
--- ns-3.28.1/examples/wireless/wifi-spectrum-saturation-example.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-spectrum-saturation-example.cc 2018-09-04 16:02:39.000000000 -0700
@@ -24,12 +24,23 @@
*/
#include
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/spectrum-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/boolean.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/spectrum-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/udp-client-server-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/multi-model-spectrum-channel.h"
+#include "ns3/propagation-loss-model.h"
// This is a simple example of an IEEE 802.11n Wi-Fi network.
//
@@ -687,7 +698,7 @@
Simulator::Run ();
double throughput;
- uint32_t totalPacketsThrough;
+ uint64_t totalPacketsThrough;
totalPacketsThrough = DynamicCast (serverApp.Get (0))->GetReceived ();
throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0); //Mbit/s
std::cout << std::setw (5) << i <<
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-tcp.cc ns-3.29/examples/wireless/wifi-tcp.cc
--- ns-3.28.1/examples/wireless/wifi-tcp.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-tcp.cc 2018-09-04 16:02:39.000000000 -0700
@@ -32,11 +32,22 @@
* of TCP i.e. congestion control algorithm to use.
*/
-#include "ns3/applications-module.h"
-#include "ns3/core-module.h"
-#include "ns3/internet-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/wifi-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/mobility-model.h"
+#include "ns3/packet-sink.h"
+#include "ns3/packet-sink-helper.h"
+#include "ns3/tcp-westwood.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/ipv4-global-routing-helper.h"
NS_LOG_COMPONENT_DEFINE ("wifi-tcp");
@@ -78,14 +89,9 @@
cmd.Parse (argc, argv);
tcpVariant = std::string ("ns3::") + tcpVariant;
-
- /* No fragmentation and no RTS/CTS */
- Config::SetDefault ("ns3::WifiRemoteStationManager::FragmentationThreshold", StringValue ("999999"));
- Config::SetDefault ("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue ("999999"));
-
// Select TCP variant
if (tcpVariant.compare ("ns3::TcpWestwoodPlus") == 0)
- {
+ {
// TcpWestwoodPlus is not an actual TypeId name; we need TcpWestwood here
Config::SetDefault ("ns3::TcpL4Protocol::SocketType", TypeIdValue (TcpWestwood::GetTypeId ()));
// the default protocol type in ns3::TcpWestwood is WESTWOOD
@@ -200,9 +206,11 @@
/* Start Simulation */
Simulator::Stop (Seconds (simulationTime + 1));
Simulator::Run ();
+
+ double averageThroughput = ((sink->GetTotalRx () * 8) / (1e6 * simulationTime));
+
Simulator::Destroy ();
- double averageThroughput = ((sink->GetTotalRx () * 8) / (1e6 * simulationTime));
if (averageThroughput < 50)
{
NS_LOG_ERROR ("Obtained throughput is not in the expected boundaries!");
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-timing-attributes.cc ns-3.29/examples/wireless/wifi-timing-attributes.cc
--- ns-3.28.1/examples/wireless/wifi-timing-attributes.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-timing-attributes.cc 2018-09-04 16:02:39.000000000 -0700
@@ -1,6 +1,6 @@
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2015 SEBASTIEN DERONNE
+ * Copyright (c) 2015
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -15,14 +15,24 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Authors: Sebastien Deronne
+ * Author: Sebastien Deronne
*/
-#include "ns3/core-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/config.h"
+#include "ns3/uinteger.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/log.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/mobility-model.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/udp-client-server-helper.h"
+#include "ns3/ipv4-global-routing-helper.h"
// This example shows how to set Wi-Fi timing parameters through WifiMac attributes.
//
@@ -159,12 +169,12 @@
//Set simulation time and launch simulation
Simulator::Stop (Seconds (simulationTime + 1));
Simulator::Run ();
- Simulator::Destroy ();
//Get and print results
- uint32_t totalPacketsThrough = DynamicCast (serverApp.Get (0))->GetReceived ();
+ uint64_t totalPacketsThrough = DynamicCast (serverApp.Get (0))->GetReceived ();
double throughput = totalPacketsThrough * 1472 * 8 / (simulationTime * 1000000.0); //Mbit/s
std::cout << "Throughput: " << throughput << " Mbit/s" << std::endl;
+ Simulator::Destroy ();
return 0;
}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wifi-wired-bridging.cc ns-3.29/examples/wireless/wifi-wired-bridging.cc
--- ns-3.28.1/examples/wireless/wifi-wired-bridging.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wifi-wired-bridging.cc 2018-09-04 16:02:39.000000000 -0700
@@ -41,14 +41,20 @@
// | AP Node | | AP Node |
// +---------+ +---------+
-#include "ns3/core-module.h"
-#include "ns3/mobility-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/wifi-module.h"
-#include "ns3/network-module.h"
-#include "ns3/csma-module.h"
-#include "ns3/internet-module.h"
+#include "ns3/command-line.h"
+#include "ns3/double.h"
+#include "ns3/string.h"
+#include "ns3/yans-wifi-helper.h"
+#include "ns3/ssid.h"
+#include "ns3/mobility-helper.h"
+#include "ns3/internet-stack-helper.h"
+#include "ns3/ipv4-address-helper.h"
+#include "ns3/on-off-helper.h"
+#include "ns3/yans-wifi-channel.h"
+#include "ns3/csma-helper.h"
+#include "ns3/animation-interface.h"
#include "ns3/bridge-helper.h"
+#include "ns3/packet-socket-address.h"
using namespace ns3;
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/examples/wireless/wscript ns-3.29/examples/wireless/wscript
--- ns-3.28.1/examples/wireless/wscript 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/examples/wireless/wscript 2018-09-04 16:02:39.000000000 -0700
@@ -1,113 +1,117 @@
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
def build(bld):
- obj = bld.create_ns3_program('mixed-wired-wireless', ['core', 'mobility', 'wifi', 'applications', 'point-to-point',
- 'internet', 'csma', 'olsr', 'netanim'])
+ obj = bld.create_ns3_program('mixed-wired-wireless', ['wifi', 'applications', 'olsr', 'netanim'])
obj.source = 'mixed-wired-wireless.cc'
- bld.register_ns3_script('mixed-wired-wireless.py', ['core', 'mobility', 'wifi', 'applications', 'point-to-point',
- 'internet', 'csma', 'olsr'])
+ bld.register_ns3_script('mixed-wired-wireless.py', ['wifi', 'applications', 'olsr'])
- obj = bld.create_ns3_program('wifi-adhoc', ['core', 'mobility', 'wifi', 'applications', 'stats'])
+ obj = bld.create_ns3_program('wifi-adhoc', ['wifi', 'applications'])
obj.source = 'wifi-adhoc.cc'
- obj = bld.create_ns3_program('wifi-clear-channel-cmu', ['internet', 'mobility', 'wifi', 'stats'])
+ obj = bld.create_ns3_program('wifi-clear-channel-cmu', ['internet', 'wifi'])
obj.source = 'wifi-clear-channel-cmu.cc'
- obj = bld.create_ns3_program('wifi-ap', ['core', 'mobility', 'wifi', 'applications', 'config-store', 'stats'])
+ obj = bld.create_ns3_program('wifi-ap', ['wifi', 'applications'])
obj.source = 'wifi-ap.cc'
- bld.register_ns3_script('wifi-ap.py', ['core', 'mobility', 'wifi', 'applications', 'config-store', 'stats'])
+ bld.register_ns3_script('wifi-ap.py', ['wifi', 'applications'])
- obj = bld.create_ns3_program('wifi-wired-bridging', ['internet', 'mobility', 'wifi', 'csma', 'bridge', 'applications'])
+ obj = bld.create_ns3_program('wifi-wired-bridging', ['wifi', 'csma', 'bridge', 'applications'])
obj.source = 'wifi-wired-bridging.cc'
- obj = bld.create_ns3_program('multirate', ['internet', 'mobility', 'wifi', 'stats', 'flow-monitor', 'olsr', 'applications', 'point-to-point'])
+ obj = bld.create_ns3_program('multirate', ['wifi', 'flow-monitor', 'olsr', 'applications'])
obj.source = 'multirate.cc'
- obj = bld.create_ns3_program('wifi-simple-adhoc', ['internet', 'mobility', 'wifi', 'config-store', 'stats'])
+ obj = bld.create_ns3_program('wifi-simple-adhoc', ['internet', 'wifi'])
obj.source = 'wifi-simple-adhoc.cc'
- obj = bld.create_ns3_program('wifi-simple-adhoc-grid', ['internet', 'mobility', 'wifi', 'olsr', 'config-store', 'stats', 'point-to-point'])
+ obj = bld.create_ns3_program('wifi-simple-adhoc-grid', ['internet', 'wifi', 'olsr'])
obj.source = 'wifi-simple-adhoc-grid.cc'
- obj = bld.create_ns3_program('wifi-simple-infra', ['internet', 'mobility', 'wifi','config-store'])
+ obj = bld.create_ns3_program('wifi-simple-infra', ['internet', 'wifi'])
obj.source = 'wifi-simple-infra.cc'
- obj = bld.create_ns3_program('wifi-simple-interference', ['internet', 'mobility', 'wifi', 'config-store', 'stats'])
+ obj = bld.create_ns3_program('wifi-simple-interference', ['internet', 'wifi'])
obj.source = 'wifi-simple-interference.cc'
- obj = bld.create_ns3_program('wifi-blockack', ['internet', 'mobility', 'wifi', 'applications'])
+ obj = bld.create_ns3_program('wifi-blockack', ['wifi', 'applications'])
obj.source = 'wifi-blockack.cc'
- obj = bld.create_ns3_program('ofdm-validation', ['core', 'mobility', 'wifi', 'config-store', 'stats'])
+ obj = bld.create_ns3_program('dsss-validation', ['wifi'])
+ obj.source = 'dsss-validation.cc'
+
+ obj = bld.create_ns3_program('ofdm-validation', ['wifi'])
obj.source = 'ofdm-validation.cc'
- obj = bld.create_ns3_program('ofdm-ht-validation', ['core', 'mobility', 'wifi', 'config-store', 'stats'])
+ obj = bld.create_ns3_program('ofdm-ht-validation', ['wifi'])
obj.source = 'ofdm-ht-validation.cc'
- obj = bld.create_ns3_program('ofdm-vht-validation', ['core', 'mobility', 'wifi', 'config-store', 'stats'])
+ obj = bld.create_ns3_program('ofdm-vht-validation', ['wifi'])
obj.source = 'ofdm-vht-validation.cc'
- obj = bld.create_ns3_program('wifi-hidden-terminal', ['internet', 'mobility', 'wifi', 'applications', 'propagation', 'flow-monitor'])
+ obj = bld.create_ns3_program('wifi-hidden-terminal', ['wifi', 'applications', 'flow-monitor'])
obj.source = 'wifi-hidden-terminal.cc'
- obj = bld.create_ns3_program('ht-wifi-network', ['core','internet', 'mobility', 'wifi', 'applications', 'propagation'])
+ obj = bld.create_ns3_program('ht-wifi-network', ['wifi', 'applications'])
obj.source = 'ht-wifi-network.cc'
- obj = bld.create_ns3_program('vht-wifi-network', ['core','internet', 'mobility', 'wifi', 'applications', 'propagation'])
+ obj = bld.create_ns3_program('vht-wifi-network', ['wifi', 'applications'])
obj.source = 'vht-wifi-network.cc'
- obj = bld.create_ns3_program('wifi-timing-attributes', ['core','internet', 'mobility', 'wifi', 'applications', 'propagation'])
+ obj = bld.create_ns3_program('wifi-timing-attributes', ['wifi', 'applications'])
obj.source = 'wifi-timing-attributes.cc'
- obj = bld.create_ns3_program('wifi-sleep', ['core', 'network', 'internet', 'mobility', 'wifi', 'applications', 'energy', 'config-store'])
+ obj = bld.create_ns3_program('wifi-sleep', ['wifi', 'applications'])
obj.source = 'wifi-sleep.cc'
- obj = bld.create_ns3_program('power-adaptation-distance', ['core', 'mobility', 'wifi', 'applications', 'flow-monitor'])
+ obj = bld.create_ns3_program('power-adaptation-distance', ['wifi', 'applications'])
obj.source = 'power-adaptation-distance.cc'
- obj = bld.create_ns3_program('power-adaptation-interference', ['core', 'mobility', 'wifi', 'applications', 'flow-monitor'])
+ obj = bld.create_ns3_program('power-adaptation-interference', ['wifi', 'applications', 'flow-monitor'])
obj.source = 'power-adaptation-interference.cc'
- obj = bld.create_ns3_program('rate-adaptation-distance', ['core', 'mobility', 'wifi', 'applications', 'flow-monitor'])
+ obj = bld.create_ns3_program('rate-adaptation-distance', ['wifi', 'applications'])
obj.source = 'rate-adaptation-distance.cc'
- obj = bld.create_ns3_program('wifi-aggregation', ['internet', 'mobility', 'wifi', 'applications'])
+ obj = bld.create_ns3_program('wifi-aggregation', ['wifi', 'applications'])
obj.source = 'wifi-aggregation.cc'
- obj = bld.create_ns3_program('simple-ht-hidden-stations', ['internet', 'mobility', 'wifi', 'applications'])
+ obj = bld.create_ns3_program('simple-ht-hidden-stations', ['wifi', 'applications'])
obj.source = 'simple-ht-hidden-stations.cc'
- obj = bld.create_ns3_program('80211n-mimo', ['core','internet', 'mobility', 'wifi', 'applications', 'propagation'])
+ obj = bld.create_ns3_program('80211n-mimo', ['wifi', 'applications'])
obj.source = '80211n-mimo.cc'
- obj = bld.create_ns3_program('mixed-network', ['internet', 'mobility', 'wifi', 'applications'])
+ obj = bld.create_ns3_program('mixed-network', ['wifi', 'applications'])
obj.source = 'mixed-network.cc'
- obj = bld.create_ns3_program('wifi-tcp', ['internet', 'mobility', 'wifi', 'applications', 'point-to-point'])
+ obj = bld.create_ns3_program('wifi-tcp', ['wifi', 'applications'])
obj.source = 'wifi-tcp.cc'
- obj = bld.create_ns3_program('80211e-txop', ['internet', 'mobility', 'wifi', 'applications'])
+ obj = bld.create_ns3_program('80211e-txop', ['wifi', 'applications'])
obj.source = '80211e-txop.cc'
- obj = bld.create_ns3_program('wifi-spectrum-per-example', ['internet', 'mobility', 'wifi', 'applications', 'spectrum'])
+ obj = bld.create_ns3_program('wifi-spectrum-per-example', ['wifi', 'applications'])
obj.source = 'wifi-spectrum-per-example.cc'
- obj = bld.create_ns3_program('wifi-spectrum-per-interference', ['internet', 'mobility', 'wifi', 'applications', 'spectrum'])
+ obj = bld.create_ns3_program('wifi-spectrum-per-interference', ['wifi', 'applications'])
obj.source = 'wifi-spectrum-per-interference.cc'
- obj = bld.create_ns3_program('wifi-spectrum-saturation-example', ['internet', 'mobility', 'wifi', 'applications', 'spectrum'])
+ obj = bld.create_ns3_program('wifi-spectrum-saturation-example', ['wifi', 'applications'])
obj.source = 'wifi-spectrum-saturation-example.cc'
- obj = bld.create_ns3_program('ofdm-he-validation', ['core', 'mobility', 'wifi', 'config-store', 'stats'])
+ obj = bld.create_ns3_program('ofdm-he-validation', ['wifi'])
obj.source = 'ofdm-he-validation.cc'
- obj = bld.create_ns3_program('he-wifi-network', ['core','internet', 'mobility', 'wifi', 'applications', 'propagation'])
+ obj = bld.create_ns3_program('he-wifi-network', ['wifi', 'applications'])
obj.source = 'he-wifi-network.cc'
- obj = bld.create_ns3_program('wifi-multi-tos', ['core','internet', 'mobility', 'wifi', 'applications', 'propagation'])
+ obj = bld.create_ns3_program('wifi-multi-tos', ['wifi', 'applications'])
obj.source = 'wifi-multi-tos.cc'
- obj = bld.create_ns3_program('wifi-backward-compatibility', ['core','internet', 'mobility', 'wifi', 'applications', 'propagation'])
+ obj = bld.create_ns3_program('wifi-backward-compatibility', ['wifi', 'applications'])
obj.source = 'wifi-backward-compatibility.cc'
+
+ obj = bld.create_ns3_program('wifi-pcf', ['wifi', 'applications'])
+ obj.source = 'wifi-pcf.cc'
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/RELEASE_NOTES ns-3.29/RELEASE_NOTES
--- ns-3.28.1/RELEASE_NOTES 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/RELEASE_NOTES 2018-09-04 16:05:18.000000000 -0700
@@ -9,48 +9,87 @@
Consult the file CHANGES.html for more detailed information about changed
API and behavior across ns-3 releases.
-Release 3.28.1
-==============
+Release 3.29
+============
Availability
------------
This release is available from:
-https://www.nsnam.org/release/ns-allinone-3.28.1.tar.bz2
+https://www.nsnam.org/release/ns-allinone-3.29.tar.bz2
Supported platforms
-------------------
This release is intended to work on systems with the following minimal
-compiler requirements (other compilers supporting C++11 may also work):
+requirements (Note: not all features available on all platforms):
- g++-4.9 or later
- Apple LLVM version 7.0.2 or later
- clang-3.3 or later
-In addition, a Python 2.7 (Python 2 series) or Python 3.4 (Python 3 series)
-or later is required.
+In addition, Python 2.7 (Python 2 series) or Python 3.4-3.7 (Python 3 series)
+
+This release has been tested on the following platforms:
- Ubuntu 18.04 (64 bit) with g++-7.3.0 and Python 2.7.15
-- Ubuntu 16.04 (64 bit) with g++-5.4.0 and Python 2.7.12
-- Fedora Core 28 (64 bit) with g++-8.1.1 and Python 2.7.15
-- Fedora Core 26 (64 bit) with g++-7.3.1 and g++-7.1.1, and Python 2.7.14
+- Ubuntu 16.04 (64 bit) with g++-5.4.0 and Python 2.7.12/3.5.2
+- Fedora Core 28 (64 bit) with g++-8.1.1 and Python 2.7.15/3.7.0
+- Fedora Core 26 (64 bit) with g++-7.3.1 and Python 2.7.14/3.6.5
- macOS High Sierra 10.13.5 with Xcode 9.4.1, Apple LLVM version 9.1.0, Python 2.7.10
New user-visible features
-------------------------
-This is a maintenance release with no new user-visible features in the models.
+- (buildings) A new position allocator has been added to the buildings module.
+ The allocator places nodes randomly but in a manner that rejects positions
+ that are located within buildings defined in the scenario.
+- (applications) Add 3GPP HTTP model
+- (traffic-control) Add priority queue disc (PrioQueueDisc)
+- (tcp) Added PRR as recovery algorithm
+- (wifi) Add a new trace source to StaWifiMac to trace beacon arrivals
+- (network) Add a method to allow random variable-based jitter to be added
+ to the start times of applications in a container.
+- (network) Add a method to check whether a node with a given ID is within
+ a NodeContainer.
+- (spectrum) A new trace source named "Gain" is added to the SpectrumChannel class.
+ This trace is fired whenever a new path loss value is calculated. It exports pointers
+ to the mobility model of the transmitter and the receiver, Tx antenna gain, Rx antenna gain,
+ propagation gain and the pathloss value.
Bugs fixed
----------
-- bug 2938 - add --disable-werror flag to Waf
-- bug 2982 - missing modules cause Waf to run indefinitely
-- various compiler issues and warnings handled for GCC 8
+- Bug 2299 - uan: WOSS integration missing patch
+- Bug 2399 - wifi: Improve scanning procedure of StaWifiMac
+- Bug 2451 - bindings: (partial fix) generating ILP32 bindings from LP64
+- Bug 2461 - core: CommandLine should handle non-option arguments
+- Bug 2772 - bridge: Bridge doesn't learn from packets sent to it
+- Bug 2801 - fd-net-device: FdNetDevice device MTU is not set correctly
+- Bug 2819 - traffic-control: FqCoDel handling of non-IP packets
+- Bug 2891 - netanim: dumbbell-animation breaks when RightCount > LeftCount
+- Bug 2901 - core: Add CommandLine::Parse (const std::vector> args)
+- Bug 2902 - build: missing modules cause Waf to run indefinitely
+- Bug 2908 - build: Check if pybindgen version exists before use
+- Bug 2911 - aodv: Binary exponential backoff can become unlimited
+- Bug 2914 - tcp: Adv Win resilience to SequenceNumber wrap-around
+- Bug 2915 - build: Enforce gcc minimum version
+- Bug 2920 - wifi: Default MaxSlrc and fragmentation threshold values differ from standard
+- Bug 2921 - tcp: Add min_cwnd variable to LEDBAT
+- Bug 2923 - tap-bridge: UseLocal mode uses wrong MAC address
+- Bug 2924 - traffic-control:documentation about Peek/Dequeue usage
+- Bug 2925 - wifi: MinstrelHt provides strange results at low SNR with A-MPDU enabled
+- Bug 2926 - wifi: SSRC and SLRC mechanism not fully aligned to the standard
+- Bug 2927 - lte: Valgrind error in lena-x2-handover example
+- Bug 2931 - traffic-control: QueueDisc drops the CE marked packets
+- Bug 2936 - Disable -Wparentheses with GTK+ and gcc-8
+- Bug 2938 - build: add --disable-werror flag to Waf
+- Bug 2940 - traffic-control: QueueDisc SojournTime should be TracedCallback
+- Bug 2941 - wifi: Order bit of Frame control field of WifiMacHeader not correctly set for some frames
+- Bug 2948 - network: SetPriority does not support value 7
+- Bug 2949 - test: Exit test.py if incorrect fullness option used
+- Bug 2964 - wifi: IdealWifiManager keeps using the same MCS when all transmissions fail
+- Bug 2974 - lte: Inconsistent declaration of IPV6 methods
Known issues
------------
In general, known issues are tracked on the project tracker available
at http://www.nsnam.org/bugzilla/
-- It has been reported that this release is not compatible with Python 3.7
-- Pyviz visualizer is unsupported for systems based on Ubuntu 18.04
-
Release 3.28
============
@@ -242,7 +281,7 @@
- Bug 2534 - traffic-control: ARED and PIE examples should return 1 upon exit
- Bug 2535 - utils: memory leak in bench-simulator.cc
- Bug 2536 - wimax: fixed dead assignment and potential memory leak in wimax
-- Bug 2537 - traffic-control: Fix dead assigment on CoDel::DoDequeue
+- Bug 2537 - traffic-control: Fix dead assignment on CoDel::DoDequeue
- Bug 2538 - tap-bridge: fixed dead assignment on tap-bridge
- Bug 2540 - mesh: fixed dead assignment on mesh/ie-dot11s-perr
- Bug 2541 - wifi: preamble not assigned correctly
@@ -527,7 +566,7 @@
error models
3) The WiFi helper API for the WifiMac sublayer, and the configuration
of HT modes and parameters, has been simplified
- 4) Better support for backward compatibilty with legacy modes
+ 4) Better support for backward compatibility with legacy modes
- (wifi) 802.11g was made backward compatible with 802.11b networks
@@ -1444,7 +1483,7 @@
Bugs fixed
----------
- bug 1256 - Unnecessary SND.NXT advance, missing ACK for Out of Order segments
-- bug 1318 - Ipv6L3Protocol::LocalDeliver can get stuck in an infinte loop
+- bug 1318 - Ipv6L3Protocol::LocalDeliver can get stuck in an infinite loop
- bug 1409 - Add an attribute "SystemId" to configure the ID for MPI
- bug 1421 - Frequency dependent propagation loss models need uniform Frequency / Lambda attribute
- bug 1434 - DSR throughput not comparable to other protocols for manet example
@@ -1457,7 +1496,7 @@
- bug 1563 - Reduce valgrind test scope
- bug 1564 - Packet meta data isn't shown in dumbbell-animation.xml
- bug 1566 - WiFi SNR tag improvements
-- bug 1568 - Deserialized addresses are implicity marked as Mac48Address
+- bug 1568 - Deserialized addresses are implicitly marked as Mac48Address
- bug 1569 - droptail_vs_red example doesn't run
- bug 1570 - Valgrind errors in new test examples
- bug 1574 - Node color overwritten, by mobility updates in netanim
@@ -2022,7 +2061,7 @@
- bug 1047 - Multicast routes on nodes with >16 interfaces
- bug 1048 - suggested MatrixPropagationLossModel::SetLoss() API change
- bug 1049 - Issues with OLSR HNA messages sent by multiple gateways
- - bug 1052 - olsr::RoutingProtocol::LinkTupleUpdated incorrect detection of asymetric link with multiple interface nodes
+ - bug 1052 - olsr::RoutingProtocol::LinkTupleUpdated incorrect detection of asymmetric link with multiple interface nodes
- bug 1054 - ipv6 InternetStackHelper EnablePcapIpv6All() broken
- bug 1056 - CSMA: padding not handled correctly for LLC encapsulation
- bug 1058 - InternetStackHelper pitfall: calling Install before adding routing protocols
@@ -2508,7 +2547,7 @@
- bug 860 - waf sometimes dies while executing ns3header or gen_ns3_module_header tasks in case of
parallel jobs
- bug 862 - NotifyInterfaceUp() Adds network route even when netmask is /32
- - bug 863 - Wrong Scalar arithmetics
+ - bug 863 - Wrong Scalar arithmetic
- bug 864 - Invalid return value in UdpSocketImpl::Send and Ipv4RawSocketImpl::Send
- bug 865 - Ipv4RawSocketImpl::RecvFrom does not return from address all the time.
- bug 866 - WiMAX mobility models not aggregated to Node
@@ -2520,7 +2559,7 @@
- bug 877 - python bindings broken with multiple inheritance ?
- bug 880 - Node sending a packet to itself via 127.0.0.1 aborts
- bug 885 - Error in Ascii tracing in Python examples
- - bug 888 - Writing ascii trace to addtional tests fails
+ - bug 888 - Writing ascii trace to additional tests fails
- bug 891 - WiMAX device helper does not include propagation loss model by default
- bug 894 - ./waf --run error message upon segfault
- bug 895 - SimpleOfdmWimaxPhy SNR computation
@@ -2624,7 +2663,7 @@
- bug 738 ReceiveErrorModel called too late
- Fix NSC improper response to FIN
- Fixed bug in serialization of PbbAddressBlock.
- - Fix bug 780 (problem in RoutingTableComputation with asymetric links),
+ - Fix bug 780 (problem in RoutingTableComputation with asymmetric links),
while adding debugging methods to OLSR.
- bug 759: Ipv6 uses wrong outgoing interface.
- bug 770: IPv6 size calculation for unknown options is wrong.
@@ -2827,7 +2866,7 @@
and simulated networks.
d) A new build option (ns-3-allinone) has been provided to make it easier for
- users to download and bulid commonly used ns-3 configurations.
+ users to download and build commonly used ns-3 configurations.
e) The ns-3 calendar queue scheduler has been ported to ns-3.
@@ -3082,7 +3121,7 @@
attribute support to all in-tree models
- Add a mid-level helper API to build simulation topologies
and perform simple ascii and pcap link-level tracing.
- - Large amount of structural changes to accomodate the needs
+ - Large amount of structural changes to accommodate the needs
of the upcoming python bindings
- new rate control algorithm (RRAA) and a jakes propagation model
in the 802.11 model (Federico Maguolo).
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/antenna/bindings/modulegen__gcc_ILP32.py ns-3.29/src/antenna/bindings/modulegen__gcc_ILP32.py
--- ns-3.28.1/src/antenna/bindings/modulegen__gcc_ILP32.py 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/antenna/bindings/modulegen__gcc_ILP32.py 2018-09-04 16:02:39.000000000 -0700
@@ -162,12 +162,12 @@
## hash-function.h (module 'core'): ns3::Hash::Implementation [class]
module.add_class('Implementation', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter >'])
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )', u'ns3::Hash::Hash32Function_ptr')
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )*', u'ns3::Hash::Hash32Function_ptr*')
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )&', u'ns3::Hash::Hash32Function_ptr&')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )', u'ns3::Hash::Hash64Function_ptr')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )*', u'ns3::Hash::Hash64Function_ptr*')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )&', u'ns3::Hash::Hash64Function_ptr&')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash32Function_ptr')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash32Function_ptr*')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash32Function_ptr&')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash64Function_ptr')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash64Function_ptr*')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash64Function_ptr&')
## Register a nested module for the namespace Function
@@ -395,18 +395,18 @@
cls.add_constructor([])
## hash.h (module 'core'): ns3::Hasher::Hasher(ns3::Ptr hp) [constructor]
cls.add_constructor([param('ns3::Ptr< ns3::Hash::Implementation >', 'hp')])
- ## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')])
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')])
## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(std::string const s) [member function]
cls.add_method('GetHash32',
'uint32_t',
[param('std::string const', 's')])
- ## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')])
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')])
## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(std::string const s) [member function]
cls.add_method('GetHash64',
'uint64_t',
@@ -525,19 +525,19 @@
cls.add_method('AddTraceSource',
'ns3::TypeId',
[param('std::string', 'name'), param('std::string', 'help'), param('ns3::Ptr< ns3::TraceSourceAccessor const >', 'accessor'), param('std::string', 'callback'), param('ns3::TypeId::SupportLevel', 'supportLevel', default_value='::ns3::TypeId::SupportLevel::SUPPORTED'), param('std::string const &', 'supportMsg', default_value='""')])
- ## type-id.h (module 'core'): ns3::TypeId::AttributeInformation ns3::TypeId::GetAttribute(uint32_t i) const [member function]
+ ## type-id.h (module 'core'): ns3::TypeId::AttributeInformation ns3::TypeId::GetAttribute(std::size_t i) const [member function]
cls.add_method('GetAttribute',
'ns3::TypeId::AttributeInformation',
- [param('uint32_t', 'i')],
+ [param('std::size_t', 'i')],
is_const=True)
- ## type-id.h (module 'core'): std::string ns3::TypeId::GetAttributeFullName(uint32_t i) const [member function]
+ ## type-id.h (module 'core'): std::string ns3::TypeId::GetAttributeFullName(std::size_t i) const [member function]
cls.add_method('GetAttributeFullName',
'std::string',
- [param('uint32_t', 'i')],
+ [param('std::size_t', 'i')],
is_const=True)
- ## type-id.h (module 'core'): uint32_t ns3::TypeId::GetAttributeN() const [member function]
+ ## type-id.h (module 'core'): std::size_t ns3::TypeId::GetAttributeN() const [member function]
cls.add_method('GetAttributeN',
- 'uint32_t',
+ 'std::size_t',
[],
is_const=True)
## type-id.h (module 'core'): ns3::Callback ns3::TypeId::GetConstructor() const [member function]
@@ -565,14 +565,14 @@
'ns3::TypeId',
[],
is_const=True)
- ## type-id.h (module 'core'): static ns3::TypeId ns3::TypeId::GetRegistered(uint32_t i) [member function]
+ ## type-id.h (module 'core'): static ns3::TypeId ns3::TypeId::GetRegistered(uint16_t i) [member function]
cls.add_method('GetRegistered',
'ns3::TypeId',
- [param('uint32_t', 'i')],
+ [param('uint16_t', 'i')],
is_static=True)
- ## type-id.h (module 'core'): static uint32_t ns3::TypeId::GetRegisteredN() [member function]
+ ## type-id.h (module 'core'): static uint16_t ns3::TypeId::GetRegisteredN() [member function]
cls.add_method('GetRegisteredN',
- 'uint32_t',
+ 'uint16_t',
[],
is_static=True)
## type-id.h (module 'core'): std::size_t ns3::TypeId::GetSize() const [member function]
@@ -580,14 +580,14 @@
'std::size_t',
[],
is_const=True)
- ## type-id.h (module 'core'): ns3::TypeId::TraceSourceInformation ns3::TypeId::GetTraceSource(uint32_t i) const [member function]
+ ## type-id.h (module 'core'): ns3::TypeId::TraceSourceInformation ns3::TypeId::GetTraceSource(std::size_t i) const [member function]
cls.add_method('GetTraceSource',
'ns3::TypeId::TraceSourceInformation',
- [param('uint32_t', 'i')],
+ [param('std::size_t', 'i')],
is_const=True)
- ## type-id.h (module 'core'): uint32_t ns3::TypeId::GetTraceSourceN() const [member function]
+ ## type-id.h (module 'core'): std::size_t ns3::TypeId::GetTraceSourceN() const [member function]
cls.add_method('GetTraceSourceN',
- 'uint32_t',
+ 'std::size_t',
[],
is_const=True)
## type-id.h (module 'core'): uint16_t ns3::TypeId::GetUid() const [member function]
@@ -649,10 +649,10 @@
'bool',
[],
is_const=True)
- ## type-id.h (module 'core'): bool ns3::TypeId::SetAttributeInitialValue(uint32_t i, ns3::Ptr initialValue) [member function]
+ ## type-id.h (module 'core'): bool ns3::TypeId::SetAttributeInitialValue(std::size_t i, ns3::Ptr initialValue) [member function]
cls.add_method('SetAttributeInitialValue',
'bool',
- [param('uint32_t', 'i'), param('ns3::Ptr< ns3::AttributeValue const >', 'initialValue')])
+ [param('std::size_t', 'i'), param('ns3::Ptr< ns3::AttributeValue const >', 'initialValue')])
## type-id.h (module 'core'): ns3::TypeId ns3::TypeId::SetGroupName(std::string groupName) [member function]
cls.add_method('SetGroupName',
'ns3::TypeId',
@@ -1397,15 +1397,15 @@
cls.add_constructor([param('ns3::Hash::Implementation const &', 'arg0')])
## hash-function.h (module 'core'): ns3::Hash::Implementation::Implementation() [constructor]
cls.add_constructor([])
- ## hash-function.h (module 'core'): uint32_t ns3::Hash::Implementation::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Implementation::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_pure_virtual=True, is_virtual=True)
- ## hash-function.h (module 'core'): uint64_t ns3::Hash::Implementation::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint64_t ns3::Hash::Implementation::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-function.h (module 'core'): void ns3::Hash::Implementation::clear() [member function]
cls.add_method('clear',
@@ -1441,10 +1441,10 @@
cls.add_constructor([param('ns3::Hash::Function::Hash32 const &', 'arg0')])
## hash-function.h (module 'core'): ns3::Hash::Function::Hash32::Hash32(ns3::Hash::Hash32Function_ptr hp) [constructor]
cls.add_constructor([param('ns3::Hash::Hash32Function_ptr', 'hp')])
- ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash32::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash32::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-function.h (module 'core'): void ns3::Hash::Function::Hash32::clear() [member function]
cls.add_method('clear',
@@ -1458,15 +1458,15 @@
cls.add_constructor([param('ns3::Hash::Function::Hash64 const &', 'arg0')])
## hash-function.h (module 'core'): ns3::Hash::Function::Hash64::Hash64(ns3::Hash::Hash64Function_ptr hp) [constructor]
cls.add_constructor([param('ns3::Hash::Hash64Function_ptr', 'hp')])
- ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash64::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash64::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
- ## hash-function.h (module 'core'): uint64_t ns3::Hash::Function::Hash64::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint64_t ns3::Hash::Function::Hash64::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-function.h (module 'core'): void ns3::Hash::Function::Hash64::clear() [member function]
cls.add_method('clear',
@@ -1480,15 +1480,15 @@
cls.add_constructor([param('ns3::Hash::Function::Murmur3 const &', 'arg0')])
## hash-murmur3.h (module 'core'): ns3::Hash::Function::Murmur3::Murmur3() [constructor]
cls.add_constructor([])
- ## hash-murmur3.h (module 'core'): uint32_t ns3::Hash::Function::Murmur3::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-murmur3.h (module 'core'): uint32_t ns3::Hash::Function::Murmur3::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
- ## hash-murmur3.h (module 'core'): uint64_t ns3::Hash::Function::Murmur3::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash-murmur3.h (module 'core'): uint64_t ns3::Hash::Function::Murmur3::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-murmur3.h (module 'core'): void ns3::Hash::Function::Murmur3::clear() [member function]
cls.add_method('clear',
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/antenna/bindings/modulegen__gcc_LP64.py ns-3.29/src/antenna/bindings/modulegen__gcc_LP64.py
--- ns-3.28.1/src/antenna/bindings/modulegen__gcc_LP64.py 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/antenna/bindings/modulegen__gcc_LP64.py 2018-09-04 16:02:39.000000000 -0700
@@ -162,12 +162,12 @@
## hash-function.h (module 'core'): ns3::Hash::Implementation [class]
module.add_class('Implementation', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter >'])
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )', u'ns3::Hash::Hash32Function_ptr')
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )*', u'ns3::Hash::Hash32Function_ptr*')
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )&', u'ns3::Hash::Hash32Function_ptr&')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )', u'ns3::Hash::Hash64Function_ptr')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )*', u'ns3::Hash::Hash64Function_ptr*')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )&', u'ns3::Hash::Hash64Function_ptr&')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash32Function_ptr')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash32Function_ptr*')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash32Function_ptr&')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash64Function_ptr')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash64Function_ptr*')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash64Function_ptr&')
## Register a nested module for the namespace Function
@@ -395,18 +395,18 @@
cls.add_constructor([])
## hash.h (module 'core'): ns3::Hasher::Hasher(ns3::Ptr hp) [constructor]
cls.add_constructor([param('ns3::Ptr< ns3::Hash::Implementation >', 'hp')])
- ## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')])
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')])
## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(std::string const s) [member function]
cls.add_method('GetHash32',
'uint32_t',
[param('std::string const', 's')])
- ## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')])
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')])
## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(std::string const s) [member function]
cls.add_method('GetHash64',
'uint64_t',
@@ -525,19 +525,19 @@
cls.add_method('AddTraceSource',
'ns3::TypeId',
[param('std::string', 'name'), param('std::string', 'help'), param('ns3::Ptr< ns3::TraceSourceAccessor const >', 'accessor'), param('std::string', 'callback'), param('ns3::TypeId::SupportLevel', 'supportLevel', default_value='::ns3::TypeId::SupportLevel::SUPPORTED'), param('std::string const &', 'supportMsg', default_value='""')])
- ## type-id.h (module 'core'): ns3::TypeId::AttributeInformation ns3::TypeId::GetAttribute(uint32_t i) const [member function]
+ ## type-id.h (module 'core'): ns3::TypeId::AttributeInformation ns3::TypeId::GetAttribute(std::size_t i) const [member function]
cls.add_method('GetAttribute',
'ns3::TypeId::AttributeInformation',
- [param('uint32_t', 'i')],
+ [param('std::size_t', 'i')],
is_const=True)
- ## type-id.h (module 'core'): std::string ns3::TypeId::GetAttributeFullName(uint32_t i) const [member function]
+ ## type-id.h (module 'core'): std::string ns3::TypeId::GetAttributeFullName(std::size_t i) const [member function]
cls.add_method('GetAttributeFullName',
'std::string',
- [param('uint32_t', 'i')],
+ [param('std::size_t', 'i')],
is_const=True)
- ## type-id.h (module 'core'): uint32_t ns3::TypeId::GetAttributeN() const [member function]
+ ## type-id.h (module 'core'): std::size_t ns3::TypeId::GetAttributeN() const [member function]
cls.add_method('GetAttributeN',
- 'uint32_t',
+ 'std::size_t',
[],
is_const=True)
## type-id.h (module 'core'): ns3::Callback ns3::TypeId::GetConstructor() const [member function]
@@ -565,14 +565,14 @@
'ns3::TypeId',
[],
is_const=True)
- ## type-id.h (module 'core'): static ns3::TypeId ns3::TypeId::GetRegistered(uint32_t i) [member function]
+ ## type-id.h (module 'core'): static ns3::TypeId ns3::TypeId::GetRegistered(uint16_t i) [member function]
cls.add_method('GetRegistered',
'ns3::TypeId',
- [param('uint32_t', 'i')],
+ [param('uint16_t', 'i')],
is_static=True)
- ## type-id.h (module 'core'): static uint32_t ns3::TypeId::GetRegisteredN() [member function]
+ ## type-id.h (module 'core'): static uint16_t ns3::TypeId::GetRegisteredN() [member function]
cls.add_method('GetRegisteredN',
- 'uint32_t',
+ 'uint16_t',
[],
is_static=True)
## type-id.h (module 'core'): std::size_t ns3::TypeId::GetSize() const [member function]
@@ -580,14 +580,14 @@
'std::size_t',
[],
is_const=True)
- ## type-id.h (module 'core'): ns3::TypeId::TraceSourceInformation ns3::TypeId::GetTraceSource(uint32_t i) const [member function]
+ ## type-id.h (module 'core'): ns3::TypeId::TraceSourceInformation ns3::TypeId::GetTraceSource(std::size_t i) const [member function]
cls.add_method('GetTraceSource',
'ns3::TypeId::TraceSourceInformation',
- [param('uint32_t', 'i')],
+ [param('std::size_t', 'i')],
is_const=True)
- ## type-id.h (module 'core'): uint32_t ns3::TypeId::GetTraceSourceN() const [member function]
+ ## type-id.h (module 'core'): std::size_t ns3::TypeId::GetTraceSourceN() const [member function]
cls.add_method('GetTraceSourceN',
- 'uint32_t',
+ 'std::size_t',
[],
is_const=True)
## type-id.h (module 'core'): uint16_t ns3::TypeId::GetUid() const [member function]
@@ -649,10 +649,10 @@
'bool',
[],
is_const=True)
- ## type-id.h (module 'core'): bool ns3::TypeId::SetAttributeInitialValue(uint32_t i, ns3::Ptr initialValue) [member function]
+ ## type-id.h (module 'core'): bool ns3::TypeId::SetAttributeInitialValue(std::size_t i, ns3::Ptr initialValue) [member function]
cls.add_method('SetAttributeInitialValue',
'bool',
- [param('uint32_t', 'i'), param('ns3::Ptr< ns3::AttributeValue const >', 'initialValue')])
+ [param('std::size_t', 'i'), param('ns3::Ptr< ns3::AttributeValue const >', 'initialValue')])
## type-id.h (module 'core'): ns3::TypeId ns3::TypeId::SetGroupName(std::string groupName) [member function]
cls.add_method('SetGroupName',
'ns3::TypeId',
@@ -1397,15 +1397,15 @@
cls.add_constructor([param('ns3::Hash::Implementation const &', 'arg0')])
## hash-function.h (module 'core'): ns3::Hash::Implementation::Implementation() [constructor]
cls.add_constructor([])
- ## hash-function.h (module 'core'): uint32_t ns3::Hash::Implementation::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Implementation::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_pure_virtual=True, is_virtual=True)
- ## hash-function.h (module 'core'): uint64_t ns3::Hash::Implementation::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint64_t ns3::Hash::Implementation::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-function.h (module 'core'): void ns3::Hash::Implementation::clear() [member function]
cls.add_method('clear',
@@ -1441,10 +1441,10 @@
cls.add_constructor([param('ns3::Hash::Function::Hash32 const &', 'arg0')])
## hash-function.h (module 'core'): ns3::Hash::Function::Hash32::Hash32(ns3::Hash::Hash32Function_ptr hp) [constructor]
cls.add_constructor([param('ns3::Hash::Hash32Function_ptr', 'hp')])
- ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash32::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash32::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-function.h (module 'core'): void ns3::Hash::Function::Hash32::clear() [member function]
cls.add_method('clear',
@@ -1458,15 +1458,15 @@
cls.add_constructor([param('ns3::Hash::Function::Hash64 const &', 'arg0')])
## hash-function.h (module 'core'): ns3::Hash::Function::Hash64::Hash64(ns3::Hash::Hash64Function_ptr hp) [constructor]
cls.add_constructor([param('ns3::Hash::Hash64Function_ptr', 'hp')])
- ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash64::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash64::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
- ## hash-function.h (module 'core'): uint64_t ns3::Hash::Function::Hash64::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint64_t ns3::Hash::Function::Hash64::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-function.h (module 'core'): void ns3::Hash::Function::Hash64::clear() [member function]
cls.add_method('clear',
@@ -1480,15 +1480,15 @@
cls.add_constructor([param('ns3::Hash::Function::Murmur3 const &', 'arg0')])
## hash-murmur3.h (module 'core'): ns3::Hash::Function::Murmur3::Murmur3() [constructor]
cls.add_constructor([])
- ## hash-murmur3.h (module 'core'): uint32_t ns3::Hash::Function::Murmur3::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-murmur3.h (module 'core'): uint32_t ns3::Hash::Function::Murmur3::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
- ## hash-murmur3.h (module 'core'): uint64_t ns3::Hash::Function::Murmur3::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash-murmur3.h (module 'core'): uint64_t ns3::Hash::Function::Murmur3::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-murmur3.h (module 'core'): void ns3::Hash::Function::Murmur3::clear() [member function]
cls.add_method('clear',
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/antenna/model/isotropic-antenna-model.cc ns-3.29/src/antenna/model/isotropic-antenna-model.cc
--- ns-3.28.1/src/antenna/model/isotropic-antenna-model.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/antenna/model/isotropic-antenna-model.cc 2018-09-04 16:02:39.000000000 -0700
@@ -20,11 +20,13 @@
#include
+#include
#include "antenna-model.h"
#include "isotropic-antenna-model.h"
+
namespace ns3 {
NS_LOG_COMPONENT_DEFINE ("IsotropicAntennaModel");
@@ -39,6 +41,11 @@
.SetParent ()
.SetGroupName("Antenna")
.AddConstructor ()
+ .AddAttribute ("Gain",
+ "The gain of the antenna in dB",
+ DoubleValue (0),
+ MakeDoubleAccessor (&IsotropicAntennaModel::m_gainDb),
+ MakeDoubleChecker ())
;
return tid;
}
@@ -52,7 +59,7 @@
IsotropicAntennaModel::GetGainDb (Angles a)
{
NS_LOG_FUNCTION (this << a);
- return 0.0;
+ return m_gainDb;
}
}
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/antenna/model/isotropic-antenna-model.h ns-3.29/src/antenna/model/isotropic-antenna-model.h
--- ns-3.28.1/src/antenna/model/isotropic-antenna-model.h 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/antenna/model/isotropic-antenna-model.h 2018-09-04 16:02:39.000000000 -0700
@@ -30,7 +30,7 @@
/**
* \brief Isotropic antenna model
*
- * This is the simplest antenna model. The gain of this antenna is unitary (=0dB) in all directions.
+ * This is the simplest antenna model. The gain of this antenna is the same in all directions.
*/
class IsotropicAntennaModel : public AntennaModel
{
@@ -42,6 +42,14 @@
// inherited from AntennaModel
virtual double GetGainDb (Angles a);
+
+protected:
+
+ /**
+ * gain of the antenna in dB, in all directions
+ *
+ */
+ double m_gainDb;
};
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/aodv/bindings/modulegen__gcc_ILP32.py ns-3.29/src/aodv/bindings/modulegen__gcc_ILP32.py
--- ns-3.28.1/src/aodv/bindings/modulegen__gcc_ILP32.py 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/aodv/bindings/modulegen__gcc_ILP32.py 2018-09-04 16:02:39.000000000 -0700
@@ -20,8 +20,6 @@
def register_types(module):
root_module = module.get_root()
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacType [enumeration]
- module.add_enum('WifiMacType', ['WIFI_MAC_CTL_CTLWRAPPER', 'WIFI_MAC_CTL_RTS', 'WIFI_MAC_CTL_CTS', 'WIFI_MAC_CTL_ACK', 'WIFI_MAC_CTL_BACKREQ', 'WIFI_MAC_CTL_BACKRESP', 'WIFI_MAC_MGT_BEACON', 'WIFI_MAC_MGT_ASSOCIATION_REQUEST', 'WIFI_MAC_MGT_ASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_DISASSOCIATION', 'WIFI_MAC_MGT_REASSOCIATION_REQUEST', 'WIFI_MAC_MGT_REASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_PROBE_REQUEST', 'WIFI_MAC_MGT_PROBE_RESPONSE', 'WIFI_MAC_MGT_AUTHENTICATION', 'WIFI_MAC_MGT_DEAUTHENTICATION', 'WIFI_MAC_MGT_ACTION', 'WIFI_MAC_MGT_ACTION_NO_ACK', 'WIFI_MAC_MGT_MULTIHOP_ACTION', 'WIFI_MAC_DATA', 'WIFI_MAC_DATA_CFACK', 'WIFI_MAC_DATA_CFPOLL', 'WIFI_MAC_DATA_CFACK_CFPOLL', 'WIFI_MAC_DATA_NULL', 'WIFI_MAC_DATA_NULL_CFACK', 'WIFI_MAC_DATA_NULL_CFPOLL', 'WIFI_MAC_DATA_NULL_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA', 'WIFI_MAC_QOSDATA_CFACK', 'WIFI_MAC_QOSDATA_CFPOLL', 'WIFI_MAC_QOSDATA_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA_NULL', 'WIFI_MAC_QOSDATA_NULL_CFPOLL', 'WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL'], import_from_module='ns.wifi')
## address.h (module 'network'): ns3::Address [class]
module.add_class('Address', import_from_module='ns.network')
## address.h (module 'network'): ns3::Address::MaxSize_e [enumeration]
@@ -274,6 +272,9 @@
module.add_class('Time', import_from_module='ns.core')
## nstime.h (module 'core'): ns3::Time::Unit [enumeration]
module.add_enum('Unit', ['Y', 'D', 'H', 'MIN', 'S', 'MS', 'US', 'NS', 'PS', 'FS', 'LAST'], outer_class=root_module['ns3::Time'], import_from_module='ns.core')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )', u'ns3::Time::TracedCallback')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )*', u'ns3::Time::TracedCallback*')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )&', u'ns3::Time::TracedCallback&')
## nstime.h (module 'core'): ns3::Time [class]
root_module['ns3::Time'].implicitly_converts_to(root_module['ns3::int64x64_t'])
## trace-source-accessor.h (module 'core'): ns3::TraceSourceAccessor [class]
@@ -286,15 +287,6 @@
module.add_class('UniformRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream'])
## random-variable-stream.h (module 'core'): ns3::WeibullRandomVariable [class]
module.add_class('WeibullRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream'])
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacHeader [class]
- module.add_class('WifiMacHeader', import_from_module='ns.wifi', parent=root_module['ns3::Header'])
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacHeader::QosAckPolicy [enumeration]
- module.add_enum('QosAckPolicy', ['NORMAL_ACK', 'NO_ACK', 'NO_EXPLICIT_ACK', 'BLOCK_ACK'], outer_class=root_module['ns3::WifiMacHeader'], import_from_module='ns.wifi')
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacHeader::AddressType [enumeration]
- module.add_enum('AddressType', ['ADDR1', 'ADDR2', 'ADDR3', 'ADDR4'], outer_class=root_module['ns3::WifiMacHeader'], import_from_module='ns.wifi')
- typehandlers.add_type_alias(u'void ( * ) ( ns3::WifiMacHeader const & )', u'ns3::WifiMacHeader::TracedCallback')
- typehandlers.add_type_alias(u'void ( * ) ( ns3::WifiMacHeader const & )*', u'ns3::WifiMacHeader::TracedCallback*')
- typehandlers.add_type_alias(u'void ( * ) ( ns3::WifiMacHeader const & )&', u'ns3::WifiMacHeader::TracedCallback&')
## random-variable-stream.h (module 'core'): ns3::ZetaRandomVariable [class]
module.add_class('ZetaRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream'])
## random-variable-stream.h (module 'core'): ns3::ZipfRandomVariable [class]
@@ -438,6 +430,9 @@
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )', u'ns3::Packet::AddressTracedCallback')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )*', u'ns3::Packet::AddressTracedCallback*')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )&', u'ns3::Packet::AddressTracedCallback&')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )', u'ns3::Packet::TwoAddressTracedCallback')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )*', u'ns3::Packet::TwoAddressTracedCallback*')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )&', u'ns3::Packet::TwoAddressTracedCallback&')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )', u'ns3::Packet::Mac48AddressTracedCallback')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )*', u'ns3::Packet::Mac48AddressTracedCallback*')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )&', u'ns3::Packet::Mac48AddressTracedCallback&')
@@ -529,12 +524,12 @@
## hash-function.h (module 'core'): ns3::Hash::Implementation [class]
module.add_class('Implementation', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter >'])
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )', u'ns3::Hash::Hash32Function_ptr')
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )*', u'ns3::Hash::Hash32Function_ptr*')
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )&', u'ns3::Hash::Hash32Function_ptr&')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )', u'ns3::Hash::Hash64Function_ptr')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )*', u'ns3::Hash::Hash64Function_ptr*')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )&', u'ns3::Hash::Hash64Function_ptr&')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash32Function_ptr')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash32Function_ptr*')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash32Function_ptr&')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash64Function_ptr')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash64Function_ptr*')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash64Function_ptr&')
## Register a nested module for the namespace Function
@@ -702,7 +697,6 @@
register_Ns3TriangularRandomVariable_methods(root_module, root_module['ns3::TriangularRandomVariable'])
register_Ns3UniformRandomVariable_methods(root_module, root_module['ns3::UniformRandomVariable'])
register_Ns3WeibullRandomVariable_methods(root_module, root_module['ns3::WeibullRandomVariable'])
- register_Ns3WifiMacHeader_methods(root_module, root_module['ns3::WifiMacHeader'])
register_Ns3ZetaRandomVariable_methods(root_module, root_module['ns3::ZetaRandomVariable'])
register_Ns3ZipfRandomVariable_methods(root_module, root_module['ns3::ZipfRandomVariable'])
register_Ns3ArpCache_methods(root_module, root_module['ns3::ArpCache'])
@@ -1441,18 +1435,18 @@
cls.add_constructor([])
## hash.h (module 'core'): ns3::Hasher::Hasher(ns3::Ptr hp) [constructor]
cls.add_constructor([param('ns3::Ptr< ns3::Hash::Implementation >', 'hp')])
- ## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')])
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')])
## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(std::string const s) [member function]
cls.add_method('GetHash32',
'uint32_t',
[param('std::string const', 's')])
- ## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')])
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')])
## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(std::string const s) [member function]
cls.add_method('GetHash64',
'uint64_t',
@@ -2321,6 +2315,11 @@
'ns3::NodeContainer::Iterator',
[],
is_const=True)
+ ## node-container.h (module 'network'): bool ns3::NodeContainer::Contains(uint32_t id) const [member function]
+ cls.add_method('Contains',
+ 'bool',
+ [param('uint32_t', 'id')],
+ is_const=True)
## node-container.h (module 'network'): void ns3::NodeContainer::Create(uint32_t n) [member function]
cls.add_method('Create',
'void',
@@ -2957,19 +2956,19 @@
cls.add_method('AddTraceSource',
'ns3::TypeId',
[param('std::string', 'name'), param('std::string', 'help'), param('ns3::Ptr< ns3::TraceSourceAccessor const >', 'accessor'), param('std::string', 'callback'), param('ns3::TypeId::SupportLevel', 'supportLevel', default_value='::ns3::TypeId::SupportLevel::SUPPORTED'), param('std::string const &', 'supportMsg', default_value='""')])
- ## type-id.h (module 'core'): ns3::TypeId::AttributeInformation ns3::TypeId::GetAttribute(uint32_t i) const [member function]
+ ## type-id.h (module 'core'): ns3::TypeId::AttributeInformation ns3::TypeId::GetAttribute(std::size_t i) const [member function]
cls.add_method('GetAttribute',
'ns3::TypeId::AttributeInformation',
- [param('uint32_t', 'i')],
+ [param('std::size_t', 'i')],
is_const=True)
- ## type-id.h (module 'core'): std::string ns3::TypeId::GetAttributeFullName(uint32_t i) const [member function]
+ ## type-id.h (module 'core'): std::string ns3::TypeId::GetAttributeFullName(std::size_t i) const [member function]
cls.add_method('GetAttributeFullName',
'std::string',
- [param('uint32_t', 'i')],
+ [param('std::size_t', 'i')],
is_const=True)
- ## type-id.h (module 'core'): uint32_t ns3::TypeId::GetAttributeN() const [member function]
+ ## type-id.h (module 'core'): std::size_t ns3::TypeId::GetAttributeN() const [member function]
cls.add_method('GetAttributeN',
- 'uint32_t',
+ 'std::size_t',
[],
is_const=True)
## type-id.h (module 'core'): ns3::Callback ns3::TypeId::GetConstructor() const [member function]
@@ -2997,14 +2996,14 @@
'ns3::TypeId',
[],
is_const=True)
- ## type-id.h (module 'core'): static ns3::TypeId ns3::TypeId::GetRegistered(uint32_t i) [member function]
+ ## type-id.h (module 'core'): static ns3::TypeId ns3::TypeId::GetRegistered(uint16_t i) [member function]
cls.add_method('GetRegistered',
'ns3::TypeId',
- [param('uint32_t', 'i')],
+ [param('uint16_t', 'i')],
is_static=True)
- ## type-id.h (module 'core'): static uint32_t ns3::TypeId::GetRegisteredN() [member function]
+ ## type-id.h (module 'core'): static uint16_t ns3::TypeId::GetRegisteredN() [member function]
cls.add_method('GetRegisteredN',
- 'uint32_t',
+ 'uint16_t',
[],
is_static=True)
## type-id.h (module 'core'): std::size_t ns3::TypeId::GetSize() const [member function]
@@ -3012,14 +3011,14 @@
'std::size_t',
[],
is_const=True)
- ## type-id.h (module 'core'): ns3::TypeId::TraceSourceInformation ns3::TypeId::GetTraceSource(uint32_t i) const [member function]
+ ## type-id.h (module 'core'): ns3::TypeId::TraceSourceInformation ns3::TypeId::GetTraceSource(std::size_t i) const [member function]
cls.add_method('GetTraceSource',
'ns3::TypeId::TraceSourceInformation',
- [param('uint32_t', 'i')],
+ [param('std::size_t', 'i')],
is_const=True)
- ## type-id.h (module 'core'): uint32_t ns3::TypeId::GetTraceSourceN() const [member function]
+ ## type-id.h (module 'core'): std::size_t ns3::TypeId::GetTraceSourceN() const [member function]
cls.add_method('GetTraceSourceN',
- 'uint32_t',
+ 'std::size_t',
[],
is_const=True)
## type-id.h (module 'core'): uint16_t ns3::TypeId::GetUid() const [member function]
@@ -3081,10 +3080,10 @@
'bool',
[],
is_const=True)
- ## type-id.h (module 'core'): bool ns3::TypeId::SetAttributeInitialValue(uint32_t i, ns3::Ptr initialValue) [member function]
+ ## type-id.h (module 'core'): bool ns3::TypeId::SetAttributeInitialValue(std::size_t i, ns3::Ptr initialValue) [member function]
cls.add_method('SetAttributeInitialValue',
'bool',
- [param('uint32_t', 'i'), param('ns3::Ptr< ns3::AttributeValue const >', 'initialValue')])
+ [param('std::size_t', 'i'), param('ns3::Ptr< ns3::AttributeValue const >', 'initialValue')])
## type-id.h (module 'core'): ns3::TypeId ns3::TypeId::SetGroupName(std::string groupName) [member function]
cls.add_method('SetGroupName',
'ns3::TypeId',
@@ -4742,375 +4741,6 @@
is_virtual=True)
return
-def register_Ns3WifiMacHeader_methods(root_module, cls):
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacHeader::WifiMacHeader(ns3::WifiMacHeader const & arg0) [constructor]
- cls.add_constructor([param('ns3::WifiMacHeader const &', 'arg0')])
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacHeader::WifiMacHeader() [constructor]
- cls.add_constructor([])
- ## wifi-mac-header.h (module 'wifi'): uint32_t ns3::WifiMacHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
- cls.add_method('Deserialize',
- 'uint32_t',
- [param('ns3::Buffer::Iterator', 'start')],
- is_virtual=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::Mac48Address ns3::WifiMacHeader::GetAddr1() const [member function]
- cls.add_method('GetAddr1',
- 'ns3::Mac48Address',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::Mac48Address ns3::WifiMacHeader::GetAddr2() const [member function]
- cls.add_method('GetAddr2',
- 'ns3::Mac48Address',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::Mac48Address ns3::WifiMacHeader::GetAddr3() const [member function]
- cls.add_method('GetAddr3',
- 'ns3::Mac48Address',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::Mac48Address ns3::WifiMacHeader::GetAddr4() const [member function]
- cls.add_method('GetAddr4',
- 'ns3::Mac48Address',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::Time ns3::WifiMacHeader::GetDuration() const [member function]
- cls.add_method('GetDuration',
- 'ns3::Time',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): uint8_t ns3::WifiMacHeader::GetFragmentNumber() const [member function]
- cls.add_method('GetFragmentNumber',
- 'uint8_t',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::TypeId ns3::WifiMacHeader::GetInstanceTypeId() const [member function]
- cls.add_method('GetInstanceTypeId',
- 'ns3::TypeId',
- [],
- is_const=True, is_virtual=True)
- ## wifi-mac-header.h (module 'wifi'): uint8_t ns3::WifiMacHeader::GetQosTid() const [member function]
- cls.add_method('GetQosTid',
- 'uint8_t',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): uint8_t ns3::WifiMacHeader::GetQosTxopLimit() const [member function]
- cls.add_method('GetQosTxopLimit',
- 'uint8_t',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetSequenceControl() const [member function]
- cls.add_method('GetSequenceControl',
- 'uint16_t',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetSequenceNumber() const [member function]
- cls.add_method('GetSequenceNumber',
- 'uint16_t',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): uint32_t ns3::WifiMacHeader::GetSerializedSize() const [member function]
- cls.add_method('GetSerializedSize',
- 'uint32_t',
- [],
- is_const=True, is_virtual=True)
- ## wifi-mac-header.h (module 'wifi'): uint32_t ns3::WifiMacHeader::GetSize() const [member function]
- cls.add_method('GetSize',
- 'uint32_t',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacType ns3::WifiMacHeader::GetType() const [member function]
- cls.add_method('GetType',
- 'ns3::WifiMacType',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): static ns3::TypeId ns3::WifiMacHeader::GetTypeId() [member function]
- cls.add_method('GetTypeId',
- 'ns3::TypeId',
- [],
- is_static=True)
- ## wifi-mac-header.h (module 'wifi'): char const * ns3::WifiMacHeader::GetTypeString() const [member function]
- cls.add_method('GetTypeString',
- 'char const *',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAck() const [member function]
- cls.add_method('IsAck',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAction() const [member function]
- cls.add_method('IsAction',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAssocReq() const [member function]
- cls.add_method('IsAssocReq',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAssocResp() const [member function]
- cls.add_method('IsAssocResp',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAuthentication() const [member function]
- cls.add_method('IsAuthentication',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsBeacon() const [member function]
- cls.add_method('IsBeacon',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsBlockAck() const [member function]
- cls.add_method('IsBlockAck',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsBlockAckReq() const [member function]
- cls.add_method('IsBlockAckReq',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfpoll() const [member function]
- cls.add_method('IsCfpoll',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCtl() const [member function]
- cls.add_method('IsCtl',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCts() const [member function]
- cls.add_method('IsCts',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsData() const [member function]
- cls.add_method('IsData',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsDeauthentication() const [member function]
- cls.add_method('IsDeauthentication',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsDisassociation() const [member function]
- cls.add_method('IsDisassociation',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsFromDs() const [member function]
- cls.add_method('IsFromDs',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsMgt() const [member function]
- cls.add_method('IsMgt',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsMoreFragments() const [member function]
- cls.add_method('IsMoreFragments',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsMultihopAction() const [member function]
- cls.add_method('IsMultihopAction',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsProbeReq() const [member function]
- cls.add_method('IsProbeReq',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsProbeResp() const [member function]
- cls.add_method('IsProbeResp',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsQosAck() const [member function]
- cls.add_method('IsQosAck',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsQosAmsdu() const [member function]
- cls.add_method('IsQosAmsdu',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsQosBlockAck() const [member function]
- cls.add_method('IsQosBlockAck',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsQosData() const [member function]
- cls.add_method('IsQosData',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsQosEosp() const [member function]
- cls.add_method('IsQosEosp',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsQosNoAck() const [member function]
- cls.add_method('IsQosNoAck',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsReassocReq() const [member function]
- cls.add_method('IsReassocReq',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsReassocResp() const [member function]
- cls.add_method('IsReassocResp',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsRetry() const [member function]
- cls.add_method('IsRetry',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsRts() const [member function]
- cls.add_method('IsRts',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsToDs() const [member function]
- cls.add_method('IsToDs',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::Print(std::ostream & os) const [member function]
- cls.add_method('Print',
- 'void',
- [param('std::ostream &', 'os')],
- is_const=True, is_virtual=True)
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
- cls.add_method('Serialize',
- 'void',
- [param('ns3::Buffer::Iterator', 'start')],
- is_const=True, is_virtual=True)
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetAddr1(ns3::Mac48Address address) [member function]
- cls.add_method('SetAddr1',
- 'void',
- [param('ns3::Mac48Address', 'address')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetAddr2(ns3::Mac48Address address) [member function]
- cls.add_method('SetAddr2',
- 'void',
- [param('ns3::Mac48Address', 'address')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetAddr3(ns3::Mac48Address address) [member function]
- cls.add_method('SetAddr3',
- 'void',
- [param('ns3::Mac48Address', 'address')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetAddr4(ns3::Mac48Address address) [member function]
- cls.add_method('SetAddr4',
- 'void',
- [param('ns3::Mac48Address', 'address')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetDsFrom() [member function]
- cls.add_method('SetDsFrom',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetDsNotFrom() [member function]
- cls.add_method('SetDsNotFrom',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetDsNotTo() [member function]
- cls.add_method('SetDsNotTo',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetDsTo() [member function]
- cls.add_method('SetDsTo',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetDuration(ns3::Time duration) [member function]
- cls.add_method('SetDuration',
- 'void',
- [param('ns3::Time', 'duration')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetFragmentNumber(uint8_t frag) [member function]
- cls.add_method('SetFragmentNumber',
- 'void',
- [param('uint8_t', 'frag')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetId(uint16_t id) [member function]
- cls.add_method('SetId',
- 'void',
- [param('uint16_t', 'id')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetMoreFragments() [member function]
- cls.add_method('SetMoreFragments',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetNoMoreFragments() [member function]
- cls.add_method('SetNoMoreFragments',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetNoOrder() [member function]
- cls.add_method('SetNoOrder',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetNoRetry() [member function]
- cls.add_method('SetNoRetry',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetOrder() [member function]
- cls.add_method('SetOrder',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosAckPolicy(ns3::WifiMacHeader::QosAckPolicy policy) [member function]
- cls.add_method('SetQosAckPolicy',
- 'void',
- [param('ns3::WifiMacHeader::QosAckPolicy', 'policy')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosAmsdu() [member function]
- cls.add_method('SetQosAmsdu',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosEosp() [member function]
- cls.add_method('SetQosEosp',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosMeshControlPresent() [member function]
- cls.add_method('SetQosMeshControlPresent',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosNoAmsdu() [member function]
- cls.add_method('SetQosNoAmsdu',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosNoEosp() [member function]
- cls.add_method('SetQosNoEosp',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosNoMeshControlPresent() [member function]
- cls.add_method('SetQosNoMeshControlPresent',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosTid(uint8_t tid) [member function]
- cls.add_method('SetQosTid',
- 'void',
- [param('uint8_t', 'tid')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosTxopLimit(uint8_t txop) [member function]
- cls.add_method('SetQosTxopLimit',
- 'void',
- [param('uint8_t', 'txop')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRetry() [member function]
- cls.add_method('SetRetry',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetSequenceNumber(uint16_t seq) [member function]
- cls.add_method('SetSequenceNumber',
- 'void',
- [param('uint16_t', 'seq')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type) [member function]
- cls.add_method('SetType',
- 'void',
- [param('ns3::WifiMacType', 'type')])
- return
-
def register_Ns3ZetaRandomVariable_methods(root_module, cls):
## random-variable-stream.h (module 'core'): static ns3::TypeId ns3::ZetaRandomVariable::GetTypeId() [member function]
cls.add_method('GetTypeId',
@@ -5498,11 +5128,6 @@
cls.add_method('GetCppTypeid',
'std::string',
[],
- is_static=True, visibility='protected', template_parameters=[u'ns3::WifiMacHeader const&'])
- ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function]
- cls.add_method('GetCppTypeid',
- 'std::string',
- [],
is_static=True, visibility='protected', template_parameters=[u'ns3::Ipv4Address'])
## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function]
cls.add_method('GetCppTypeid',
@@ -5640,10 +5265,10 @@
is_static=True)
## random-variable-stream.h (module 'core'): ns3::DeterministicRandomVariable::DeterministicRandomVariable() [constructor]
cls.add_constructor([])
- ## random-variable-stream.h (module 'core'): void ns3::DeterministicRandomVariable::SetValueArray(double * values, uint64_t length) [member function]
+ ## random-variable-stream.h (module 'core'): void ns3::DeterministicRandomVariable::SetValueArray(double * values, std::size_t length) [member function]
cls.add_method('SetValueArray',
'void',
- [param('double *', 'values'), param('uint64_t', 'length')])
+ [param('double *', 'values'), param('std::size_t', 'length')])
## random-variable-stream.h (module 'core'): double ns3::DeterministicRandomVariable::GetValue() [member function]
cls.add_method('GetValue',
'double',
@@ -8043,15 +7668,15 @@
cls.add_constructor([param('ns3::Hash::Implementation const &', 'arg0')])
## hash-function.h (module 'core'): ns3::Hash::Implementation::Implementation() [constructor]
cls.add_constructor([])
- ## hash-function.h (module 'core'): uint32_t ns3::Hash::Implementation::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Implementation::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_pure_virtual=True, is_virtual=True)
- ## hash-function.h (module 'core'): uint64_t ns3::Hash::Implementation::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint64_t ns3::Hash::Implementation::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-function.h (module 'core'): void ns3::Hash::Implementation::clear() [member function]
cls.add_method('clear',
@@ -8087,10 +7712,10 @@
cls.add_constructor([param('ns3::Hash::Function::Hash32 const &', 'arg0')])
## hash-function.h (module 'core'): ns3::Hash::Function::Hash32::Hash32(ns3::Hash::Hash32Function_ptr hp) [constructor]
cls.add_constructor([param('ns3::Hash::Hash32Function_ptr', 'hp')])
- ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash32::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash32::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-function.h (module 'core'): void ns3::Hash::Function::Hash32::clear() [member function]
cls.add_method('clear',
@@ -8104,15 +7729,15 @@
cls.add_constructor([param('ns3::Hash::Function::Hash64 const &', 'arg0')])
## hash-function.h (module 'core'): ns3::Hash::Function::Hash64::Hash64(ns3::Hash::Hash64Function_ptr hp) [constructor]
cls.add_constructor([param('ns3::Hash::Hash64Function_ptr', 'hp')])
- ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash64::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash64::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
- ## hash-function.h (module 'core'): uint64_t ns3::Hash::Function::Hash64::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint64_t ns3::Hash::Function::Hash64::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-function.h (module 'core'): void ns3::Hash::Function::Hash64::clear() [member function]
cls.add_method('clear',
@@ -8126,15 +7751,15 @@
cls.add_constructor([param('ns3::Hash::Function::Murmur3 const &', 'arg0')])
## hash-murmur3.h (module 'core'): ns3::Hash::Function::Murmur3::Murmur3() [constructor]
cls.add_constructor([])
- ## hash-murmur3.h (module 'core'): uint32_t ns3::Hash::Function::Murmur3::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-murmur3.h (module 'core'): uint32_t ns3::Hash::Function::Murmur3::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
- ## hash-murmur3.h (module 'core'): uint64_t ns3::Hash::Function::Murmur3::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash-murmur3.h (module 'core'): uint64_t ns3::Hash::Function::Murmur3::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-murmur3.h (module 'core'): void ns3::Hash::Function::Murmur3::clear() [member function]
cls.add_method('clear',
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/aodv/bindings/modulegen__gcc_LP64.py ns-3.29/src/aodv/bindings/modulegen__gcc_LP64.py
--- ns-3.28.1/src/aodv/bindings/modulegen__gcc_LP64.py 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/aodv/bindings/modulegen__gcc_LP64.py 2018-09-04 16:02:39.000000000 -0700
@@ -20,8 +20,6 @@
def register_types(module):
root_module = module.get_root()
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacType [enumeration]
- module.add_enum('WifiMacType', ['WIFI_MAC_CTL_CTLWRAPPER', 'WIFI_MAC_CTL_RTS', 'WIFI_MAC_CTL_CTS', 'WIFI_MAC_CTL_ACK', 'WIFI_MAC_CTL_BACKREQ', 'WIFI_MAC_CTL_BACKRESP', 'WIFI_MAC_MGT_BEACON', 'WIFI_MAC_MGT_ASSOCIATION_REQUEST', 'WIFI_MAC_MGT_ASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_DISASSOCIATION', 'WIFI_MAC_MGT_REASSOCIATION_REQUEST', 'WIFI_MAC_MGT_REASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_PROBE_REQUEST', 'WIFI_MAC_MGT_PROBE_RESPONSE', 'WIFI_MAC_MGT_AUTHENTICATION', 'WIFI_MAC_MGT_DEAUTHENTICATION', 'WIFI_MAC_MGT_ACTION', 'WIFI_MAC_MGT_ACTION_NO_ACK', 'WIFI_MAC_MGT_MULTIHOP_ACTION', 'WIFI_MAC_DATA', 'WIFI_MAC_DATA_CFACK', 'WIFI_MAC_DATA_CFPOLL', 'WIFI_MAC_DATA_CFACK_CFPOLL', 'WIFI_MAC_DATA_NULL', 'WIFI_MAC_DATA_NULL_CFACK', 'WIFI_MAC_DATA_NULL_CFPOLL', 'WIFI_MAC_DATA_NULL_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA', 'WIFI_MAC_QOSDATA_CFACK', 'WIFI_MAC_QOSDATA_CFPOLL', 'WIFI_MAC_QOSDATA_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA_NULL', 'WIFI_MAC_QOSDATA_NULL_CFPOLL', 'WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL'], import_from_module='ns.wifi')
## address.h (module 'network'): ns3::Address [class]
module.add_class('Address', import_from_module='ns.network')
## address.h (module 'network'): ns3::Address::MaxSize_e [enumeration]
@@ -274,6 +272,9 @@
module.add_class('Time', import_from_module='ns.core')
## nstime.h (module 'core'): ns3::Time::Unit [enumeration]
module.add_enum('Unit', ['Y', 'D', 'H', 'MIN', 'S', 'MS', 'US', 'NS', 'PS', 'FS', 'LAST'], outer_class=root_module['ns3::Time'], import_from_module='ns.core')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )', u'ns3::Time::TracedCallback')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )*', u'ns3::Time::TracedCallback*')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )&', u'ns3::Time::TracedCallback&')
## nstime.h (module 'core'): ns3::Time [class]
root_module['ns3::Time'].implicitly_converts_to(root_module['ns3::int64x64_t'])
## trace-source-accessor.h (module 'core'): ns3::TraceSourceAccessor [class]
@@ -286,15 +287,6 @@
module.add_class('UniformRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream'])
## random-variable-stream.h (module 'core'): ns3::WeibullRandomVariable [class]
module.add_class('WeibullRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream'])
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacHeader [class]
- module.add_class('WifiMacHeader', import_from_module='ns.wifi', parent=root_module['ns3::Header'])
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacHeader::QosAckPolicy [enumeration]
- module.add_enum('QosAckPolicy', ['NORMAL_ACK', 'NO_ACK', 'NO_EXPLICIT_ACK', 'BLOCK_ACK'], outer_class=root_module['ns3::WifiMacHeader'], import_from_module='ns.wifi')
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacHeader::AddressType [enumeration]
- module.add_enum('AddressType', ['ADDR1', 'ADDR2', 'ADDR3', 'ADDR4'], outer_class=root_module['ns3::WifiMacHeader'], import_from_module='ns.wifi')
- typehandlers.add_type_alias(u'void ( * ) ( ns3::WifiMacHeader const & )', u'ns3::WifiMacHeader::TracedCallback')
- typehandlers.add_type_alias(u'void ( * ) ( ns3::WifiMacHeader const & )*', u'ns3::WifiMacHeader::TracedCallback*')
- typehandlers.add_type_alias(u'void ( * ) ( ns3::WifiMacHeader const & )&', u'ns3::WifiMacHeader::TracedCallback&')
## random-variable-stream.h (module 'core'): ns3::ZetaRandomVariable [class]
module.add_class('ZetaRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream'])
## random-variable-stream.h (module 'core'): ns3::ZipfRandomVariable [class]
@@ -438,6 +430,9 @@
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )', u'ns3::Packet::AddressTracedCallback')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )*', u'ns3::Packet::AddressTracedCallback*')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )&', u'ns3::Packet::AddressTracedCallback&')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )', u'ns3::Packet::TwoAddressTracedCallback')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )*', u'ns3::Packet::TwoAddressTracedCallback*')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )&', u'ns3::Packet::TwoAddressTracedCallback&')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )', u'ns3::Packet::Mac48AddressTracedCallback')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )*', u'ns3::Packet::Mac48AddressTracedCallback*')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )&', u'ns3::Packet::Mac48AddressTracedCallback&')
@@ -529,12 +524,12 @@
## hash-function.h (module 'core'): ns3::Hash::Implementation [class]
module.add_class('Implementation', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter >'])
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )', u'ns3::Hash::Hash32Function_ptr')
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )*', u'ns3::Hash::Hash32Function_ptr*')
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )&', u'ns3::Hash::Hash32Function_ptr&')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )', u'ns3::Hash::Hash64Function_ptr')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )*', u'ns3::Hash::Hash64Function_ptr*')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )&', u'ns3::Hash::Hash64Function_ptr&')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash32Function_ptr')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash32Function_ptr*')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash32Function_ptr&')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash64Function_ptr')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash64Function_ptr*')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash64Function_ptr&')
## Register a nested module for the namespace Function
@@ -702,7 +697,6 @@
register_Ns3TriangularRandomVariable_methods(root_module, root_module['ns3::TriangularRandomVariable'])
register_Ns3UniformRandomVariable_methods(root_module, root_module['ns3::UniformRandomVariable'])
register_Ns3WeibullRandomVariable_methods(root_module, root_module['ns3::WeibullRandomVariable'])
- register_Ns3WifiMacHeader_methods(root_module, root_module['ns3::WifiMacHeader'])
register_Ns3ZetaRandomVariable_methods(root_module, root_module['ns3::ZetaRandomVariable'])
register_Ns3ZipfRandomVariable_methods(root_module, root_module['ns3::ZipfRandomVariable'])
register_Ns3ArpCache_methods(root_module, root_module['ns3::ArpCache'])
@@ -1441,18 +1435,18 @@
cls.add_constructor([])
## hash.h (module 'core'): ns3::Hasher::Hasher(ns3::Ptr hp) [constructor]
cls.add_constructor([param('ns3::Ptr< ns3::Hash::Implementation >', 'hp')])
- ## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')])
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')])
## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(std::string const s) [member function]
cls.add_method('GetHash32',
'uint32_t',
[param('std::string const', 's')])
- ## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')])
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')])
## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(std::string const s) [member function]
cls.add_method('GetHash64',
'uint64_t',
@@ -2321,6 +2315,11 @@
'ns3::NodeContainer::Iterator',
[],
is_const=True)
+ ## node-container.h (module 'network'): bool ns3::NodeContainer::Contains(uint32_t id) const [member function]
+ cls.add_method('Contains',
+ 'bool',
+ [param('uint32_t', 'id')],
+ is_const=True)
## node-container.h (module 'network'): void ns3::NodeContainer::Create(uint32_t n) [member function]
cls.add_method('Create',
'void',
@@ -2957,19 +2956,19 @@
cls.add_method('AddTraceSource',
'ns3::TypeId',
[param('std::string', 'name'), param('std::string', 'help'), param('ns3::Ptr< ns3::TraceSourceAccessor const >', 'accessor'), param('std::string', 'callback'), param('ns3::TypeId::SupportLevel', 'supportLevel', default_value='::ns3::TypeId::SupportLevel::SUPPORTED'), param('std::string const &', 'supportMsg', default_value='""')])
- ## type-id.h (module 'core'): ns3::TypeId::AttributeInformation ns3::TypeId::GetAttribute(uint32_t i) const [member function]
+ ## type-id.h (module 'core'): ns3::TypeId::AttributeInformation ns3::TypeId::GetAttribute(std::size_t i) const [member function]
cls.add_method('GetAttribute',
'ns3::TypeId::AttributeInformation',
- [param('uint32_t', 'i')],
+ [param('std::size_t', 'i')],
is_const=True)
- ## type-id.h (module 'core'): std::string ns3::TypeId::GetAttributeFullName(uint32_t i) const [member function]
+ ## type-id.h (module 'core'): std::string ns3::TypeId::GetAttributeFullName(std::size_t i) const [member function]
cls.add_method('GetAttributeFullName',
'std::string',
- [param('uint32_t', 'i')],
+ [param('std::size_t', 'i')],
is_const=True)
- ## type-id.h (module 'core'): uint32_t ns3::TypeId::GetAttributeN() const [member function]
+ ## type-id.h (module 'core'): std::size_t ns3::TypeId::GetAttributeN() const [member function]
cls.add_method('GetAttributeN',
- 'uint32_t',
+ 'std::size_t',
[],
is_const=True)
## type-id.h (module 'core'): ns3::Callback ns3::TypeId::GetConstructor() const [member function]
@@ -2997,14 +2996,14 @@
'ns3::TypeId',
[],
is_const=True)
- ## type-id.h (module 'core'): static ns3::TypeId ns3::TypeId::GetRegistered(uint32_t i) [member function]
+ ## type-id.h (module 'core'): static ns3::TypeId ns3::TypeId::GetRegistered(uint16_t i) [member function]
cls.add_method('GetRegistered',
'ns3::TypeId',
- [param('uint32_t', 'i')],
+ [param('uint16_t', 'i')],
is_static=True)
- ## type-id.h (module 'core'): static uint32_t ns3::TypeId::GetRegisteredN() [member function]
+ ## type-id.h (module 'core'): static uint16_t ns3::TypeId::GetRegisteredN() [member function]
cls.add_method('GetRegisteredN',
- 'uint32_t',
+ 'uint16_t',
[],
is_static=True)
## type-id.h (module 'core'): std::size_t ns3::TypeId::GetSize() const [member function]
@@ -3012,14 +3011,14 @@
'std::size_t',
[],
is_const=True)
- ## type-id.h (module 'core'): ns3::TypeId::TraceSourceInformation ns3::TypeId::GetTraceSource(uint32_t i) const [member function]
+ ## type-id.h (module 'core'): ns3::TypeId::TraceSourceInformation ns3::TypeId::GetTraceSource(std::size_t i) const [member function]
cls.add_method('GetTraceSource',
'ns3::TypeId::TraceSourceInformation',
- [param('uint32_t', 'i')],
+ [param('std::size_t', 'i')],
is_const=True)
- ## type-id.h (module 'core'): uint32_t ns3::TypeId::GetTraceSourceN() const [member function]
+ ## type-id.h (module 'core'): std::size_t ns3::TypeId::GetTraceSourceN() const [member function]
cls.add_method('GetTraceSourceN',
- 'uint32_t',
+ 'std::size_t',
[],
is_const=True)
## type-id.h (module 'core'): uint16_t ns3::TypeId::GetUid() const [member function]
@@ -3081,10 +3080,10 @@
'bool',
[],
is_const=True)
- ## type-id.h (module 'core'): bool ns3::TypeId::SetAttributeInitialValue(uint32_t i, ns3::Ptr initialValue) [member function]
+ ## type-id.h (module 'core'): bool ns3::TypeId::SetAttributeInitialValue(std::size_t i, ns3::Ptr initialValue) [member function]
cls.add_method('SetAttributeInitialValue',
'bool',
- [param('uint32_t', 'i'), param('ns3::Ptr< ns3::AttributeValue const >', 'initialValue')])
+ [param('std::size_t', 'i'), param('ns3::Ptr< ns3::AttributeValue const >', 'initialValue')])
## type-id.h (module 'core'): ns3::TypeId ns3::TypeId::SetGroupName(std::string groupName) [member function]
cls.add_method('SetGroupName',
'ns3::TypeId',
@@ -4742,375 +4741,6 @@
is_virtual=True)
return
-def register_Ns3WifiMacHeader_methods(root_module, cls):
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacHeader::WifiMacHeader(ns3::WifiMacHeader const & arg0) [constructor]
- cls.add_constructor([param('ns3::WifiMacHeader const &', 'arg0')])
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacHeader::WifiMacHeader() [constructor]
- cls.add_constructor([])
- ## wifi-mac-header.h (module 'wifi'): uint32_t ns3::WifiMacHeader::Deserialize(ns3::Buffer::Iterator start) [member function]
- cls.add_method('Deserialize',
- 'uint32_t',
- [param('ns3::Buffer::Iterator', 'start')],
- is_virtual=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::Mac48Address ns3::WifiMacHeader::GetAddr1() const [member function]
- cls.add_method('GetAddr1',
- 'ns3::Mac48Address',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::Mac48Address ns3::WifiMacHeader::GetAddr2() const [member function]
- cls.add_method('GetAddr2',
- 'ns3::Mac48Address',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::Mac48Address ns3::WifiMacHeader::GetAddr3() const [member function]
- cls.add_method('GetAddr3',
- 'ns3::Mac48Address',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::Mac48Address ns3::WifiMacHeader::GetAddr4() const [member function]
- cls.add_method('GetAddr4',
- 'ns3::Mac48Address',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::Time ns3::WifiMacHeader::GetDuration() const [member function]
- cls.add_method('GetDuration',
- 'ns3::Time',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): uint8_t ns3::WifiMacHeader::GetFragmentNumber() const [member function]
- cls.add_method('GetFragmentNumber',
- 'uint8_t',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::TypeId ns3::WifiMacHeader::GetInstanceTypeId() const [member function]
- cls.add_method('GetInstanceTypeId',
- 'ns3::TypeId',
- [],
- is_const=True, is_virtual=True)
- ## wifi-mac-header.h (module 'wifi'): uint8_t ns3::WifiMacHeader::GetQosTid() const [member function]
- cls.add_method('GetQosTid',
- 'uint8_t',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): uint8_t ns3::WifiMacHeader::GetQosTxopLimit() const [member function]
- cls.add_method('GetQosTxopLimit',
- 'uint8_t',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetSequenceControl() const [member function]
- cls.add_method('GetSequenceControl',
- 'uint16_t',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetSequenceNumber() const [member function]
- cls.add_method('GetSequenceNumber',
- 'uint16_t',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): uint32_t ns3::WifiMacHeader::GetSerializedSize() const [member function]
- cls.add_method('GetSerializedSize',
- 'uint32_t',
- [],
- is_const=True, is_virtual=True)
- ## wifi-mac-header.h (module 'wifi'): uint32_t ns3::WifiMacHeader::GetSize() const [member function]
- cls.add_method('GetSize',
- 'uint32_t',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacType ns3::WifiMacHeader::GetType() const [member function]
- cls.add_method('GetType',
- 'ns3::WifiMacType',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): static ns3::TypeId ns3::WifiMacHeader::GetTypeId() [member function]
- cls.add_method('GetTypeId',
- 'ns3::TypeId',
- [],
- is_static=True)
- ## wifi-mac-header.h (module 'wifi'): char const * ns3::WifiMacHeader::GetTypeString() const [member function]
- cls.add_method('GetTypeString',
- 'char const *',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAck() const [member function]
- cls.add_method('IsAck',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAction() const [member function]
- cls.add_method('IsAction',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAssocReq() const [member function]
- cls.add_method('IsAssocReq',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAssocResp() const [member function]
- cls.add_method('IsAssocResp',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAuthentication() const [member function]
- cls.add_method('IsAuthentication',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsBeacon() const [member function]
- cls.add_method('IsBeacon',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsBlockAck() const [member function]
- cls.add_method('IsBlockAck',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsBlockAckReq() const [member function]
- cls.add_method('IsBlockAckReq',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfpoll() const [member function]
- cls.add_method('IsCfpoll',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCtl() const [member function]
- cls.add_method('IsCtl',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCts() const [member function]
- cls.add_method('IsCts',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsData() const [member function]
- cls.add_method('IsData',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsDeauthentication() const [member function]
- cls.add_method('IsDeauthentication',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsDisassociation() const [member function]
- cls.add_method('IsDisassociation',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsFromDs() const [member function]
- cls.add_method('IsFromDs',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsMgt() const [member function]
- cls.add_method('IsMgt',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsMoreFragments() const [member function]
- cls.add_method('IsMoreFragments',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsMultihopAction() const [member function]
- cls.add_method('IsMultihopAction',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsProbeReq() const [member function]
- cls.add_method('IsProbeReq',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsProbeResp() const [member function]
- cls.add_method('IsProbeResp',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsQosAck() const [member function]
- cls.add_method('IsQosAck',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsQosAmsdu() const [member function]
- cls.add_method('IsQosAmsdu',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsQosBlockAck() const [member function]
- cls.add_method('IsQosBlockAck',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsQosData() const [member function]
- cls.add_method('IsQosData',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsQosEosp() const [member function]
- cls.add_method('IsQosEosp',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsQosNoAck() const [member function]
- cls.add_method('IsQosNoAck',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsReassocReq() const [member function]
- cls.add_method('IsReassocReq',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsReassocResp() const [member function]
- cls.add_method('IsReassocResp',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsRetry() const [member function]
- cls.add_method('IsRetry',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsRts() const [member function]
- cls.add_method('IsRts',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsToDs() const [member function]
- cls.add_method('IsToDs',
- 'bool',
- [],
- is_const=True)
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::Print(std::ostream & os) const [member function]
- cls.add_method('Print',
- 'void',
- [param('std::ostream &', 'os')],
- is_const=True, is_virtual=True)
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::Serialize(ns3::Buffer::Iterator start) const [member function]
- cls.add_method('Serialize',
- 'void',
- [param('ns3::Buffer::Iterator', 'start')],
- is_const=True, is_virtual=True)
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetAddr1(ns3::Mac48Address address) [member function]
- cls.add_method('SetAddr1',
- 'void',
- [param('ns3::Mac48Address', 'address')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetAddr2(ns3::Mac48Address address) [member function]
- cls.add_method('SetAddr2',
- 'void',
- [param('ns3::Mac48Address', 'address')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetAddr3(ns3::Mac48Address address) [member function]
- cls.add_method('SetAddr3',
- 'void',
- [param('ns3::Mac48Address', 'address')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetAddr4(ns3::Mac48Address address) [member function]
- cls.add_method('SetAddr4',
- 'void',
- [param('ns3::Mac48Address', 'address')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetDsFrom() [member function]
- cls.add_method('SetDsFrom',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetDsNotFrom() [member function]
- cls.add_method('SetDsNotFrom',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetDsNotTo() [member function]
- cls.add_method('SetDsNotTo',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetDsTo() [member function]
- cls.add_method('SetDsTo',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetDuration(ns3::Time duration) [member function]
- cls.add_method('SetDuration',
- 'void',
- [param('ns3::Time', 'duration')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetFragmentNumber(uint8_t frag) [member function]
- cls.add_method('SetFragmentNumber',
- 'void',
- [param('uint8_t', 'frag')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetId(uint16_t id) [member function]
- cls.add_method('SetId',
- 'void',
- [param('uint16_t', 'id')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetMoreFragments() [member function]
- cls.add_method('SetMoreFragments',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetNoMoreFragments() [member function]
- cls.add_method('SetNoMoreFragments',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetNoOrder() [member function]
- cls.add_method('SetNoOrder',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetNoRetry() [member function]
- cls.add_method('SetNoRetry',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetOrder() [member function]
- cls.add_method('SetOrder',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosAckPolicy(ns3::WifiMacHeader::QosAckPolicy policy) [member function]
- cls.add_method('SetQosAckPolicy',
- 'void',
- [param('ns3::WifiMacHeader::QosAckPolicy', 'policy')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosAmsdu() [member function]
- cls.add_method('SetQosAmsdu',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosEosp() [member function]
- cls.add_method('SetQosEosp',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosMeshControlPresent() [member function]
- cls.add_method('SetQosMeshControlPresent',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosNoAmsdu() [member function]
- cls.add_method('SetQosNoAmsdu',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosNoEosp() [member function]
- cls.add_method('SetQosNoEosp',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosNoMeshControlPresent() [member function]
- cls.add_method('SetQosNoMeshControlPresent',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosTid(uint8_t tid) [member function]
- cls.add_method('SetQosTid',
- 'void',
- [param('uint8_t', 'tid')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetQosTxopLimit(uint8_t txop) [member function]
- cls.add_method('SetQosTxopLimit',
- 'void',
- [param('uint8_t', 'txop')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRetry() [member function]
- cls.add_method('SetRetry',
- 'void',
- [])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetSequenceNumber(uint16_t seq) [member function]
- cls.add_method('SetSequenceNumber',
- 'void',
- [param('uint16_t', 'seq')])
- ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type) [member function]
- cls.add_method('SetType',
- 'void',
- [param('ns3::WifiMacType', 'type')])
- return
-
def register_Ns3ZetaRandomVariable_methods(root_module, cls):
## random-variable-stream.h (module 'core'): static ns3::TypeId ns3::ZetaRandomVariable::GetTypeId() [member function]
cls.add_method('GetTypeId',
@@ -5498,11 +5128,6 @@
cls.add_method('GetCppTypeid',
'std::string',
[],
- is_static=True, visibility='protected', template_parameters=[u'ns3::WifiMacHeader const&'])
- ## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function]
- cls.add_method('GetCppTypeid',
- 'std::string',
- [],
is_static=True, visibility='protected', template_parameters=[u'ns3::Ipv4Address'])
## callback.h (module 'core'): static std::string ns3::CallbackImplBase::GetCppTypeid() [member function]
cls.add_method('GetCppTypeid',
@@ -5640,10 +5265,10 @@
is_static=True)
## random-variable-stream.h (module 'core'): ns3::DeterministicRandomVariable::DeterministicRandomVariable() [constructor]
cls.add_constructor([])
- ## random-variable-stream.h (module 'core'): void ns3::DeterministicRandomVariable::SetValueArray(double * values, uint64_t length) [member function]
+ ## random-variable-stream.h (module 'core'): void ns3::DeterministicRandomVariable::SetValueArray(double * values, std::size_t length) [member function]
cls.add_method('SetValueArray',
'void',
- [param('double *', 'values'), param('uint64_t', 'length')])
+ [param('double *', 'values'), param('std::size_t', 'length')])
## random-variable-stream.h (module 'core'): double ns3::DeterministicRandomVariable::GetValue() [member function]
cls.add_method('GetValue',
'double',
@@ -8043,15 +7668,15 @@
cls.add_constructor([param('ns3::Hash::Implementation const &', 'arg0')])
## hash-function.h (module 'core'): ns3::Hash::Implementation::Implementation() [constructor]
cls.add_constructor([])
- ## hash-function.h (module 'core'): uint32_t ns3::Hash::Implementation::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Implementation::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_pure_virtual=True, is_virtual=True)
- ## hash-function.h (module 'core'): uint64_t ns3::Hash::Implementation::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint64_t ns3::Hash::Implementation::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-function.h (module 'core'): void ns3::Hash::Implementation::clear() [member function]
cls.add_method('clear',
@@ -8087,10 +7712,10 @@
cls.add_constructor([param('ns3::Hash::Function::Hash32 const &', 'arg0')])
## hash-function.h (module 'core'): ns3::Hash::Function::Hash32::Hash32(ns3::Hash::Hash32Function_ptr hp) [constructor]
cls.add_constructor([param('ns3::Hash::Hash32Function_ptr', 'hp')])
- ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash32::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash32::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-function.h (module 'core'): void ns3::Hash::Function::Hash32::clear() [member function]
cls.add_method('clear',
@@ -8104,15 +7729,15 @@
cls.add_constructor([param('ns3::Hash::Function::Hash64 const &', 'arg0')])
## hash-function.h (module 'core'): ns3::Hash::Function::Hash64::Hash64(ns3::Hash::Hash64Function_ptr hp) [constructor]
cls.add_constructor([param('ns3::Hash::Hash64Function_ptr', 'hp')])
- ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash64::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash64::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
- ## hash-function.h (module 'core'): uint64_t ns3::Hash::Function::Hash64::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash-function.h (module 'core'): uint64_t ns3::Hash::Function::Hash64::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-function.h (module 'core'): void ns3::Hash::Function::Hash64::clear() [member function]
cls.add_method('clear',
@@ -8126,15 +7751,15 @@
cls.add_constructor([param('ns3::Hash::Function::Murmur3 const &', 'arg0')])
## hash-murmur3.h (module 'core'): ns3::Hash::Function::Murmur3::Murmur3() [constructor]
cls.add_constructor([])
- ## hash-murmur3.h (module 'core'): uint32_t ns3::Hash::Function::Murmur3::GetHash32(char const * buffer, size_t const size) [member function]
+ ## hash-murmur3.h (module 'core'): uint32_t ns3::Hash::Function::Murmur3::GetHash32(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash32',
'uint32_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
- ## hash-murmur3.h (module 'core'): uint64_t ns3::Hash::Function::Murmur3::GetHash64(char const * buffer, size_t const size) [member function]
+ ## hash-murmur3.h (module 'core'): uint64_t ns3::Hash::Function::Murmur3::GetHash64(char const * buffer, std::size_t const size) [member function]
cls.add_method('GetHash64',
'uint64_t',
- [param('char const *', 'buffer'), param('size_t const', 'size')],
+ [param('char const *', 'buffer'), param('std::size_t const', 'size')],
is_virtual=True)
## hash-murmur3.h (module 'core'): void ns3::Hash::Function::Murmur3::clear() [member function]
cls.add_method('clear',
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/aodv/examples/aodv.cc ns-3.29/src/aodv/examples/aodv.cc
--- ns-3.28.1/src/aodv/examples/aodv.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/aodv/examples/aodv.cc 2018-09-04 16:02:39.000000000 -0700
@@ -20,16 +20,16 @@
* Authors: Pavel Boyko
*/
+#include
+#include
#include "ns3/aodv-module.h"
#include "ns3/core-module.h"
#include "ns3/network-module.h"
#include "ns3/internet-module.h"
#include "ns3/mobility-module.h"
#include "ns3/point-to-point-module.h"
-#include "ns3/wifi-module.h"
#include "ns3/v4ping-helper.h"
-#include
-#include
+#include "ns3/yans-wifi-helper.h"
using namespace ns3;
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/aodv/model/aodv-neighbor.cc ns-3.29/src/aodv/model/aodv-neighbor.cc
--- ns-3.28.1/src/aodv/model/aodv-neighbor.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/aodv/model/aodv-neighbor.cc 2018-09-04 16:02:39.000000000 -0700
@@ -26,10 +26,10 @@
* Pavel Boyko
*/
-#include "aodv-neighbor.h"
-#include "ns3/log.h"
#include
-
+#include "ns3/log.h"
+#include "ns3/wifi-mac-header.h"
+#include "aodv-neighbor.h"
namespace ns3 {
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/aodv/model/aodv-neighbor.h ns-3.29/src/aodv/model/aodv-neighbor.h
--- ns-3.28.1/src/aodv/model/aodv-neighbor.h 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/aodv/model/aodv-neighbor.h 2018-09-04 16:02:39.000000000 -0700
@@ -29,17 +29,21 @@
#ifndef AODVNEIGHBOR_H
#define AODVNEIGHBOR_H
+#include
#include "ns3/simulator.h"
#include "ns3/timer.h"
#include "ns3/ipv4-address.h"
#include "ns3/callback.h"
-#include "ns3/wifi-mac-header.h"
#include "ns3/arp-cache.h"
-#include
namespace ns3 {
+
+class WifiMacHeader;
+
namespace aodv {
+
class RoutingProtocol;
+
/**
* \ingroup aodv
* \brief maintain list of active neighbors
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/aodv/model/aodv-packet.h ns-3.29/src/aodv/model/aodv-packet.h
--- ns-3.28.1/src/aodv/model/aodv-packet.h 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/aodv/model/aodv-packet.h 2018-09-04 16:02:39.000000000 -0700
@@ -270,7 +270,7 @@
bool GetGratuitousRrep () const;
/**
* \brief Set the Destination only flag
- * \param f the Destiantion only flag
+ * \param f the Destination only flag
*/
void SetDestinationOnly (bool f);
/**
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/aodv/model/aodv-routing-protocol.cc ns-3.29/src/aodv/model/aodv-routing-protocol.cc
--- ns-3.28.1/src/aodv/model/aodv-routing-protocol.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/aodv/model/aodv-routing-protocol.cc 2018-09-04 16:02:39.000000000 -0700
@@ -1100,8 +1100,10 @@
}
else
{
- // Binary exponential backoff
- retry = std::pow (2, rt.GetRreqCnt () - 1) * m_netTraversalTime;
+ NS_ABORT_MSG_UNLESS (rt.GetRreqCnt () > 0, "Unexpected value for GetRreqCount ()");
+ uint16_t backoffFactor = rt.GetRreqCnt () - 1;
+ NS_LOG_LOGIC ("Applying binary exponential backoff factor " << backoffFactor);
+ retry = m_netTraversalTime * (1 << backoffFactor);
}
m_addressReqTimer[dst].Schedule (retry);
NS_LOG_LOGIC ("Scheduled RREQ retry in " << retry.GetSeconds () << " seconds");
@@ -1339,7 +1341,7 @@
if (m_routingTable.LookupRoute (dst, toDst))
{
/*
- * Drop RREQ, This node RREP wil make a loop.
+ * Drop RREQ, This node RREP will make a loop.
*/
if (toDst.GetNextHop () == src)
{
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/aodv/model/aodv-rqueue.h ns-3.29/src/aodv/model/aodv-rqueue.h
--- ns-3.28.1/src/aodv/model/aodv-rqueue.h 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/aodv/model/aodv-rqueue.h 2018-09-04 16:02:39.000000000 -0700
@@ -275,7 +275,7 @@
* Determine if queue matches a destination address
* \param en The queue entry
* \param dst The destination IPv4 address
- * \returns true if the queue entry matches the desination address
+ * \returns true if the queue entry matches the destination address
*/
static bool IsEqual (QueueEntry en, const Ipv4Address dst)
{
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/aodv/test/bug-772.cc ns-3.29/src/aodv/test/bug-772.cc
--- ns-3.28.1/src/aodv/test/bug-772.cc 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/aodv/test/bug-772.cc 2018-09-04 16:02:39.000000000 -0700
@@ -135,7 +135,7 @@
wifiPhy.Set ("TxGain", DoubleValue (1.0)); //this configuration should go away in future revision to the test
wifiPhy.Set ("RxGain", DoubleValue (1.0)); //this configuration should go away in future revision to the test
WifiHelper wifi;
- wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager", "DataMode", StringValue ("OfdmRate6Mbps"), "RtsCtsThreshold", StringValue ("2200"));
+ wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager", "DataMode", StringValue ("OfdmRate6Mbps"), "RtsCtsThreshold", StringValue ("2200"), "MaxSlrc", UintegerValue (7));
NetDeviceContainer devices = wifi.Install (wifiPhy, wifiMac, *m_nodes);
// Assign fixed stream numbers to wifi and channel random variables
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/applications/bindings/callbacks_list.py ns-3.29/src/applications/bindings/callbacks_list.py
--- ns-3.28.1/src/applications/bindings/callbacks_list.py 2018-08-16 19:56:20.000000000 -0700
+++ ns-3.29/src/applications/bindings/callbacks_list.py 2018-09-04 16:02:39.000000000 -0700
@@ -14,5 +14,12 @@
['bool', 'ns3::Ptr', 'const ns3::Address &', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
['void', 'ns3::Ptr', 'const ns3::Address &', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
['void', 'ns3::Ptr', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+ ['void', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
['void', 'std::basic_string', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+ ['void', 'ns3::Ptr', 'const ns3::Address &', 'const ns3::Address &', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+ ['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+ ['void', 'ns3::Ptr', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+ ['void', 'const ns3::Time &', 'const ns3::Address &', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+ ['void', 'const std::basic_string &', 'const std::basic_string &', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+ ['void', 'ns3::Ptr', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
]
diff -Naur -x '*.dia' -x '*.pcap' ns-3.28.1/src/applications/bindings/modulegen__gcc_ILP32.py ns-3.29/src/applications/bindings/modulegen__gcc_ILP32.py
--- ns-3.28.1/src/applications/bindings/modulegen__gcc_ILP32.py 2018-08-16 19:56:19.000000000 -0700
+++ ns-3.29/src/applications/bindings/modulegen__gcc_ILP32.py 2018-09-04 16:02:39.000000000 -0700
@@ -105,6 +105,8 @@
module.add_class('DefaultDeleter', import_from_module='ns.core', template_parameters=['ns3::PbbTlv'])
## default-deleter.h (module 'core'): ns3::DefaultDeleter [struct]
module.add_class('DefaultDeleter', import_from_module='ns.core', template_parameters=['ns3::QueueItem'])
+ ## default-deleter.h (module 'core'): ns3::DefaultDeleter [struct]
+ module.add_class('DefaultDeleter', template_parameters=['ns3::ThreeGppHttpServerTxBuffer'])
## default-deleter.h (module 'core'): ns3::DefaultDeleter [struct]
module.add_class('DefaultDeleter', import_from_module='ns.core', template_parameters=['ns3::TraceSourceAccessor'])
## delay-jitter-estimation.h (module 'network'): ns3::DelayJitterEstimation [class]
@@ -252,6 +254,10 @@
module.add_class('Tag', import_from_module='ns.network', parent=root_module['ns3::ObjectBase'])
## tag-buffer.h (module 'network'): ns3::TagBuffer [class]
module.add_class('TagBuffer', import_from_module='ns.network')
+ ## three-gpp-http-helper.h (module 'applications'): ns3::ThreeGppHttpClientHelper [class]
+ module.add_class('ThreeGppHttpClientHelper')
+ ## three-gpp-http-helper.h (module 'applications'): ns3::ThreeGppHttpServerHelper [class]
+ module.add_class('ThreeGppHttpServerHelper')
## nstime.h (module 'core'): ns3::TimeWithUnit [class]
module.add_class('TimeWithUnit', import_from_module='ns.core')
## traced-value.h (module 'core'): ns3::TracedValue [class]
@@ -310,8 +316,6 @@
module.add_class('PcapFileWrapper', import_from_module='ns.network', parent=root_module['ns3::Object'])
## queue.h (module 'network'): ns3::QueueBase [class]
module.add_class('QueueBase', import_from_module='ns.network', parent=root_module['ns3::Object'])
- ## queue.h (module 'network'): ns3::QueueBase::QueueMode [enumeration]
- module.add_enum('QueueMode', ['QUEUE_MODE_PACKETS', 'QUEUE_MODE_BYTES'], outer_class=root_module['ns3::QueueBase'], import_from_module='ns.network')
## queue-limits.h (module 'network'): ns3::QueueLimits [class]
module.add_class('QueueLimits', import_from_module='ns.network', parent=root_module['ns3::Object'])
## radiotap-header.h (module 'network'): ns3::RadiotapHeader [class]
@@ -330,6 +334,14 @@
module.add_enum('VhtKnown', ['VHT_KNOWN_NONE', 'VHT_KNOWN_STBC', 'VHT_KNOWN_TXOP_PS_NOT_ALLOWED', 'VHT_KNOWN_GUARD_INTERVAL', 'VHT_KNOWN_SHORT_GI_NSYM_DISAMBIGUATION', 'VHT_KNOWN_LDPC_EXTRA_OFDM_SYMBOL', 'VHT_KNOWN_BEAMFORMED', 'VHT_KNOWN_BANDWIDTH', 'VHT_KNOWN_GROUP_ID', 'VHT_KNOWN_PARTIAL_AID'], outer_class=root_module['ns3::RadiotapHeader'], import_from_module='ns.network')
## radiotap-header.h (module 'network'): ns3::RadiotapHeader::VhtFlags [enumeration]
module.add_enum('VhtFlags', ['VHT_FLAGS_NONE', 'VHT_FLAGS_STBC', 'VHT_FLAGS_TXOP_PS_NOT_ALLOWED', 'VHT_FLAGS_GUARD_INTERVAL', 'VHT_FLAGS_SHORT_GI_NSYM_DISAMBIGUATION', 'VHT_FLAGS_LDPC_EXTRA_OFDM_SYMBOL', 'VHT_FLAGS_BEAMFORMED'], outer_class=root_module['ns3::RadiotapHeader'], import_from_module='ns.network')
+ ## radiotap-header.h (module 'network'): ns3::RadiotapHeader::HeData1 [enumeration]
+ module.add_enum('HeData1', ['HE_DATA1_FORMAT_EXT_SU', 'HE_DATA1_FORMAT_MU', 'HE_DATA1_FORMAT_TRIG', 'HE_DATA1_BSS_COLOR_KNOWN', 'HE_DATA1_BEAM_CHANGE_KNOWN', 'HE_DATA1_UL_DL_KNOWN', 'HE_DATA1_DATA_MCS_KNOWN', 'HE_DATA1_DATA_DCM_KNOWN', 'HE_DATA1_CODING_KNOWN', 'HE_DATA1_LDPC_XSYMSEG_KNOWN', 'HE_DATA1_STBC_KNOWN', 'HE_DATA1_SPTL_REUSE_KNOWN', 'HE_DATA1_SPTL_REUSE2_KNOWN', 'HE_DATA1_SPTL_REUSE3_KNOWN', 'HE_DATA1_SPTL_REUSE4_KNOWN', 'HE_DATA1_BW_RU_ALLOC_KNOWN', 'HE_DATA1_DOPPLER_KNOWN'], outer_class=root_module['ns3::RadiotapHeader'], import_from_module='ns.network')
+ ## radiotap-header.h (module 'network'): ns3::RadiotapHeader::HeData2 [enumeration]
+ module.add_enum('HeData2', ['HE_DATA2_PRISEC_80_KNOWN', 'HE_DATA2_GI_KNOWN', 'HE_DATA2_NUM_LTF_SYMS_KNOWN', 'HE_DATA2_PRE_FEC_PAD_KNOWN', 'HE_DATA2_TXBF_KNOWN', 'HE_DATA2_PE_DISAMBIG_KNOWN', 'HE_DATA2_TXOP_KNOWN', 'HE_DATA2_MIDAMBLE_KNOWN', 'HE_DATA2_RU_OFFSET', 'HE_DATA2_RU_OFFSET_KNOWN', 'HE_DATA2_PRISEC_80_SEC'], outer_class=root_module['ns3::RadiotapHeader'], import_from_module='ns.network')
+ ## radiotap-header.h (module 'network'): ns3::RadiotapHeader::HeData3 [enumeration]
+ module.add_enum('HeData3', ['HE_DATA3_BSS_COLOR', 'HE_DATA3_BEAM_CHANGE', 'HE_DATA3_UL_DL', 'HE_DATA3_DATA_MCS', 'HE_DATA3_DATA_DCM', 'HE_DATA3_CODING', 'HE_DATA3_LDPC_XSYMSEG', 'HE_DATA3_STBC'], outer_class=root_module['ns3::RadiotapHeader'], import_from_module='ns.network')
+ ## radiotap-header.h (module 'network'): ns3::RadiotapHeader::HeData5 [enumeration]
+ module.add_enum('HeData5', ['HE_DATA5_DATA_BW_RU_ALLOC_40MHZ', 'HE_DATA5_DATA_BW_RU_ALLOC_80MHZ', 'HE_DATA5_DATA_BW_RU_ALLOC_160MHZ', 'HE_DATA5_DATA_BW_RU_ALLOC_26T', 'HE_DATA5_DATA_BW_RU_ALLOC_52T', 'HE_DATA5_DATA_BW_RU_ALLOC_106T', 'HE_DATA5_DATA_BW_RU_ALLOC_242T', 'HE_DATA5_DATA_BW_RU_ALLOC_484T', 'HE_DATA5_DATA_BW_RU_ALLOC_996T', 'HE_DATA5_DATA_BW_RU_ALLOC_2x996T', 'HE_DATA5_GI_1_6', 'HE_DATA5_GI_3_2', 'HE_DATA5_LTF_SYM_SIZE', 'HE_DATA5_NUM_LTF_SYMS', 'HE_DATA5_PRE_FEC_PAD', 'HE_DATA5_TXBF', 'HE_DATA5_PE_DISAMBIG'], outer_class=root_module['ns3::RadiotapHeader'], import_from_module='ns.network')
## random-variable-stream.h (module 'core'): ns3::RandomVariableStream [class]
module.add_class('RandomVariableStream', import_from_module='ns.core', parent=root_module['ns3::Object'])
## seq-ts-header.h (module 'applications'): ns3::SeqTsHeader [class]
@@ -366,6 +378,8 @@
module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::PbbTlv', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class]
module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::QueueItem', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+ ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class]
+ module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::ThreeGppHttpServerTxBuffer', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class]
module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::TraceSourceAccessor', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## sll-header.h (module 'network'): ns3::SllHeader [class]
@@ -396,10 +410,21 @@
module.add_class('SocketPriorityTag', import_from_module='ns.network', parent=root_module['ns3::Tag'])
## socket.h (module 'network'): ns3::SocketSetDontFragmentTag [class]
module.add_class('SocketSetDontFragmentTag', import_from_module='ns.network', parent=root_module['ns3::Tag'])
+ ## three-gpp-http-header.h (module 'applications'): ns3::ThreeGppHttpHeader [class]
+ module.add_class('ThreeGppHttpHeader', parent=root_module['ns3::Header'])
+ ## three-gpp-http-header.h (module 'applications'): ns3::ThreeGppHttpHeader::ContentType_t [enumeration]
+ module.add_enum('ContentType_t', ['NOT_SET', 'MAIN_OBJECT', 'EMBEDDED_OBJECT'], outer_class=root_module['ns3::ThreeGppHttpHeader'])
+ ## three-gpp-http-server.h (module 'applications'): ns3::ThreeGppHttpServerTxBuffer [class]
+ module.add_class('ThreeGppHttpServerTxBuffer', parent=root_module['ns3::SimpleRefCount< ns3::ThreeGppHttpServerTxBuffer, ns3::empty, ns3::DefaultDeleter >'])
+ ## three-gpp-http-variables.h (module 'applications'): ns3::ThreeGppHttpVariables [class]
+ module.add_class('ThreeGppHttpVariables', parent=root_module['ns3::Object'])
## nstime.h (module 'core'): ns3::Time [class]
module.add_class('Time', import_from_module='ns.core')
## nstime.h (module 'core'): ns3::Time::Unit [enumeration]
module.add_enum('Unit', ['Y', 'D', 'H', 'MIN', 'S', 'MS', 'US', 'NS', 'PS', 'FS', 'LAST'], outer_class=root_module['ns3::Time'], import_from_module='ns.core')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )', u'ns3::Time::TracedCallback')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )*', u'ns3::Time::TracedCallback*')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Time )&', u'ns3::Time::TracedCallback&')
## nstime.h (module 'core'): ns3::Time [class]
root_module['ns3::Time'].implicitly_converts_to(root_module['ns3::int64x64_t'])
## trace-source-accessor.h (module 'core'): ns3::TraceSourceAccessor [class]
@@ -418,6 +443,12 @@
module.add_class('ZipfRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream'])
## application.h (module 'network'): ns3::Application [class]
module.add_class('Application', import_from_module='ns.network', parent=root_module['ns3::Object'])
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Time const &, ns3::Address const & )', u'ns3::Application::DelayAddressCallback')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Time const &, ns3::Address const & )*', u'ns3::Application::DelayAddressCallback*')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Time const &, ns3::Address const & )&', u'ns3::Application::DelayAddressCallback&')
+ typehandlers.add_type_alias(u'void ( * ) ( std::string const &, std::string const & )', u'ns3::Application::StateTransitionCallback')
+ typehandlers.add_type_alias(u'void ( * ) ( std::string const &, std::string const & )*', u'ns3::Application::StateTransitionCallback*')
+ typehandlers.add_type_alias(u'void ( * ) ( std::string const &, std::string const & )&', u'ns3::Application::StateTransitionCallback&')
## attribute.h (module 'core'): ns3::AttributeAccessor [class]
module.add_class('AttributeAccessor', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeAccessor, ns3::empty, ns3::DefaultDeleter >'])
## attribute.h (module 'core'): ns3::AttributeChecker [class]
@@ -569,6 +600,9 @@
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )', u'ns3::Packet::AddressTracedCallback')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )*', u'ns3::Packet::AddressTracedCallback*')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Address const & )&', u'ns3::Packet::AddressTracedCallback&')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )', u'ns3::Packet::TwoAddressTracedCallback')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )*', u'ns3::Packet::TwoAddressTracedCallback*')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const > const, ns3::Address const &, ns3::Address const & )&', u'ns3::Packet::TwoAddressTracedCallback&')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )', u'ns3::Packet::Mac48AddressTracedCallback')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )*', u'ns3::Packet::Mac48AddressTracedCallback*')
typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::Packet const >, ns3::Mac48Address )&', u'ns3::Packet::Mac48AddressTracedCallback&')
@@ -677,6 +711,23 @@
module.add_class('SimpleChannel', import_from_module='ns.network', parent=root_module['ns3::Channel'])
## simple-net-device.h (module 'network'): ns3::SimpleNetDevice [class]
module.add_class('SimpleNetDevice', import_from_module='ns.network', parent=root_module['ns3::NetDevice'])
+ ## three-gpp-http-client.h (module 'applications'): ns3::ThreeGppHttpClient [class]
+ module.add_class('ThreeGppHttpClient', parent=root_module['ns3::Application'])
+ ## three-gpp-http-client.h (module 'applications'): ns3::ThreeGppHttpClient::State_t [enumeration]
+ module.add_enum('State_t', ['NOT_STARTED', 'CONNECTING', 'EXPECTING_MAIN_OBJECT', 'PARSING_MAIN_OBJECT', 'EXPECTING_EMBEDDED_OBJECT', 'READING', 'STOPPED'], outer_class=root_module['ns3::ThreeGppHttpClient'])
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::ThreeGppHttpClient const > )', u'ns3::ThreeGppHttpClient::TracedCallback')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::ThreeGppHttpClient const > )*', u'ns3::ThreeGppHttpClient::TracedCallback*')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::ThreeGppHttpClient const > )&', u'ns3::ThreeGppHttpClient::TracedCallback&')
+ ## three-gpp-http-server.h (module 'applications'): ns3::ThreeGppHttpServer [class]
+ module.add_class('ThreeGppHttpServer', parent=root_module['ns3::Application'])
+ ## three-gpp-http-server.h (module 'applications'): ns3::ThreeGppHttpServer::State_t [enumeration]
+ module.add_enum('State_t', ['NOT_STARTED', 'STARTED', 'STOPPED'], outer_class=root_module['ns3::ThreeGppHttpServer'])
+ typehandlers.add_type_alias(u'void ( * ) ( uint32_t )', u'ns3::ThreeGppHttpServer::ThreeGppHttpObjectCallback')
+ typehandlers.add_type_alias(u'void ( * ) ( uint32_t )*', u'ns3::ThreeGppHttpServer::ThreeGppHttpObjectCallback*')
+ typehandlers.add_type_alias(u'void ( * ) ( uint32_t )&', u'ns3::ThreeGppHttpServer::ThreeGppHttpObjectCallback&')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::ThreeGppHttpServer const >, ns3::Ptr< ns3::Socket > )', u'ns3::ThreeGppHttpServer::ConnectionEstablishedCallback')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::ThreeGppHttpServer const >, ns3::Ptr< ns3::Socket > )*', u'ns3::ThreeGppHttpServer::ConnectionEstablishedCallback*')
+ typehandlers.add_type_alias(u'void ( * ) ( ns3::Ptr< ns3::ThreeGppHttpServer const >, ns3::Ptr< ns3::Socket > )&', u'ns3::ThreeGppHttpServer::ConnectionEstablishedCallback&')
## nstime.h (module 'core'): ns3::TimeValue [class]
module.add_class('TimeValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
## type-id.h (module 'core'): ns3::TypeIdChecker [class]
@@ -715,12 +766,24 @@
module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['ns3::ObjectBase *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
## callback.h (module 'core'): ns3::CallbackImpl, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class]
module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
+ ## callback.h (module 'core'): ns3::CallbackImpl [class]
+ module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'const ns3::Time &', 'const ns3::Address &', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
+ ## callback.h (module 'core'): ns3::CallbackImpl &, const std::basic_string &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class]
+ module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'const std::basic_string &', 'const std::basic_string &', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
+ ## callback.h (module 'core'): ns3::CallbackImpl, const ns3::Address &, const ns3::Address &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class]
+ module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'const ns3::Address &', 'const ns3::Address &', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
## callback.h (module 'core'): ns3::CallbackImpl, const ns3::Address &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class]
module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'const ns3::Address &', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
## callback.h (module 'core'): ns3::CallbackImpl, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class]
module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
## callback.h (module 'core'): ns3::CallbackImpl, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class]
module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
+ ## callback.h (module 'core'): ns3::CallbackImpl, ns3::Ptr, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class]
+ module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
+ ## callback.h (module 'core'): ns3::CallbackImpl, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class]
+ module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
+ ## callback.h (module 'core'): ns3::CallbackImpl, ns3::Ptr, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class]
+ module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
## callback.h (module 'core'): ns3::CallbackImpl, ns3::Ptr, unsigned short, const ns3::Address &, const ns3::Address &, ns3::NetDevice::PacketType, ns3::empty, ns3::empty, ns3::empty> [class]
module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'const ns3::Address &', 'const ns3::Address &', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
## callback.h (module 'core'): ns3::CallbackImpl, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> [class]
@@ -733,6 +796,8 @@
module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::Ptr', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
## callback.h (module 'core'): ns3::CallbackImpl [class]
module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
+ ## callback.h (module 'core'): ns3::CallbackImpl [class]
+ module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
## callback.h (module 'core'): ns3::CallbackImpl [class]
module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'unsigned int', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase'])
## basic-data-calculators.h (module 'stats'): ns3::CounterCalculator [class]
@@ -828,12 +893,12 @@
## hash-function.h (module 'core'): ns3::Hash::Implementation [class]
module.add_class('Implementation', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter >'])
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )', u'ns3::Hash::Hash32Function_ptr')
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )*', u'ns3::Hash::Hash32Function_ptr*')
- typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, size_t const )&', u'ns3::Hash::Hash32Function_ptr&')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )', u'ns3::Hash::Hash64Function_ptr')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )*', u'ns3::Hash::Hash64Function_ptr*')
- typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, size_t const )&', u'ns3::Hash::Hash64Function_ptr&')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash32Function_ptr')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash32Function_ptr*')
+ typehandlers.add_type_alias(u'uint32_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash32Function_ptr&')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )', u'ns3::Hash::Hash64Function_ptr')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )*', u'ns3::Hash::Hash64Function_ptr*')
+ typehandlers.add_type_alias(u'uint64_t ( * ) ( char const *, std::size_t const )&', u'ns3::Hash::Hash64Function_ptr&')
## Register a nested module for the namespace Function
@@ -936,6 +1001,7 @@
register_Ns3DefaultDeleter__Ns3PbbMessage_methods(root_module, root_module['ns3::DefaultDeleter< ns3::PbbMessage >'])
register_Ns3DefaultDeleter__Ns3PbbTlv_methods(root_module, root_module['ns3::DefaultDeleter< ns3::PbbTlv >'])
register_Ns3DefaultDeleter__Ns3QueueItem_methods(root_module, root_module['ns3::DefaultDeleter< ns3::QueueItem >'])
+ register_Ns3DefaultDeleter__Ns3ThreeGppHttpServerTxBuffer_methods(root_module, root_module['ns3::DefaultDeleter< ns3::ThreeGppHttpServerTxBuffer >'])
register_Ns3DefaultDeleter__Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::DefaultDeleter< ns3::TraceSourceAccessor >'])
register_Ns3DelayJitterEstimation_methods(root_module, root_module['ns3::DelayJitterEstimation'])
register_Ns3EventId_methods(root_module, root_module['ns3::EventId'])
@@ -984,6 +1050,8 @@
register_Ns3SystemWallClockMs_methods(root_module, root_module['ns3::SystemWallClockMs'])
register_Ns3Tag_methods(root_module, root_module['ns3::Tag'])
register_Ns3TagBuffer_methods(root_module, root_module['ns3::TagBuffer'])
+ register_Ns3ThreeGppHttpClientHelper_methods(root_module, root_module['ns3::ThreeGppHttpClientHelper'])
+ register_Ns3ThreeGppHttpServerHelper_methods(root_module, root_module['ns3::ThreeGppHttpServerHelper'])
register_Ns3TimeWithUnit_methods(root_module, root_module['ns3::TimeWithUnit'])
register_Ns3TracedValue__Unsigned_int_methods(root_module, root_module['ns3::TracedValue< unsigned int >'])
register_Ns3TypeId_methods(root_module, root_module['ns3::TypeId'])
@@ -1027,6 +1095,7 @@
register_Ns3SimpleRefCount__Ns3PbbPacket_Ns3Header_Ns3DefaultDeleter__lt__ns3PbbPacket__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::PbbPacket, ns3::Header, ns3::DefaultDeleter >'])
register_Ns3SimpleRefCount__Ns3PbbTlv_Ns3Empty_Ns3DefaultDeleter__lt__ns3PbbTlv__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::PbbTlv, ns3::empty, ns3::DefaultDeleter