From 520a73c0697faafcc2bf257f944edba0d8a13515 Mon Sep 17 00:00:00 2001 From: Stefano Avallone Date: Sat, 16 Jul 2016 23:19:27 +0200 Subject: [PATCH 01/27] traffic-control: fix gcc 4.8.4 error --- src/traffic-control/model/pfifo-fast-queue-disc.cc | 6 +++--- src/traffic-control/model/pfifo-fast-queue-disc.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/traffic-control/model/pfifo-fast-queue-disc.cc b/src/traffic-control/model/pfifo-fast-queue-disc.cc index 67b0d8e5388..b2bbf9258f4 100644 --- a/src/traffic-control/model/pfifo-fast-queue-disc.cc +++ b/src/traffic-control/model/pfifo-fast-queue-disc.cc @@ -58,7 +58,7 @@ PfifoFastQueueDisc::~PfifoFastQueueDisc () NS_LOG_FUNCTION (this); } -constexpr int PfifoFastQueueDisc::prio2band[]; +const uint32_t PfifoFastQueueDisc::prio2band[16] = {1, 2, 2, 2, 1, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1}; bool PfifoFastQueueDisc::DoEnqueue (Ptr item) @@ -81,12 +81,12 @@ PfifoFastQueueDisc::DoEnqueue (Ptr item) uint32_t band = prio2band[priority & 0x0f]; - bool retval = GetInternalQueue(band)->Enqueue (item); + bool retval = GetInternalQueue (band)->Enqueue (item); // If Queue::Enqueue fails, QueueDisc::Drop is called by the internal queue // because QueueDisc::AddInternalQueue sets the drop callback - NS_LOG_LOGIC ("Number packets band " << band << ": " << GetInternalQueue(band)->GetNPackets ()); + NS_LOG_LOGIC ("Number packets band " << band << ": " << GetInternalQueue (band)->GetNPackets ()); return retval; } diff --git a/src/traffic-control/model/pfifo-fast-queue-disc.h b/src/traffic-control/model/pfifo-fast-queue-disc.h index 8a7ec3d86db..7ebd3aabe08 100644 --- a/src/traffic-control/model/pfifo-fast-queue-disc.h +++ b/src/traffic-control/model/pfifo-fast-queue-disc.h @@ -62,12 +62,12 @@ class PfifoFastQueueDisc : public QueueDisc { virtual ~PfifoFastQueueDisc(); +private: /** * Priority to band map */ - static constexpr int prio2band[] = {1, 2, 2, 2, 1, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1}; + static const uint32_t prio2band[16]; -private: virtual bool DoEnqueue (Ptr item); virtual Ptr DoDequeue (void); virtual Ptr DoPeek (void) const; From a4904416c3235b24e96f7020e0e36d05037b4b6e Mon Sep 17 00:00:00 2001 From: Tommaso Pecorella Date: Sat, 16 Jul 2016 23:37:44 +0200 Subject: [PATCH 02/27] internet: fix forward-declarations --- src/internet/model/ipv4-interface.cc | 1 - src/internet/model/ipv4-interface.h | 2 +- src/internet/model/ipv6-interface.cc | 8 ++++---- src/internet/model/ipv6-interface.h | 10 +++++----- src/internet/model/ripng.cc | 1 + 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/internet/model/ipv4-interface.cc b/src/internet/model/ipv4-interface.cc index 3509fb4a264..8abb4607b25 100644 --- a/src/internet/model/ipv4-interface.cc +++ b/src/internet/model/ipv4-interface.cc @@ -29,7 +29,6 @@ #include "ns3/packet.h" #include "ns3/node.h" #include "ns3/pointer.h" -#include "ns3/traffic-control-layer.h" namespace ns3 { diff --git a/src/internet/model/ipv4-interface.h b/src/internet/model/ipv4-interface.h index f20aed6935a..c36a400660a 100644 --- a/src/internet/model/ipv4-interface.h +++ b/src/internet/model/ipv4-interface.h @@ -25,6 +25,7 @@ #include #include "ns3/ptr.h" #include "ns3/object.h" +#include "ns3/traffic-control-layer.h" namespace ns3 { @@ -32,7 +33,6 @@ class NetDevice; class Packet; class Node; class ArpCache; -class TrafficControlLayer; class Ipv4InterfaceAddress; class Ipv4Address; class Ipv4Header; diff --git a/src/internet/model/ipv6-interface.cc b/src/internet/model/ipv6-interface.cc index 0fc4a247379..ef730b002dc 100644 --- a/src/internet/model/ipv6-interface.cc +++ b/src/internet/model/ipv6-interface.cc @@ -21,17 +21,17 @@ #include "ns3/log.h" #include "ns3/node.h" #include "ns3/packet.h" +#include "ns3/net-device.h" +#include "ns3/mac16-address.h" +#include "ns3/mac64-address.h" #include "ipv6-interface.h" #include "ipv6-queue-disc-item.h" -#include "ns3/net-device.h" #include "loopback-net-device.h" -#include "ns3/mac16-address.h" -#include "ns3/mac64-address.h" #include "ipv6-l3-protocol.h" #include "icmpv6-l4-protocol.h" +#include "ipv6-header.h" #include "ndisc-cache.h" -#include "ns3/traffic-control-layer.h" namespace ns3 { diff --git a/src/internet/model/ipv6-interface.h b/src/internet/model/ipv6-interface.h index 4be2a670b3d..f003cb1c808 100644 --- a/src/internet/model/ipv6-interface.h +++ b/src/internet/model/ipv6-interface.h @@ -22,12 +22,10 @@ #define IPV6_INTERFACE_H #include - -#include "ns3/ipv6-header.h" -#include "ns3/ipv6-interface-address.h" #include "ns3/ptr.h" #include "ns3/object.h" -#include "ns3/timer.h" +#include "ipv6-interface-address.h" +#include "ns3/traffic-control-layer.h" namespace ns3 { @@ -35,8 +33,10 @@ namespace ns3 class NetDevice; class Packet; class Node; -class TrafficControlLayer; class NdiscCache; +class Ipv6InterfaceAddress; +class Ipv6Address; +class Ipv6Header; /** * \ingoup ipv6 diff --git a/src/internet/model/ripng.cc b/src/internet/model/ripng.cc index 7da98e24028..6b3c7082e8f 100644 --- a/src/internet/model/ripng.cc +++ b/src/internet/model/ripng.cc @@ -33,6 +33,7 @@ #include "ns3/enum.h" #include "ns3/uinteger.h" #include "ns3/ipv6-packet-info-tag.h" +#include "ns3/simulator.h" #define RIPNG_ALL_NODE "ff02::9" #define RIPNG_PORT 521 From d2e5208b7d45007240ec38c47463fcebc710995a Mon Sep 17 00:00:00 2001 From: Tommaso Pecorella Date: Sat, 16 Jul 2016 23:28:34 +0200 Subject: [PATCH 03/27] Doygen: minor typos --- src/internet/model/ipv4-packet-filter.h | 2 +- src/internet/model/ipv6-interface-address.h | 2 +- src/internet/model/ipv6-interface.h | 2 +- src/internet/model/ipv6-l3-protocol.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/internet/model/ipv4-packet-filter.h b/src/internet/model/ipv4-packet-filter.h index c0308f9597c..3c7eec91919 100644 --- a/src/internet/model/ipv4-packet-filter.h +++ b/src/internet/model/ipv4-packet-filter.h @@ -30,7 +30,7 @@ namespace ns3 { /** * \ingroup ipv4 - * \ingoup traffic-control + * \ingroup traffic-control * * Ipv4PacketFilter is the abstract base class for filters defined for IPv4 packets. */ diff --git a/src/internet/model/ipv6-interface-address.h b/src/internet/model/ipv6-interface-address.h index 9c12f48c7d3..168adb83b8f 100644 --- a/src/internet/model/ipv6-interface-address.h +++ b/src/internet/model/ipv6-interface-address.h @@ -30,7 +30,7 @@ namespace ns3 /** * \ingroup address - * \ingoup ipv6 + * \ingroup ipv6 * * \brief IPv6 address associated with an interface. */ diff --git a/src/internet/model/ipv6-interface.h b/src/internet/model/ipv6-interface.h index f003cb1c808..c6251c27a26 100644 --- a/src/internet/model/ipv6-interface.h +++ b/src/internet/model/ipv6-interface.h @@ -39,7 +39,7 @@ class Ipv6Address; class Ipv6Header; /** - * \ingoup ipv6 + * \ingroup ipv6 * * \brief The IPv6 representation of a network interface. * diff --git a/src/internet/model/ipv6-l3-protocol.h b/src/internet/model/ipv6-l3-protocol.h index 46aadd054cd..6c772e2a540 100644 --- a/src/internet/model/ipv6-l3-protocol.h +++ b/src/internet/model/ipv6-l3-protocol.h @@ -45,7 +45,7 @@ class Icmpv6L4Protocol; class Ipv6AutoconfiguredPrefix; /** - * \ingoup ipv6 + * \ingroup ipv6 * * \brief IPv6 layer implementation. * From 971ace1bfd5807f8811bd0df26e7a00e67ea33f1 Mon Sep 17 00:00:00 2001 From: Tommaso Pecorella Date: Sat, 16 Jul 2016 23:29:23 +0200 Subject: [PATCH 04/27] Rescan Python bindings --- src/aodv/bindings/callbacks_list.py | 2 +- src/aodv/bindings/modulegen__gcc_ILP32.py | 102 +++- src/aodv/bindings/modulegen__gcc_LP64.py | 102 +++- .../bindings/modulegen__gcc_ILP32.py | 131 ++++- .../bindings/modulegen__gcc_LP64.py | 131 ++++- src/bridge/bindings/modulegen__gcc_ILP32.py | 23 +- src/bridge/bindings/modulegen__gcc_LP64.py | 23 +- .../bindings/modulegen__gcc_ILP32.py | 23 +- src/buildings/bindings/modulegen__gcc_LP64.py | 23 +- src/click/bindings/callbacks_list.py | 2 +- src/click/bindings/modulegen__gcc_ILP32.py | 102 +++- src/click/bindings/modulegen__gcc_LP64.py | 102 +++- .../bindings/modulegen__gcc_ILP32.py | 18 - .../bindings/modulegen__gcc_LP64.py | 18 - .../bindings/modulegen__gcc_ILP32.py | 102 +++- .../bindings/modulegen__gcc_LP64.py | 102 +++- src/csma/bindings/modulegen__gcc_ILP32.py | 29 +- src/csma/bindings/modulegen__gcc_LP64.py | 29 +- src/dsdv/bindings/callbacks_list.py | 2 +- src/dsdv/bindings/modulegen__gcc_ILP32.py | 108 +++- src/dsdv/bindings/modulegen__gcc_LP64.py | 108 +++- src/dsr/bindings/callbacks_list.py | 2 +- src/dsr/bindings/modulegen__gcc_ILP32.py | 339 ++++-------- src/dsr/bindings/modulegen__gcc_LP64.py | 339 ++++-------- src/energy/bindings/modulegen__gcc_ILP32.py | 23 +- src/energy/bindings/modulegen__gcc_LP64.py | 23 +- .../bindings/modulegen__gcc_ILP32.py | 23 +- .../bindings/modulegen__gcc_LP64.py | 23 +- .../bindings/modulegen__gcc_ILP32.py | 102 +++- .../bindings/modulegen__gcc_LP64.py | 102 +++- .../bindings/modulegen__gcc_ILP32.py | 102 +++- .../bindings/modulegen__gcc_LP64.py | 102 +++- src/internet/bindings/callbacks_list.py | 2 +- src/internet/bindings/modulegen__gcc_ILP32.py | 154 ++++-- src/internet/bindings/modulegen__gcc_LP64.py | 154 ++++-- src/lr-wpan/bindings/modulegen__gcc_ILP32.py | 39 +- src/lr-wpan/bindings/modulegen__gcc_LP64.py | 35 +- src/lte/bindings/modulegen__gcc_ILP32.py | 124 ++++- src/lte/bindings/modulegen__gcc_LP64.py | 124 ++++- src/mesh/bindings/modulegen__gcc_ILP32.py | 395 +++++++++++++- src/mesh/bindings/modulegen__gcc_LP64.py | 395 +++++++++++++- src/mobility/bindings/modulegen__gcc_ILP32.py | 23 +- src/mobility/bindings/modulegen__gcc_LP64.py | 23 +- src/network/bindings/modulegen__gcc_ILP32.py | 131 ++++- src/network/bindings/modulegen__gcc_LP64.py | 131 ++++- .../bindings/modulegen__gcc_ILP32.py | 102 +++- .../bindings/modulegen__gcc_LP64.py | 102 +++- src/olsr/bindings/modulegen__gcc_ILP32.py | 102 +++- src/olsr/bindings/modulegen__gcc_LP64.py | 102 +++- .../bindings/modulegen__gcc_ILP32.py | 102 +++- .../bindings/modulegen__gcc_LP64.py | 102 +++- .../bindings/modulegen__gcc_ILP32.py | 23 +- .../bindings/modulegen__gcc_LP64.py | 23 +- .../bindings/modulegen__gcc_ILP32.py | 23 +- src/sixlowpan/bindings/modulegen__gcc_LP64.py | 23 +- src/spectrum/bindings/callbacks_list.py | 2 +- src/spectrum/bindings/modulegen__gcc_ILP32.py | 29 +- src/spectrum/bindings/modulegen__gcc_LP64.py | 29 +- .../bindings/modulegen__gcc_ILP32.py | 23 +- .../bindings/modulegen__gcc_LP64.py | 23 +- .../bindings/modulegen__gcc_ILP32.py | 23 +- .../bindings/modulegen__gcc_LP64.py | 23 +- .../bindings/callbacks_list.py | 2 +- .../bindings/modulegen__gcc_ILP32.py | 23 +- .../bindings/modulegen__gcc_LP64.py | 23 +- src/uan/bindings/modulegen__gcc_ILP32.py | 23 +- src/uan/bindings/modulegen__gcc_LP64.py | 23 +- .../bindings/modulegen__gcc_ILP32.py | 23 +- .../bindings/modulegen__gcc_LP64.py | 23 +- src/wave/bindings/modulegen__gcc_ILP32.py | 510 ++++++++++++++++- src/wave/bindings/modulegen__gcc_LP64.py | 514 +++++++++++++++++- src/wifi/bindings/modulegen__gcc_ILP32.py | 484 ++++++++++++++--- src/wifi/bindings/modulegen__gcc_LP64.py | 484 ++++++++++++++--- src/wimax/bindings/modulegen__gcc_ILP32.py | 23 +- src/wimax/bindings/modulegen__gcc_LP64.py | 23 +- 75 files changed, 5695 insertions(+), 1531 deletions(-) diff --git a/src/aodv/bindings/callbacks_list.py b/src/aodv/bindings/callbacks_list.py index 810f9898de1..201a1d394e3 100644 --- a/src/aodv/bindings/callbacks_list.py +++ b/src/aodv/bindings/callbacks_list.py @@ -1,4 +1,5 @@ callback_classes = [ + ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', '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::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Ipv4Header const&', 'ns3::Socket::SocketErrno', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], @@ -11,5 +12,4 @@ ['void', 'ns3::Ptr', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['bool', 'ns3::Ptr', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], - ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ] diff --git a/src/aodv/bindings/modulegen__gcc_ILP32.py b/src/aodv/bindings/modulegen__gcc_ILP32.py index d29edc99842..78223272b86 100644 --- a/src/aodv/bindings/modulegen__gcc_ILP32.py +++ b/src/aodv/bindings/modulegen__gcc_ILP32.py @@ -236,6 +236,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -246,6 +248,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -382,6 +386,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -626,6 +632,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1332,6 +1339,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1345,6 +1357,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3IntToType__0_methods(root_module, cls): @@ -4000,6 +4016,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -4025,6 +4046,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -4173,6 +4199,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -4200,11 +4230,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -4451,6 +4476,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -7318,21 +7389,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -7825,6 +7896,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/aodv/bindings/modulegen__gcc_LP64.py b/src/aodv/bindings/modulegen__gcc_LP64.py index d29edc99842..78223272b86 100644 --- a/src/aodv/bindings/modulegen__gcc_LP64.py +++ b/src/aodv/bindings/modulegen__gcc_LP64.py @@ -236,6 +236,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -246,6 +248,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -382,6 +386,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -626,6 +632,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1332,6 +1339,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1345,6 +1357,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3IntToType__0_methods(root_module, cls): @@ -4000,6 +4016,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -4025,6 +4046,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -4173,6 +4199,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -4200,11 +4230,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -4451,6 +4476,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -7318,21 +7389,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -7825,6 +7896,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/applications/bindings/modulegen__gcc_ILP32.py b/src/applications/bindings/modulegen__gcc_ILP32.py index a511a8478e7..802c08bc502 100644 --- a/src/applications/bindings/modulegen__gcc_ILP32.py +++ b/src/applications/bindings/modulegen__gcc_ILP32.py @@ -290,6 +290,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket-factory.h (module 'network'): ns3::SocketFactory [class] @@ -302,6 +304,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -480,6 +484,8 @@ def register_types(module): module.add_class('Probe', import_from_module='ns.stats', parent=root_module['ns3::DataCollectionObject']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## error-model.h (module 'network'): ns3::RateErrorModel [class] module.add_class('RateErrorModel', import_from_module='ns.network', parent=root_module['ns3::ErrorModel']) ## error-model.h (module 'network'): ns3::RateErrorModel::ErrorUnit [enumeration] @@ -528,9 +534,6 @@ def register_types(module): module.add_container('std::vector< ns3::Ipv6Address >', 'ns3::Ipv6Address', container_type=u'vector') module.add_container('std::list< unsigned int >', 'unsigned int', container_type=u'list') module.add_container('std::list< ns3::Ptr< ns3::Socket > >', 'ns3::Ptr< ns3::Socket >', container_type=u'list') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::SequenceNumber< short unsigned int, short int >', u'ns3::SequenceNumber16') typehandlers.add_type_alias(u'ns3::SequenceNumber< short unsigned int, short int >*', u'ns3::SequenceNumber16*') typehandlers.add_type_alias(u'ns3::SequenceNumber< short unsigned int, short int >&', u'ns3::SequenceNumber16&') @@ -549,6 +552,9 @@ def register_types(module): typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxStartCallback') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxStartCallback*') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxStartCallback&') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyRxEndOkCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyRxEndOkCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyRxEndOkCallback&') @@ -772,6 +778,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -888,8 +895,8 @@ def register_methods(root_module): def register_Ns3Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## address.h (module 'network'): ns3::Address::Address() [constructor] cls.add_constructor([]) @@ -1862,6 +1869,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1875,12 +1887,16 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## ipv4-address.h (module 'network'): ns3::Ipv4Address::Ipv4Address(ns3::Ipv4Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Ipv4Address const &', 'arg0')]) @@ -2060,8 +2076,8 @@ def register_Ns3Ipv4Mask_methods(root_module, cls): def register_Ns3Ipv6Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## ipv6-address.h (module 'network'): ns3::Ipv6Address::Ipv6Address() [constructor] cls.add_constructor([]) @@ -2317,8 +2333,8 @@ def register_Ns3Ipv6Prefix_methods(root_module, cls): def register_Ns3Mac16Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## mac16-address.h (module 'network'): ns3::Mac16Address::Mac16Address(ns3::Mac16Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac16Address const &', 'arg0')]) @@ -2354,8 +2370,8 @@ def register_Ns3Mac16Address_methods(root_module, cls): def register_Ns3Mac48Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## mac48-address.h (module 'network'): ns3::Mac48Address::Mac48Address(ns3::Mac48Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac48Address const &', 'arg0')]) @@ -2426,8 +2442,8 @@ def register_Ns3Mac48Address_methods(root_module, cls): def register_Ns3Mac64Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## mac64-address.h (module 'network'): ns3::Mac64Address::Mac64Address(ns3::Mac64Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac64Address const &', 'arg0')]) @@ -3776,8 +3792,8 @@ def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): def register_Ns3TypeId_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## type-id.h (module 'core'): ns3::TypeId::TypeId(char const * name) [constructor] cls.add_constructor([param('char const *', 'name')]) @@ -4126,6 +4142,7 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) @@ -4136,7 +4153,6 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor] @@ -5417,6 +5433,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -5442,6 +5463,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -5590,6 +5616,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -5617,11 +5647,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -5885,6 +5910,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -5939,6 +6010,7 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) @@ -5946,7 +6018,6 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('>') cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## nstime.h (module 'core'): ns3::Time::Time() [constructor] @@ -8068,21 +8139,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -8756,6 +8827,11 @@ def register_Ns3PacketSocketClient_methods(root_module, cls): cls.add_constructor([param('ns3::PacketSocketClient const &', 'arg0')]) ## packet-socket-client.h (module 'network'): ns3::PacketSocketClient::PacketSocketClient() [constructor] cls.add_constructor([]) + ## packet-socket-client.h (module 'network'): uint8_t ns3::PacketSocketClient::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## packet-socket-client.h (module 'network'): static ns3::TypeId ns3::PacketSocketClient::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -9899,6 +9975,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/applications/bindings/modulegen__gcc_LP64.py b/src/applications/bindings/modulegen__gcc_LP64.py index a511a8478e7..802c08bc502 100644 --- a/src/applications/bindings/modulegen__gcc_LP64.py +++ b/src/applications/bindings/modulegen__gcc_LP64.py @@ -290,6 +290,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket-factory.h (module 'network'): ns3::SocketFactory [class] @@ -302,6 +304,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -480,6 +484,8 @@ def register_types(module): module.add_class('Probe', import_from_module='ns.stats', parent=root_module['ns3::DataCollectionObject']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## error-model.h (module 'network'): ns3::RateErrorModel [class] module.add_class('RateErrorModel', import_from_module='ns.network', parent=root_module['ns3::ErrorModel']) ## error-model.h (module 'network'): ns3::RateErrorModel::ErrorUnit [enumeration] @@ -528,9 +534,6 @@ def register_types(module): module.add_container('std::vector< ns3::Ipv6Address >', 'ns3::Ipv6Address', container_type=u'vector') module.add_container('std::list< unsigned int >', 'unsigned int', container_type=u'list') module.add_container('std::list< ns3::Ptr< ns3::Socket > >', 'ns3::Ptr< ns3::Socket >', container_type=u'list') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::SequenceNumber< short unsigned int, short int >', u'ns3::SequenceNumber16') typehandlers.add_type_alias(u'ns3::SequenceNumber< short unsigned int, short int >*', u'ns3::SequenceNumber16*') typehandlers.add_type_alias(u'ns3::SequenceNumber< short unsigned int, short int >&', u'ns3::SequenceNumber16&') @@ -549,6 +552,9 @@ def register_types(module): typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxStartCallback') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxStartCallback*') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxStartCallback&') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyRxEndOkCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyRxEndOkCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyRxEndOkCallback&') @@ -772,6 +778,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -888,8 +895,8 @@ def register_methods(root_module): def register_Ns3Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## address.h (module 'network'): ns3::Address::Address() [constructor] cls.add_constructor([]) @@ -1862,6 +1869,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1875,12 +1887,16 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## ipv4-address.h (module 'network'): ns3::Ipv4Address::Ipv4Address(ns3::Ipv4Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Ipv4Address const &', 'arg0')]) @@ -2060,8 +2076,8 @@ def register_Ns3Ipv4Mask_methods(root_module, cls): def register_Ns3Ipv6Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## ipv6-address.h (module 'network'): ns3::Ipv6Address::Ipv6Address() [constructor] cls.add_constructor([]) @@ -2317,8 +2333,8 @@ def register_Ns3Ipv6Prefix_methods(root_module, cls): def register_Ns3Mac16Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## mac16-address.h (module 'network'): ns3::Mac16Address::Mac16Address(ns3::Mac16Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac16Address const &', 'arg0')]) @@ -2354,8 +2370,8 @@ def register_Ns3Mac16Address_methods(root_module, cls): def register_Ns3Mac48Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## mac48-address.h (module 'network'): ns3::Mac48Address::Mac48Address(ns3::Mac48Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac48Address const &', 'arg0')]) @@ -2426,8 +2442,8 @@ def register_Ns3Mac48Address_methods(root_module, cls): def register_Ns3Mac64Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## mac64-address.h (module 'network'): ns3::Mac64Address::Mac64Address(ns3::Mac64Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac64Address const &', 'arg0')]) @@ -3776,8 +3792,8 @@ def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): def register_Ns3TypeId_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## type-id.h (module 'core'): ns3::TypeId::TypeId(char const * name) [constructor] cls.add_constructor([param('char const *', 'name')]) @@ -4126,6 +4142,7 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) @@ -4136,7 +4153,6 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor] @@ -5417,6 +5433,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -5442,6 +5463,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -5590,6 +5616,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -5617,11 +5647,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -5885,6 +5910,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -5939,6 +6010,7 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) @@ -5946,7 +6018,6 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('>') cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## nstime.h (module 'core'): ns3::Time::Time() [constructor] @@ -8068,21 +8139,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -8756,6 +8827,11 @@ def register_Ns3PacketSocketClient_methods(root_module, cls): cls.add_constructor([param('ns3::PacketSocketClient const &', 'arg0')]) ## packet-socket-client.h (module 'network'): ns3::PacketSocketClient::PacketSocketClient() [constructor] cls.add_constructor([]) + ## packet-socket-client.h (module 'network'): uint8_t ns3::PacketSocketClient::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## packet-socket-client.h (module 'network'): static ns3::TypeId ns3::PacketSocketClient::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -9899,6 +9975,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/bridge/bindings/modulegen__gcc_ILP32.py b/src/bridge/bindings/modulegen__gcc_ILP32.py index a0bf46ea3fd..8b723d3f7e2 100644 --- a/src/bridge/bindings/modulegen__gcc_ILP32.py +++ b/src/bridge/bindings/modulegen__gcc_ILP32.py @@ -156,6 +156,8 @@ def register_types(module): module.add_class('ObjectFactoryValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -2460,21 +2462,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -2549,6 +2551,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/bridge/bindings/modulegen__gcc_LP64.py b/src/bridge/bindings/modulegen__gcc_LP64.py index a0bf46ea3fd..8b723d3f7e2 100644 --- a/src/bridge/bindings/modulegen__gcc_LP64.py +++ b/src/bridge/bindings/modulegen__gcc_LP64.py @@ -156,6 +156,8 @@ def register_types(module): module.add_class('ObjectFactoryValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -2460,21 +2462,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -2549,6 +2551,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/buildings/bindings/modulegen__gcc_ILP32.py b/src/buildings/bindings/modulegen__gcc_ILP32.py index 4aaee5ad44d..a15e61b42dd 100644 --- a/src/buildings/bindings/modulegen__gcc_ILP32.py +++ b/src/buildings/bindings/modulegen__gcc_ILP32.py @@ -264,6 +264,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -4212,21 +4214,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4492,6 +4494,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/buildings/bindings/modulegen__gcc_LP64.py b/src/buildings/bindings/modulegen__gcc_LP64.py index 4aaee5ad44d..a15e61b42dd 100644 --- a/src/buildings/bindings/modulegen__gcc_LP64.py +++ b/src/buildings/bindings/modulegen__gcc_LP64.py @@ -264,6 +264,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -4212,21 +4214,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4492,6 +4494,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/click/bindings/callbacks_list.py b/src/click/bindings/callbacks_list.py index 82149b537a3..92a20845a1e 100644 --- a/src/click/bindings/callbacks_list.py +++ b/src/click/bindings/callbacks_list.py @@ -1,4 +1,5 @@ callback_classes = [ + ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', '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::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], @@ -6,5 +7,4 @@ ['void', 'ns3::Ptr', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['bool', 'ns3::Ptr', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], - ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ] diff --git a/src/click/bindings/modulegen__gcc_ILP32.py b/src/click/bindings/modulegen__gcc_ILP32.py index 61452e0a6b6..14f2cc62648 100644 --- a/src/click/bindings/modulegen__gcc_ILP32.py +++ b/src/click/bindings/modulegen__gcc_ILP32.py @@ -182,6 +182,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -192,6 +194,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## trace-source-accessor.h (module 'core'): ns3::TraceSourceAccessor [class] @@ -276,6 +280,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## type-id.h (module 'core'): ns3::TypeIdChecker [class] module.add_class('TypeIdChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker']) ## type-id.h (module 'core'): ns3::TypeIdValue [class] @@ -460,6 +466,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) register_Ns3TrafficControlLayer_methods(root_module, root_module['ns3::TrafficControlLayer']) @@ -1085,6 +1092,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1098,6 +1110,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -3280,6 +3296,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -3305,6 +3326,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -3453,6 +3479,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -3480,11 +3510,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -3731,6 +3756,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -5097,21 +5168,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5476,6 +5547,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/click/bindings/modulegen__gcc_LP64.py b/src/click/bindings/modulegen__gcc_LP64.py index 61452e0a6b6..14f2cc62648 100644 --- a/src/click/bindings/modulegen__gcc_LP64.py +++ b/src/click/bindings/modulegen__gcc_LP64.py @@ -182,6 +182,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -192,6 +194,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## trace-source-accessor.h (module 'core'): ns3::TraceSourceAccessor [class] @@ -276,6 +280,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## type-id.h (module 'core'): ns3::TypeIdChecker [class] module.add_class('TypeIdChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker']) ## type-id.h (module 'core'): ns3::TypeIdValue [class] @@ -460,6 +466,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) register_Ns3TrafficControlLayer_methods(root_module, root_module['ns3::TrafficControlLayer']) @@ -1085,6 +1092,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1098,6 +1110,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -3280,6 +3296,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -3305,6 +3326,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -3453,6 +3479,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -3480,11 +3510,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -3731,6 +3756,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -5097,21 +5168,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5476,6 +5547,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/config-store/bindings/modulegen__gcc_ILP32.py b/src/config-store/bindings/modulegen__gcc_ILP32.py index 66be87285cb..b66559df134 100644 --- a/src/config-store/bindings/modulegen__gcc_ILP32.py +++ b/src/config-store/bindings/modulegen__gcc_ILP32.py @@ -24,8 +24,6 @@ def register_types(module): module.add_class('CallbackBase', import_from_module='ns.core') ## file-config.h (module 'config-store'): ns3::FileConfig [class] module.add_class('FileConfig', allow_subclassing=True) - ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore [class] - module.add_class('GtkConfigStore') ## hash.h (module 'core'): ns3::Hasher [class] module.add_class('Hasher', import_from_module='ns.core') ## file-config.h (module 'config-store'): ns3::NoneFileConfig [class] @@ -130,7 +128,6 @@ def register_types_ns3_Hash_Function(module): def register_methods(root_module): register_Ns3CallbackBase_methods(root_module, root_module['ns3::CallbackBase']) register_Ns3FileConfig_methods(root_module, root_module['ns3::FileConfig']) - register_Ns3GtkConfigStore_methods(root_module, root_module['ns3::GtkConfigStore']) register_Ns3Hasher_methods(root_module, root_module['ns3::Hasher']) register_Ns3NoneFileConfig_methods(root_module, root_module['ns3::NoneFileConfig']) register_Ns3ObjectBase_methods(root_module, root_module['ns3::ObjectBase']) @@ -204,21 +201,6 @@ def register_Ns3FileConfig_methods(root_module, cls): is_pure_virtual=True, is_virtual=True) return -def register_Ns3GtkConfigStore_methods(root_module, cls): - ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore::GtkConfigStore(ns3::GtkConfigStore const & arg0) [copy constructor] - cls.add_constructor([param('ns3::GtkConfigStore const &', 'arg0')]) - ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore::GtkConfigStore() [constructor] - cls.add_constructor([]) - ## gtk-config-store.h (module 'config-store'): void ns3::GtkConfigStore::ConfigureAttributes() [member function] - cls.add_method('ConfigureAttributes', - 'void', - []) - ## gtk-config-store.h (module 'config-store'): void ns3::GtkConfigStore::ConfigureDefaults() [member function] - cls.add_method('ConfigureDefaults', - 'void', - []) - return - def register_Ns3Hasher_methods(root_module, cls): ## hash.h (module 'core'): ns3::Hasher::Hasher(ns3::Hasher const & arg0) [copy constructor] cls.add_constructor([param('ns3::Hasher const &', 'arg0')]) diff --git a/src/config-store/bindings/modulegen__gcc_LP64.py b/src/config-store/bindings/modulegen__gcc_LP64.py index 66be87285cb..b66559df134 100644 --- a/src/config-store/bindings/modulegen__gcc_LP64.py +++ b/src/config-store/bindings/modulegen__gcc_LP64.py @@ -24,8 +24,6 @@ def register_types(module): module.add_class('CallbackBase', import_from_module='ns.core') ## file-config.h (module 'config-store'): ns3::FileConfig [class] module.add_class('FileConfig', allow_subclassing=True) - ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore [class] - module.add_class('GtkConfigStore') ## hash.h (module 'core'): ns3::Hasher [class] module.add_class('Hasher', import_from_module='ns.core') ## file-config.h (module 'config-store'): ns3::NoneFileConfig [class] @@ -130,7 +128,6 @@ def register_types_ns3_Hash_Function(module): def register_methods(root_module): register_Ns3CallbackBase_methods(root_module, root_module['ns3::CallbackBase']) register_Ns3FileConfig_methods(root_module, root_module['ns3::FileConfig']) - register_Ns3GtkConfigStore_methods(root_module, root_module['ns3::GtkConfigStore']) register_Ns3Hasher_methods(root_module, root_module['ns3::Hasher']) register_Ns3NoneFileConfig_methods(root_module, root_module['ns3::NoneFileConfig']) register_Ns3ObjectBase_methods(root_module, root_module['ns3::ObjectBase']) @@ -204,21 +201,6 @@ def register_Ns3FileConfig_methods(root_module, cls): is_pure_virtual=True, is_virtual=True) return -def register_Ns3GtkConfigStore_methods(root_module, cls): - ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore::GtkConfigStore(ns3::GtkConfigStore const & arg0) [copy constructor] - cls.add_constructor([param('ns3::GtkConfigStore const &', 'arg0')]) - ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore::GtkConfigStore() [constructor] - cls.add_constructor([]) - ## gtk-config-store.h (module 'config-store'): void ns3::GtkConfigStore::ConfigureAttributes() [member function] - cls.add_method('ConfigureAttributes', - 'void', - []) - ## gtk-config-store.h (module 'config-store'): void ns3::GtkConfigStore::ConfigureDefaults() [member function] - cls.add_method('ConfigureDefaults', - 'void', - []) - return - def register_Ns3Hasher_methods(root_module, cls): ## hash.h (module 'core'): ns3::Hasher::Hasher(ns3::Hasher const & arg0) [copy constructor] cls.add_constructor([param('ns3::Hasher const &', 'arg0')]) diff --git a/src/csma-layout/bindings/modulegen__gcc_ILP32.py b/src/csma-layout/bindings/modulegen__gcc_ILP32.py index 9c4368ebcba..1972dc67ac4 100644 --- a/src/csma-layout/bindings/modulegen__gcc_ILP32.py +++ b/src/csma-layout/bindings/modulegen__gcc_ILP32.py @@ -234,6 +234,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -244,6 +246,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -342,6 +346,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -505,6 +511,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1534,6 +1541,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1547,6 +1559,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -4424,6 +4440,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -4449,6 +4470,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -4597,6 +4623,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -4624,11 +4654,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -4875,6 +4900,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -6997,21 +7068,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -7416,6 +7487,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/csma-layout/bindings/modulegen__gcc_LP64.py b/src/csma-layout/bindings/modulegen__gcc_LP64.py index 9c4368ebcba..1972dc67ac4 100644 --- a/src/csma-layout/bindings/modulegen__gcc_LP64.py +++ b/src/csma-layout/bindings/modulegen__gcc_LP64.py @@ -234,6 +234,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -244,6 +246,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -342,6 +346,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -505,6 +511,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1534,6 +1541,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1547,6 +1559,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -4424,6 +4440,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -4449,6 +4470,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -4597,6 +4623,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -4624,11 +4654,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -4875,6 +4900,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -6997,21 +7068,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -7416,6 +7487,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/csma/bindings/modulegen__gcc_ILP32.py b/src/csma/bindings/modulegen__gcc_ILP32.py index cee81400aaf..5e66d323f60 100644 --- a/src/csma/bindings/modulegen__gcc_ILP32.py +++ b/src/csma/bindings/modulegen__gcc_ILP32.py @@ -304,6 +304,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## error-model.h (module 'network'): ns3::RateErrorModel [class] module.add_class('RateErrorModel', import_from_module='ns.network', parent=root_module['ns3::ErrorModel']) ## error-model.h (module 'network'): ns3::RateErrorModel::ErrorUnit [enumeration] @@ -397,9 +399,6 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *', u'ns3::TracedValueCallback::Uint16') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) **', u'ns3::TracedValueCallback::Uint16*') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *&', u'ns3::TracedValueCallback::Uint16&') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') @@ -418,6 +417,9 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') def register_types_ns3_internal(module): root_module = module.get_root() @@ -5209,21 +5211,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5716,6 +5718,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/csma/bindings/modulegen__gcc_LP64.py b/src/csma/bindings/modulegen__gcc_LP64.py index cee81400aaf..5e66d323f60 100644 --- a/src/csma/bindings/modulegen__gcc_LP64.py +++ b/src/csma/bindings/modulegen__gcc_LP64.py @@ -304,6 +304,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## error-model.h (module 'network'): ns3::RateErrorModel [class] module.add_class('RateErrorModel', import_from_module='ns.network', parent=root_module['ns3::ErrorModel']) ## error-model.h (module 'network'): ns3::RateErrorModel::ErrorUnit [enumeration] @@ -397,9 +399,6 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *', u'ns3::TracedValueCallback::Uint16') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) **', u'ns3::TracedValueCallback::Uint16*') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *&', u'ns3::TracedValueCallback::Uint16&') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') @@ -418,6 +417,9 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') def register_types_ns3_internal(module): root_module = module.get_root() @@ -5209,21 +5211,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5716,6 +5718,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/dsdv/bindings/callbacks_list.py b/src/dsdv/bindings/callbacks_list.py index e9e49362dbf..daa353213df 100644 --- a/src/dsdv/bindings/callbacks_list.py +++ b/src/dsdv/bindings/callbacks_list.py @@ -1,4 +1,5 @@ callback_classes = [ + ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', '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::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Ipv4Header const&', 'ns3::Socket::SocketErrno', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], @@ -8,5 +9,4 @@ ['void', 'ns3::Ptr', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['bool', 'ns3::Ptr', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], - ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ] diff --git a/src/dsdv/bindings/modulegen__gcc_ILP32.py b/src/dsdv/bindings/modulegen__gcc_ILP32.py index f5b260871a7..d19e1d55f83 100644 --- a/src/dsdv/bindings/modulegen__gcc_ILP32.py +++ b/src/dsdv/bindings/modulegen__gcc_ILP32.py @@ -234,6 +234,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -244,6 +246,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -370,6 +374,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -466,9 +472,6 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *', u'ns3::TracedValueCallback::Uint16') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) **', u'ns3::TracedValueCallback::Uint16*') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *&', u'ns3::TracedValueCallback::Uint16&') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') @@ -484,6 +487,9 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t ) *', u'ns3::TracedValueCallback::Int32') typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t ) **', u'ns3::TracedValueCallback::Int32*') typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t ) *&', u'ns3::TracedValueCallback::Int32&') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') def register_types_ns3_dsdv(module): root_module = module.get_root() @@ -593,6 +599,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1288,6 +1295,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1301,6 +1313,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3IntToType__0_methods(root_module, cls): @@ -3952,6 +3968,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -3977,6 +3998,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -4125,6 +4151,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -4152,11 +4182,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -4403,6 +4428,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -6656,21 +6727,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -7163,6 +7234,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/dsdv/bindings/modulegen__gcc_LP64.py b/src/dsdv/bindings/modulegen__gcc_LP64.py index f5b260871a7..d19e1d55f83 100644 --- a/src/dsdv/bindings/modulegen__gcc_LP64.py +++ b/src/dsdv/bindings/modulegen__gcc_LP64.py @@ -234,6 +234,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -244,6 +246,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -370,6 +374,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -466,9 +472,6 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *', u'ns3::TracedValueCallback::Uint16') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) **', u'ns3::TracedValueCallback::Uint16*') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *&', u'ns3::TracedValueCallback::Uint16&') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') @@ -484,6 +487,9 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t ) *', u'ns3::TracedValueCallback::Int32') typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t ) **', u'ns3::TracedValueCallback::Int32*') typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t ) *&', u'ns3::TracedValueCallback::Int32&') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') def register_types_ns3_dsdv(module): root_module = module.get_root() @@ -593,6 +599,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1288,6 +1295,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1301,6 +1313,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3IntToType__0_methods(root_module, cls): @@ -3952,6 +3968,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -3977,6 +3998,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -4125,6 +4151,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -4152,11 +4182,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -4403,6 +4428,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -6656,21 +6727,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -7163,6 +7234,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/dsr/bindings/callbacks_list.py b/src/dsr/bindings/callbacks_list.py index a2a397a79f2..e7c01c617cc 100644 --- a/src/dsr/bindings/callbacks_list.py +++ b/src/dsr/bindings/callbacks_list.py @@ -4,6 +4,7 @@ ['void', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ipv4Address', 'unsigned char', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Ipv4Address', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], + ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', '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::Ipv4Address', 'ns3::Ipv4Address', 'unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], @@ -11,5 +12,4 @@ ['void', 'ns3::Ptr', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['bool', 'ns3::Ptr', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], - ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ] diff --git a/src/dsr/bindings/modulegen__gcc_ILP32.py b/src/dsr/bindings/modulegen__gcc_ILP32.py index 61a26dba86e..e5649eb51ea 100644 --- a/src/dsr/bindings/modulegen__gcc_ILP32.py +++ b/src/dsr/bindings/modulegen__gcc_ILP32.py @@ -30,10 +30,10 @@ def register_types(module): module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') - ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] - module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], import_from_module='ns.wifi') + ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] + module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], 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] @@ -118,12 +118,6 @@ def register_types(module): module.add_class('Ipv6Address', import_from_module='ns.network') ## ipv6-address.h (module 'network'): ns3::Ipv6Address [class] root_module['ns3::Ipv6Address'].implicitly_converts_to(root_module['ns3::Address']) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress [class] - module.add_class('Ipv6InterfaceAddress', import_from_module='ns.internet') - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::State_e [enumeration] - module.add_enum('State_e', ['TENTATIVE', 'DEPRECATED', 'PREFERRED', 'PERMANENT', 'HOMEADDRESS', 'TENTATIVE_OPTIMISTIC', 'INVALID'], outer_class=root_module['ns3::Ipv6InterfaceAddress'], import_from_module='ns.internet') - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::Scope_e [enumeration] - module.add_enum('Scope_e', ['HOST', 'LINKLOCAL', 'GLOBAL'], outer_class=root_module['ns3::Ipv6InterfaceAddress'], import_from_module='ns.internet') ## ipv6-address.h (module 'network'): ns3::Ipv6Prefix [class] module.add_class('Ipv6Prefix', import_from_module='ns.network') ## mac48-address.h (module 'network'): ns3::Mac48Address [class] @@ -302,6 +296,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -312,6 +308,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -434,8 +432,6 @@ def register_types(module): module.add_class('Ipv6AddressChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## ipv6-address.h (module 'network'): ns3::Ipv6AddressValue [class] module.add_class('Ipv6AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6Interface [class] - module.add_class('Ipv6Interface', import_from_module='ns.internet', parent=root_module['ns3::Object']) ## ipv6-address.h (module 'network'): ns3::Ipv6PrefixChecker [class] module.add_class('Ipv6PrefixChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## ipv6-address.h (module 'network'): ns3::Ipv6PrefixValue [class] @@ -472,6 +468,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## ssid.h (module 'wifi'): ns3::Ssid [class] module.add_class('Ssid', import_from_module='ns.wifi', parent=root_module['ns3::WifiInformationElement']) ## ssid.h (module 'wifi'): ns3::SsidChecker [class] @@ -786,7 +784,6 @@ def register_methods(root_module): register_Ns3Ipv4InterfaceAddress_methods(root_module, root_module['ns3::Ipv4InterfaceAddress']) register_Ns3Ipv4Mask_methods(root_module, root_module['ns3::Ipv4Mask']) register_Ns3Ipv6Address_methods(root_module, root_module['ns3::Ipv6Address']) - register_Ns3Ipv6InterfaceAddress_methods(root_module, root_module['ns3::Ipv6InterfaceAddress']) register_Ns3Ipv6Prefix_methods(root_module, root_module['ns3::Ipv6Prefix']) register_Ns3Mac48Address_methods(root_module, root_module['ns3::Mac48Address']) register_Ns3NodeContainer_methods(root_module, root_module['ns3::NodeContainer']) @@ -860,6 +857,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -913,7 +911,6 @@ def register_methods(root_module): register_Ns3Ipv4RoutingProtocol_methods(root_module, root_module['ns3::Ipv4RoutingProtocol']) register_Ns3Ipv6AddressChecker_methods(root_module, root_module['ns3::Ipv6AddressChecker']) register_Ns3Ipv6AddressValue_methods(root_module, root_module['ns3::Ipv6AddressValue']) - register_Ns3Ipv6Interface_methods(root_module, root_module['ns3::Ipv6Interface']) register_Ns3Ipv6PrefixChecker_methods(root_module, root_module['ns3::Ipv6PrefixChecker']) register_Ns3Ipv6PrefixValue_methods(root_module, root_module['ns3::Ipv6PrefixValue']) register_Ns3LogNormalRandomVariable_methods(root_module, root_module['ns3::LogNormalRandomVariable']) @@ -1668,6 +1665,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1681,6 +1683,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3IntToType__0_methods(root_module, cls): @@ -2173,66 +2179,6 @@ def register_Ns3Ipv6Address_methods(root_module, cls): [param('uint8_t *', 'address')]) return -def register_Ns3Ipv6InterfaceAddress_methods(root_module, cls): - cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() - cls.add_binary_comparison_operator('==') - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress() [constructor] - cls.add_constructor([]) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress(ns3::Ipv6Address address) [constructor] - cls.add_constructor([param('ns3::Ipv6Address', 'address')]) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress(ns3::Ipv6Address address, ns3::Ipv6Prefix prefix) [constructor] - cls.add_constructor([param('ns3::Ipv6Address', 'address'), param('ns3::Ipv6Prefix', 'prefix')]) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress(ns3::Ipv6InterfaceAddress const & o) [copy constructor] - cls.add_constructor([param('ns3::Ipv6InterfaceAddress const &', 'o')]) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6Address ns3::Ipv6InterfaceAddress::GetAddress() const [member function] - cls.add_method('GetAddress', - 'ns3::Ipv6Address', - [], - is_const=True) - ## ipv6-interface-address.h (module 'internet'): uint32_t ns3::Ipv6InterfaceAddress::GetNsDadUid() const [member function] - cls.add_method('GetNsDadUid', - 'uint32_t', - [], - is_const=True) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6Prefix ns3::Ipv6InterfaceAddress::GetPrefix() const [member function] - cls.add_method('GetPrefix', - 'ns3::Ipv6Prefix', - [], - is_const=True) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::Scope_e ns3::Ipv6InterfaceAddress::GetScope() const [member function] - cls.add_method('GetScope', - 'ns3::Ipv6InterfaceAddress::Scope_e', - [], - is_const=True) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::State_e ns3::Ipv6InterfaceAddress::GetState() const [member function] - cls.add_method('GetState', - 'ns3::Ipv6InterfaceAddress::State_e', - [], - is_const=True) - ## ipv6-interface-address.h (module 'internet'): bool ns3::Ipv6InterfaceAddress::IsInSameSubnet(ns3::Ipv6Address b) const [member function] - cls.add_method('IsInSameSubnet', - 'bool', - [param('ns3::Ipv6Address', 'b')], - is_const=True) - ## ipv6-interface-address.h (module 'internet'): void ns3::Ipv6InterfaceAddress::SetAddress(ns3::Ipv6Address address) [member function] - cls.add_method('SetAddress', - 'void', - [param('ns3::Ipv6Address', 'address')]) - ## ipv6-interface-address.h (module 'internet'): void ns3::Ipv6InterfaceAddress::SetNsDadUid(uint32_t uid) [member function] - cls.add_method('SetNsDadUid', - 'void', - [param('uint32_t', 'uid')]) - ## ipv6-interface-address.h (module 'internet'): void ns3::Ipv6InterfaceAddress::SetScope(ns3::Ipv6InterfaceAddress::Scope_e scope) [member function] - cls.add_method('SetScope', - 'void', - [param('ns3::Ipv6InterfaceAddress::Scope_e', 'scope')]) - ## ipv6-interface-address.h (module 'internet'): void ns3::Ipv6InterfaceAddress::SetState(ns3::Ipv6InterfaceAddress::State_e state) [member function] - cls.add_method('SetState', - 'void', - [param('ns3::Ipv6InterfaceAddress::State_e', 'state')]) - return - def register_Ns3Ipv6Prefix_methods(root_module, cls): cls.add_binary_comparison_operator('!=') cls.add_output_stream_operator() @@ -5051,6 +4997,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -5076,6 +5027,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -5224,6 +5180,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -5251,11 +5211,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -5502,6 +5457,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -6287,10 +6288,10 @@ def register_Ns3WifiMac_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) - ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function] + ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, ns3::AcIndex ac) [member function] cls.add_method('ConfigureDcf', 'void', - [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], visibility='protected') ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] cls.add_method('FinishConfigureStandard', @@ -10166,165 +10167,6 @@ def register_Ns3Ipv6AddressValue_methods(root_module, cls): [param('ns3::Ipv6Address const &', 'value')]) return -def register_Ns3Ipv6Interface_methods(root_module, cls): - ## ipv6-interface.h (module 'internet'): ns3::Ipv6Interface::Ipv6Interface(ns3::Ipv6Interface const & arg0) [copy constructor] - cls.add_constructor([param('ns3::Ipv6Interface const &', 'arg0')]) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6Interface::Ipv6Interface() [constructor] - cls.add_constructor([]) - ## ipv6-interface.h (module 'internet'): bool ns3::Ipv6Interface::AddAddress(ns3::Ipv6InterfaceAddress iface) [member function] - cls.add_method('AddAddress', - 'bool', - [param('ns3::Ipv6InterfaceAddress', 'iface')]) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6InterfaceAddress ns3::Ipv6Interface::GetAddress(uint32_t index) const [member function] - cls.add_method('GetAddress', - 'ns3::Ipv6InterfaceAddress', - [param('uint32_t', 'index')], - is_const=True) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6InterfaceAddress ns3::Ipv6Interface::GetAddressMatchingDestination(ns3::Ipv6Address dst) [member function] - cls.add_method('GetAddressMatchingDestination', - 'ns3::Ipv6InterfaceAddress', - [param('ns3::Ipv6Address', 'dst')]) - ## ipv6-interface.h (module 'internet'): uint16_t ns3::Ipv6Interface::GetBaseReachableTime() const [member function] - cls.add_method('GetBaseReachableTime', - 'uint16_t', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): uint8_t ns3::Ipv6Interface::GetCurHopLimit() const [member function] - cls.add_method('GetCurHopLimit', - 'uint8_t', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): ns3::Ptr ns3::Ipv6Interface::GetDevice() const [member function] - cls.add_method('GetDevice', - 'ns3::Ptr< ns3::NetDevice >', - [], - is_const=True, is_virtual=True) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6InterfaceAddress ns3::Ipv6Interface::GetLinkLocalAddress() const [member function] - cls.add_method('GetLinkLocalAddress', - 'ns3::Ipv6InterfaceAddress', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): uint16_t ns3::Ipv6Interface::GetMetric() const [member function] - cls.add_method('GetMetric', - 'uint16_t', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): uint32_t ns3::Ipv6Interface::GetNAddresses() const [member function] - cls.add_method('GetNAddresses', - 'uint32_t', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): ns3::Ptr ns3::Ipv6Interface::GetNdiscCache() const [member function] - cls.add_method('GetNdiscCache', - 'ns3::Ptr< ns3::NdiscCache >', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): uint16_t ns3::Ipv6Interface::GetReachableTime() const [member function] - cls.add_method('GetReachableTime', - 'uint16_t', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): uint16_t ns3::Ipv6Interface::GetRetransTimer() const [member function] - cls.add_method('GetRetransTimer', - 'uint16_t', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): static ns3::TypeId ns3::Ipv6Interface::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## ipv6-interface.h (module 'internet'): bool ns3::Ipv6Interface::IsDown() const [member function] - cls.add_method('IsDown', - 'bool', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): bool ns3::Ipv6Interface::IsForwarding() const [member function] - cls.add_method('IsForwarding', - 'bool', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): bool ns3::Ipv6Interface::IsSolicitedMulticastAddress(ns3::Ipv6Address address) const [member function] - cls.add_method('IsSolicitedMulticastAddress', - 'bool', - [param('ns3::Ipv6Address', 'address')], - is_const=True) - ## ipv6-interface.h (module 'internet'): bool ns3::Ipv6Interface::IsUp() const [member function] - cls.add_method('IsUp', - 'bool', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6InterfaceAddress ns3::Ipv6Interface::RemoveAddress(uint32_t index) [member function] - cls.add_method('RemoveAddress', - 'ns3::Ipv6InterfaceAddress', - [param('uint32_t', 'index')]) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6InterfaceAddress ns3::Ipv6Interface::RemoveAddress(ns3::Ipv6Address address) [member function] - cls.add_method('RemoveAddress', - 'ns3::Ipv6InterfaceAddress', - [param('ns3::Ipv6Address', 'address')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::Send(ns3::Ptr p, ns3::Ipv6Header const & hdr, ns3::Ipv6Address dest) [member function] - cls.add_method('Send', - 'void', - [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv6Header const &', 'hdr'), param('ns3::Ipv6Address', 'dest')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetBaseReachableTime(uint16_t baseReachableTime) [member function] - cls.add_method('SetBaseReachableTime', - 'void', - [param('uint16_t', 'baseReachableTime')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetCurHopLimit(uint8_t curHopLimit) [member function] - cls.add_method('SetCurHopLimit', - 'void', - [param('uint8_t', 'curHopLimit')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetDevice(ns3::Ptr device) [member function] - cls.add_method('SetDevice', - 'void', - [param('ns3::Ptr< ns3::NetDevice >', 'device')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetDown() [member function] - cls.add_method('SetDown', - 'void', - []) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetForwarding(bool forward) [member function] - cls.add_method('SetForwarding', - 'void', - [param('bool', 'forward')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetMetric(uint16_t metric) [member function] - cls.add_method('SetMetric', - 'void', - [param('uint16_t', 'metric')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetNode(ns3::Ptr node) [member function] - cls.add_method('SetNode', - 'void', - [param('ns3::Ptr< ns3::Node >', 'node')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetNsDadUid(ns3::Ipv6Address address, uint32_t uid) [member function] - cls.add_method('SetNsDadUid', - 'void', - [param('ns3::Ipv6Address', 'address'), param('uint32_t', 'uid')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetReachableTime(uint16_t reachableTime) [member function] - cls.add_method('SetReachableTime', - 'void', - [param('uint16_t', 'reachableTime')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetRetransTimer(uint16_t retransTimer) [member function] - cls.add_method('SetRetransTimer', - 'void', - [param('uint16_t', 'retransTimer')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetState(ns3::Ipv6Address address, ns3::Ipv6InterfaceAddress::State_e state) [member function] - cls.add_method('SetState', - 'void', - [param('ns3::Ipv6Address', 'address'), param('ns3::Ipv6InterfaceAddress::State_e', 'state')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetTrafficControl(ns3::Ptr tc) [member function] - cls.add_method('SetTrafficControl', - 'void', - [param('ns3::Ptr< ns3::TrafficControlLayer >', 'tc')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetUp() [member function] - cls.add_method('SetUp', - 'void', - []) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='protected', is_virtual=True) - return - def register_Ns3Ipv6PrefixChecker_methods(root_module, cls): ## ipv6-address.h (module 'network'): ns3::Ipv6PrefixChecker::Ipv6PrefixChecker() [constructor] cls.add_constructor([]) @@ -10617,21 +10459,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -11124,6 +10966,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/dsr/bindings/modulegen__gcc_LP64.py b/src/dsr/bindings/modulegen__gcc_LP64.py index 61a26dba86e..e5649eb51ea 100644 --- a/src/dsr/bindings/modulegen__gcc_LP64.py +++ b/src/dsr/bindings/modulegen__gcc_LP64.py @@ -30,10 +30,10 @@ def register_types(module): module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') - ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] - module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], import_from_module='ns.wifi') + ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] + module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], 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] @@ -118,12 +118,6 @@ def register_types(module): module.add_class('Ipv6Address', import_from_module='ns.network') ## ipv6-address.h (module 'network'): ns3::Ipv6Address [class] root_module['ns3::Ipv6Address'].implicitly_converts_to(root_module['ns3::Address']) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress [class] - module.add_class('Ipv6InterfaceAddress', import_from_module='ns.internet') - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::State_e [enumeration] - module.add_enum('State_e', ['TENTATIVE', 'DEPRECATED', 'PREFERRED', 'PERMANENT', 'HOMEADDRESS', 'TENTATIVE_OPTIMISTIC', 'INVALID'], outer_class=root_module['ns3::Ipv6InterfaceAddress'], import_from_module='ns.internet') - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::Scope_e [enumeration] - module.add_enum('Scope_e', ['HOST', 'LINKLOCAL', 'GLOBAL'], outer_class=root_module['ns3::Ipv6InterfaceAddress'], import_from_module='ns.internet') ## ipv6-address.h (module 'network'): ns3::Ipv6Prefix [class] module.add_class('Ipv6Prefix', import_from_module='ns.network') ## mac48-address.h (module 'network'): ns3::Mac48Address [class] @@ -302,6 +296,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -312,6 +308,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -434,8 +432,6 @@ def register_types(module): module.add_class('Ipv6AddressChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## ipv6-address.h (module 'network'): ns3::Ipv6AddressValue [class] module.add_class('Ipv6AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6Interface [class] - module.add_class('Ipv6Interface', import_from_module='ns.internet', parent=root_module['ns3::Object']) ## ipv6-address.h (module 'network'): ns3::Ipv6PrefixChecker [class] module.add_class('Ipv6PrefixChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## ipv6-address.h (module 'network'): ns3::Ipv6PrefixValue [class] @@ -472,6 +468,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## ssid.h (module 'wifi'): ns3::Ssid [class] module.add_class('Ssid', import_from_module='ns.wifi', parent=root_module['ns3::WifiInformationElement']) ## ssid.h (module 'wifi'): ns3::SsidChecker [class] @@ -786,7 +784,6 @@ def register_methods(root_module): register_Ns3Ipv4InterfaceAddress_methods(root_module, root_module['ns3::Ipv4InterfaceAddress']) register_Ns3Ipv4Mask_methods(root_module, root_module['ns3::Ipv4Mask']) register_Ns3Ipv6Address_methods(root_module, root_module['ns3::Ipv6Address']) - register_Ns3Ipv6InterfaceAddress_methods(root_module, root_module['ns3::Ipv6InterfaceAddress']) register_Ns3Ipv6Prefix_methods(root_module, root_module['ns3::Ipv6Prefix']) register_Ns3Mac48Address_methods(root_module, root_module['ns3::Mac48Address']) register_Ns3NodeContainer_methods(root_module, root_module['ns3::NodeContainer']) @@ -860,6 +857,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -913,7 +911,6 @@ def register_methods(root_module): register_Ns3Ipv4RoutingProtocol_methods(root_module, root_module['ns3::Ipv4RoutingProtocol']) register_Ns3Ipv6AddressChecker_methods(root_module, root_module['ns3::Ipv6AddressChecker']) register_Ns3Ipv6AddressValue_methods(root_module, root_module['ns3::Ipv6AddressValue']) - register_Ns3Ipv6Interface_methods(root_module, root_module['ns3::Ipv6Interface']) register_Ns3Ipv6PrefixChecker_methods(root_module, root_module['ns3::Ipv6PrefixChecker']) register_Ns3Ipv6PrefixValue_methods(root_module, root_module['ns3::Ipv6PrefixValue']) register_Ns3LogNormalRandomVariable_methods(root_module, root_module['ns3::LogNormalRandomVariable']) @@ -1668,6 +1665,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1681,6 +1683,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3IntToType__0_methods(root_module, cls): @@ -2173,66 +2179,6 @@ def register_Ns3Ipv6Address_methods(root_module, cls): [param('uint8_t *', 'address')]) return -def register_Ns3Ipv6InterfaceAddress_methods(root_module, cls): - cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() - cls.add_binary_comparison_operator('==') - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress() [constructor] - cls.add_constructor([]) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress(ns3::Ipv6Address address) [constructor] - cls.add_constructor([param('ns3::Ipv6Address', 'address')]) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress(ns3::Ipv6Address address, ns3::Ipv6Prefix prefix) [constructor] - cls.add_constructor([param('ns3::Ipv6Address', 'address'), param('ns3::Ipv6Prefix', 'prefix')]) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::Ipv6InterfaceAddress(ns3::Ipv6InterfaceAddress const & o) [copy constructor] - cls.add_constructor([param('ns3::Ipv6InterfaceAddress const &', 'o')]) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6Address ns3::Ipv6InterfaceAddress::GetAddress() const [member function] - cls.add_method('GetAddress', - 'ns3::Ipv6Address', - [], - is_const=True) - ## ipv6-interface-address.h (module 'internet'): uint32_t ns3::Ipv6InterfaceAddress::GetNsDadUid() const [member function] - cls.add_method('GetNsDadUid', - 'uint32_t', - [], - is_const=True) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6Prefix ns3::Ipv6InterfaceAddress::GetPrefix() const [member function] - cls.add_method('GetPrefix', - 'ns3::Ipv6Prefix', - [], - is_const=True) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::Scope_e ns3::Ipv6InterfaceAddress::GetScope() const [member function] - cls.add_method('GetScope', - 'ns3::Ipv6InterfaceAddress::Scope_e', - [], - is_const=True) - ## ipv6-interface-address.h (module 'internet'): ns3::Ipv6InterfaceAddress::State_e ns3::Ipv6InterfaceAddress::GetState() const [member function] - cls.add_method('GetState', - 'ns3::Ipv6InterfaceAddress::State_e', - [], - is_const=True) - ## ipv6-interface-address.h (module 'internet'): bool ns3::Ipv6InterfaceAddress::IsInSameSubnet(ns3::Ipv6Address b) const [member function] - cls.add_method('IsInSameSubnet', - 'bool', - [param('ns3::Ipv6Address', 'b')], - is_const=True) - ## ipv6-interface-address.h (module 'internet'): void ns3::Ipv6InterfaceAddress::SetAddress(ns3::Ipv6Address address) [member function] - cls.add_method('SetAddress', - 'void', - [param('ns3::Ipv6Address', 'address')]) - ## ipv6-interface-address.h (module 'internet'): void ns3::Ipv6InterfaceAddress::SetNsDadUid(uint32_t uid) [member function] - cls.add_method('SetNsDadUid', - 'void', - [param('uint32_t', 'uid')]) - ## ipv6-interface-address.h (module 'internet'): void ns3::Ipv6InterfaceAddress::SetScope(ns3::Ipv6InterfaceAddress::Scope_e scope) [member function] - cls.add_method('SetScope', - 'void', - [param('ns3::Ipv6InterfaceAddress::Scope_e', 'scope')]) - ## ipv6-interface-address.h (module 'internet'): void ns3::Ipv6InterfaceAddress::SetState(ns3::Ipv6InterfaceAddress::State_e state) [member function] - cls.add_method('SetState', - 'void', - [param('ns3::Ipv6InterfaceAddress::State_e', 'state')]) - return - def register_Ns3Ipv6Prefix_methods(root_module, cls): cls.add_binary_comparison_operator('!=') cls.add_output_stream_operator() @@ -5051,6 +4997,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -5076,6 +5027,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -5224,6 +5180,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -5251,11 +5211,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -5502,6 +5457,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -6287,10 +6288,10 @@ def register_Ns3WifiMac_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) - ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function] + ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, ns3::AcIndex ac) [member function] cls.add_method('ConfigureDcf', 'void', - [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], visibility='protected') ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] cls.add_method('FinishConfigureStandard', @@ -10166,165 +10167,6 @@ def register_Ns3Ipv6AddressValue_methods(root_module, cls): [param('ns3::Ipv6Address const &', 'value')]) return -def register_Ns3Ipv6Interface_methods(root_module, cls): - ## ipv6-interface.h (module 'internet'): ns3::Ipv6Interface::Ipv6Interface(ns3::Ipv6Interface const & arg0) [copy constructor] - cls.add_constructor([param('ns3::Ipv6Interface const &', 'arg0')]) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6Interface::Ipv6Interface() [constructor] - cls.add_constructor([]) - ## ipv6-interface.h (module 'internet'): bool ns3::Ipv6Interface::AddAddress(ns3::Ipv6InterfaceAddress iface) [member function] - cls.add_method('AddAddress', - 'bool', - [param('ns3::Ipv6InterfaceAddress', 'iface')]) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6InterfaceAddress ns3::Ipv6Interface::GetAddress(uint32_t index) const [member function] - cls.add_method('GetAddress', - 'ns3::Ipv6InterfaceAddress', - [param('uint32_t', 'index')], - is_const=True) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6InterfaceAddress ns3::Ipv6Interface::GetAddressMatchingDestination(ns3::Ipv6Address dst) [member function] - cls.add_method('GetAddressMatchingDestination', - 'ns3::Ipv6InterfaceAddress', - [param('ns3::Ipv6Address', 'dst')]) - ## ipv6-interface.h (module 'internet'): uint16_t ns3::Ipv6Interface::GetBaseReachableTime() const [member function] - cls.add_method('GetBaseReachableTime', - 'uint16_t', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): uint8_t ns3::Ipv6Interface::GetCurHopLimit() const [member function] - cls.add_method('GetCurHopLimit', - 'uint8_t', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): ns3::Ptr ns3::Ipv6Interface::GetDevice() const [member function] - cls.add_method('GetDevice', - 'ns3::Ptr< ns3::NetDevice >', - [], - is_const=True, is_virtual=True) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6InterfaceAddress ns3::Ipv6Interface::GetLinkLocalAddress() const [member function] - cls.add_method('GetLinkLocalAddress', - 'ns3::Ipv6InterfaceAddress', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): uint16_t ns3::Ipv6Interface::GetMetric() const [member function] - cls.add_method('GetMetric', - 'uint16_t', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): uint32_t ns3::Ipv6Interface::GetNAddresses() const [member function] - cls.add_method('GetNAddresses', - 'uint32_t', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): ns3::Ptr ns3::Ipv6Interface::GetNdiscCache() const [member function] - cls.add_method('GetNdiscCache', - 'ns3::Ptr< ns3::NdiscCache >', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): uint16_t ns3::Ipv6Interface::GetReachableTime() const [member function] - cls.add_method('GetReachableTime', - 'uint16_t', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): uint16_t ns3::Ipv6Interface::GetRetransTimer() const [member function] - cls.add_method('GetRetransTimer', - 'uint16_t', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): static ns3::TypeId ns3::Ipv6Interface::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## ipv6-interface.h (module 'internet'): bool ns3::Ipv6Interface::IsDown() const [member function] - cls.add_method('IsDown', - 'bool', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): bool ns3::Ipv6Interface::IsForwarding() const [member function] - cls.add_method('IsForwarding', - 'bool', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): bool ns3::Ipv6Interface::IsSolicitedMulticastAddress(ns3::Ipv6Address address) const [member function] - cls.add_method('IsSolicitedMulticastAddress', - 'bool', - [param('ns3::Ipv6Address', 'address')], - is_const=True) - ## ipv6-interface.h (module 'internet'): bool ns3::Ipv6Interface::IsUp() const [member function] - cls.add_method('IsUp', - 'bool', - [], - is_const=True) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6InterfaceAddress ns3::Ipv6Interface::RemoveAddress(uint32_t index) [member function] - cls.add_method('RemoveAddress', - 'ns3::Ipv6InterfaceAddress', - [param('uint32_t', 'index')]) - ## ipv6-interface.h (module 'internet'): ns3::Ipv6InterfaceAddress ns3::Ipv6Interface::RemoveAddress(ns3::Ipv6Address address) [member function] - cls.add_method('RemoveAddress', - 'ns3::Ipv6InterfaceAddress', - [param('ns3::Ipv6Address', 'address')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::Send(ns3::Ptr p, ns3::Ipv6Header const & hdr, ns3::Ipv6Address dest) [member function] - cls.add_method('Send', - 'void', - [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv6Header const &', 'hdr'), param('ns3::Ipv6Address', 'dest')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetBaseReachableTime(uint16_t baseReachableTime) [member function] - cls.add_method('SetBaseReachableTime', - 'void', - [param('uint16_t', 'baseReachableTime')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetCurHopLimit(uint8_t curHopLimit) [member function] - cls.add_method('SetCurHopLimit', - 'void', - [param('uint8_t', 'curHopLimit')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetDevice(ns3::Ptr device) [member function] - cls.add_method('SetDevice', - 'void', - [param('ns3::Ptr< ns3::NetDevice >', 'device')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetDown() [member function] - cls.add_method('SetDown', - 'void', - []) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetForwarding(bool forward) [member function] - cls.add_method('SetForwarding', - 'void', - [param('bool', 'forward')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetMetric(uint16_t metric) [member function] - cls.add_method('SetMetric', - 'void', - [param('uint16_t', 'metric')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetNode(ns3::Ptr node) [member function] - cls.add_method('SetNode', - 'void', - [param('ns3::Ptr< ns3::Node >', 'node')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetNsDadUid(ns3::Ipv6Address address, uint32_t uid) [member function] - cls.add_method('SetNsDadUid', - 'void', - [param('ns3::Ipv6Address', 'address'), param('uint32_t', 'uid')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetReachableTime(uint16_t reachableTime) [member function] - cls.add_method('SetReachableTime', - 'void', - [param('uint16_t', 'reachableTime')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetRetransTimer(uint16_t retransTimer) [member function] - cls.add_method('SetRetransTimer', - 'void', - [param('uint16_t', 'retransTimer')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetState(ns3::Ipv6Address address, ns3::Ipv6InterfaceAddress::State_e state) [member function] - cls.add_method('SetState', - 'void', - [param('ns3::Ipv6Address', 'address'), param('ns3::Ipv6InterfaceAddress::State_e', 'state')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetTrafficControl(ns3::Ptr tc) [member function] - cls.add_method('SetTrafficControl', - 'void', - [param('ns3::Ptr< ns3::TrafficControlLayer >', 'tc')]) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::SetUp() [member function] - cls.add_method('SetUp', - 'void', - []) - ## ipv6-interface.h (module 'internet'): void ns3::Ipv6Interface::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='protected', is_virtual=True) - return - def register_Ns3Ipv6PrefixChecker_methods(root_module, cls): ## ipv6-address.h (module 'network'): ns3::Ipv6PrefixChecker::Ipv6PrefixChecker() [constructor] cls.add_constructor([]) @@ -10617,21 +10459,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -11124,6 +10966,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/energy/bindings/modulegen__gcc_ILP32.py b/src/energy/bindings/modulegen__gcc_ILP32.py index 1dc1d53fd61..803dba9fd52 100644 --- a/src/energy/bindings/modulegen__gcc_ILP32.py +++ b/src/energy/bindings/modulegen__gcc_ILP32.py @@ -232,6 +232,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## rv-battery-model.h (module 'energy'): ns3::RvBatteryModel [class] module.add_class('RvBatteryModel', parent=root_module['ns3::EnergySource']) ## simple-device-energy-model.h (module 'energy'): ns3::SimpleDeviceEnergyModel [class] @@ -3976,21 +3978,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4241,6 +4243,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/energy/bindings/modulegen__gcc_LP64.py b/src/energy/bindings/modulegen__gcc_LP64.py index 1dc1d53fd61..803dba9fd52 100644 --- a/src/energy/bindings/modulegen__gcc_LP64.py +++ b/src/energy/bindings/modulegen__gcc_LP64.py @@ -232,6 +232,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## rv-battery-model.h (module 'energy'): ns3::RvBatteryModel [class] module.add_class('RvBatteryModel', parent=root_module['ns3::EnergySource']) ## simple-device-energy-model.h (module 'energy'): ns3::SimpleDeviceEnergyModel [class] @@ -3976,21 +3978,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4241,6 +4243,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/fd-net-device/bindings/modulegen__gcc_ILP32.py b/src/fd-net-device/bindings/modulegen__gcc_ILP32.py index 09547079ee6..5cd4b016a14 100644 --- a/src/fd-net-device/bindings/modulegen__gcc_ILP32.py +++ b/src/fd-net-device/bindings/modulegen__gcc_ILP32.py @@ -256,6 +256,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## tap-fd-net-device-helper.h (module 'fd-net-device'): ns3::TapFdNetDeviceHelper [class] module.add_class('TapFdNetDeviceHelper', parent=root_module['ns3::EmuFdNetDeviceHelper']) ## nstime.h (module 'core'): ns3::TimeValue [class] @@ -4100,21 +4102,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4519,6 +4521,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/fd-net-device/bindings/modulegen__gcc_LP64.py b/src/fd-net-device/bindings/modulegen__gcc_LP64.py index 1d795d91a42..8907b267e5f 100644 --- a/src/fd-net-device/bindings/modulegen__gcc_LP64.py +++ b/src/fd-net-device/bindings/modulegen__gcc_LP64.py @@ -256,6 +256,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## tap-fd-net-device-helper.h (module 'fd-net-device'): ns3::TapFdNetDeviceHelper [class] module.add_class('TapFdNetDeviceHelper', parent=root_module['ns3::EmuFdNetDeviceHelper']) ## nstime.h (module 'core'): ns3::TimeValue [class] @@ -4100,21 +4102,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4519,6 +4521,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/flow-monitor/bindings/modulegen__gcc_ILP32.py b/src/flow-monitor/bindings/modulegen__gcc_ILP32.py index 96e5b5f2c4c..437067a5924 100644 --- a/src/flow-monitor/bindings/modulegen__gcc_ILP32.py +++ b/src/flow-monitor/bindings/modulegen__gcc_ILP32.py @@ -194,6 +194,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -204,6 +206,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -320,6 +324,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -475,6 +481,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1242,6 +1249,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1255,6 +1267,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -3397,6 +3413,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -3422,6 +3443,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -3570,6 +3596,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -3597,11 +3627,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -3848,6 +3873,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -6132,21 +6203,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -6551,6 +6622,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/flow-monitor/bindings/modulegen__gcc_LP64.py b/src/flow-monitor/bindings/modulegen__gcc_LP64.py index ab2f251b304..e836aad3ec3 100644 --- a/src/flow-monitor/bindings/modulegen__gcc_LP64.py +++ b/src/flow-monitor/bindings/modulegen__gcc_LP64.py @@ -194,6 +194,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -204,6 +206,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -320,6 +324,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -475,6 +481,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1242,6 +1249,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1255,6 +1267,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -3397,6 +3413,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -3422,6 +3443,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -3570,6 +3596,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -3597,11 +3627,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -3848,6 +3873,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -6132,21 +6203,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -6551,6 +6622,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/internet-apps/bindings/modulegen__gcc_ILP32.py b/src/internet-apps/bindings/modulegen__gcc_ILP32.py index 96ffed6cdaa..7b61db4818e 100644 --- a/src/internet-apps/bindings/modulegen__gcc_ILP32.py +++ b/src/internet-apps/bindings/modulegen__gcc_ILP32.py @@ -138,6 +138,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -148,6 +150,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -244,6 +248,8 @@ def register_types(module): module.add_class('Ping6', parent=root_module['ns3::Application']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## radvd.h (module 'internet-apps'): ns3::Radvd [class] module.add_class('Radvd', parent=root_module['ns3::Application']) ## radvd-interface.h (module 'internet-apps'): ns3::RadvdInterface [class] @@ -378,6 +384,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -861,6 +868,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -874,6 +886,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -2470,6 +2486,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -2495,6 +2516,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -2643,6 +2669,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -2670,11 +2700,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -2921,6 +2946,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -4375,21 +4446,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4683,6 +4754,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/internet-apps/bindings/modulegen__gcc_LP64.py b/src/internet-apps/bindings/modulegen__gcc_LP64.py index 96ffed6cdaa..7b61db4818e 100644 --- a/src/internet-apps/bindings/modulegen__gcc_LP64.py +++ b/src/internet-apps/bindings/modulegen__gcc_LP64.py @@ -138,6 +138,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -148,6 +150,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -244,6 +248,8 @@ def register_types(module): module.add_class('Ping6', parent=root_module['ns3::Application']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## radvd.h (module 'internet-apps'): ns3::Radvd [class] module.add_class('Radvd', parent=root_module['ns3::Application']) ## radvd-interface.h (module 'internet-apps'): ns3::RadvdInterface [class] @@ -378,6 +384,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -861,6 +868,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -874,6 +886,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -2470,6 +2486,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -2495,6 +2516,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -2643,6 +2669,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -2670,11 +2700,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -2921,6 +2946,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -4375,21 +4446,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4683,6 +4754,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/internet/bindings/callbacks_list.py b/src/internet/bindings/callbacks_list.py index d8e2683ae4b..85920c91ffe 100644 --- a/src/internet/bindings/callbacks_list.py +++ b/src/internet/bindings/callbacks_list.py @@ -2,6 +2,7 @@ ['void', 'ns3::Ipv6Address', 'unsigned char', 'unsigned char', 'unsigned char', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ipv4Address', 'unsigned char', 'unsigned char', 'unsigned char', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], + ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', '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::empty', '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'], @@ -13,5 +14,4 @@ ['bool', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Ipv4Address', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], - ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ] diff --git a/src/internet/bindings/modulegen__gcc_ILP32.py b/src/internet/bindings/modulegen__gcc_ILP32.py index 1986ee563c1..dfc495c447b 100644 --- a/src/internet/bindings/modulegen__gcc_ILP32.py +++ b/src/internet/bindings/modulegen__gcc_ILP32.py @@ -446,6 +446,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket-factory.h (module 'network'): ns3::SocketFactory [class] @@ -458,6 +460,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## tcp-congestion-ops.h (module 'internet'): ns3::TcpCongestionOps [class] @@ -722,16 +726,12 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## random-variable-stream.h (module 'core'): ns3::ParetoRandomVariable [class] module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) - ## ipv4-packet-filter.h (module 'internet'): ns3::PfifoFastIpv4PacketFilter [class] - module.add_class('PfifoFastIpv4PacketFilter', parent=root_module['ns3::Ipv4PacketFilter']) - ## ipv4-packet-filter.h (module 'internet'): ns3::PfifoFastIpv4PacketFilter::Ipv4TrafficClassMode [enumeration] - module.add_enum('Ipv4TrafficClassMode', ['PF_MODE_TOS', 'PF_MODE_DSCP'], outer_class=root_module['ns3::PfifoFastIpv4PacketFilter']) - ## ipv6-packet-filter.h (module 'internet'): ns3::PfifoFastIpv6PacketFilter [class] - module.add_class('PfifoFastIpv6PacketFilter', parent=root_module['ns3::Ipv6PacketFilter']) ## probe.h (module 'stats'): ns3::Probe [class] module.add_class('Probe', import_from_module='ns.stats', parent=root_module['ns3::DataCollectionObject']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## rip.h (module 'internet'): ns3::Rip [class] module.add_class('Rip', parent=root_module['ns3::Ipv4RoutingProtocol']) ## rip.h (module 'internet'): ns3::Rip::SplitHorizonType_e [enumeration] @@ -1089,6 +1089,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3TcpCongestionOps_methods(root_module, root_module['ns3::TcpCongestionOps']) register_Ns3TcpHeader_methods(root_module, root_module['ns3::TcpHeader']) @@ -1207,8 +1208,6 @@ def register_methods(root_module): register_Ns3OutputStreamWrapper_methods(root_module, root_module['ns3::OutputStreamWrapper']) register_Ns3Packet_methods(root_module, root_module['ns3::Packet']) register_Ns3ParetoRandomVariable_methods(root_module, root_module['ns3::ParetoRandomVariable']) - register_Ns3PfifoFastIpv4PacketFilter_methods(root_module, root_module['ns3::PfifoFastIpv4PacketFilter']) - register_Ns3PfifoFastIpv6PacketFilter_methods(root_module, root_module['ns3::PfifoFastIpv6PacketFilter']) register_Ns3Probe_methods(root_module, root_module['ns3::Probe']) register_Ns3QueueItem_methods(root_module, root_module['ns3::QueueItem']) register_Ns3Rip_methods(root_module, root_module['ns3::Rip']) @@ -2381,6 +2380,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -2394,6 +2398,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3IntToType__0_methods(root_module, cls): @@ -8955,6 +8963,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -8980,6 +8993,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -9128,6 +9146,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -9155,11 +9177,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -9423,6 +9440,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -15918,21 +15981,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -16411,40 +16474,6 @@ def register_Ns3ParetoRandomVariable_methods(root_module, cls): is_virtual=True) return -def register_Ns3PfifoFastIpv4PacketFilter_methods(root_module, cls): - ## ipv4-packet-filter.h (module 'internet'): ns3::PfifoFastIpv4PacketFilter::PfifoFastIpv4PacketFilter(ns3::PfifoFastIpv4PacketFilter const & arg0) [copy constructor] - cls.add_constructor([param('ns3::PfifoFastIpv4PacketFilter const &', 'arg0')]) - ## ipv4-packet-filter.h (module 'internet'): ns3::PfifoFastIpv4PacketFilter::PfifoFastIpv4PacketFilter() [constructor] - cls.add_constructor([]) - ## ipv4-packet-filter.h (module 'internet'): static ns3::TypeId ns3::PfifoFastIpv4PacketFilter::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## ipv4-packet-filter.h (module 'internet'): int32_t ns3::PfifoFastIpv4PacketFilter::DoClassify(ns3::Ptr item) const [member function] - cls.add_method('DoClassify', - 'int32_t', - [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_const=True, visibility='private', is_virtual=True) - return - -def register_Ns3PfifoFastIpv6PacketFilter_methods(root_module, cls): - ## ipv6-packet-filter.h (module 'internet'): ns3::PfifoFastIpv6PacketFilter::PfifoFastIpv6PacketFilter(ns3::PfifoFastIpv6PacketFilter const & arg0) [copy constructor] - cls.add_constructor([param('ns3::PfifoFastIpv6PacketFilter const &', 'arg0')]) - ## ipv6-packet-filter.h (module 'internet'): ns3::PfifoFastIpv6PacketFilter::PfifoFastIpv6PacketFilter() [constructor] - cls.add_constructor([]) - ## ipv6-packet-filter.h (module 'internet'): static ns3::TypeId ns3::PfifoFastIpv6PacketFilter::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## ipv6-packet-filter.h (module 'internet'): int32_t ns3::PfifoFastIpv6PacketFilter::DoClassify(ns3::Ptr item) const [member function] - cls.add_method('DoClassify', - 'int32_t', - [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_const=True, visibility='private', is_virtual=True) - return - def register_Ns3Probe_methods(root_module, cls): ## probe.h (module 'stats'): ns3::Probe::Probe(ns3::Probe const & arg0) [copy constructor] cls.add_constructor([param('ns3::Probe const &', 'arg0')]) @@ -16486,6 +16515,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', @@ -18285,6 +18319,11 @@ def register_Ns3Ipv4QueueDiscItem_methods(root_module, cls): 'void', [param('std::ostream &', 'os')], is_const=True, is_virtual=True) + ## ipv4-queue-disc-item.h (module 'internet'): bool ns3::Ipv4QueueDiscItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) return def register_Ns3Ipv6QueueDiscItem_methods(root_module, cls): @@ -18310,6 +18349,11 @@ def register_Ns3Ipv6QueueDiscItem_methods(root_module, cls): 'void', [param('std::ostream &', 'os')], is_const=True, is_virtual=True) + ## ipv6-queue-disc-item.h (module 'internet'): bool ns3::Ipv6QueueDiscItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) return def register_Ns3HashImplementation_methods(root_module, cls): diff --git a/src/internet/bindings/modulegen__gcc_LP64.py b/src/internet/bindings/modulegen__gcc_LP64.py index 1986ee563c1..dfc495c447b 100644 --- a/src/internet/bindings/modulegen__gcc_LP64.py +++ b/src/internet/bindings/modulegen__gcc_LP64.py @@ -446,6 +446,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket-factory.h (module 'network'): ns3::SocketFactory [class] @@ -458,6 +460,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## tcp-congestion-ops.h (module 'internet'): ns3::TcpCongestionOps [class] @@ -722,16 +726,12 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## random-variable-stream.h (module 'core'): ns3::ParetoRandomVariable [class] module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) - ## ipv4-packet-filter.h (module 'internet'): ns3::PfifoFastIpv4PacketFilter [class] - module.add_class('PfifoFastIpv4PacketFilter', parent=root_module['ns3::Ipv4PacketFilter']) - ## ipv4-packet-filter.h (module 'internet'): ns3::PfifoFastIpv4PacketFilter::Ipv4TrafficClassMode [enumeration] - module.add_enum('Ipv4TrafficClassMode', ['PF_MODE_TOS', 'PF_MODE_DSCP'], outer_class=root_module['ns3::PfifoFastIpv4PacketFilter']) - ## ipv6-packet-filter.h (module 'internet'): ns3::PfifoFastIpv6PacketFilter [class] - module.add_class('PfifoFastIpv6PacketFilter', parent=root_module['ns3::Ipv6PacketFilter']) ## probe.h (module 'stats'): ns3::Probe [class] module.add_class('Probe', import_from_module='ns.stats', parent=root_module['ns3::DataCollectionObject']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## rip.h (module 'internet'): ns3::Rip [class] module.add_class('Rip', parent=root_module['ns3::Ipv4RoutingProtocol']) ## rip.h (module 'internet'): ns3::Rip::SplitHorizonType_e [enumeration] @@ -1089,6 +1089,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3TcpCongestionOps_methods(root_module, root_module['ns3::TcpCongestionOps']) register_Ns3TcpHeader_methods(root_module, root_module['ns3::TcpHeader']) @@ -1207,8 +1208,6 @@ def register_methods(root_module): register_Ns3OutputStreamWrapper_methods(root_module, root_module['ns3::OutputStreamWrapper']) register_Ns3Packet_methods(root_module, root_module['ns3::Packet']) register_Ns3ParetoRandomVariable_methods(root_module, root_module['ns3::ParetoRandomVariable']) - register_Ns3PfifoFastIpv4PacketFilter_methods(root_module, root_module['ns3::PfifoFastIpv4PacketFilter']) - register_Ns3PfifoFastIpv6PacketFilter_methods(root_module, root_module['ns3::PfifoFastIpv6PacketFilter']) register_Ns3Probe_methods(root_module, root_module['ns3::Probe']) register_Ns3QueueItem_methods(root_module, root_module['ns3::QueueItem']) register_Ns3Rip_methods(root_module, root_module['ns3::Rip']) @@ -2381,6 +2380,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -2394,6 +2398,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3IntToType__0_methods(root_module, cls): @@ -8955,6 +8963,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -8980,6 +8993,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -9128,6 +9146,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -9155,11 +9177,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -9423,6 +9440,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -15918,21 +15981,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -16411,40 +16474,6 @@ def register_Ns3ParetoRandomVariable_methods(root_module, cls): is_virtual=True) return -def register_Ns3PfifoFastIpv4PacketFilter_methods(root_module, cls): - ## ipv4-packet-filter.h (module 'internet'): ns3::PfifoFastIpv4PacketFilter::PfifoFastIpv4PacketFilter(ns3::PfifoFastIpv4PacketFilter const & arg0) [copy constructor] - cls.add_constructor([param('ns3::PfifoFastIpv4PacketFilter const &', 'arg0')]) - ## ipv4-packet-filter.h (module 'internet'): ns3::PfifoFastIpv4PacketFilter::PfifoFastIpv4PacketFilter() [constructor] - cls.add_constructor([]) - ## ipv4-packet-filter.h (module 'internet'): static ns3::TypeId ns3::PfifoFastIpv4PacketFilter::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## ipv4-packet-filter.h (module 'internet'): int32_t ns3::PfifoFastIpv4PacketFilter::DoClassify(ns3::Ptr item) const [member function] - cls.add_method('DoClassify', - 'int32_t', - [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_const=True, visibility='private', is_virtual=True) - return - -def register_Ns3PfifoFastIpv6PacketFilter_methods(root_module, cls): - ## ipv6-packet-filter.h (module 'internet'): ns3::PfifoFastIpv6PacketFilter::PfifoFastIpv6PacketFilter(ns3::PfifoFastIpv6PacketFilter const & arg0) [copy constructor] - cls.add_constructor([param('ns3::PfifoFastIpv6PacketFilter const &', 'arg0')]) - ## ipv6-packet-filter.h (module 'internet'): ns3::PfifoFastIpv6PacketFilter::PfifoFastIpv6PacketFilter() [constructor] - cls.add_constructor([]) - ## ipv6-packet-filter.h (module 'internet'): static ns3::TypeId ns3::PfifoFastIpv6PacketFilter::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## ipv6-packet-filter.h (module 'internet'): int32_t ns3::PfifoFastIpv6PacketFilter::DoClassify(ns3::Ptr item) const [member function] - cls.add_method('DoClassify', - 'int32_t', - [param('ns3::Ptr< ns3::QueueDiscItem >', 'item')], - is_const=True, visibility='private', is_virtual=True) - return - def register_Ns3Probe_methods(root_module, cls): ## probe.h (module 'stats'): ns3::Probe::Probe(ns3::Probe const & arg0) [copy constructor] cls.add_constructor([param('ns3::Probe const &', 'arg0')]) @@ -16486,6 +16515,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', @@ -18285,6 +18319,11 @@ def register_Ns3Ipv4QueueDiscItem_methods(root_module, cls): 'void', [param('std::ostream &', 'os')], is_const=True, is_virtual=True) + ## ipv4-queue-disc-item.h (module 'internet'): bool ns3::Ipv4QueueDiscItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) return def register_Ns3Ipv6QueueDiscItem_methods(root_module, cls): @@ -18310,6 +18349,11 @@ def register_Ns3Ipv6QueueDiscItem_methods(root_module, cls): 'void', [param('std::ostream &', 'os')], is_const=True, is_virtual=True) + ## ipv6-queue-disc-item.h (module 'internet'): bool ns3::Ipv6QueueDiscItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) return def register_Ns3HashImplementation_methods(root_module, cls): diff --git a/src/lr-wpan/bindings/modulegen__gcc_ILP32.py b/src/lr-wpan/bindings/modulegen__gcc_ILP32.py index bba809d4884..0cf2b327b15 100644 --- a/src/lr-wpan/bindings/modulegen__gcc_ILP32.py +++ b/src/lr-wpan/bindings/modulegen__gcc_ILP32.py @@ -20,20 +20,20 @@ def module_init(): def register_types(module): root_module = module.get_root() - ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPhyEnumeration [enumeration] - module.add_enum('LrWpanPhyEnumeration', ['IEEE_802_15_4_PHY_BUSY', 'IEEE_802_15_4_PHY_BUSY_RX', 'IEEE_802_15_4_PHY_BUSY_TX', 'IEEE_802_15_4_PHY_FORCE_TRX_OFF', 'IEEE_802_15_4_PHY_IDLE', 'IEEE_802_15_4_PHY_INVALID_PARAMETER', 'IEEE_802_15_4_PHY_RX_ON', 'IEEE_802_15_4_PHY_SUCCESS', 'IEEE_802_15_4_PHY_TRX_OFF', 'IEEE_802_15_4_PHY_TX_ON', 'IEEE_802_15_4_PHY_UNSUPPORTED_ATTRIBUTE', 'IEEE_802_15_4_PHY_READ_ONLY', 'IEEE_802_15_4_PHY_UNSPECIFIED']) + ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPhyOption [enumeration] + module.add_enum('LrWpanPhyOption', ['IEEE_802_15_4_868MHZ_BPSK', 'IEEE_802_15_4_915MHZ_BPSK', 'IEEE_802_15_4_868MHZ_ASK', 'IEEE_802_15_4_915MHZ_ASK', 'IEEE_802_15_4_868MHZ_OQPSK', 'IEEE_802_15_4_915MHZ_OQPSK', 'IEEE_802_15_4_2_4GHZ_OQPSK', 'IEEE_802_15_4_INVALID_PHY_OPTION']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanTxOption [enumeration] module.add_enum('LrWpanTxOption', ['TX_OPTION_NONE', 'TX_OPTION_ACK', 'TX_OPTION_GTS', 'TX_OPTION_INDIRECT']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanMcpsDataConfirmStatus [enumeration] module.add_enum('LrWpanMcpsDataConfirmStatus', ['IEEE_802_15_4_SUCCESS', 'IEEE_802_15_4_TRANSACTION_OVERFLOW', 'IEEE_802_15_4_TRANSACTION_EXPIRED', 'IEEE_802_15_4_CHANNEL_ACCESS_FAILURE', 'IEEE_802_15_4_INVALID_ADDRESS', 'IEEE_802_15_4_INVALID_GTS', 'IEEE_802_15_4_NO_ACK', 'IEEE_802_15_4_COUNTER_ERROR', 'IEEE_802_15_4_FRAME_TOO_LONG', 'IEEE_802_15_4_UNAVAILABLE_KEY', 'IEEE_802_15_4_UNSUPPORTED_SECURITY', 'IEEE_802_15_4_INVALID_PARAMETER']) + ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPhyEnumeration [enumeration] + module.add_enum('LrWpanPhyEnumeration', ['IEEE_802_15_4_PHY_BUSY', 'IEEE_802_15_4_PHY_BUSY_RX', 'IEEE_802_15_4_PHY_BUSY_TX', 'IEEE_802_15_4_PHY_FORCE_TRX_OFF', 'IEEE_802_15_4_PHY_IDLE', 'IEEE_802_15_4_PHY_INVALID_PARAMETER', 'IEEE_802_15_4_PHY_RX_ON', 'IEEE_802_15_4_PHY_SUCCESS', 'IEEE_802_15_4_PHY_TRX_OFF', 'IEEE_802_15_4_PHY_TX_ON', 'IEEE_802_15_4_PHY_UNSUPPORTED_ATTRIBUTE', 'IEEE_802_15_4_PHY_READ_ONLY', 'IEEE_802_15_4_PHY_UNSPECIFIED']) ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPibAttributeIdentifier [enumeration] module.add_enum('LrWpanPibAttributeIdentifier', ['phyCurrentChannel', 'phyChannelsSupported', 'phyTransmitPower', 'phyCCAMode', 'phyCurrentPage', 'phyMaxFrameDuration', 'phySHRDuration', 'phySymbolsPerOctet']) - ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanMacState [enumeration] - module.add_enum('LrWpanMacState', ['MAC_IDLE', 'MAC_CSMA', 'MAC_SENDING', 'MAC_ACK_PENDING', 'CHANNEL_ACCESS_FAILURE', 'CHANNEL_IDLE', 'SET_PHY_TX_ON']) - ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPhyOption [enumeration] - module.add_enum('LrWpanPhyOption', ['IEEE_802_15_4_868MHZ_BPSK', 'IEEE_802_15_4_915MHZ_BPSK', 'IEEE_802_15_4_868MHZ_ASK', 'IEEE_802_15_4_915MHZ_ASK', 'IEEE_802_15_4_868MHZ_OQPSK', 'IEEE_802_15_4_915MHZ_OQPSK', 'IEEE_802_15_4_2_4GHZ_OQPSK', 'IEEE_802_15_4_INVALID_PHY_OPTION']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanAssociationStatus [enumeration] module.add_enum('LrWpanAssociationStatus', ['ASSOCIATED', 'PAN_AT_CAPACITY', 'PAN_ACCESS_DENIED', 'ASSOCIATED_WITHOUT_ADDRESS', 'DISASSOCIATED']) + ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanMacState [enumeration] + module.add_enum('LrWpanMacState', ['MAC_IDLE', 'MAC_CSMA', 'MAC_SENDING', 'MAC_ACK_PENDING', 'CHANNEL_ACCESS_FAILURE', 'CHANNEL_IDLE', 'SET_PHY_TX_ON']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanAddressMode [enumeration] module.add_enum('LrWpanAddressMode', ['NO_PANID_ADDR', 'ADDR_MODE_RESERVED', 'SHORT_ADDR', 'EXT_ADDR']) ## address.h (module 'network'): ns3::Address [class] @@ -332,6 +332,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -1735,10 +1737,10 @@ def register_Ns3Ipv6Prefix_methods(root_module, cls): return def register_Ns3LrWpanEdPower_methods(root_module, cls): - ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanEdPower::LrWpanEdPower(ns3::LrWpanEdPower const & arg0) [copy constructor] - cls.add_constructor([param('ns3::LrWpanEdPower const &', 'arg0')]) ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanEdPower::LrWpanEdPower() [constructor] cls.add_constructor([]) + ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanEdPower::LrWpanEdPower(ns3::LrWpanEdPower const & arg0) [copy constructor] + cls.add_constructor([param('ns3::LrWpanEdPower const &', 'arg0')]) ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanEdPower::averagePower [variable] cls.add_instance_attribute('averagePower', 'double', is_const=False) ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanEdPower::lastUpdate [variable] @@ -5622,21 +5624,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -6041,6 +6043,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/lr-wpan/bindings/modulegen__gcc_LP64.py b/src/lr-wpan/bindings/modulegen__gcc_LP64.py index 09dc1d3f6c9..5687d0ad5e3 100644 --- a/src/lr-wpan/bindings/modulegen__gcc_LP64.py +++ b/src/lr-wpan/bindings/modulegen__gcc_LP64.py @@ -20,22 +20,22 @@ def module_init(): def register_types(module): root_module = module.get_root() + ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPibAttributeIdentifier [enumeration] + module.add_enum('LrWpanPibAttributeIdentifier', ['phyCurrentChannel', 'phyChannelsSupported', 'phyTransmitPower', 'phyCCAMode', 'phyCurrentPage', 'phyMaxFrameDuration', 'phySHRDuration', 'phySymbolsPerOctet']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanTxOption [enumeration] module.add_enum('LrWpanTxOption', ['TX_OPTION_NONE', 'TX_OPTION_ACK', 'TX_OPTION_GTS', 'TX_OPTION_INDIRECT']) ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPhyOption [enumeration] module.add_enum('LrWpanPhyOption', ['IEEE_802_15_4_868MHZ_BPSK', 'IEEE_802_15_4_915MHZ_BPSK', 'IEEE_802_15_4_868MHZ_ASK', 'IEEE_802_15_4_915MHZ_ASK', 'IEEE_802_15_4_868MHZ_OQPSK', 'IEEE_802_15_4_915MHZ_OQPSK', 'IEEE_802_15_4_2_4GHZ_OQPSK', 'IEEE_802_15_4_INVALID_PHY_OPTION']) - ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPhyEnumeration [enumeration] - module.add_enum('LrWpanPhyEnumeration', ['IEEE_802_15_4_PHY_BUSY', 'IEEE_802_15_4_PHY_BUSY_RX', 'IEEE_802_15_4_PHY_BUSY_TX', 'IEEE_802_15_4_PHY_FORCE_TRX_OFF', 'IEEE_802_15_4_PHY_IDLE', 'IEEE_802_15_4_PHY_INVALID_PARAMETER', 'IEEE_802_15_4_PHY_RX_ON', 'IEEE_802_15_4_PHY_SUCCESS', 'IEEE_802_15_4_PHY_TRX_OFF', 'IEEE_802_15_4_PHY_TX_ON', 'IEEE_802_15_4_PHY_UNSUPPORTED_ATTRIBUTE', 'IEEE_802_15_4_PHY_READ_ONLY', 'IEEE_802_15_4_PHY_UNSPECIFIED']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanMcpsDataConfirmStatus [enumeration] module.add_enum('LrWpanMcpsDataConfirmStatus', ['IEEE_802_15_4_SUCCESS', 'IEEE_802_15_4_TRANSACTION_OVERFLOW', 'IEEE_802_15_4_TRANSACTION_EXPIRED', 'IEEE_802_15_4_CHANNEL_ACCESS_FAILURE', 'IEEE_802_15_4_INVALID_ADDRESS', 'IEEE_802_15_4_INVALID_GTS', 'IEEE_802_15_4_NO_ACK', 'IEEE_802_15_4_COUNTER_ERROR', 'IEEE_802_15_4_FRAME_TOO_LONG', 'IEEE_802_15_4_UNAVAILABLE_KEY', 'IEEE_802_15_4_UNSUPPORTED_SECURITY', 'IEEE_802_15_4_INVALID_PARAMETER']) + ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPhyEnumeration [enumeration] + module.add_enum('LrWpanPhyEnumeration', ['IEEE_802_15_4_PHY_BUSY', 'IEEE_802_15_4_PHY_BUSY_RX', 'IEEE_802_15_4_PHY_BUSY_TX', 'IEEE_802_15_4_PHY_FORCE_TRX_OFF', 'IEEE_802_15_4_PHY_IDLE', 'IEEE_802_15_4_PHY_INVALID_PARAMETER', 'IEEE_802_15_4_PHY_RX_ON', 'IEEE_802_15_4_PHY_SUCCESS', 'IEEE_802_15_4_PHY_TRX_OFF', 'IEEE_802_15_4_PHY_TX_ON', 'IEEE_802_15_4_PHY_UNSUPPORTED_ATTRIBUTE', 'IEEE_802_15_4_PHY_READ_ONLY', 'IEEE_802_15_4_PHY_UNSPECIFIED']) + ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanAddressMode [enumeration] + module.add_enum('LrWpanAddressMode', ['NO_PANID_ADDR', 'ADDR_MODE_RESERVED', 'SHORT_ADDR', 'EXT_ADDR']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanAssociationStatus [enumeration] module.add_enum('LrWpanAssociationStatus', ['ASSOCIATED', 'PAN_AT_CAPACITY', 'PAN_ACCESS_DENIED', 'ASSOCIATED_WITHOUT_ADDRESS', 'DISASSOCIATED']) - ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPibAttributeIdentifier [enumeration] - module.add_enum('LrWpanPibAttributeIdentifier', ['phyCurrentChannel', 'phyChannelsSupported', 'phyTransmitPower', 'phyCCAMode', 'phyCurrentPage', 'phyMaxFrameDuration', 'phySHRDuration', 'phySymbolsPerOctet']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanMacState [enumeration] module.add_enum('LrWpanMacState', ['MAC_IDLE', 'MAC_CSMA', 'MAC_SENDING', 'MAC_ACK_PENDING', 'CHANNEL_ACCESS_FAILURE', 'CHANNEL_IDLE', 'SET_PHY_TX_ON']) - ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanAddressMode [enumeration] - module.add_enum('LrWpanAddressMode', ['NO_PANID_ADDR', 'ADDR_MODE_RESERVED', 'SHORT_ADDR', 'EXT_ADDR']) ## 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] @@ -332,6 +332,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -5622,21 +5624,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -6041,6 +6043,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/lte/bindings/modulegen__gcc_ILP32.py b/src/lte/bindings/modulegen__gcc_ILP32.py index f8ee771c2c1..2f1db8a74fa 100644 --- a/src/lte/bindings/modulegen__gcc_ILP32.py +++ b/src/lte/bindings/modulegen__gcc_ILP32.py @@ -872,6 +872,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -882,6 +884,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## spectrum-interference.h (module 'spectrum'): ns3::SpectrumInterference [class] @@ -1206,6 +1210,8 @@ def register_types(module): module.add_class('PssFfMacScheduler', parent=root_module['ns3::FfMacScheduler']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## lte-control-messages.h (module 'lte'): ns3::RachPreambleLteControlMessage [class] module.add_class('RachPreambleLteControlMessage', parent=root_module['ns3::LteControlMessage']) ## radio-bearer-stats-calculator.h (module 'lte'): ns3::RadioBearerStatsCalculator [class] @@ -1392,9 +1398,6 @@ def register_types(module): module.add_container('std::map< unsigned int, unsigned int >', ('unsigned int', 'unsigned int'), container_type=u'map') module.add_container('std::list< ns3::Ptr< ns3::LteControlMessage > >', 'ns3::Ptr< ns3::LteControlMessage >', container_type=u'list') module.add_container('std::list< ns3::UlDciLteControlMessage >', 'ns3::UlDciLteControlMessage', container_type=u'list') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >', u'ns3::Uint32Map') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >*', u'ns3::Uint32Map*') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >&', u'ns3::Uint32Map&') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned long long, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned long long > > >', u'ns3::Uint64Map') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned long long, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned long long > > >*', u'ns3::Uint64Map*') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned long long, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned long long > > >&', u'ns3::Uint64Map&') @@ -1472,21 +1475,18 @@ def register_types(module): typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >', u'ns3::DoubleMap') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >*', u'ns3::DoubleMap*') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >&', u'ns3::DoubleMap&') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >', u'ns3::Uint32Map') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >*', u'ns3::Uint32Map*') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >&', u'ns3::Uint32Map&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::UlInfoListElement_s, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::LtePhyUlHarqFeedbackCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::UlInfoListElement_s, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::LtePhyUlHarqFeedbackCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::UlInfoListElement_s, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::LtePhyUlHarqFeedbackCallback&') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > > > > >', u'ns3::Uint64StatsMap') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > > > > >*', u'ns3::Uint64StatsMap*') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > > > > >&', u'ns3::Uint64StatsMap&') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >', u'ns3::RlcPduList_t') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >*', u'ns3::RlcPduList_t*') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >&', u'ns3::RlcPduList_t&') typehandlers.add_type_alias(u'std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >', u'ns3::DlHarqProcessesDciBuffer_t') typehandlers.add_type_alias(u'std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >*', u'ns3::DlHarqProcessesDciBuffer_t*') typehandlers.add_type_alias(u'std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >&', u'ns3::DlHarqProcessesDciBuffer_t&') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >', u'ns3::FlowIdMap') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >*', u'ns3::FlowIdMap*') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >&', u'ns3::FlowIdMap&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::SpectrumValue const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::LteChunkProcessorCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::SpectrumValue const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::LteChunkProcessorCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::SpectrumValue const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::LteChunkProcessorCallback&') @@ -1497,6 +1497,9 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >', u'ns3::DlHarqProcessesTimer_t') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >*', u'ns3::DlHarqProcessesTimer_t*') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >&', u'ns3::DlHarqProcessesTimer_t&') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >', u'ns3::FlowIdMap') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >*', u'ns3::FlowIdMap*') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >&', u'ns3::FlowIdMap&') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > > > > >', u'ns3::Uint32StatsMap') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > > > > >*', u'ns3::Uint32StatsMap*') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > > > > >&', u'ns3::Uint32StatsMap&') @@ -1506,6 +1509,9 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > >, std::allocator< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > > > >', u'ns3::DlHarqProcessesBuffer_t') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > >, std::allocator< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > > > >*', u'ns3::DlHarqProcessesBuffer_t*') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > >, std::allocator< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > > > >&', u'ns3::DlHarqProcessesBuffer_t&') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > > > > >', u'ns3::Uint64StatsMap') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > > > > >*', u'ns3::Uint64StatsMap*') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > > > > >&', u'ns3::Uint64StatsMap&') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >', u'ns3::UlHarqProcessesStatus_t') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >*', u'ns3::UlHarqProcessesStatus_t*') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >&', u'ns3::UlHarqProcessesStatus_t&') @@ -1974,6 +1980,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3SpectrumInterference_methods(root_module, root_module['ns3::SpectrumInterference']) register_Ns3SpectrumModel_methods(root_module, root_module['ns3::SpectrumModel']) @@ -4706,6 +4713,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -4719,6 +4731,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -8939,8 +8955,8 @@ def register_Ns3FdtbfqsFlowPerf_t_methods(root_module, cls): return def register_Ns3Int64x64_t_methods(root_module, cls): - cls.add_binary_comparison_operator('!=') cls.add_binary_comparison_operator('<=') + cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) @@ -10673,6 +10689,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -10698,6 +10719,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -10846,6 +10872,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -10873,11 +10903,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -11124,6 +11149,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -11417,8 +11488,8 @@ def register_Ns3SpectrumValue_methods(root_module, cls): return def register_Ns3Time_methods(root_module, cls): - cls.add_binary_comparison_operator('!=') cls.add_binary_comparison_operator('<=') + cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right')) cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) @@ -18127,21 +18198,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -19012,6 +19083,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/lte/bindings/modulegen__gcc_LP64.py b/src/lte/bindings/modulegen__gcc_LP64.py index 5d168586cc3..bd9683a5249 100644 --- a/src/lte/bindings/modulegen__gcc_LP64.py +++ b/src/lte/bindings/modulegen__gcc_LP64.py @@ -872,6 +872,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -882,6 +884,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## spectrum-interference.h (module 'spectrum'): ns3::SpectrumInterference [class] @@ -1206,6 +1210,8 @@ def register_types(module): module.add_class('PssFfMacScheduler', parent=root_module['ns3::FfMacScheduler']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## lte-control-messages.h (module 'lte'): ns3::RachPreambleLteControlMessage [class] module.add_class('RachPreambleLteControlMessage', parent=root_module['ns3::LteControlMessage']) ## radio-bearer-stats-calculator.h (module 'lte'): ns3::RadioBearerStatsCalculator [class] @@ -1392,9 +1398,6 @@ def register_types(module): module.add_container('std::map< unsigned int, unsigned int >', ('unsigned int', 'unsigned int'), container_type=u'map') module.add_container('std::list< ns3::Ptr< ns3::LteControlMessage > >', 'ns3::Ptr< ns3::LteControlMessage >', container_type=u'list') module.add_container('std::list< ns3::UlDciLteControlMessage >', 'ns3::UlDciLteControlMessage', container_type=u'list') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >', u'ns3::Uint32Map') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >*', u'ns3::Uint32Map*') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >&', u'ns3::Uint32Map&') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned long, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned long > > >', u'ns3::Uint64Map') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned long, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned long > > >*', u'ns3::Uint64Map*') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned long, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned long > > >&', u'ns3::Uint64Map&') @@ -1472,21 +1475,18 @@ def register_types(module): typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >', u'ns3::DoubleMap') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >*', u'ns3::DoubleMap*') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >&', u'ns3::DoubleMap&') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >', u'ns3::Uint32Map') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >*', u'ns3::Uint32Map*') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >&', u'ns3::Uint32Map&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::UlInfoListElement_s, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::LtePhyUlHarqFeedbackCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::UlInfoListElement_s, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::LtePhyUlHarqFeedbackCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::UlInfoListElement_s, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::LtePhyUlHarqFeedbackCallback&') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > > > > >', u'ns3::Uint64StatsMap') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > > > > >*', u'ns3::Uint64StatsMap*') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > > > > >&', u'ns3::Uint64StatsMap&') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >', u'ns3::RlcPduList_t') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >*', u'ns3::RlcPduList_t*') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >&', u'ns3::RlcPduList_t&') typehandlers.add_type_alias(u'std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >', u'ns3::DlHarqProcessesDciBuffer_t') typehandlers.add_type_alias(u'std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >*', u'ns3::DlHarqProcessesDciBuffer_t*') typehandlers.add_type_alias(u'std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >&', u'ns3::DlHarqProcessesDciBuffer_t&') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >', u'ns3::FlowIdMap') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >*', u'ns3::FlowIdMap*') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >&', u'ns3::FlowIdMap&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::SpectrumValue const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::LteChunkProcessorCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::SpectrumValue const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::LteChunkProcessorCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::SpectrumValue const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::LteChunkProcessorCallback&') @@ -1497,6 +1497,9 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >', u'ns3::DlHarqProcessesTimer_t') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >*', u'ns3::DlHarqProcessesTimer_t*') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >&', u'ns3::DlHarqProcessesTimer_t&') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >', u'ns3::FlowIdMap') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >*', u'ns3::FlowIdMap*') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >&', u'ns3::FlowIdMap&') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > > > > >', u'ns3::Uint32StatsMap') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > > > > >*', u'ns3::Uint32StatsMap*') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > > > > >&', u'ns3::Uint32StatsMap&') @@ -1506,6 +1509,9 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > >, std::allocator< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > > > >', u'ns3::DlHarqProcessesBuffer_t') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > >, std::allocator< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > > > >*', u'ns3::DlHarqProcessesBuffer_t*') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > >, std::allocator< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > > > >&', u'ns3::DlHarqProcessesBuffer_t&') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > > > > >', u'ns3::Uint64StatsMap') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > > > > >*', u'ns3::Uint64StatsMap*') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > > > > >&', u'ns3::Uint64StatsMap&') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >', u'ns3::UlHarqProcessesStatus_t') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >*', u'ns3::UlHarqProcessesStatus_t*') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >&', u'ns3::UlHarqProcessesStatus_t&') @@ -1974,6 +1980,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3SpectrumInterference_methods(root_module, root_module['ns3::SpectrumInterference']) register_Ns3SpectrumModel_methods(root_module, root_module['ns3::SpectrumModel']) @@ -4706,6 +4713,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -4719,6 +4731,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -8939,8 +8955,8 @@ def register_Ns3FdtbfqsFlowPerf_t_methods(root_module, cls): return def register_Ns3Int64x64_t_methods(root_module, cls): - cls.add_binary_comparison_operator('!=') cls.add_binary_comparison_operator('<=') + cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) @@ -10673,6 +10689,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -10698,6 +10719,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -10846,6 +10872,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -10873,11 +10903,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -11124,6 +11149,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -11417,8 +11488,8 @@ def register_Ns3SpectrumValue_methods(root_module, cls): return def register_Ns3Time_methods(root_module, cls): - cls.add_binary_comparison_operator('!=') cls.add_binary_comparison_operator('<=') + cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right')) cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) @@ -18127,21 +18198,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -19012,6 +19083,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/mesh/bindings/modulegen__gcc_ILP32.py b/src/mesh/bindings/modulegen__gcc_ILP32.py index 253c7f9c89a..1968332acc1 100644 --- a/src/mesh/bindings/modulegen__gcc_ILP32.py +++ b/src/mesh/bindings/modulegen__gcc_ILP32.py @@ -324,6 +324,12 @@ def register_types(module): module.add_class('Dcf', import_from_module='ns.wifi', parent=root_module['ns3::Object']) ## double.h (module 'core'): ns3::DoubleValue [class] module.add_class('DoubleValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet [class] + module.add_class('EdcaParameterSet', import_from_module='ns.wifi', parent=root_module['ns3::WifiInformationElement']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker [class] + module.add_class('EdcaParameterSetChecker', import_from_module='ns.wifi', parent=root_module['ns3::AttributeChecker']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue [class] + module.add_class('EdcaParameterSetValue', import_from_module='ns.wifi', parent=root_module['ns3::AttributeValue']) ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN [class] module.add_class('EdcaTxopN', import_from_module='ns.wifi', parent=root_module['ns3::Dcf']) ## attribute.h (module 'core'): ns3::EmptyAttributeValue [class] @@ -408,6 +414,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## regular-wifi-mac.h (module 'wifi'): ns3::RegularWifiMac [class] module.add_class('RegularWifiMac', import_from_module='ns.wifi', parent=root_module['ns3::WifiMac']) ## ssid.h (module 'wifi'): ns3::Ssid [class] @@ -788,6 +796,9 @@ def register_methods(root_module): register_Ns3CtrlBAckResponseHeader_methods(root_module, root_module['ns3::CtrlBAckResponseHeader']) register_Ns3Dcf_methods(root_module, root_module['ns3::Dcf']) register_Ns3DoubleValue_methods(root_module, root_module['ns3::DoubleValue']) + register_Ns3EdcaParameterSet_methods(root_module, root_module['ns3::EdcaParameterSet']) + register_Ns3EdcaParameterSetChecker_methods(root_module, root_module['ns3::EdcaParameterSetChecker']) + register_Ns3EdcaParameterSetValue_methods(root_module, root_module['ns3::EdcaParameterSetValue']) register_Ns3EdcaTxopN_methods(root_module, root_module['ns3::EdcaTxopN']) register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue']) register_Ns3EnumChecker_methods(root_module, root_module['ns3::EnumChecker']) @@ -4371,6 +4382,11 @@ def register_Ns3MgtAssocResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::EdcaParameterSet ns3::MgtAssocResponseHeader::GetEdcaParameterSet() const [member function] + cls.add_method('GetEdcaParameterSet', + 'ns3::EdcaParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::ErpInformation ns3::MgtAssocResponseHeader::GetErpInformation() const [member function] cls.add_method('GetErpInformation', 'ns3::ErpInformation', @@ -4428,6 +4444,10 @@ def register_Ns3MgtAssocResponseHeader_methods(root_module, cls): cls.add_method('SetCapabilities', 'void', [param('ns3::CapabilityInformation', 'capabilities')]) + ## mgt-headers.h (module 'wifi'): void ns3::MgtAssocResponseHeader::SetEdcaParameterSet(ns3::EdcaParameterSet edcaParameterSet) [member function] + cls.add_method('SetEdcaParameterSet', + 'void', + [param('ns3::EdcaParameterSet', 'edcaParameterSet')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtAssocResponseHeader::SetErpInformation(ns3::ErpInformation erpInformation) [member function] cls.add_method('SetErpInformation', 'void', @@ -4606,6 +4626,11 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::EdcaParameterSet ns3::MgtProbeResponseHeader::GetEdcaParameterSet() const [member function] + cls.add_method('GetEdcaParameterSet', + 'ns3::EdcaParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::ErpInformation ns3::MgtProbeResponseHeader::GetErpInformation() const [member function] cls.add_method('GetErpInformation', 'ns3::ErpInformation', @@ -4673,6 +4698,10 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): cls.add_method('SetCapabilities', 'void', [param('ns3::CapabilityInformation', 'capabilities')]) + ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetEdcaParameterSet(ns3::EdcaParameterSet edcaParameterSet) [member function] + cls.add_method('SetEdcaParameterSet', + 'void', + [param('ns3::EdcaParameterSet', 'edcaParameterSet')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetErpInformation(ns3::ErpInformation erpInformation) [member function] cls.add_method('SetErpInformation', 'void', @@ -5713,10 +5742,10 @@ def register_Ns3WifiMac_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) - ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function] + ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, ns3::AcIndex ac) [member function] cls.add_method('ConfigureDcf', 'void', - [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], visibility='protected') ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] cls.add_method('FinishConfigureStandard', @@ -8067,6 +8096,11 @@ def register_Ns3Dcf_methods(root_module, cls): 'uint32_t', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## dcf.h (module 'wifi'): ns3::Time ns3::Dcf::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_pure_virtual=True, is_const=True, is_virtual=True) ## dcf.h (module 'wifi'): static ns3::TypeId ns3::Dcf::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -8087,6 +8121,11 @@ def register_Ns3Dcf_methods(root_module, cls): 'void', [param('uint32_t', 'minCw')], is_pure_virtual=True, is_virtual=True) + ## dcf.h (module 'wifi'): void ns3::Dcf::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_pure_virtual=True, is_virtual=True) return def register_Ns3DoubleValue_methods(root_module, cls): @@ -8122,6 +8161,313 @@ def register_Ns3DoubleValue_methods(root_module, cls): [param('double const &', 'value')]) return +def register_Ns3EdcaParameterSet_methods(root_module, cls): + cls.add_output_stream_operator() + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet::EdcaParameterSet(ns3::EdcaParameterSet const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSet const &', 'arg0')]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet::EdcaParameterSet() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::DeserializeInformationField(ns3::Buffer::Iterator start, uint8_t length) [member function] + cls.add_method('DeserializeInformationField', + 'uint8_t', + [param('ns3::Buffer::Iterator', 'start'), param('uint8_t', 'length')], + is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): ns3::WifiInformationElementId ns3::EdcaParameterSet::ElementId() const [member function] + cls.add_method('ElementId', + 'ns3::WifiInformationElementId', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAci() const [member function] + cls.add_method('GetBeAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAcm() const [member function] + cls.add_method('GetBeAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAifsn() const [member function] + cls.add_method('GetBeAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeCWmax() const [member function] + cls.add_method('GetBeCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeCWmin() const [member function] + cls.add_method('GetBeCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetBeTXOPLimit() const [member function] + cls.add_method('GetBeTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAci() const [member function] + cls.add_method('GetBkAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAcm() const [member function] + cls.add_method('GetBkAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAifsn() const [member function] + cls.add_method('GetBkAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkCWmax() const [member function] + cls.add_method('GetBkCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkCWmin() const [member function] + cls.add_method('GetBkCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetBkTXOPLimit() const [member function] + cls.add_method('GetBkTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetInformationFieldSize() const [member function] + cls.add_method('GetInformationFieldSize', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetQosInfo() const [member function] + cls.add_method('GetQosInfo', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAci() const [member function] + cls.add_method('GetViAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAcm() const [member function] + cls.add_method('GetViAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAifsn() const [member function] + cls.add_method('GetViAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViCWmax() const [member function] + cls.add_method('GetViCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViCWmin() const [member function] + cls.add_method('GetViCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetViTXOPLimit() const [member function] + cls.add_method('GetViTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAci() const [member function] + cls.add_method('GetVoAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAcm() const [member function] + cls.add_method('GetVoAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAifsn() const [member function] + cls.add_method('GetVoAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoCWmax() const [member function] + cls.add_method('GetVoCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoCWmin() const [member function] + cls.add_method('GetVoCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetVoTXOPLimit() const [member function] + cls.add_method('GetVoTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): ns3::Buffer::Iterator ns3::EdcaParameterSet::Serialize(ns3::Buffer::Iterator start) const [member function] + cls.add_method('Serialize', + 'ns3::Buffer::Iterator', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SerializeInformationField(ns3::Buffer::Iterator start) const [member function] + cls.add_method('SerializeInformationField', + 'void', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAci(uint8_t aci) [member function] + cls.add_method('SetBeAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAcm(uint8_t acm) [member function] + cls.add_method('SetBeAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAifsn(uint8_t aifsn) [member function] + cls.add_method('SetBeAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeCWmax(uint8_t cwMax) [member function] + cls.add_method('SetBeCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeCWmin(uint8_t cwMin) [member function] + cls.add_method('SetBeCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetBeTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAci(uint8_t aci) [member function] + cls.add_method('SetBkAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAcm(uint8_t acm) [member function] + cls.add_method('SetBkAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAifsn(uint8_t aifsn) [member function] + cls.add_method('SetBkAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkCWmax(uint8_t cwMax) [member function] + cls.add_method('SetBkCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkCWmin(uint8_t cwMin) [member function] + cls.add_method('SetBkCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetBkTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetQosInfo(uint8_t qosInfo) [member function] + cls.add_method('SetQosInfo', + 'void', + [param('uint8_t', 'qosInfo')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetQosSupported(uint8_t qosSupported) [member function] + cls.add_method('SetQosSupported', + 'void', + [param('uint8_t', 'qosSupported')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAci(uint8_t aci) [member function] + cls.add_method('SetViAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAcm(uint8_t acm) [member function] + cls.add_method('SetViAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAifsn(uint8_t aifsn) [member function] + cls.add_method('SetViAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViCWmax(uint8_t cwMax) [member function] + cls.add_method('SetViCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViCWmin(uint8_t cwMin) [member function] + cls.add_method('SetViCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetViTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAci(uint8_t aci) [member function] + cls.add_method('SetVoAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAcm(uint8_t acm) [member function] + cls.add_method('SetVoAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAifsn(uint8_t aifsn) [member function] + cls.add_method('SetVoAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoCWmax(uint8_t cwMax) [member function] + cls.add_method('SetVoCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoCWmin(uint8_t cwMin) [member function] + cls.add_method('SetVoCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetVoTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + return + +def register_Ns3EdcaParameterSetChecker_methods(root_module, cls): + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker::EdcaParameterSetChecker() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker::EdcaParameterSetChecker(ns3::EdcaParameterSetChecker const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSetChecker const &', 'arg0')]) + return + +def register_Ns3EdcaParameterSetValue_methods(root_module, cls): + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue(ns3::EdcaParameterSetValue const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSetValue const &', 'arg0')]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue(ns3::EdcaParameterSet const & value) [constructor] + cls.add_constructor([param('ns3::EdcaParameterSet const &', 'value')]) + ## edca-parameter-set.h (module 'wifi'): ns3::Ptr ns3::EdcaParameterSetValue::Copy() const [member function] + cls.add_method('Copy', + 'ns3::Ptr< ns3::AttributeValue >', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): bool ns3::EdcaParameterSetValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] + cls.add_method('DeserializeFromString', + 'bool', + [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], + is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet ns3::EdcaParameterSetValue::Get() const [member function] + cls.add_method('Get', + 'ns3::EdcaParameterSet', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): std::string ns3::EdcaParameterSetValue::SerializeToString(ns3::Ptr checker) const [member function] + cls.add_method('SerializeToString', + 'std::string', + [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSetValue::Set(ns3::EdcaParameterSet const & value) [member function] + cls.add_method('Set', + 'void', + [param('ns3::EdcaParameterSet const &', 'value')]) + return + def register_Ns3EdcaTxopN_methods(root_module, cls): ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::m_aMpduEnabled [variable] cls.add_instance_attribute('m_aMpduEnabled', 'std::map< ns3::Mac48Address, bool >', is_const=False) @@ -8190,6 +8536,11 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): 'void', [param('uint32_t', 'aifsn')], is_virtual=True) + ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_virtual=True) ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetMinCw() const [member function] cls.add_method('GetMinCw', 'uint32_t', @@ -8205,6 +8556,11 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## edca-txop-n.h (module 'wifi'): ns3::Time ns3::EdcaTxopN::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True, is_virtual=True) ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::Low() [member function] cls.add_method('Low', 'ns3::Ptr< ns3::MacLow >', @@ -8297,6 +8653,10 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): cls.add_method('MissedAck', 'void', []) + ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + []) ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNext() [member function] cls.add_method('StartNext', 'void', @@ -9823,21 +10183,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -10242,6 +10602,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', @@ -11228,6 +11593,11 @@ def register_Ns3DcaTxop_methods(root_module, cls): 'void', [param('uint32_t', 'aifsn')], is_virtual=True) + ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_virtual=True) ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMinCw() const [member function] cls.add_method('GetMinCw', 'uint32_t', @@ -11243,6 +11613,11 @@ def register_Ns3DcaTxop_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True, is_virtual=True) ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::Queue(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] cls.add_method('Queue', 'void', diff --git a/src/mesh/bindings/modulegen__gcc_LP64.py b/src/mesh/bindings/modulegen__gcc_LP64.py index 1990aa714bd..e24a63481c9 100644 --- a/src/mesh/bindings/modulegen__gcc_LP64.py +++ b/src/mesh/bindings/modulegen__gcc_LP64.py @@ -324,6 +324,12 @@ def register_types(module): module.add_class('Dcf', import_from_module='ns.wifi', parent=root_module['ns3::Object']) ## double.h (module 'core'): ns3::DoubleValue [class] module.add_class('DoubleValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet [class] + module.add_class('EdcaParameterSet', import_from_module='ns.wifi', parent=root_module['ns3::WifiInformationElement']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker [class] + module.add_class('EdcaParameterSetChecker', import_from_module='ns.wifi', parent=root_module['ns3::AttributeChecker']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue [class] + module.add_class('EdcaParameterSetValue', import_from_module='ns.wifi', parent=root_module['ns3::AttributeValue']) ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN [class] module.add_class('EdcaTxopN', import_from_module='ns.wifi', parent=root_module['ns3::Dcf']) ## attribute.h (module 'core'): ns3::EmptyAttributeValue [class] @@ -408,6 +414,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## regular-wifi-mac.h (module 'wifi'): ns3::RegularWifiMac [class] module.add_class('RegularWifiMac', import_from_module='ns.wifi', parent=root_module['ns3::WifiMac']) ## ssid.h (module 'wifi'): ns3::Ssid [class] @@ -788,6 +796,9 @@ def register_methods(root_module): register_Ns3CtrlBAckResponseHeader_methods(root_module, root_module['ns3::CtrlBAckResponseHeader']) register_Ns3Dcf_methods(root_module, root_module['ns3::Dcf']) register_Ns3DoubleValue_methods(root_module, root_module['ns3::DoubleValue']) + register_Ns3EdcaParameterSet_methods(root_module, root_module['ns3::EdcaParameterSet']) + register_Ns3EdcaParameterSetChecker_methods(root_module, root_module['ns3::EdcaParameterSetChecker']) + register_Ns3EdcaParameterSetValue_methods(root_module, root_module['ns3::EdcaParameterSetValue']) register_Ns3EdcaTxopN_methods(root_module, root_module['ns3::EdcaTxopN']) register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue']) register_Ns3EnumChecker_methods(root_module, root_module['ns3::EnumChecker']) @@ -4371,6 +4382,11 @@ def register_Ns3MgtAssocResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::EdcaParameterSet ns3::MgtAssocResponseHeader::GetEdcaParameterSet() const [member function] + cls.add_method('GetEdcaParameterSet', + 'ns3::EdcaParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::ErpInformation ns3::MgtAssocResponseHeader::GetErpInformation() const [member function] cls.add_method('GetErpInformation', 'ns3::ErpInformation', @@ -4428,6 +4444,10 @@ def register_Ns3MgtAssocResponseHeader_methods(root_module, cls): cls.add_method('SetCapabilities', 'void', [param('ns3::CapabilityInformation', 'capabilities')]) + ## mgt-headers.h (module 'wifi'): void ns3::MgtAssocResponseHeader::SetEdcaParameterSet(ns3::EdcaParameterSet edcaParameterSet) [member function] + cls.add_method('SetEdcaParameterSet', + 'void', + [param('ns3::EdcaParameterSet', 'edcaParameterSet')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtAssocResponseHeader::SetErpInformation(ns3::ErpInformation erpInformation) [member function] cls.add_method('SetErpInformation', 'void', @@ -4606,6 +4626,11 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::EdcaParameterSet ns3::MgtProbeResponseHeader::GetEdcaParameterSet() const [member function] + cls.add_method('GetEdcaParameterSet', + 'ns3::EdcaParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::ErpInformation ns3::MgtProbeResponseHeader::GetErpInformation() const [member function] cls.add_method('GetErpInformation', 'ns3::ErpInformation', @@ -4673,6 +4698,10 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): cls.add_method('SetCapabilities', 'void', [param('ns3::CapabilityInformation', 'capabilities')]) + ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetEdcaParameterSet(ns3::EdcaParameterSet edcaParameterSet) [member function] + cls.add_method('SetEdcaParameterSet', + 'void', + [param('ns3::EdcaParameterSet', 'edcaParameterSet')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetErpInformation(ns3::ErpInformation erpInformation) [member function] cls.add_method('SetErpInformation', 'void', @@ -5713,10 +5742,10 @@ def register_Ns3WifiMac_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) - ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function] + ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, ns3::AcIndex ac) [member function] cls.add_method('ConfigureDcf', 'void', - [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], visibility='protected') ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] cls.add_method('FinishConfigureStandard', @@ -8067,6 +8096,11 @@ def register_Ns3Dcf_methods(root_module, cls): 'uint32_t', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## dcf.h (module 'wifi'): ns3::Time ns3::Dcf::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_pure_virtual=True, is_const=True, is_virtual=True) ## dcf.h (module 'wifi'): static ns3::TypeId ns3::Dcf::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -8087,6 +8121,11 @@ def register_Ns3Dcf_methods(root_module, cls): 'void', [param('uint32_t', 'minCw')], is_pure_virtual=True, is_virtual=True) + ## dcf.h (module 'wifi'): void ns3::Dcf::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_pure_virtual=True, is_virtual=True) return def register_Ns3DoubleValue_methods(root_module, cls): @@ -8122,6 +8161,313 @@ def register_Ns3DoubleValue_methods(root_module, cls): [param('double const &', 'value')]) return +def register_Ns3EdcaParameterSet_methods(root_module, cls): + cls.add_output_stream_operator() + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet::EdcaParameterSet(ns3::EdcaParameterSet const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSet const &', 'arg0')]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet::EdcaParameterSet() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::DeserializeInformationField(ns3::Buffer::Iterator start, uint8_t length) [member function] + cls.add_method('DeserializeInformationField', + 'uint8_t', + [param('ns3::Buffer::Iterator', 'start'), param('uint8_t', 'length')], + is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): ns3::WifiInformationElementId ns3::EdcaParameterSet::ElementId() const [member function] + cls.add_method('ElementId', + 'ns3::WifiInformationElementId', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAci() const [member function] + cls.add_method('GetBeAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAcm() const [member function] + cls.add_method('GetBeAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAifsn() const [member function] + cls.add_method('GetBeAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeCWmax() const [member function] + cls.add_method('GetBeCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeCWmin() const [member function] + cls.add_method('GetBeCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetBeTXOPLimit() const [member function] + cls.add_method('GetBeTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAci() const [member function] + cls.add_method('GetBkAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAcm() const [member function] + cls.add_method('GetBkAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAifsn() const [member function] + cls.add_method('GetBkAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkCWmax() const [member function] + cls.add_method('GetBkCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkCWmin() const [member function] + cls.add_method('GetBkCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetBkTXOPLimit() const [member function] + cls.add_method('GetBkTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetInformationFieldSize() const [member function] + cls.add_method('GetInformationFieldSize', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetQosInfo() const [member function] + cls.add_method('GetQosInfo', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAci() const [member function] + cls.add_method('GetViAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAcm() const [member function] + cls.add_method('GetViAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAifsn() const [member function] + cls.add_method('GetViAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViCWmax() const [member function] + cls.add_method('GetViCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViCWmin() const [member function] + cls.add_method('GetViCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetViTXOPLimit() const [member function] + cls.add_method('GetViTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAci() const [member function] + cls.add_method('GetVoAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAcm() const [member function] + cls.add_method('GetVoAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAifsn() const [member function] + cls.add_method('GetVoAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoCWmax() const [member function] + cls.add_method('GetVoCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoCWmin() const [member function] + cls.add_method('GetVoCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetVoTXOPLimit() const [member function] + cls.add_method('GetVoTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): ns3::Buffer::Iterator ns3::EdcaParameterSet::Serialize(ns3::Buffer::Iterator start) const [member function] + cls.add_method('Serialize', + 'ns3::Buffer::Iterator', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SerializeInformationField(ns3::Buffer::Iterator start) const [member function] + cls.add_method('SerializeInformationField', + 'void', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAci(uint8_t aci) [member function] + cls.add_method('SetBeAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAcm(uint8_t acm) [member function] + cls.add_method('SetBeAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAifsn(uint8_t aifsn) [member function] + cls.add_method('SetBeAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeCWmax(uint8_t cwMax) [member function] + cls.add_method('SetBeCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeCWmin(uint8_t cwMin) [member function] + cls.add_method('SetBeCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetBeTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAci(uint8_t aci) [member function] + cls.add_method('SetBkAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAcm(uint8_t acm) [member function] + cls.add_method('SetBkAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAifsn(uint8_t aifsn) [member function] + cls.add_method('SetBkAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkCWmax(uint8_t cwMax) [member function] + cls.add_method('SetBkCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkCWmin(uint8_t cwMin) [member function] + cls.add_method('SetBkCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetBkTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetQosInfo(uint8_t qosInfo) [member function] + cls.add_method('SetQosInfo', + 'void', + [param('uint8_t', 'qosInfo')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetQosSupported(uint8_t qosSupported) [member function] + cls.add_method('SetQosSupported', + 'void', + [param('uint8_t', 'qosSupported')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAci(uint8_t aci) [member function] + cls.add_method('SetViAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAcm(uint8_t acm) [member function] + cls.add_method('SetViAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAifsn(uint8_t aifsn) [member function] + cls.add_method('SetViAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViCWmax(uint8_t cwMax) [member function] + cls.add_method('SetViCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViCWmin(uint8_t cwMin) [member function] + cls.add_method('SetViCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetViTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAci(uint8_t aci) [member function] + cls.add_method('SetVoAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAcm(uint8_t acm) [member function] + cls.add_method('SetVoAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAifsn(uint8_t aifsn) [member function] + cls.add_method('SetVoAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoCWmax(uint8_t cwMax) [member function] + cls.add_method('SetVoCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoCWmin(uint8_t cwMin) [member function] + cls.add_method('SetVoCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetVoTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + return + +def register_Ns3EdcaParameterSetChecker_methods(root_module, cls): + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker::EdcaParameterSetChecker() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker::EdcaParameterSetChecker(ns3::EdcaParameterSetChecker const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSetChecker const &', 'arg0')]) + return + +def register_Ns3EdcaParameterSetValue_methods(root_module, cls): + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue(ns3::EdcaParameterSetValue const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSetValue const &', 'arg0')]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue(ns3::EdcaParameterSet const & value) [constructor] + cls.add_constructor([param('ns3::EdcaParameterSet const &', 'value')]) + ## edca-parameter-set.h (module 'wifi'): ns3::Ptr ns3::EdcaParameterSetValue::Copy() const [member function] + cls.add_method('Copy', + 'ns3::Ptr< ns3::AttributeValue >', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): bool ns3::EdcaParameterSetValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] + cls.add_method('DeserializeFromString', + 'bool', + [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], + is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet ns3::EdcaParameterSetValue::Get() const [member function] + cls.add_method('Get', + 'ns3::EdcaParameterSet', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): std::string ns3::EdcaParameterSetValue::SerializeToString(ns3::Ptr checker) const [member function] + cls.add_method('SerializeToString', + 'std::string', + [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSetValue::Set(ns3::EdcaParameterSet const & value) [member function] + cls.add_method('Set', + 'void', + [param('ns3::EdcaParameterSet const &', 'value')]) + return + def register_Ns3EdcaTxopN_methods(root_module, cls): ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::m_aMpduEnabled [variable] cls.add_instance_attribute('m_aMpduEnabled', 'std::map< ns3::Mac48Address, bool >', is_const=False) @@ -8190,6 +8536,11 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): 'void', [param('uint32_t', 'aifsn')], is_virtual=True) + ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_virtual=True) ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetMinCw() const [member function] cls.add_method('GetMinCw', 'uint32_t', @@ -8205,6 +8556,11 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## edca-txop-n.h (module 'wifi'): ns3::Time ns3::EdcaTxopN::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True, is_virtual=True) ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::Low() [member function] cls.add_method('Low', 'ns3::Ptr< ns3::MacLow >', @@ -8297,6 +8653,10 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): cls.add_method('MissedAck', 'void', []) + ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + []) ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNext() [member function] cls.add_method('StartNext', 'void', @@ -9823,21 +10183,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -10242,6 +10602,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', @@ -11228,6 +11593,11 @@ def register_Ns3DcaTxop_methods(root_module, cls): 'void', [param('uint32_t', 'aifsn')], is_virtual=True) + ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_virtual=True) ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMinCw() const [member function] cls.add_method('GetMinCw', 'uint32_t', @@ -11243,6 +11613,11 @@ def register_Ns3DcaTxop_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True, is_virtual=True) ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::Queue(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] cls.add_method('Queue', 'void', diff --git a/src/mobility/bindings/modulegen__gcc_ILP32.py b/src/mobility/bindings/modulegen__gcc_ILP32.py index 54545c4ccd1..0af20a4b614 100644 --- a/src/mobility/bindings/modulegen__gcc_ILP32.py +++ b/src/mobility/bindings/modulegen__gcc_ILP32.py @@ -234,6 +234,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## random-direction-2d-mobility-model.h (module 'mobility'): ns3::RandomDirection2dMobilityModel [class] module.add_class('RandomDirection2dMobilityModel', parent=root_module['ns3::MobilityModel']) ## random-walk-2d-mobility-model.h (module 'mobility'): ns3::RandomWalk2dMobilityModel [class] @@ -3751,21 +3753,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4029,6 +4031,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/mobility/bindings/modulegen__gcc_LP64.py b/src/mobility/bindings/modulegen__gcc_LP64.py index 54545c4ccd1..0af20a4b614 100644 --- a/src/mobility/bindings/modulegen__gcc_LP64.py +++ b/src/mobility/bindings/modulegen__gcc_LP64.py @@ -234,6 +234,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## random-direction-2d-mobility-model.h (module 'mobility'): ns3::RandomDirection2dMobilityModel [class] module.add_class('RandomDirection2dMobilityModel', parent=root_module['ns3::MobilityModel']) ## random-walk-2d-mobility-model.h (module 'mobility'): ns3::RandomWalk2dMobilityModel [class] @@ -3751,21 +3753,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -4029,6 +4031,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/network/bindings/modulegen__gcc_ILP32.py b/src/network/bindings/modulegen__gcc_ILP32.py index d817864a60a..e8f8c9320f1 100644 --- a/src/network/bindings/modulegen__gcc_ILP32.py +++ b/src/network/bindings/modulegen__gcc_ILP32.py @@ -274,6 +274,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket']) ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket']) + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket']) ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket']) ## socket-factory.h (module 'network'): ns3::SocketFactory [class] @@ -286,6 +288,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + module.add_class('SocketPriorityTag', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag [class] module.add_class('SocketSetDontFragmentTag', parent=root_module['ns3::Tag']) ## nstime.h (module 'core'): ns3::Time [class] @@ -458,6 +462,8 @@ def register_types(module): module.add_class('Probe', import_from_module='ns.stats', parent=root_module['ns3::DataCollectionObject']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem']) ## error-model.h (module 'network'): ns3::RateErrorModel [class] module.add_class('RateErrorModel', parent=root_module['ns3::ErrorModel']) ## error-model.h (module 'network'): ns3::RateErrorModel::ErrorUnit [enumeration] @@ -493,9 +499,6 @@ def register_types(module): module.add_container('std::list< ns3::Ptr< ns3::Packet > >', 'ns3::Ptr< ns3::Packet >', container_type=u'list') module.add_container('std::vector< ns3::Ipv6Address >', 'ns3::Ipv6Address', container_type=u'vector') module.add_container('std::list< unsigned int >', 'unsigned int', container_type=u'list') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::SequenceNumber< unsigned short, short >', u'ns3::SequenceNumber16') typehandlers.add_type_alias(u'ns3::SequenceNumber< unsigned short, short >*', u'ns3::SequenceNumber16*') typehandlers.add_type_alias(u'ns3::SequenceNumber< unsigned short, short >&', u'ns3::SequenceNumber16&') @@ -514,6 +517,9 @@ def register_types(module): typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxStartCallback') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxStartCallback*') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxStartCallback&') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyRxEndOkCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyRxEndOkCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyRxEndOkCallback&') @@ -729,6 +735,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -836,8 +843,8 @@ def register_methods(root_module): def register_Ns3Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## address.h (module 'network'): ns3::Address::Address() [constructor] cls.add_constructor([]) @@ -1784,6 +1791,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1797,12 +1809,16 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## ipv4-address.h (module 'network'): ns3::Ipv4Address::Ipv4Address(ns3::Ipv4Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Ipv4Address const &', 'arg0')]) @@ -1982,8 +1998,8 @@ def register_Ns3Ipv4Mask_methods(root_module, cls): def register_Ns3Ipv6Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## ipv6-address.h (module 'network'): ns3::Ipv6Address::Ipv6Address() [constructor] cls.add_constructor([]) @@ -2239,8 +2255,8 @@ def register_Ns3Ipv6Prefix_methods(root_module, cls): def register_Ns3Mac16Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## mac16-address.h (module 'network'): ns3::Mac16Address::Mac16Address(ns3::Mac16Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac16Address const &', 'arg0')]) @@ -2276,8 +2292,8 @@ def register_Ns3Mac16Address_methods(root_module, cls): def register_Ns3Mac48Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## mac48-address.h (module 'network'): ns3::Mac48Address::Mac48Address(ns3::Mac48Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac48Address const &', 'arg0')]) @@ -2348,8 +2364,8 @@ def register_Ns3Mac48Address_methods(root_module, cls): def register_Ns3Mac64Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## mac64-address.h (module 'network'): ns3::Mac64Address::Mac64Address(ns3::Mac64Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac64Address const &', 'arg0')]) @@ -3663,8 +3679,8 @@ def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): def register_Ns3TypeId_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## type-id.h (module 'core'): ns3::TypeId::TypeId(char const * name) [constructor] cls.add_constructor([param('char const *', 'name')]) @@ -3882,6 +3898,7 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) @@ -3892,7 +3909,6 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor] @@ -5122,6 +5138,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -5147,6 +5168,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -5295,6 +5321,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -5322,11 +5352,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -5590,6 +5615,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -5644,6 +5715,7 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) @@ -5651,7 +5723,6 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('>') cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## nstime.h (module 'core'): ns3::Time::Time() [constructor] @@ -7737,21 +7808,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -8343,6 +8414,11 @@ def register_Ns3PacketSocketClient_methods(root_module, cls): cls.add_constructor([param('ns3::PacketSocketClient const &', 'arg0')]) ## packet-socket-client.h (module 'network'): ns3::PacketSocketClient::PacketSocketClient() [constructor] cls.add_constructor([]) + ## packet-socket-client.h (module 'network'): uint8_t ns3::PacketSocketClient::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## packet-socket-client.h (module 'network'): static ns3::TypeId ns3::PacketSocketClient::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -9486,6 +9562,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/network/bindings/modulegen__gcc_LP64.py b/src/network/bindings/modulegen__gcc_LP64.py index d817864a60a..e8f8c9320f1 100644 --- a/src/network/bindings/modulegen__gcc_LP64.py +++ b/src/network/bindings/modulegen__gcc_LP64.py @@ -274,6 +274,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket']) ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket']) + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket']) ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket']) ## socket-factory.h (module 'network'): ns3::SocketFactory [class] @@ -286,6 +288,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + module.add_class('SocketPriorityTag', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag [class] module.add_class('SocketSetDontFragmentTag', parent=root_module['ns3::Tag']) ## nstime.h (module 'core'): ns3::Time [class] @@ -458,6 +462,8 @@ def register_types(module): module.add_class('Probe', import_from_module='ns.stats', parent=root_module['ns3::DataCollectionObject']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem']) ## error-model.h (module 'network'): ns3::RateErrorModel [class] module.add_class('RateErrorModel', parent=root_module['ns3::ErrorModel']) ## error-model.h (module 'network'): ns3::RateErrorModel::ErrorUnit [enumeration] @@ -493,9 +499,6 @@ def register_types(module): module.add_container('std::list< ns3::Ptr< ns3::Packet > >', 'ns3::Ptr< ns3::Packet >', container_type=u'list') module.add_container('std::vector< ns3::Ipv6Address >', 'ns3::Ipv6Address', container_type=u'vector') module.add_container('std::list< unsigned int >', 'unsigned int', container_type=u'list') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::SequenceNumber< unsigned short, short >', u'ns3::SequenceNumber16') typehandlers.add_type_alias(u'ns3::SequenceNumber< unsigned short, short >*', u'ns3::SequenceNumber16*') typehandlers.add_type_alias(u'ns3::SequenceNumber< unsigned short, short >&', u'ns3::SequenceNumber16&') @@ -514,6 +517,9 @@ def register_types(module): typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxStartCallback') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxStartCallback*') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxStartCallback&') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyRxEndOkCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyRxEndOkCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyRxEndOkCallback&') @@ -729,6 +735,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -836,8 +843,8 @@ def register_methods(root_module): def register_Ns3Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## address.h (module 'network'): ns3::Address::Address() [constructor] cls.add_constructor([]) @@ -1784,6 +1791,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1797,12 +1809,16 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## ipv4-address.h (module 'network'): ns3::Ipv4Address::Ipv4Address(ns3::Ipv4Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Ipv4Address const &', 'arg0')]) @@ -1982,8 +1998,8 @@ def register_Ns3Ipv4Mask_methods(root_module, cls): def register_Ns3Ipv6Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## ipv6-address.h (module 'network'): ns3::Ipv6Address::Ipv6Address() [constructor] cls.add_constructor([]) @@ -2239,8 +2255,8 @@ def register_Ns3Ipv6Prefix_methods(root_module, cls): def register_Ns3Mac16Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## mac16-address.h (module 'network'): ns3::Mac16Address::Mac16Address(ns3::Mac16Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac16Address const &', 'arg0')]) @@ -2276,8 +2292,8 @@ def register_Ns3Mac16Address_methods(root_module, cls): def register_Ns3Mac48Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## mac48-address.h (module 'network'): ns3::Mac48Address::Mac48Address(ns3::Mac48Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac48Address const &', 'arg0')]) @@ -2348,8 +2364,8 @@ def register_Ns3Mac48Address_methods(root_module, cls): def register_Ns3Mac64Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## mac64-address.h (module 'network'): ns3::Mac64Address::Mac64Address(ns3::Mac64Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac64Address const &', 'arg0')]) @@ -3663,8 +3679,8 @@ def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): def register_Ns3TypeId_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() + cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('==') ## type-id.h (module 'core'): ns3::TypeId::TypeId(char const * name) [constructor] cls.add_constructor([param('char const *', 'name')]) @@ -3882,6 +3898,7 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) @@ -3892,7 +3909,6 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor] @@ -5122,6 +5138,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -5147,6 +5168,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -5295,6 +5321,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -5322,11 +5352,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -5590,6 +5615,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -5644,6 +5715,7 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) @@ -5651,7 +5723,6 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('>') cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## nstime.h (module 'core'): ns3::Time::Time() [constructor] @@ -7737,21 +7808,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -8343,6 +8414,11 @@ def register_Ns3PacketSocketClient_methods(root_module, cls): cls.add_constructor([param('ns3::PacketSocketClient const &', 'arg0')]) ## packet-socket-client.h (module 'network'): ns3::PacketSocketClient::PacketSocketClient() [constructor] cls.add_constructor([]) + ## packet-socket-client.h (module 'network'): uint8_t ns3::PacketSocketClient::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## packet-socket-client.h (module 'network'): static ns3::TypeId ns3::PacketSocketClient::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -9486,6 +9562,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/nix-vector-routing/bindings/modulegen__gcc_ILP32.py b/src/nix-vector-routing/bindings/modulegen__gcc_ILP32.py index 1535b2a6f79..dc79fc7fccf 100644 --- a/src/nix-vector-routing/bindings/modulegen__gcc_ILP32.py +++ b/src/nix-vector-routing/bindings/modulegen__gcc_ILP32.py @@ -184,6 +184,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -194,6 +196,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -274,6 +278,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -431,6 +437,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1099,6 +1106,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1112,6 +1124,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -3219,6 +3235,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -3244,6 +3265,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -3392,6 +3418,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -3419,11 +3449,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -3670,6 +3695,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -4920,21 +4991,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5339,6 +5410,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/nix-vector-routing/bindings/modulegen__gcc_LP64.py b/src/nix-vector-routing/bindings/modulegen__gcc_LP64.py index 1535b2a6f79..dc79fc7fccf 100644 --- a/src/nix-vector-routing/bindings/modulegen__gcc_LP64.py +++ b/src/nix-vector-routing/bindings/modulegen__gcc_LP64.py @@ -184,6 +184,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -194,6 +196,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -274,6 +278,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -431,6 +437,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1099,6 +1106,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1112,6 +1124,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -3219,6 +3235,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -3244,6 +3265,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -3392,6 +3418,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -3419,11 +3449,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -3670,6 +3695,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -4920,21 +4991,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5339,6 +5410,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/olsr/bindings/modulegen__gcc_ILP32.py b/src/olsr/bindings/modulegen__gcc_ILP32.py index c018ea93bae..9412cbecdaa 100644 --- a/src/olsr/bindings/modulegen__gcc_ILP32.py +++ b/src/olsr/bindings/modulegen__gcc_ILP32.py @@ -226,6 +226,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -236,6 +238,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -344,6 +348,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -603,6 +609,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1313,6 +1320,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1326,6 +1338,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3IntToType__0_methods(root_module, cls): @@ -3620,6 +3636,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -3645,6 +3666,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -3793,6 +3819,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -3820,11 +3850,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -4071,6 +4096,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -5858,21 +5929,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -6365,6 +6436,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/olsr/bindings/modulegen__gcc_LP64.py b/src/olsr/bindings/modulegen__gcc_LP64.py index c018ea93bae..9412cbecdaa 100644 --- a/src/olsr/bindings/modulegen__gcc_LP64.py +++ b/src/olsr/bindings/modulegen__gcc_LP64.py @@ -226,6 +226,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -236,6 +238,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -344,6 +348,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -603,6 +609,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1313,6 +1320,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1326,6 +1338,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3IntToType__0_methods(root_module, cls): @@ -3620,6 +3636,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -3645,6 +3666,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -3793,6 +3819,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -3820,11 +3850,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -4071,6 +4096,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -5858,21 +5929,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -6365,6 +6436,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/point-to-point-layout/bindings/modulegen__gcc_ILP32.py b/src/point-to-point-layout/bindings/modulegen__gcc_ILP32.py index 5e78d5ce7b9..5e36dbcb0ec 100644 --- a/src/point-to-point-layout/bindings/modulegen__gcc_ILP32.py +++ b/src/point-to-point-layout/bindings/modulegen__gcc_ILP32.py @@ -230,6 +230,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -240,6 +242,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -330,6 +334,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -492,6 +498,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1398,6 +1405,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1411,6 +1423,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -4373,6 +4389,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -4398,6 +4419,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -4546,6 +4572,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -4573,11 +4603,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -4824,6 +4849,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -6794,21 +6865,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -7213,6 +7284,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/point-to-point-layout/bindings/modulegen__gcc_LP64.py b/src/point-to-point-layout/bindings/modulegen__gcc_LP64.py index 5e78d5ce7b9..5e36dbcb0ec 100644 --- a/src/point-to-point-layout/bindings/modulegen__gcc_LP64.py +++ b/src/point-to-point-layout/bindings/modulegen__gcc_LP64.py @@ -230,6 +230,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -240,6 +242,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -330,6 +334,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -492,6 +498,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1398,6 +1405,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1411,6 +1423,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -4373,6 +4389,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -4398,6 +4419,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -4546,6 +4572,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -4573,11 +4603,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -4824,6 +4849,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -6794,21 +6865,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -7213,6 +7284,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/point-to-point/bindings/modulegen__gcc_ILP32.py b/src/point-to-point/bindings/modulegen__gcc_ILP32.py index 521d4e99e0e..a4bbee5edd4 100644 --- a/src/point-to-point/bindings/modulegen__gcc_ILP32.py +++ b/src/point-to-point/bindings/modulegen__gcc_ILP32.py @@ -304,6 +304,8 @@ def register_types(module): module.add_class('PointToPointRemoteChannel', parent=root_module['ns3::PointToPointChannel']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## error-model.h (module 'network'): ns3::RateErrorModel [class] module.add_class('RateErrorModel', import_from_module='ns.network', parent=root_module['ns3::ErrorModel']) ## error-model.h (module 'network'): ns3::RateErrorModel::ErrorUnit [enumeration] @@ -5080,21 +5082,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5834,6 +5836,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/point-to-point/bindings/modulegen__gcc_LP64.py b/src/point-to-point/bindings/modulegen__gcc_LP64.py index 521d4e99e0e..a4bbee5edd4 100644 --- a/src/point-to-point/bindings/modulegen__gcc_LP64.py +++ b/src/point-to-point/bindings/modulegen__gcc_LP64.py @@ -304,6 +304,8 @@ def register_types(module): module.add_class('PointToPointRemoteChannel', parent=root_module['ns3::PointToPointChannel']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## error-model.h (module 'network'): ns3::RateErrorModel [class] module.add_class('RateErrorModel', import_from_module='ns.network', parent=root_module['ns3::ErrorModel']) ## error-model.h (module 'network'): ns3::RateErrorModel::ErrorUnit [enumeration] @@ -5080,21 +5082,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5834,6 +5836,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/sixlowpan/bindings/modulegen__gcc_ILP32.py b/src/sixlowpan/bindings/modulegen__gcc_ILP32.py index d444ac95599..c907676bc7a 100644 --- a/src/sixlowpan/bindings/modulegen__gcc_ILP32.py +++ b/src/sixlowpan/bindings/modulegen__gcc_ILP32.py @@ -280,6 +280,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## sixlowpan-net-device.h (module 'sixlowpan'): ns3::SixLowPanNetDevice [class] module.add_class('SixLowPanNetDevice', parent=root_module['ns3::NetDevice']) ## sixlowpan-net-device.h (module 'sixlowpan'): ns3::SixLowPanNetDevice::DropReason [enumeration] @@ -4693,21 +4695,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5099,6 +5101,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/sixlowpan/bindings/modulegen__gcc_LP64.py b/src/sixlowpan/bindings/modulegen__gcc_LP64.py index d444ac95599..c907676bc7a 100644 --- a/src/sixlowpan/bindings/modulegen__gcc_LP64.py +++ b/src/sixlowpan/bindings/modulegen__gcc_LP64.py @@ -280,6 +280,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## sixlowpan-net-device.h (module 'sixlowpan'): ns3::SixLowPanNetDevice [class] module.add_class('SixLowPanNetDevice', parent=root_module['ns3::NetDevice']) ## sixlowpan-net-device.h (module 'sixlowpan'): ns3::SixLowPanNetDevice::DropReason [enumeration] @@ -4693,21 +4695,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5099,6 +5101,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/spectrum/bindings/callbacks_list.py b/src/spectrum/bindings/callbacks_list.py index 2e2b92f1e38..7d409223a29 100644 --- a/src/spectrum/bindings/callbacks_list.py +++ b/src/spectrum/bindings/callbacks_list.py @@ -1,7 +1,7 @@ callback_classes = [ - ['void', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', '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::empty', 'ns3::empty', 'ns3::empty', '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'], ['bool', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['bool', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['bool', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], diff --git a/src/spectrum/bindings/modulegen__gcc_ILP32.py b/src/spectrum/bindings/modulegen__gcc_ILP32.py index 842748d8ef8..22f9b0e600e 100644 --- a/src/spectrum/bindings/modulegen__gcc_ILP32.py +++ b/src/spectrum/bindings/modulegen__gcc_ILP32.py @@ -396,6 +396,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## spectrum-error-model.h (module 'spectrum'): ns3::ShannonSpectrumErrorModel [class] module.add_class('ShannonSpectrumErrorModel', parent=root_module['ns3::SpectrumErrorModel']) ## spectrum-analyzer.h (module 'spectrum'): ns3::SpectrumAnalyzer [class] @@ -435,9 +437,6 @@ def register_types(module): module.add_container('std::vector< double >', 'double', container_type=u'vector') module.add_container('ns3::Bands', 'ns3::BandInfo', container_type=u'vector') module.add_container('std::vector< ns3::Ptr< ns3::SpectrumPhy > >', 'ns3::Ptr< ns3::SpectrumPhy >', container_type=u'vector') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyRxEndOkCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyRxEndOkCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyRxEndOkCallback&') @@ -474,6 +473,9 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< double, std::allocator< double > >', u'ns3::Values') typehandlers.add_type_alias(u'std::vector< double, std::allocator< double > >*', u'ns3::Values*') typehandlers.add_type_alias(u'std::vector< double, std::allocator< double > >&', u'ns3::Values&') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxStartCallback') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxStartCallback*') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxStartCallback&') @@ -6457,21 +6459,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -7101,6 +7103,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/spectrum/bindings/modulegen__gcc_LP64.py b/src/spectrum/bindings/modulegen__gcc_LP64.py index 842748d8ef8..22f9b0e600e 100644 --- a/src/spectrum/bindings/modulegen__gcc_LP64.py +++ b/src/spectrum/bindings/modulegen__gcc_LP64.py @@ -396,6 +396,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## spectrum-error-model.h (module 'spectrum'): ns3::ShannonSpectrumErrorModel [class] module.add_class('ShannonSpectrumErrorModel', parent=root_module['ns3::SpectrumErrorModel']) ## spectrum-analyzer.h (module 'spectrum'): ns3::SpectrumAnalyzer [class] @@ -435,9 +437,6 @@ def register_types(module): module.add_container('std::vector< double >', 'double', container_type=u'vector') module.add_container('ns3::Bands', 'ns3::BandInfo', container_type=u'vector') module.add_container('std::vector< ns3::Ptr< ns3::SpectrumPhy > >', 'ns3::Ptr< ns3::SpectrumPhy >', container_type=u'vector') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyRxEndOkCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyRxEndOkCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyRxEndOkCallback&') @@ -474,6 +473,9 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< double, std::allocator< double > >', u'ns3::Values') typehandlers.add_type_alias(u'std::vector< double, std::allocator< double > >*', u'ns3::Values*') typehandlers.add_type_alias(u'std::vector< double, std::allocator< double > >&', u'ns3::Values&') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxStartCallback') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxStartCallback*') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxStartCallback&') @@ -6457,21 +6459,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -7101,6 +7103,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/tap-bridge/bindings/modulegen__gcc_ILP32.py b/src/tap-bridge/bindings/modulegen__gcc_ILP32.py index 99d1e561b96..90b40ae8c61 100644 --- a/src/tap-bridge/bindings/modulegen__gcc_ILP32.py +++ b/src/tap-bridge/bindings/modulegen__gcc_ILP32.py @@ -224,6 +224,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## tap-bridge.h (module 'tap-bridge'): ns3::TapBridge [class] module.add_class('TapBridge', parent=root_module['ns3::NetDevice']) ## tap-bridge.h (module 'tap-bridge'): ns3::TapBridge::Mode [enumeration] @@ -3458,21 +3460,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -3864,6 +3866,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/tap-bridge/bindings/modulegen__gcc_LP64.py b/src/tap-bridge/bindings/modulegen__gcc_LP64.py index 1ffe5bb1f3b..bfcadfa4ac2 100644 --- a/src/tap-bridge/bindings/modulegen__gcc_LP64.py +++ b/src/tap-bridge/bindings/modulegen__gcc_LP64.py @@ -224,6 +224,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## tap-bridge.h (module 'tap-bridge'): ns3::TapBridge [class] module.add_class('TapBridge', parent=root_module['ns3::NetDevice']) ## tap-bridge.h (module 'tap-bridge'): ns3::TapBridge::Mode [enumeration] @@ -3458,21 +3460,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -3864,6 +3866,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/topology-read/bindings/modulegen__gcc_ILP32.py b/src/topology-read/bindings/modulegen__gcc_ILP32.py index 9b75b9152a8..1a9359d9a6f 100644 --- a/src/topology-read/bindings/modulegen__gcc_ILP32.py +++ b/src/topology-read/bindings/modulegen__gcc_ILP32.py @@ -150,6 +150,8 @@ def register_types(module): module.add_class('OrbisTopologyReader', parent=root_module['ns3::TopologyReader']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## rocketfuel-topology-reader.h (module 'topology-read'): ns3::RocketfuelTopologyReader [class] module.add_class('RocketfuelTopologyReader', parent=root_module['ns3::TopologyReader']) ## nstime.h (module 'core'): ns3::TimeValue [class] @@ -2408,21 +2410,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -2560,6 +2562,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/topology-read/bindings/modulegen__gcc_LP64.py b/src/topology-read/bindings/modulegen__gcc_LP64.py index 9b75b9152a8..1a9359d9a6f 100644 --- a/src/topology-read/bindings/modulegen__gcc_LP64.py +++ b/src/topology-read/bindings/modulegen__gcc_LP64.py @@ -150,6 +150,8 @@ def register_types(module): module.add_class('OrbisTopologyReader', parent=root_module['ns3::TopologyReader']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## rocketfuel-topology-reader.h (module 'topology-read'): ns3::RocketfuelTopologyReader [class] module.add_class('RocketfuelTopologyReader', parent=root_module['ns3::TopologyReader']) ## nstime.h (module 'core'): ns3::TimeValue [class] @@ -2408,21 +2410,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -2560,6 +2562,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/traffic-control/bindings/callbacks_list.py b/src/traffic-control/bindings/callbacks_list.py index 4468731d436..5ea38a6a546 100644 --- a/src/traffic-control/bindings/callbacks_list.py +++ b/src/traffic-control/bindings/callbacks_list.py @@ -1,6 +1,6 @@ callback_classes = [ + ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', '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::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], - ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ] diff --git a/src/traffic-control/bindings/modulegen__gcc_ILP32.py b/src/traffic-control/bindings/modulegen__gcc_ILP32.py index c8b04c4e0cd..fe525cd1dfe 100644 --- a/src/traffic-control/bindings/modulegen__gcc_ILP32.py +++ b/src/traffic-control/bindings/modulegen__gcc_ILP32.py @@ -300,6 +300,8 @@ def register_types(module): module.add_class('PfifoFastQueueDisc', parent=root_module['ns3::QueueDisc']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## string.h (module 'core'): ns3::StringChecker [class] module.add_class('StringChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker']) ## string.h (module 'core'): ns3::StringValue [class] @@ -5112,21 +5114,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5643,6 +5645,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/traffic-control/bindings/modulegen__gcc_LP64.py b/src/traffic-control/bindings/modulegen__gcc_LP64.py index c8b04c4e0cd..fe525cd1dfe 100644 --- a/src/traffic-control/bindings/modulegen__gcc_LP64.py +++ b/src/traffic-control/bindings/modulegen__gcc_LP64.py @@ -300,6 +300,8 @@ def register_types(module): module.add_class('PfifoFastQueueDisc', parent=root_module['ns3::QueueDisc']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## string.h (module 'core'): ns3::StringChecker [class] module.add_class('StringChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker']) ## string.h (module 'core'): ns3::StringValue [class] @@ -5112,21 +5114,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5643,6 +5645,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/uan/bindings/modulegen__gcc_ILP32.py b/src/uan/bindings/modulegen__gcc_ILP32.py index 36200957867..64431bfd44b 100644 --- a/src/uan/bindings/modulegen__gcc_ILP32.py +++ b/src/uan/bindings/modulegen__gcc_ILP32.py @@ -374,6 +374,8 @@ def register_types(module): module.add_class('PointerValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -7333,21 +7335,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -7872,6 +7874,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/uan/bindings/modulegen__gcc_LP64.py b/src/uan/bindings/modulegen__gcc_LP64.py index 36200957867..64431bfd44b 100644 --- a/src/uan/bindings/modulegen__gcc_LP64.py +++ b/src/uan/bindings/modulegen__gcc_LP64.py @@ -374,6 +374,8 @@ def register_types(module): module.add_class('PointerValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -7333,21 +7335,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -7872,6 +7874,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/virtual-net-device/bindings/modulegen__gcc_ILP32.py b/src/virtual-net-device/bindings/modulegen__gcc_ILP32.py index 57673a10279..7a394b79f04 100644 --- a/src/virtual-net-device/bindings/modulegen__gcc_ILP32.py +++ b/src/virtual-net-device/bindings/modulegen__gcc_ILP32.py @@ -182,6 +182,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## type-id.h (module 'core'): ns3::TypeIdChecker [class] module.add_class('TypeIdChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker']) ## type-id.h (module 'core'): ns3::TypeIdValue [class] @@ -2762,21 +2764,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -3128,6 +3130,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/virtual-net-device/bindings/modulegen__gcc_LP64.py b/src/virtual-net-device/bindings/modulegen__gcc_LP64.py index 57673a10279..7a394b79f04 100644 --- a/src/virtual-net-device/bindings/modulegen__gcc_LP64.py +++ b/src/virtual-net-device/bindings/modulegen__gcc_LP64.py @@ -182,6 +182,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## type-id.h (module 'core'): ns3::TypeIdChecker [class] module.add_class('TypeIdChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker']) ## type-id.h (module 'core'): ns3::TypeIdValue [class] @@ -2762,21 +2764,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -3128,6 +3130,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/wave/bindings/modulegen__gcc_ILP32.py b/src/wave/bindings/modulegen__gcc_ILP32.py index 57c05c211b5..539ea156fec 100644 --- a/src/wave/bindings/modulegen__gcc_ILP32.py +++ b/src/wave/bindings/modulegen__gcc_ILP32.py @@ -32,8 +32,6 @@ def register_types(module): module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') - ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] - module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], import_from_module='ns.wifi') ## channel-scheduler.h (module 'wave'): ns3::ChannelAccess [enumeration] @@ -44,6 +42,8 @@ def register_types(module): module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK'], import_from_module='ns.wifi') ## vsa-manager.h (module 'wave'): ns3::VsaTransmitInterval [enumeration] module.add_enum('VsaTransmitInterval', ['VSA_TRANSMIT_IN_CCHI', 'VSA_TRANSMIT_IN_SCHI', 'VSA_TRANSMIT_IN_BOTHI']) + ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] + module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], 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] @@ -362,6 +362,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -372,6 +374,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -490,6 +494,12 @@ def register_types(module): module.add_class('DeterministicRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## double.h (module 'core'): ns3::DoubleValue [class] module.add_class('DoubleValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet [class] + module.add_class('EdcaParameterSet', import_from_module='ns.wifi', parent=root_module['ns3::WifiInformationElement']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker [class] + module.add_class('EdcaParameterSetChecker', import_from_module='ns.wifi', parent=root_module['ns3::AttributeChecker']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue [class] + module.add_class('EdcaParameterSetValue', import_from_module='ns.wifi', parent=root_module['ns3::AttributeValue']) ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN [class] module.add_class('EdcaTxopN', import_from_module='ns.wifi', parent=root_module['ns3::Dcf']) ## random-variable-stream.h (module 'core'): ns3::EmpiricalRandomVariable [class] @@ -616,6 +626,8 @@ def register_types(module): module.add_class('PointerValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## regular-wifi-mac.h (module 'wifi'): ns3::RegularWifiMac [class] module.add_class('RegularWifiMac', import_from_module='ns.wifi', parent=root_module['ns3::WifiMac']) ## ssid.h (module 'wifi'): ns3::Ssid [class] @@ -668,7 +680,7 @@ def register_types(module): module.add_class('DcaTxop', import_from_module='ns.wifi', parent=root_module['ns3::Dcf']) ## ocb-wifi-mac.h (module 'wave'): ns3::OcbWifiMac [class] module.add_class('OcbWifiMac', parent=root_module['ns3::RegularWifiMac']) - module.add_container('ns3::EdcaParameterSet', ('ns3::AcIndex', 'ns3::EdcaParameter'), container_type=u'map') + module.add_container('ns3::EdcaParameters', ('ns3::AcIndex', 'ns3::EdcaParameter'), container_type=u'map') module.add_container('std::vector< double >', 'double', container_type=u'vector') module.add_container('std::vector< int >', 'int', container_type=u'vector') module.add_container('std::vector< unsigned int >', 'unsigned int', container_type=u'vector') @@ -683,12 +695,15 @@ def register_types(module): typehandlers.add_type_alias(u'uint8_t', u'ns3::WifiInformationElementId') typehandlers.add_type_alias(u'uint8_t*', u'ns3::WifiInformationElementId*') typehandlers.add_type_alias(u'uint8_t&', u'ns3::WifiInformationElementId&') - typehandlers.add_type_alias(u'std::map< ns3::AcIndex, ns3::EdcaParameter, std::less< ns3::AcIndex >, std::allocator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > > >', u'ns3::EdcaParameterSet') - typehandlers.add_type_alias(u'std::map< ns3::AcIndex, ns3::EdcaParameter, std::less< ns3::AcIndex >, std::allocator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > > >*', u'ns3::EdcaParameterSet*') - typehandlers.add_type_alias(u'std::map< ns3::AcIndex, ns3::EdcaParameter, std::less< ns3::AcIndex >, std::allocator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > > >&', u'ns3::EdcaParameterSet&') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::WifiMac >, ns3::OrganizationIdentifier const &, ns3::Ptr< ns3::Packet const >, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::VscCallback') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::WifiMac >, ns3::OrganizationIdentifier const &, ns3::Ptr< ns3::Packet const >, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::VscCallback*') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::WifiMac >, ns3::OrganizationIdentifier const &, ns3::Ptr< ns3::Packet const >, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::VscCallback&') + typehandlers.add_type_alias(u'std::_Rb_tree_const_iterator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > >', u'ns3::EdcaParametersI') + typehandlers.add_type_alias(u'std::_Rb_tree_const_iterator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > >*', u'ns3::EdcaParametersI*') + typehandlers.add_type_alias(u'std::_Rb_tree_const_iterator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > >&', u'ns3::EdcaParametersI&') + typehandlers.add_type_alias(u'std::map< ns3::AcIndex, ns3::EdcaParameter, std::less< ns3::AcIndex >, std::allocator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > > >', u'ns3::EdcaParameters') + typehandlers.add_type_alias(u'std::map< ns3::AcIndex, ns3::EdcaParameter, std::less< ns3::AcIndex >, std::allocator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > > >*', u'ns3::EdcaParameters*') + typehandlers.add_type_alias(u'std::map< ns3::AcIndex, ns3::EdcaParameter, std::less< ns3::AcIndex >, std::allocator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > > >&', u'ns3::EdcaParameters&') typehandlers.add_type_alias(u'ns3::Vector3D', u'ns3::Vector') typehandlers.add_type_alias(u'ns3::Vector3D*', u'ns3::Vector*') typehandlers.add_type_alias(u'ns3::Vector3D&', u'ns3::Vector&') @@ -707,9 +722,6 @@ def register_types(module): typehandlers.add_type_alias(u'__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >', u'ns3::WifiModeListIterator') typehandlers.add_type_alias(u'__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >*', u'ns3::WifiModeListIterator*') typehandlers.add_type_alias(u'__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >&', u'ns3::WifiModeListIterator&') - typehandlers.add_type_alias(u'std::_Rb_tree_const_iterator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > >', u'ns3::EdcaParameterSetI') - typehandlers.add_type_alias(u'std::_Rb_tree_const_iterator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > >*', u'ns3::EdcaParameterSetI*') - typehandlers.add_type_alias(u'std::_Rb_tree_const_iterator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > >&', u'ns3::EdcaParameterSetI&') ## Register a nested module for the namespace FatalImpl @@ -943,6 +955,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -990,6 +1003,9 @@ def register_methods(root_module): register_Ns3DefaultChannelScheduler_methods(root_module, root_module['ns3::DefaultChannelScheduler']) register_Ns3DeterministicRandomVariable_methods(root_module, root_module['ns3::DeterministicRandomVariable']) register_Ns3DoubleValue_methods(root_module, root_module['ns3::DoubleValue']) + register_Ns3EdcaParameterSet_methods(root_module, root_module['ns3::EdcaParameterSet']) + register_Ns3EdcaParameterSetChecker_methods(root_module, root_module['ns3::EdcaParameterSetChecker']) + register_Ns3EdcaParameterSetValue_methods(root_module, root_module['ns3::EdcaParameterSetValue']) register_Ns3EdcaTxopN_methods(root_module, root_module['ns3::EdcaTxopN']) register_Ns3EmpiricalRandomVariable_methods(root_module, root_module['ns3::EmpiricalRandomVariable']) register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue']) @@ -2354,6 +2370,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -2367,6 +2388,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3InterferenceHelper_methods(root_module, cls): @@ -3362,6 +3387,11 @@ def register_Ns3MacLowTransmissionListener_methods(root_module, cls): 'void', [], is_pure_virtual=True, is_virtual=True) + ## mac-low.h (module 'wifi'): void ns3::MacLowTransmissionListener::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + [], + is_pure_virtual=True, is_virtual=True) return def register_Ns3MacLowTransmissionParameters_methods(root_module, cls): @@ -4228,12 +4258,12 @@ def register_Ns3SchInfo_methods(root_module, cls): cls.add_constructor([]) ## channel-scheduler.h (module 'wave'): ns3::SchInfo::SchInfo(uint32_t channel, bool immediate, uint32_t channelAccess) [constructor] cls.add_constructor([param('uint32_t', 'channel'), param('bool', 'immediate'), param('uint32_t', 'channelAccess')]) - ## channel-scheduler.h (module 'wave'): ns3::SchInfo::SchInfo(uint32_t channel, bool immediate, uint32_t channelAccess, ns3::EdcaParameterSet edca) [constructor] - cls.add_constructor([param('uint32_t', 'channel'), param('bool', 'immediate'), param('uint32_t', 'channelAccess'), param('ns3::EdcaParameterSet', 'edca')]) + ## channel-scheduler.h (module 'wave'): ns3::SchInfo::SchInfo(uint32_t channel, bool immediate, uint32_t channelAccess, ns3::EdcaParameters edca) [constructor] + cls.add_constructor([param('uint32_t', 'channel'), param('bool', 'immediate'), param('uint32_t', 'channelAccess'), param('ns3::EdcaParameters', 'edca')]) ## channel-scheduler.h (module 'wave'): ns3::SchInfo::channelNumber [variable] cls.add_instance_attribute('channelNumber', 'uint32_t', is_const=False) - ## channel-scheduler.h (module 'wave'): ns3::SchInfo::edcaParameterSet [variable] - cls.add_instance_attribute('edcaParameterSet', 'ns3::EdcaParameterSet', is_const=False) + ## channel-scheduler.h (module 'wave'): ns3::SchInfo::edcaParameters [variable] + cls.add_instance_attribute('edcaParameters', 'ns3::EdcaParameters', is_const=False) ## channel-scheduler.h (module 'wave'): ns3::SchInfo::extendedAccess [variable] cls.add_instance_attribute('extendedAccess', 'uint8_t', is_const=False) ## channel-scheduler.h (module 'wave'): ns3::SchInfo::immediateAccess [variable] @@ -6247,6 +6277,11 @@ def register_Ns3MgtAssocResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::EdcaParameterSet ns3::MgtAssocResponseHeader::GetEdcaParameterSet() const [member function] + cls.add_method('GetEdcaParameterSet', + 'ns3::EdcaParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::ErpInformation ns3::MgtAssocResponseHeader::GetErpInformation() const [member function] cls.add_method('GetErpInformation', 'ns3::ErpInformation', @@ -6304,6 +6339,10 @@ def register_Ns3MgtAssocResponseHeader_methods(root_module, cls): cls.add_method('SetCapabilities', 'void', [param('ns3::CapabilityInformation', 'capabilities')]) + ## mgt-headers.h (module 'wifi'): void ns3::MgtAssocResponseHeader::SetEdcaParameterSet(ns3::EdcaParameterSet edcaParameterSet) [member function] + cls.add_method('SetEdcaParameterSet', + 'void', + [param('ns3::EdcaParameterSet', 'edcaParameterSet')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtAssocResponseHeader::SetErpInformation(ns3::ErpInformation erpInformation) [member function] cls.add_method('SetErpInformation', 'void', @@ -6482,6 +6521,11 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::EdcaParameterSet ns3::MgtProbeResponseHeader::GetEdcaParameterSet() const [member function] + cls.add_method('GetEdcaParameterSet', + 'ns3::EdcaParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::ErpInformation ns3::MgtProbeResponseHeader::GetErpInformation() const [member function] cls.add_method('GetErpInformation', 'ns3::ErpInformation', @@ -6549,6 +6593,10 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): cls.add_method('SetCapabilities', 'void', [param('ns3::CapabilityInformation', 'capabilities')]) + ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetEdcaParameterSet(ns3::EdcaParameterSet edcaParameterSet) [member function] + cls.add_method('SetEdcaParameterSet', + 'void', + [param('ns3::EdcaParameterSet', 'edcaParameterSet')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetErpInformation(ns3::ErpInformation erpInformation) [member function] cls.add_method('SetErpInformation', 'void', @@ -7126,6 +7174,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -7151,6 +7204,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -7299,6 +7357,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -7326,11 +7388,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -7577,6 +7634,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -8570,10 +8673,10 @@ def register_Ns3WifiMac_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) - ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function] + ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, ns3::AcIndex ac) [member function] cls.add_method('ConfigureDcf', 'void', - [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], visibility='protected') ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] cls.add_method('FinishConfigureStandard', @@ -12093,6 +12196,11 @@ def register_Ns3Dcf_methods(root_module, cls): 'uint32_t', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## dcf.h (module 'wifi'): ns3::Time ns3::Dcf::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_pure_virtual=True, is_const=True, is_virtual=True) ## dcf.h (module 'wifi'): static ns3::TypeId ns3::Dcf::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -12113,6 +12221,11 @@ def register_Ns3Dcf_methods(root_module, cls): 'void', [param('uint32_t', 'minCw')], is_pure_virtual=True, is_virtual=True) + ## dcf.h (module 'wifi'): void ns3::Dcf::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_pure_virtual=True, is_virtual=True) return def register_Ns3DefaultChannelScheduler_methods(root_module, cls): @@ -12241,6 +12354,313 @@ def register_Ns3DoubleValue_methods(root_module, cls): [param('double const &', 'value')]) return +def register_Ns3EdcaParameterSet_methods(root_module, cls): + cls.add_output_stream_operator() + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet::EdcaParameterSet(ns3::EdcaParameterSet const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSet const &', 'arg0')]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet::EdcaParameterSet() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::DeserializeInformationField(ns3::Buffer::Iterator start, uint8_t length) [member function] + cls.add_method('DeserializeInformationField', + 'uint8_t', + [param('ns3::Buffer::Iterator', 'start'), param('uint8_t', 'length')], + is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): ns3::WifiInformationElementId ns3::EdcaParameterSet::ElementId() const [member function] + cls.add_method('ElementId', + 'ns3::WifiInformationElementId', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAci() const [member function] + cls.add_method('GetBeAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAcm() const [member function] + cls.add_method('GetBeAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAifsn() const [member function] + cls.add_method('GetBeAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeCWmax() const [member function] + cls.add_method('GetBeCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeCWmin() const [member function] + cls.add_method('GetBeCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetBeTXOPLimit() const [member function] + cls.add_method('GetBeTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAci() const [member function] + cls.add_method('GetBkAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAcm() const [member function] + cls.add_method('GetBkAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAifsn() const [member function] + cls.add_method('GetBkAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkCWmax() const [member function] + cls.add_method('GetBkCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkCWmin() const [member function] + cls.add_method('GetBkCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetBkTXOPLimit() const [member function] + cls.add_method('GetBkTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetInformationFieldSize() const [member function] + cls.add_method('GetInformationFieldSize', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetQosInfo() const [member function] + cls.add_method('GetQosInfo', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAci() const [member function] + cls.add_method('GetViAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAcm() const [member function] + cls.add_method('GetViAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAifsn() const [member function] + cls.add_method('GetViAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViCWmax() const [member function] + cls.add_method('GetViCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViCWmin() const [member function] + cls.add_method('GetViCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetViTXOPLimit() const [member function] + cls.add_method('GetViTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAci() const [member function] + cls.add_method('GetVoAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAcm() const [member function] + cls.add_method('GetVoAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAifsn() const [member function] + cls.add_method('GetVoAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoCWmax() const [member function] + cls.add_method('GetVoCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoCWmin() const [member function] + cls.add_method('GetVoCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetVoTXOPLimit() const [member function] + cls.add_method('GetVoTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): ns3::Buffer::Iterator ns3::EdcaParameterSet::Serialize(ns3::Buffer::Iterator start) const [member function] + cls.add_method('Serialize', + 'ns3::Buffer::Iterator', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SerializeInformationField(ns3::Buffer::Iterator start) const [member function] + cls.add_method('SerializeInformationField', + 'void', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAci(uint8_t aci) [member function] + cls.add_method('SetBeAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAcm(uint8_t acm) [member function] + cls.add_method('SetBeAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAifsn(uint8_t aifsn) [member function] + cls.add_method('SetBeAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeCWmax(uint8_t cwMax) [member function] + cls.add_method('SetBeCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeCWmin(uint8_t cwMin) [member function] + cls.add_method('SetBeCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetBeTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAci(uint8_t aci) [member function] + cls.add_method('SetBkAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAcm(uint8_t acm) [member function] + cls.add_method('SetBkAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAifsn(uint8_t aifsn) [member function] + cls.add_method('SetBkAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkCWmax(uint8_t cwMax) [member function] + cls.add_method('SetBkCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkCWmin(uint8_t cwMin) [member function] + cls.add_method('SetBkCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetBkTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetQosInfo(uint8_t qosInfo) [member function] + cls.add_method('SetQosInfo', + 'void', + [param('uint8_t', 'qosInfo')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetQosSupported(uint8_t qosSupported) [member function] + cls.add_method('SetQosSupported', + 'void', + [param('uint8_t', 'qosSupported')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAci(uint8_t aci) [member function] + cls.add_method('SetViAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAcm(uint8_t acm) [member function] + cls.add_method('SetViAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAifsn(uint8_t aifsn) [member function] + cls.add_method('SetViAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViCWmax(uint8_t cwMax) [member function] + cls.add_method('SetViCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViCWmin(uint8_t cwMin) [member function] + cls.add_method('SetViCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetViTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAci(uint8_t aci) [member function] + cls.add_method('SetVoAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAcm(uint8_t acm) [member function] + cls.add_method('SetVoAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAifsn(uint8_t aifsn) [member function] + cls.add_method('SetVoAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoCWmax(uint8_t cwMax) [member function] + cls.add_method('SetVoCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoCWmin(uint8_t cwMin) [member function] + cls.add_method('SetVoCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetVoTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + return + +def register_Ns3EdcaParameterSetChecker_methods(root_module, cls): + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker::EdcaParameterSetChecker() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker::EdcaParameterSetChecker(ns3::EdcaParameterSetChecker const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSetChecker const &', 'arg0')]) + return + +def register_Ns3EdcaParameterSetValue_methods(root_module, cls): + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue(ns3::EdcaParameterSetValue const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSetValue const &', 'arg0')]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue(ns3::EdcaParameterSet const & value) [constructor] + cls.add_constructor([param('ns3::EdcaParameterSet const &', 'value')]) + ## edca-parameter-set.h (module 'wifi'): ns3::Ptr ns3::EdcaParameterSetValue::Copy() const [member function] + cls.add_method('Copy', + 'ns3::Ptr< ns3::AttributeValue >', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): bool ns3::EdcaParameterSetValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] + cls.add_method('DeserializeFromString', + 'bool', + [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], + is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet ns3::EdcaParameterSetValue::Get() const [member function] + cls.add_method('Get', + 'ns3::EdcaParameterSet', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): std::string ns3::EdcaParameterSetValue::SerializeToString(ns3::Ptr checker) const [member function] + cls.add_method('SerializeToString', + 'std::string', + [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSetValue::Set(ns3::EdcaParameterSet const & value) [member function] + cls.add_method('Set', + 'void', + [param('ns3::EdcaParameterSet const &', 'value')]) + return + def register_Ns3EdcaTxopN_methods(root_module, cls): ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::m_aMpduEnabled [variable] cls.add_instance_attribute('m_aMpduEnabled', 'std::map< ns3::Mac48Address, bool >', is_const=False) @@ -12309,6 +12729,11 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): 'void', [param('uint32_t', 'aifsn')], is_virtual=True) + ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_virtual=True) ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetMinCw() const [member function] cls.add_method('GetMinCw', 'uint32_t', @@ -12324,6 +12749,11 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## edca-txop-n.h (module 'wifi'): ns3::Time ns3::EdcaTxopN::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True, is_virtual=True) ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::Low() [member function] cls.add_method('Low', 'ns3::Ptr< ns3::MacLow >', @@ -12416,6 +12846,10 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): cls.add_method('MissedAck', 'void', []) + ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + []) ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNext() [member function] cls.add_method('StartNext', 'void', @@ -14933,6 +15367,11 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('AggregateToAmpdu', 'ns3::Ptr< ns3::Packet >', [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const', 'hdr')]) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::CalculateOverallTxTime(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters const & params) const [member function] + cls.add_method('CalculateOverallTxTime', + 'ns3::Time', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters const &', 'params')], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::CalculateTransmissionTime(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters const & parameters) const [member function] cls.add_method('CalculateTransmissionTime', 'ns3::Time', @@ -15469,21 +15908,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -16061,6 +16500,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', @@ -17430,6 +17874,11 @@ def register_Ns3DcaTxop_methods(root_module, cls): 'void', [param('uint32_t', 'aifsn')], is_virtual=True) + ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_virtual=True) ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMinCw() const [member function] cls.add_method('GetMinCw', 'uint32_t', @@ -17445,6 +17894,11 @@ def register_Ns3DcaTxop_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True, is_virtual=True) ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::Queue(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] cls.add_method('Queue', 'void', diff --git a/src/wave/bindings/modulegen__gcc_LP64.py b/src/wave/bindings/modulegen__gcc_LP64.py index 9435cac24a6..539ea156fec 100644 --- a/src/wave/bindings/modulegen__gcc_LP64.py +++ b/src/wave/bindings/modulegen__gcc_LP64.py @@ -32,18 +32,18 @@ def register_types(module): module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') - ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] - module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') - ## channel-scheduler.h (module 'wave'): ns3::ChannelAccess [enumeration] - module.add_enum('ChannelAccess', ['ContinuousAccess', 'AlternatingAccess', 'ExtendedAccess', 'DefaultCchAccess', 'NoAccess']) ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], import_from_module='ns.wifi') + ## channel-scheduler.h (module 'wave'): ns3::ChannelAccess [enumeration] + module.add_enum('ChannelAccess', ['ContinuousAccess', 'AlternatingAccess', 'ExtendedAccess', 'DefaultCchAccess', 'NoAccess']) ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation [enumeration] module.add_enum('TypeOfStation', ['STA', 'AP', 'ADHOC_STA', 'MESH', 'HT_STA', 'HT_AP', 'HT_ADHOC_STA', 'OCB'], import_from_module='ns.wifi') ## ctrl-headers.h (module 'wifi'): ns3::BlockAckType [enumeration] module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK'], import_from_module='ns.wifi') ## vsa-manager.h (module 'wave'): ns3::VsaTransmitInterval [enumeration] module.add_enum('VsaTransmitInterval', ['VSA_TRANSMIT_IN_CCHI', 'VSA_TRANSMIT_IN_SCHI', 'VSA_TRANSMIT_IN_BOTHI']) + ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] + module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], 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] @@ -362,6 +362,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -372,6 +374,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -490,6 +494,12 @@ def register_types(module): module.add_class('DeterministicRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## double.h (module 'core'): ns3::DoubleValue [class] module.add_class('DoubleValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet [class] + module.add_class('EdcaParameterSet', import_from_module='ns.wifi', parent=root_module['ns3::WifiInformationElement']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker [class] + module.add_class('EdcaParameterSetChecker', import_from_module='ns.wifi', parent=root_module['ns3::AttributeChecker']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue [class] + module.add_class('EdcaParameterSetValue', import_from_module='ns.wifi', parent=root_module['ns3::AttributeValue']) ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN [class] module.add_class('EdcaTxopN', import_from_module='ns.wifi', parent=root_module['ns3::Dcf']) ## random-variable-stream.h (module 'core'): ns3::EmpiricalRandomVariable [class] @@ -616,6 +626,8 @@ def register_types(module): module.add_class('PointerValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## regular-wifi-mac.h (module 'wifi'): ns3::RegularWifiMac [class] module.add_class('RegularWifiMac', import_from_module='ns.wifi', parent=root_module['ns3::WifiMac']) ## ssid.h (module 'wifi'): ns3::Ssid [class] @@ -668,7 +680,7 @@ def register_types(module): module.add_class('DcaTxop', import_from_module='ns.wifi', parent=root_module['ns3::Dcf']) ## ocb-wifi-mac.h (module 'wave'): ns3::OcbWifiMac [class] module.add_class('OcbWifiMac', parent=root_module['ns3::RegularWifiMac']) - module.add_container('ns3::EdcaParameterSet', ('ns3::AcIndex', 'ns3::EdcaParameter'), container_type=u'map') + module.add_container('ns3::EdcaParameters', ('ns3::AcIndex', 'ns3::EdcaParameter'), container_type=u'map') module.add_container('std::vector< double >', 'double', container_type=u'vector') module.add_container('std::vector< int >', 'int', container_type=u'vector') module.add_container('std::vector< unsigned int >', 'unsigned int', container_type=u'vector') @@ -683,12 +695,15 @@ def register_types(module): typehandlers.add_type_alias(u'uint8_t', u'ns3::WifiInformationElementId') typehandlers.add_type_alias(u'uint8_t*', u'ns3::WifiInformationElementId*') typehandlers.add_type_alias(u'uint8_t&', u'ns3::WifiInformationElementId&') - typehandlers.add_type_alias(u'std::map< ns3::AcIndex, ns3::EdcaParameter, std::less< ns3::AcIndex >, std::allocator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > > >', u'ns3::EdcaParameterSet') - typehandlers.add_type_alias(u'std::map< ns3::AcIndex, ns3::EdcaParameter, std::less< ns3::AcIndex >, std::allocator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > > >*', u'ns3::EdcaParameterSet*') - typehandlers.add_type_alias(u'std::map< ns3::AcIndex, ns3::EdcaParameter, std::less< ns3::AcIndex >, std::allocator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > > >&', u'ns3::EdcaParameterSet&') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::WifiMac >, ns3::OrganizationIdentifier const &, ns3::Ptr< ns3::Packet const >, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::VscCallback') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::WifiMac >, ns3::OrganizationIdentifier const &, ns3::Ptr< ns3::Packet const >, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::VscCallback*') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::WifiMac >, ns3::OrganizationIdentifier const &, ns3::Ptr< ns3::Packet const >, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::VscCallback&') + typehandlers.add_type_alias(u'std::_Rb_tree_const_iterator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > >', u'ns3::EdcaParametersI') + typehandlers.add_type_alias(u'std::_Rb_tree_const_iterator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > >*', u'ns3::EdcaParametersI*') + typehandlers.add_type_alias(u'std::_Rb_tree_const_iterator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > >&', u'ns3::EdcaParametersI&') + typehandlers.add_type_alias(u'std::map< ns3::AcIndex, ns3::EdcaParameter, std::less< ns3::AcIndex >, std::allocator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > > >', u'ns3::EdcaParameters') + typehandlers.add_type_alias(u'std::map< ns3::AcIndex, ns3::EdcaParameter, std::less< ns3::AcIndex >, std::allocator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > > >*', u'ns3::EdcaParameters*') + typehandlers.add_type_alias(u'std::map< ns3::AcIndex, ns3::EdcaParameter, std::less< ns3::AcIndex >, std::allocator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > > >&', u'ns3::EdcaParameters&') typehandlers.add_type_alias(u'ns3::Vector3D', u'ns3::Vector') typehandlers.add_type_alias(u'ns3::Vector3D*', u'ns3::Vector*') typehandlers.add_type_alias(u'ns3::Vector3D&', u'ns3::Vector&') @@ -707,9 +722,6 @@ def register_types(module): typehandlers.add_type_alias(u'__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >', u'ns3::WifiModeListIterator') typehandlers.add_type_alias(u'__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >*', u'ns3::WifiModeListIterator*') typehandlers.add_type_alias(u'__gnu_cxx::__normal_iterator< ns3::WifiMode const *, std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > > >&', u'ns3::WifiModeListIterator&') - typehandlers.add_type_alias(u'std::_Rb_tree_const_iterator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > >', u'ns3::EdcaParameterSetI') - typehandlers.add_type_alias(u'std::_Rb_tree_const_iterator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > >*', u'ns3::EdcaParameterSetI*') - typehandlers.add_type_alias(u'std::_Rb_tree_const_iterator< std::pair< ns3::AcIndex const, ns3::EdcaParameter > >&', u'ns3::EdcaParameterSetI&') ## Register a nested module for the namespace FatalImpl @@ -943,6 +955,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -990,6 +1003,9 @@ def register_methods(root_module): register_Ns3DefaultChannelScheduler_methods(root_module, root_module['ns3::DefaultChannelScheduler']) register_Ns3DeterministicRandomVariable_methods(root_module, root_module['ns3::DeterministicRandomVariable']) register_Ns3DoubleValue_methods(root_module, root_module['ns3::DoubleValue']) + register_Ns3EdcaParameterSet_methods(root_module, root_module['ns3::EdcaParameterSet']) + register_Ns3EdcaParameterSetChecker_methods(root_module, root_module['ns3::EdcaParameterSetChecker']) + register_Ns3EdcaParameterSetValue_methods(root_module, root_module['ns3::EdcaParameterSetValue']) register_Ns3EdcaTxopN_methods(root_module, root_module['ns3::EdcaTxopN']) register_Ns3EmpiricalRandomVariable_methods(root_module, root_module['ns3::EmpiricalRandomVariable']) register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue']) @@ -2354,6 +2370,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -2367,6 +2388,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3InterferenceHelper_methods(root_module, cls): @@ -3362,6 +3387,11 @@ def register_Ns3MacLowTransmissionListener_methods(root_module, cls): 'void', [], is_pure_virtual=True, is_virtual=True) + ## mac-low.h (module 'wifi'): void ns3::MacLowTransmissionListener::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + [], + is_pure_virtual=True, is_virtual=True) return def register_Ns3MacLowTransmissionParameters_methods(root_module, cls): @@ -4228,12 +4258,12 @@ def register_Ns3SchInfo_methods(root_module, cls): cls.add_constructor([]) ## channel-scheduler.h (module 'wave'): ns3::SchInfo::SchInfo(uint32_t channel, bool immediate, uint32_t channelAccess) [constructor] cls.add_constructor([param('uint32_t', 'channel'), param('bool', 'immediate'), param('uint32_t', 'channelAccess')]) - ## channel-scheduler.h (module 'wave'): ns3::SchInfo::SchInfo(uint32_t channel, bool immediate, uint32_t channelAccess, ns3::EdcaParameterSet edca) [constructor] - cls.add_constructor([param('uint32_t', 'channel'), param('bool', 'immediate'), param('uint32_t', 'channelAccess'), param('ns3::EdcaParameterSet', 'edca')]) + ## channel-scheduler.h (module 'wave'): ns3::SchInfo::SchInfo(uint32_t channel, bool immediate, uint32_t channelAccess, ns3::EdcaParameters edca) [constructor] + cls.add_constructor([param('uint32_t', 'channel'), param('bool', 'immediate'), param('uint32_t', 'channelAccess'), param('ns3::EdcaParameters', 'edca')]) ## channel-scheduler.h (module 'wave'): ns3::SchInfo::channelNumber [variable] cls.add_instance_attribute('channelNumber', 'uint32_t', is_const=False) - ## channel-scheduler.h (module 'wave'): ns3::SchInfo::edcaParameterSet [variable] - cls.add_instance_attribute('edcaParameterSet', 'ns3::EdcaParameterSet', is_const=False) + ## channel-scheduler.h (module 'wave'): ns3::SchInfo::edcaParameters [variable] + cls.add_instance_attribute('edcaParameters', 'ns3::EdcaParameters', is_const=False) ## channel-scheduler.h (module 'wave'): ns3::SchInfo::extendedAccess [variable] cls.add_instance_attribute('extendedAccess', 'uint8_t', is_const=False) ## channel-scheduler.h (module 'wave'): ns3::SchInfo::immediateAccess [variable] @@ -6247,6 +6277,11 @@ def register_Ns3MgtAssocResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::EdcaParameterSet ns3::MgtAssocResponseHeader::GetEdcaParameterSet() const [member function] + cls.add_method('GetEdcaParameterSet', + 'ns3::EdcaParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::ErpInformation ns3::MgtAssocResponseHeader::GetErpInformation() const [member function] cls.add_method('GetErpInformation', 'ns3::ErpInformation', @@ -6304,6 +6339,10 @@ def register_Ns3MgtAssocResponseHeader_methods(root_module, cls): cls.add_method('SetCapabilities', 'void', [param('ns3::CapabilityInformation', 'capabilities')]) + ## mgt-headers.h (module 'wifi'): void ns3::MgtAssocResponseHeader::SetEdcaParameterSet(ns3::EdcaParameterSet edcaParameterSet) [member function] + cls.add_method('SetEdcaParameterSet', + 'void', + [param('ns3::EdcaParameterSet', 'edcaParameterSet')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtAssocResponseHeader::SetErpInformation(ns3::ErpInformation erpInformation) [member function] cls.add_method('SetErpInformation', 'void', @@ -6482,6 +6521,11 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::EdcaParameterSet ns3::MgtProbeResponseHeader::GetEdcaParameterSet() const [member function] + cls.add_method('GetEdcaParameterSet', + 'ns3::EdcaParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::ErpInformation ns3::MgtProbeResponseHeader::GetErpInformation() const [member function] cls.add_method('GetErpInformation', 'ns3::ErpInformation', @@ -6549,6 +6593,10 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): cls.add_method('SetCapabilities', 'void', [param('ns3::CapabilityInformation', 'capabilities')]) + ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetEdcaParameterSet(ns3::EdcaParameterSet edcaParameterSet) [member function] + cls.add_method('SetEdcaParameterSet', + 'void', + [param('ns3::EdcaParameterSet', 'edcaParameterSet')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetErpInformation(ns3::ErpInformation erpInformation) [member function] cls.add_method('SetErpInformation', 'void', @@ -7126,6 +7174,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -7151,6 +7204,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -7299,6 +7357,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -7326,11 +7388,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -7577,6 +7634,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -8570,10 +8673,10 @@ def register_Ns3WifiMac_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) - ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function] + ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, ns3::AcIndex ac) [member function] cls.add_method('ConfigureDcf', 'void', - [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], visibility='protected') ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] cls.add_method('FinishConfigureStandard', @@ -12093,6 +12196,11 @@ def register_Ns3Dcf_methods(root_module, cls): 'uint32_t', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## dcf.h (module 'wifi'): ns3::Time ns3::Dcf::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_pure_virtual=True, is_const=True, is_virtual=True) ## dcf.h (module 'wifi'): static ns3::TypeId ns3::Dcf::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -12113,6 +12221,11 @@ def register_Ns3Dcf_methods(root_module, cls): 'void', [param('uint32_t', 'minCw')], is_pure_virtual=True, is_virtual=True) + ## dcf.h (module 'wifi'): void ns3::Dcf::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_pure_virtual=True, is_virtual=True) return def register_Ns3DefaultChannelScheduler_methods(root_module, cls): @@ -12241,6 +12354,313 @@ def register_Ns3DoubleValue_methods(root_module, cls): [param('double const &', 'value')]) return +def register_Ns3EdcaParameterSet_methods(root_module, cls): + cls.add_output_stream_operator() + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet::EdcaParameterSet(ns3::EdcaParameterSet const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSet const &', 'arg0')]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet::EdcaParameterSet() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::DeserializeInformationField(ns3::Buffer::Iterator start, uint8_t length) [member function] + cls.add_method('DeserializeInformationField', + 'uint8_t', + [param('ns3::Buffer::Iterator', 'start'), param('uint8_t', 'length')], + is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): ns3::WifiInformationElementId ns3::EdcaParameterSet::ElementId() const [member function] + cls.add_method('ElementId', + 'ns3::WifiInformationElementId', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAci() const [member function] + cls.add_method('GetBeAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAcm() const [member function] + cls.add_method('GetBeAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAifsn() const [member function] + cls.add_method('GetBeAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeCWmax() const [member function] + cls.add_method('GetBeCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeCWmin() const [member function] + cls.add_method('GetBeCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetBeTXOPLimit() const [member function] + cls.add_method('GetBeTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAci() const [member function] + cls.add_method('GetBkAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAcm() const [member function] + cls.add_method('GetBkAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAifsn() const [member function] + cls.add_method('GetBkAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkCWmax() const [member function] + cls.add_method('GetBkCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkCWmin() const [member function] + cls.add_method('GetBkCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetBkTXOPLimit() const [member function] + cls.add_method('GetBkTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetInformationFieldSize() const [member function] + cls.add_method('GetInformationFieldSize', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetQosInfo() const [member function] + cls.add_method('GetQosInfo', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAci() const [member function] + cls.add_method('GetViAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAcm() const [member function] + cls.add_method('GetViAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAifsn() const [member function] + cls.add_method('GetViAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViCWmax() const [member function] + cls.add_method('GetViCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViCWmin() const [member function] + cls.add_method('GetViCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetViTXOPLimit() const [member function] + cls.add_method('GetViTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAci() const [member function] + cls.add_method('GetVoAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAcm() const [member function] + cls.add_method('GetVoAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAifsn() const [member function] + cls.add_method('GetVoAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoCWmax() const [member function] + cls.add_method('GetVoCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoCWmin() const [member function] + cls.add_method('GetVoCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetVoTXOPLimit() const [member function] + cls.add_method('GetVoTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): ns3::Buffer::Iterator ns3::EdcaParameterSet::Serialize(ns3::Buffer::Iterator start) const [member function] + cls.add_method('Serialize', + 'ns3::Buffer::Iterator', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SerializeInformationField(ns3::Buffer::Iterator start) const [member function] + cls.add_method('SerializeInformationField', + 'void', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAci(uint8_t aci) [member function] + cls.add_method('SetBeAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAcm(uint8_t acm) [member function] + cls.add_method('SetBeAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAifsn(uint8_t aifsn) [member function] + cls.add_method('SetBeAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeCWmax(uint8_t cwMax) [member function] + cls.add_method('SetBeCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeCWmin(uint8_t cwMin) [member function] + cls.add_method('SetBeCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetBeTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAci(uint8_t aci) [member function] + cls.add_method('SetBkAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAcm(uint8_t acm) [member function] + cls.add_method('SetBkAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAifsn(uint8_t aifsn) [member function] + cls.add_method('SetBkAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkCWmax(uint8_t cwMax) [member function] + cls.add_method('SetBkCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkCWmin(uint8_t cwMin) [member function] + cls.add_method('SetBkCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetBkTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetQosInfo(uint8_t qosInfo) [member function] + cls.add_method('SetQosInfo', + 'void', + [param('uint8_t', 'qosInfo')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetQosSupported(uint8_t qosSupported) [member function] + cls.add_method('SetQosSupported', + 'void', + [param('uint8_t', 'qosSupported')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAci(uint8_t aci) [member function] + cls.add_method('SetViAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAcm(uint8_t acm) [member function] + cls.add_method('SetViAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAifsn(uint8_t aifsn) [member function] + cls.add_method('SetViAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViCWmax(uint8_t cwMax) [member function] + cls.add_method('SetViCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViCWmin(uint8_t cwMin) [member function] + cls.add_method('SetViCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetViTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAci(uint8_t aci) [member function] + cls.add_method('SetVoAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAcm(uint8_t acm) [member function] + cls.add_method('SetVoAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAifsn(uint8_t aifsn) [member function] + cls.add_method('SetVoAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoCWmax(uint8_t cwMax) [member function] + cls.add_method('SetVoCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoCWmin(uint8_t cwMin) [member function] + cls.add_method('SetVoCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetVoTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + return + +def register_Ns3EdcaParameterSetChecker_methods(root_module, cls): + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker::EdcaParameterSetChecker() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker::EdcaParameterSetChecker(ns3::EdcaParameterSetChecker const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSetChecker const &', 'arg0')]) + return + +def register_Ns3EdcaParameterSetValue_methods(root_module, cls): + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue(ns3::EdcaParameterSetValue const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSetValue const &', 'arg0')]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue(ns3::EdcaParameterSet const & value) [constructor] + cls.add_constructor([param('ns3::EdcaParameterSet const &', 'value')]) + ## edca-parameter-set.h (module 'wifi'): ns3::Ptr ns3::EdcaParameterSetValue::Copy() const [member function] + cls.add_method('Copy', + 'ns3::Ptr< ns3::AttributeValue >', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): bool ns3::EdcaParameterSetValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] + cls.add_method('DeserializeFromString', + 'bool', + [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], + is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet ns3::EdcaParameterSetValue::Get() const [member function] + cls.add_method('Get', + 'ns3::EdcaParameterSet', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): std::string ns3::EdcaParameterSetValue::SerializeToString(ns3::Ptr checker) const [member function] + cls.add_method('SerializeToString', + 'std::string', + [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSetValue::Set(ns3::EdcaParameterSet const & value) [member function] + cls.add_method('Set', + 'void', + [param('ns3::EdcaParameterSet const &', 'value')]) + return + def register_Ns3EdcaTxopN_methods(root_module, cls): ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::m_aMpduEnabled [variable] cls.add_instance_attribute('m_aMpduEnabled', 'std::map< ns3::Mac48Address, bool >', is_const=False) @@ -12309,6 +12729,11 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): 'void', [param('uint32_t', 'aifsn')], is_virtual=True) + ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_virtual=True) ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetMinCw() const [member function] cls.add_method('GetMinCw', 'uint32_t', @@ -12324,6 +12749,11 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## edca-txop-n.h (module 'wifi'): ns3::Time ns3::EdcaTxopN::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True, is_virtual=True) ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::Low() [member function] cls.add_method('Low', 'ns3::Ptr< ns3::MacLow >', @@ -12416,6 +12846,10 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): cls.add_method('MissedAck', 'void', []) + ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + []) ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNext() [member function] cls.add_method('StartNext', 'void', @@ -14933,6 +15367,11 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('AggregateToAmpdu', 'ns3::Ptr< ns3::Packet >', [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const', 'hdr')]) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::CalculateOverallTxTime(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters const & params) const [member function] + cls.add_method('CalculateOverallTxTime', + 'ns3::Time', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters const &', 'params')], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::CalculateTransmissionTime(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters const & parameters) const [member function] cls.add_method('CalculateTransmissionTime', 'ns3::Time', @@ -15469,21 +15908,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -16061,6 +16500,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', @@ -17430,6 +17874,11 @@ def register_Ns3DcaTxop_methods(root_module, cls): 'void', [param('uint32_t', 'aifsn')], is_virtual=True) + ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_virtual=True) ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMinCw() const [member function] cls.add_method('GetMinCw', 'uint32_t', @@ -17445,6 +17894,11 @@ def register_Ns3DcaTxop_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True, is_virtual=True) ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::Queue(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] cls.add_method('Queue', 'void', diff --git a/src/wifi/bindings/modulegen__gcc_ILP32.py b/src/wifi/bindings/modulegen__gcc_ILP32.py index 43ce2f858be..4aaee6ed0a7 100644 --- a/src/wifi/bindings/modulegen__gcc_ILP32.py +++ b/src/wifi/bindings/modulegen__gcc_ILP32.py @@ -24,8 +24,6 @@ def register_types(module): module.add_enum('EnvironmentType', ['UrbanEnvironment', 'SubUrbanEnvironment', 'OpenAreasEnvironment'], import_from_module='ns.propagation') ## ht-operations.h (module 'wifi'): ns3::HtProtectionType [enumeration] module.add_enum('HtProtectionType', ['NO_PROTECTION', 'NON_MEMBER_PROTECTION', 'TWENTY_MHZ_PROTECTION', 'MIXED_MODE_PROTECTION']) - ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] - module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF']) ## 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']) ## wifi-preamble.h (module 'wifi'): ns3::WifiPreamble [enumeration] @@ -36,8 +34,8 @@ def register_types(module): module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT']) ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac']) - ## qos-tag.h (module 'wifi'): ns3::UserPriority [enumeration] - module.add_enum('UserPriority', ['UP_BK', 'UP_BE', 'UP_EE', 'UP_CL', 'UP_VI', 'UP_VO', 'UP_NC']) + ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] + module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF']) ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6']) ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation [enumeration] @@ -294,8 +292,6 @@ def register_types(module): module.add_class('PropagationDelayModel', import_from_module='ns.propagation', parent=root_module['ns3::Object']) ## propagation-loss-model.h (module 'propagation'): ns3::PropagationLossModel [class] module.add_class('PropagationLossModel', import_from_module='ns.propagation', parent=root_module['ns3::Object']) - ## qos-tag.h (module 'wifi'): ns3::QosTag [class] - module.add_class('QosTag', parent=root_module['ns3::Tag']) ## qos-wifi-mac-helper.h (module 'wifi'): ns3::QosWifiMacHelper [class] module.add_class('QosWifiMacHelper', parent=root_module['ns3::WifiMacHelper']) ## propagation-delay-model.h (module 'propagation'): ns3::RandomPropagationDelayModel [class] @@ -468,6 +464,12 @@ def register_types(module): module.add_class('DeviceEnergyModel', import_from_module='ns.energy', parent=root_module['ns3::Object']) ## double.h (module 'core'): ns3::DoubleValue [class] module.add_class('DoubleValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet [class] + module.add_class('EdcaParameterSet', parent=root_module['ns3::WifiInformationElement']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker [class] + module.add_class('EdcaParameterSetChecker', parent=root_module['ns3::AttributeChecker']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue [class] + module.add_class('EdcaParameterSetValue', parent=root_module['ns3::AttributeValue']) ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN [class] module.add_class('EdcaTxopN', parent=root_module['ns3::Dcf']) ## random-variable-stream.h (module 'core'): ns3::EmpiricalRandomVariable [class] @@ -616,6 +618,8 @@ def register_types(module): module.add_class('ParfWifiManager', parent=root_module['ns3::WifiRemoteStationManager']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## regular-wifi-mac.h (module 'wifi'): ns3::RegularWifiMac [class] module.add_class('RegularWifiMac', parent=root_module['ns3::WifiMac']) ## rraa-wifi-manager.h (module 'wifi'): ns3::RraaWifiManager [class] @@ -937,7 +941,6 @@ def register_methods(root_module): register_Ns3PcapFileWrapper_methods(root_module, root_module['ns3::PcapFileWrapper']) register_Ns3PropagationDelayModel_methods(root_module, root_module['ns3::PropagationDelayModel']) register_Ns3PropagationLossModel_methods(root_module, root_module['ns3::PropagationLossModel']) - register_Ns3QosTag_methods(root_module, root_module['ns3::QosTag']) register_Ns3QosWifiMacHelper_methods(root_module, root_module['ns3::QosWifiMacHelper']) register_Ns3RandomPropagationDelayModel_methods(root_module, root_module['ns3::RandomPropagationDelayModel']) register_Ns3RandomPropagationLossModel_methods(root_module, root_module['ns3::RandomPropagationLossModel']) @@ -1011,6 +1014,9 @@ def register_methods(root_module): register_Ns3DeterministicRandomVariable_methods(root_module, root_module['ns3::DeterministicRandomVariable']) register_Ns3DeviceEnergyModel_methods(root_module, root_module['ns3::DeviceEnergyModel']) register_Ns3DoubleValue_methods(root_module, root_module['ns3::DoubleValue']) + register_Ns3EdcaParameterSet_methods(root_module, root_module['ns3::EdcaParameterSet']) + register_Ns3EdcaParameterSetChecker_methods(root_module, root_module['ns3::EdcaParameterSetChecker']) + register_Ns3EdcaParameterSetValue_methods(root_module, root_module['ns3::EdcaParameterSetValue']) register_Ns3EdcaTxopN_methods(root_module, root_module['ns3::EdcaTxopN']) register_Ns3EmpiricalRandomVariable_methods(root_module, root_module['ns3::EmpiricalRandomVariable']) register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue']) @@ -2213,6 +2219,11 @@ def register_Ns3DcfState_methods(root_module, cls): 'uint32_t', [], is_const=True) + ## dcf-manager.h (module 'wifi'): ns3::Time ns3::DcfState::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True) ## dcf-manager.h (module 'wifi'): bool ns3::DcfState::IsAccessRequested() const [member function] cls.add_method('IsAccessRequested', 'bool', @@ -2239,6 +2250,10 @@ def register_Ns3DcfState_methods(root_module, cls): cls.add_method('SetCwMin', 'void', [param('uint32_t', 'minCw')]) + ## dcf-manager.h (module 'wifi'): void ns3::DcfState::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')]) ## dcf-manager.h (module 'wifi'): void ns3::DcfState::StartBackoffNow(uint32_t nSlots) [member function] cls.add_method('StartBackoffNow', 'void', @@ -3308,6 +3323,11 @@ def register_Ns3MacLowTransmissionListener_methods(root_module, cls): 'void', [], is_pure_virtual=True, is_virtual=True) + ## mac-low.h (module 'wifi'): void ns3::MacLowTransmissionListener::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + [], + is_pure_virtual=True, is_virtual=True) return def register_Ns3MacLowTransmissionParameters_methods(root_module, cls): @@ -5788,6 +5808,11 @@ def register_Ns3MgtAssocResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::EdcaParameterSet ns3::MgtAssocResponseHeader::GetEdcaParameterSet() const [member function] + cls.add_method('GetEdcaParameterSet', + 'ns3::EdcaParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::ErpInformation ns3::MgtAssocResponseHeader::GetErpInformation() const [member function] cls.add_method('GetErpInformation', 'ns3::ErpInformation', @@ -5845,6 +5870,10 @@ def register_Ns3MgtAssocResponseHeader_methods(root_module, cls): cls.add_method('SetCapabilities', 'void', [param('ns3::CapabilityInformation', 'capabilities')]) + ## mgt-headers.h (module 'wifi'): void ns3::MgtAssocResponseHeader::SetEdcaParameterSet(ns3::EdcaParameterSet edcaParameterSet) [member function] + cls.add_method('SetEdcaParameterSet', + 'void', + [param('ns3::EdcaParameterSet', 'edcaParameterSet')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtAssocResponseHeader::SetErpInformation(ns3::ErpInformation erpInformation) [member function] cls.add_method('SetErpInformation', 'void', @@ -6023,6 +6052,11 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::EdcaParameterSet ns3::MgtProbeResponseHeader::GetEdcaParameterSet() const [member function] + cls.add_method('GetEdcaParameterSet', + 'ns3::EdcaParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::ErpInformation ns3::MgtProbeResponseHeader::GetErpInformation() const [member function] cls.add_method('GetErpInformation', 'ns3::ErpInformation', @@ -6090,6 +6124,10 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): cls.add_method('SetCapabilities', 'void', [param('ns3::CapabilityInformation', 'capabilities')]) + ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetEdcaParameterSet(ns3::EdcaParameterSet edcaParameterSet) [member function] + cls.add_method('SetEdcaParameterSet', + 'void', + [param('ns3::EdcaParameterSet', 'edcaParameterSet')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetErpInformation(ns3::ErpInformation erpInformation) [member function] cls.add_method('SetErpInformation', 'void', @@ -6394,58 +6432,6 @@ def register_Ns3PropagationLossModel_methods(root_module, cls): is_pure_virtual=True, visibility='private', is_virtual=True) return -def register_Ns3QosTag_methods(root_module, cls): - ## qos-tag.h (module 'wifi'): ns3::QosTag::QosTag(ns3::QosTag const & arg0) [copy constructor] - cls.add_constructor([param('ns3::QosTag const &', 'arg0')]) - ## qos-tag.h (module 'wifi'): ns3::QosTag::QosTag() [constructor] - cls.add_constructor([]) - ## qos-tag.h (module 'wifi'): ns3::QosTag::QosTag(uint8_t tid) [constructor] - cls.add_constructor([param('uint8_t', 'tid')]) - ## qos-tag.h (module 'wifi'): void ns3::QosTag::Deserialize(ns3::TagBuffer i) [member function] - cls.add_method('Deserialize', - 'void', - [param('ns3::TagBuffer', 'i')], - is_virtual=True) - ## qos-tag.h (module 'wifi'): ns3::TypeId ns3::QosTag::GetInstanceTypeId() const [member function] - cls.add_method('GetInstanceTypeId', - 'ns3::TypeId', - [], - is_const=True, is_virtual=True) - ## qos-tag.h (module 'wifi'): uint32_t ns3::QosTag::GetSerializedSize() const [member function] - cls.add_method('GetSerializedSize', - 'uint32_t', - [], - is_const=True, is_virtual=True) - ## qos-tag.h (module 'wifi'): uint8_t ns3::QosTag::GetTid() const [member function] - cls.add_method('GetTid', - 'uint8_t', - [], - is_const=True) - ## qos-tag.h (module 'wifi'): static ns3::TypeId ns3::QosTag::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## qos-tag.h (module 'wifi'): void ns3::QosTag::Print(std::ostream & os) const [member function] - cls.add_method('Print', - 'void', - [param('std::ostream &', 'os')], - is_const=True, is_virtual=True) - ## qos-tag.h (module 'wifi'): void ns3::QosTag::Serialize(ns3::TagBuffer i) const [member function] - cls.add_method('Serialize', - 'void', - [param('ns3::TagBuffer', 'i')], - is_const=True, is_virtual=True) - ## qos-tag.h (module 'wifi'): void ns3::QosTag::SetTid(uint8_t tid) [member function] - cls.add_method('SetTid', - 'void', - [param('uint8_t', 'tid')]) - ## qos-tag.h (module 'wifi'): void ns3::QosTag::SetUserPriority(ns3::UserPriority up) [member function] - cls.add_method('SetUserPriority', - 'void', - [param('ns3::UserPriority', 'up')]) - return - def register_Ns3QosWifiMacHelper_methods(root_module, cls): ## qos-wifi-mac-helper.h (module 'wifi'): ns3::QosWifiMacHelper::QosWifiMacHelper(ns3::QosWifiMacHelper const & arg0) [copy constructor] cls.add_constructor([param('ns3::QosWifiMacHelper const &', 'arg0')]) @@ -7733,10 +7719,10 @@ def register_Ns3WifiMac_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) - ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function] + ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, ns3::AcIndex ac) [member function] cls.add_method('ConfigureDcf', 'void', - [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], visibility='protected') ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] cls.add_method('FinishConfigureStandard', @@ -11707,6 +11693,11 @@ def register_Ns3Dcf_methods(root_module, cls): 'uint32_t', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## dcf.h (module 'wifi'): ns3::Time ns3::Dcf::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_pure_virtual=True, is_const=True, is_virtual=True) ## dcf.h (module 'wifi'): static ns3::TypeId ns3::Dcf::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -11727,6 +11718,11 @@ def register_Ns3Dcf_methods(root_module, cls): 'void', [param('uint32_t', 'minCw')], is_pure_virtual=True, is_virtual=True) + ## dcf.h (module 'wifi'): void ns3::Dcf::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_pure_virtual=True, is_virtual=True) return def register_Ns3DeterministicRandomVariable_methods(root_module, cls): @@ -11833,6 +11829,313 @@ def register_Ns3DoubleValue_methods(root_module, cls): [param('double const &', 'value')]) return +def register_Ns3EdcaParameterSet_methods(root_module, cls): + cls.add_output_stream_operator() + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet::EdcaParameterSet(ns3::EdcaParameterSet const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSet const &', 'arg0')]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet::EdcaParameterSet() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::DeserializeInformationField(ns3::Buffer::Iterator start, uint8_t length) [member function] + cls.add_method('DeserializeInformationField', + 'uint8_t', + [param('ns3::Buffer::Iterator', 'start'), param('uint8_t', 'length')], + is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): ns3::WifiInformationElementId ns3::EdcaParameterSet::ElementId() const [member function] + cls.add_method('ElementId', + 'ns3::WifiInformationElementId', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAci() const [member function] + cls.add_method('GetBeAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAcm() const [member function] + cls.add_method('GetBeAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAifsn() const [member function] + cls.add_method('GetBeAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeCWmax() const [member function] + cls.add_method('GetBeCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeCWmin() const [member function] + cls.add_method('GetBeCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetBeTXOPLimit() const [member function] + cls.add_method('GetBeTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAci() const [member function] + cls.add_method('GetBkAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAcm() const [member function] + cls.add_method('GetBkAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAifsn() const [member function] + cls.add_method('GetBkAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkCWmax() const [member function] + cls.add_method('GetBkCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkCWmin() const [member function] + cls.add_method('GetBkCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetBkTXOPLimit() const [member function] + cls.add_method('GetBkTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetInformationFieldSize() const [member function] + cls.add_method('GetInformationFieldSize', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetQosInfo() const [member function] + cls.add_method('GetQosInfo', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAci() const [member function] + cls.add_method('GetViAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAcm() const [member function] + cls.add_method('GetViAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAifsn() const [member function] + cls.add_method('GetViAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViCWmax() const [member function] + cls.add_method('GetViCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViCWmin() const [member function] + cls.add_method('GetViCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetViTXOPLimit() const [member function] + cls.add_method('GetViTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAci() const [member function] + cls.add_method('GetVoAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAcm() const [member function] + cls.add_method('GetVoAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAifsn() const [member function] + cls.add_method('GetVoAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoCWmax() const [member function] + cls.add_method('GetVoCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoCWmin() const [member function] + cls.add_method('GetVoCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetVoTXOPLimit() const [member function] + cls.add_method('GetVoTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): ns3::Buffer::Iterator ns3::EdcaParameterSet::Serialize(ns3::Buffer::Iterator start) const [member function] + cls.add_method('Serialize', + 'ns3::Buffer::Iterator', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SerializeInformationField(ns3::Buffer::Iterator start) const [member function] + cls.add_method('SerializeInformationField', + 'void', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAci(uint8_t aci) [member function] + cls.add_method('SetBeAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAcm(uint8_t acm) [member function] + cls.add_method('SetBeAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAifsn(uint8_t aifsn) [member function] + cls.add_method('SetBeAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeCWmax(uint8_t cwMax) [member function] + cls.add_method('SetBeCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeCWmin(uint8_t cwMin) [member function] + cls.add_method('SetBeCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetBeTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAci(uint8_t aci) [member function] + cls.add_method('SetBkAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAcm(uint8_t acm) [member function] + cls.add_method('SetBkAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAifsn(uint8_t aifsn) [member function] + cls.add_method('SetBkAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkCWmax(uint8_t cwMax) [member function] + cls.add_method('SetBkCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkCWmin(uint8_t cwMin) [member function] + cls.add_method('SetBkCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetBkTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetQosInfo(uint8_t qosInfo) [member function] + cls.add_method('SetQosInfo', + 'void', + [param('uint8_t', 'qosInfo')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetQosSupported(uint8_t qosSupported) [member function] + cls.add_method('SetQosSupported', + 'void', + [param('uint8_t', 'qosSupported')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAci(uint8_t aci) [member function] + cls.add_method('SetViAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAcm(uint8_t acm) [member function] + cls.add_method('SetViAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAifsn(uint8_t aifsn) [member function] + cls.add_method('SetViAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViCWmax(uint8_t cwMax) [member function] + cls.add_method('SetViCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViCWmin(uint8_t cwMin) [member function] + cls.add_method('SetViCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetViTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAci(uint8_t aci) [member function] + cls.add_method('SetVoAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAcm(uint8_t acm) [member function] + cls.add_method('SetVoAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAifsn(uint8_t aifsn) [member function] + cls.add_method('SetVoAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoCWmax(uint8_t cwMax) [member function] + cls.add_method('SetVoCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoCWmin(uint8_t cwMin) [member function] + cls.add_method('SetVoCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetVoTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + return + +def register_Ns3EdcaParameterSetChecker_methods(root_module, cls): + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker::EdcaParameterSetChecker() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker::EdcaParameterSetChecker(ns3::EdcaParameterSetChecker const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSetChecker const &', 'arg0')]) + return + +def register_Ns3EdcaParameterSetValue_methods(root_module, cls): + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue(ns3::EdcaParameterSetValue const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSetValue const &', 'arg0')]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue(ns3::EdcaParameterSet const & value) [constructor] + cls.add_constructor([param('ns3::EdcaParameterSet const &', 'value')]) + ## edca-parameter-set.h (module 'wifi'): ns3::Ptr ns3::EdcaParameterSetValue::Copy() const [member function] + cls.add_method('Copy', + 'ns3::Ptr< ns3::AttributeValue >', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): bool ns3::EdcaParameterSetValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] + cls.add_method('DeserializeFromString', + 'bool', + [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], + is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet ns3::EdcaParameterSetValue::Get() const [member function] + cls.add_method('Get', + 'ns3::EdcaParameterSet', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): std::string ns3::EdcaParameterSetValue::SerializeToString(ns3::Ptr checker) const [member function] + cls.add_method('SerializeToString', + 'std::string', + [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSetValue::Set(ns3::EdcaParameterSet const & value) [member function] + cls.add_method('Set', + 'void', + [param('ns3::EdcaParameterSet const &', 'value')]) + return + def register_Ns3EdcaTxopN_methods(root_module, cls): ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::m_aMpduEnabled [variable] cls.add_instance_attribute('m_aMpduEnabled', 'std::map< ns3::Mac48Address, bool >', is_const=False) @@ -11901,6 +12204,11 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): 'void', [param('uint32_t', 'aifsn')], is_virtual=True) + ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_virtual=True) ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetMinCw() const [member function] cls.add_method('GetMinCw', 'uint32_t', @@ -11916,6 +12224,11 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## edca-txop-n.h (module 'wifi'): ns3::Time ns3::EdcaTxopN::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True, is_virtual=True) ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::Low() [member function] cls.add_method('Low', 'ns3::Ptr< ns3::MacLow >', @@ -12008,6 +12321,10 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): cls.add_method('MissedAck', 'void', []) + ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + []) ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNext() [member function] cls.add_method('StartNext', 'void', @@ -14034,6 +14351,11 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('AggregateToAmpdu', 'ns3::Ptr< ns3::Packet >', [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const', 'hdr')]) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::CalculateOverallTxTime(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters const & params) const [member function] + cls.add_method('CalculateOverallTxTime', + 'ns3::Time', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters const &', 'params')], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::CalculateTransmissionTime(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters const & parameters) const [member function] cls.add_method('CalculateTransmissionTime', 'ns3::Time', @@ -14929,21 +15251,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -15637,6 +15959,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', @@ -16929,6 +17256,11 @@ def register_Ns3WifiNetDevice_methods(root_module, cls): 'void', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address', 'from'), param('ns3::Mac48Address', 'to')], visibility='protected') + ## wifi-net-device.h (module 'wifi'): void ns3::WifiNetDevice::NotifyNewAggregate() [member function] + cls.add_method('NotifyNewAggregate', + 'void', + [], + visibility='protected', is_virtual=True) return def register_Ns3WifiRadioEnergyModel_methods(root_module, cls): @@ -17336,6 +17668,11 @@ def register_Ns3DcaTxop_methods(root_module, cls): 'void', [param('uint32_t', 'aifsn')], is_virtual=True) + ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_virtual=True) ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMinCw() const [member function] cls.add_method('GetMinCw', 'uint32_t', @@ -17351,6 +17688,11 @@ def register_Ns3DcaTxop_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True, is_virtual=True) ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::Queue(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] cls.add_method('Queue', 'void', @@ -17478,6 +17820,10 @@ def register_Ns3HashFunctionMurmur3_methods(root_module, cls): def register_functions(root_module): module = root_module + ## edca-parameter-set.h (module 'wifi'): extern ns3::Ptr ns3::MakeEdcaParameterSetChecker() [free function] + module.add_function('MakeEdcaParameterSetChecker', + 'ns3::Ptr< ns3::AttributeChecker const >', + []) ## erp-information.h (module 'wifi'): extern ns3::Ptr ns3::MakeErpInformationChecker() [free function] module.add_function('MakeErpInformationChecker', 'ns3::Ptr< ns3::AttributeChecker const >', diff --git a/src/wifi/bindings/modulegen__gcc_LP64.py b/src/wifi/bindings/modulegen__gcc_LP64.py index c8c6be94954..461817991ef 100644 --- a/src/wifi/bindings/modulegen__gcc_LP64.py +++ b/src/wifi/bindings/modulegen__gcc_LP64.py @@ -24,8 +24,6 @@ def register_types(module): module.add_enum('EnvironmentType', ['UrbanEnvironment', 'SubUrbanEnvironment', 'OpenAreasEnvironment'], import_from_module='ns.propagation') ## ht-operations.h (module 'wifi'): ns3::HtProtectionType [enumeration] module.add_enum('HtProtectionType', ['NO_PROTECTION', 'NON_MEMBER_PROTECTION', 'TWENTY_MHZ_PROTECTION', 'MIXED_MODE_PROTECTION']) - ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] - module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF']) ## 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']) ## wifi-preamble.h (module 'wifi'): ns3::WifiPreamble [enumeration] @@ -36,8 +34,8 @@ def register_types(module): module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT']) ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac']) - ## qos-tag.h (module 'wifi'): ns3::UserPriority [enumeration] - module.add_enum('UserPriority', ['UP_BK', 'UP_BE', 'UP_EE', 'UP_CL', 'UP_VI', 'UP_VO', 'UP_NC']) + ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] + module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF']) ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6']) ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation [enumeration] @@ -294,8 +292,6 @@ def register_types(module): module.add_class('PropagationDelayModel', import_from_module='ns.propagation', parent=root_module['ns3::Object']) ## propagation-loss-model.h (module 'propagation'): ns3::PropagationLossModel [class] module.add_class('PropagationLossModel', import_from_module='ns.propagation', parent=root_module['ns3::Object']) - ## qos-tag.h (module 'wifi'): ns3::QosTag [class] - module.add_class('QosTag', parent=root_module['ns3::Tag']) ## qos-wifi-mac-helper.h (module 'wifi'): ns3::QosWifiMacHelper [class] module.add_class('QosWifiMacHelper', parent=root_module['ns3::WifiMacHelper']) ## propagation-delay-model.h (module 'propagation'): ns3::RandomPropagationDelayModel [class] @@ -468,6 +464,12 @@ def register_types(module): module.add_class('DeviceEnergyModel', import_from_module='ns.energy', parent=root_module['ns3::Object']) ## double.h (module 'core'): ns3::DoubleValue [class] module.add_class('DoubleValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet [class] + module.add_class('EdcaParameterSet', parent=root_module['ns3::WifiInformationElement']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker [class] + module.add_class('EdcaParameterSetChecker', parent=root_module['ns3::AttributeChecker']) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue [class] + module.add_class('EdcaParameterSetValue', parent=root_module['ns3::AttributeValue']) ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN [class] module.add_class('EdcaTxopN', parent=root_module['ns3::Dcf']) ## random-variable-stream.h (module 'core'): ns3::EmpiricalRandomVariable [class] @@ -616,6 +618,8 @@ def register_types(module): module.add_class('ParfWifiManager', parent=root_module['ns3::WifiRemoteStationManager']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## regular-wifi-mac.h (module 'wifi'): ns3::RegularWifiMac [class] module.add_class('RegularWifiMac', parent=root_module['ns3::WifiMac']) ## rraa-wifi-manager.h (module 'wifi'): ns3::RraaWifiManager [class] @@ -937,7 +941,6 @@ def register_methods(root_module): register_Ns3PcapFileWrapper_methods(root_module, root_module['ns3::PcapFileWrapper']) register_Ns3PropagationDelayModel_methods(root_module, root_module['ns3::PropagationDelayModel']) register_Ns3PropagationLossModel_methods(root_module, root_module['ns3::PropagationLossModel']) - register_Ns3QosTag_methods(root_module, root_module['ns3::QosTag']) register_Ns3QosWifiMacHelper_methods(root_module, root_module['ns3::QosWifiMacHelper']) register_Ns3RandomPropagationDelayModel_methods(root_module, root_module['ns3::RandomPropagationDelayModel']) register_Ns3RandomPropagationLossModel_methods(root_module, root_module['ns3::RandomPropagationLossModel']) @@ -1011,6 +1014,9 @@ def register_methods(root_module): register_Ns3DeterministicRandomVariable_methods(root_module, root_module['ns3::DeterministicRandomVariable']) register_Ns3DeviceEnergyModel_methods(root_module, root_module['ns3::DeviceEnergyModel']) register_Ns3DoubleValue_methods(root_module, root_module['ns3::DoubleValue']) + register_Ns3EdcaParameterSet_methods(root_module, root_module['ns3::EdcaParameterSet']) + register_Ns3EdcaParameterSetChecker_methods(root_module, root_module['ns3::EdcaParameterSetChecker']) + register_Ns3EdcaParameterSetValue_methods(root_module, root_module['ns3::EdcaParameterSetValue']) register_Ns3EdcaTxopN_methods(root_module, root_module['ns3::EdcaTxopN']) register_Ns3EmpiricalRandomVariable_methods(root_module, root_module['ns3::EmpiricalRandomVariable']) register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue']) @@ -2213,6 +2219,11 @@ def register_Ns3DcfState_methods(root_module, cls): 'uint32_t', [], is_const=True) + ## dcf-manager.h (module 'wifi'): ns3::Time ns3::DcfState::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True) ## dcf-manager.h (module 'wifi'): bool ns3::DcfState::IsAccessRequested() const [member function] cls.add_method('IsAccessRequested', 'bool', @@ -2239,6 +2250,10 @@ def register_Ns3DcfState_methods(root_module, cls): cls.add_method('SetCwMin', 'void', [param('uint32_t', 'minCw')]) + ## dcf-manager.h (module 'wifi'): void ns3::DcfState::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')]) ## dcf-manager.h (module 'wifi'): void ns3::DcfState::StartBackoffNow(uint32_t nSlots) [member function] cls.add_method('StartBackoffNow', 'void', @@ -3308,6 +3323,11 @@ def register_Ns3MacLowTransmissionListener_methods(root_module, cls): 'void', [], is_pure_virtual=True, is_virtual=True) + ## mac-low.h (module 'wifi'): void ns3::MacLowTransmissionListener::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + [], + is_pure_virtual=True, is_virtual=True) return def register_Ns3MacLowTransmissionParameters_methods(root_module, cls): @@ -5788,6 +5808,11 @@ def register_Ns3MgtAssocResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::EdcaParameterSet ns3::MgtAssocResponseHeader::GetEdcaParameterSet() const [member function] + cls.add_method('GetEdcaParameterSet', + 'ns3::EdcaParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::ErpInformation ns3::MgtAssocResponseHeader::GetErpInformation() const [member function] cls.add_method('GetErpInformation', 'ns3::ErpInformation', @@ -5845,6 +5870,10 @@ def register_Ns3MgtAssocResponseHeader_methods(root_module, cls): cls.add_method('SetCapabilities', 'void', [param('ns3::CapabilityInformation', 'capabilities')]) + ## mgt-headers.h (module 'wifi'): void ns3::MgtAssocResponseHeader::SetEdcaParameterSet(ns3::EdcaParameterSet edcaParameterSet) [member function] + cls.add_method('SetEdcaParameterSet', + 'void', + [param('ns3::EdcaParameterSet', 'edcaParameterSet')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtAssocResponseHeader::SetErpInformation(ns3::ErpInformation erpInformation) [member function] cls.add_method('SetErpInformation', 'void', @@ -6023,6 +6052,11 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::EdcaParameterSet ns3::MgtProbeResponseHeader::GetEdcaParameterSet() const [member function] + cls.add_method('GetEdcaParameterSet', + 'ns3::EdcaParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::ErpInformation ns3::MgtProbeResponseHeader::GetErpInformation() const [member function] cls.add_method('GetErpInformation', 'ns3::ErpInformation', @@ -6090,6 +6124,10 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): cls.add_method('SetCapabilities', 'void', [param('ns3::CapabilityInformation', 'capabilities')]) + ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetEdcaParameterSet(ns3::EdcaParameterSet edcaParameterSet) [member function] + cls.add_method('SetEdcaParameterSet', + 'void', + [param('ns3::EdcaParameterSet', 'edcaParameterSet')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetErpInformation(ns3::ErpInformation erpInformation) [member function] cls.add_method('SetErpInformation', 'void', @@ -6394,58 +6432,6 @@ def register_Ns3PropagationLossModel_methods(root_module, cls): is_pure_virtual=True, visibility='private', is_virtual=True) return -def register_Ns3QosTag_methods(root_module, cls): - ## qos-tag.h (module 'wifi'): ns3::QosTag::QosTag(ns3::QosTag const & arg0) [copy constructor] - cls.add_constructor([param('ns3::QosTag const &', 'arg0')]) - ## qos-tag.h (module 'wifi'): ns3::QosTag::QosTag() [constructor] - cls.add_constructor([]) - ## qos-tag.h (module 'wifi'): ns3::QosTag::QosTag(uint8_t tid) [constructor] - cls.add_constructor([param('uint8_t', 'tid')]) - ## qos-tag.h (module 'wifi'): void ns3::QosTag::Deserialize(ns3::TagBuffer i) [member function] - cls.add_method('Deserialize', - 'void', - [param('ns3::TagBuffer', 'i')], - is_virtual=True) - ## qos-tag.h (module 'wifi'): ns3::TypeId ns3::QosTag::GetInstanceTypeId() const [member function] - cls.add_method('GetInstanceTypeId', - 'ns3::TypeId', - [], - is_const=True, is_virtual=True) - ## qos-tag.h (module 'wifi'): uint32_t ns3::QosTag::GetSerializedSize() const [member function] - cls.add_method('GetSerializedSize', - 'uint32_t', - [], - is_const=True, is_virtual=True) - ## qos-tag.h (module 'wifi'): uint8_t ns3::QosTag::GetTid() const [member function] - cls.add_method('GetTid', - 'uint8_t', - [], - is_const=True) - ## qos-tag.h (module 'wifi'): static ns3::TypeId ns3::QosTag::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## qos-tag.h (module 'wifi'): void ns3::QosTag::Print(std::ostream & os) const [member function] - cls.add_method('Print', - 'void', - [param('std::ostream &', 'os')], - is_const=True, is_virtual=True) - ## qos-tag.h (module 'wifi'): void ns3::QosTag::Serialize(ns3::TagBuffer i) const [member function] - cls.add_method('Serialize', - 'void', - [param('ns3::TagBuffer', 'i')], - is_const=True, is_virtual=True) - ## qos-tag.h (module 'wifi'): void ns3::QosTag::SetTid(uint8_t tid) [member function] - cls.add_method('SetTid', - 'void', - [param('uint8_t', 'tid')]) - ## qos-tag.h (module 'wifi'): void ns3::QosTag::SetUserPriority(ns3::UserPriority up) [member function] - cls.add_method('SetUserPriority', - 'void', - [param('ns3::UserPriority', 'up')]) - return - def register_Ns3QosWifiMacHelper_methods(root_module, cls): ## qos-wifi-mac-helper.h (module 'wifi'): ns3::QosWifiMacHelper::QosWifiMacHelper(ns3::QosWifiMacHelper const & arg0) [copy constructor] cls.add_constructor([param('ns3::QosWifiMacHelper const &', 'arg0')]) @@ -7733,10 +7719,10 @@ def register_Ns3WifiMac_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) - ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function] + ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, ns3::AcIndex ac) [member function] cls.add_method('ConfigureDcf', 'void', - [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], visibility='protected') ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] cls.add_method('FinishConfigureStandard', @@ -11707,6 +11693,11 @@ def register_Ns3Dcf_methods(root_module, cls): 'uint32_t', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## dcf.h (module 'wifi'): ns3::Time ns3::Dcf::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_pure_virtual=True, is_const=True, is_virtual=True) ## dcf.h (module 'wifi'): static ns3::TypeId ns3::Dcf::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -11727,6 +11718,11 @@ def register_Ns3Dcf_methods(root_module, cls): 'void', [param('uint32_t', 'minCw')], is_pure_virtual=True, is_virtual=True) + ## dcf.h (module 'wifi'): void ns3::Dcf::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_pure_virtual=True, is_virtual=True) return def register_Ns3DeterministicRandomVariable_methods(root_module, cls): @@ -11833,6 +11829,313 @@ def register_Ns3DoubleValue_methods(root_module, cls): [param('double const &', 'value')]) return +def register_Ns3EdcaParameterSet_methods(root_module, cls): + cls.add_output_stream_operator() + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet::EdcaParameterSet(ns3::EdcaParameterSet const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSet const &', 'arg0')]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet::EdcaParameterSet() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::DeserializeInformationField(ns3::Buffer::Iterator start, uint8_t length) [member function] + cls.add_method('DeserializeInformationField', + 'uint8_t', + [param('ns3::Buffer::Iterator', 'start'), param('uint8_t', 'length')], + is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): ns3::WifiInformationElementId ns3::EdcaParameterSet::ElementId() const [member function] + cls.add_method('ElementId', + 'ns3::WifiInformationElementId', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAci() const [member function] + cls.add_method('GetBeAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAcm() const [member function] + cls.add_method('GetBeAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeAifsn() const [member function] + cls.add_method('GetBeAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeCWmax() const [member function] + cls.add_method('GetBeCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBeCWmin() const [member function] + cls.add_method('GetBeCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetBeTXOPLimit() const [member function] + cls.add_method('GetBeTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAci() const [member function] + cls.add_method('GetBkAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAcm() const [member function] + cls.add_method('GetBkAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkAifsn() const [member function] + cls.add_method('GetBkAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkCWmax() const [member function] + cls.add_method('GetBkCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetBkCWmin() const [member function] + cls.add_method('GetBkCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetBkTXOPLimit() const [member function] + cls.add_method('GetBkTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetInformationFieldSize() const [member function] + cls.add_method('GetInformationFieldSize', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetQosInfo() const [member function] + cls.add_method('GetQosInfo', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAci() const [member function] + cls.add_method('GetViAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAcm() const [member function] + cls.add_method('GetViAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViAifsn() const [member function] + cls.add_method('GetViAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViCWmax() const [member function] + cls.add_method('GetViCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetViCWmin() const [member function] + cls.add_method('GetViCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetViTXOPLimit() const [member function] + cls.add_method('GetViTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAci() const [member function] + cls.add_method('GetVoAci', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAcm() const [member function] + cls.add_method('GetVoAcm', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoAifsn() const [member function] + cls.add_method('GetVoAifsn', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoCWmax() const [member function] + cls.add_method('GetVoCWmax', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint8_t ns3::EdcaParameterSet::GetVoCWmin() const [member function] + cls.add_method('GetVoCWmin', + 'uint8_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): uint16_t ns3::EdcaParameterSet::GetVoTXOPLimit() const [member function] + cls.add_method('GetVoTXOPLimit', + 'uint16_t', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): ns3::Buffer::Iterator ns3::EdcaParameterSet::Serialize(ns3::Buffer::Iterator start) const [member function] + cls.add_method('Serialize', + 'ns3::Buffer::Iterator', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SerializeInformationField(ns3::Buffer::Iterator start) const [member function] + cls.add_method('SerializeInformationField', + 'void', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAci(uint8_t aci) [member function] + cls.add_method('SetBeAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAcm(uint8_t acm) [member function] + cls.add_method('SetBeAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeAifsn(uint8_t aifsn) [member function] + cls.add_method('SetBeAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeCWmax(uint8_t cwMax) [member function] + cls.add_method('SetBeCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeCWmin(uint8_t cwMin) [member function] + cls.add_method('SetBeCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBeTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetBeTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAci(uint8_t aci) [member function] + cls.add_method('SetBkAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAcm(uint8_t acm) [member function] + cls.add_method('SetBkAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkAifsn(uint8_t aifsn) [member function] + cls.add_method('SetBkAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkCWmax(uint8_t cwMax) [member function] + cls.add_method('SetBkCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkCWmin(uint8_t cwMin) [member function] + cls.add_method('SetBkCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetBkTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetBkTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetQosInfo(uint8_t qosInfo) [member function] + cls.add_method('SetQosInfo', + 'void', + [param('uint8_t', 'qosInfo')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetQosSupported(uint8_t qosSupported) [member function] + cls.add_method('SetQosSupported', + 'void', + [param('uint8_t', 'qosSupported')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAci(uint8_t aci) [member function] + cls.add_method('SetViAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAcm(uint8_t acm) [member function] + cls.add_method('SetViAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViAifsn(uint8_t aifsn) [member function] + cls.add_method('SetViAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViCWmax(uint8_t cwMax) [member function] + cls.add_method('SetViCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViCWmin(uint8_t cwMin) [member function] + cls.add_method('SetViCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetViTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetViTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAci(uint8_t aci) [member function] + cls.add_method('SetVoAci', + 'void', + [param('uint8_t', 'aci')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAcm(uint8_t acm) [member function] + cls.add_method('SetVoAcm', + 'void', + [param('uint8_t', 'acm')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoAifsn(uint8_t aifsn) [member function] + cls.add_method('SetVoAifsn', + 'void', + [param('uint8_t', 'aifsn')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoCWmax(uint8_t cwMax) [member function] + cls.add_method('SetVoCWmax', + 'void', + [param('uint8_t', 'cwMax')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoCWmin(uint8_t cwMin) [member function] + cls.add_method('SetVoCWmin', + 'void', + [param('uint8_t', 'cwMin')]) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSet::SetVoTXOPLimit(uint16_t txop) [member function] + cls.add_method('SetVoTXOPLimit', + 'void', + [param('uint16_t', 'txop')]) + return + +def register_Ns3EdcaParameterSetChecker_methods(root_module, cls): + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker::EdcaParameterSetChecker() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetChecker::EdcaParameterSetChecker(ns3::EdcaParameterSetChecker const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSetChecker const &', 'arg0')]) + return + +def register_Ns3EdcaParameterSetValue_methods(root_module, cls): + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue() [constructor] + cls.add_constructor([]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue(ns3::EdcaParameterSetValue const & arg0) [copy constructor] + cls.add_constructor([param('ns3::EdcaParameterSetValue const &', 'arg0')]) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSetValue::EdcaParameterSetValue(ns3::EdcaParameterSet const & value) [constructor] + cls.add_constructor([param('ns3::EdcaParameterSet const &', 'value')]) + ## edca-parameter-set.h (module 'wifi'): ns3::Ptr ns3::EdcaParameterSetValue::Copy() const [member function] + cls.add_method('Copy', + 'ns3::Ptr< ns3::AttributeValue >', + [], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): bool ns3::EdcaParameterSetValue::DeserializeFromString(std::string value, ns3::Ptr checker) [member function] + cls.add_method('DeserializeFromString', + 'bool', + [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], + is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet ns3::EdcaParameterSetValue::Get() const [member function] + cls.add_method('Get', + 'ns3::EdcaParameterSet', + [], + is_const=True) + ## edca-parameter-set.h (module 'wifi'): std::string ns3::EdcaParameterSetValue::SerializeToString(ns3::Ptr checker) const [member function] + cls.add_method('SerializeToString', + 'std::string', + [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], + is_const=True, is_virtual=True) + ## edca-parameter-set.h (module 'wifi'): void ns3::EdcaParameterSetValue::Set(ns3::EdcaParameterSet const & value) [member function] + cls.add_method('Set', + 'void', + [param('ns3::EdcaParameterSet const &', 'value')]) + return + def register_Ns3EdcaTxopN_methods(root_module, cls): ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::m_aMpduEnabled [variable] cls.add_instance_attribute('m_aMpduEnabled', 'std::map< ns3::Mac48Address, bool >', is_const=False) @@ -11901,6 +12204,11 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): 'void', [param('uint32_t', 'aifsn')], is_virtual=True) + ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_virtual=True) ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetMinCw() const [member function] cls.add_method('GetMinCw', 'uint32_t', @@ -11916,6 +12224,11 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## edca-txop-n.h (module 'wifi'): ns3::Time ns3::EdcaTxopN::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True, is_virtual=True) ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::Low() [member function] cls.add_method('Low', 'ns3::Ptr< ns3::MacLow >', @@ -12008,6 +12321,10 @@ def register_Ns3EdcaTxopN_methods(root_module, cls): cls.add_method('MissedAck', 'void', []) + ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + []) ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNext() [member function] cls.add_method('StartNext', 'void', @@ -14034,6 +14351,11 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('AggregateToAmpdu', 'ns3::Ptr< ns3::Packet >', [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const', 'hdr')]) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::CalculateOverallTxTime(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters const & params) const [member function] + cls.add_method('CalculateOverallTxTime', + 'ns3::Time', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters const &', 'params')], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::CalculateTransmissionTime(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters const & parameters) const [member function] cls.add_method('CalculateTransmissionTime', 'ns3::Time', @@ -14929,21 +15251,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -15637,6 +15959,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', @@ -16929,6 +17256,11 @@ def register_Ns3WifiNetDevice_methods(root_module, cls): 'void', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Mac48Address', 'from'), param('ns3::Mac48Address', 'to')], visibility='protected') + ## wifi-net-device.h (module 'wifi'): void ns3::WifiNetDevice::NotifyNewAggregate() [member function] + cls.add_method('NotifyNewAggregate', + 'void', + [], + visibility='protected', is_virtual=True) return def register_Ns3WifiRadioEnergyModel_methods(root_module, cls): @@ -17336,6 +17668,11 @@ def register_Ns3DcaTxop_methods(root_module, cls): 'void', [param('uint32_t', 'aifsn')], is_virtual=True) + ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')], + is_virtual=True) ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMinCw() const [member function] cls.add_method('GetMinCw', 'uint32_t', @@ -17351,6 +17688,11 @@ def register_Ns3DcaTxop_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True, is_virtual=True) ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::Queue(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] cls.add_method('Queue', 'void', @@ -17478,6 +17820,10 @@ def register_Ns3HashFunctionMurmur3_methods(root_module, cls): def register_functions(root_module): module = root_module + ## edca-parameter-set.h (module 'wifi'): extern ns3::Ptr ns3::MakeEdcaParameterSetChecker() [free function] + module.add_function('MakeEdcaParameterSetChecker', + 'ns3::Ptr< ns3::AttributeChecker const >', + []) ## erp-information.h (module 'wifi'): extern ns3::Ptr ns3::MakeErpInformationChecker() [free function] module.add_function('MakeErpInformationChecker', 'ns3::Ptr< ns3::AttributeChecker const >', diff --git a/src/wimax/bindings/modulegen__gcc_ILP32.py b/src/wimax/bindings/modulegen__gcc_ILP32.py index a2c9523de0c..3ddfbb8effe 100644 --- a/src/wimax/bindings/modulegen__gcc_ILP32.py +++ b/src/wimax/bindings/modulegen__gcc_ILP32.py @@ -494,6 +494,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## simple-ofdm-wimax-phy.h (module 'wimax'): ns3::SimpleOfdmWimaxPhy [class] module.add_class('SimpleOfdmWimaxPhy', parent=root_module['ns3::WimaxPhy']) ## simple-ofdm-wimax-phy.h (module 'wimax'): ns3::SimpleOfdmWimaxPhy::FrameDurationCode [enumeration] @@ -10426,21 +10428,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -10933,6 +10935,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/wimax/bindings/modulegen__gcc_LP64.py b/src/wimax/bindings/modulegen__gcc_LP64.py index 41078d4825b..64c74f55b68 100644 --- a/src/wimax/bindings/modulegen__gcc_LP64.py +++ b/src/wimax/bindings/modulegen__gcc_LP64.py @@ -494,6 +494,8 @@ def register_types(module): module.add_class('ParetoRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## simple-ofdm-wimax-phy.h (module 'wimax'): ns3::SimpleOfdmWimaxPhy [class] module.add_class('SimpleOfdmWimaxPhy', parent=root_module['ns3::WimaxPhy']) ## simple-ofdm-wimax-phy.h (module 'wimax'): ns3::SimpleOfdmWimaxPhy::FrameDurationCode [enumeration] @@ -10426,21 +10428,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -10933,6 +10935,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', From acc2b3b79890f0ca7f05120b89d78fcf0313d2a7 Mon Sep 17 00:00:00 2001 From: Stefano Avallone Date: Tue, 19 Jul 2016 18:16:28 +0200 Subject: [PATCH 05/27] documentation: Update CHANGES.html and doxygen --- CHANGES.html | 27 +++++++++++++++++++ .../model/pfifo-fast-queue-disc.h | 3 ++- src/wifi/model/wifi-net-device.h | 4 +++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/CHANGES.html b/CHANGES.html index 45a8eb368be..bc260bc8e9a 100644 --- a/CHANGES.html +++ b/CHANGES.html @@ -54,6 +54,25 @@

Changes from ns-3.25 to ns-3.26

New API:

    +
  • A SocketPriorityTag is introduced to carry the packet priority. Such a tag + is added to packets by sockets that support this mechanism (UdpSocketImpl, + TcpSocketBase and PacketSocket). The base class Socket has a new SetPriority + method to set the socket priority. When the IPv4 protocol is used, the + priority is set based on the ToS. See the Socket options section of the + Network model for more information. +
  • +
  • A WifiNetDevice::SelectQueue method has been added to determine the user + priority of an MSDU. This method is called by the traffic control layer before + enqueuing a packet in the queue disc, if a queue disc is installed on + the outgoing device, or passing a packet to the device, otherwise. The + user priority is set to the three most significant bits of the DS field + (TOS field in case of IPv4 and Traffic Class field in case of IPv6). The + packet priority carried by the SocketPriorityTag is set to the user priority. +
  • +
  • The PfifoFastQueueDisc classifies packets into bands based on their priority. + See the pfifo_fast queue disc section of the Traffic Control Layer model + for more information. +

Changes to existing API:

    @@ -66,6 +85,14 @@

    Changes to existing API:

    As a consequence, SocketAddressTag has been completely removed from ns-3. Users can use RecvFrom (for UDP), GetPeerName (for TCP), or similar. +
  • InetSockAddress can now store a ToS value, which can be set through its + SetTos method. The Bind and Connect methods of UDP (UdpSocketImpl) and + TCP (TcpSocketBase) sockets set the socket ToS value to the value provided + through the address input parameter (of type InetSockAddress). See the + Socket options section of the Network model for more information. +
  • +
  • The QosTag is removed as it has been superseded by the SocketPriorityTag.
  • +
  • The Ipv4L3Protocol::DefaultTos attribute is removed.

Changes to build system:

    diff --git a/src/traffic-control/model/pfifo-fast-queue-disc.h b/src/traffic-control/model/pfifo-fast-queue-disc.h index 7ebd3aabe08..49e163ec964 100644 --- a/src/traffic-control/model/pfifo-fast-queue-disc.h +++ b/src/traffic-control/model/pfifo-fast-queue-disc.h @@ -64,7 +64,8 @@ class PfifoFastQueueDisc : public QueueDisc { private: /** - * Priority to band map + * Priority to band map. Values are taken from the prio2band array used by + * the Linux pfifo_fast queue disc. */ static const uint32_t prio2band[16]; diff --git a/src/wifi/model/wifi-net-device.h b/src/wifi/model/wifi-net-device.h index 9791d1dc4d7..508355ff565 100644 --- a/src/wifi/model/wifi-net-device.h +++ b/src/wifi/model/wifi-net-device.h @@ -187,6 +187,10 @@ class WifiNetDevice : public NetDevice * CS5 | 101000xx | 5 | AC_VI * CS6 | 110000xx | 6 | AC_VO * CS7 | 111000xx | 7 | AC_VO + * + * This method is called by the traffic control layer before enqueuing a + * packet in the queue disc, if a queue disc is installed on the outgoing + * device, or passing a packet to the device, otherwise. */ uint8_t SelectQueue (Ptr item) const; From e939e9899952c517096f0ee99d6e2c7fa4704719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deronne?= Date: Tue, 19 Jul 2016 20:58:18 +0200 Subject: [PATCH 06/27] wifi: remove unnecessary ampdutag --- src/wifi/model/yans-wifi-phy.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/src/wifi/model/yans-wifi-phy.cc b/src/wifi/model/yans-wifi-phy.cc index 1d722ab2aa7..1816e8b5da6 100644 --- a/src/wifi/model/yans-wifi-phy.cc +++ b/src/wifi/model/yans-wifi-phy.cc @@ -741,7 +741,6 @@ YansWifiPhy::StartReceivePacket (Ptr packet, NS_LOG_FUNCTION (this << packet << txVector.GetMode () << preamble << (uint32_t)mpdutype); NS_ASSERT (IsStateRx ()); NS_ASSERT (m_endPlcpRxEvent.IsExpired ()); - AmpduTag ampduTag; WifiMode txMode = txVector.GetMode (); struct InterferenceHelper::SnrPer snrPer; From ff0aa58f168301c0b73986239441346472cc0a21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deronne?= Date: Tue, 19 Jul 2016 20:58:44 +0200 Subject: [PATCH 07/27] wifi: add logs in WifiNetDevice --- src/wifi/model/wifi-net-device.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/wifi/model/wifi-net-device.cc b/src/wifi/model/wifi-net-device.cc index 8149e822137..3b4bdd0b4e3 100644 --- a/src/wifi/model/wifi-net-device.cc +++ b/src/wifi/model/wifi-net-device.cc @@ -314,6 +314,7 @@ WifiNetDevice::IsBridge (void) const bool WifiNetDevice::Send (Ptr packet, const Address& dest, uint16_t protocolNumber) { + NS_LOG_FUNCTION (this << packet << dest << protocolNumber); NS_ASSERT (Mac48Address::IsMatchingType (dest)); Mac48Address realTo = Mac48Address::ConvertFrom (dest); @@ -355,6 +356,7 @@ WifiNetDevice::SetReceiveCallback (NetDevice::ReceiveCallback cb) void WifiNetDevice::ForwardUp (Ptr packet, Mac48Address from, Mac48Address to) { + NS_LOG_FUNCTION (this << packet << from << to); LlcSnapHeader llc; enum NetDevice::PacketType type; if (to.IsBroadcast ()) @@ -409,6 +411,7 @@ WifiNetDevice::LinkDown (void) bool WifiNetDevice::SendFrom (Ptr packet, const Address& source, const Address& dest, uint16_t protocolNumber) { + NS_LOG_FUNCTION (this << packet << source << dest << protocolNumber); NS_ASSERT (Mac48Address::IsMatchingType (dest)); NS_ASSERT (Mac48Address::IsMatchingType (source)); From 377ba18313771a10761745e79078561d1e350bec Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Wed, 20 Jul 2016 08:35:50 -0700 Subject: [PATCH 08/27] core: (fixes #2452) Add Object::IsInitialized method --- src/core/model/object.cc | 6 ++++++ src/core/model/object.h | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/src/core/model/object.cc b/src/core/model/object.cc index 17ea1e53956..c08246fac71 100644 --- a/src/core/model/object.cc +++ b/src/core/model/object.cc @@ -204,6 +204,12 @@ Object::Initialize (void) } } } +bool +Object::IsInitialized (void) const +{ + NS_LOG_FUNCTION (this); + return m_initialized; +} void Object::Dispose (void) { diff --git a/src/core/model/object.h b/src/core/model/object.h index f3da04a0491..1b8207191a5 100644 --- a/src/core/model/object.h +++ b/src/core/model/object.h @@ -219,6 +219,13 @@ class Object : public SimpleRefCount */ void Initialize (void); + /** + * Check if the object has been initialized. + * + * \brief returns true if the object has been initialized. + */ + bool IsInitialized (void) const; + protected: /** * Notify all Objects aggregated to this one of a new Object being From 7f88b04c33f0c19f550e623fc633a95a27d4e3f9 Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Wed, 20 Jul 2016 16:33:57 -0700 Subject: [PATCH 09/27] bindings: rescan all module bindings --- src/antenna/bindings/modulegen__gcc_ILP32.py | 5 + src/antenna/bindings/modulegen__gcc_LP64.py | 5 + src/aodv/bindings/modulegen__gcc_ILP32.py | 5 + src/aodv/bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 29 +++-- .../bindings/modulegen__gcc_LP64.py | 29 +++-- src/bridge/bindings/modulegen__gcc_ILP32.py | 5 + src/bridge/bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 5 + src/buildings/bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 18 +++ .../bindings/modulegen__gcc_LP64.py | 18 +++ src/core/bindings/modulegen__gcc_ILP32.py | 5 + src/core/bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 5 + .../bindings/modulegen__gcc_LP64.py | 5 + src/csma/bindings/modulegen__gcc_ILP32.py | 11 +- src/csma/bindings/modulegen__gcc_LP64.py | 11 +- src/dsdv/bindings/modulegen__gcc_ILP32.py | 11 +- src/dsdv/bindings/modulegen__gcc_LP64.py | 11 +- src/dsr/bindings/modulegen__gcc_ILP32.py | 9 +- src/dsr/bindings/modulegen__gcc_LP64.py | 9 +- src/energy/bindings/modulegen__gcc_ILP32.py | 5 + src/energy/bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 5 + .../bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 5 + .../bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 5 + .../bindings/modulegen__gcc_LP64.py | 5 + src/internet/bindings/modulegen__gcc_ILP32.py | 5 + src/internet/bindings/modulegen__gcc_LP64.py | 5 + src/lr-wpan/bindings/modulegen__gcc_ILP32.py | 21 ++-- src/lr-wpan/bindings/modulegen__gcc_LP64.py | 17 ++- src/lte/bindings/modulegen__gcc_ILP32.py | 27 +++-- src/lte/bindings/modulegen__gcc_LP64.py | 27 +++-- src/mesh/bindings/modulegen__gcc_ILP32.py | 5 + src/mesh/bindings/modulegen__gcc_LP64.py | 5 + src/mobility/bindings/modulegen__gcc_ILP32.py | 5 + src/mobility/bindings/modulegen__gcc_LP64.py | 5 + src/mpi/bindings/modulegen__gcc_ILP32.py | 5 + src/mpi/bindings/modulegen__gcc_LP64.py | 5 + src/network/bindings/modulegen__gcc_ILP32.py | 23 ++-- src/network/bindings/modulegen__gcc_LP64.py | 23 ++-- .../bindings/modulegen__gcc_ILP32.py | 5 + .../bindings/modulegen__gcc_LP64.py | 5 + src/olsr/bindings/modulegen__gcc_ILP32.py | 5 + src/olsr/bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 5 + .../bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 5 + .../bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 5 + .../bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 5 + src/sixlowpan/bindings/modulegen__gcc_LP64.py | 5 + src/spectrum/bindings/modulegen__gcc_ILP32.py | 5 + src/spectrum/bindings/modulegen__gcc_LP64.py | 5 + src/stats/bindings/modulegen__gcc_ILP32.py | 5 + src/stats/bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 5 + .../bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 5 + .../bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 5 + .../bindings/modulegen__gcc_LP64.py | 5 + src/uan/bindings/modulegen__gcc_ILP32.py | 5 + src/uan/bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 5 + .../bindings/modulegen__gcc_LP64.py | 5 + .../bindings/modulegen__gcc_ILP32.py | 107 +++++++++++++++--- .../bindings/modulegen__gcc_LP64.py | 107 +++++++++++++++--- src/wave/bindings/modulegen__gcc_ILP32.py | 13 ++- src/wave/bindings/modulegen__gcc_LP64.py | 13 ++- src/wifi/bindings/modulegen__gcc_ILP32.py | 5 + src/wifi/bindings/modulegen__gcc_LP64.py | 5 + src/wimax/bindings/modulegen__gcc_ILP32.py | 5 + src/wimax/bindings/modulegen__gcc_LP64.py | 5 + 78 files changed, 696 insertions(+), 128 deletions(-) diff --git a/src/antenna/bindings/modulegen__gcc_ILP32.py b/src/antenna/bindings/modulegen__gcc_ILP32.py index b5e5611c979..1a35dc17f41 100644 --- a/src/antenna/bindings/modulegen__gcc_ILP32.py +++ b/src/antenna/bindings/modulegen__gcc_ILP32.py @@ -667,6 +667,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/antenna/bindings/modulegen__gcc_LP64.py b/src/antenna/bindings/modulegen__gcc_LP64.py index b5e5611c979..1a35dc17f41 100644 --- a/src/antenna/bindings/modulegen__gcc_LP64.py +++ b/src/antenna/bindings/modulegen__gcc_LP64.py @@ -667,6 +667,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/aodv/bindings/modulegen__gcc_ILP32.py b/src/aodv/bindings/modulegen__gcc_ILP32.py index 78223272b86..8946a05dcc6 100644 --- a/src/aodv/bindings/modulegen__gcc_ILP32.py +++ b/src/aodv/bindings/modulegen__gcc_ILP32.py @@ -3278,6 +3278,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/aodv/bindings/modulegen__gcc_LP64.py b/src/aodv/bindings/modulegen__gcc_LP64.py index 78223272b86..8946a05dcc6 100644 --- a/src/aodv/bindings/modulegen__gcc_LP64.py +++ b/src/aodv/bindings/modulegen__gcc_LP64.py @@ -3278,6 +3278,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/applications/bindings/modulegen__gcc_ILP32.py b/src/applications/bindings/modulegen__gcc_ILP32.py index 802c08bc502..f11a2f9dd6d 100644 --- a/src/applications/bindings/modulegen__gcc_ILP32.py +++ b/src/applications/bindings/modulegen__gcc_ILP32.py @@ -534,6 +534,9 @@ def register_types(module): module.add_container('std::vector< ns3::Ipv6Address >', 'ns3::Ipv6Address', container_type=u'vector') module.add_container('std::list< unsigned int >', 'unsigned int', container_type=u'list') module.add_container('std::list< ns3::Ptr< ns3::Socket > >', 'ns3::Ptr< ns3::Socket >', container_type=u'list') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::SequenceNumber< short unsigned int, short int >', u'ns3::SequenceNumber16') typehandlers.add_type_alias(u'ns3::SequenceNumber< short unsigned int, short int >*', u'ns3::SequenceNumber16*') typehandlers.add_type_alias(u'ns3::SequenceNumber< short unsigned int, short int >&', u'ns3::SequenceNumber16&') @@ -552,9 +555,6 @@ def register_types(module): typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxStartCallback') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxStartCallback*') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxStartCallback&') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyRxEndOkCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyRxEndOkCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyRxEndOkCallback&') @@ -895,8 +895,8 @@ def register_methods(root_module): def register_Ns3Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## address.h (module 'network'): ns3::Address::Address() [constructor] cls.add_constructor([]) @@ -1895,8 +1895,8 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): def register_Ns3Ipv4Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## ipv4-address.h (module 'network'): ns3::Ipv4Address::Ipv4Address(ns3::Ipv4Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Ipv4Address const &', 'arg0')]) @@ -2076,8 +2076,8 @@ def register_Ns3Ipv4Mask_methods(root_module, cls): def register_Ns3Ipv6Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## ipv6-address.h (module 'network'): ns3::Ipv6Address::Ipv6Address() [constructor] cls.add_constructor([]) @@ -2333,8 +2333,8 @@ def register_Ns3Ipv6Prefix_methods(root_module, cls): def register_Ns3Mac16Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## mac16-address.h (module 'network'): ns3::Mac16Address::Mac16Address(ns3::Mac16Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac16Address const &', 'arg0')]) @@ -2370,8 +2370,8 @@ def register_Ns3Mac16Address_methods(root_module, cls): def register_Ns3Mac48Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## mac48-address.h (module 'network'): ns3::Mac48Address::Mac48Address(ns3::Mac48Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac48Address const &', 'arg0')]) @@ -2442,8 +2442,8 @@ def register_Ns3Mac48Address_methods(root_module, cls): def register_Ns3Mac64Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## mac64-address.h (module 'network'): ns3::Mac64Address::Mac64Address(ns3::Mac64Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac64Address const &', 'arg0')]) @@ -3792,8 +3792,8 @@ def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): def register_Ns3TypeId_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## type-id.h (module 'core'): ns3::TypeId::TypeId(char const * name) [constructor] cls.add_constructor([param('char const *', 'name')]) @@ -4142,7 +4142,6 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) @@ -4153,6 +4152,7 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor] @@ -4434,6 +4434,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') @@ -6010,7 +6015,6 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) @@ -6018,6 +6022,7 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('>') cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## nstime.h (module 'core'): ns3::Time::Time() [constructor] diff --git a/src/applications/bindings/modulegen__gcc_LP64.py b/src/applications/bindings/modulegen__gcc_LP64.py index 802c08bc502..f11a2f9dd6d 100644 --- a/src/applications/bindings/modulegen__gcc_LP64.py +++ b/src/applications/bindings/modulegen__gcc_LP64.py @@ -534,6 +534,9 @@ def register_types(module): module.add_container('std::vector< ns3::Ipv6Address >', 'ns3::Ipv6Address', container_type=u'vector') module.add_container('std::list< unsigned int >', 'unsigned int', container_type=u'list') module.add_container('std::list< ns3::Ptr< ns3::Socket > >', 'ns3::Ptr< ns3::Socket >', container_type=u'list') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') + typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::SequenceNumber< short unsigned int, short int >', u'ns3::SequenceNumber16') typehandlers.add_type_alias(u'ns3::SequenceNumber< short unsigned int, short int >*', u'ns3::SequenceNumber16*') typehandlers.add_type_alias(u'ns3::SequenceNumber< short unsigned int, short int >&', u'ns3::SequenceNumber16&') @@ -552,9 +555,6 @@ def register_types(module): typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxStartCallback') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxStartCallback*') typehandlers.add_type_alias(u'ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxStartCallback&') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyTxEndCallback') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyTxEndCallback*') - typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyTxEndCallback&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::GenericPhyRxEndOkCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::GenericPhyRxEndOkCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::GenericPhyRxEndOkCallback&') @@ -895,8 +895,8 @@ def register_methods(root_module): def register_Ns3Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## address.h (module 'network'): ns3::Address::Address() [constructor] cls.add_constructor([]) @@ -1895,8 +1895,8 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): def register_Ns3Ipv4Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## ipv4-address.h (module 'network'): ns3::Ipv4Address::Ipv4Address(ns3::Ipv4Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Ipv4Address const &', 'arg0')]) @@ -2076,8 +2076,8 @@ def register_Ns3Ipv4Mask_methods(root_module, cls): def register_Ns3Ipv6Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## ipv6-address.h (module 'network'): ns3::Ipv6Address::Ipv6Address() [constructor] cls.add_constructor([]) @@ -2333,8 +2333,8 @@ def register_Ns3Ipv6Prefix_methods(root_module, cls): def register_Ns3Mac16Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## mac16-address.h (module 'network'): ns3::Mac16Address::Mac16Address(ns3::Mac16Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac16Address const &', 'arg0')]) @@ -2370,8 +2370,8 @@ def register_Ns3Mac16Address_methods(root_module, cls): def register_Ns3Mac48Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## mac48-address.h (module 'network'): ns3::Mac48Address::Mac48Address(ns3::Mac48Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac48Address const &', 'arg0')]) @@ -2442,8 +2442,8 @@ def register_Ns3Mac48Address_methods(root_module, cls): def register_Ns3Mac64Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## mac64-address.h (module 'network'): ns3::Mac64Address::Mac64Address(ns3::Mac64Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac64Address const &', 'arg0')]) @@ -3792,8 +3792,8 @@ def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): def register_Ns3TypeId_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## type-id.h (module 'core'): ns3::TypeId::TypeId(char const * name) [constructor] cls.add_constructor([param('char const *', 'name')]) @@ -4142,7 +4142,6 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) @@ -4153,6 +4152,7 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor] @@ -4434,6 +4434,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') @@ -6010,7 +6015,6 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) @@ -6018,6 +6022,7 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('>') cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## nstime.h (module 'core'): ns3::Time::Time() [constructor] diff --git a/src/bridge/bindings/modulegen__gcc_ILP32.py b/src/bridge/bindings/modulegen__gcc_ILP32.py index 8b723d3f7e2..ed6d2a59d2d 100644 --- a/src/bridge/bindings/modulegen__gcc_ILP32.py +++ b/src/bridge/bindings/modulegen__gcc_ILP32.py @@ -1534,6 +1534,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/bridge/bindings/modulegen__gcc_LP64.py b/src/bridge/bindings/modulegen__gcc_LP64.py index 8b723d3f7e2..ed6d2a59d2d 100644 --- a/src/bridge/bindings/modulegen__gcc_LP64.py +++ b/src/bridge/bindings/modulegen__gcc_LP64.py @@ -1534,6 +1534,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/buildings/bindings/modulegen__gcc_ILP32.py b/src/buildings/bindings/modulegen__gcc_ILP32.py index a15e61b42dd..46b6c14e971 100644 --- a/src/buildings/bindings/modulegen__gcc_ILP32.py +++ b/src/buildings/bindings/modulegen__gcc_ILP32.py @@ -1867,6 +1867,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/buildings/bindings/modulegen__gcc_LP64.py b/src/buildings/bindings/modulegen__gcc_LP64.py index a15e61b42dd..46b6c14e971 100644 --- a/src/buildings/bindings/modulegen__gcc_LP64.py +++ b/src/buildings/bindings/modulegen__gcc_LP64.py @@ -1867,6 +1867,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/config-store/bindings/modulegen__gcc_ILP32.py b/src/config-store/bindings/modulegen__gcc_ILP32.py index b66559df134..66be87285cb 100644 --- a/src/config-store/bindings/modulegen__gcc_ILP32.py +++ b/src/config-store/bindings/modulegen__gcc_ILP32.py @@ -24,6 +24,8 @@ def register_types(module): module.add_class('CallbackBase', import_from_module='ns.core') ## file-config.h (module 'config-store'): ns3::FileConfig [class] module.add_class('FileConfig', allow_subclassing=True) + ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore [class] + module.add_class('GtkConfigStore') ## hash.h (module 'core'): ns3::Hasher [class] module.add_class('Hasher', import_from_module='ns.core') ## file-config.h (module 'config-store'): ns3::NoneFileConfig [class] @@ -128,6 +130,7 @@ def register_types_ns3_Hash_Function(module): def register_methods(root_module): register_Ns3CallbackBase_methods(root_module, root_module['ns3::CallbackBase']) register_Ns3FileConfig_methods(root_module, root_module['ns3::FileConfig']) + register_Ns3GtkConfigStore_methods(root_module, root_module['ns3::GtkConfigStore']) register_Ns3Hasher_methods(root_module, root_module['ns3::Hasher']) register_Ns3NoneFileConfig_methods(root_module, root_module['ns3::NoneFileConfig']) register_Ns3ObjectBase_methods(root_module, root_module['ns3::ObjectBase']) @@ -201,6 +204,21 @@ def register_Ns3FileConfig_methods(root_module, cls): is_pure_virtual=True, is_virtual=True) return +def register_Ns3GtkConfigStore_methods(root_module, cls): + ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore::GtkConfigStore(ns3::GtkConfigStore const & arg0) [copy constructor] + cls.add_constructor([param('ns3::GtkConfigStore const &', 'arg0')]) + ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore::GtkConfigStore() [constructor] + cls.add_constructor([]) + ## gtk-config-store.h (module 'config-store'): void ns3::GtkConfigStore::ConfigureAttributes() [member function] + cls.add_method('ConfigureAttributes', + 'void', + []) + ## gtk-config-store.h (module 'config-store'): void ns3::GtkConfigStore::ConfigureDefaults() [member function] + cls.add_method('ConfigureDefaults', + 'void', + []) + return + def register_Ns3Hasher_methods(root_module, cls): ## hash.h (module 'core'): ns3::Hasher::Hasher(ns3::Hasher const & arg0) [copy constructor] cls.add_constructor([param('ns3::Hasher const &', 'arg0')]) diff --git a/src/config-store/bindings/modulegen__gcc_LP64.py b/src/config-store/bindings/modulegen__gcc_LP64.py index b66559df134..66be87285cb 100644 --- a/src/config-store/bindings/modulegen__gcc_LP64.py +++ b/src/config-store/bindings/modulegen__gcc_LP64.py @@ -24,6 +24,8 @@ def register_types(module): module.add_class('CallbackBase', import_from_module='ns.core') ## file-config.h (module 'config-store'): ns3::FileConfig [class] module.add_class('FileConfig', allow_subclassing=True) + ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore [class] + module.add_class('GtkConfigStore') ## hash.h (module 'core'): ns3::Hasher [class] module.add_class('Hasher', import_from_module='ns.core') ## file-config.h (module 'config-store'): ns3::NoneFileConfig [class] @@ -128,6 +130,7 @@ def register_types_ns3_Hash_Function(module): def register_methods(root_module): register_Ns3CallbackBase_methods(root_module, root_module['ns3::CallbackBase']) register_Ns3FileConfig_methods(root_module, root_module['ns3::FileConfig']) + register_Ns3GtkConfigStore_methods(root_module, root_module['ns3::GtkConfigStore']) register_Ns3Hasher_methods(root_module, root_module['ns3::Hasher']) register_Ns3NoneFileConfig_methods(root_module, root_module['ns3::NoneFileConfig']) register_Ns3ObjectBase_methods(root_module, root_module['ns3::ObjectBase']) @@ -201,6 +204,21 @@ def register_Ns3FileConfig_methods(root_module, cls): is_pure_virtual=True, is_virtual=True) return +def register_Ns3GtkConfigStore_methods(root_module, cls): + ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore::GtkConfigStore(ns3::GtkConfigStore const & arg0) [copy constructor] + cls.add_constructor([param('ns3::GtkConfigStore const &', 'arg0')]) + ## gtk-config-store.h (module 'config-store'): ns3::GtkConfigStore::GtkConfigStore() [constructor] + cls.add_constructor([]) + ## gtk-config-store.h (module 'config-store'): void ns3::GtkConfigStore::ConfigureAttributes() [member function] + cls.add_method('ConfigureAttributes', + 'void', + []) + ## gtk-config-store.h (module 'config-store'): void ns3::GtkConfigStore::ConfigureDefaults() [member function] + cls.add_method('ConfigureDefaults', + 'void', + []) + return + def register_Ns3Hasher_methods(root_module, cls): ## hash.h (module 'core'): ns3::Hasher::Hasher(ns3::Hasher const & arg0) [copy constructor] cls.add_constructor([param('ns3::Hasher const &', 'arg0')]) diff --git a/src/core/bindings/modulegen__gcc_ILP32.py b/src/core/bindings/modulegen__gcc_ILP32.py index f08146d9c03..986b75c37af 100644 --- a/src/core/bindings/modulegen__gcc_ILP32.py +++ b/src/core/bindings/modulegen__gcc_ILP32.py @@ -1762,6 +1762,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/core/bindings/modulegen__gcc_LP64.py b/src/core/bindings/modulegen__gcc_LP64.py index 57f505fe07d..74331b28574 100644 --- a/src/core/bindings/modulegen__gcc_LP64.py +++ b/src/core/bindings/modulegen__gcc_LP64.py @@ -1762,6 +1762,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/csma-layout/bindings/modulegen__gcc_ILP32.py b/src/csma-layout/bindings/modulegen__gcc_ILP32.py index 1972dc67ac4..026db1425e3 100644 --- a/src/csma-layout/bindings/modulegen__gcc_ILP32.py +++ b/src/csma-layout/bindings/modulegen__gcc_ILP32.py @@ -4072,6 +4072,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/csma-layout/bindings/modulegen__gcc_LP64.py b/src/csma-layout/bindings/modulegen__gcc_LP64.py index 1972dc67ac4..026db1425e3 100644 --- a/src/csma-layout/bindings/modulegen__gcc_LP64.py +++ b/src/csma-layout/bindings/modulegen__gcc_LP64.py @@ -4072,6 +4072,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/csma/bindings/modulegen__gcc_ILP32.py b/src/csma/bindings/modulegen__gcc_ILP32.py index 5e66d323f60..2ab636ece2f 100644 --- a/src/csma/bindings/modulegen__gcc_ILP32.py +++ b/src/csma/bindings/modulegen__gcc_ILP32.py @@ -399,6 +399,9 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *', u'ns3::TracedValueCallback::Uint16') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) **', u'ns3::TracedValueCallback::Uint16*') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *&', u'ns3::TracedValueCallback::Uint16&') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') @@ -417,9 +420,6 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') def register_types_ns3_internal(module): root_module = module.get_root() @@ -3064,6 +3064,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/csma/bindings/modulegen__gcc_LP64.py b/src/csma/bindings/modulegen__gcc_LP64.py index 5e66d323f60..2ab636ece2f 100644 --- a/src/csma/bindings/modulegen__gcc_LP64.py +++ b/src/csma/bindings/modulegen__gcc_LP64.py @@ -399,6 +399,9 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *', u'ns3::TracedValueCallback::Uint16') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) **', u'ns3::TracedValueCallback::Uint16*') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *&', u'ns3::TracedValueCallback::Uint16&') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') @@ -417,9 +420,6 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') def register_types_ns3_internal(module): root_module = module.get_root() @@ -3064,6 +3064,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/dsdv/bindings/modulegen__gcc_ILP32.py b/src/dsdv/bindings/modulegen__gcc_ILP32.py index d19e1d55f83..bebb6d30841 100644 --- a/src/dsdv/bindings/modulegen__gcc_ILP32.py +++ b/src/dsdv/bindings/modulegen__gcc_ILP32.py @@ -472,6 +472,9 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *', u'ns3::TracedValueCallback::Uint16') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) **', u'ns3::TracedValueCallback::Uint16*') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *&', u'ns3::TracedValueCallback::Uint16&') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') @@ -487,9 +490,6 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t ) *', u'ns3::TracedValueCallback::Int32') typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t ) **', u'ns3::TracedValueCallback::Int32*') typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t ) *&', u'ns3::TracedValueCallback::Int32&') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') def register_types_ns3_dsdv(module): root_module = module.get_root() @@ -3230,6 +3230,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/dsdv/bindings/modulegen__gcc_LP64.py b/src/dsdv/bindings/modulegen__gcc_LP64.py index d19e1d55f83..bebb6d30841 100644 --- a/src/dsdv/bindings/modulegen__gcc_LP64.py +++ b/src/dsdv/bindings/modulegen__gcc_LP64.py @@ -472,6 +472,9 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *', u'ns3::TracedValueCallback::Uint16') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) **', u'ns3::TracedValueCallback::Uint16*') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *&', u'ns3::TracedValueCallback::Uint16&') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') + typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') @@ -487,9 +490,6 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t ) *', u'ns3::TracedValueCallback::Int32') typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t ) **', u'ns3::TracedValueCallback::Int32*') typehandlers.add_type_alias(u'void ( * ) ( int32_t, int32_t ) *&', u'ns3::TracedValueCallback::Int32&') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') - typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') def register_types_ns3_dsdv(module): root_module = module.get_root() @@ -3230,6 +3230,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/dsr/bindings/modulegen__gcc_ILP32.py b/src/dsr/bindings/modulegen__gcc_ILP32.py index e5649eb51ea..2daf1764d00 100644 --- a/src/dsr/bindings/modulegen__gcc_ILP32.py +++ b/src/dsr/bindings/modulegen__gcc_ILP32.py @@ -30,10 +30,10 @@ def register_types(module): module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') - ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] - module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], import_from_module='ns.wifi') ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') + ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] + module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], 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] @@ -4247,6 +4247,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/dsr/bindings/modulegen__gcc_LP64.py b/src/dsr/bindings/modulegen__gcc_LP64.py index e5649eb51ea..2daf1764d00 100644 --- a/src/dsr/bindings/modulegen__gcc_LP64.py +++ b/src/dsr/bindings/modulegen__gcc_LP64.py @@ -30,10 +30,10 @@ def register_types(module): module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') - ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] - module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], import_from_module='ns.wifi') ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') + ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] + module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], 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] @@ -4247,6 +4247,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/energy/bindings/modulegen__gcc_ILP32.py b/src/energy/bindings/modulegen__gcc_ILP32.py index 803dba9fd52..d9cb0404ae6 100644 --- a/src/energy/bindings/modulegen__gcc_ILP32.py +++ b/src/energy/bindings/modulegen__gcc_ILP32.py @@ -1956,6 +1956,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/energy/bindings/modulegen__gcc_LP64.py b/src/energy/bindings/modulegen__gcc_LP64.py index 803dba9fd52..d9cb0404ae6 100644 --- a/src/energy/bindings/modulegen__gcc_LP64.py +++ b/src/energy/bindings/modulegen__gcc_LP64.py @@ -1956,6 +1956,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/fd-net-device/bindings/modulegen__gcc_ILP32.py b/src/fd-net-device/bindings/modulegen__gcc_ILP32.py index 5cd4b016a14..c45200439a4 100644 --- a/src/fd-net-device/bindings/modulegen__gcc_ILP32.py +++ b/src/fd-net-device/bindings/modulegen__gcc_ILP32.py @@ -2877,6 +2877,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/fd-net-device/bindings/modulegen__gcc_LP64.py b/src/fd-net-device/bindings/modulegen__gcc_LP64.py index 8907b267e5f..ff69e0a6b43 100644 --- a/src/fd-net-device/bindings/modulegen__gcc_LP64.py +++ b/src/fd-net-device/bindings/modulegen__gcc_LP64.py @@ -2877,6 +2877,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/flow-monitor/bindings/modulegen__gcc_ILP32.py b/src/flow-monitor/bindings/modulegen__gcc_ILP32.py index 437067a5924..aadf53e5421 100644 --- a/src/flow-monitor/bindings/modulegen__gcc_ILP32.py +++ b/src/flow-monitor/bindings/modulegen__gcc_ILP32.py @@ -3113,6 +3113,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/flow-monitor/bindings/modulegen__gcc_LP64.py b/src/flow-monitor/bindings/modulegen__gcc_LP64.py index e836aad3ec3..2675c29db0a 100644 --- a/src/flow-monitor/bindings/modulegen__gcc_LP64.py +++ b/src/flow-monitor/bindings/modulegen__gcc_LP64.py @@ -3113,6 +3113,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/internet-apps/bindings/modulegen__gcc_ILP32.py b/src/internet-apps/bindings/modulegen__gcc_ILP32.py index 7b61db4818e..1a36743aa13 100644 --- a/src/internet-apps/bindings/modulegen__gcc_ILP32.py +++ b/src/internet-apps/bindings/modulegen__gcc_ILP32.py @@ -2151,6 +2151,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/internet-apps/bindings/modulegen__gcc_LP64.py b/src/internet-apps/bindings/modulegen__gcc_LP64.py index 7b61db4818e..1a36743aa13 100644 --- a/src/internet-apps/bindings/modulegen__gcc_LP64.py +++ b/src/internet-apps/bindings/modulegen__gcc_LP64.py @@ -2151,6 +2151,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/internet/bindings/modulegen__gcc_ILP32.py b/src/internet/bindings/modulegen__gcc_ILP32.py index dfc495c447b..072a36de551 100644 --- a/src/internet/bindings/modulegen__gcc_ILP32.py +++ b/src/internet/bindings/modulegen__gcc_ILP32.py @@ -7755,6 +7755,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/internet/bindings/modulegen__gcc_LP64.py b/src/internet/bindings/modulegen__gcc_LP64.py index dfc495c447b..072a36de551 100644 --- a/src/internet/bindings/modulegen__gcc_LP64.py +++ b/src/internet/bindings/modulegen__gcc_LP64.py @@ -7755,6 +7755,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/lr-wpan/bindings/modulegen__gcc_ILP32.py b/src/lr-wpan/bindings/modulegen__gcc_ILP32.py index 0cf2b327b15..4fa1caf47ee 100644 --- a/src/lr-wpan/bindings/modulegen__gcc_ILP32.py +++ b/src/lr-wpan/bindings/modulegen__gcc_ILP32.py @@ -20,20 +20,20 @@ def module_init(): def register_types(module): root_module = module.get_root() - ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPhyOption [enumeration] - module.add_enum('LrWpanPhyOption', ['IEEE_802_15_4_868MHZ_BPSK', 'IEEE_802_15_4_915MHZ_BPSK', 'IEEE_802_15_4_868MHZ_ASK', 'IEEE_802_15_4_915MHZ_ASK', 'IEEE_802_15_4_868MHZ_OQPSK', 'IEEE_802_15_4_915MHZ_OQPSK', 'IEEE_802_15_4_2_4GHZ_OQPSK', 'IEEE_802_15_4_INVALID_PHY_OPTION']) + ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPhyEnumeration [enumeration] + module.add_enum('LrWpanPhyEnumeration', ['IEEE_802_15_4_PHY_BUSY', 'IEEE_802_15_4_PHY_BUSY_RX', 'IEEE_802_15_4_PHY_BUSY_TX', 'IEEE_802_15_4_PHY_FORCE_TRX_OFF', 'IEEE_802_15_4_PHY_IDLE', 'IEEE_802_15_4_PHY_INVALID_PARAMETER', 'IEEE_802_15_4_PHY_RX_ON', 'IEEE_802_15_4_PHY_SUCCESS', 'IEEE_802_15_4_PHY_TRX_OFF', 'IEEE_802_15_4_PHY_TX_ON', 'IEEE_802_15_4_PHY_UNSUPPORTED_ATTRIBUTE', 'IEEE_802_15_4_PHY_READ_ONLY', 'IEEE_802_15_4_PHY_UNSPECIFIED']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanTxOption [enumeration] module.add_enum('LrWpanTxOption', ['TX_OPTION_NONE', 'TX_OPTION_ACK', 'TX_OPTION_GTS', 'TX_OPTION_INDIRECT']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanMcpsDataConfirmStatus [enumeration] module.add_enum('LrWpanMcpsDataConfirmStatus', ['IEEE_802_15_4_SUCCESS', 'IEEE_802_15_4_TRANSACTION_OVERFLOW', 'IEEE_802_15_4_TRANSACTION_EXPIRED', 'IEEE_802_15_4_CHANNEL_ACCESS_FAILURE', 'IEEE_802_15_4_INVALID_ADDRESS', 'IEEE_802_15_4_INVALID_GTS', 'IEEE_802_15_4_NO_ACK', 'IEEE_802_15_4_COUNTER_ERROR', 'IEEE_802_15_4_FRAME_TOO_LONG', 'IEEE_802_15_4_UNAVAILABLE_KEY', 'IEEE_802_15_4_UNSUPPORTED_SECURITY', 'IEEE_802_15_4_INVALID_PARAMETER']) - ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPhyEnumeration [enumeration] - module.add_enum('LrWpanPhyEnumeration', ['IEEE_802_15_4_PHY_BUSY', 'IEEE_802_15_4_PHY_BUSY_RX', 'IEEE_802_15_4_PHY_BUSY_TX', 'IEEE_802_15_4_PHY_FORCE_TRX_OFF', 'IEEE_802_15_4_PHY_IDLE', 'IEEE_802_15_4_PHY_INVALID_PARAMETER', 'IEEE_802_15_4_PHY_RX_ON', 'IEEE_802_15_4_PHY_SUCCESS', 'IEEE_802_15_4_PHY_TRX_OFF', 'IEEE_802_15_4_PHY_TX_ON', 'IEEE_802_15_4_PHY_UNSUPPORTED_ATTRIBUTE', 'IEEE_802_15_4_PHY_READ_ONLY', 'IEEE_802_15_4_PHY_UNSPECIFIED']) ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPibAttributeIdentifier [enumeration] module.add_enum('LrWpanPibAttributeIdentifier', ['phyCurrentChannel', 'phyChannelsSupported', 'phyTransmitPower', 'phyCCAMode', 'phyCurrentPage', 'phyMaxFrameDuration', 'phySHRDuration', 'phySymbolsPerOctet']) - ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanAssociationStatus [enumeration] - module.add_enum('LrWpanAssociationStatus', ['ASSOCIATED', 'PAN_AT_CAPACITY', 'PAN_ACCESS_DENIED', 'ASSOCIATED_WITHOUT_ADDRESS', 'DISASSOCIATED']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanMacState [enumeration] module.add_enum('LrWpanMacState', ['MAC_IDLE', 'MAC_CSMA', 'MAC_SENDING', 'MAC_ACK_PENDING', 'CHANNEL_ACCESS_FAILURE', 'CHANNEL_IDLE', 'SET_PHY_TX_ON']) + ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPhyOption [enumeration] + module.add_enum('LrWpanPhyOption', ['IEEE_802_15_4_868MHZ_BPSK', 'IEEE_802_15_4_915MHZ_BPSK', 'IEEE_802_15_4_868MHZ_ASK', 'IEEE_802_15_4_915MHZ_ASK', 'IEEE_802_15_4_868MHZ_OQPSK', 'IEEE_802_15_4_915MHZ_OQPSK', 'IEEE_802_15_4_2_4GHZ_OQPSK', 'IEEE_802_15_4_INVALID_PHY_OPTION']) + ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanAssociationStatus [enumeration] + module.add_enum('LrWpanAssociationStatus', ['ASSOCIATED', 'PAN_AT_CAPACITY', 'PAN_ACCESS_DENIED', 'ASSOCIATED_WITHOUT_ADDRESS', 'DISASSOCIATED']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanAddressMode [enumeration] module.add_enum('LrWpanAddressMode', ['NO_PANID_ADDR', 'ADDR_MODE_RESERVED', 'SHORT_ADDR', 'EXT_ADDR']) ## address.h (module 'network'): ns3::Address [class] @@ -1737,10 +1737,10 @@ def register_Ns3Ipv6Prefix_methods(root_module, cls): return def register_Ns3LrWpanEdPower_methods(root_module, cls): - ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanEdPower::LrWpanEdPower() [constructor] - cls.add_constructor([]) ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanEdPower::LrWpanEdPower(ns3::LrWpanEdPower const & arg0) [copy constructor] cls.add_constructor([param('ns3::LrWpanEdPower const &', 'arg0')]) + ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanEdPower::LrWpanEdPower() [constructor] + cls.add_constructor([]) ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanEdPower::averagePower [variable] cls.add_instance_attribute('averagePower', 'double', is_const=False) ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanEdPower::lastUpdate [variable] @@ -3622,6 +3622,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/lr-wpan/bindings/modulegen__gcc_LP64.py b/src/lr-wpan/bindings/modulegen__gcc_LP64.py index 5687d0ad5e3..4d55dc9560f 100644 --- a/src/lr-wpan/bindings/modulegen__gcc_LP64.py +++ b/src/lr-wpan/bindings/modulegen__gcc_LP64.py @@ -20,22 +20,22 @@ def module_init(): def register_types(module): root_module = module.get_root() - ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPibAttributeIdentifier [enumeration] - module.add_enum('LrWpanPibAttributeIdentifier', ['phyCurrentChannel', 'phyChannelsSupported', 'phyTransmitPower', 'phyCCAMode', 'phyCurrentPage', 'phyMaxFrameDuration', 'phySHRDuration', 'phySymbolsPerOctet']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanTxOption [enumeration] module.add_enum('LrWpanTxOption', ['TX_OPTION_NONE', 'TX_OPTION_ACK', 'TX_OPTION_GTS', 'TX_OPTION_INDIRECT']) ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPhyOption [enumeration] module.add_enum('LrWpanPhyOption', ['IEEE_802_15_4_868MHZ_BPSK', 'IEEE_802_15_4_915MHZ_BPSK', 'IEEE_802_15_4_868MHZ_ASK', 'IEEE_802_15_4_915MHZ_ASK', 'IEEE_802_15_4_868MHZ_OQPSK', 'IEEE_802_15_4_915MHZ_OQPSK', 'IEEE_802_15_4_2_4GHZ_OQPSK', 'IEEE_802_15_4_INVALID_PHY_OPTION']) - ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanMcpsDataConfirmStatus [enumeration] - module.add_enum('LrWpanMcpsDataConfirmStatus', ['IEEE_802_15_4_SUCCESS', 'IEEE_802_15_4_TRANSACTION_OVERFLOW', 'IEEE_802_15_4_TRANSACTION_EXPIRED', 'IEEE_802_15_4_CHANNEL_ACCESS_FAILURE', 'IEEE_802_15_4_INVALID_ADDRESS', 'IEEE_802_15_4_INVALID_GTS', 'IEEE_802_15_4_NO_ACK', 'IEEE_802_15_4_COUNTER_ERROR', 'IEEE_802_15_4_FRAME_TOO_LONG', 'IEEE_802_15_4_UNAVAILABLE_KEY', 'IEEE_802_15_4_UNSUPPORTED_SECURITY', 'IEEE_802_15_4_INVALID_PARAMETER']) ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPhyEnumeration [enumeration] module.add_enum('LrWpanPhyEnumeration', ['IEEE_802_15_4_PHY_BUSY', 'IEEE_802_15_4_PHY_BUSY_RX', 'IEEE_802_15_4_PHY_BUSY_TX', 'IEEE_802_15_4_PHY_FORCE_TRX_OFF', 'IEEE_802_15_4_PHY_IDLE', 'IEEE_802_15_4_PHY_INVALID_PARAMETER', 'IEEE_802_15_4_PHY_RX_ON', 'IEEE_802_15_4_PHY_SUCCESS', 'IEEE_802_15_4_PHY_TRX_OFF', 'IEEE_802_15_4_PHY_TX_ON', 'IEEE_802_15_4_PHY_UNSUPPORTED_ATTRIBUTE', 'IEEE_802_15_4_PHY_READ_ONLY', 'IEEE_802_15_4_PHY_UNSPECIFIED']) - ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanAddressMode [enumeration] - module.add_enum('LrWpanAddressMode', ['NO_PANID_ADDR', 'ADDR_MODE_RESERVED', 'SHORT_ADDR', 'EXT_ADDR']) + ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanMcpsDataConfirmStatus [enumeration] + module.add_enum('LrWpanMcpsDataConfirmStatus', ['IEEE_802_15_4_SUCCESS', 'IEEE_802_15_4_TRANSACTION_OVERFLOW', 'IEEE_802_15_4_TRANSACTION_EXPIRED', 'IEEE_802_15_4_CHANNEL_ACCESS_FAILURE', 'IEEE_802_15_4_INVALID_ADDRESS', 'IEEE_802_15_4_INVALID_GTS', 'IEEE_802_15_4_NO_ACK', 'IEEE_802_15_4_COUNTER_ERROR', 'IEEE_802_15_4_FRAME_TOO_LONG', 'IEEE_802_15_4_UNAVAILABLE_KEY', 'IEEE_802_15_4_UNSUPPORTED_SECURITY', 'IEEE_802_15_4_INVALID_PARAMETER']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanAssociationStatus [enumeration] module.add_enum('LrWpanAssociationStatus', ['ASSOCIATED', 'PAN_AT_CAPACITY', 'PAN_ACCESS_DENIED', 'ASSOCIATED_WITHOUT_ADDRESS', 'DISASSOCIATED']) + ## lr-wpan-phy.h (module 'lr-wpan'): ns3::LrWpanPibAttributeIdentifier [enumeration] + module.add_enum('LrWpanPibAttributeIdentifier', ['phyCurrentChannel', 'phyChannelsSupported', 'phyTransmitPower', 'phyCCAMode', 'phyCurrentPage', 'phyMaxFrameDuration', 'phySHRDuration', 'phySymbolsPerOctet']) ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanMacState [enumeration] module.add_enum('LrWpanMacState', ['MAC_IDLE', 'MAC_CSMA', 'MAC_SENDING', 'MAC_ACK_PENDING', 'CHANNEL_ACCESS_FAILURE', 'CHANNEL_IDLE', 'SET_PHY_TX_ON']) + ## lr-wpan-mac.h (module 'lr-wpan'): ns3::LrWpanAddressMode [enumeration] + module.add_enum('LrWpanAddressMode', ['NO_PANID_ADDR', 'ADDR_MODE_RESERVED', 'SHORT_ADDR', 'EXT_ADDR']) ## 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] @@ -3622,6 +3622,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/lte/bindings/modulegen__gcc_ILP32.py b/src/lte/bindings/modulegen__gcc_ILP32.py index 2f1db8a74fa..0cfaf7a5360 100644 --- a/src/lte/bindings/modulegen__gcc_ILP32.py +++ b/src/lte/bindings/modulegen__gcc_ILP32.py @@ -1398,6 +1398,9 @@ def register_types(module): module.add_container('std::map< unsigned int, unsigned int >', ('unsigned int', 'unsigned int'), container_type=u'map') module.add_container('std::list< ns3::Ptr< ns3::LteControlMessage > >', 'ns3::Ptr< ns3::LteControlMessage >', container_type=u'list') module.add_container('std::list< ns3::UlDciLteControlMessage >', 'ns3::UlDciLteControlMessage', container_type=u'list') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >', u'ns3::Uint32Map') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >*', u'ns3::Uint32Map*') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >&', u'ns3::Uint32Map&') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned long long, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned long long > > >', u'ns3::Uint64Map') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned long long, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned long long > > >*', u'ns3::Uint64Map*') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned long long, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned long long > > >&', u'ns3::Uint64Map&') @@ -1475,18 +1478,21 @@ def register_types(module): typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >', u'ns3::DoubleMap') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >*', u'ns3::DoubleMap*') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >&', u'ns3::DoubleMap&') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >', u'ns3::Uint32Map') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >*', u'ns3::Uint32Map*') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >&', u'ns3::Uint32Map&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::UlInfoListElement_s, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::LtePhyUlHarqFeedbackCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::UlInfoListElement_s, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::LtePhyUlHarqFeedbackCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::UlInfoListElement_s, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::LtePhyUlHarqFeedbackCallback&') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > > > > >', u'ns3::Uint64StatsMap') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > > > > >*', u'ns3::Uint64StatsMap*') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > > > > >&', u'ns3::Uint64StatsMap&') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >', u'ns3::RlcPduList_t') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >*', u'ns3::RlcPduList_t*') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >&', u'ns3::RlcPduList_t&') typehandlers.add_type_alias(u'std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >', u'ns3::DlHarqProcessesDciBuffer_t') typehandlers.add_type_alias(u'std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >*', u'ns3::DlHarqProcessesDciBuffer_t*') typehandlers.add_type_alias(u'std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >&', u'ns3::DlHarqProcessesDciBuffer_t&') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >', u'ns3::FlowIdMap') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >*', u'ns3::FlowIdMap*') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >&', u'ns3::FlowIdMap&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::SpectrumValue const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::LteChunkProcessorCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::SpectrumValue const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::LteChunkProcessorCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::SpectrumValue const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::LteChunkProcessorCallback&') @@ -1497,9 +1503,6 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >', u'ns3::DlHarqProcessesTimer_t') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >*', u'ns3::DlHarqProcessesTimer_t*') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >&', u'ns3::DlHarqProcessesTimer_t&') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >', u'ns3::FlowIdMap') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >*', u'ns3::FlowIdMap*') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >&', u'ns3::FlowIdMap&') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > > > > >', u'ns3::Uint32StatsMap') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > > > > >*', u'ns3::Uint32StatsMap*') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > > > > >&', u'ns3::Uint32StatsMap&') @@ -1509,9 +1512,6 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > >, std::allocator< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > > > >', u'ns3::DlHarqProcessesBuffer_t') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > >, std::allocator< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > > > >*', u'ns3::DlHarqProcessesBuffer_t*') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > >, std::allocator< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > > > >&', u'ns3::DlHarqProcessesBuffer_t&') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > > > > >', u'ns3::Uint64StatsMap') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > > > > >*', u'ns3::Uint64StatsMap*') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long long > > > > >&', u'ns3::Uint64StatsMap&') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >', u'ns3::UlHarqProcessesStatus_t') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >*', u'ns3::UlHarqProcessesStatus_t*') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >&', u'ns3::UlHarqProcessesStatus_t&') @@ -8955,8 +8955,8 @@ def register_Ns3FdtbfqsFlowPerf_t_methods(root_module, cls): return def register_Ns3Int64x64_t_methods(root_module, cls): - cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') + cls.add_binary_comparison_operator('<=') cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) @@ -10023,6 +10023,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') @@ -11488,8 +11493,8 @@ def register_Ns3SpectrumValue_methods(root_module, cls): return def register_Ns3Time_methods(root_module, cls): - cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') + cls.add_binary_comparison_operator('<=') cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right')) cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) diff --git a/src/lte/bindings/modulegen__gcc_LP64.py b/src/lte/bindings/modulegen__gcc_LP64.py index bd9683a5249..8b4c5bf1988 100644 --- a/src/lte/bindings/modulegen__gcc_LP64.py +++ b/src/lte/bindings/modulegen__gcc_LP64.py @@ -1398,6 +1398,9 @@ def register_types(module): module.add_container('std::map< unsigned int, unsigned int >', ('unsigned int', 'unsigned int'), container_type=u'map') module.add_container('std::list< ns3::Ptr< ns3::LteControlMessage > >', 'ns3::Ptr< ns3::LteControlMessage >', container_type=u'list') module.add_container('std::list< ns3::UlDciLteControlMessage >', 'ns3::UlDciLteControlMessage', container_type=u'list') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >', u'ns3::Uint32Map') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >*', u'ns3::Uint32Map*') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >&', u'ns3::Uint32Map&') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned long, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned long > > >', u'ns3::Uint64Map') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned long, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned long > > >*', u'ns3::Uint64Map*') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned long, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned long > > >&', u'ns3::Uint64Map&') @@ -1475,18 +1478,21 @@ def register_types(module): typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >', u'ns3::DoubleMap') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >*', u'ns3::DoubleMap*') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >&', u'ns3::DoubleMap&') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >', u'ns3::Uint32Map') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >*', u'ns3::Uint32Map*') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >&', u'ns3::Uint32Map&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::UlInfoListElement_s, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::LtePhyUlHarqFeedbackCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::UlInfoListElement_s, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::LtePhyUlHarqFeedbackCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::UlInfoListElement_s, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::LtePhyUlHarqFeedbackCallback&') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > > > > >', u'ns3::Uint64StatsMap') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > > > > >*', u'ns3::Uint64StatsMap*') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > > > > >&', u'ns3::Uint64StatsMap&') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >', u'ns3::RlcPduList_t') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >*', u'ns3::RlcPduList_t*') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >&', u'ns3::RlcPduList_t&') typehandlers.add_type_alias(u'std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >', u'ns3::DlHarqProcessesDciBuffer_t') typehandlers.add_type_alias(u'std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >*', u'ns3::DlHarqProcessesDciBuffer_t*') typehandlers.add_type_alias(u'std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >&', u'ns3::DlHarqProcessesDciBuffer_t&') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >', u'ns3::FlowIdMap') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >*', u'ns3::FlowIdMap*') + typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >&', u'ns3::FlowIdMap&') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::SpectrumValue const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::LteChunkProcessorCallback') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::SpectrumValue const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', u'ns3::LteChunkProcessorCallback*') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::SpectrumValue const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', u'ns3::LteChunkProcessorCallback&') @@ -1497,9 +1503,6 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >', u'ns3::DlHarqProcessesTimer_t') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >*', u'ns3::DlHarqProcessesTimer_t*') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >&', u'ns3::DlHarqProcessesTimer_t&') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >', u'ns3::FlowIdMap') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >*', u'ns3::FlowIdMap*') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::LteFlowId_t, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::LteFlowId_t > > >&', u'ns3::FlowIdMap&') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > > > > >', u'ns3::Uint32StatsMap') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > > > > >*', u'ns3::Uint32StatsMap*') typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned int > > > > >&', u'ns3::Uint32StatsMap&') @@ -1509,9 +1512,6 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > >, std::allocator< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > > > >', u'ns3::DlHarqProcessesBuffer_t') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > >, std::allocator< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > > > >*', u'ns3::DlHarqProcessesBuffer_t*') typehandlers.add_type_alias(u'std::vector< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > >, std::allocator< std::vector< ns3::Ptr< ns3::PacketBurst >, std::allocator< ns3::Ptr< ns3::PacketBurst > > > > >&', u'ns3::DlHarqProcessesBuffer_t&') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > > > > >', u'ns3::Uint64StatsMap') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > > > > >*', u'ns3::Uint64StatsMap*') - typehandlers.add_type_alias(u'std::map< ns3::ImsiLcidPair_t, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > >, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, ns3::Ptr< ns3::MinMaxAvgTotalCalculator< unsigned long > > > > >&', u'ns3::Uint64StatsMap&') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >', u'ns3::UlHarqProcessesStatus_t') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >*', u'ns3::UlHarqProcessesStatus_t*') typehandlers.add_type_alias(u'std::vector< unsigned char, std::allocator< unsigned char > >&', u'ns3::UlHarqProcessesStatus_t&') @@ -8955,8 +8955,8 @@ def register_Ns3FdtbfqsFlowPerf_t_methods(root_module, cls): return def register_Ns3Int64x64_t_methods(root_module, cls): - cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') + cls.add_binary_comparison_operator('<=') cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) @@ -10023,6 +10023,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') @@ -11488,8 +11493,8 @@ def register_Ns3SpectrumValue_methods(root_module, cls): return def register_Ns3Time_methods(root_module, cls): - cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') + cls.add_binary_comparison_operator('<=') cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right')) cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) diff --git a/src/mesh/bindings/modulegen__gcc_ILP32.py b/src/mesh/bindings/modulegen__gcc_ILP32.py index 1968332acc1..8b5ee9887c9 100644 --- a/src/mesh/bindings/modulegen__gcc_ILP32.py +++ b/src/mesh/bindings/modulegen__gcc_ILP32.py @@ -4758,6 +4758,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/mesh/bindings/modulegen__gcc_LP64.py b/src/mesh/bindings/modulegen__gcc_LP64.py index e24a63481c9..5ba07fca9d1 100644 --- a/src/mesh/bindings/modulegen__gcc_LP64.py +++ b/src/mesh/bindings/modulegen__gcc_LP64.py @@ -4758,6 +4758,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/mobility/bindings/modulegen__gcc_ILP32.py b/src/mobility/bindings/modulegen__gcc_ILP32.py index 0af20a4b614..e6f5bcb107b 100644 --- a/src/mobility/bindings/modulegen__gcc_ILP32.py +++ b/src/mobility/bindings/modulegen__gcc_ILP32.py @@ -1958,6 +1958,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/mobility/bindings/modulegen__gcc_LP64.py b/src/mobility/bindings/modulegen__gcc_LP64.py index 0af20a4b614..e6f5bcb107b 100644 --- a/src/mobility/bindings/modulegen__gcc_LP64.py +++ b/src/mobility/bindings/modulegen__gcc_LP64.py @@ -1958,6 +1958,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/mpi/bindings/modulegen__gcc_ILP32.py b/src/mpi/bindings/modulegen__gcc_ILP32.py index bcbf34f0e37..277161033c6 100644 --- a/src/mpi/bindings/modulegen__gcc_ILP32.py +++ b/src/mpi/bindings/modulegen__gcc_ILP32.py @@ -2175,6 +2175,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/mpi/bindings/modulegen__gcc_LP64.py b/src/mpi/bindings/modulegen__gcc_LP64.py index bcbf34f0e37..277161033c6 100644 --- a/src/mpi/bindings/modulegen__gcc_LP64.py +++ b/src/mpi/bindings/modulegen__gcc_LP64.py @@ -2175,6 +2175,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/network/bindings/modulegen__gcc_ILP32.py b/src/network/bindings/modulegen__gcc_ILP32.py index e8f8c9320f1..fe6e47a6056 100644 --- a/src/network/bindings/modulegen__gcc_ILP32.py +++ b/src/network/bindings/modulegen__gcc_ILP32.py @@ -843,8 +843,8 @@ def register_methods(root_module): def register_Ns3Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## address.h (module 'network'): ns3::Address::Address() [constructor] cls.add_constructor([]) @@ -1817,8 +1817,8 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): def register_Ns3Ipv4Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## ipv4-address.h (module 'network'): ns3::Ipv4Address::Ipv4Address(ns3::Ipv4Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Ipv4Address const &', 'arg0')]) @@ -1998,8 +1998,8 @@ def register_Ns3Ipv4Mask_methods(root_module, cls): def register_Ns3Ipv6Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## ipv6-address.h (module 'network'): ns3::Ipv6Address::Ipv6Address() [constructor] cls.add_constructor([]) @@ -2255,8 +2255,8 @@ def register_Ns3Ipv6Prefix_methods(root_module, cls): def register_Ns3Mac16Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## mac16-address.h (module 'network'): ns3::Mac16Address::Mac16Address(ns3::Mac16Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac16Address const &', 'arg0')]) @@ -2292,8 +2292,8 @@ def register_Ns3Mac16Address_methods(root_module, cls): def register_Ns3Mac48Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## mac48-address.h (module 'network'): ns3::Mac48Address::Mac48Address(ns3::Mac48Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac48Address const &', 'arg0')]) @@ -2364,8 +2364,8 @@ def register_Ns3Mac48Address_methods(root_module, cls): def register_Ns3Mac64Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## mac64-address.h (module 'network'): ns3::Mac64Address::Mac64Address(ns3::Mac64Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac64Address const &', 'arg0')]) @@ -3679,8 +3679,8 @@ def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): def register_Ns3TypeId_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## type-id.h (module 'core'): ns3::TypeId::TypeId(char const * name) [constructor] cls.add_constructor([param('char const *', 'name')]) @@ -3898,7 +3898,6 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) @@ -3909,6 +3908,7 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor] @@ -4190,6 +4190,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') @@ -5715,7 +5720,6 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) @@ -5723,6 +5727,7 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('>') cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## nstime.h (module 'core'): ns3::Time::Time() [constructor] diff --git a/src/network/bindings/modulegen__gcc_LP64.py b/src/network/bindings/modulegen__gcc_LP64.py index e8f8c9320f1..fe6e47a6056 100644 --- a/src/network/bindings/modulegen__gcc_LP64.py +++ b/src/network/bindings/modulegen__gcc_LP64.py @@ -843,8 +843,8 @@ def register_methods(root_module): def register_Ns3Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## address.h (module 'network'): ns3::Address::Address() [constructor] cls.add_constructor([]) @@ -1817,8 +1817,8 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): def register_Ns3Ipv4Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## ipv4-address.h (module 'network'): ns3::Ipv4Address::Ipv4Address(ns3::Ipv4Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Ipv4Address const &', 'arg0')]) @@ -1998,8 +1998,8 @@ def register_Ns3Ipv4Mask_methods(root_module, cls): def register_Ns3Ipv6Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## ipv6-address.h (module 'network'): ns3::Ipv6Address::Ipv6Address() [constructor] cls.add_constructor([]) @@ -2255,8 +2255,8 @@ def register_Ns3Ipv6Prefix_methods(root_module, cls): def register_Ns3Mac16Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## mac16-address.h (module 'network'): ns3::Mac16Address::Mac16Address(ns3::Mac16Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac16Address const &', 'arg0')]) @@ -2292,8 +2292,8 @@ def register_Ns3Mac16Address_methods(root_module, cls): def register_Ns3Mac48Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## mac48-address.h (module 'network'): ns3::Mac48Address::Mac48Address(ns3::Mac48Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac48Address const &', 'arg0')]) @@ -2364,8 +2364,8 @@ def register_Ns3Mac48Address_methods(root_module, cls): def register_Ns3Mac64Address_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## mac64-address.h (module 'network'): ns3::Mac64Address::Mac64Address(ns3::Mac64Address const & arg0) [copy constructor] cls.add_constructor([param('ns3::Mac64Address const &', 'arg0')]) @@ -3679,8 +3679,8 @@ def register_Ns3TracedValue__Unsigned_int_methods(root_module, cls): def register_Ns3TypeId_methods(root_module, cls): cls.add_binary_comparison_operator('!=') - cls.add_output_stream_operator() cls.add_binary_comparison_operator('<') + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') ## type-id.h (module 'core'): ns3::TypeId::TypeId(char const * name) [constructor] cls.add_constructor([param('char const *', 'name')]) @@ -3898,7 +3898,6 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('ns3::int64x64_t const &', u'right')) @@ -3909,6 +3908,7 @@ def register_Ns3Int64x64_t_methods(root_module, cls): cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', u'right')) cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor] @@ -4190,6 +4190,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') @@ -5715,7 +5720,6 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<=') cls.add_binary_comparison_operator('!=') cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', u'right')) - cls.add_output_stream_operator() cls.add_binary_numeric_operator('*', root_module['ns3::Time'], root_module['ns3::Time'], param('int64_t const &', u'right')) cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', u'right')) @@ -5723,6 +5727,7 @@ def register_Ns3Time_methods(root_module, cls): cls.add_binary_comparison_operator('<') cls.add_binary_comparison_operator('>') cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', u'right')) + cls.add_output_stream_operator() cls.add_binary_comparison_operator('==') cls.add_binary_comparison_operator('>=') ## nstime.h (module 'core'): ns3::Time::Time() [constructor] diff --git a/src/nix-vector-routing/bindings/modulegen__gcc_ILP32.py b/src/nix-vector-routing/bindings/modulegen__gcc_ILP32.py index dc79fc7fccf..7f84d260a50 100644 --- a/src/nix-vector-routing/bindings/modulegen__gcc_ILP32.py +++ b/src/nix-vector-routing/bindings/modulegen__gcc_ILP32.py @@ -2947,6 +2947,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/nix-vector-routing/bindings/modulegen__gcc_LP64.py b/src/nix-vector-routing/bindings/modulegen__gcc_LP64.py index dc79fc7fccf..7f84d260a50 100644 --- a/src/nix-vector-routing/bindings/modulegen__gcc_LP64.py +++ b/src/nix-vector-routing/bindings/modulegen__gcc_LP64.py @@ -2947,6 +2947,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/olsr/bindings/modulegen__gcc_ILP32.py b/src/olsr/bindings/modulegen__gcc_ILP32.py index 9412cbecdaa..b39058e82cf 100644 --- a/src/olsr/bindings/modulegen__gcc_ILP32.py +++ b/src/olsr/bindings/modulegen__gcc_ILP32.py @@ -3265,6 +3265,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/olsr/bindings/modulegen__gcc_LP64.py b/src/olsr/bindings/modulegen__gcc_LP64.py index 9412cbecdaa..b39058e82cf 100644 --- a/src/olsr/bindings/modulegen__gcc_LP64.py +++ b/src/olsr/bindings/modulegen__gcc_LP64.py @@ -3265,6 +3265,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/point-to-point-layout/bindings/modulegen__gcc_ILP32.py b/src/point-to-point-layout/bindings/modulegen__gcc_ILP32.py index 5e36dbcb0ec..4d735c85d37 100644 --- a/src/point-to-point-layout/bindings/modulegen__gcc_ILP32.py +++ b/src/point-to-point-layout/bindings/modulegen__gcc_ILP32.py @@ -4021,6 +4021,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/point-to-point-layout/bindings/modulegen__gcc_LP64.py b/src/point-to-point-layout/bindings/modulegen__gcc_LP64.py index 5e36dbcb0ec..4d735c85d37 100644 --- a/src/point-to-point-layout/bindings/modulegen__gcc_LP64.py +++ b/src/point-to-point-layout/bindings/modulegen__gcc_LP64.py @@ -4021,6 +4021,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/point-to-point/bindings/modulegen__gcc_ILP32.py b/src/point-to-point/bindings/modulegen__gcc_ILP32.py index a4bbee5edd4..de8dcbf0b33 100644 --- a/src/point-to-point/bindings/modulegen__gcc_ILP32.py +++ b/src/point-to-point/bindings/modulegen__gcc_ILP32.py @@ -2975,6 +2975,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/point-to-point/bindings/modulegen__gcc_LP64.py b/src/point-to-point/bindings/modulegen__gcc_LP64.py index a4bbee5edd4..de8dcbf0b33 100644 --- a/src/point-to-point/bindings/modulegen__gcc_LP64.py +++ b/src/point-to-point/bindings/modulegen__gcc_LP64.py @@ -2975,6 +2975,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/propagation/bindings/modulegen__gcc_ILP32.py b/src/propagation/bindings/modulegen__gcc_ILP32.py index 805b54da3d4..adf44ea61fd 100644 --- a/src/propagation/bindings/modulegen__gcc_ILP32.py +++ b/src/propagation/bindings/modulegen__gcc_ILP32.py @@ -873,6 +873,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/propagation/bindings/modulegen__gcc_LP64.py b/src/propagation/bindings/modulegen__gcc_LP64.py index 805b54da3d4..adf44ea61fd 100644 --- a/src/propagation/bindings/modulegen__gcc_LP64.py +++ b/src/propagation/bindings/modulegen__gcc_LP64.py @@ -873,6 +873,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/sixlowpan/bindings/modulegen__gcc_ILP32.py b/src/sixlowpan/bindings/modulegen__gcc_ILP32.py index c907676bc7a..b20e3a1e8d0 100644 --- a/src/sixlowpan/bindings/modulegen__gcc_ILP32.py +++ b/src/sixlowpan/bindings/modulegen__gcc_ILP32.py @@ -2506,6 +2506,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/sixlowpan/bindings/modulegen__gcc_LP64.py b/src/sixlowpan/bindings/modulegen__gcc_LP64.py index c907676bc7a..b20e3a1e8d0 100644 --- a/src/sixlowpan/bindings/modulegen__gcc_LP64.py +++ b/src/sixlowpan/bindings/modulegen__gcc_LP64.py @@ -2506,6 +2506,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/spectrum/bindings/modulegen__gcc_ILP32.py b/src/spectrum/bindings/modulegen__gcc_ILP32.py index 22f9b0e600e..e71f75dbe4a 100644 --- a/src/spectrum/bindings/modulegen__gcc_ILP32.py +++ b/src/spectrum/bindings/modulegen__gcc_ILP32.py @@ -3280,6 +3280,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/spectrum/bindings/modulegen__gcc_LP64.py b/src/spectrum/bindings/modulegen__gcc_LP64.py index 22f9b0e600e..e71f75dbe4a 100644 --- a/src/spectrum/bindings/modulegen__gcc_LP64.py +++ b/src/spectrum/bindings/modulegen__gcc_LP64.py @@ -3280,6 +3280,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/stats/bindings/modulegen__gcc_ILP32.py b/src/stats/bindings/modulegen__gcc_ILP32.py index 17c8cc1c36d..b4126cc58d4 100644 --- a/src/stats/bindings/modulegen__gcc_ILP32.py +++ b/src/stats/bindings/modulegen__gcc_ILP32.py @@ -1593,6 +1593,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/stats/bindings/modulegen__gcc_LP64.py b/src/stats/bindings/modulegen__gcc_LP64.py index 17c8cc1c36d..b4126cc58d4 100644 --- a/src/stats/bindings/modulegen__gcc_LP64.py +++ b/src/stats/bindings/modulegen__gcc_LP64.py @@ -1593,6 +1593,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/tap-bridge/bindings/modulegen__gcc_ILP32.py b/src/tap-bridge/bindings/modulegen__gcc_ILP32.py index 90b40ae8c61..1113fa45fed 100644 --- a/src/tap-bridge/bindings/modulegen__gcc_ILP32.py +++ b/src/tap-bridge/bindings/modulegen__gcc_ILP32.py @@ -2357,6 +2357,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/tap-bridge/bindings/modulegen__gcc_LP64.py b/src/tap-bridge/bindings/modulegen__gcc_LP64.py index bfcadfa4ac2..702e56b5d7d 100644 --- a/src/tap-bridge/bindings/modulegen__gcc_LP64.py +++ b/src/tap-bridge/bindings/modulegen__gcc_LP64.py @@ -2357,6 +2357,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/topology-read/bindings/modulegen__gcc_ILP32.py b/src/topology-read/bindings/modulegen__gcc_ILP32.py index 1a9359d9a6f..e373f5991f5 100644 --- a/src/topology-read/bindings/modulegen__gcc_ILP32.py +++ b/src/topology-read/bindings/modulegen__gcc_ILP32.py @@ -1435,6 +1435,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/topology-read/bindings/modulegen__gcc_LP64.py b/src/topology-read/bindings/modulegen__gcc_LP64.py index 1a9359d9a6f..e373f5991f5 100644 --- a/src/topology-read/bindings/modulegen__gcc_LP64.py +++ b/src/topology-read/bindings/modulegen__gcc_LP64.py @@ -1435,6 +1435,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/traffic-control/bindings/modulegen__gcc_ILP32.py b/src/traffic-control/bindings/modulegen__gcc_ILP32.py index fe525cd1dfe..ac8a301d52d 100644 --- a/src/traffic-control/bindings/modulegen__gcc_ILP32.py +++ b/src/traffic-control/bindings/modulegen__gcc_ILP32.py @@ -2737,6 +2737,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/traffic-control/bindings/modulegen__gcc_LP64.py b/src/traffic-control/bindings/modulegen__gcc_LP64.py index fe525cd1dfe..ac8a301d52d 100644 --- a/src/traffic-control/bindings/modulegen__gcc_LP64.py +++ b/src/traffic-control/bindings/modulegen__gcc_LP64.py @@ -2737,6 +2737,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/uan/bindings/modulegen__gcc_ILP32.py b/src/uan/bindings/modulegen__gcc_ILP32.py index 64431bfd44b..829ce3dadda 100644 --- a/src/uan/bindings/modulegen__gcc_ILP32.py +++ b/src/uan/bindings/modulegen__gcc_ILP32.py @@ -3345,6 +3345,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/uan/bindings/modulegen__gcc_LP64.py b/src/uan/bindings/modulegen__gcc_LP64.py index 64431bfd44b..829ce3dadda 100644 --- a/src/uan/bindings/modulegen__gcc_LP64.py +++ b/src/uan/bindings/modulegen__gcc_LP64.py @@ -3345,6 +3345,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/virtual-net-device/bindings/modulegen__gcc_ILP32.py b/src/virtual-net-device/bindings/modulegen__gcc_ILP32.py index 7a394b79f04..2132e97fb87 100644 --- a/src/virtual-net-device/bindings/modulegen__gcc_ILP32.py +++ b/src/virtual-net-device/bindings/modulegen__gcc_ILP32.py @@ -2004,6 +2004,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/virtual-net-device/bindings/modulegen__gcc_LP64.py b/src/virtual-net-device/bindings/modulegen__gcc_LP64.py index 7a394b79f04..2132e97fb87 100644 --- a/src/virtual-net-device/bindings/modulegen__gcc_LP64.py +++ b/src/virtual-net-device/bindings/modulegen__gcc_LP64.py @@ -2004,6 +2004,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/visualizer/bindings/modulegen__gcc_ILP32.py b/src/visualizer/bindings/modulegen__gcc_ILP32.py index 7081bdd4d47..015b3737b2b 100644 --- a/src/visualizer/bindings/modulegen__gcc_ILP32.py +++ b/src/visualizer/bindings/modulegen__gcc_ILP32.py @@ -196,6 +196,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -206,6 +208,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -290,6 +294,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -448,6 +454,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1113,6 +1120,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1126,6 +1138,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -2909,6 +2925,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') @@ -3197,6 +3218,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -3222,6 +3248,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -3370,6 +3401,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -3397,11 +3432,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -3648,6 +3678,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -5132,21 +5208,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5551,6 +5627,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/visualizer/bindings/modulegen__gcc_LP64.py b/src/visualizer/bindings/modulegen__gcc_LP64.py index 7081bdd4d47..015b3737b2b 100644 --- a/src/visualizer/bindings/modulegen__gcc_LP64.py +++ b/src/visualizer/bindings/modulegen__gcc_LP64.py @@ -196,6 +196,8 @@ def register_types(module): module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration] module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') + ## socket.h (module 'network'): ns3::Socket::SocketPriority [enumeration] + module.add_enum('SocketPriority', ['NS3_PRIO_BESTEFFORT', 'NS3_PRIO_FILLER', 'NS3_PRIO_BULK', 'NS3_PRIO_INTERACTIVE_BULK', 'NS3_PRIO_INTERACTIVE', 'NS3_PRIO_CONTROL'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::Socket::Ipv6MulticastFilterMode [enumeration] module.add_enum('Ipv6MulticastFilterMode', ['INCLUDE', 'EXCLUDE'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network') ## socket.h (module 'network'): ns3::SocketIpTosTag [class] @@ -206,6 +208,8 @@ def register_types(module): module.add_class('SocketIpv6HopLimitTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) ## socket.h (module 'network'): ns3::SocketIpv6TclassTag [class] module.add_class('SocketIpv6TclassTag', import_from_module='ns.network', parent=root_module['ns3::Tag']) + ## socket.h (module 'network'): ns3::SocketPriorityTag [class] + 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']) ## nstime.h (module 'core'): ns3::Time [class] @@ -290,6 +294,8 @@ def register_types(module): module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) ## net-device.h (module 'network'): ns3::QueueItem [class] module.add_class('QueueItem', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + ## net-device.h (module 'network'): ns3::QueueItem::Uint8Values [enumeration] + module.add_enum('Uint8Values', ['IP_DSFIELD'], outer_class=root_module['ns3::QueueItem'], import_from_module='ns.network') ## 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] @@ -448,6 +454,7 @@ def register_methods(root_module): register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag']) register_Ns3SocketIpv6HopLimitTag_methods(root_module, root_module['ns3::SocketIpv6HopLimitTag']) register_Ns3SocketIpv6TclassTag_methods(root_module, root_module['ns3::SocketIpv6TclassTag']) + register_Ns3SocketPriorityTag_methods(root_module, root_module['ns3::SocketPriorityTag']) register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -1113,6 +1120,11 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): 'uint16_t', [], is_const=True) + ## inet-socket-address.h (module 'network'): uint8_t ns3::InetSocketAddress::GetTos() const [member function] + cls.add_method('GetTos', + 'uint8_t', + [], + is_const=True) ## inet-socket-address.h (module 'network'): static bool ns3::InetSocketAddress::IsMatchingType(ns3::Address const & address) [member function] cls.add_method('IsMatchingType', 'bool', @@ -1126,6 +1138,10 @@ def register_Ns3InetSocketAddress_methods(root_module, cls): cls.add_method('SetPort', 'void', [param('uint16_t', 'port')]) + ## inet-socket-address.h (module 'network'): void ns3::InetSocketAddress::SetTos(uint8_t tos) [member function] + cls.add_method('SetTos', + 'void', + [param('uint8_t', 'tos')]) return def register_Ns3Ipv4Address_methods(root_module, cls): @@ -2909,6 +2925,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') @@ -3197,6 +3218,11 @@ def register_Ns3Socket_methods(root_module, cls): 'int', [param('ns3::Address &', 'address')], is_pure_virtual=True, is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::Socket::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function] cls.add_method('GetRxAvailable', 'uint32_t', @@ -3222,6 +3248,11 @@ def register_Ns3Socket_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## socket.h (module 'network'): static uint8_t ns3::Socket::IpTos2Priority(uint8_t ipTos) [member function] + cls.add_method('IpTos2Priority', + 'uint8_t', + [param('uint8_t', 'ipTos')], + is_static=True) ## socket.h (module 'network'): void ns3::Socket::Ipv6JoinGroup(ns3::Ipv6Address address, ns3::Socket::Ipv6MulticastFilterMode filterMode, std::vector > sourceAddresses) [member function] cls.add_method('Ipv6JoinGroup', 'void', @@ -3370,6 +3401,10 @@ def register_Ns3Socket_methods(root_module, cls): cls.add_method('SetIpv6Tclass', 'void', [param('int', 'ipTclass')]) + ## socket.h (module 'network'): void ns3::Socket::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function] cls.add_method('SetRecvCallback', 'void', @@ -3397,11 +3432,6 @@ def register_Ns3Socket_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTos() const [member function] - cls.add_method('IsManualIpTos', - 'bool', - [], - is_const=True, visibility='protected') ## socket.h (module 'network'): bool ns3::Socket::IsManualIpTtl() const [member function] cls.add_method('IsManualIpTtl', 'bool', @@ -3648,6 +3678,52 @@ def register_Ns3SocketIpv6TclassTag_methods(root_module, cls): [param('uint8_t', 'tclass')]) return +def register_Ns3SocketPriorityTag_methods(root_module, cls): + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag(ns3::SocketPriorityTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SocketPriorityTag const &', 'arg0')]) + ## socket.h (module 'network'): ns3::SocketPriorityTag::SocketPriorityTag() [constructor] + cls.add_constructor([]) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## socket.h (module 'network'): ns3::TypeId ns3::SocketPriorityTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): uint8_t ns3::SocketPriorityTag::GetPriority() const [member function] + cls.add_method('GetPriority', + 'uint8_t', + [], + is_const=True) + ## socket.h (module 'network'): uint32_t ns3::SocketPriorityTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): static ns3::TypeId ns3::SocketPriorityTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + ## socket.h (module 'network'): void ns3::SocketPriorityTag::SetPriority(uint8_t priority) [member function] + cls.add_method('SetPriority', + 'void', + [param('uint8_t', 'priority')]) + return + def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls): ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor] cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')]) @@ -5132,21 +5208,21 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetSelectedQueue(ns3::Ptr item) const [member function] - cls.add_method('GetSelectedQueue', + ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] + cls.add_method('GetNTxQueues', 'uint8_t', - [param('ns3::Ptr< ns3::QueueItem >', 'item')], + [], + is_const=True) + ## net-device.h (module 'network'): ns3::Callback, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> ns3::NetDeviceQueueInterface::GetSelectQueueCallback() const [member function] + cls.add_method('GetSelectQueueCallback', + 'ns3::Callback< unsigned char, ns3::Ptr< ns3::QueueItem >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', + [], is_const=True) ## net-device.h (module 'network'): ns3::Ptr ns3::NetDeviceQueueInterface::GetTxQueue(uint8_t i) const [member function] cls.add_method('GetTxQueue', 'ns3::Ptr< ns3::NetDeviceQueue >', [param('uint8_t', 'i')], is_const=True) - ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetTxQueuesN() const [member function] - cls.add_method('GetTxQueuesN', - 'uint8_t', - [], - is_const=True) ## net-device.h (module 'network'): static ns3::TypeId ns3::NetDeviceQueueInterface::GetTypeId() [member function] cls.add_method('GetTypeId', 'ns3::TypeId', @@ -5551,6 +5627,11 @@ def register_Ns3QueueItem_methods(root_module, cls): 'uint32_t', [], is_const=True, is_virtual=True) + ## net-device.h (module 'network'): bool ns3::QueueItem::GetUint8Value(ns3::QueueItem::Uint8Values field, uint8_t & value) const [member function] + cls.add_method('GetUint8Value', + 'bool', + [param('ns3::QueueItem::Uint8Values', 'field'), param('uint8_t &', 'value')], + is_const=True, is_virtual=True) ## net-device.h (module 'network'): void ns3::QueueItem::Print(std::ostream & os) const [member function] cls.add_method('Print', 'void', diff --git a/src/wave/bindings/modulegen__gcc_ILP32.py b/src/wave/bindings/modulegen__gcc_ILP32.py index 539ea156fec..43de4c00285 100644 --- a/src/wave/bindings/modulegen__gcc_ILP32.py +++ b/src/wave/bindings/modulegen__gcc_ILP32.py @@ -32,18 +32,18 @@ def register_types(module): module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') - ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] - module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], import_from_module='ns.wifi') + ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] + module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') ## channel-scheduler.h (module 'wave'): ns3::ChannelAccess [enumeration] module.add_enum('ChannelAccess', ['ContinuousAccess', 'AlternatingAccess', 'ExtendedAccess', 'DefaultCchAccess', 'NoAccess']) + ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] + module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], import_from_module='ns.wifi') ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation [enumeration] module.add_enum('TypeOfStation', ['STA', 'AP', 'ADHOC_STA', 'MESH', 'HT_STA', 'HT_AP', 'HT_ADHOC_STA', 'OCB'], import_from_module='ns.wifi') ## ctrl-headers.h (module 'wifi'): ns3::BlockAckType [enumeration] module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK'], import_from_module='ns.wifi') ## vsa-manager.h (module 'wave'): ns3::VsaTransmitInterval [enumeration] module.add_enum('VsaTransmitInterval', ['VSA_TRANSMIT_IN_CCHI', 'VSA_TRANSMIT_IN_SCHI', 'VSA_TRANSMIT_IN_BOTHI']) - ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] - module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], 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] @@ -6670,6 +6670,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/wave/bindings/modulegen__gcc_LP64.py b/src/wave/bindings/modulegen__gcc_LP64.py index 539ea156fec..43de4c00285 100644 --- a/src/wave/bindings/modulegen__gcc_LP64.py +++ b/src/wave/bindings/modulegen__gcc_LP64.py @@ -32,18 +32,18 @@ def register_types(module): module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') - ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] - module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], import_from_module='ns.wifi') + ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] + module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') ## channel-scheduler.h (module 'wave'): ns3::ChannelAccess [enumeration] module.add_enum('ChannelAccess', ['ContinuousAccess', 'AlternatingAccess', 'ExtendedAccess', 'DefaultCchAccess', 'NoAccess']) + ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] + module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], import_from_module='ns.wifi') ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation [enumeration] module.add_enum('TypeOfStation', ['STA', 'AP', 'ADHOC_STA', 'MESH', 'HT_STA', 'HT_AP', 'HT_ADHOC_STA', 'OCB'], import_from_module='ns.wifi') ## ctrl-headers.h (module 'wifi'): ns3::BlockAckType [enumeration] module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK'], import_from_module='ns.wifi') ## vsa-manager.h (module 'wave'): ns3::VsaTransmitInterval [enumeration] module.add_enum('VsaTransmitInterval', ['VSA_TRANSMIT_IN_CCHI', 'VSA_TRANSMIT_IN_SCHI', 'VSA_TRANSMIT_IN_BOTHI']) - ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] - module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], 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] @@ -6670,6 +6670,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/wifi/bindings/modulegen__gcc_ILP32.py b/src/wifi/bindings/modulegen__gcc_ILP32.py index 4aaee6ed0a7..e5f3b69985e 100644 --- a/src/wifi/bindings/modulegen__gcc_ILP32.py +++ b/src/wifi/bindings/modulegen__gcc_ILP32.py @@ -6253,6 +6253,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/wifi/bindings/modulegen__gcc_LP64.py b/src/wifi/bindings/modulegen__gcc_LP64.py index 461817991ef..3016b0d39f5 100644 --- a/src/wifi/bindings/modulegen__gcc_LP64.py +++ b/src/wifi/bindings/modulegen__gcc_LP64.py @@ -6253,6 +6253,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/wimax/bindings/modulegen__gcc_ILP32.py b/src/wimax/bindings/modulegen__gcc_ILP32.py index 3ddfbb8effe..38f5cd7a272 100644 --- a/src/wimax/bindings/modulegen__gcc_ILP32.py +++ b/src/wimax/bindings/modulegen__gcc_ILP32.py @@ -5311,6 +5311,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') diff --git a/src/wimax/bindings/modulegen__gcc_LP64.py b/src/wimax/bindings/modulegen__gcc_LP64.py index 64c74f55b68..abe53cd4ff6 100644 --- a/src/wimax/bindings/modulegen__gcc_LP64.py +++ b/src/wimax/bindings/modulegen__gcc_LP64.py @@ -5311,6 +5311,11 @@ def register_Ns3Object_methods(root_module, cls): cls.add_method('Initialize', 'void', []) + ## object.h (module 'core'): bool ns3::Object::IsInitialized() const [member function] + cls.add_method('IsInitialized', + 'bool', + [], + is_const=True) ## object.h (module 'core'): ns3::Object::Object(ns3::Object const & o) [copy constructor] cls.add_constructor([param('ns3::Object const &', 'o')], visibility='protected') From 528a1b81c1b81d4a14c63543236c785bc82212fd Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Wed, 20 Jul 2016 21:52:49 -0700 Subject: [PATCH 10/27] wifi: (fixes #2412) Align WifiPhy frequency and channel number --- CHANGES.html | 2 + RELEASE_NOTES | 1 + src/wifi/doc/source/wifi-user.rst | 335 +++++++++++++ src/wifi/examples/wifi-phy-configuration.cc | 392 +++++++++++++++ src/wifi/examples/wscript | 4 + src/wifi/model/wifi-phy-standard.h | 4 +- src/wifi/model/wifi-phy.cc | 504 ++++++++++++++++++++ src/wifi/model/wifi-phy.h | 136 +++++- src/wifi/model/yans-wifi-phy.cc | 264 +++++----- src/wifi/model/yans-wifi-phy.h | 52 +- src/wifi/test/wifi-test.cc | 332 +++++++++++++ 11 files changed, 1804 insertions(+), 222 deletions(-) create mode 100644 src/wifi/examples/wifi-phy-configuration.cc diff --git a/CHANGES.html b/CHANGES.html index bc260bc8e9a..5aa1cc84851 100644 --- a/CHANGES.html +++ b/CHANGES.html @@ -73,6 +73,7 @@

    New API:

    See the pfifo_fast queue disc section of the Traffic Control Layer model for more information. +
  • The attributes YansWifiPhy::Frequency, YansWifiPhy::ChannelNumber, and YansWifiPhy::ChannelWidth, and the related accessor methods, were moved to base class WifiPhy. YansWifiPhy::GetChannelFrequencyMhz() was deleted. A new method WifiPhy::DefineChannelNumber () was added to allow users to define relationships between channel number, standard, frequency, and channel width.

Changes to existing API:

    @@ -100,6 +101,7 @@

    Changes to build system:

    Changed behavior:

    This section is for behavioral changes to the models that were not due to a bug fix.
      +
    • (wifi) The relationship between channel number, frequency, channel width, and Wi-Fi standard has been revised (see bug 2412). Previously, ChannelNumber and Frequency were attributes of class YansWifiPhy, and the frequency was defined as the start of the band. Now, Frequency has been redefined to be the center frequency of the channel, and the underlying device relies on the pair of frequency and channel width to control behavior; the channel number and Wi-Fi standard are used as attributes to configure frequency and channel width. The wifi module documentation discusses this change and the new behavior.

    diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 6e4ba4cf12d..22e2f0f1521 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -65,6 +65,7 @@ Bugs fixed - Bug 2402 - IPv4 Interface forwarding state is not honored - Bug 2406 - Poor 802.11g performance in ad-hoc mode - Bug 2408 - Simulation fails when 802.11n/ac is running with HT Minstrel and pcap enabled +- Bug 2412 - align WifiPhy frequency and channel number - Bug 2414 - UdpSocket doesn't call NotifyConnectionFailed - Bug 2419 - BsmApplication should use RecvFrom and not SocketAddressTag - Bug 2420 - Remove code duplication between Wifi and Wave modules diff --git a/src/wifi/doc/source/wifi-user.rst b/src/wifi/doc/source/wifi-user.rst index f6b8e0e0030..fa886aa5947 100644 --- a/src/wifi/doc/source/wifi-user.rst +++ b/src/wifi/doc/source/wifi-user.rst @@ -48,6 +48,41 @@ To create a WifiNetDevice, users need to configure mainly five steps: * Configure mobility: finally, mobility model is (usually) required before WifiNetDevice can be used. +The following sample code illustrates a typical configuration using mostly +default values in the simulator, and infrastructure mode:: + + NodeContainer wifiStaNode; + wifiStaNode.Create (10); // Create 10 station node objects + NodeContainer wifiApNode; + wifiApNode.Create (1); // Create 1 access point node object + + // Create a channel helper and phy helper, and then create the channel + YansWifiChannelHelper channel = YansWifiChannelHelper::Default (); + YansWifiPhyHelper phy = YansWifiPhyHelper::Default (); + phy.SetChannel (channel.Create ()); + + // Create a WifiMacHelper, which is reused across STA and AP configurations + WifiMacHelper mac; + + // Create a WifiHelper, which will use the above helpers to create + // and install Wifi devices. Configure a Wifi standard to use, which + // will align various parameters in the Phy and Mac to standard defaults. + WifiHelper wifi; + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + // Declare NetDeviceContainers to hold the container returned by the helper + NetDeviceContainer wifiStaDevices; + NetDeviceContainer wifiApDevice; + + // Perform the installation + mac.SetType ("ns3::StaWifiMac"); + wifiStaDevices = wifi.Install (phy, mac, wifiStaNodes); + mac.SetType ("ns3::ApWifiMac"); + wifiApDevice = wifi.Install (phy, mac, wifiApNode); + +At this point, the 11 nodes have Wi-Fi devices configured, attached to a +common channel. The rest of this section describes how additional +configuration may be performed. + YansWifiChannelHelper ===================== @@ -153,6 +188,306 @@ Furthermore, 802.11n provides an optional mode (GreenField mode) to reduce pream //Once install is done, we overwrite the channel width value Config::Set ("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Phy/ChannelWidth", UintegerValue (160)); +Channel, frequency, and channel width configuration +=================================================== + +There are a few ``ns3::WifiPhy`` parameters that are related, and cannot +be set completely independently, concerning the frequency and channel width +that the device is tuned to. These are: + +* ``WifiPhyStandard``: For example, 802.11b, 802.11n, etc. +* ``Frequency`` +* ``ChannelWidth`` +* ``ChannelNumber`` + +It is possible to set the above to incompatible combinations (e.g. channel +number 1 with 40 MHz channel width on frequency 4915 MHz). In addition, +the latter three values above are attributes; it is possible to set them +in a number of ways: + +* by setting global configuration default; e.g. + +:: + + Config::SetDefault ("ns3::WifiPhy::ChannelNumber", UintegerValue (3)); + +* by setting an attribute value in the helper; e.g. + +:: + + YansWifiPhyHelper wifiPhyHelper = YansWifiPhyHelper::Default (); + wifiPhyHelper.Set ("ChannelNumber", UintegerValue (3)); + + +* by setting the WifiHelper::SetStandard (enum WifiPhyStandard) method; and + +* by performing post-installation configuration of the option, either + via a Ptr to the WifiPhy object, or through the Config namespace; e.g.: + +:: + + Config::Set ("/NodeList/0/DeviceList/*/$ns3::WifiNetDevice/Phy/$ns3::WifiPhy/ChannelNumber", UintegerValue (3)); + +This section provides guidance on how to configure these settings in +a coherent manner, and what happens if non-standard values are chosen. + +WifiHelper::SetStandard() ++++++++++++++++++++++++++ + +``WifiHelper::SetStandard ()`` is a method to set various parameters +in the Mac and Phy to standard values and some reasonable defaults. +For example, ``SetStandard (WIFI_PHY_STANDARD_80211a)`` will set the +WifiPhy to Channel 36 in the 5 GHz band, among other settings. + +The following values for WifiPhyStandard are defined in +``src/wifi/model/wifi-phy-standard.h``: + +:: + + /** OFDM PHY for the 5 GHz band (Clause 17) */ + WIFI_PHY_STANDARD_80211a, + /** DSSS PHY (Clause 15) and HR/DSSS PHY (Clause 18) */ + WIFI_PHY_STANDARD_80211b, + /** ERP-OFDM PHY (Clause 19, Section 19.5) */ + WIFI_PHY_STANDARD_80211g, + /** OFDM PHY for the 5 GHz band (Clause 17 with 10 MHz channel bandwidth) */ + WIFI_PHY_STANDARD_80211_10MHZ, + /** OFDM PHY for the 5 GHz band (Clause 17 with 5 MHz channel bandwidth) */ + WIFI_PHY_STANDARD_80211_5MHZ, + /** This is intended to be the configuration used in this paper: + * Gavin Holland, Nitin Vaidya and Paramvir Bahl, "A Rate-Adaptive + * MAC Protocol for Multi-Hop Wireless Networks", in Proc. of + * ACM MOBICOM, 2001. + */ + WIFI_PHY_STANDARD_holland, + /** HT OFDM PHY for the 2.4 GHz band (clause 20) */ + WIFI_PHY_STANDARD_80211n_2_4GHZ, + /** HT OFDM PHY for the 5 GHz band (clause 20) */ + WIFI_PHY_STANDARD_80211n_5GHZ, + /** VHT OFDM PHY (clause 22) */ + WIFI_PHY_STANDARD_80211ac + +In addition, a value WIFI_PHY_STANDARD_UNSPECIFIED is defined to indicate +that the user has not set a standard. + +By default, the WifiPhy will be initialized to WIFI_PHY_STANDARD_UNSPECIFIED, +when it is created directly by ``CreateObject`` (i.e. not by WifiHelper). +However, the WifiHelper (the typical use case for WifiPhy creation) will +configure the WIFI_PHY_STANDARD_80211a standard by default. Other values +for standards should be passed explicitly to the WifiHelper object. + +If user has not already separately configured Frequency or ChannelNumber +when SetStandard is called, the user obtains default values, in addition +(e.g. channel 1 for 802.11b/g, or channel 36 for a/n), in addition to +an appropriate ChannelWidth value for the standard (typically, 20 MHz, but +80 MHz for 802.11ac). + +WifiPhy attribute interactions +++++++++++++++++++++++++++++++ + +Users should keep in mind that the two attributes that matter most +within the model code are ``WifiPhy::Frequency`` and +``WifiPhy::ChannelWidth``; these are the ones directly used to set +transmission parameters. ``WifiPhy::ChannelNumber`` and +``WifiHelper::SetStandard ()`` are convenience shorthands for setting +frequency and channel width. The ``ns3::WifiPhy`` contains code to +keep these values aligned and to generate runtime errors in some cases +if users set these attributes to incompatible values. + +The pair (WifiPhyStandard, ChannelNumber) is an alias for a pair of +(Frequency/ChannelWidth) items. Valid combinations are stored in +a map within WifiPhy that is populated with well-known values but that +can be dynamically extended at runtime. + +WifiPhy::Frequency +++++++++++++++++++ + +The WifiPhy channel center frequency is set by the attribute ``Frequency`` +in the class ``WifiPhy``. It is expressed in units of MHz. By default, +this attribute is set to the value 0 to indicate that no value is configured. + +Note that this is a change in definition from ns-3.25 and earlier releases, +where this attribute referred to the start of the overall frequency band +on which the channel resides, not the specific channel center frequency. + +WifiPhy::ChannelWidth ++++++++++++++++++++++ + +The WifiPhy channel width is set by the attribute ``ChannelWidth`` +in the class ``WifiPhy``. It is expressed in units of MHz. By default, +this attribute is set to the value 20. Allowable values are 5, 10, 20, +22, 40, 80, or 160 (MHz). + +WifiPhy::ChannelNumber +++++++++++++++++++++++ + +Several channel numbers are defined and well-known in practice. However, +valid channel numbers vary by geographical region around the world, and +there is some overlap between the different standards. + +In |ns3|, the class ``WifiPhy`` contains an attribute ``ChannelNumber`` that +is, by default, set to the value 0. The value 0 indicates that no +channel number has been set by the user. + +In |ns3|, a ChannelNumber may be defined or unknown. These terms +are not found in the code; they are just used to describe behavoir herein. + +If a ChannelNumber is defined, it means that WifiPhy has stored a +map of ChannelNumber to the center frequency and channel width commonly +known for that channel in practice. For example: + +* Channel 1, when IEEE 802.11b is configured, corresponds to a channel + width of 22 MHz and a center frequency of 2412 MHz. + +* Channel 36, when IEEE 802.11n is configured at 5GHz, corresponds to + a channel width of 20 MHz and a center frequency of 5180 MHz. + +The following channel numbers are well-defined for 2.4 GHz standards: + +* channels 1-14 with ChannelWidth of 22 MHz for 802.11b +* channels 1-14 with ChannelWidth of 20 MHz for 802.11n-2.4GHz and 802.11g + +The following channel numbers are well-defined for 5 GHz standards: + ++------------------+-------------------------------------------+ +| ``ChannelWidth`` | ``ChannelNumber`` | ++------------------+-------------------------------------------+ +| 20 MHz | 36, 40, 44, 48, 52, 56, 60, 64, 100, | +| | 104, 108, 112, 116, 120, 124, | +| | 128, 132, 136, 140, 144, | +| | 149, 153, 161, 165, 169 | ++------------------+-------------------------------------------+ +| 40 MHz | 38, 46, 54, 62, 102, 110, 118, 126, | +| | 134, 142, 151, 159 | ++------------------+-------------------------------------------+ +| 80 MHz | 42, 58, 106, 122, 138, 155 | ++------------------+-------------------------------------------+ +| 160 MHz | 50, 114 | ++------------------+-------------------------------------------+ +| 10 MHz (802.11p) | 172, 174, 176, 178, 180, 182, 184 | ++------------------+-------------------------------------------+ + +The channel number may be set either before or after creation of the +WifiPhy object. + +If an unknown channel number (other than zero) is configured, the +simulator will exit with an error; for instance, such as: + +:: + + Ptr wifiPhy = ...; + wifiPhy->SetAttribute ("ChannelNumber", UintegerValue (1321)); + +The known channel numbers are defined in the implementation file +``src/wifi/model/wifi-phy.cc``. Of course, this file may be edited +by users to extend to additional channel numbers. Below, we describe +how new channel numbers may be defined dynamically at run-time. + +If a known channel number is configured against an incorrect value +of the WifiPhyStandard, the simulator will exit with an error; for instance, +such as: + +:: + + WifiHelper wifi; + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + ... + Ptr wifiPhy = ...; + wifiPhy->SetAttribute ("ChannelNumber", UintegerValue (14)); + +In the above, while channel number 14 is well-defined in practice for 802.11b +only, it is for 2.4 GHz band, not 5 GHz band. + +Defining a new channel number ++++++++++++++++++++++++++++++ + +Users may define their own channel number so that they can later refer to +the channel by number. + +The method is ``WifiPhy::DefineChannelNumber ()`` and it takes the following +arguments: + +* uint16_t channelNumber +* enum WifiPhyStandard standard +* uint32_t frequency +* uint32_t channelWidth + +The pair of (channelNumber, standard) are used as an index to a map that +returns a Frequency and ChannelWidth. By calling this method, one can +dynamically add members to the map. For instance, let's suppose that you +previously configured WIFI_PHY_STANDARD_80211a, and wanted to deine a new +channel number '34' of width 20 MHz and at center frequency 5160 MHz. + +If you try to simply configure ChannelNumber to the value 34, it will fail, +since 34 is undefined. However, you can use DefineChannelNumber as follows: + +:: + + Ptr wifiPhy = ...; + wifiPhy->DefineChannelNumber (34, WIFI_PHY_STANDARD_80211a, 5160, 20); + +and then later you can refer to channel number 34 in your program, which +will configure a center operating frequency of 5160 MHz and a width of +20 MHz. + +The steps can be repeated to explicitly configure the same channel for +multiple standards: + +:: + + wifiPhy->DefineChannelNumber (34, WIFI_PHY_STANDARD_80211a, 5160, 20); + wifiPhy->DefineChannelNumber (34, WIFI_PHY_STANDARD_80211n_5GHZ, 5160, 20); + +or for a wildcard, unspecified standard: + +:: + + wifiPhy->DefineChannelNumber (34, WIFI_PHY_STANDARD_UNSPECIFIED, 5160, 20); + +Order of operation issues ++++++++++++++++++++++++++ + +Depending on the default values used and the order of operation in setting +the values for the standard, channel width, frequency, and channel number, +different configurations can be obtained. Below are some common use cases. + +* **(accepting the standard defaults):** If a user has not already + separately configured frequency or channel number when + ``WifiHelper::SetStandard ()`` is called, the user gets default values + (e.g. channel 1 for 802.11b/g or channel 36 for a/n, with 20 MHz + channel widths) + +* **(overwriting the standard channel):** If the user has previously + configured (e.g. via SetDefault) either frequency or channel number when + SetStandard is called, and the frequency or channel number are appropriate + for the standard being configured, they are not overwritten + +* **(changing the standard channel after Install):** The user may also call + ``WifiHelper::SetStandard ()`` after ``Install ()`` and either configure + the frequency to something different, or configure the channel number + to something different. Note that if the channel number is undefined + for the standard that was previously set, an error will occur. + +* **(changing to non-standard frequency):** If the user configures a + frequency outside the standardized frequency range for the current + WifiPhyStandard, this is OK. This allows users to experiment with + wifi on e.g. whitespace frequencies but still use SetStandard to set + all of the other configuration details. + +* **(interaction between channel number and frequency):** If the user + the user sets Frequency to a different value than the currently configured + ChannelNumber (or if ChannelNumber is zero), then the ChannelNumber is + set to a new channel number if known, or to zero if unknown. + + * *example:* ChannelNumber previously set to 36, user sets Frequency to 5200, then ChannelNumber gets automatically set to 40 + * *example:* ChannelNumber set to 36, user later sets Frequency to 5185, ChannelNumber gets reset to 0 + +In summary, ChannelNumber and Frequency follow each other. ChannelNumber +sets both Frequency and ChannelWidth if the channel number has been defined +for the standard. Setting ChannelWidth has no effect on Frequency or +ChannelNumber. Setting Frequency will set ChannelNumber to either the +defined value for that Wi-Fi standard, or to the value 0 if undefined. + WifiMacHelper ============= diff --git a/src/wifi/examples/wifi-phy-configuration.cc b/src/wifi/examples/wifi-phy-configuration.cc new file mode 100644 index 00000000000..186a9f57392 --- /dev/null +++ b/src/wifi/examples/wifi-phy-configuration.cc @@ -0,0 +1,392 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2016 Tom Henderson + * + * 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: Tom Henderson + */ + +#include +#include "ns3/core-module.h" +#include "ns3/config-store-module.h" +#include "ns3/network-module.h" +#include "ns3/wifi-module.h" + +// This example shows (and tests) some possible configurations for +// the Wi-Fi physical layer, particularly the interaction between +// WifiHelper.SetStandard () and the physical layer channel number, +// center frequency, and channel width. + +using namespace ns3; + +NS_LOG_COMPONENT_DEFINE ("WifiPhyConfigurationExample"); + + +Ptr +GetYansWifiPhyPtr (const NetDeviceContainer &nc) +{ + Ptr wnd = nc.Get (0)->GetObject (); + Ptr wp = wnd->GetPhy (); + return wp->GetObject (); +} + +void +PrintAttributesIfEnabled (bool enabled) +{ + if (enabled) + { + ConfigStore outputConfig; + outputConfig.ConfigureAttributes (); + } +} + +int main (int argc, char *argv[]) +{ + uint32_t testCase = 0; + bool printAttributes = false; + + CommandLine cmd; + cmd.AddValue ("testCase", "Test case", testCase); + cmd.AddValue ("printAttributes", "If true, print out attributes", printAttributes); + cmd.Parse (argc, argv); + + NodeContainer wifiStaNode; + wifiStaNode.Create (1); + NodeContainer wifiApNode; + wifiApNode.Create (1); + + YansWifiChannelHelper channel = YansWifiChannelHelper::Default (); + YansWifiPhyHelper phy = YansWifiPhyHelper::Default (); + phy.SetChannel (channel.Create ()); + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + + // Configure and declare other generic components of this example + Ssid ssid; + ssid = Ssid ("wifi-phy-configuration"); + WifiMacHelper macSta; + macSta.SetType ("ns3::StaWifiMac", + "Ssid", SsidValue (ssid), + "ActiveProbing", BooleanValue (false)); + WifiMacHelper macAp; + macAp.SetType ("ns3::ApWifiMac", + "Ssid", SsidValue (ssid), + "BeaconInterval", TimeValue (MicroSeconds (102400)), + "BeaconGeneration", BooleanValue (true)); + NetDeviceContainer staDevice; + NetDeviceContainer apDevice; + Ptr phySta; + Config::SetDefault ("ns3::ConfigStore::Filename", StringValue ("output-attributes-" + std::to_string (testCase) + ".txt")); + Config::SetDefault ("ns3::ConfigStore::FileFormat", StringValue ("RawText")); + Config::SetDefault ("ns3::ConfigStore::Mode", StringValue ("Save")); + + switch (testCase) + { + case 0: + // Default configuration, without WifiHelper::SetStandard or WifiHelper + phySta = CreateObject (); + // The default results in an invalid configuration of channel 0, + // width 20, and frequency 0 MHz + NS_ASSERT (phySta->GetChannelNumber () == 0); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 0); + PrintAttributesIfEnabled (printAttributes); + break; + + // The following cases test the setting of WifiPhyStandard alone; + // i.e. without further channel number/width/frequency configuration + + case 1: + // By default, WifiHelper will use WIFI_PHY_STANDARD_80211a + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 36, width 20, frequency 5180 + NS_ASSERT (phySta->GetChannelNumber () == 36); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5180); + PrintAttributesIfEnabled (printAttributes); + break; + case 2: + wifi.SetStandard (WIFI_PHY_STANDARD_80211b); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 1, width 22, frequency 2412 + NS_ASSERT (phySta->GetChannelNumber () == 1); + NS_ASSERT (phySta->GetChannelWidth () == 22); + NS_ASSERT (phySta->GetFrequency () == 2412); + PrintAttributesIfEnabled (printAttributes); + break; + case 3: + wifi.SetStandard (WIFI_PHY_STANDARD_80211g); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 1, width 20, frequency 2412 + NS_ASSERT (phySta->GetChannelNumber () == 1); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 2412); + PrintAttributesIfEnabled (printAttributes); + break; + case 4: + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 36, width 20, frequency 5180 + NS_ASSERT (phySta->GetChannelNumber () == 36); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5180); + PrintAttributesIfEnabled (printAttributes); + break; + case 5: + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_2_4GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 1, width 20, frequency 2412 + NS_ASSERT (phySta->GetChannelNumber () == 1); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 2412); + PrintAttributesIfEnabled (printAttributes); + break; + case 6: + wifi.SetStandard (WIFI_PHY_STANDARD_80211ac); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 42, width 80, frequency 5210 + NS_ASSERT (phySta->GetChannelNumber () == 42); + NS_ASSERT (phySta->GetChannelWidth () == 80); + NS_ASSERT (phySta->GetFrequency () == 5210); + PrintAttributesIfEnabled (printAttributes); + break; + case 7: + wifi.SetStandard (WIFI_PHY_STANDARD_80211_10MHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 172, width 10, frequency 5860 + NS_ASSERT (phySta->GetChannelNumber () == 172); + NS_ASSERT (phySta->GetChannelWidth () == 10); + NS_ASSERT (phySta->GetFrequency () == 5860); + PrintAttributesIfEnabled (printAttributes); + break; + case 8: + wifi.SetStandard (WIFI_PHY_STANDARD_80211_5MHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 0, width 5, frequency 5860 + // Channel 0 because 5MHz channels are not officially defined + NS_ASSERT (phySta->GetChannelNumber () == 0); + NS_ASSERT (phySta->GetChannelWidth () == 5); + NS_ASSERT (phySta->GetFrequency () == 5860); + PrintAttributesIfEnabled (printAttributes); + break; + case 9: + wifi.SetStandard (WIFI_PHY_STANDARD_holland); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 36, width 20, frequency 5180 + NS_ASSERT (phySta->GetChannelNumber () == 36); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5180); + PrintAttributesIfEnabled (printAttributes); + break; + case 10: + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + phy.Set ("ChannelNumber", UintegerValue(44)); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 44, width 20, frequency 5220 + NS_ASSERT (phySta->GetChannelNumber () == 44); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5220); + PrintAttributesIfEnabled (printAttributes); + break; + + case 11: + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + phy.Set ("ChannelNumber", UintegerValue(44)); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // Post-install reconfiguration to channel number 40 + Config::Set ("/NodeList/0/DeviceList/*/$ns3::WifiNetDevice/Phy/$ns3::YansWifiPhy/ChannelNumber", UintegerValue(40)); + Config::Set ("/NodeList/1/DeviceList/*/$ns3::WifiNetDevice/Phy/$ns3::YansWifiPhy/ChannelNumber", UintegerValue(40)); + // We expect channel 40, width 20, frequency 5200 + NS_ASSERT (phySta->GetChannelNumber () == 40); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5200); + PrintAttributesIfEnabled (printAttributes); + break; + + case 12: + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + phy.Set ("ChannelNumber", UintegerValue (44)); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // Post-install reconfiguration to channel width 40 MHz + Config::Set ("/NodeList/0/DeviceList/*/$ns3::WifiNetDevice/Phy/$ns3::YansWifiPhy/ChannelWidth", UintegerValue(40)); + Config::Set ("/NodeList/1/DeviceList/*/$ns3::WifiNetDevice/Phy/$ns3::YansWifiPhy/ChannelWidth", UintegerValue(40)); + // Although channel 44 is configured originally for 20 MHz, we + // allow it to be used for 40 MHz here + NS_ASSERT (phySta->GetChannelNumber () == 44); + NS_ASSERT (phySta->GetChannelWidth () == 40); + NS_ASSERT (phySta->GetFrequency () == 5220); + PrintAttributesIfEnabled (printAttributes); + break; + + case 13: + Config::SetDefault ("ns3::WifiPhy::ChannelNumber", UintegerValue (44)); + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // Post-install reconfiguration to channel width 40 MHz + Config::Set ("/NodeList/0/DeviceList/*/$ns3::WifiNetDevice/Phy/$ns3::YansWifiPhy/ChannelWidth", UintegerValue(40)); + Config::Set ("/NodeList/1/DeviceList/*/$ns3::WifiNetDevice/Phy/$ns3::YansWifiPhy/ChannelWidth", UintegerValue(40)); + // Although channel 44 is configured originally for 20 MHz, we + // allow it to be used for 40 MHz here + NS_ASSERT (phySta->GetChannelNumber () == 44); + NS_ASSERT (phySta->GetChannelWidth () == 40); + NS_ASSERT (phySta->GetFrequency () == 5220); + PrintAttributesIfEnabled (printAttributes); + break; + + case 14: + // Test that setting Frequency to a non-standard value will zero the + // channel number + Config::SetDefault ("ns3::WifiPhy::Frequency", UintegerValue (5281)); + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel number to be zero since frequency doesn't match + NS_ASSERT (phySta->GetChannelNumber () == 0); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5281); + PrintAttributesIfEnabled (printAttributes); + break; + + case 15: + // Test that setting Frequency to a standard value will set the + // channel number correctly + Config::SetDefault ("ns3::WifiPhy::Frequency", UintegerValue (5500)); + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get (0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get (0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel number to be 100 due to frequency 5500 + NS_ASSERT (phySta->GetChannelNumber () == 100); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5500); + PrintAttributesIfEnabled (printAttributes); + break; + + case 16: + // Define a new channel number + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get (0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get (0)); + phySta = GetYansWifiPhyPtr (staDevice); + // This case will error exit due to invalid channel number unless + // we provide the DefineChannelNumber() below + phySta->DefineChannelNumber (99, WIFI_PHY_STANDARD_80211n_5GHZ, 5185, 40); + phySta->SetAttribute ("ChannelNumber", UintegerValue (99)); + PrintAttributesIfEnabled (printAttributes); + break; + + case 17: + // Test how channel number behaves when frequency is non-standard + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + phySta->SetAttribute ("Frequency", UintegerValue (5181)); + // We expect channel number to be 0 due to unknown center frequency 5181 + NS_ASSERT (phySta->GetChannelNumber () == 0); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5181); + phySta->SetAttribute ("Frequency", UintegerValue (5180)); + // We expect channel number to be 36 due to known center frequency 5180 + NS_ASSERT (phySta->GetChannelNumber () == 36); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5180); + phySta->SetAttribute ("Frequency", UintegerValue (5179)); + // We expect channel number to be 0 due to unknown center frequency 5179 + NS_ASSERT (phySta->GetChannelNumber () == 0); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5179); + phySta->SetAttribute ("ChannelNumber", UintegerValue (36)); + NS_ASSERT (phySta->GetChannelNumber () == 36); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5180); + PrintAttributesIfEnabled (printAttributes); + break; + + case 18: + // Set both channel and frequency to consistent values + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + apDevice = wifi.Install (phy, macAp, wifiApNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + phySta->SetAttribute ("Frequency", UintegerValue (5200)); + phySta->SetAttribute ("ChannelNumber", UintegerValue (40)); + NS_ASSERT (phySta->GetChannelNumber () == 40); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5200); + // Set both channel and frequency to inconsistent values + phySta->SetAttribute ("Frequency", UintegerValue (5200)); + phySta->SetAttribute ("ChannelNumber", UintegerValue (36)); + // We expect channel number to be 36 + NS_ASSERT (phySta->GetChannelNumber () == 36); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5180); + phySta->SetAttribute ("ChannelNumber", UintegerValue (36)); + phySta->SetAttribute ("Frequency", UintegerValue (5200)); + // We expect channel number to be 40 + NS_ASSERT (phySta->GetChannelNumber () == 40); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5200); + phySta->SetAttribute ("Frequency", UintegerValue (5179)); + phySta->SetAttribute ("ChannelNumber", UintegerValue (36)); + // We expect channel number to be 36 + NS_ASSERT (phySta->GetChannelNumber () == 36); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5180); + phySta->SetAttribute ("ChannelNumber", UintegerValue (36)); + phySta->SetAttribute ("Frequency", UintegerValue (5179)); + // We expect channel number to be 0 + NS_ASSERT (phySta->GetChannelNumber () == 0); + NS_ASSERT (phySta->GetChannelWidth () == 20); + NS_ASSERT (phySta->GetFrequency () == 5179); + PrintAttributesIfEnabled (printAttributes); + break; + + default: + std::cerr << "Invalid testcase number " << testCase << std::endl; + exit (1); + break; + } + + // No need to Simulator::Run (); this is a configuration example + Simulator::Destroy (); +} diff --git a/src/wifi/examples/wscript b/src/wifi/examples/wscript index 2304d7386c9..6d41f2a7f31 100644 --- a/src/wifi/examples/wscript +++ b/src/wifi/examples/wscript @@ -19,3 +19,7 @@ def build(bld): obj = bld.create_ns3_program('minstrel-ht-wifi-manager-example', ['core', 'network', 'wifi', 'stats', 'mobility', 'propagation']) obj.source = 'minstrel-ht-wifi-manager-example.cc' + + obj = bld.create_ns3_program('wifi-phy-configuration', + ['core', 'network', 'config-store', 'wifi']) + obj.source = 'wifi-phy-configuration.cc' diff --git a/src/wifi/model/wifi-phy-standard.h b/src/wifi/model/wifi-phy-standard.h index 4b549a0a9b3..c308d1a2791 100644 --- a/src/wifi/model/wifi-phy-standard.h +++ b/src/wifi/model/wifi-phy-standard.h @@ -50,7 +50,9 @@ enum WifiPhyStandard /** HT OFDM PHY for the 5 GHz band (clause 20) */ WIFI_PHY_STANDARD_80211n_5GHZ, /** VHT OFDM PHY (clause 22) */ - WIFI_PHY_STANDARD_80211ac + WIFI_PHY_STANDARD_80211ac, + /** Unspecified */ + WIFI_PHY_STANDARD_UNSPECIFIED }; } //namespace ns3 diff --git a/src/wifi/model/wifi-phy.cc b/src/wifi/model/wifi-phy.cc index 1a1af6155b8..6ee4fe0ec1c 100644 --- a/src/wifi/model/wifi-phy.cc +++ b/src/wifi/model/wifi-phy.cc @@ -31,6 +31,7 @@ #include "ns3/uinteger.h" #include "ns3/enum.h" #include "ns3/trace-source-accessor.h" +#include "ns3/fatal-error.h" #include namespace ns3 { @@ -51,12 +52,132 @@ WifiPhyListener::~WifiPhyListener () NS_OBJECT_ENSURE_REGISTERED (WifiPhy); +/** + * This table maintains the mapping of valid ChannelNumber to + * Frequency/ChannelWidth pairs. If you want to make a channel applicable + * to all standards, then you may use the WIFI_PHY_STANDARD_UNSPECIFIED + * standard to represent this, as a wildcard. If you want to limit the + * configuration of a particular channel/frequency/width to a particular + * standard(s), then you can specify one or more such bindings. + */ +WifiPhy::ChannelToFrequencyWidthMap WifiPhy::m_channelToFrequencyWidth = +{ + // 802.11b uses width of 22, while OFDM modes use width of 20 + { std::make_pair (1, WIFI_PHY_STANDARD_80211b), std::make_pair (2412, 22) }, + { std::make_pair (1, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (2412, 20) }, + { std::make_pair (2, WIFI_PHY_STANDARD_80211b), std::make_pair (2417, 22) }, + { std::make_pair (2, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (2417, 20) }, + { std::make_pair (3, WIFI_PHY_STANDARD_80211b), std::make_pair (2422, 22) }, + { std::make_pair (3, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (2422, 20) }, + { std::make_pair (4, WIFI_PHY_STANDARD_80211b), std::make_pair (2427, 22) }, + { std::make_pair (4, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (2427, 20) }, + { std::make_pair (5, WIFI_PHY_STANDARD_80211b), std::make_pair (2432, 22) }, + { std::make_pair (5, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (2432, 20) }, + { std::make_pair (6, WIFI_PHY_STANDARD_80211b), std::make_pair (2437, 22) }, + { std::make_pair (6, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (2437, 20) }, + { std::make_pair (7, WIFI_PHY_STANDARD_80211b), std::make_pair (2442, 22) }, + { std::make_pair (7, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (2442, 20) }, + { std::make_pair (8, WIFI_PHY_STANDARD_80211b), std::make_pair (2447, 22) }, + { std::make_pair (8, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (2447, 20) }, + { std::make_pair (9, WIFI_PHY_STANDARD_80211b), std::make_pair (2452, 22) }, + { std::make_pair (9, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (2452, 20) }, + { std::make_pair (10, WIFI_PHY_STANDARD_80211b), std::make_pair (2457, 22) }, + { std::make_pair (10, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (2457, 20) }, + { std::make_pair (11, WIFI_PHY_STANDARD_80211b), std::make_pair (2462, 22) }, + { std::make_pair (11, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (2462, 20) }, + { std::make_pair (12, WIFI_PHY_STANDARD_80211b), std::make_pair (2467, 22) }, + { std::make_pair (12, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (2467, 20) }, + { std::make_pair (13, WIFI_PHY_STANDARD_80211b), std::make_pair (2472, 22) }, + { std::make_pair (13, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (2472, 20) }, + // Only defined for 802.11b + { std::make_pair (14, WIFI_PHY_STANDARD_80211b), std::make_pair (2484, 22) }, + + // Now the 5GHz channels; UNSPECIFIED for 802.11a/n channels, but limited + // to 802.11ac for the 80/160 MHz channels + // 20 MHz channels + { std::make_pair (36, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5180, 20) }, + { std::make_pair (40, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5200, 20) }, + { std::make_pair (44, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5220, 20) }, + { std::make_pair (48, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5240, 20) }, + { std::make_pair (52, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5260, 20) }, + { std::make_pair (56, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5280, 20) }, + { std::make_pair (60, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5300, 20) }, + { std::make_pair (64, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5320, 20) }, + { std::make_pair (100, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5500, 20) }, + { std::make_pair (104, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5520, 20) }, + { std::make_pair (108, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5540, 20) }, + { std::make_pair (112, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5560, 20) }, + { std::make_pair (116, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5580, 20) }, + { std::make_pair (120, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5600, 20) }, + { std::make_pair (124, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5620, 20) }, + { std::make_pair (128, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5640, 20) }, + { std::make_pair (132, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5660, 20) }, + { std::make_pair (136, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5680, 20) }, + { std::make_pair (140, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5700, 20) }, + { std::make_pair (144, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5720, 20) }, + { std::make_pair (149, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5745, 20) }, + { std::make_pair (153, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5765, 20) }, + { std::make_pair (157, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5785, 20) }, + { std::make_pair (161, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5805, 20) }, + { std::make_pair (165, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5825, 20) }, + // 40 MHz channels + { std::make_pair (38, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5190, 40) }, + { std::make_pair (46, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5230, 40) }, + { std::make_pair (54, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5230, 40) }, + { std::make_pair (62, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5310, 40) }, + { std::make_pair (102, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5510, 40) }, + { std::make_pair (110, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5550, 40) }, + { std::make_pair (118, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5590, 40) }, + { std::make_pair (126, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5590, 40) }, + { std::make_pair (134, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5670, 40) }, + { std::make_pair (142, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5710, 40) }, + { std::make_pair (151, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5755, 40) }, + { std::make_pair (159, WIFI_PHY_STANDARD_UNSPECIFIED), std::make_pair (5795, 40) }, + // 80 MHz channels + { std::make_pair (42, WIFI_PHY_STANDARD_80211ac), std::make_pair (5210, 80) }, + { std::make_pair (58, WIFI_PHY_STANDARD_80211ac), std::make_pair (5290, 80) }, + { std::make_pair (106, WIFI_PHY_STANDARD_80211ac), std::make_pair (5530, 80) }, + { std::make_pair (122, WIFI_PHY_STANDARD_80211ac), std::make_pair (5610, 80) }, + { std::make_pair (138, WIFI_PHY_STANDARD_80211ac), std::make_pair (5690, 80) }, + { std::make_pair (155, WIFI_PHY_STANDARD_80211ac), std::make_pair (5775, 80) }, + // 160 MHz channels + { std::make_pair (50, WIFI_PHY_STANDARD_80211ac), std::make_pair (5250, 160) }, + { std::make_pair (114, WIFI_PHY_STANDARD_80211ac), std::make_pair (5570, 160) }, + + // 802.11p (10 MHz channels at the 5.855-5.925 band + { std::make_pair (172, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5860, 10) }, + { std::make_pair (174, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5870, 10) }, + { std::make_pair (176, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5880, 10) }, + { std::make_pair (178, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5890, 10) }, + { std::make_pair (180, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5900, 10) }, + { std::make_pair (182, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5910, 10) }, + { std::make_pair (184, WIFI_PHY_STANDARD_80211_10MHZ), std::make_pair (5920, 10) } +}; + TypeId WifiPhy::GetTypeId (void) { static TypeId tid = TypeId ("ns3::WifiPhy") .SetParent () .SetGroupName ("Wifi") + .AddAttribute ("Frequency", + "The operating center frequency (MHz)", + UintegerValue (0), + MakeUintegerAccessor (&WifiPhy::GetFrequency, + &WifiPhy::SetFrequency), + MakeUintegerChecker ()) + .AddAttribute ("ChannelWidth", + "Whether 5MHz, 10MHz, 20MHz, 22MHz, 40MHz, 80 MHz or 160 MHz.", + UintegerValue (20), + MakeUintegerAccessor (&WifiPhy::GetChannelWidth, + &WifiPhy::SetChannelWidth), + MakeUintegerChecker ()) + .AddAttribute ("ChannelNumber", + "If set to non-zero defined value, will control Frequency and ChannelWidth assignment", + UintegerValue (0), + MakeUintegerAccessor (&WifiPhy::SetChannelNumber, + &WifiPhy::GetChannelNumber), + MakeUintegerChecker ()) .AddTraceSource ("PhyTxBegin", "Trace source indicating a packet " "has begun transmitting over the channel medium", @@ -107,6 +228,9 @@ WifiPhy::GetTypeId (void) } WifiPhy::WifiPhy () + : m_standard (WIFI_PHY_STANDARD_UNSPECIFIED), + m_channelCenterFrequency (0), + m_channelNumber (1) { NS_LOG_FUNCTION (this); m_totalAmpduSize = 0; @@ -118,6 +242,386 @@ WifiPhy::~WifiPhy () NS_LOG_FUNCTION (this); } +void +WifiPhy::DoInitialize (void) +{ + NS_LOG_FUNCTION (this); + // Perform some initialization checks + if (GetChannelNumber () != 0 && GetStandard () == WIFI_PHY_STANDARD_UNSPECIFIED) + { + NS_FATAL_ERROR ("Error, ChannelNumber " << GetChannelNumber () << " was set by user, but not a standard"); + } + if (GetChannelNumber () != 0 && GetFrequency () == 0) + { + NS_FATAL_ERROR ("Error, ChannelNumber " << GetChannelNumber () << " set but no frequency is configured"); + } +} + +void +WifiPhy::ConfigureDefaultsForStandard (enum WifiPhyStandard standard) +{ + NS_LOG_FUNCTION (this << standard); + switch (standard) + { + case WIFI_PHY_STANDARD_80211a: + SetChannelWidth (20); + SetFrequency (5180); + // Channel number should be aligned by SetFrequency () to 36 + NS_ASSERT (GetChannelNumber () == 36); + break; + case WIFI_PHY_STANDARD_80211b: + SetChannelWidth (22); + SetFrequency (2412); + // Channel number should be aligned by SetFrequency () to 1 + NS_ASSERT (GetChannelNumber () == 1); + break; + case WIFI_PHY_STANDARD_80211g: + SetChannelWidth (20); + SetFrequency (2412); + // Channel number should be aligned by SetFrequency () to 1 + NS_ASSERT (GetChannelNumber () == 1); + break; + case WIFI_PHY_STANDARD_80211_10MHZ: + SetChannelWidth (10); + SetFrequency (5860); + // Channel number should be aligned by SetFrequency () to 172 + NS_ASSERT (GetChannelNumber () == 172); + break; + case WIFI_PHY_STANDARD_80211_5MHZ: + SetChannelWidth (5); + SetFrequency (5860); + // Channel number should be aligned by SetFrequency () to 0 + NS_ASSERT (GetChannelNumber () == 0); + break; + case WIFI_PHY_STANDARD_holland: + SetChannelWidth (20); + SetFrequency (5180); + // Channel number should be aligned by SetFrequency () to 36 + NS_ASSERT (GetChannelNumber () == 36); + break; + case WIFI_PHY_STANDARD_80211n_2_4GHZ: + SetChannelWidth (20); + SetFrequency (2412); + // Channel number should be aligned by SetFrequency () to 1 + NS_ASSERT (GetChannelNumber () == 1); + break; + case WIFI_PHY_STANDARD_80211n_5GHZ: + SetChannelWidth (20); + SetFrequency (5180); + // Channel number should be aligned by SetFrequency () to 36 + NS_ASSERT (GetChannelNumber () == 36); + break; + case WIFI_PHY_STANDARD_80211ac: + SetChannelWidth (80); + SetFrequency (5210); + // Channel number should be aligned by SetFrequency () to 42 + NS_ASSERT (GetChannelNumber () == 42); + break; + case WIFI_PHY_STANDARD_UNSPECIFIED: + NS_LOG_WARN ("Configuring unspecified standard; performing no action"); + break; + default: + NS_ASSERT (false); + break; + } +} + +bool +WifiPhy::DefineChannelNumber (uint16_t channelNumber, enum WifiPhyStandard standard, uint32_t frequency, uint32_t channelWidth) +{ + NS_LOG_FUNCTION (this << channelNumber << standard << frequency << channelWidth); + ChannelNumberStandardPair p = std::make_pair (channelNumber, standard); + ChannelToFrequencyWidthMap::const_iterator it; + it = m_channelToFrequencyWidth.find (p); + if (it != m_channelToFrequencyWidth.end ()) + { + NS_LOG_DEBUG ("channel number/standard already defined; returning false"); + return false; + } + FrequencyWidthPair f = std::make_pair (frequency, channelWidth); + m_channelToFrequencyWidth[p] = f; + return true; +} + +uint16_t +WifiPhy::FindChannelNumberForFrequencyWidth (uint32_t frequency, uint32_t width) const +{ + NS_LOG_FUNCTION (this << frequency << width); + bool found = false; + FrequencyWidthPair f = std::make_pair (frequency, width); + ChannelToFrequencyWidthMap::const_iterator it = m_channelToFrequencyWidth.begin (); + while (it != m_channelToFrequencyWidth.end ()) + { + if (it->second == f) + { + found = true; + break; + } + ++it; + } + if (found) + { + NS_LOG_DEBUG ("Found, returning " << it->first.first); + return (it->first.first); + } + else + { + NS_LOG_DEBUG ("Not found, returning 0"); + return 0; + } +} + +void +WifiPhy::ConfigureChannelForStandard (enum WifiPhyStandard standard) +{ + NS_LOG_FUNCTION (this << standard); + // If the user has configured both Frequency and ChannelNumber, Frequency + // takes precedence + if (GetFrequency () != 0) + { + // If Frequency is already set, then see whether a ChannelNumber can + // be found that matches Frequency and ChannelWidth. If so, configure + // the ChannelNumber to that channel number. If not, set + // ChannelNumber to zero. + NS_LOG_DEBUG ("Frequency set; checking whether a channel number corresponds"); + uint32_t channelNumberSearched = FindChannelNumberForFrequencyWidth (GetFrequency (), GetChannelWidth ()); + if (channelNumberSearched) + { + NS_LOG_DEBUG ("Channel number found; setting to " << channelNumberSearched); + SetChannelNumber (channelNumberSearched); + } + else + { + NS_LOG_DEBUG ("Channel number not found; setting to zero"); + SetChannelNumber (0); + } + } + else if (GetChannelNumber () != 0) + { + // If the channel number is known for this particular standard or for + // the unspecified standard, configure using the known values; + // otherwise, this is a configuration error + NS_LOG_DEBUG ("Configuring for channel number " << GetChannelNumber ()); + FrequencyWidthPair f = GetFrequencyWidthForChannelNumberStandard (GetChannelNumber (), standard); + if (f.first == 0) + { + // the specific pair of number/standard is not known + NS_LOG_DEBUG ("Falling back to check WIFI_PHY_STANDARD_UNSPECIFIED"); + f = GetFrequencyWidthForChannelNumberStandard (GetChannelNumber (), WIFI_PHY_STANDARD_UNSPECIFIED); + } + if (f.first == 0) + { + NS_FATAL_ERROR ("Error, ChannelNumber " << GetChannelNumber () << " is unknown for this standard"); + } + else + { + NS_LOG_DEBUG ("Setting frequency to " << f.first << "; width to " << f.second); + SetFrequency (f.first); + SetChannelWidth (f.second); + } + } +} + +void +WifiPhy::ConfigureStandard (enum WifiPhyStandard standard) +{ + NS_LOG_FUNCTION (this << standard); + m_standard = standard; + if (GetFrequency () == 0 && GetChannelNumber () == 0) + { + ConfigureDefaultsForStandard (standard); + } + else + { + // The user has configured either (or both) Frequency or ChannelNumber + ConfigureChannelForStandard (standard); + } +} + +enum WifiPhyStandard +WifiPhy::GetStandard (void) const +{ + return m_standard; +} + +void +WifiPhy::SetFrequency (uint32_t frequency) +{ + NS_LOG_FUNCTION (this << frequency); + // If the user has configured both Frequency and ChannelNumber, Frequency + // takes precedence + if (GetFrequency () == frequency) + { + NS_LOG_DEBUG ("No frequency change requested"); + return; + } + if (frequency == 0) + { + DoFrequencySwitch (0); + NS_LOG_DEBUG ("Setting frequency and channel number to zero"); + m_channelCenterFrequency = 0; + m_channelNumber = 0; + return; + } + // See if there corresponds a channel number to the requested frequency. + uint16_t nch = FindChannelNumberForFrequencyWidth (frequency, GetChannelWidth ()); + if (nch != 0) + { + NS_LOG_DEBUG ("Setting frequency " << frequency << " corresponds to channel " << nch); + if (DoFrequencySwitch (frequency)) + { + NS_LOG_DEBUG ("Channel frequency switched to " << frequency << "; channel number to " << nch); + m_channelCenterFrequency = frequency; + m_channelNumber = nch; + } + else + { + NS_LOG_DEBUG ("Suppressing reassignment of frequency"); + } + } + else + { + NS_LOG_DEBUG ("Channel number is unknown for frequency " << frequency); + if (DoFrequencySwitch (frequency)) + { + NS_LOG_DEBUG ("Channel frequency switched to " << frequency << "; channel number to " << 0); + m_channelCenterFrequency = frequency; + m_channelNumber = 0; + } + else + { + NS_LOG_DEBUG ("Suppressing reassignment of frequency"); + } + } +} + +uint32_t +WifiPhy::GetFrequency (void) const +{ + return m_channelCenterFrequency; +} + +void +WifiPhy::SetChannelWidth (uint32_t channelwidth) +{ + NS_ASSERT_MSG (channelwidth == 5 || channelwidth == 10 || channelwidth == 20 || channelwidth == 22 || channelwidth == 40 || channelwidth == 80 || channelwidth == 160, "wrong channel width value"); + m_channelWidth = channelwidth; + AddSupportedChannelWidth (channelwidth); +} + +uint32_t +WifiPhy::GetChannelWidth (void) const +{ + return m_channelWidth; +} + +void +WifiPhy::AddSupportedChannelWidth (uint32_t width) +{ + NS_LOG_FUNCTION (this << width); + for (std::vector::size_type i = 0; i != m_supportedChannelWidthSet.size (); i++) + { + if (m_supportedChannelWidthSet[i] == width) + { + return; + } + } + NS_LOG_FUNCTION ("Adding " << width << " to supported channel width set"); + m_supportedChannelWidthSet.push_back (width); +} + +std::vector +WifiPhy::GetSupportedChannelWidthSet (void) const +{ + return m_supportedChannelWidthSet; +} + +WifiPhy::FrequencyWidthPair +WifiPhy::GetFrequencyWidthForChannelNumberStandard (uint16_t channelNumber, enum WifiPhyStandard standard) const +{ + ChannelNumberStandardPair p = std::make_pair (channelNumber, standard); + FrequencyWidthPair f = m_channelToFrequencyWidth[p]; + return f; +} + +void +WifiPhy::SetChannelNumber (uint16_t nch) +{ + NS_LOG_FUNCTION (this << nch); + if (GetChannelNumber () == nch) + { + NS_LOG_DEBUG ("No channel change requested"); + return; + } + if (nch == 0) + { + // This case corresponds to when there is not a known channel + // number for the requested frequency. There is no need to call + // DoChannelSwitch () because DoFrequencySwitch () should have been + // called by the client + NS_LOG_DEBUG ("Setting channel number to zero"); + m_channelNumber = 0; + return; + } + + if (IsInitialized () == false && GetStandard () == WIFI_PHY_STANDARD_UNSPECIFIED) + { + // This is not a run-time channel switch, and user has not yet + // specified a standard to correspond to the channel number, + // so we just need to set the channel number now, and the + // DoInitialize () method should perform checking at run-time that + // the standard was eventually set + NS_LOG_DEBUG ("Setting channel number to " << nch); + m_channelNumber = nch; + return; + } + + // First make sure that the channel number is defined for the standard + // in use + FrequencyWidthPair f = GetFrequencyWidthForChannelNumberStandard (nch, GetStandard ()); + if (f.first == 0) + { + f = GetFrequencyWidthForChannelNumberStandard (nch, WIFI_PHY_STANDARD_UNSPECIFIED); + } + if (f.first != 0) + { + if (DoChannelSwitch (nch)) + { + NS_LOG_DEBUG ("Setting frequency to " << f.first << "; width to " << f.second); + m_channelCenterFrequency = f.first; + SetChannelWidth (f.second); + m_channelNumber = nch; + } + else + { + // Subclass may have suppressed (e.g. waiting for state change) + NS_LOG_DEBUG ("Channel switch suppressed"); + } + } + else + { + NS_FATAL_ERROR ("Frequency not found for channel number " << nch); + } +} + +uint16_t +WifiPhy::GetChannelNumber (void) const +{ + return m_channelNumber; +} + +bool +WifiPhy::DoChannelSwitch (uint16_t nch) +{ + return true; +} + +bool +WifiPhy::DoFrequencySwitch (uint32_t frequency) +{ + return true; +} + WifiMode WifiPhy::GetHtPlcpHeaderMode (WifiMode payloadMode) { diff --git a/src/wifi/model/wifi-phy.h b/src/wifi/model/wifi-phy.h index 33e620b15d2..177058c7e86 100644 --- a/src/wifi/model/wifi-phy.h +++ b/src/wifi/model/wifi-phy.h @@ -23,6 +23,7 @@ #define WIFI_PHY_H #include +#include #include "ns3/callback.h" #include "ns3/packet.h" #include "ns3/object.h" @@ -33,6 +34,7 @@ #include "wifi-phy-standard.h" #include "ns3/traced-callback.h" #include "wifi-tx-vector.h" +#include "wifi-phy-standard.h" namespace ns3 { @@ -556,16 +558,18 @@ class WifiPhy : public Object * * where Starting channel frequency is standard-dependent, see SetStandard() * as defined in (Section 18.3.8.4.2 "Channel numbering"; IEEE Std 802.11-2012). + * This method may fail to take action if the Phy model determines that + * the channel number cannot be switched for some reason (e.g. sleep state) * * \param id the channel number */ - virtual void SetChannelNumber (uint16_t id) = 0; + virtual void SetChannelNumber (uint16_t id); /** * Return current channel number. * * \return the current channel number */ - virtual uint16_t GetChannelNumber (void) const = 0; + virtual uint16_t GetChannelNumber (void) const; /** * \return the required time for channel switch operation of this WifiPhy */ @@ -576,7 +580,40 @@ class WifiPhy : public Object * * \param standard the Wi-Fi standard */ - virtual void ConfigureStandard (enum WifiPhyStandard standard) = 0; + virtual void ConfigureStandard (enum WifiPhyStandard standard); + + /** + * Get the configured Wi-Fi standard + * + * \return the Wi-Fi standard that has been configured + */ + virtual enum WifiPhyStandard GetStandard (void) const; + + /** + * Add a channel definition to the WifiPhy. The pair (channelNumber, + * WifiPhyStandard) may then be used to lookup a pair (frequency, + * channelWidth). + * + * If the channel is not already defined for the standard, the method + * should return true; otherwise false. + * + * \param channelNumber the channel number to define + * \param standard the applicable WifiPhyStandard + * \param frequency the frequency (MHz) + * \param channelWidth the channel width (MHz) + * + * \return true if the channel definition succeeded + */ + bool DefineChannelNumber (uint16_t channelNumber, enum WifiPhyStandard standard, uint32_t frequency, uint32_t channelWidth); + + /** + * A pair of a ChannelNumber and WifiPhyStandard + */ + typedef std::pair ChannelNumberStandardPair; + /** + * A pair of a center Frequency and a ChannelWidth + */ + typedef std::pair FrequencyWidthPair; /** * Return the WifiChannel this WifiPhy is connected to. @@ -1210,13 +1247,13 @@ class WifiPhy : public Object virtual int64_t AssignStreams (int64_t stream) = 0; /** - * \param freq the operating frequency on this node. + * \param freq the operating center frequency (MHz) on this node. */ - virtual void SetFrequency (uint32_t freq) = 0; + virtual void SetFrequency (uint32_t freq); /** - * \return the operating frequency on this node + * \return the operating center frequency (MHz) */ - virtual uint32_t GetFrequency (void) const = 0; + virtual uint32_t GetFrequency (void) const; /** * \param tx the number of transmitters on this node. */ @@ -1276,27 +1313,27 @@ class WifiPhy : public Object /** * \return the channel width */ - virtual uint32_t GetChannelWidth (void) const = 0; + virtual uint32_t GetChannelWidth (void) const; /** * \param channelwidth channel width */ - virtual void SetChannelWidth (uint32_t channelwidth) = 0; + virtual void SetChannelWidth (uint32_t channelwidth); /** - * \return the maximum number of supported Rx spatial streams + * \param channelwidth channel width (in MHz) to support */ - virtual uint8_t GetSupportedRxSpatialStreams (void) const = 0; + virtual void AddSupportedChannelWidth (uint32_t channelwidth); /** - * \return the maximum number of supported Tx spatial streams + * \return a vector containing the supported channel widths, values in MHz */ - virtual uint8_t GetSupportedTxSpatialStreams (void) const = 0; + virtual std::vector GetSupportedChannelWidthSet (void) const; /** - * \param width channel width (in MHz) to support + * \return the maximum number of supported Rx spatial streams */ - virtual void AddSupportedChannelWidth (uint32_t width) = 0; + virtual uint8_t GetSupportedRxSpatialStreams (void) const = 0; /** - * \return a vector containing the supported channel widths, values in MHz + * \return the maximum number of supported Tx spatial streams */ - virtual std::vector GetSupportedChannelWidthSet (void) const = 0; + virtual uint8_t GetSupportedTxSpatialStreams (void) const = 0; /** * Convert from dBm to Watts. * @@ -1330,7 +1367,61 @@ class WifiPhy : public Object */ double RatioToDb (double ratio) const; +protected: + // Inherited + virtual void DoInitialize (void); + /** + * The default implementation does nothing and returns true. This method + * is typically called internally by SetChannelNumber (). + * + * \brief Perform any actions necessary when user changes channel number + * \param id channel number to try to switch to + * \return true if WifiPhy can actually change the number; false if not + * \see SetChannelNumber + */ + virtual bool DoChannelSwitch (uint16_t id); + /** + * The default implementation does nothing and returns true. This method + * is typically called internally by SetFrequency (). + * + * \brief Perform any actions necessary when user changes frequency + * \param frequency frequency to try to switch to + * \return true if WifiPhy can actually change the frequency; false if not + * \see SetFrequency + */ + virtual bool DoFrequencySwitch (uint32_t frequency); private: + /** + * Configure the PHY-level parameters for different Wi-Fi standard. + * This method is called when defaults for each standard must be + * selected. + * + * \param standard the Wi-Fi standard + */ + virtual void ConfigureDefaultsForStandard (enum WifiPhyStandard standard); + /** + * Configure the PHY-level parameters for different Wi-Fi standard. + * This method is called when the Frequency or ChannelNumber attributes + * are set by the user. If the Frequency or ChannelNumber are valid for + * the standard, they are used instead. + * + * \param standard the Wi-Fi standard + */ + virtual void ConfigureChannelForStandard (enum WifiPhyStandard standard); + /** + * Look for channel number matching the frequency and width + * \param frequency The center frequency to use + * \param width The channel width to use + * \return the channel number if found, zero if not + */ + uint16_t FindChannelNumberForFrequencyWidth (uint32_t frequency, uint32_t width) const; + /** + * Lookup frequency/width pair for channelNumber/standard pair + * \param channelNumber The channel number to check + * \param standard The WifiPhyStandard to check + * \return the FrequencyWidthPair found + */ + FrequencyWidthPair GetFrequencyWidthForChannelNumberStandard (uint16_t channelNumber, enum WifiPhyStandard standard) const; /** * The trace source fired when a packet begins the transmission process on * the medium. @@ -1408,6 +1499,17 @@ class WifiPhy : public Object TracedCallback, uint16_t, uint16_t, uint32_t, WifiPreamble, WifiTxVector, struct mpduInfo> m_phyMonitorSniffTxTrace; + enum WifiPhyStandard m_standard; //!< WifiPhyStandard + uint32_t m_channelCenterFrequency; //!< Center frequency in MHz + uint32_t m_channelWidth; //!< Channel width + + + typedef std::map ChannelToFrequencyWidthMap; + static ChannelToFrequencyWidthMap m_channelToFrequencyWidth; + + std::vector m_supportedChannelWidthSet; //!< Supported channel width + uint16_t m_channelNumber; //!< Operating channel number + double m_totalAmpduNumSymbols; //!< Number of symbols previously transmitted for the MPDUs in an A-MPDU, used for the computation of the number of symbols needed for the last MPDU in the A-MPDU uint32_t m_totalAmpduSize; //!< Total size of the previously transmitted MPDUs in an A-MPDU, used for the computation of the number of symbols needed for the last MPDU in the A-MPDU }; diff --git a/src/wifi/model/yans-wifi-phy.cc b/src/wifi/model/yans-wifi-phy.cc index 1816e8b5da6..1749600e245 100644 --- a/src/wifi/model/yans-wifi-phy.cc +++ b/src/wifi/model/yans-wifi-phy.cc @@ -119,18 +119,6 @@ YansWifiPhy::GetTypeId (void) TimeValue (MicroSeconds (250)), MakeTimeAccessor (&YansWifiPhy::m_channelSwitchDelay), MakeTimeChecker ()) - .AddAttribute ("ChannelNumber", - "Channel center frequency = Channel starting frequency + 5 MHz * nch.", - UintegerValue (1), - MakeUintegerAccessor (&YansWifiPhy::SetChannelNumber, - &YansWifiPhy::GetChannelNumber), - MakeUintegerChecker ()) - .AddAttribute ("Frequency", - "The operating frequency.", - UintegerValue (2407), - MakeUintegerAccessor (&YansWifiPhy::GetFrequency, - &YansWifiPhy::SetFrequency), - MakeUintegerChecker ()) .AddAttribute ("TxAntennas", "The number of supported Tx antennas.", UintegerValue (1), @@ -177,22 +165,13 @@ YansWifiPhy::GetTypeId (void) MakeBooleanAccessor (&YansWifiPhy::GetShortPlcpPreambleSupported, &YansWifiPhy::SetShortPlcpPreambleSupported), MakeBooleanChecker ()) - .AddAttribute ("ChannelWidth", - "Whether 5MHz, 10MHz, 20MHz, 22MHz, 40MHz, 80 MHz or 160 MHz.", - UintegerValue (20), - MakeUintegerAccessor (&YansWifiPhy::GetChannelWidth, - &YansWifiPhy::SetChannelWidth), - MakeUintegerChecker ()) ; return tid; } YansWifiPhy::YansWifiPhy () - : m_initialized (false), - m_channelNumber (1), - m_endRxEvent (), + : m_endRxEvent (), m_endPlcpRxEvent (), - m_channelStartingFrequency (0), m_mpdusNum (0), m_plcpSuccess (false), m_txMpduReferenceNumber (0xffffffff), @@ -220,17 +199,115 @@ YansWifiPhy::DoDispose (void) m_state = 0; } -void -YansWifiPhy::DoInitialize () +bool +YansWifiPhy::DoChannelSwitch (uint16_t nch) { - NS_LOG_FUNCTION (this); - m_initialized = true; + if (!IsInitialized ()) + { + //this is not channel switch, this is initialization + NS_LOG_DEBUG ("initialize to channel " << nch); + return true; + } + + NS_ASSERT (!IsStateSwitching ()); + switch (m_state->GetState ()) + { + case YansWifiPhy::RX: + NS_LOG_DEBUG ("drop packet because of channel switching while reception"); + m_endPlcpRxEvent.Cancel (); + m_endRxEvent.Cancel (); + goto switchChannel; + break; + case YansWifiPhy::TX: + NS_LOG_DEBUG ("channel switching postponed until end of current transmission"); + Simulator::Schedule (GetDelayUntilIdle (), &WifiPhy::SetChannelNumber, this, nch); + break; + case YansWifiPhy::CCA_BUSY: + case YansWifiPhy::IDLE: + goto switchChannel; + break; + case YansWifiPhy::SLEEP: + NS_LOG_DEBUG ("channel switching ignored in sleep mode"); + break; + default: + NS_ASSERT (false); + break; + } + + return false; + +switchChannel: + + NS_LOG_DEBUG ("switching channel " << GetChannelNumber () << " -> " << nch); + m_state->SwitchToChannelSwitching (m_channelSwitchDelay); + m_interference.EraseEvents (); + /* + * Needed here to be able to correctly sensed the medium for the first + * time after the switching. The actual switching is not performed until + * after m_channelSwitchDelay. Packets received during the switching + * state are added to the event list and are employed later to figure + * out the state of the medium after the switching. + */ + return true; +} + +bool +YansWifiPhy::DoFrequencySwitch (uint32_t frequency) +{ + if (!IsInitialized ()) + { + //this is not channel switch, this is initialization + NS_LOG_DEBUG ("start at frequency " << frequency); + return true; + } + + NS_ASSERT (!IsStateSwitching ()); + switch (m_state->GetState ()) + { + case YansWifiPhy::RX: + NS_LOG_DEBUG ("drop packet because of channel/frequency switching while reception"); + m_endPlcpRxEvent.Cancel (); + m_endRxEvent.Cancel (); + goto switchFrequency; + break; + case YansWifiPhy::TX: + NS_LOG_DEBUG ("channel/frequency switching postponed until end of current transmission"); + Simulator::Schedule (GetDelayUntilIdle (), &WifiPhy::SetFrequency, this, frequency); + break; + case YansWifiPhy::CCA_BUSY: + case YansWifiPhy::IDLE: + goto switchFrequency; + break; + case YansWifiPhy::SLEEP: + NS_LOG_DEBUG ("frequency switching ignored in sleep mode"); + break; + default: + NS_ASSERT (false); + break; + } + + return false; + +switchFrequency: + + NS_LOG_DEBUG ("switching frequency " << GetFrequency () << " -> " << frequency); + m_state->SwitchToChannelSwitching (m_channelSwitchDelay); + m_interference.EraseEvents (); + /* + * Needed here to be able to correctly sensed the medium for the first + * time after the switching. The actual switching is not performed until + * after m_channelSwitchDelay. Packets received during the switching + * state are added to the event list and are employed later to figure + * out the state of the medium after the switching. + */ + return true; } void YansWifiPhy::ConfigureStandard (enum WifiPhyStandard standard) { NS_LOG_FUNCTION (this << standard); + WifiPhy::ConfigureStandard (standard); // set up base class switch (standard) { case WIFI_PHY_STANDARD_80211a: @@ -252,11 +329,9 @@ YansWifiPhy::ConfigureStandard (enum WifiPhyStandard standard) ConfigureHolland (); break; case WIFI_PHY_STANDARD_80211n_2_4GHZ: - m_channelStartingFrequency = 2407; Configure80211n (); break; case WIFI_PHY_STANDARD_80211n_5GHZ: - m_channelStartingFrequency = 5e3; Configure80211n (); break; case WIFI_PHY_STANDARD_80211ac: @@ -428,77 +503,12 @@ YansWifiPhy::SetChannel (Ptr channel) m_channel->Add (this); } -void -YansWifiPhy::SetChannelNumber (uint16_t nch) -{ - if (!m_initialized) - { - //this is not channel switch, this is initialization - NS_LOG_DEBUG ("start at channel " << nch); - m_channelNumber = nch; - return; - } - - NS_ASSERT (!IsStateSwitching ()); - switch (m_state->GetState ()) - { - case YansWifiPhy::RX: - NS_LOG_DEBUG ("drop packet because of channel switching while reception"); - m_endPlcpRxEvent.Cancel (); - m_endRxEvent.Cancel (); - goto switchChannel; - break; - case YansWifiPhy::TX: - NS_LOG_DEBUG ("channel switching postponed until end of current transmission"); - Simulator::Schedule (GetDelayUntilIdle (), &YansWifiPhy::SetChannelNumber, this, nch); - break; - case YansWifiPhy::CCA_BUSY: - case YansWifiPhy::IDLE: - goto switchChannel; - break; - case YansWifiPhy::SLEEP: - NS_LOG_DEBUG ("channel switching ignored in sleep mode"); - break; - default: - NS_ASSERT (false); - break; - } - - return; - -switchChannel: - - NS_LOG_DEBUG ("switching channel " << m_channelNumber << " -> " << nch); - m_state->SwitchToChannelSwitching (m_channelSwitchDelay); - m_interference.EraseEvents (); - /* - * Needed here to be able to correctly sensed the medium for the first - * time after the switching. The actual switching is not performed until - * after m_channelSwitchDelay. Packets received during the switching - * state are added to the event list and are employed later to figure - * out the state of the medium after the switching. - */ - m_channelNumber = nch; -} - -uint16_t -YansWifiPhy::GetChannelNumber (void) const -{ - return m_channelNumber; -} - Time YansWifiPhy::GetChannelSwitchDelay (void) const { return m_channelSwitchDelay; } -double -YansWifiPhy::GetChannelFrequencyMhz () const -{ - return m_channelStartingFrequency + 5 * GetChannelNumber (); -} - void YansWifiPhy::SetSleepMode (void) { @@ -824,7 +834,7 @@ YansWifiPhy::SendPacket (Ptr packet, WifiTxVector txVector, WifiPr struct mpduInfo aMpdu; aMpdu.type = mpdutype; aMpdu.mpduRefNumber = m_txMpduReferenceNumber; - NotifyMonitorSniffTx (packet, (uint16_t)GetChannelFrequencyMhz (), GetChannelNumber (), dataRate500KbpsUnits, preamble, txVector, aMpdu); + NotifyMonitorSniffTx (packet, (uint16_t)GetFrequency (), GetChannelNumber (), dataRate500KbpsUnits, preamble, txVector, aMpdu); m_state->SwitchToTx (txDuration, packet, GetPowerDbm (txVector.GetTxPowerLevel ()), txVector, preamble); m_channel->Send (this, packet, GetPowerDbm (txVector.GetTxPowerLevel ()) + m_txGainDb, txVector, preamble, mpdutype, txDuration); } @@ -876,8 +886,6 @@ void YansWifiPhy::Configure80211a (void) { NS_LOG_FUNCTION (this); - m_channelStartingFrequency = 5e3; //5.000 GHz - SetChannelWidth (20); //20 MHz m_deviceRateSet.push_back (WifiPhy::GetOfdmRate6Mbps ()); m_deviceRateSet.push_back (WifiPhy::GetOfdmRate9Mbps ()); @@ -893,8 +901,6 @@ void YansWifiPhy::Configure80211b (void) { NS_LOG_FUNCTION (this); - m_channelStartingFrequency = 2407; //2.407 GHz - SetChannelWidth (22); //22 MHz m_deviceRateSet.push_back (WifiPhy::GetDsssRate1Mbps ()); m_deviceRateSet.push_back (WifiPhy::GetDsssRate2Mbps ()); @@ -907,7 +913,6 @@ YansWifiPhy::Configure80211g (void) { NS_LOG_FUNCTION (this); Configure80211b (); - SetChannelWidth (20); //20 MHz m_deviceRateSet.push_back (WifiPhy::GetErpOfdmRate6Mbps ()); m_deviceRateSet.push_back (WifiPhy::GetErpOfdmRate9Mbps ()); @@ -923,8 +928,6 @@ void YansWifiPhy::Configure80211_10Mhz (void) { NS_LOG_FUNCTION (this); - m_channelStartingFrequency = 5e3; //5.000 GHz, suppose 802.11a - SetChannelWidth (10); //10 MHz m_deviceRateSet.push_back (WifiPhy::GetOfdmRate3MbpsBW10MHz ()); m_deviceRateSet.push_back (WifiPhy::GetOfdmRate4_5MbpsBW10MHz ()); @@ -940,8 +943,6 @@ void YansWifiPhy::Configure80211_5Mhz (void) { NS_LOG_FUNCTION (this); - m_channelStartingFrequency = 5e3; //5.000 GHz, suppose 802.11a - SetChannelWidth (5); //5 MHz m_deviceRateSet.push_back (WifiPhy::GetOfdmRate1_5MbpsBW5MHz ()); m_deviceRateSet.push_back (WifiPhy::GetOfdmRate2_25MbpsBW5MHz ()); @@ -957,8 +958,6 @@ void YansWifiPhy::ConfigureHolland (void) { NS_LOG_FUNCTION (this); - m_channelStartingFrequency = 5e3; //5.000 GHz - SetChannelWidth (20); //20 MHz m_deviceRateSet.push_back (WifiPhy::GetOfdmRate6Mbps ()); m_deviceRateSet.push_back (WifiPhy::GetOfdmRate12Mbps ()); @@ -1040,16 +1039,15 @@ void YansWifiPhy::Configure80211n (void) { NS_LOG_FUNCTION (this); - if (m_channelStartingFrequency >= 2400 && m_channelStartingFrequency <= 2500) //at 2.4 GHz + if (GetFrequency () >= 2400 && GetFrequency () <= 2500) //at 2.4 GHz { Configure80211b (); Configure80211g (); } - if (m_channelStartingFrequency >= 5000 && m_channelStartingFrequency <= 6000) //at 5 GHz + if (GetFrequency () >= 5000 && GetFrequency () <= 6000) //at 5 GHz { Configure80211a (); } - SetChannelWidth (20); //20 MHz m_bssMembershipSelectorSet.push_back (HT_PHY); ConfigureHtDeviceMcsSet (); } @@ -1058,9 +1056,7 @@ void YansWifiPhy::Configure80211ac (void) { NS_LOG_FUNCTION (this); - m_channelStartingFrequency = 5e3; //5.000 GHz Configure80211n (); - SetChannelWidth (80); //80 MHz m_deviceMcsSet.push_back (WifiPhy::GetVhtMcs0 ()); m_deviceMcsSet.push_back (WifiPhy::GetVhtMcs1 ()); @@ -1206,7 +1202,7 @@ YansWifiPhy::EndReceive (Ptr packet, enum WifiPreamble preamble, enum mp struct mpduInfo aMpdu; aMpdu.type = mpdutype; aMpdu.mpduRefNumber = m_rxMpduReferenceNumber; - NotifyMonitorSniffRx (packet, (uint16_t)GetChannelFrequencyMhz (), GetChannelNumber (), dataRate500KbpsUnits, event->GetPreambleType (), event->GetTxVector (), aMpdu, signalNoise); + NotifyMonitorSniffRx (packet, (uint16_t)GetFrequency (), GetChannelNumber (), dataRate500KbpsUnits, event->GetPreambleType (), event->GetTxVector (), aMpdu, signalNoise); m_state->SwitchFromRxEndOk (packet, snrPer.snr, event->GetTxVector (), event->GetPreambleType ()); } else @@ -1235,12 +1231,6 @@ YansWifiPhy::AssignStreams (int64_t stream) return 1; } -void -YansWifiPhy::SetFrequency (uint32_t freq) -{ - m_channelStartingFrequency = freq; -} - void YansWifiPhy::SetNumberOfTransmitAntennas (uint32_t tx) { @@ -1284,12 +1274,6 @@ YansWifiPhy::SetGuardInterval (bool guardInterval) m_guardInterval = guardInterval; } -uint32_t -YansWifiPhy::GetFrequency (void) const -{ - return m_channelStartingFrequency; -} - uint32_t YansWifiPhy::GetNumberOfTransmitAntennas (void) const { @@ -1332,20 +1316,6 @@ YansWifiPhy::SetShortPlcpPreambleSupported (bool enable) m_shortPreamble = enable; } -void -YansWifiPhy::SetChannelWidth (uint32_t channelwidth) -{ - NS_ASSERT_MSG (channelwidth == 5 || channelwidth == 10 || channelwidth == 20 || channelwidth == 22 || channelwidth == 40 || channelwidth == 80 || channelwidth == 160, "wrong channel width value"); - m_channelWidth = channelwidth; - AddSupportedChannelWidth (channelwidth); -} - -uint32_t -YansWifiPhy::GetChannelWidth (void) const -{ - return m_channelWidth; -} - uint8_t YansWifiPhy::GetSupportedRxSpatialStreams (void) const { @@ -1358,26 +1328,6 @@ YansWifiPhy::GetSupportedTxSpatialStreams (void) const return (static_cast (GetNumberOfTransmitAntennas ())); } -void -YansWifiPhy::AddSupportedChannelWidth (uint32_t width) -{ - NS_LOG_FUNCTION (this << width); - for (std::vector::size_type i = 0; i != m_supportedChannelWidthSet.size (); i++) - { - if (m_supportedChannelWidthSet[i] == width) - { - return; - } - } - m_supportedChannelWidthSet.push_back (width); -} - -std::vector -YansWifiPhy::GetSupportedChannelWidthSet (void) const -{ - return m_supportedChannelWidthSet; -} - uint32_t YansWifiPhy::GetNBssMembershipSelectors (void) const { diff --git a/src/wifi/model/yans-wifi-phy.h b/src/wifi/model/yans-wifi-phy.h index 17efd03c33c..d77e248a1ac 100644 --- a/src/wifi/model/yans-wifi-phy.h +++ b/src/wifi/model/yans-wifi-phy.h @@ -77,28 +77,10 @@ class YansWifiPhy : public WifiPhy * \param channel the YansWifiChannel this YansWifiPhy is to be connected to */ void SetChannel (Ptr channel); - /** - * Set the current channel number. - * - * \param id the channel number - */ - void SetChannelNumber (uint16_t id); - /** - * Return the current channel number. - * - * \return the current channel number - */ - uint16_t GetChannelNumber (void) const; /** * \return the required time for channel switch operation of this WifiPhy */ Time GetChannelSwitchDelay (void) const; - /** - * Return current center channel frequency in MHz. - * - * \return the current center channel frequency in MHz - */ - double GetChannelFrequencyMhz () const; /** * Starting receiving the plcp of a packet (i.e. the first bit of the preamble has arrived). @@ -314,14 +296,6 @@ class YansWifiPhy : public WifiPhy */ int64_t AssignStreams (int64_t stream); - /** - * \param freq the operating frequency on this node (2.4 GHz or 5GHz). - */ - virtual void SetFrequency (uint32_t freq); - /** - * \return the operating frequency on this node - */ - virtual uint32_t GetFrequency (void) const; /** * \param tx the number of transmitters on this node. */ @@ -397,23 +371,9 @@ class YansWifiPhy : public WifiPhy * \returns if short PLCP preamble is supported or not */ virtual bool GetShortPlcpPreambleSupported (void) const; - /** - * Return channel width. - * - * \return channel width - */ - virtual uint32_t GetChannelWidth (void) const; - /** - * Set channel width. - * - * \param channel width - */ - virtual void SetChannelWidth (uint32_t channelwidth); virtual uint8_t GetSupportedRxSpatialStreams (void) const; virtual uint8_t GetSupportedTxSpatialStreams (void) const; - virtual void AddSupportedChannelWidth (uint32_t width); - virtual std::vector GetSupportedChannelWidthSet (void) const; virtual uint32_t GetNBssMembershipSelectors (void) const; virtual uint32_t GetBssMembershipSelector (uint32_t selector) const; virtual WifiModeList GetMembershipSelectorModes (uint32_t selector); @@ -424,10 +384,13 @@ class YansWifiPhy : public WifiPhy virtual uint8_t GetNMcs (void) const; virtual WifiMode GetMcs (uint8_t mcs) const; -private: - virtual void DoInitialize (void); +protected: + // Inherited virtual void DoDispose (void); + virtual bool DoChannelSwitch (uint16_t id); + virtual bool DoFrequencySwitch (uint32_t frequency); +private: /** * Configure YansWifiPhy with appropriate channel frequency and * supported rates for 802.11a standard. @@ -494,7 +457,6 @@ class YansWifiPhy : public WifiPhy */ void EndReceive (Ptr packet, enum WifiPreamble preamble, enum mpduType mpdutype, Ptr event); - bool m_initialized; //!< Flag for runtime initialization double m_edThresholdW; //!< Energy detection threshold in watts double m_ccaMode1ThresholdW; //!< Clear channel assessment (CCA) threshold in watts double m_txGainDb; //!< Transmission gain (dB) @@ -504,7 +466,6 @@ class YansWifiPhy : public WifiPhy uint32_t m_nTxPower; //!< Number of available transmission power levels Ptr m_channel; //!< YansWifiChannel that this YansWifiPhy is connected to - uint16_t m_channelNumber; //!< Operating channel number Ptr m_device; //!< Pointer to the device Ptr m_mobility; //!< Pointer to the mobility model @@ -514,8 +475,6 @@ class YansWifiPhy : public WifiPhy bool m_stbc; //!< Flag if STBC is used bool m_greenfield; //!< Flag if GreenField format is supported bool m_guardInterval; //!< Flag if short guard interval is used - uint32_t m_channelWidth; //!< Channel width - std::vector m_supportedChannelWidthSet; //!< Supported channel width bool m_shortPreamble; //!< Flag if short PLCP preamble is supported /** @@ -562,7 +521,6 @@ class YansWifiPhy : public WifiPhy EventId m_endPlcpRxEvent; Ptr m_random; //!< Provides uniform random variables. - double m_channelStartingFrequency; //!< Standard-dependent center frequency of 0-th channel in MHz Ptr m_state; //!< Pointer to WifiPhyStateHelper InterferenceHelper m_interference; //!< Pointer to InterferenceHelper Time m_channelSwitchDelay; //!< Time required to switch between channel diff --git a/src/wifi/test/wifi-test.cc b/src/wifi/test/wifi-test.cc index ab7a2fdd3b0..111d69a9fcf 100644 --- a/src/wifi/test/wifi-test.cc +++ b/src/wifi/test/wifi-test.cc @@ -618,6 +618,337 @@ Bug730TestCase::DoRun (void) NS_TEST_ASSERT_MSG_EQ (result, true, "packet reception unexpectedly stopped after adapting fragmentation threshold!"); } +class SetChannelFrequencyTest: public TestCase +{ +public: + SetChannelFrequencyTest (); + + virtual void DoRun (void); + + +private: + + Ptr GetYansWifiPhyPtr (const NetDeviceContainer &nc) const; + +}; + +SetChannelFrequencyTest::SetChannelFrequencyTest () + : TestCase ("Test case for setting WifiPhy channel and frequency") +{ +} + +Ptr +SetChannelFrequencyTest::GetYansWifiPhyPtr (const NetDeviceContainer &nc) const +{ + Ptr wnd = nc.Get (0)->GetObject (); + Ptr wp = wnd->GetPhy (); + return wp->GetObject (); +} + +void +SetChannelFrequencyTest::DoRun () +{ + NodeContainer wifiStaNode; + wifiStaNode.Create (1); + NodeContainer wifiApNode; + wifiApNode.Create (1); + + YansWifiChannelHelper channel = YansWifiChannelHelper::Default (); + YansWifiPhyHelper phy = YansWifiPhyHelper::Default (); + phy.SetChannel (channel.Create ()); + + // Configure and declare other generic components of this example + Ssid ssid; + ssid = Ssid ("wifi-phy-configuration"); + WifiMacHelper macSta; + macSta.SetType ("ns3::StaWifiMac", + "Ssid", SsidValue (ssid), + "ActiveProbing", BooleanValue (false)); + NetDeviceContainer staDevice; + Ptr phySta; + + // Cases taken from src/wifi/examples/wifi-phy-configuration.cc example + { + // case 0 + // Default configuration, without WifiHelper::SetStandard or WifiHelper + phySta = CreateObject (); + // The default results in an invalid configuration of channel 0, + // width 20, and frequency 0 MHz + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 0, "default configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "default configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 0, "default configuration"); + } + { + // case 1 + WifiHelper wifi; + // By default, WifiHelper will use WIFI_PHY_STANDARD_80211a + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 36, width 20, frequency 5180 + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 36, "default configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "default configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5180, "default configuration"); + } + { + // case 2 + WifiHelper wifi; + wifi.SetStandard (WIFI_PHY_STANDARD_80211b); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 1, width 22, frequency 2412 + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 1, "802.11b configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 22, "802.11b configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 2412, "802.11b configuration"); + } + { + // case 3 + WifiHelper wifi; + wifi.SetStandard (WIFI_PHY_STANDARD_80211g); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 1, width 20, frequency 2412 + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 1, "802.11g configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11g configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 2412, "802.11g configuration"); + } + { + // case 4 + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 36, "802.11n-5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11n-5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5180, "802.11n-5GHz configuration"); + } + { + // case 5 + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_2_4GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 1, "802.11n-2.4GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11n-2.4GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 2412, "802.11n-2.4GHz configuration"); + } + { + // case 6 + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + wifi.SetStandard (WIFI_PHY_STANDARD_80211ac); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 42, "802.11ac configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 80, "802.11ac configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5210, "802.11ac configuration"); + } + { + // case 7 + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + wifi.SetStandard (WIFI_PHY_STANDARD_80211_10MHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 172, "802.11 10Mhz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 10, "802.11 10Mhz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5860, "802.11 10Mhz configuration"); + } + { + // case 8 + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + wifi.SetStandard (WIFI_PHY_STANDARD_80211_5MHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 0, "802.11 5Mhz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 5, "802.11 5Mhz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5860, "802.11 5Mhz configuration"); + } + { + // case 9 + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + wifi.SetStandard (WIFI_PHY_STANDARD_holland); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // We expect channel 36, width 20, frequency 5180 + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 36, "802.11 5Mhz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5Mhz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5180, "802.11 5Mhz configuration"); + } + { + // case 10 + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + phy.Set ("ChannelNumber", UintegerValue(44)); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 44, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5220, "802.11 5GHz configuration"); + } + { + // case 11 + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + phy.Set ("ChannelNumber", UintegerValue(44)); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // Post-install reconfiguration to channel number 40 + Config::Set ("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Phy/$ns3::YansWifiPhy/ChannelNumber", UintegerValue(40)); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 40, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5200, "802.11 5GHz configuration"); + } + { + // case 12 + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + phy.Set ("ChannelNumber", UintegerValue (44)); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // Post-install reconfiguration to channel width 40 MHz + Config::Set ("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Phy/$ns3::YansWifiPhy/ChannelWidth", UintegerValue(40)); + // Although channel 44 is configured originally for 20 MHz, we + // allow it to be used for 40 MHz here + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 44, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 40, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5220, "802.11 5GHz configuration"); + } + // modify cases 13 and 14 to avoid Config::SetDefault () + { + // case 13 + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + phySta->SetAttribute ("ChannelNumber", UintegerValue (44)); + // Post-install reconfiguration to channel width 40 MHz + Config::Set ("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Phy/$ns3::YansWifiPhy/ChannelWidth", UintegerValue(40)); + // Although channel 44 is configured originally for 20 MHz, we + // allow it to be used for 40 MHz here + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 44, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 40, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5220, "802.11 5GHz configuration"); + } + { + // case 14 + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + // Test that setting Frequency to a non-standard value will zero the + // channel number + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + phySta->SetAttribute ("Frequency", UintegerValue (5281)); + // We expect channel number to be zero since frequency doesn't match + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 0, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5281, "802.11 5GHz configuration"); + } + { + // case 15: + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + // Test that setting Frequency to a standard value will set the + // channel number correctly + phySta->SetAttribute ("Frequency", UintegerValue (5500)); + // We expect channel number to be 100 due to frequency 5500 + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 100, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5500, "802.11 5GHz configuration"); + } + { + // case 16: + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get (0)); + phySta = GetYansWifiPhyPtr (staDevice); + // This case will error exit due to invalid channel number unless + // we provide the DefineChannelNumber() below + phySta->DefineChannelNumber (99, WIFI_PHY_STANDARD_80211n_5GHZ, 5185, 40); + phySta->SetAttribute ("ChannelNumber", UintegerValue (99)); + } + { + // case 17: + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + // Test how channel number behaves when frequency is non-standard + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + phySta->SetAttribute ("Frequency", UintegerValue (5181)); + // We expect channel number to be 0 due to unknown center frequency 5181 + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 0, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5181, "802.11 5GHz configuration"); + phySta->SetAttribute ("Frequency", UintegerValue (5180)); + // We expect channel number to be 36 due to known center frequency 5180 + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 36, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5180, "802.11 5GHz configuration"); + phySta->SetAttribute ("Frequency", UintegerValue (5179)); + // We expect channel number to be 0 due to unknown center frequency 5179 + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 0, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5179, "802.11 5GHz configuration"); + phySta->SetAttribute ("ChannelNumber", UintegerValue (36)); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 36, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5180, "802.11 5GHz configuration"); + } + { + // case 18: + WifiHelper wifi; + wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); + // Set both channel and frequency to consistent values + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + staDevice = wifi.Install (phy, macSta, wifiStaNode.Get(0)); + phySta = GetYansWifiPhyPtr (staDevice); + phySta->SetAttribute ("Frequency", UintegerValue (5200)); + phySta->SetAttribute ("ChannelNumber", UintegerValue (40)); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 40, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5200, "802.11 5GHz configuration"); + // Set both channel and frequency to inconsistent values + phySta->SetAttribute ("Frequency", UintegerValue (5200)); + phySta->SetAttribute ("ChannelNumber", UintegerValue (36)); + // We expect channel number to be 36 + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 36, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5180, "802.11 5GHz configuration"); + phySta->SetAttribute ("ChannelNumber", UintegerValue (36)); + phySta->SetAttribute ("Frequency", UintegerValue (5200)); + // We expect channel number to be 40 + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 40, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5200, "802.11 5GHz configuration"); + phySta->SetAttribute ("Frequency", UintegerValue (5179)); + phySta->SetAttribute ("ChannelNumber", UintegerValue (36)); + // We expect channel number to be 36 + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 36, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5180, "802.11 5GHz configuration"); + phySta->SetAttribute ("ChannelNumber", UintegerValue (36)); + phySta->SetAttribute ("Frequency", UintegerValue (5179)); + // We expect channel number to be 0 + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelNumber (), 0, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetChannelWidth (), 20, "802.11 5GHz configuration"); + NS_TEST_ASSERT_MSG_EQ (phySta->GetFrequency (), 5179, "802.11 5GHz configuration"); + } + +Simulator::Destroy (); + +} + //----------------------------------------------------------------------------- class WifiTestSuite : public TestSuite { @@ -633,6 +964,7 @@ WifiTestSuite::WifiTestSuite () AddTestCase (new InterferenceHelperSequenceTest, TestCase::QUICK); //Bug 991 AddTestCase (new Bug555TestCase, TestCase::QUICK); //Bug 555 AddTestCase (new Bug730TestCase, TestCase::QUICK); //Bug 730 + AddTestCase (new SetChannelFrequencyTest, TestCase::QUICK); } static WifiTestSuite g_wifiTestSuite; From 8f7c2e320f22f8cbf3b66952f260e799a247e9cc Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Wed, 20 Jul 2016 22:41:57 -0700 Subject: [PATCH 11/27] bindings: rescan wifi and wave modules --- src/wave/bindings/modulegen__gcc_ILP32.py | 120 ++++++++++------------ src/wave/bindings/modulegen__gcc_LP64.py | 120 ++++++++++------------ src/wifi/bindings/modulegen__gcc_ILP32.py | 120 ++++++++++------------ src/wifi/bindings/modulegen__gcc_LP64.py | 120 ++++++++++------------ 4 files changed, 228 insertions(+), 252 deletions(-) diff --git a/src/wave/bindings/modulegen__gcc_ILP32.py b/src/wave/bindings/modulegen__gcc_ILP32.py index 43de4c00285..9d7a1aad420 100644 --- a/src/wave/bindings/modulegen__gcc_ILP32.py +++ b/src/wave/bindings/modulegen__gcc_ILP32.py @@ -31,7 +31,7 @@ def register_types(module): ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration] module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] - module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') + module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac', 'WIFI_PHY_STANDARD_UNSPECIFIED'], import_from_module='ns.wifi') ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') ## channel-scheduler.h (module 'wave'): ns3::ChannelAccess [enumeration] @@ -9222,11 +9222,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_constructor([param('ns3::WifiPhy const &', 'arg0')]) ## wifi-phy.h (module 'wifi'): ns3::WifiPhy::WifiPhy() [constructor] cls.add_constructor([]) - ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t width) [member function] + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t channelwidth) [member function] cls.add_method('AddSupportedChannelWidth', 'void', - [param('uint32_t', 'width')], - is_pure_virtual=True, is_virtual=True) + [param('uint32_t', 'channelwidth')], + is_virtual=True) ## wifi-phy.h (module 'wifi'): int64_t ns3::WifiPhy::AssignStreams(int64_t stream) [member function] cls.add_method('AssignStreams', 'int64_t', @@ -9253,7 +9253,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('ConfigureStandard', 'void', [param('ns3::WifiPhyStandard', 'standard')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): double ns3::WifiPhy::DbToRatio(double db) const [member function] cls.add_method('DbToRatio', 'double', @@ -9264,6 +9264,10 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'dbm')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DefineChannelNumber(uint16_t channelNumber, ns3::WifiPhyStandard standard, uint32_t frequency, uint32_t channelWidth) [member function] + cls.add_method('DefineChannelNumber', + 'bool', + [param('uint16_t', 'channelNumber'), param('ns3::WifiPhyStandard', 'standard'), param('uint32_t', 'frequency'), param('uint32_t', 'channelWidth')]) ## wifi-phy.h (module 'wifi'): uint32_t ns3::WifiPhy::GetBssMembershipSelector(uint32_t selector) const [member function] cls.add_method('GetBssMembershipSelector', 'uint32_t', @@ -9278,7 +9282,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelNumber', 'uint16_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetChannelSwitchDelay() const [member function] cls.add_method('GetChannelSwitchDelay', 'ns3::Time', @@ -9288,7 +9292,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelWidth', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetDelayUntilIdle() [member function] cls.add_method('GetDelayUntilIdle', 'ns3::Time', @@ -9358,7 +9362,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetFrequency', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::GetGreenfield() const [member function] cls.add_method('GetGreenfield', 'bool', @@ -9762,6 +9766,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## wifi-phy.h (module 'wifi'): ns3::WifiPhyStandard ns3::WifiPhy::GetStandard() const [member function] + cls.add_method('GetStandard', + 'ns3::WifiPhyStandard', + [], + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetStateDuration() [member function] cls.add_method('GetStateDuration', 'ns3::Time', @@ -9776,7 +9785,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetSupportedChannelWidthSet', 'std::vector< unsigned int >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): uint8_t ns3::WifiPhy::GetSupportedRxSpatialStreams() const [member function] cls.add_method('GetSupportedRxSpatialStreams', 'uint8_t', @@ -9963,17 +9972,17 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('SetChannelNumber', 'void', [param('uint16_t', 'id')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetChannelWidth(uint32_t channelwidth) [member function] cls.add_method('SetChannelWidth', 'void', [param('uint32_t', 'channelwidth')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetFrequency(uint32_t freq) [member function] cls.add_method('SetFrequency', 'void', [param('uint32_t', 'freq')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetGreenfield(bool greenfield) [member function] cls.add_method('SetGreenfield', 'void', @@ -10034,6 +10043,31 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'w')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureChannelForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureChannelForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureDefaultsForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureDefaultsForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) return def register_Ns3WifiRemoteStationManager_methods(root_module, cls): @@ -10703,11 +10737,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): cls.add_constructor([param('ns3::YansWifiPhy const &', 'arg0')]) ## yans-wifi-phy.h (module 'wifi'): ns3::YansWifiPhy::YansWifiPhy() [constructor] cls.add_constructor([]) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::AddSupportedChannelWidth(uint32_t width) [member function] - cls.add_method('AddSupportedChannelWidth', - 'void', - [param('uint32_t', 'width')], - is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): int64_t ns3::YansWifiPhy::AssignStreams(int64_t stream) [member function] cls.add_method('AssignStreams', 'int64_t', @@ -10738,26 +10767,11 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'ns3::Ptr< ns3::WifiChannel >', [], is_const=True, is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): double ns3::YansWifiPhy::GetChannelFrequencyMhz() const [member function] - cls.add_method('GetChannelFrequencyMhz', - 'double', - [], - is_const=True) - ## yans-wifi-phy.h (module 'wifi'): uint16_t ns3::YansWifiPhy::GetChannelNumber() const [member function] - cls.add_method('GetChannelNumber', - 'uint16_t', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): ns3::Time ns3::YansWifiPhy::GetChannelSwitchDelay() const [member function] cls.add_method('GetChannelSwitchDelay', 'ns3::Time', [], is_const=True, is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): uint32_t ns3::YansWifiPhy::GetChannelWidth() const [member function] - cls.add_method('GetChannelWidth', - 'uint32_t', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): ns3::Time ns3::YansWifiPhy::GetDelayUntilIdle() [member function] cls.add_method('GetDelayUntilIdle', 'ns3::Time', @@ -10778,11 +10792,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'ns3::Ptr< ns3::ErrorRateModel >', [], is_const=True) - ## yans-wifi-phy.h (module 'wifi'): uint32_t ns3::YansWifiPhy::GetFrequency() const [member function] - cls.add_method('GetFrequency', - 'uint32_t', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): bool ns3::YansWifiPhy::GetGreenfield() const [member function] cls.add_method('GetGreenfield', 'bool', @@ -10877,11 +10886,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'bool', [], is_const=True, is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): std::vector > ns3::YansWifiPhy::GetSupportedChannelWidthSet() const [member function] - cls.add_method('GetSupportedChannelWidthSet', - 'std::vector< unsigned int >', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): uint8_t ns3::YansWifiPhy::GetSupportedRxSpatialStreams() const [member function] cls.add_method('GetSupportedRxSpatialStreams', 'uint8_t', @@ -10985,16 +10989,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): cls.add_method('SetChannel', 'void', [param('ns3::Ptr< ns3::YansWifiChannel >', 'channel')]) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetChannelNumber(uint16_t id) [member function] - cls.add_method('SetChannelNumber', - 'void', - [param('uint16_t', 'id')], - is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetChannelWidth(uint32_t channelwidth) [member function] - cls.add_method('SetChannelWidth', - 'void', - [param('uint32_t', 'channelwidth')], - is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetDevice(ns3::Ptr device) [member function] cls.add_method('SetDevice', 'void', @@ -11007,11 +11001,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): cls.add_method('SetErrorRateModel', 'void', [param('ns3::Ptr< ns3::ErrorRateModel >', 'rate')]) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetFrequency(uint32_t freq) [member function] - cls.add_method('SetFrequency', - 'void', - [param('uint32_t', 'freq')], - is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetGreenfield(bool greenfield) [member function] cls.add_method('SetGreenfield', 'void', @@ -11103,16 +11092,21 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'void', [param('ns3::WifiPhyListener *', 'listener')], is_virtual=True) + ## yans-wifi-phy.h (module 'wifi'): bool ns3::YansWifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::DoDispose() [member function] cls.add_method('DoDispose', 'void', [], - visibility='private', is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='private', is_virtual=True) + visibility='protected', is_virtual=True) + ## yans-wifi-phy.h (module 'wifi'): bool ns3::YansWifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) return def register_Ns3ZetaRandomVariable_methods(root_module, cls): diff --git a/src/wave/bindings/modulegen__gcc_LP64.py b/src/wave/bindings/modulegen__gcc_LP64.py index 43de4c00285..9d7a1aad420 100644 --- a/src/wave/bindings/modulegen__gcc_LP64.py +++ b/src/wave/bindings/modulegen__gcc_LP64.py @@ -31,7 +31,7 @@ def register_types(module): ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration] module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] - module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') + module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac', 'WIFI_PHY_STANDARD_UNSPECIFIED'], import_from_module='ns.wifi') ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') ## channel-scheduler.h (module 'wave'): ns3::ChannelAccess [enumeration] @@ -9222,11 +9222,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_constructor([param('ns3::WifiPhy const &', 'arg0')]) ## wifi-phy.h (module 'wifi'): ns3::WifiPhy::WifiPhy() [constructor] cls.add_constructor([]) - ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t width) [member function] + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t channelwidth) [member function] cls.add_method('AddSupportedChannelWidth', 'void', - [param('uint32_t', 'width')], - is_pure_virtual=True, is_virtual=True) + [param('uint32_t', 'channelwidth')], + is_virtual=True) ## wifi-phy.h (module 'wifi'): int64_t ns3::WifiPhy::AssignStreams(int64_t stream) [member function] cls.add_method('AssignStreams', 'int64_t', @@ -9253,7 +9253,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('ConfigureStandard', 'void', [param('ns3::WifiPhyStandard', 'standard')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): double ns3::WifiPhy::DbToRatio(double db) const [member function] cls.add_method('DbToRatio', 'double', @@ -9264,6 +9264,10 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'dbm')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DefineChannelNumber(uint16_t channelNumber, ns3::WifiPhyStandard standard, uint32_t frequency, uint32_t channelWidth) [member function] + cls.add_method('DefineChannelNumber', + 'bool', + [param('uint16_t', 'channelNumber'), param('ns3::WifiPhyStandard', 'standard'), param('uint32_t', 'frequency'), param('uint32_t', 'channelWidth')]) ## wifi-phy.h (module 'wifi'): uint32_t ns3::WifiPhy::GetBssMembershipSelector(uint32_t selector) const [member function] cls.add_method('GetBssMembershipSelector', 'uint32_t', @@ -9278,7 +9282,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelNumber', 'uint16_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetChannelSwitchDelay() const [member function] cls.add_method('GetChannelSwitchDelay', 'ns3::Time', @@ -9288,7 +9292,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelWidth', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetDelayUntilIdle() [member function] cls.add_method('GetDelayUntilIdle', 'ns3::Time', @@ -9358,7 +9362,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetFrequency', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::GetGreenfield() const [member function] cls.add_method('GetGreenfield', 'bool', @@ -9762,6 +9766,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## wifi-phy.h (module 'wifi'): ns3::WifiPhyStandard ns3::WifiPhy::GetStandard() const [member function] + cls.add_method('GetStandard', + 'ns3::WifiPhyStandard', + [], + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetStateDuration() [member function] cls.add_method('GetStateDuration', 'ns3::Time', @@ -9776,7 +9785,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetSupportedChannelWidthSet', 'std::vector< unsigned int >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): uint8_t ns3::WifiPhy::GetSupportedRxSpatialStreams() const [member function] cls.add_method('GetSupportedRxSpatialStreams', 'uint8_t', @@ -9963,17 +9972,17 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('SetChannelNumber', 'void', [param('uint16_t', 'id')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetChannelWidth(uint32_t channelwidth) [member function] cls.add_method('SetChannelWidth', 'void', [param('uint32_t', 'channelwidth')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetFrequency(uint32_t freq) [member function] cls.add_method('SetFrequency', 'void', [param('uint32_t', 'freq')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetGreenfield(bool greenfield) [member function] cls.add_method('SetGreenfield', 'void', @@ -10034,6 +10043,31 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'w')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureChannelForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureChannelForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureDefaultsForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureDefaultsForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) return def register_Ns3WifiRemoteStationManager_methods(root_module, cls): @@ -10703,11 +10737,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): cls.add_constructor([param('ns3::YansWifiPhy const &', 'arg0')]) ## yans-wifi-phy.h (module 'wifi'): ns3::YansWifiPhy::YansWifiPhy() [constructor] cls.add_constructor([]) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::AddSupportedChannelWidth(uint32_t width) [member function] - cls.add_method('AddSupportedChannelWidth', - 'void', - [param('uint32_t', 'width')], - is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): int64_t ns3::YansWifiPhy::AssignStreams(int64_t stream) [member function] cls.add_method('AssignStreams', 'int64_t', @@ -10738,26 +10767,11 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'ns3::Ptr< ns3::WifiChannel >', [], is_const=True, is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): double ns3::YansWifiPhy::GetChannelFrequencyMhz() const [member function] - cls.add_method('GetChannelFrequencyMhz', - 'double', - [], - is_const=True) - ## yans-wifi-phy.h (module 'wifi'): uint16_t ns3::YansWifiPhy::GetChannelNumber() const [member function] - cls.add_method('GetChannelNumber', - 'uint16_t', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): ns3::Time ns3::YansWifiPhy::GetChannelSwitchDelay() const [member function] cls.add_method('GetChannelSwitchDelay', 'ns3::Time', [], is_const=True, is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): uint32_t ns3::YansWifiPhy::GetChannelWidth() const [member function] - cls.add_method('GetChannelWidth', - 'uint32_t', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): ns3::Time ns3::YansWifiPhy::GetDelayUntilIdle() [member function] cls.add_method('GetDelayUntilIdle', 'ns3::Time', @@ -10778,11 +10792,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'ns3::Ptr< ns3::ErrorRateModel >', [], is_const=True) - ## yans-wifi-phy.h (module 'wifi'): uint32_t ns3::YansWifiPhy::GetFrequency() const [member function] - cls.add_method('GetFrequency', - 'uint32_t', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): bool ns3::YansWifiPhy::GetGreenfield() const [member function] cls.add_method('GetGreenfield', 'bool', @@ -10877,11 +10886,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'bool', [], is_const=True, is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): std::vector > ns3::YansWifiPhy::GetSupportedChannelWidthSet() const [member function] - cls.add_method('GetSupportedChannelWidthSet', - 'std::vector< unsigned int >', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): uint8_t ns3::YansWifiPhy::GetSupportedRxSpatialStreams() const [member function] cls.add_method('GetSupportedRxSpatialStreams', 'uint8_t', @@ -10985,16 +10989,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): cls.add_method('SetChannel', 'void', [param('ns3::Ptr< ns3::YansWifiChannel >', 'channel')]) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetChannelNumber(uint16_t id) [member function] - cls.add_method('SetChannelNumber', - 'void', - [param('uint16_t', 'id')], - is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetChannelWidth(uint32_t channelwidth) [member function] - cls.add_method('SetChannelWidth', - 'void', - [param('uint32_t', 'channelwidth')], - is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetDevice(ns3::Ptr device) [member function] cls.add_method('SetDevice', 'void', @@ -11007,11 +11001,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): cls.add_method('SetErrorRateModel', 'void', [param('ns3::Ptr< ns3::ErrorRateModel >', 'rate')]) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetFrequency(uint32_t freq) [member function] - cls.add_method('SetFrequency', - 'void', - [param('uint32_t', 'freq')], - is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetGreenfield(bool greenfield) [member function] cls.add_method('SetGreenfield', 'void', @@ -11103,16 +11092,21 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'void', [param('ns3::WifiPhyListener *', 'listener')], is_virtual=True) + ## yans-wifi-phy.h (module 'wifi'): bool ns3::YansWifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::DoDispose() [member function] cls.add_method('DoDispose', 'void', [], - visibility='private', is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='private', is_virtual=True) + visibility='protected', is_virtual=True) + ## yans-wifi-phy.h (module 'wifi'): bool ns3::YansWifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) return def register_Ns3ZetaRandomVariable_methods(root_module, cls): diff --git a/src/wifi/bindings/modulegen__gcc_ILP32.py b/src/wifi/bindings/modulegen__gcc_ILP32.py index e5f3b69985e..42f20aa99ed 100644 --- a/src/wifi/bindings/modulegen__gcc_ILP32.py +++ b/src/wifi/bindings/modulegen__gcc_ILP32.py @@ -33,7 +33,7 @@ def register_types(module): ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration] module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT']) ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] - module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac']) + module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac', 'WIFI_PHY_STANDARD_UNSPECIFIED']) ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF']) ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] @@ -8305,11 +8305,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_constructor([param('ns3::WifiPhy const &', 'arg0')]) ## wifi-phy.h (module 'wifi'): ns3::WifiPhy::WifiPhy() [constructor] cls.add_constructor([]) - ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t width) [member function] + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t channelwidth) [member function] cls.add_method('AddSupportedChannelWidth', 'void', - [param('uint32_t', 'width')], - is_pure_virtual=True, is_virtual=True) + [param('uint32_t', 'channelwidth')], + is_virtual=True) ## wifi-phy.h (module 'wifi'): int64_t ns3::WifiPhy::AssignStreams(int64_t stream) [member function] cls.add_method('AssignStreams', 'int64_t', @@ -8336,7 +8336,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('ConfigureStandard', 'void', [param('ns3::WifiPhyStandard', 'standard')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): double ns3::WifiPhy::DbToRatio(double db) const [member function] cls.add_method('DbToRatio', 'double', @@ -8347,6 +8347,10 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'dbm')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DefineChannelNumber(uint16_t channelNumber, ns3::WifiPhyStandard standard, uint32_t frequency, uint32_t channelWidth) [member function] + cls.add_method('DefineChannelNumber', + 'bool', + [param('uint16_t', 'channelNumber'), param('ns3::WifiPhyStandard', 'standard'), param('uint32_t', 'frequency'), param('uint32_t', 'channelWidth')]) ## wifi-phy.h (module 'wifi'): uint32_t ns3::WifiPhy::GetBssMembershipSelector(uint32_t selector) const [member function] cls.add_method('GetBssMembershipSelector', 'uint32_t', @@ -8361,7 +8365,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelNumber', 'uint16_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetChannelSwitchDelay() const [member function] cls.add_method('GetChannelSwitchDelay', 'ns3::Time', @@ -8371,7 +8375,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelWidth', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetDelayUntilIdle() [member function] cls.add_method('GetDelayUntilIdle', 'ns3::Time', @@ -8441,7 +8445,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetFrequency', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::GetGreenfield() const [member function] cls.add_method('GetGreenfield', 'bool', @@ -8845,6 +8849,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## wifi-phy.h (module 'wifi'): ns3::WifiPhyStandard ns3::WifiPhy::GetStandard() const [member function] + cls.add_method('GetStandard', + 'ns3::WifiPhyStandard', + [], + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetStateDuration() [member function] cls.add_method('GetStateDuration', 'ns3::Time', @@ -8859,7 +8868,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetSupportedChannelWidthSet', 'std::vector< unsigned int >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): uint8_t ns3::WifiPhy::GetSupportedRxSpatialStreams() const [member function] cls.add_method('GetSupportedRxSpatialStreams', 'uint8_t', @@ -9046,17 +9055,17 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('SetChannelNumber', 'void', [param('uint16_t', 'id')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetChannelWidth(uint32_t channelwidth) [member function] cls.add_method('SetChannelWidth', 'void', [param('uint32_t', 'channelwidth')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetFrequency(uint32_t freq) [member function] cls.add_method('SetFrequency', 'void', [param('uint32_t', 'freq')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetGreenfield(bool greenfield) [member function] cls.add_method('SetGreenfield', 'void', @@ -9117,6 +9126,31 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'w')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureChannelForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureChannelForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureDefaultsForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureDefaultsForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) return def register_Ns3WifiPhyStateHelper_methods(root_module, cls): @@ -9893,11 +9927,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): cls.add_constructor([param('ns3::YansWifiPhy const &', 'arg0')]) ## yans-wifi-phy.h (module 'wifi'): ns3::YansWifiPhy::YansWifiPhy() [constructor] cls.add_constructor([]) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::AddSupportedChannelWidth(uint32_t width) [member function] - cls.add_method('AddSupportedChannelWidth', - 'void', - [param('uint32_t', 'width')], - is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): int64_t ns3::YansWifiPhy::AssignStreams(int64_t stream) [member function] cls.add_method('AssignStreams', 'int64_t', @@ -9928,26 +9957,11 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'ns3::Ptr< ns3::WifiChannel >', [], is_const=True, is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): double ns3::YansWifiPhy::GetChannelFrequencyMhz() const [member function] - cls.add_method('GetChannelFrequencyMhz', - 'double', - [], - is_const=True) - ## yans-wifi-phy.h (module 'wifi'): uint16_t ns3::YansWifiPhy::GetChannelNumber() const [member function] - cls.add_method('GetChannelNumber', - 'uint16_t', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): ns3::Time ns3::YansWifiPhy::GetChannelSwitchDelay() const [member function] cls.add_method('GetChannelSwitchDelay', 'ns3::Time', [], is_const=True, is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): uint32_t ns3::YansWifiPhy::GetChannelWidth() const [member function] - cls.add_method('GetChannelWidth', - 'uint32_t', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): ns3::Time ns3::YansWifiPhy::GetDelayUntilIdle() [member function] cls.add_method('GetDelayUntilIdle', 'ns3::Time', @@ -9968,11 +9982,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'ns3::Ptr< ns3::ErrorRateModel >', [], is_const=True) - ## yans-wifi-phy.h (module 'wifi'): uint32_t ns3::YansWifiPhy::GetFrequency() const [member function] - cls.add_method('GetFrequency', - 'uint32_t', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): bool ns3::YansWifiPhy::GetGreenfield() const [member function] cls.add_method('GetGreenfield', 'bool', @@ -10067,11 +10076,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'bool', [], is_const=True, is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): std::vector > ns3::YansWifiPhy::GetSupportedChannelWidthSet() const [member function] - cls.add_method('GetSupportedChannelWidthSet', - 'std::vector< unsigned int >', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): uint8_t ns3::YansWifiPhy::GetSupportedRxSpatialStreams() const [member function] cls.add_method('GetSupportedRxSpatialStreams', 'uint8_t', @@ -10175,16 +10179,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): cls.add_method('SetChannel', 'void', [param('ns3::Ptr< ns3::YansWifiChannel >', 'channel')]) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetChannelNumber(uint16_t id) [member function] - cls.add_method('SetChannelNumber', - 'void', - [param('uint16_t', 'id')], - is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetChannelWidth(uint32_t channelwidth) [member function] - cls.add_method('SetChannelWidth', - 'void', - [param('uint32_t', 'channelwidth')], - is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetDevice(ns3::Ptr device) [member function] cls.add_method('SetDevice', 'void', @@ -10197,11 +10191,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): cls.add_method('SetErrorRateModel', 'void', [param('ns3::Ptr< ns3::ErrorRateModel >', 'rate')]) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetFrequency(uint32_t freq) [member function] - cls.add_method('SetFrequency', - 'void', - [param('uint32_t', 'freq')], - is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetGreenfield(bool greenfield) [member function] cls.add_method('SetGreenfield', 'void', @@ -10293,16 +10282,21 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'void', [param('ns3::WifiPhyListener *', 'listener')], is_virtual=True) + ## yans-wifi-phy.h (module 'wifi'): bool ns3::YansWifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::DoDispose() [member function] cls.add_method('DoDispose', 'void', [], - visibility='private', is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='private', is_virtual=True) + visibility='protected', is_virtual=True) + ## yans-wifi-phy.h (module 'wifi'): bool ns3::YansWifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) return def register_Ns3ZetaRandomVariable_methods(root_module, cls): diff --git a/src/wifi/bindings/modulegen__gcc_LP64.py b/src/wifi/bindings/modulegen__gcc_LP64.py index 3016b0d39f5..e4bfd9940ad 100644 --- a/src/wifi/bindings/modulegen__gcc_LP64.py +++ b/src/wifi/bindings/modulegen__gcc_LP64.py @@ -33,7 +33,7 @@ def register_types(module): ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration] module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT']) ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] - module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac']) + module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac', 'WIFI_PHY_STANDARD_UNSPECIFIED']) ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF']) ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] @@ -8305,11 +8305,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_constructor([param('ns3::WifiPhy const &', 'arg0')]) ## wifi-phy.h (module 'wifi'): ns3::WifiPhy::WifiPhy() [constructor] cls.add_constructor([]) - ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t width) [member function] + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t channelwidth) [member function] cls.add_method('AddSupportedChannelWidth', 'void', - [param('uint32_t', 'width')], - is_pure_virtual=True, is_virtual=True) + [param('uint32_t', 'channelwidth')], + is_virtual=True) ## wifi-phy.h (module 'wifi'): int64_t ns3::WifiPhy::AssignStreams(int64_t stream) [member function] cls.add_method('AssignStreams', 'int64_t', @@ -8336,7 +8336,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('ConfigureStandard', 'void', [param('ns3::WifiPhyStandard', 'standard')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): double ns3::WifiPhy::DbToRatio(double db) const [member function] cls.add_method('DbToRatio', 'double', @@ -8347,6 +8347,10 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'dbm')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DefineChannelNumber(uint16_t channelNumber, ns3::WifiPhyStandard standard, uint32_t frequency, uint32_t channelWidth) [member function] + cls.add_method('DefineChannelNumber', + 'bool', + [param('uint16_t', 'channelNumber'), param('ns3::WifiPhyStandard', 'standard'), param('uint32_t', 'frequency'), param('uint32_t', 'channelWidth')]) ## wifi-phy.h (module 'wifi'): uint32_t ns3::WifiPhy::GetBssMembershipSelector(uint32_t selector) const [member function] cls.add_method('GetBssMembershipSelector', 'uint32_t', @@ -8361,7 +8365,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelNumber', 'uint16_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetChannelSwitchDelay() const [member function] cls.add_method('GetChannelSwitchDelay', 'ns3::Time', @@ -8371,7 +8375,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelWidth', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetDelayUntilIdle() [member function] cls.add_method('GetDelayUntilIdle', 'ns3::Time', @@ -8441,7 +8445,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetFrequency', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::GetGreenfield() const [member function] cls.add_method('GetGreenfield', 'bool', @@ -8845,6 +8849,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## wifi-phy.h (module 'wifi'): ns3::WifiPhyStandard ns3::WifiPhy::GetStandard() const [member function] + cls.add_method('GetStandard', + 'ns3::WifiPhyStandard', + [], + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetStateDuration() [member function] cls.add_method('GetStateDuration', 'ns3::Time', @@ -8859,7 +8868,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetSupportedChannelWidthSet', 'std::vector< unsigned int >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): uint8_t ns3::WifiPhy::GetSupportedRxSpatialStreams() const [member function] cls.add_method('GetSupportedRxSpatialStreams', 'uint8_t', @@ -9046,17 +9055,17 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('SetChannelNumber', 'void', [param('uint16_t', 'id')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetChannelWidth(uint32_t channelwidth) [member function] cls.add_method('SetChannelWidth', 'void', [param('uint32_t', 'channelwidth')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetFrequency(uint32_t freq) [member function] cls.add_method('SetFrequency', 'void', [param('uint32_t', 'freq')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetGreenfield(bool greenfield) [member function] cls.add_method('SetGreenfield', 'void', @@ -9117,6 +9126,31 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'w')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureChannelForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureChannelForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureDefaultsForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureDefaultsForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) return def register_Ns3WifiPhyStateHelper_methods(root_module, cls): @@ -9893,11 +9927,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): cls.add_constructor([param('ns3::YansWifiPhy const &', 'arg0')]) ## yans-wifi-phy.h (module 'wifi'): ns3::YansWifiPhy::YansWifiPhy() [constructor] cls.add_constructor([]) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::AddSupportedChannelWidth(uint32_t width) [member function] - cls.add_method('AddSupportedChannelWidth', - 'void', - [param('uint32_t', 'width')], - is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): int64_t ns3::YansWifiPhy::AssignStreams(int64_t stream) [member function] cls.add_method('AssignStreams', 'int64_t', @@ -9928,26 +9957,11 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'ns3::Ptr< ns3::WifiChannel >', [], is_const=True, is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): double ns3::YansWifiPhy::GetChannelFrequencyMhz() const [member function] - cls.add_method('GetChannelFrequencyMhz', - 'double', - [], - is_const=True) - ## yans-wifi-phy.h (module 'wifi'): uint16_t ns3::YansWifiPhy::GetChannelNumber() const [member function] - cls.add_method('GetChannelNumber', - 'uint16_t', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): ns3::Time ns3::YansWifiPhy::GetChannelSwitchDelay() const [member function] cls.add_method('GetChannelSwitchDelay', 'ns3::Time', [], is_const=True, is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): uint32_t ns3::YansWifiPhy::GetChannelWidth() const [member function] - cls.add_method('GetChannelWidth', - 'uint32_t', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): ns3::Time ns3::YansWifiPhy::GetDelayUntilIdle() [member function] cls.add_method('GetDelayUntilIdle', 'ns3::Time', @@ -9968,11 +9982,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'ns3::Ptr< ns3::ErrorRateModel >', [], is_const=True) - ## yans-wifi-phy.h (module 'wifi'): uint32_t ns3::YansWifiPhy::GetFrequency() const [member function] - cls.add_method('GetFrequency', - 'uint32_t', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): bool ns3::YansWifiPhy::GetGreenfield() const [member function] cls.add_method('GetGreenfield', 'bool', @@ -10067,11 +10076,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'bool', [], is_const=True, is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): std::vector > ns3::YansWifiPhy::GetSupportedChannelWidthSet() const [member function] - cls.add_method('GetSupportedChannelWidthSet', - 'std::vector< unsigned int >', - [], - is_const=True, is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): uint8_t ns3::YansWifiPhy::GetSupportedRxSpatialStreams() const [member function] cls.add_method('GetSupportedRxSpatialStreams', 'uint8_t', @@ -10175,16 +10179,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): cls.add_method('SetChannel', 'void', [param('ns3::Ptr< ns3::YansWifiChannel >', 'channel')]) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetChannelNumber(uint16_t id) [member function] - cls.add_method('SetChannelNumber', - 'void', - [param('uint16_t', 'id')], - is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetChannelWidth(uint32_t channelwidth) [member function] - cls.add_method('SetChannelWidth', - 'void', - [param('uint32_t', 'channelwidth')], - is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetDevice(ns3::Ptr device) [member function] cls.add_method('SetDevice', 'void', @@ -10197,11 +10191,6 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): cls.add_method('SetErrorRateModel', 'void', [param('ns3::Ptr< ns3::ErrorRateModel >', 'rate')]) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetFrequency(uint32_t freq) [member function] - cls.add_method('SetFrequency', - 'void', - [param('uint32_t', 'freq')], - is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::SetGreenfield(bool greenfield) [member function] cls.add_method('SetGreenfield', 'void', @@ -10293,16 +10282,21 @@ def register_Ns3YansWifiPhy_methods(root_module, cls): 'void', [param('ns3::WifiPhyListener *', 'listener')], is_virtual=True) + ## yans-wifi-phy.h (module 'wifi'): bool ns3::YansWifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::DoDispose() [member function] cls.add_method('DoDispose', 'void', [], - visibility='private', is_virtual=True) - ## yans-wifi-phy.h (module 'wifi'): void ns3::YansWifiPhy::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='private', is_virtual=True) + visibility='protected', is_virtual=True) + ## yans-wifi-phy.h (module 'wifi'): bool ns3::YansWifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) return def register_Ns3ZetaRandomVariable_methods(root_module, cls): From dd432b813176eb909a97845defbf48a8a6c83a13 Mon Sep 17 00:00:00 2001 From: Stefano Avallone Date: Fri, 22 Jul 2016 18:21:39 +0200 Subject: [PATCH 12/27] network: Get rid of the NetDeviceQueue::HasWakeCallbackSet method --- src/network/model/net-device.cc | 33 ++++++----- src/network/model/net-device.h | 55 ++++++++++--------- .../test/point-to-point-test.cc | 2 + .../model/traffic-control-layer.cc | 5 ++ 4 files changed, 52 insertions(+), 43 deletions(-) diff --git a/src/network/model/net-device.cc b/src/network/model/net-device.cc index e5c397a9552..ad4c43bb504 100644 --- a/src/network/model/net-device.cc +++ b/src/network/model/net-device.cc @@ -118,12 +118,6 @@ NetDeviceQueue::SetWakeCallback (WakeCallback cb) m_wakeCallback = cb; } -bool -NetDeviceQueue::HasWakeCallbackSet (void) const -{ - return (!m_wakeCallback.IsNull ()); -} - NS_OBJECT_ENSURE_REGISTERED (NetDeviceQueueInterface); @@ -137,10 +131,9 @@ TypeId NetDeviceQueueInterface::GetTypeId (void) } NetDeviceQueueInterface::NetDeviceQueueInterface () + : m_numTxQueues (1) { NS_LOG_FUNCTION (this); - Ptr devQueue = Create (); - m_txQueuesVector.push_back (devQueue); } NetDeviceQueueInterface::~NetDeviceQueueInterface () @@ -172,21 +165,27 @@ NetDeviceQueueInterface::DoDispose (void) void NetDeviceQueueInterface::SetTxQueuesN (uint8_t numTxQueues) { + NS_LOG_FUNCTION (this << numTxQueues); NS_ASSERT (numTxQueues > 0); - // check whether a queue disc has been installed on the device by - // verifying whether a wake callback has been set on a transmission queue - NS_ABORT_MSG_IF (GetTxQueue (0)->HasWakeCallbackSet (), "Cannot change the number of" - " transmission queues after setting up the wake callback."); + NS_ABORT_MSG_IF (m_txQueuesVector.size (), "Cannot change the number of" + " device transmission queues once they have been created."); + + m_numTxQueues = numTxQueues; +} + +void +NetDeviceQueueInterface::CreateTxQueues (void) +{ + NS_LOG_FUNCTION (this); - uint8_t prevNumTxQueues = m_txQueuesVector.size (); - m_txQueuesVector.resize (numTxQueues); + NS_ABORT_MSG_IF (m_txQueuesVector.size (), "The device transmission queues" + " have been already created."); - // Allocate new NetDeviceQueues if the number of queues increased - for (uint8_t i = prevNumTxQueues; i < numTxQueues; i++) + for (uint8_t i = 0; i < m_numTxQueues; i++) { Ptr devQueue = Create (); - m_txQueuesVector[i] = devQueue; + m_txQueuesVector.push_back (devQueue); } } diff --git a/src/network/model/net-device.h b/src/network/model/net-device.h index e16bc470280..f4661f75ce4 100644 --- a/src/network/model/net-device.h +++ b/src/network/model/net-device.h @@ -165,27 +165,27 @@ class NetDeviceQueue : public SimpleRefCount virtual ~NetDeviceQueue(); /** - * Called by the device to start this (hardware) transmission queue. + * Called by the device to start this device transmission queue. * This is the analogous to the netif_tx_start_queue function of the Linux kernel. */ virtual void Start (void); /** - * Called by the device to stop this (hardware) transmission queue. + * Called by the device to stop this device transmission queue. * This is the analogous to the netif_tx_stop_queue function of the Linux kernel. */ virtual void Stop (void); /** * Called by the device to wake the queue disc associated with this - * (hardware) transmission queue. This is done by invoking the wake callback. + * device transmission queue. This is done by invoking the wake callback. * This is the analogous to the netif_tx_wake_queue function of the Linux kernel. */ virtual void Wake (void); /** * \brief Get the status of the device transmission queue. - * \return true if the (hardware) transmission queue is stopped. + * \return true if the device transmission queue is stopped. * * Called by queue discs to enquire about the status of a given transmission queue. * This is the analogous to the netif_tx_queue_stopped function of the Linux kernel. @@ -207,12 +207,6 @@ class NetDeviceQueue : public SimpleRefCount */ virtual void SetWakeCallback (WakeCallback cb); - /** - * \brief Check whether a wake callback has been set on this device queue. - * \return true if the wake callback has been set. - */ - virtual bool HasWakeCallbackSet (void) const; - private: bool m_stopped; //!< Status of the transmission queue WakeCallback m_wakeCallback; //!< Wake callback @@ -224,15 +218,15 @@ class NetDeviceQueue : public SimpleRefCount * * \brief Network device transmission queue interface * - * This interface is required by the traffic control layer to access the information - * about the status of the transmission queues of a device. Thus, every NetDevice - * (but loopback) needs to create this interface. NetDevices supporting flow control - * can start and stop their device transmission queues and wake the upper layers through - * this interface. By default, a NetDeviceQueueInterface object is created with a single - * device transmission queue. Therefore, multi-queue devices need to call SetTxQueuesN - * to create additional queues (before a root queue disc is installed, i.e., typically - * before an IPv4/IPv6 address is assigned to the device), implement a GetSelectedQueue - * method and pass a callback to such a method through the SetSelectedQueueCallback method. + * This interface is used by the traffic control layer and by the aggregated + * device to access the transmission queues of the device. Additionally, through + * this interface, traffic control aware netdevices can: + * - set the number of transmission queues + * - set the method used (by upper layers) to determine the transmission queue + * in which the netdevice would enqueue a given packet + * This interface is created and aggregated to a device by the traffic control + * layer when an Ipv{4,6}Interface is added to the device or a queue disc is + * installed on the device. */ class NetDeviceQueueInterface : public Object { @@ -268,16 +262,23 @@ class NetDeviceQueueInterface : public Object uint8_t GetNTxQueues (void) const; /** - * \brief Set the number of device transmission queues. - * \param numTxQueues number of device transmission queues. + * \brief Set the number of device transmission queues to create. + * \param numTxQueues number of device transmission queues to create. * - * Called by a device to set the number of device transmission queues. - * This method can be called by a NetDevice at initialization time only, because - * it is not possible to change the number of device transmission queues after - * the wake callbacks have been set on the device queues. + * A multi-queue netdevice must call this method from within its + * NotifyNewAggregate method to set the number of device transmission queues + * to create. */ void SetTxQueuesN (uint8_t numTxQueues); + /** + * \brief Create the device transmission queues. + * + * Called by the traffic control layer just after aggregating this netdevice + * queue interface to the netdevice. + */ + void CreateTxQueues (void); + /// Callback invoked to determine the tx queue selected for a given packet typedef Callback< uint8_t, Ptr > SelectQueueCallback; @@ -285,7 +286,8 @@ class NetDeviceQueueInterface : public Object * \brief Set the select queue callback. * \param cb the callback to set. * - * Called by a multi-queue device to set the select queue callback, i.e., the + * A multi-queue netdevice must call this method from within its + * NotifyNewAggregate method to set the select queue callback, i.e., the * method used to select a device transmission queue for a given packet. */ void SetSelectQueueCallback (SelectQueueCallback cb); @@ -308,6 +310,7 @@ class NetDeviceQueueInterface : public Object private: std::vector< Ptr > m_txQueuesVector; //!< Device transmission queues SelectQueueCallback m_selectQueueCallback; //!< Select queue callback + uint8_t m_numTxQueues; //!< Number of transmission queues to create }; diff --git a/src/point-to-point/test/point-to-point-test.cc b/src/point-to-point/test/point-to-point-test.cc index 302549b4e89..95320de40a3 100644 --- a/src/point-to-point/test/point-to-point-test.cc +++ b/src/point-to-point/test/point-to-point-test.cc @@ -88,8 +88,10 @@ PointToPointTest::DoRun (void) Ptr ifaceA = CreateObject (); devA->AggregateObject (ifaceA); + ifaceA->CreateTxQueues (); Ptr ifaceB = CreateObject (); devB->AggregateObject (ifaceB); + ifaceB->CreateTxQueues (); Simulator::Schedule (Seconds (1.0), &PointToPointTest::SendOnePacket, this, devA); diff --git a/src/traffic-control/model/traffic-control-layer.cc b/src/traffic-control/model/traffic-control-layer.cc index f7798088b04..92619d219b0 100644 --- a/src/traffic-control/model/traffic-control-layer.cc +++ b/src/traffic-control/model/traffic-control-layer.cc @@ -128,6 +128,11 @@ TrafficControlLayer::SetupDevice (Ptr device) Ptr devQueueIface = CreateObject (); device->AggregateObject (devQueueIface); + // multi-queue devices must set the number of transmission queues in their + // NotifyNewAggregate method. Since we have just aggregated the netdevice + // queue interface to the device, we can create the transmission queues + devQueueIface->CreateTxQueues (); + // devices can set a select queue callback in their NotifyNewAggregate method SelectQueueCallback cb = devQueueIface->GetSelectQueueCallback (); From f23dc6a347e0b84858f03eb92ea1dafa7aeee9f7 Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Fri, 22 Jul 2016 17:45:51 -0700 Subject: [PATCH 13/27] bindings: rescan all module bindings --- src/aodv/bindings/modulegen__gcc_ILP32.py | 9 ++- src/aodv/bindings/modulegen__gcc_LP64.py | 9 ++- .../bindings/modulegen__gcc_ILP32.py | 9 ++- .../bindings/modulegen__gcc_LP64.py | 9 ++- src/bridge/bindings/modulegen__gcc_ILP32.py | 9 ++- src/bridge/bindings/modulegen__gcc_LP64.py | 9 ++- .../bindings/modulegen__gcc_ILP32.py | 9 ++- src/buildings/bindings/modulegen__gcc_LP64.py | 9 ++- .../bindings/modulegen__gcc_ILP32.py | 9 ++- .../bindings/modulegen__gcc_LP64.py | 9 ++- src/csma/bindings/modulegen__gcc_ILP32.py | 9 ++- src/csma/bindings/modulegen__gcc_LP64.py | 9 ++- src/dsdv/bindings/modulegen__gcc_ILP32.py | 9 ++- src/dsdv/bindings/modulegen__gcc_LP64.py | 9 ++- src/dsr/bindings/modulegen__gcc_ILP32.py | 67 ++++++++++++++----- src/dsr/bindings/modulegen__gcc_LP64.py | 67 ++++++++++++++----- src/energy/bindings/modulegen__gcc_ILP32.py | 15 ++--- src/energy/bindings/modulegen__gcc_LP64.py | 15 ++--- .../bindings/modulegen__gcc_ILP32.py | 9 ++- .../bindings/modulegen__gcc_LP64.py | 9 ++- .../bindings/modulegen__gcc_ILP32.py | 9 ++- .../bindings/modulegen__gcc_LP64.py | 9 ++- .../bindings/modulegen__gcc_ILP32.py | 9 ++- .../bindings/modulegen__gcc_LP64.py | 9 ++- src/internet/bindings/modulegen__gcc_ILP32.py | 9 ++- src/internet/bindings/modulegen__gcc_LP64.py | 9 ++- src/lr-wpan/bindings/modulegen__gcc_ILP32.py | 9 ++- src/lr-wpan/bindings/modulegen__gcc_LP64.py | 9 ++- src/lte/bindings/modulegen__gcc_ILP32.py | 9 ++- src/lte/bindings/modulegen__gcc_LP64.py | 9 ++- src/mesh/bindings/modulegen__gcc_ILP32.py | 67 ++++++++++++++----- src/mesh/bindings/modulegen__gcc_LP64.py | 67 ++++++++++++++----- src/mobility/bindings/modulegen__gcc_ILP32.py | 9 ++- src/mobility/bindings/modulegen__gcc_LP64.py | 9 ++- src/network/bindings/modulegen__gcc_ILP32.py | 9 ++- src/network/bindings/modulegen__gcc_LP64.py | 9 ++- .../bindings/modulegen__gcc_ILP32.py | 9 ++- .../bindings/modulegen__gcc_LP64.py | 9 ++- src/olsr/bindings/modulegen__gcc_ILP32.py | 9 ++- src/olsr/bindings/modulegen__gcc_LP64.py | 9 ++- .../bindings/modulegen__gcc_ILP32.py | 9 ++- .../bindings/modulegen__gcc_LP64.py | 9 ++- .../bindings/modulegen__gcc_ILP32.py | 15 ++--- .../bindings/modulegen__gcc_LP64.py | 15 ++--- .../bindings/modulegen__gcc_ILP32.py | 9 ++- src/sixlowpan/bindings/modulegen__gcc_LP64.py | 9 ++- src/spectrum/bindings/modulegen__gcc_ILP32.py | 15 ++--- src/spectrum/bindings/modulegen__gcc_LP64.py | 15 ++--- .../bindings/modulegen__gcc_ILP32.py | 9 ++- .../bindings/modulegen__gcc_LP64.py | 9 ++- .../bindings/modulegen__gcc_ILP32.py | 9 ++- .../bindings/modulegen__gcc_LP64.py | 9 ++- .../bindings/modulegen__gcc_ILP32.py | 9 ++- .../bindings/modulegen__gcc_LP64.py | 9 ++- src/uan/bindings/modulegen__gcc_ILP32.py | 15 ++--- src/uan/bindings/modulegen__gcc_LP64.py | 15 ++--- .../bindings/modulegen__gcc_ILP32.py | 9 ++- .../bindings/modulegen__gcc_LP64.py | 9 ++- .../bindings/modulegen__gcc_ILP32.py | 9 ++- .../bindings/modulegen__gcc_LP64.py | 9 ++- src/wave/bindings/modulegen__gcc_ILP32.py | 9 ++- src/wave/bindings/modulegen__gcc_LP64.py | 9 ++- src/wifi/bindings/modulegen__gcc_ILP32.py | 9 ++- src/wifi/bindings/modulegen__gcc_LP64.py | 9 ++- src/wimax/bindings/modulegen__gcc_ILP32.py | 9 ++- src/wimax/bindings/modulegen__gcc_LP64.py | 9 ++- 66 files changed, 472 insertions(+), 402 deletions(-) diff --git a/src/aodv/bindings/modulegen__gcc_ILP32.py b/src/aodv/bindings/modulegen__gcc_ILP32.py index 8946a05dcc6..94c771fc2ce 100644 --- a/src/aodv/bindings/modulegen__gcc_ILP32.py +++ b/src/aodv/bindings/modulegen__gcc_ILP32.py @@ -7357,11 +7357,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -7394,6 +7389,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/aodv/bindings/modulegen__gcc_LP64.py b/src/aodv/bindings/modulegen__gcc_LP64.py index 8946a05dcc6..94c771fc2ce 100644 --- a/src/aodv/bindings/modulegen__gcc_LP64.py +++ b/src/aodv/bindings/modulegen__gcc_LP64.py @@ -7357,11 +7357,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -7394,6 +7389,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/applications/bindings/modulegen__gcc_ILP32.py b/src/applications/bindings/modulegen__gcc_ILP32.py index f11a2f9dd6d..c79f6de126d 100644 --- a/src/applications/bindings/modulegen__gcc_ILP32.py +++ b/src/applications/bindings/modulegen__gcc_ILP32.py @@ -8107,11 +8107,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -8144,6 +8139,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/applications/bindings/modulegen__gcc_LP64.py b/src/applications/bindings/modulegen__gcc_LP64.py index f11a2f9dd6d..c79f6de126d 100644 --- a/src/applications/bindings/modulegen__gcc_LP64.py +++ b/src/applications/bindings/modulegen__gcc_LP64.py @@ -8107,11 +8107,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -8144,6 +8139,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/bridge/bindings/modulegen__gcc_ILP32.py b/src/bridge/bindings/modulegen__gcc_ILP32.py index ed6d2a59d2d..94c15da4cac 100644 --- a/src/bridge/bindings/modulegen__gcc_ILP32.py +++ b/src/bridge/bindings/modulegen__gcc_ILP32.py @@ -2430,11 +2430,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -2467,6 +2462,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/bridge/bindings/modulegen__gcc_LP64.py b/src/bridge/bindings/modulegen__gcc_LP64.py index ed6d2a59d2d..94c15da4cac 100644 --- a/src/bridge/bindings/modulegen__gcc_LP64.py +++ b/src/bridge/bindings/modulegen__gcc_LP64.py @@ -2430,11 +2430,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -2467,6 +2462,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/buildings/bindings/modulegen__gcc_ILP32.py b/src/buildings/bindings/modulegen__gcc_ILP32.py index 46b6c14e971..963fdbcf81a 100644 --- a/src/buildings/bindings/modulegen__gcc_ILP32.py +++ b/src/buildings/bindings/modulegen__gcc_ILP32.py @@ -4182,11 +4182,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -4219,6 +4214,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/buildings/bindings/modulegen__gcc_LP64.py b/src/buildings/bindings/modulegen__gcc_LP64.py index 46b6c14e971..963fdbcf81a 100644 --- a/src/buildings/bindings/modulegen__gcc_LP64.py +++ b/src/buildings/bindings/modulegen__gcc_LP64.py @@ -4182,11 +4182,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -4219,6 +4214,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/csma-layout/bindings/modulegen__gcc_ILP32.py b/src/csma-layout/bindings/modulegen__gcc_ILP32.py index 026db1425e3..e5a4a1373a8 100644 --- a/src/csma-layout/bindings/modulegen__gcc_ILP32.py +++ b/src/csma-layout/bindings/modulegen__gcc_ILP32.py @@ -7036,11 +7036,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -7073,6 +7068,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/csma-layout/bindings/modulegen__gcc_LP64.py b/src/csma-layout/bindings/modulegen__gcc_LP64.py index 026db1425e3..e5a4a1373a8 100644 --- a/src/csma-layout/bindings/modulegen__gcc_LP64.py +++ b/src/csma-layout/bindings/modulegen__gcc_LP64.py @@ -7036,11 +7036,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -7073,6 +7068,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/csma/bindings/modulegen__gcc_ILP32.py b/src/csma/bindings/modulegen__gcc_ILP32.py index 2ab636ece2f..9b365433496 100644 --- a/src/csma/bindings/modulegen__gcc_ILP32.py +++ b/src/csma/bindings/modulegen__gcc_ILP32.py @@ -5179,11 +5179,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -5216,6 +5211,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/csma/bindings/modulegen__gcc_LP64.py b/src/csma/bindings/modulegen__gcc_LP64.py index 2ab636ece2f..9b365433496 100644 --- a/src/csma/bindings/modulegen__gcc_LP64.py +++ b/src/csma/bindings/modulegen__gcc_LP64.py @@ -5179,11 +5179,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -5216,6 +5211,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/dsdv/bindings/modulegen__gcc_ILP32.py b/src/dsdv/bindings/modulegen__gcc_ILP32.py index bebb6d30841..faf1e5a71a5 100644 --- a/src/dsdv/bindings/modulegen__gcc_ILP32.py +++ b/src/dsdv/bindings/modulegen__gcc_ILP32.py @@ -6695,11 +6695,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -6732,6 +6727,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/dsdv/bindings/modulegen__gcc_LP64.py b/src/dsdv/bindings/modulegen__gcc_LP64.py index bebb6d30841..faf1e5a71a5 100644 --- a/src/dsdv/bindings/modulegen__gcc_LP64.py +++ b/src/dsdv/bindings/modulegen__gcc_LP64.py @@ -6695,11 +6695,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -6732,6 +6727,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/dsr/bindings/modulegen__gcc_ILP32.py b/src/dsr/bindings/modulegen__gcc_ILP32.py index 2daf1764d00..c9083943be9 100644 --- a/src/dsr/bindings/modulegen__gcc_ILP32.py +++ b/src/dsr/bindings/modulegen__gcc_ILP32.py @@ -29,7 +29,7 @@ def register_types(module): ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration] module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] - module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') + module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac', 'WIFI_PHY_STANDARD_UNSPECIFIED'], import_from_module='ns.wifi') ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] @@ -6745,11 +6745,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_constructor([param('ns3::WifiPhy const &', 'arg0')]) ## wifi-phy.h (module 'wifi'): ns3::WifiPhy::WifiPhy() [constructor] cls.add_constructor([]) - ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t width) [member function] + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t channelwidth) [member function] cls.add_method('AddSupportedChannelWidth', 'void', - [param('uint32_t', 'width')], - is_pure_virtual=True, is_virtual=True) + [param('uint32_t', 'channelwidth')], + is_virtual=True) ## wifi-phy.h (module 'wifi'): int64_t ns3::WifiPhy::AssignStreams(int64_t stream) [member function] cls.add_method('AssignStreams', 'int64_t', @@ -6776,7 +6776,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('ConfigureStandard', 'void', [param('ns3::WifiPhyStandard', 'standard')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): double ns3::WifiPhy::DbToRatio(double db) const [member function] cls.add_method('DbToRatio', 'double', @@ -6787,6 +6787,10 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'dbm')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DefineChannelNumber(uint16_t channelNumber, ns3::WifiPhyStandard standard, uint32_t frequency, uint32_t channelWidth) [member function] + cls.add_method('DefineChannelNumber', + 'bool', + [param('uint16_t', 'channelNumber'), param('ns3::WifiPhyStandard', 'standard'), param('uint32_t', 'frequency'), param('uint32_t', 'channelWidth')]) ## wifi-phy.h (module 'wifi'): uint32_t ns3::WifiPhy::GetBssMembershipSelector(uint32_t selector) const [member function] cls.add_method('GetBssMembershipSelector', 'uint32_t', @@ -6801,7 +6805,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelNumber', 'uint16_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetChannelSwitchDelay() const [member function] cls.add_method('GetChannelSwitchDelay', 'ns3::Time', @@ -6811,7 +6815,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelWidth', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetDelayUntilIdle() [member function] cls.add_method('GetDelayUntilIdle', 'ns3::Time', @@ -6881,7 +6885,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetFrequency', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::GetGreenfield() const [member function] cls.add_method('GetGreenfield', 'bool', @@ -7285,6 +7289,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## wifi-phy.h (module 'wifi'): ns3::WifiPhyStandard ns3::WifiPhy::GetStandard() const [member function] + cls.add_method('GetStandard', + 'ns3::WifiPhyStandard', + [], + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetStateDuration() [member function] cls.add_method('GetStateDuration', 'ns3::Time', @@ -7299,7 +7308,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetSupportedChannelWidthSet', 'std::vector< unsigned int >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): uint8_t ns3::WifiPhy::GetSupportedRxSpatialStreams() const [member function] cls.add_method('GetSupportedRxSpatialStreams', 'uint8_t', @@ -7486,17 +7495,17 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('SetChannelNumber', 'void', [param('uint16_t', 'id')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetChannelWidth(uint32_t channelwidth) [member function] cls.add_method('SetChannelWidth', 'void', [param('uint32_t', 'channelwidth')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetFrequency(uint32_t freq) [member function] cls.add_method('SetFrequency', 'void', [param('uint32_t', 'freq')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetGreenfield(bool greenfield) [member function] cls.add_method('SetGreenfield', 'void', @@ -7557,6 +7566,31 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'w')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureChannelForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureChannelForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureDefaultsForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureDefaultsForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) return def register_Ns3WifiRemoteStationManager_methods(root_module, cls): @@ -10427,11 +10461,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -10464,6 +10493,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/dsr/bindings/modulegen__gcc_LP64.py b/src/dsr/bindings/modulegen__gcc_LP64.py index 2daf1764d00..c9083943be9 100644 --- a/src/dsr/bindings/modulegen__gcc_LP64.py +++ b/src/dsr/bindings/modulegen__gcc_LP64.py @@ -29,7 +29,7 @@ def register_types(module): ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration] module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] - module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') + module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac', 'WIFI_PHY_STANDARD_UNSPECIFIED'], import_from_module='ns.wifi') ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] @@ -6745,11 +6745,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_constructor([param('ns3::WifiPhy const &', 'arg0')]) ## wifi-phy.h (module 'wifi'): ns3::WifiPhy::WifiPhy() [constructor] cls.add_constructor([]) - ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t width) [member function] + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t channelwidth) [member function] cls.add_method('AddSupportedChannelWidth', 'void', - [param('uint32_t', 'width')], - is_pure_virtual=True, is_virtual=True) + [param('uint32_t', 'channelwidth')], + is_virtual=True) ## wifi-phy.h (module 'wifi'): int64_t ns3::WifiPhy::AssignStreams(int64_t stream) [member function] cls.add_method('AssignStreams', 'int64_t', @@ -6776,7 +6776,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('ConfigureStandard', 'void', [param('ns3::WifiPhyStandard', 'standard')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): double ns3::WifiPhy::DbToRatio(double db) const [member function] cls.add_method('DbToRatio', 'double', @@ -6787,6 +6787,10 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'dbm')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DefineChannelNumber(uint16_t channelNumber, ns3::WifiPhyStandard standard, uint32_t frequency, uint32_t channelWidth) [member function] + cls.add_method('DefineChannelNumber', + 'bool', + [param('uint16_t', 'channelNumber'), param('ns3::WifiPhyStandard', 'standard'), param('uint32_t', 'frequency'), param('uint32_t', 'channelWidth')]) ## wifi-phy.h (module 'wifi'): uint32_t ns3::WifiPhy::GetBssMembershipSelector(uint32_t selector) const [member function] cls.add_method('GetBssMembershipSelector', 'uint32_t', @@ -6801,7 +6805,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelNumber', 'uint16_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetChannelSwitchDelay() const [member function] cls.add_method('GetChannelSwitchDelay', 'ns3::Time', @@ -6811,7 +6815,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelWidth', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetDelayUntilIdle() [member function] cls.add_method('GetDelayUntilIdle', 'ns3::Time', @@ -6881,7 +6885,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetFrequency', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::GetGreenfield() const [member function] cls.add_method('GetGreenfield', 'bool', @@ -7285,6 +7289,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## wifi-phy.h (module 'wifi'): ns3::WifiPhyStandard ns3::WifiPhy::GetStandard() const [member function] + cls.add_method('GetStandard', + 'ns3::WifiPhyStandard', + [], + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetStateDuration() [member function] cls.add_method('GetStateDuration', 'ns3::Time', @@ -7299,7 +7308,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetSupportedChannelWidthSet', 'std::vector< unsigned int >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): uint8_t ns3::WifiPhy::GetSupportedRxSpatialStreams() const [member function] cls.add_method('GetSupportedRxSpatialStreams', 'uint8_t', @@ -7486,17 +7495,17 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('SetChannelNumber', 'void', [param('uint16_t', 'id')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetChannelWidth(uint32_t channelwidth) [member function] cls.add_method('SetChannelWidth', 'void', [param('uint32_t', 'channelwidth')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetFrequency(uint32_t freq) [member function] cls.add_method('SetFrequency', 'void', [param('uint32_t', 'freq')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetGreenfield(bool greenfield) [member function] cls.add_method('SetGreenfield', 'void', @@ -7557,6 +7566,31 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'w')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureChannelForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureChannelForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureDefaultsForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureDefaultsForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) return def register_Ns3WifiRemoteStationManager_methods(root_module, cls): @@ -10427,11 +10461,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -10464,6 +10493,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/energy/bindings/modulegen__gcc_ILP32.py b/src/energy/bindings/modulegen__gcc_ILP32.py index d9cb0404ae6..47b58ba47d2 100644 --- a/src/energy/bindings/modulegen__gcc_ILP32.py +++ b/src/energy/bindings/modulegen__gcc_ILP32.py @@ -322,12 +322,12 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *', u'ns3::TracedValueCallback::Uint8') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) **', u'ns3::TracedValueCallback::Uint8*') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *&', u'ns3::TracedValueCallback::Uint8&') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') @@ -3946,11 +3946,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -3983,6 +3978,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/energy/bindings/modulegen__gcc_LP64.py b/src/energy/bindings/modulegen__gcc_LP64.py index d9cb0404ae6..47b58ba47d2 100644 --- a/src/energy/bindings/modulegen__gcc_LP64.py +++ b/src/energy/bindings/modulegen__gcc_LP64.py @@ -322,12 +322,12 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *', u'ns3::TracedValueCallback::Uint8') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) **', u'ns3::TracedValueCallback::Uint8*') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *&', u'ns3::TracedValueCallback::Uint8&') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') @@ -3946,11 +3946,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -3983,6 +3978,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/fd-net-device/bindings/modulegen__gcc_ILP32.py b/src/fd-net-device/bindings/modulegen__gcc_ILP32.py index c45200439a4..90859bbd979 100644 --- a/src/fd-net-device/bindings/modulegen__gcc_ILP32.py +++ b/src/fd-net-device/bindings/modulegen__gcc_ILP32.py @@ -4070,11 +4070,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -4107,6 +4102,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/fd-net-device/bindings/modulegen__gcc_LP64.py b/src/fd-net-device/bindings/modulegen__gcc_LP64.py index ff69e0a6b43..f5e727f7b2e 100644 --- a/src/fd-net-device/bindings/modulegen__gcc_LP64.py +++ b/src/fd-net-device/bindings/modulegen__gcc_LP64.py @@ -4070,11 +4070,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -4107,6 +4102,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/flow-monitor/bindings/modulegen__gcc_ILP32.py b/src/flow-monitor/bindings/modulegen__gcc_ILP32.py index aadf53e5421..cdb29db43a5 100644 --- a/src/flow-monitor/bindings/modulegen__gcc_ILP32.py +++ b/src/flow-monitor/bindings/modulegen__gcc_ILP32.py @@ -6171,11 +6171,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -6208,6 +6203,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/flow-monitor/bindings/modulegen__gcc_LP64.py b/src/flow-monitor/bindings/modulegen__gcc_LP64.py index 2675c29db0a..146f689dcda 100644 --- a/src/flow-monitor/bindings/modulegen__gcc_LP64.py +++ b/src/flow-monitor/bindings/modulegen__gcc_LP64.py @@ -6171,11 +6171,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -6208,6 +6203,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/internet-apps/bindings/modulegen__gcc_ILP32.py b/src/internet-apps/bindings/modulegen__gcc_ILP32.py index 1a36743aa13..9c3ee42e7cf 100644 --- a/src/internet-apps/bindings/modulegen__gcc_ILP32.py +++ b/src/internet-apps/bindings/modulegen__gcc_ILP32.py @@ -4414,11 +4414,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -4451,6 +4446,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/internet-apps/bindings/modulegen__gcc_LP64.py b/src/internet-apps/bindings/modulegen__gcc_LP64.py index 1a36743aa13..9c3ee42e7cf 100644 --- a/src/internet-apps/bindings/modulegen__gcc_LP64.py +++ b/src/internet-apps/bindings/modulegen__gcc_LP64.py @@ -4414,11 +4414,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -4451,6 +4446,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/internet/bindings/modulegen__gcc_ILP32.py b/src/internet/bindings/modulegen__gcc_ILP32.py index 072a36de551..59a3accfef0 100644 --- a/src/internet/bindings/modulegen__gcc_ILP32.py +++ b/src/internet/bindings/modulegen__gcc_ILP32.py @@ -15949,11 +15949,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -15986,6 +15981,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/internet/bindings/modulegen__gcc_LP64.py b/src/internet/bindings/modulegen__gcc_LP64.py index 072a36de551..59a3accfef0 100644 --- a/src/internet/bindings/modulegen__gcc_LP64.py +++ b/src/internet/bindings/modulegen__gcc_LP64.py @@ -15949,11 +15949,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -15986,6 +15981,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/lr-wpan/bindings/modulegen__gcc_ILP32.py b/src/lr-wpan/bindings/modulegen__gcc_ILP32.py index 4fa1caf47ee..b39cd6a319d 100644 --- a/src/lr-wpan/bindings/modulegen__gcc_ILP32.py +++ b/src/lr-wpan/bindings/modulegen__gcc_ILP32.py @@ -5592,11 +5592,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -5629,6 +5624,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/lr-wpan/bindings/modulegen__gcc_LP64.py b/src/lr-wpan/bindings/modulegen__gcc_LP64.py index 4d55dc9560f..8dc7b63ff28 100644 --- a/src/lr-wpan/bindings/modulegen__gcc_LP64.py +++ b/src/lr-wpan/bindings/modulegen__gcc_LP64.py @@ -5592,11 +5592,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -5629,6 +5624,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/lte/bindings/modulegen__gcc_ILP32.py b/src/lte/bindings/modulegen__gcc_ILP32.py index 0cfaf7a5360..b7e6dc1d8e0 100644 --- a/src/lte/bindings/modulegen__gcc_ILP32.py +++ b/src/lte/bindings/modulegen__gcc_ILP32.py @@ -18166,11 +18166,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -18203,6 +18198,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/lte/bindings/modulegen__gcc_LP64.py b/src/lte/bindings/modulegen__gcc_LP64.py index 8b4c5bf1988..960a8089761 100644 --- a/src/lte/bindings/modulegen__gcc_LP64.py +++ b/src/lte/bindings/modulegen__gcc_LP64.py @@ -18166,11 +18166,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -18203,6 +18198,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/mesh/bindings/modulegen__gcc_ILP32.py b/src/mesh/bindings/modulegen__gcc_ILP32.py index 8b5ee9887c9..e110c8005d9 100644 --- a/src/mesh/bindings/modulegen__gcc_ILP32.py +++ b/src/mesh/bindings/modulegen__gcc_ILP32.py @@ -31,7 +31,7 @@ def register_types(module): ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration] module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] - module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') + module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac', 'WIFI_PHY_STANDARD_UNSPECIFIED'], import_from_module='ns.wifi') ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] @@ -6199,11 +6199,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_constructor([param('ns3::WifiPhy const &', 'arg0')]) ## wifi-phy.h (module 'wifi'): ns3::WifiPhy::WifiPhy() [constructor] cls.add_constructor([]) - ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t width) [member function] + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t channelwidth) [member function] cls.add_method('AddSupportedChannelWidth', 'void', - [param('uint32_t', 'width')], - is_pure_virtual=True, is_virtual=True) + [param('uint32_t', 'channelwidth')], + is_virtual=True) ## wifi-phy.h (module 'wifi'): int64_t ns3::WifiPhy::AssignStreams(int64_t stream) [member function] cls.add_method('AssignStreams', 'int64_t', @@ -6230,7 +6230,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('ConfigureStandard', 'void', [param('ns3::WifiPhyStandard', 'standard')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): double ns3::WifiPhy::DbToRatio(double db) const [member function] cls.add_method('DbToRatio', 'double', @@ -6241,6 +6241,10 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'dbm')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DefineChannelNumber(uint16_t channelNumber, ns3::WifiPhyStandard standard, uint32_t frequency, uint32_t channelWidth) [member function] + cls.add_method('DefineChannelNumber', + 'bool', + [param('uint16_t', 'channelNumber'), param('ns3::WifiPhyStandard', 'standard'), param('uint32_t', 'frequency'), param('uint32_t', 'channelWidth')]) ## wifi-phy.h (module 'wifi'): uint32_t ns3::WifiPhy::GetBssMembershipSelector(uint32_t selector) const [member function] cls.add_method('GetBssMembershipSelector', 'uint32_t', @@ -6255,7 +6259,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelNumber', 'uint16_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetChannelSwitchDelay() const [member function] cls.add_method('GetChannelSwitchDelay', 'ns3::Time', @@ -6265,7 +6269,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelWidth', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetDelayUntilIdle() [member function] cls.add_method('GetDelayUntilIdle', 'ns3::Time', @@ -6335,7 +6339,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetFrequency', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::GetGreenfield() const [member function] cls.add_method('GetGreenfield', 'bool', @@ -6739,6 +6743,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## wifi-phy.h (module 'wifi'): ns3::WifiPhyStandard ns3::WifiPhy::GetStandard() const [member function] + cls.add_method('GetStandard', + 'ns3::WifiPhyStandard', + [], + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetStateDuration() [member function] cls.add_method('GetStateDuration', 'ns3::Time', @@ -6753,7 +6762,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetSupportedChannelWidthSet', 'std::vector< unsigned int >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): uint8_t ns3::WifiPhy::GetSupportedRxSpatialStreams() const [member function] cls.add_method('GetSupportedRxSpatialStreams', 'uint8_t', @@ -6940,17 +6949,17 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('SetChannelNumber', 'void', [param('uint16_t', 'id')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetChannelWidth(uint32_t channelwidth) [member function] cls.add_method('SetChannelWidth', 'void', [param('uint32_t', 'channelwidth')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetFrequency(uint32_t freq) [member function] cls.add_method('SetFrequency', 'void', [param('uint32_t', 'freq')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetGreenfield(bool greenfield) [member function] cls.add_method('SetGreenfield', 'void', @@ -7011,6 +7020,31 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'w')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureChannelForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureChannelForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureDefaultsForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureDefaultsForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) return def register_Ns3WifiRemoteStationManager_methods(root_module, cls): @@ -10151,11 +10185,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -10188,6 +10217,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/mesh/bindings/modulegen__gcc_LP64.py b/src/mesh/bindings/modulegen__gcc_LP64.py index 5ba07fca9d1..561676ab238 100644 --- a/src/mesh/bindings/modulegen__gcc_LP64.py +++ b/src/mesh/bindings/modulegen__gcc_LP64.py @@ -31,7 +31,7 @@ def register_types(module): ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration] module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_HR_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT', 'WIFI_MOD_CLASS_VHT'], import_from_module='ns.wifi') ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] - module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac'], import_from_module='ns.wifi') + module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ', 'WIFI_PHY_STANDARD_80211ac', 'WIFI_PHY_STANDARD_UNSPECIFIED'], import_from_module='ns.wifi') ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration] module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi') ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration] @@ -6199,11 +6199,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_constructor([param('ns3::WifiPhy const &', 'arg0')]) ## wifi-phy.h (module 'wifi'): ns3::WifiPhy::WifiPhy() [constructor] cls.add_constructor([]) - ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t width) [member function] + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::AddSupportedChannelWidth(uint32_t channelwidth) [member function] cls.add_method('AddSupportedChannelWidth', 'void', - [param('uint32_t', 'width')], - is_pure_virtual=True, is_virtual=True) + [param('uint32_t', 'channelwidth')], + is_virtual=True) ## wifi-phy.h (module 'wifi'): int64_t ns3::WifiPhy::AssignStreams(int64_t stream) [member function] cls.add_method('AssignStreams', 'int64_t', @@ -6230,7 +6230,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('ConfigureStandard', 'void', [param('ns3::WifiPhyStandard', 'standard')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): double ns3::WifiPhy::DbToRatio(double db) const [member function] cls.add_method('DbToRatio', 'double', @@ -6241,6 +6241,10 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'dbm')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DefineChannelNumber(uint16_t channelNumber, ns3::WifiPhyStandard standard, uint32_t frequency, uint32_t channelWidth) [member function] + cls.add_method('DefineChannelNumber', + 'bool', + [param('uint16_t', 'channelNumber'), param('ns3::WifiPhyStandard', 'standard'), param('uint32_t', 'frequency'), param('uint32_t', 'channelWidth')]) ## wifi-phy.h (module 'wifi'): uint32_t ns3::WifiPhy::GetBssMembershipSelector(uint32_t selector) const [member function] cls.add_method('GetBssMembershipSelector', 'uint32_t', @@ -6255,7 +6259,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelNumber', 'uint16_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetChannelSwitchDelay() const [member function] cls.add_method('GetChannelSwitchDelay', 'ns3::Time', @@ -6265,7 +6269,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetChannelWidth', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetDelayUntilIdle() [member function] cls.add_method('GetDelayUntilIdle', 'ns3::Time', @@ -6335,7 +6339,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetFrequency', 'uint32_t', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::GetGreenfield() const [member function] cls.add_method('GetGreenfield', 'bool', @@ -6739,6 +6743,11 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'bool', [], is_pure_virtual=True, is_const=True, is_virtual=True) + ## wifi-phy.h (module 'wifi'): ns3::WifiPhyStandard ns3::WifiPhy::GetStandard() const [member function] + cls.add_method('GetStandard', + 'ns3::WifiPhyStandard', + [], + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): ns3::Time ns3::WifiPhy::GetStateDuration() [member function] cls.add_method('GetStateDuration', 'ns3::Time', @@ -6753,7 +6762,7 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('GetSupportedChannelWidthSet', 'std::vector< unsigned int >', [], - is_pure_virtual=True, is_const=True, is_virtual=True) + is_const=True, is_virtual=True) ## wifi-phy.h (module 'wifi'): uint8_t ns3::WifiPhy::GetSupportedRxSpatialStreams() const [member function] cls.add_method('GetSupportedRxSpatialStreams', 'uint8_t', @@ -6940,17 +6949,17 @@ def register_Ns3WifiPhy_methods(root_module, cls): cls.add_method('SetChannelNumber', 'void', [param('uint16_t', 'id')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetChannelWidth(uint32_t channelwidth) [member function] cls.add_method('SetChannelWidth', 'void', [param('uint32_t', 'channelwidth')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetFrequency(uint32_t freq) [member function] cls.add_method('SetFrequency', 'void', [param('uint32_t', 'freq')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::SetGreenfield(bool greenfield) [member function] cls.add_method('SetGreenfield', 'void', @@ -7011,6 +7020,31 @@ def register_Ns3WifiPhy_methods(root_module, cls): 'double', [param('double', 'w')], is_const=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): bool ns3::WifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureChannelForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureChannelForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) + ## wifi-phy.h (module 'wifi'): void ns3::WifiPhy::ConfigureDefaultsForStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureDefaultsForStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + visibility='private', is_virtual=True) return def register_Ns3WifiRemoteStationManager_methods(root_module, cls): @@ -10151,11 +10185,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -10188,6 +10217,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/mobility/bindings/modulegen__gcc_ILP32.py b/src/mobility/bindings/modulegen__gcc_ILP32.py index e6f5bcb107b..4f75c7e1e0a 100644 --- a/src/mobility/bindings/modulegen__gcc_ILP32.py +++ b/src/mobility/bindings/modulegen__gcc_ILP32.py @@ -3721,11 +3721,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -3758,6 +3753,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/mobility/bindings/modulegen__gcc_LP64.py b/src/mobility/bindings/modulegen__gcc_LP64.py index e6f5bcb107b..4f75c7e1e0a 100644 --- a/src/mobility/bindings/modulegen__gcc_LP64.py +++ b/src/mobility/bindings/modulegen__gcc_LP64.py @@ -3721,11 +3721,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -3758,6 +3753,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/network/bindings/modulegen__gcc_ILP32.py b/src/network/bindings/modulegen__gcc_ILP32.py index fe6e47a6056..780cb4b1ce1 100644 --- a/src/network/bindings/modulegen__gcc_ILP32.py +++ b/src/network/bindings/modulegen__gcc_ILP32.py @@ -7776,11 +7776,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -7813,6 +7808,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/network/bindings/modulegen__gcc_LP64.py b/src/network/bindings/modulegen__gcc_LP64.py index fe6e47a6056..780cb4b1ce1 100644 --- a/src/network/bindings/modulegen__gcc_LP64.py +++ b/src/network/bindings/modulegen__gcc_LP64.py @@ -7776,11 +7776,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -7813,6 +7808,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/nix-vector-routing/bindings/modulegen__gcc_ILP32.py b/src/nix-vector-routing/bindings/modulegen__gcc_ILP32.py index 7f84d260a50..cb209e1b1ef 100644 --- a/src/nix-vector-routing/bindings/modulegen__gcc_ILP32.py +++ b/src/nix-vector-routing/bindings/modulegen__gcc_ILP32.py @@ -4959,11 +4959,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -4996,6 +4991,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/nix-vector-routing/bindings/modulegen__gcc_LP64.py b/src/nix-vector-routing/bindings/modulegen__gcc_LP64.py index 7f84d260a50..cb209e1b1ef 100644 --- a/src/nix-vector-routing/bindings/modulegen__gcc_LP64.py +++ b/src/nix-vector-routing/bindings/modulegen__gcc_LP64.py @@ -4959,11 +4959,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -4996,6 +4991,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/olsr/bindings/modulegen__gcc_ILP32.py b/src/olsr/bindings/modulegen__gcc_ILP32.py index b39058e82cf..74bb1b2c860 100644 --- a/src/olsr/bindings/modulegen__gcc_ILP32.py +++ b/src/olsr/bindings/modulegen__gcc_ILP32.py @@ -5897,11 +5897,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -5934,6 +5929,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/olsr/bindings/modulegen__gcc_LP64.py b/src/olsr/bindings/modulegen__gcc_LP64.py index b39058e82cf..74bb1b2c860 100644 --- a/src/olsr/bindings/modulegen__gcc_LP64.py +++ b/src/olsr/bindings/modulegen__gcc_LP64.py @@ -5897,11 +5897,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -5934,6 +5929,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/point-to-point-layout/bindings/modulegen__gcc_ILP32.py b/src/point-to-point-layout/bindings/modulegen__gcc_ILP32.py index 4d735c85d37..e4ed8d3ed10 100644 --- a/src/point-to-point-layout/bindings/modulegen__gcc_ILP32.py +++ b/src/point-to-point-layout/bindings/modulegen__gcc_ILP32.py @@ -6833,11 +6833,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -6870,6 +6865,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/point-to-point-layout/bindings/modulegen__gcc_LP64.py b/src/point-to-point-layout/bindings/modulegen__gcc_LP64.py index 4d735c85d37..e4ed8d3ed10 100644 --- a/src/point-to-point-layout/bindings/modulegen__gcc_LP64.py +++ b/src/point-to-point-layout/bindings/modulegen__gcc_LP64.py @@ -6833,11 +6833,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -6870,6 +6865,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/point-to-point/bindings/modulegen__gcc_ILP32.py b/src/point-to-point/bindings/modulegen__gcc_ILP32.py index de8dcbf0b33..1fc30e8ae1f 100644 --- a/src/point-to-point/bindings/modulegen__gcc_ILP32.py +++ b/src/point-to-point/bindings/modulegen__gcc_ILP32.py @@ -389,12 +389,12 @@ def register_types_ns3_Hash_Function(module): def register_types_ns3_TracedValueCallback(module): root_module = module.get_root() - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *', u'ns3::TracedValueCallback::Uint8') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) **', u'ns3::TracedValueCallback::Uint8*') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *&', u'ns3::TracedValueCallback::Uint8&') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *', u'ns3::TracedValueCallback::Uint16') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) **', u'ns3::TracedValueCallback::Uint16*') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *&', u'ns3::TracedValueCallback::Uint16&') @@ -5050,11 +5050,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -5087,6 +5082,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/point-to-point/bindings/modulegen__gcc_LP64.py b/src/point-to-point/bindings/modulegen__gcc_LP64.py index de8dcbf0b33..1fc30e8ae1f 100644 --- a/src/point-to-point/bindings/modulegen__gcc_LP64.py +++ b/src/point-to-point/bindings/modulegen__gcc_LP64.py @@ -389,12 +389,12 @@ def register_types_ns3_Hash_Function(module): def register_types_ns3_TracedValueCallback(module): root_module = module.get_root() - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *', u'ns3::TracedValueCallback::Uint8') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) **', u'ns3::TracedValueCallback::Uint8*') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *&', u'ns3::TracedValueCallback::Uint8&') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *', u'ns3::TracedValueCallback::Uint16') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) **', u'ns3::TracedValueCallback::Uint16*') typehandlers.add_type_alias(u'void ( * ) ( uint16_t, uint16_t ) *&', u'ns3::TracedValueCallback::Uint16&') @@ -5050,11 +5050,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -5087,6 +5082,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/sixlowpan/bindings/modulegen__gcc_ILP32.py b/src/sixlowpan/bindings/modulegen__gcc_ILP32.py index b20e3a1e8d0..ac17dea9918 100644 --- a/src/sixlowpan/bindings/modulegen__gcc_ILP32.py +++ b/src/sixlowpan/bindings/modulegen__gcc_ILP32.py @@ -4663,11 +4663,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -4700,6 +4695,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/sixlowpan/bindings/modulegen__gcc_LP64.py b/src/sixlowpan/bindings/modulegen__gcc_LP64.py index b20e3a1e8d0..ac17dea9918 100644 --- a/src/sixlowpan/bindings/modulegen__gcc_LP64.py +++ b/src/sixlowpan/bindings/modulegen__gcc_LP64.py @@ -4663,11 +4663,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -4700,6 +4695,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/spectrum/bindings/modulegen__gcc_ILP32.py b/src/spectrum/bindings/modulegen__gcc_ILP32.py index e71f75dbe4a..b3f1e143ffd 100644 --- a/src/spectrum/bindings/modulegen__gcc_ILP32.py +++ b/src/spectrum/bindings/modulegen__gcc_ILP32.py @@ -556,12 +556,12 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *', u'ns3::TracedValueCallback::Uint8') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) **', u'ns3::TracedValueCallback::Uint8*') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *&', u'ns3::TracedValueCallback::Uint8&') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') @@ -6427,11 +6427,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -6464,6 +6459,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/spectrum/bindings/modulegen__gcc_LP64.py b/src/spectrum/bindings/modulegen__gcc_LP64.py index e71f75dbe4a..b3f1e143ffd 100644 --- a/src/spectrum/bindings/modulegen__gcc_LP64.py +++ b/src/spectrum/bindings/modulegen__gcc_LP64.py @@ -556,12 +556,12 @@ def register_types_ns3_TracedValueCallback(module): typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *', u'ns3::TracedValueCallback::Uint8') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) **', u'ns3::TracedValueCallback::Uint8*') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *&', u'ns3::TracedValueCallback::Uint8&') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *', u'ns3::TracedValueCallback::Uint32') typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) **', u'ns3::TracedValueCallback::Uint32*') typehandlers.add_type_alias(u'void ( * ) ( uint32_t, uint32_t ) *&', u'ns3::TracedValueCallback::Uint32&') @@ -6427,11 +6427,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -6464,6 +6459,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/tap-bridge/bindings/modulegen__gcc_ILP32.py b/src/tap-bridge/bindings/modulegen__gcc_ILP32.py index 1113fa45fed..ed3f53025e1 100644 --- a/src/tap-bridge/bindings/modulegen__gcc_ILP32.py +++ b/src/tap-bridge/bindings/modulegen__gcc_ILP32.py @@ -3428,11 +3428,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -3465,6 +3460,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/tap-bridge/bindings/modulegen__gcc_LP64.py b/src/tap-bridge/bindings/modulegen__gcc_LP64.py index 702e56b5d7d..a083be44fd6 100644 --- a/src/tap-bridge/bindings/modulegen__gcc_LP64.py +++ b/src/tap-bridge/bindings/modulegen__gcc_LP64.py @@ -3428,11 +3428,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -3465,6 +3460,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/topology-read/bindings/modulegen__gcc_ILP32.py b/src/topology-read/bindings/modulegen__gcc_ILP32.py index e373f5991f5..20624f640f2 100644 --- a/src/topology-read/bindings/modulegen__gcc_ILP32.py +++ b/src/topology-read/bindings/modulegen__gcc_ILP32.py @@ -2378,11 +2378,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -2415,6 +2410,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/topology-read/bindings/modulegen__gcc_LP64.py b/src/topology-read/bindings/modulegen__gcc_LP64.py index e373f5991f5..20624f640f2 100644 --- a/src/topology-read/bindings/modulegen__gcc_LP64.py +++ b/src/topology-read/bindings/modulegen__gcc_LP64.py @@ -2378,11 +2378,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -2415,6 +2410,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/traffic-control/bindings/modulegen__gcc_ILP32.py b/src/traffic-control/bindings/modulegen__gcc_ILP32.py index ac8a301d52d..35fb6eeeb7a 100644 --- a/src/traffic-control/bindings/modulegen__gcc_ILP32.py +++ b/src/traffic-control/bindings/modulegen__gcc_ILP32.py @@ -5082,11 +5082,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -5119,6 +5114,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/traffic-control/bindings/modulegen__gcc_LP64.py b/src/traffic-control/bindings/modulegen__gcc_LP64.py index ac8a301d52d..35fb6eeeb7a 100644 --- a/src/traffic-control/bindings/modulegen__gcc_LP64.py +++ b/src/traffic-control/bindings/modulegen__gcc_LP64.py @@ -5082,11 +5082,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -5119,6 +5114,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/uan/bindings/modulegen__gcc_ILP32.py b/src/uan/bindings/modulegen__gcc_ILP32.py index 829ce3dadda..da23531191f 100644 --- a/src/uan/bindings/modulegen__gcc_ILP32.py +++ b/src/uan/bindings/modulegen__gcc_ILP32.py @@ -489,12 +489,12 @@ def register_types_ns3_Hash_Function(module): def register_types_ns3_TracedValueCallback(module): root_module = module.get_root() - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *', u'ns3::TracedValueCallback::Uint8') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) **', u'ns3::TracedValueCallback::Uint8*') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *&', u'ns3::TracedValueCallback::Uint8&') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') @@ -7303,11 +7303,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -7340,6 +7335,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/uan/bindings/modulegen__gcc_LP64.py b/src/uan/bindings/modulegen__gcc_LP64.py index 829ce3dadda..da23531191f 100644 --- a/src/uan/bindings/modulegen__gcc_LP64.py +++ b/src/uan/bindings/modulegen__gcc_LP64.py @@ -489,12 +489,12 @@ def register_types_ns3_Hash_Function(module): def register_types_ns3_TracedValueCallback(module): root_module = module.get_root() - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') - typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *', u'ns3::TracedValueCallback::Uint8') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) **', u'ns3::TracedValueCallback::Uint8*') typehandlers.add_type_alias(u'void ( * ) ( uint8_t, uint8_t ) *&', u'ns3::TracedValueCallback::Uint8&') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *', u'ns3::TracedValueCallback::Int8') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) **', u'ns3::TracedValueCallback::Int8*') + typehandlers.add_type_alias(u'void ( * ) ( int8_t, int8_t ) *&', u'ns3::TracedValueCallback::Int8&') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *', u'ns3::TracedValueCallback::Double') typehandlers.add_type_alias(u'void ( * ) ( double, double ) **', u'ns3::TracedValueCallback::Double*') typehandlers.add_type_alias(u'void ( * ) ( double, double ) *&', u'ns3::TracedValueCallback::Double&') @@ -7303,11 +7303,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -7340,6 +7335,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/virtual-net-device/bindings/modulegen__gcc_ILP32.py b/src/virtual-net-device/bindings/modulegen__gcc_ILP32.py index 2132e97fb87..4a11a79d70d 100644 --- a/src/virtual-net-device/bindings/modulegen__gcc_ILP32.py +++ b/src/virtual-net-device/bindings/modulegen__gcc_ILP32.py @@ -2732,11 +2732,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -2769,6 +2764,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/virtual-net-device/bindings/modulegen__gcc_LP64.py b/src/virtual-net-device/bindings/modulegen__gcc_LP64.py index 2132e97fb87..4a11a79d70d 100644 --- a/src/virtual-net-device/bindings/modulegen__gcc_LP64.py +++ b/src/virtual-net-device/bindings/modulegen__gcc_LP64.py @@ -2732,11 +2732,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -2769,6 +2764,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/visualizer/bindings/modulegen__gcc_ILP32.py b/src/visualizer/bindings/modulegen__gcc_ILP32.py index 015b3737b2b..0d5c559de79 100644 --- a/src/visualizer/bindings/modulegen__gcc_ILP32.py +++ b/src/visualizer/bindings/modulegen__gcc_ILP32.py @@ -5171,11 +5171,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -5208,6 +5203,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/visualizer/bindings/modulegen__gcc_LP64.py b/src/visualizer/bindings/modulegen__gcc_LP64.py index 015b3737b2b..0d5c559de79 100644 --- a/src/visualizer/bindings/modulegen__gcc_LP64.py +++ b/src/visualizer/bindings/modulegen__gcc_LP64.py @@ -5171,11 +5171,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -5208,6 +5203,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/wave/bindings/modulegen__gcc_ILP32.py b/src/wave/bindings/modulegen__gcc_ILP32.py index 9d7a1aad420..833c94b29b4 100644 --- a/src/wave/bindings/modulegen__gcc_ILP32.py +++ b/src/wave/bindings/modulegen__gcc_ILP32.py @@ -15870,11 +15870,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -15907,6 +15902,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/wave/bindings/modulegen__gcc_LP64.py b/src/wave/bindings/modulegen__gcc_LP64.py index 9d7a1aad420..833c94b29b4 100644 --- a/src/wave/bindings/modulegen__gcc_LP64.py +++ b/src/wave/bindings/modulegen__gcc_LP64.py @@ -15870,11 +15870,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -15907,6 +15902,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/wifi/bindings/modulegen__gcc_ILP32.py b/src/wifi/bindings/modulegen__gcc_ILP32.py index 42f20aa99ed..2b8d9b3d2e6 100644 --- a/src/wifi/bindings/modulegen__gcc_ILP32.py +++ b/src/wifi/bindings/modulegen__gcc_ILP32.py @@ -15213,11 +15213,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -15250,6 +15245,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/wifi/bindings/modulegen__gcc_LP64.py b/src/wifi/bindings/modulegen__gcc_LP64.py index e4bfd9940ad..8d15c769ad5 100644 --- a/src/wifi/bindings/modulegen__gcc_LP64.py +++ b/src/wifi/bindings/modulegen__gcc_LP64.py @@ -15213,11 +15213,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -15250,6 +15245,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/wimax/bindings/modulegen__gcc_ILP32.py b/src/wimax/bindings/modulegen__gcc_ILP32.py index 38f5cd7a272..855894abfcb 100644 --- a/src/wimax/bindings/modulegen__gcc_ILP32.py +++ b/src/wimax/bindings/modulegen__gcc_ILP32.py @@ -10396,11 +10396,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -10433,6 +10428,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', diff --git a/src/wimax/bindings/modulegen__gcc_LP64.py b/src/wimax/bindings/modulegen__gcc_LP64.py index abe53cd4ff6..9b375ba87eb 100644 --- a/src/wimax/bindings/modulegen__gcc_LP64.py +++ b/src/wimax/bindings/modulegen__gcc_LP64.py @@ -10396,11 +10396,6 @@ def register_Ns3NetDeviceQueue_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueue const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueue::NetDeviceQueue() [constructor] cls.add_constructor([]) - ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::HasWakeCallbackSet() const [member function] - cls.add_method('HasWakeCallbackSet', - 'bool', - [], - is_const=True, is_virtual=True) ## net-device.h (module 'network'): bool ns3::NetDeviceQueue::IsStopped() const [member function] cls.add_method('IsStopped', 'bool', @@ -10433,6 +10428,10 @@ def register_Ns3NetDeviceQueueInterface_methods(root_module, cls): cls.add_constructor([param('ns3::NetDeviceQueueInterface const &', 'arg0')]) ## net-device.h (module 'network'): ns3::NetDeviceQueueInterface::NetDeviceQueueInterface() [constructor] cls.add_constructor([]) + ## net-device.h (module 'network'): void ns3::NetDeviceQueueInterface::CreateTxQueues() [member function] + cls.add_method('CreateTxQueues', + 'void', + []) ## net-device.h (module 'network'): uint8_t ns3::NetDeviceQueueInterface::GetNTxQueues() const [member function] cls.add_method('GetNTxQueues', 'uint8_t', From 4f349d7f4752ed47ac1698183d356d45252aface Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Fri, 22 Jul 2016 18:13:42 -0700 Subject: [PATCH 14/27] wifi: (closes #2400) Add SpectrumWifiPhy model --- CHANGES.html | 13 +- RELEASE_NOTES | 5 + examples/wireless/examples-to-run.py | 4 + .../wireless/wifi-spectrum-per-example.cc | 565 ++++++ .../wifi-spectrum-per-interference.cc | 627 +++++++ .../wifi-spectrum-saturation-example.cc | 701 +++++++ examples/wireless/wscript | 8 + .../model/wifi-spectrum-value-helper.cc | 343 +++- .../model/wifi-spectrum-value-helper.h | 131 +- src/wifi/doc/source/wifi-design.rst | 122 +- src/wifi/doc/source/wifi-testing.rst | 161 +- src/wifi/doc/source/wifi-user.rst | 11 +- src/wifi/helper/spectrum-wifi-helper.cc | 687 +++++++ src/wifi/helper/spectrum-wifi-helper.h | 187 ++ src/wifi/model/interference-helper.cc | 8 + src/wifi/model/interference-helper.h | 6 + src/wifi/model/spectrum-wifi-phy.cc | 1663 +++++++++++++++++ src/wifi/model/spectrum-wifi-phy.h | 685 +++++++ src/wifi/model/wifi-mode.h | 1 + src/wifi/model/wifi-phy-tag.cc | 107 ++ src/wifi/model/wifi-phy-tag.h | 83 + src/wifi/model/wifi-phy.cc | 2 +- src/wifi/model/wifi-spectrum-phy-interface.cc | 117 ++ src/wifi/model/wifi-spectrum-phy-interface.h | 72 + .../model/wifi-spectrum-signal-parameters.cc | 58 + .../model/wifi-spectrum-signal-parameters.h | 60 + src/wifi/test/spectrum-wifi-phy-test.cc | 261 +++ src/wifi/wscript | 13 +- 28 files changed, 6640 insertions(+), 61 deletions(-) create mode 100644 examples/wireless/wifi-spectrum-per-example.cc create mode 100644 examples/wireless/wifi-spectrum-per-interference.cc create mode 100644 examples/wireless/wifi-spectrum-saturation-example.cc create mode 100644 src/wifi/helper/spectrum-wifi-helper.cc create mode 100644 src/wifi/helper/spectrum-wifi-helper.h create mode 100644 src/wifi/model/spectrum-wifi-phy.cc create mode 100644 src/wifi/model/spectrum-wifi-phy.h create mode 100644 src/wifi/model/wifi-phy-tag.cc create mode 100644 src/wifi/model/wifi-phy-tag.h create mode 100644 src/wifi/model/wifi-spectrum-phy-interface.cc create mode 100644 src/wifi/model/wifi-spectrum-phy-interface.h create mode 100644 src/wifi/model/wifi-spectrum-signal-parameters.cc create mode 100644 src/wifi/model/wifi-spectrum-signal-parameters.h create mode 100644 src/wifi/test/spectrum-wifi-phy-test.cc diff --git a/CHANGES.html b/CHANGES.html index 5aa1cc84851..e8cce28db06 100644 --- a/CHANGES.html +++ b/CHANGES.html @@ -54,14 +54,14 @@

    Changes from ns-3.25 to ns-3.26

    New API:

      -
    • A SocketPriorityTag is introduced to carry the packet priority. Such a tag +
    • A SocketPriorityTag is introduced to carry the packet priority. Such a tag is added to packets by sockets that support this mechanism (UdpSocketImpl, TcpSocketBase and PacketSocket). The base class Socket has a new SetPriority method to set the socket priority. When the IPv4 protocol is used, the priority is set based on the ToS. See the Socket options section of the Network model for more information.
    • -
    • A WifiNetDevice::SelectQueue method has been added to determine the user +
    • A WifiNetDevice::SelectQueue method has been added to determine the user priority of an MSDU. This method is called by the traffic control layer before enqueuing a packet in the queue disc, if a queue disc is installed on the outgoing device, or passing a packet to the device, otherwise. The @@ -69,11 +69,12 @@

      New API:

      (TOS field in case of IPv4 and Traffic Class field in case of IPv6). The packet priority carried by the SocketPriorityTag is set to the user priority.
    • -
    • The PfifoFastQueueDisc classifies packets into bands based on their priority. +
    • The PfifoFastQueueDisc classifies packets into bands based on their priority. See the pfifo_fast queue disc section of the Traffic Control Layer model for more information.
    • -
    • The attributes YansWifiPhy::Frequency, YansWifiPhy::ChannelNumber, and YansWifiPhy::ChannelWidth, and the related accessor methods, were moved to base class WifiPhy. YansWifiPhy::GetChannelFrequencyMhz() was deleted. A new method WifiPhy::DefineChannelNumber () was added to allow users to define relationships between channel number, standard, frequency, and channel width. +
    • A new class SpectrumWifiPhy has been introduced that makes use of the Spectrum module. Its functionality and API is currently very similar to that of the YansWifiPhy, especially because it reuses the same InterferenceHelper and ErrorModel classes (for this release). Some example programs in the 'examples/wireless/' directory, such as 'wifi-spectrum-per-example.cc', illustrate how the SpectrumWifiPhy class can be substituted for the default YansWifiPhy PHY model. +

    Changes to existing API:

      @@ -94,6 +95,10 @@

      Changes to existing API:

    • The QosTag is removed as it has been superseded by the SocketPriorityTag.
    • The Ipv4L3Protocol::DefaultTos attribute is removed.
    • +
    • The attributes YansWifiPhy::Frequency, YansWifiPhy::ChannelNumber, and YansWifiPhy::ChannelWidth, and the related accessor methods, were moved to base class WifiPhy. YansWifiPhy::GetChannelFrequencyMhz() was deleted. A new method WifiPhy::DefineChannelNumber () was added to allow users to define relationships between channel number, standard, frequency, and channel width. +
    • +
    • The class WifiSpectrumValueHelper has been refactored; previously it was an abstract base class supporting the WifiSpectrumValue5MhzFactory spectrum model. It now contains various static member methods supporting the creation of power spectral densities with the granularity of a Wi-Fi OFDM subcarrier bandwidth. The class WifiSpectrumValue5MhzFactory and its API remain but it is not subclassed.
    • +
    • A new method InterferenceHelper::AddForeignSignal has been introduced to support use of the SpectrumWifiPhy (so that non-Wi-Fi signals may be handled as noise power).

    Changes to build system:

      diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 22e2f0f1521..5dfddd0d921 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -36,6 +36,11 @@ New user-visible features - (internet) Added TCP YeAH congestion control algorithm - (network) SocketAddressTag has been removed from the codebase. Users can use RecvFrom (for UDP) or GetPeerName (for TCP) instead. +- (wifi) A new SpectrumWifiPhy physical layer model, making use of the + ns-3 spectrum framework, has been introduced. The current version of + this model matches the API and behavior of YansWifiPhy closely, but + over time is expected to support a different PHY abstraction and error + models. Bugs fixed ---------- diff --git a/examples/wireless/examples-to-run.py b/examples/wireless/examples-to-run.py index 859d5567b54..e1c1df78622 100755 --- a/examples/wireless/examples-to-run.py +++ b/examples/wireless/examples-to-run.py @@ -32,6 +32,10 @@ ("ofdm-vht-validation", "True", "True"), ("mixed-bg-network", "True", "True"), ("wifi-tcp", "True", "True"), + ("wifi-spectrum-per-example --distance=52 --index=3 --wifiType=ns3::SpectrumWifiPhy --simulationTime=1", "True", "True"), + ("wifi-spectrum-per-example --distance=24 --index=31 --wifiType=ns3::YansWifiPhy --simulationTime=1", "True", "True"), + ("wifi-spectrum-per-interference --distance=24 --index=31 --simulationTime=1 --waveformPower=0.1", "True", "True"), + ("wifi-spectrum-saturation-example --simulationTime=1 --index=63", "True", "True"), ] # A list of Python examples to run in order to ensure that they remain diff --git a/examples/wireless/wifi-spectrum-per-example.cc b/examples/wireless/wifi-spectrum-per-example.cc new file mode 100644 index 00000000000..cbbf0b9ea63 --- /dev/null +++ b/examples/wireless/wifi-spectrum-per-example.cc @@ -0,0 +1,565 @@ +/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2009 MIRKO BANCHI + * Copyright (c) 2015 University of Washington + * + * 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 + * + * Authors: Mirko Banchi + * Sebastien Deronne + * Tom Henderson + * + * Adapted from ht-wifi-network.cc example + */ +#include +#include + +#include "ns3/core-module.h" +#include "ns3/config-store-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" + +// This is a simple example of an IEEE 802.11n Wi-Fi network. +// +// The main use case is to enable and test SpectrumWifiPhy vs YansWifiPhy +// for packet error ratio +// +// Network topology: +// +// Wi-Fi 192.168.1.0 +// +// STA AP +// * <-- distance --> * +// | | +// n1 n2 +// +// Users may vary the following command-line arguments in addition to the +// attributes, global values, and default values typically available: +// +// --simulationTime: Simulation time in seconds [10] +// --udp: UDP if set to 1, TCP otherwise [true] +// --distance: meters separation between nodes [50] +// --index: restrict index to single value between 0 and 31 [256] +// --wifiType: select ns3::SpectrumWifiPhy or ns3::YansWifiPhy [ns3::SpectrumWifiPhy] +// --errorModelType: select ns3::NistErrorRateModel or ns3::YansErrorRateModel [ns3::NistErrorRateModel] +// --enablePcap: enable pcap output [false] +// +// By default, the program will step through 32 index values, corresponding +// to the following MCS, channel width, and guard interval combinations: +// index 0-7: MCS 0-7, long guard interval, 20 MHz channel +// index 8-15: MCS 0-7, short guard interval, 20 MHz channel +// index 16-23: MCS 0-7, long guard interval, 40 MHz channel +// index 24-31: MCS 0-7, short guard interval, 40 MHz channel +// and send 1000 UDP packets using each MCS, using the SpectrumWifiPhy and the +// NistErrorRateModel, at a distance of 50 meters. The program outputs +// results such as: +// +// wifiType: ns3::SpectrumWifiPhy distance: 50m; sent: 1000 +// index MCS Rate (Mb/s) Tput (Mb/s) Received Signal (dBm) Noise (dBm) SNR (dB) +// 0 0 6.5 0.7776 1000 -77.6633 -100.966 23.3027 +// 1 1 13 0.7776 1000 -77.6633 -100.966 23.3027 +// 2 2 19.5 0.7776 1000 -77.6633 -100.966 23.3027 +// 3 3 26 0.7776 1000 -77.6633 -100.966 23.3027 +// ... +// +// When UDP is used, the throughput will always be 0.7776 Mb/s since the +// traffic generator does not attempt to match the maximum Phy data rate +// but instead sends at a constant rate. When TCP is used, the TCP flow +// will exhibit different throughput depending on the index. + +using namespace ns3; + +// Global variables for use in callbacks. +double g_signalDbmAvg; +double g_noiseDbmAvg; +uint32_t g_samples; +uint16_t g_channelNumber; +uint32_t g_rate; + +void MonitorSniffRx (Ptr packet, uint16_t channelFreqMhz, + uint16_t channelNumber, uint32_t rate, + WifiPreamble preamble, WifiTxVector txVector, + struct mpduInfo aMpdu, struct signalNoiseDbm signalNoise) + +{ + g_samples++; + g_signalDbmAvg += ((signalNoise.signal - g_signalDbmAvg) / g_samples); + g_noiseDbmAvg += ((signalNoise.noise - g_noiseDbmAvg) / g_samples); + g_rate = rate; + g_channelNumber = channelNumber; +} + +NS_LOG_COMPONENT_DEFINE ("WifiSpectrumPerExample"); + +int main (int argc, char *argv[]) +{ + bool udp = true; + double distance = 50; + double simulationTime = 10; //seconds + uint16_t index = 256; + std::string wifiType = "ns3::SpectrumWifiPhy"; + std::string errorModelType = "ns3::NistErrorRateModel"; + bool enablePcap = false; + const uint32_t tcpPacketSize = 1448; + + CommandLine cmd; + cmd.AddValue ("simulationTime", "Simulation time in seconds", simulationTime); + cmd.AddValue ("udp", "UDP if set to 1, TCP otherwise", udp); + cmd.AddValue ("distance", "meters separation between nodes", distance); + cmd.AddValue ("index", "restrict index to single value between 0 and 31", index); + cmd.AddValue ("wifiType", "select ns3::SpectrumWifiPhy or ns3::YansWifiPhy", wifiType); + cmd.AddValue ("errorModelType", "select ns3::NistErrorRateModel or ns3::YansErrorRateModel", errorModelType); + cmd.AddValue ("enablePcap", "enable pcap output", enablePcap); + cmd.Parse (argc,argv); + + uint16_t startIndex = 0; + uint16_t stopIndex = 31; + if (index < 32) + { + startIndex = index; + stopIndex = index; + } + + std::cout << "wifiType: " << wifiType << " distance: " << distance << "m; sent: 1000 TxPower: 1 dBm (1.3 mW)" << std::endl; + std::cout << std::setw (5) << "index" << + std::setw (6) << "MCS" << + std::setw (12) << "Rate (Mb/s)" << + std::setw (12) << "Tput (Mb/s)" << + std::setw (10) << "Received " << + std::setw (12) << "Signal (dBm)" << + std::setw (12) << "Noise (dBm)" << + std::setw (10) << "SNR (dB)" << + std::endl; + for (uint16_t i = startIndex; i <= stopIndex; i++) + { + uint32_t payloadSize; + if (udp) + { + payloadSize = 972; // 1000 bytes IPv4 + } + else + { + payloadSize = 1448; // 1500 bytes IPv6 + Config::SetDefault ("ns3::TcpSocket::SegmentSize", UintegerValue (payloadSize)); + } + + NodeContainer wifiStaNode; + wifiStaNode.Create (1); + NodeContainer wifiApNode; + wifiApNode.Create (1); + + YansWifiPhyHelper phy = YansWifiPhyHelper::Default (); + SpectrumWifiPhyHelper spectrumPhy = SpectrumWifiPhyHelper::Default (); + if (wifiType == "ns3::YansWifiPhy") + { + YansWifiChannelHelper channel; + channel.AddPropagationLoss ("ns3::FriisPropagationLossModel"); + channel.SetPropagationDelay ("ns3::ConstantSpeedPropagationDelayModel"); + phy.SetChannel (channel.Create ()); + phy.Set ("TxPowerStart", DoubleValue (1)); // dBm (1.26 mW) + phy.Set ("TxPowerEnd", DoubleValue (1)); + + if (i <= 7) + { + phy.Set ("ShortGuardEnabled", BooleanValue (false)); + phy.Set ("ChannelWidth", UintegerValue (20)); + } + else if (i > 7 && i <= 15) + { + phy.Set ("ShortGuardEnabled", BooleanValue (true)); + phy.Set ("ChannelWidth", UintegerValue (20)); + } + else if (i > 15 && i <= 23) + { + phy.Set ("ShortGuardEnabled", BooleanValue (false)); + phy.Set ("ChannelWidth", UintegerValue (40)); + } + else + { + phy.Set ("ShortGuardEnabled", BooleanValue (true)); + phy.Set ("ChannelWidth", UintegerValue (40)); + } + } + else if (wifiType == "ns3::SpectrumWifiPhy") + { + Ptr spectrumChannel + = CreateObject (); + Ptr lossModel + = CreateObject (); + spectrumChannel->AddPropagationLossModel (lossModel); + + Ptr delayModel + = CreateObject (); + spectrumChannel->SetPropagationDelayModel (delayModel); + + spectrumPhy.SetChannel (spectrumChannel); + spectrumPhy.SetErrorRateModel (errorModelType); + spectrumPhy.Set ("Frequency", UintegerValue (5180)); + spectrumPhy.Set ("TxPowerStart", DoubleValue (1)); // dBm (1.26 mW) + spectrumPhy.Set ("TxPowerEnd", DoubleValue (1)); + + if (i <= 7) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (false)); + spectrumPhy.Set ("ChannelWidth", UintegerValue (20)); + } + else if (i > 7 && i <= 15) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (true)); + spectrumPhy.Set ("ChannelWidth", UintegerValue (20)); + } + else if (i > 15 && i <= 23) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (false)); + spectrumPhy.Set ("ChannelWidth", UintegerValue (40)); + } + else + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (true)); + spectrumPhy.Set ("ChannelWidth", UintegerValue (40)); + } + } + else + { + NS_FATAL_ERROR ("Unsupported WiFi type " << wifiType); + } + + + WifiHelper wifi; + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + WifiMacHelper mac; + + Ssid ssid = Ssid ("ns380211n"); + + double datarate = 0; + StringValue DataRate; + if (i == 0) + { + DataRate = StringValue ("HtMcs0"); + datarate = 6.5; + } + else if (i == 1) + { + DataRate = StringValue ("HtMcs1"); + datarate = 13; + } + else if (i == 2) + { + DataRate = StringValue ("HtMcs2"); + datarate = 19.5; + } + else if (i == 3) + { + DataRate = StringValue ("HtMcs3"); + datarate = 26; + } + else if (i == 4) + { + DataRate = StringValue ("HtMcs4"); + datarate = 39; + } + else if (i == 5) + { + DataRate = StringValue ("HtMcs5"); + datarate = 52; + } + else if (i == 6) + { + DataRate = StringValue ("HtMcs6"); + datarate = 58.5; + } + else if (i == 7) + { + DataRate = StringValue ("HtMcs7"); + datarate = 65; + } + else if (i == 8) + { + DataRate = StringValue ("HtMcs0"); + datarate = 7.2; + } + else if (i == 9) + { + DataRate = StringValue ("HtMcs1"); + datarate = 14.4; + } + else if (i == 10) + { + DataRate = StringValue ("HtMcs2"); + datarate = 21.7; + } + else if (i == 11) + { + DataRate = StringValue ("HtMcs3"); + datarate = 28.9; + } + else if (i == 12) + { + DataRate = StringValue ("HtMcs4"); + datarate = 43.3; + } + else if (i == 13) + { + DataRate = StringValue ("HtMcs5"); + datarate = 57.8; + } + else if (i == 14) + { + DataRate = StringValue ("HtMcs6"); + datarate = 65; + } + else if (i == 15) + { + DataRate = StringValue ("HtMcs7"); + datarate = 72.2; + } + else if (i == 16) + { + DataRate = StringValue ("HtMcs0"); + datarate = 13.5; + } + else if (i == 17) + { + DataRate = StringValue ("HtMcs1"); + datarate = 27; + } + else if (i == 18) + { + DataRate = StringValue ("HtMcs2"); + datarate = 40.5; + } + else if (i == 19) + { + DataRate = StringValue ("HtMcs3"); + datarate = 54; + } + else if (i == 20) + { + DataRate = StringValue ("HtMcs4"); + datarate = 81; + } + else if (i == 21) + { + DataRate = StringValue ("HtMcs5"); + datarate = 108; + } + else if (i == 22) + { + DataRate = StringValue ("HtMcs6"); + datarate = 121.5; + } + else if (i == 23) + { + DataRate = StringValue ("HtMcs7"); + datarate = 135; + } + else if (i == 24) + { + DataRate = StringValue ("HtMcs0"); + datarate = 15; + } + else if (i == 25) + { + DataRate = StringValue ("HtMcs1"); + datarate = 30; + } + else if (i == 26) + { + DataRate = StringValue ("HtMcs2"); + datarate = 45; + } + else if (i == 27) + { + DataRate = StringValue ("HtMcs3"); + datarate = 60; + } + else if (i == 28) + { + DataRate = StringValue ("HtMcs4"); + datarate = 90; + } + else if (i == 29) + { + DataRate = StringValue ("HtMcs5"); + datarate = 120; + } + else if (i == 30) + { + DataRate = StringValue ("HtMcs6"); + datarate = 135; + } + else + { + DataRate = StringValue ("HtMcs7"); + datarate = 150; + } + + wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager","DataMode", DataRate, + "ControlMode", DataRate); + + NetDeviceContainer staDevice; + NetDeviceContainer apDevice; + + if (wifiType == "ns3::YansWifiPhy") + { + mac.SetType ("ns3::StaWifiMac", + "Ssid", SsidValue (ssid), + "ActiveProbing", BooleanValue (false)); + staDevice = wifi.Install (phy, mac, wifiStaNode); + mac.SetType ("ns3::ApWifiMac", + "Ssid", SsidValue (ssid)); + apDevice = wifi.Install (phy, mac, wifiApNode); + + } + else if (wifiType == "ns3::SpectrumWifiPhy") + { + mac.SetType ("ns3::StaWifiMac", + "Ssid", SsidValue (ssid), + "ActiveProbing", BooleanValue (false)); + staDevice = wifi.Install (spectrumPhy, mac, wifiStaNode); + mac.SetType ("ns3::ApWifiMac", + "Ssid", SsidValue (ssid)); + apDevice = wifi.Install (spectrumPhy, mac, wifiApNode); + } + + // mobility. + MobilityHelper mobility; + Ptr positionAlloc = CreateObject (); + + positionAlloc->Add (Vector (0.0, 0.0, 0.0)); + positionAlloc->Add (Vector (distance, 0.0, 0.0)); + mobility.SetPositionAllocator (positionAlloc); + + mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel"); + + mobility.Install (wifiApNode); + mobility.Install (wifiStaNode); + + /* Internet stack*/ + InternetStackHelper stack; + stack.Install (wifiApNode); + stack.Install (wifiStaNode); + + Ipv4AddressHelper address; + + address.SetBase ("192.168.1.0", "255.255.255.0"); + Ipv4InterfaceContainer staNodeInterface; + Ipv4InterfaceContainer apNodeInterface; + + staNodeInterface = address.Assign (staDevice); + apNodeInterface = address.Assign (apDevice); + + /* Setting applications */ + ApplicationContainer serverApp, sinkApp; + if (udp) + { + //UDP flow + UdpServerHelper myServer (9); + serverApp = myServer.Install (wifiStaNode.Get (0)); + serverApp.Start (Seconds (0.0)); + serverApp.Stop (Seconds (simulationTime + 1)); + + UdpClientHelper myClient (staNodeInterface.GetAddress (0), 9); + myClient.SetAttribute ("MaxPackets", UintegerValue (1000)); + myClient.SetAttribute ("Interval", TimeValue (MilliSeconds (5))); + myClient.SetAttribute ("PacketSize", UintegerValue (payloadSize)); + + ApplicationContainer clientApp = myClient.Install (wifiApNode.Get (0)); + clientApp.Start (Seconds (1.0)); + clientApp.Stop (Seconds (simulationTime + 1)); + } + else + { + //TCP flow + uint16_t port = 50000; + Address apLocalAddress (InetSocketAddress (Ipv4Address::GetAny (), port)); + PacketSinkHelper packetSinkHelper ("ns3::TcpSocketFactory", apLocalAddress); + sinkApp = packetSinkHelper.Install (wifiStaNode.Get (0)); + + sinkApp.Start (Seconds (0.0)); + sinkApp.Stop (Seconds (simulationTime + 1)); + + OnOffHelper onoff ("ns3::TcpSocketFactory",Ipv4Address::GetAny ()); + onoff.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1]")); + onoff.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0]")); + onoff.SetAttribute ("PacketSize", UintegerValue (payloadSize)); + onoff.SetAttribute ("DataRate", DataRateValue (1000000000)); //bit/s + ApplicationContainer apps; + + AddressValue remoteAddress (InetSocketAddress (staNodeInterface.GetAddress (0), port)); + onoff.SetAttribute ("Remote", remoteAddress); + apps.Add (onoff.Install (wifiApNode.Get (0))); + apps.Start (Seconds (1.0)); + apps.Stop (Seconds (simulationTime + 1)); + } + + Config::ConnectWithoutContext ("/NodeList/0/DeviceList/*/Phy/MonitorSnifferRx", MakeCallback (&MonitorSniffRx)); + + if (enablePcap) + { + std::stringstream ss; + ss << "wifi-spectrum-per-example-" << i; + phy.EnablePcap (ss.str (), apDevice); + } + g_signalDbmAvg = 0; + g_noiseDbmAvg = 0; + g_samples = 0; + g_channelNumber = 0; + g_rate = 0; + + Simulator::Stop (Seconds (simulationTime + 1)); + Simulator::Run (); + Simulator::Destroy (); + + double throughput = 0; + uint32_t totalPacketsThrough = 0; + if (udp) + { + //UDP + totalPacketsThrough = DynamicCast (serverApp.Get (0))->GetReceived (); + throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0); //Mbit/s + } + else + { + //TCP + uint32_t totalBytesRx = DynamicCast (sinkApp.Get (0))->GetTotalRx (); + totalPacketsThrough = totalBytesRx / tcpPacketSize; + throughput = totalBytesRx * 8 / (simulationTime * 1000000.0); //Mbit/s + } + std::cout << std::setw (5) << i << + std::setw (6) << (i % 8) << + std::setw (10) << datarate << + std::setw (12) << throughput << + std::setw (8) << totalPacketsThrough; + if (totalPacketsThrough > 0) + { + std::cout << std::setw (12) << g_signalDbmAvg << + std::setw (12) << g_noiseDbmAvg << + std::setw (12) << (g_signalDbmAvg - g_noiseDbmAvg) << + std::endl; + } + else + { + std::cout << std::setw (12) << "N/A" << + std::setw (12) << "N/A" << + std::setw (12) << "N/A" << + std::endl; + } + } + return 0; +} diff --git a/examples/wireless/wifi-spectrum-per-interference.cc b/examples/wireless/wifi-spectrum-per-interference.cc new file mode 100644 index 00000000000..103460d2dc7 --- /dev/null +++ b/examples/wireless/wifi-spectrum-per-interference.cc @@ -0,0 +1,627 @@ +/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2009 MIRKO BANCHI + * Copyright (c) 2015 University of Washington + * + * 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 + * + * Authors: Mirko Banchi + * Sebastien Deronne + * Tom Henderson + * + * Adapted from ht-wifi-network.cc example + */ +#include +#include + +#include "ns3/core-module.h" +#include "ns3/config-store-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" + +// 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 +// +// Unless the --waveformPower argument is passed, it will behave like +// wifi-spectrum-per-example. Adding --waveformPower=value for values +// greater than 0.0001 will result in frame losses beyond those that +// result from the normal SNR based on distance path loss. +// +// If YansWifiPhy is selected as the wifiType, --waveformPower will have +// no effect. +// +// Network topology: +// +// Wi-Fi 192.168.1.0 +// +// STA AP +// * <-- distance --> * +// | | +// n1 n2 +// +// Users may vary the following command-line arguments in addition to the +// attributes, global values, and default values typically available: +// +// --simulationTime: Simulation time in seconds [10] +// --udp: UDP if set to 1, TCP otherwise [true] +// --distance: meters separation between nodes [50] +// --index: restrict index to single value between 0 and 31 [256] +// --wifiType: select ns3::SpectrumWifiPhy or ns3::YansWifiPhy [ns3::SpectrumWifiPhy] +// --errorModelType: select ns3::NistErrorRateModel or ns3::YansErrorRateModel [ns3::NistErrorRateModel] +// --enablePcap: enable pcap output [false] +// --waveformPower: Waveform power [0] +// +// By default, the program will step through 32 index values, corresponding +// to the following MCS, channel width, and guard interval combinations: +// index 0-7: MCS 0-7, long guard interval, 20 MHz channel +// index 8-15: MCS 0-7, short guard interval, 20 MHz channel +// index 16-23: MCS 0-7, long guard interval, 40 MHz channel +// index 24-31: MCS 0-7, short guard interval, 40 MHz channel +// and send 1000 UDP packets using each MCS, using the SpectrumWifiPhy and the +// NistErrorRateModel, at a distance of 50 meters. The program outputs +// results such as: +// +// wifiType: ns3::SpectrumWifiPhy distance: 50m; sent: 1000 +// index MCS Rate (Mb/s) Tput (Mb/s) Received Signal (dBm) Noise (dBm) SNR (dB) +// 0 0 6.5 0.7776 1000 -77.6633 -100.966 23.3027 +// 1 1 13 0.7776 1000 -77.6633 -100.966 23.3027 +// 2 2 19.5 0.7776 1000 -77.6633 -100.966 23.3027 +// 3 3 26 0.7776 1000 -77.6633 -100.966 23.3027 +// ... +// +// When UDP is used, the throughput will always be 0.7776 Mb/s since the +// traffic generator does not attempt to match the maximum Phy data rate +// but instead sends at a constant rate. When TCP is used, the TCP flow +// will exhibit different throughput depending on the index. + +using namespace ns3; + +// Global variables for use in callbacks. +double g_signalDbmAvg; +double g_noiseDbmAvg; +uint32_t g_samples; +uint16_t g_channelNumber; +uint32_t g_rate; + +void MonitorSniffRx (Ptr packet, uint16_t channelFreqMhz, + uint16_t channelNumber, uint32_t rate, + WifiPreamble preamble, WifiTxVector txVector, + struct mpduInfo aMpdu, struct signalNoiseDbm signalNoise) + +{ + g_samples++; + g_signalDbmAvg += ((signalNoise.signal - g_signalDbmAvg) / g_samples); + g_noiseDbmAvg += ((signalNoise.noise - g_noiseDbmAvg) / g_samples); + g_rate = rate; + g_channelNumber = channelNumber; +} + +NS_LOG_COMPONENT_DEFINE ("WifiSpectrumPerInterference"); + +Ptr SpectrumModelWifi5180MHz; + +class static_SpectrumModelWifi5180MHz_initializer +{ +public: + static_SpectrumModelWifi5180MHz_initializer () + { + BandInfo bandInfo; + bandInfo.fc = 5180e6; + bandInfo.fl = 5180e6 - 10e6; + bandInfo.fh = 5180e6 + 10e6; + + Bands bands; + bands.push_back (bandInfo); + + SpectrumModelWifi5180MHz = Create (bands); + } + +} static_SpectrumModelWifi5180MHz_initializer_instance; + +int main (int argc, char *argv[]) +{ + bool udp = true; + double distance = 50; + double simulationTime = 10; //seconds + uint16_t index = 256; + std::string wifiType = "ns3::SpectrumWifiPhy"; + std::string errorModelType = "ns3::NistErrorRateModel"; + bool enablePcap = false; + const uint32_t tcpPacketSize = 1448; + double waveformPower = 0; + + CommandLine cmd; + cmd.AddValue ("simulationTime", "Simulation time in seconds", simulationTime); + cmd.AddValue ("udp", "UDP if set to 1, TCP otherwise", udp); + cmd.AddValue ("distance", "meters separation between nodes", distance); + cmd.AddValue ("index", "restrict index to single value between 0 and 31", index); + cmd.AddValue ("wifiType", "select ns3::SpectrumWifiPhy or ns3::YansWifiPhy", wifiType); + cmd.AddValue ("errorModelType", "select ns3::NistErrorRateModel or ns3::YansErrorRateModel", errorModelType); + cmd.AddValue ("enablePcap", "enable pcap output", enablePcap); + cmd.AddValue ("waveformPower", "Waveform power", waveformPower); + cmd.Parse (argc,argv); + + uint16_t startIndex = 0; + uint16_t stopIndex = 31; + if (index < 32) + { + startIndex = index; + stopIndex = index; + } + + std::cout << "wifiType: " << wifiType << " distance: " << distance << "m; sent: 1000 TxPower: 16 dBm (40 mW)" << std::endl; + std::cout << std::setw (5) << "index" << + std::setw (6) << "MCS" << + std::setw (12) << "Rate (Mb/s)" << + std::setw (12) << "Tput (Mb/s)" << + std::setw (10) << "Received " << + std::setw (12) << "Signal (dBm)" << + std::setw (12) << "Noi+Inf(dBm)" << + std::setw (10) << "SNR (dB)" << + std::endl; + for (uint16_t i = startIndex; i <= stopIndex; i++) + { + uint32_t payloadSize; + if (udp) + { + payloadSize = 972; // 1000 bytes IPv4 + } + else + { + payloadSize = 1448; // 1500 bytes IPv6 + Config::SetDefault ("ns3::TcpSocket::SegmentSize", UintegerValue (payloadSize)); + } + + NodeContainer wifiStaNode; + wifiStaNode.Create (1); + NodeContainer wifiApNode; + wifiApNode.Create (1); + NodeContainer interferingNode; + interferingNode.Create (1); + + YansWifiPhyHelper phy = YansWifiPhyHelper::Default (); + SpectrumWifiPhyHelper spectrumPhy = SpectrumWifiPhyHelper::Default (); + Ptr spectrumChannel; + if (wifiType == "ns3::YansWifiPhy") + { + YansWifiChannelHelper channel; + channel.AddPropagationLoss ("ns3::FriisPropagationLossModel"); + channel.SetPropagationDelay ("ns3::ConstantSpeedPropagationDelayModel"); + phy.SetChannel (channel.Create ()); + phy.Set ("Frequency", UintegerValue (5180)); + + if (i <= 7) + { + phy.Set ("ShortGuardEnabled", BooleanValue (false)); + phy.Set ("ChannelWidth", UintegerValue (20)); + } + else if (i > 7 && i <= 15) + { + phy.Set ("ShortGuardEnabled", BooleanValue (true)); + phy.Set ("ChannelWidth", UintegerValue (20)); + } + else if (i > 15 && i <= 23) + { + phy.Set ("ShortGuardEnabled", BooleanValue (false)); + phy.Set ("ChannelWidth", UintegerValue (40)); + } + else + { + phy.Set ("ShortGuardEnabled", BooleanValue (true)); + phy.Set ("ChannelWidth", UintegerValue (40)); + } + } + else if (wifiType == "ns3::SpectrumWifiPhy") + { + spectrumChannel + = CreateObject (); + Ptr lossModel + = CreateObject (); + spectrumChannel->AddPropagationLossModel (lossModel); + + + Ptr delayModel + = CreateObject (); + spectrumChannel->SetPropagationDelayModel (delayModel); + + spectrumPhy.SetChannel (spectrumChannel); + spectrumPhy.SetErrorRateModel (errorModelType); + spectrumPhy.Set ("Frequency", UintegerValue (5180)); // channel 36 at 20 MHz + + if (i <= 7) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (false)); + spectrumPhy.Set ("ChannelWidth", UintegerValue (20)); + } + else if (i > 7 && i <= 15) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (true)); + spectrumPhy.Set ("ChannelWidth", UintegerValue (20)); + } + else if (i > 15 && i <= 23) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (false)); + spectrumPhy.Set ("ChannelWidth", UintegerValue (40)); + } + else + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (true)); + spectrumPhy.Set ("ChannelWidth", UintegerValue (40)); + } + } + else + { + NS_FATAL_ERROR ("Unsupported WiFi type " << wifiType); + } + + + WifiHelper wifi; + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + WifiMacHelper mac; + + Ssid ssid = Ssid ("ns380211n"); + + double datarate = 0; + StringValue DataRate; + if (i == 0) + { + DataRate = StringValue ("HtMcs0"); + datarate = 6.5; + } + else if (i == 1) + { + DataRate = StringValue ("HtMcs1"); + datarate = 13; + } + else if (i == 2) + { + DataRate = StringValue ("HtMcs2"); + datarate = 19.5; + } + else if (i == 3) + { + DataRate = StringValue ("HtMcs3"); + datarate = 26; + } + else if (i == 4) + { + DataRate = StringValue ("HtMcs4"); + datarate = 39; + } + else if (i == 5) + { + DataRate = StringValue ("HtMcs5"); + datarate = 52; + } + else if (i == 6) + { + DataRate = StringValue ("HtMcs6"); + datarate = 58.5; + } + else if (i == 7) + { + DataRate = StringValue ("HtMcs7"); + datarate = 65; + } + else if (i == 8) + { + DataRate = StringValue ("HtMcs0"); + datarate = 7.2; + } + else if (i == 9) + { + DataRate = StringValue ("HtMcs1"); + datarate = 14.4; + } + else if (i == 10) + { + DataRate = StringValue ("HtMcs2"); + datarate = 21.7; + } + else if (i == 11) + { + DataRate = StringValue ("HtMcs3"); + datarate = 28.9; + } + else if (i == 12) + { + DataRate = StringValue ("HtMcs4"); + datarate = 43.3; + } + else if (i == 13) + { + DataRate = StringValue ("HtMcs5"); + datarate = 57.8; + } + else if (i == 14) + { + DataRate = StringValue ("HtMcs6"); + datarate = 65; + } + else if (i == 15) + { + DataRate = StringValue ("HtMcs7"); + datarate = 72.2; + } + else if (i == 16) + { + DataRate = StringValue ("HtMcs0"); + datarate = 13.5; + } + else if (i == 17) + { + DataRate = StringValue ("HtMcs1"); + datarate = 27; + } + else if (i == 18) + { + DataRate = StringValue ("HtMcs2"); + datarate = 40.5; + } + else if (i == 19) + { + DataRate = StringValue ("HtMcs3"); + datarate = 54; + } + else if (i == 20) + { + DataRate = StringValue ("HtMcs4"); + datarate = 81; + } + else if (i == 21) + { + DataRate = StringValue ("HtMcs5"); + datarate = 108; + } + else if (i == 22) + { + DataRate = StringValue ("HtMcs6"); + datarate = 121.5; + } + else if (i == 23) + { + DataRate = StringValue ("HtMcs7"); + datarate = 135; + } + else if (i == 24) + { + DataRate = StringValue ("HtMcs0"); + datarate = 15; + } + else if (i == 25) + { + DataRate = StringValue ("HtMcs1"); + datarate = 30; + } + else if (i == 26) + { + DataRate = StringValue ("HtMcs2"); + datarate = 45; + } + else if (i == 27) + { + DataRate = StringValue ("HtMcs3"); + datarate = 60; + } + else if (i == 28) + { + DataRate = StringValue ("HtMcs4"); + datarate = 90; + } + else if (i == 29) + { + DataRate = StringValue ("HtMcs5"); + datarate = 120; + } + else if (i == 30) + { + DataRate = StringValue ("HtMcs6"); + datarate = 135; + } + else + { + DataRate = StringValue ("HtMcs7"); + datarate = 150; + } + + wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager","DataMode", DataRate, + "ControlMode", DataRate); + + NetDeviceContainer staDevice; + NetDeviceContainer apDevice; + + if (wifiType == "ns3::YansWifiPhy") + { + mac.SetType ("ns3::StaWifiMac", + "Ssid", SsidValue (ssid), + "ActiveProbing", BooleanValue (false)); + staDevice = wifi.Install (phy, mac, wifiStaNode); + mac.SetType ("ns3::ApWifiMac", + "Ssid", SsidValue (ssid)); + apDevice = wifi.Install (phy, mac, wifiApNode); + + } + else if (wifiType == "ns3::SpectrumWifiPhy") + { + mac.SetType ("ns3::StaWifiMac", + "Ssid", SsidValue (ssid), + "ActiveProbing", BooleanValue (false)); + staDevice = wifi.Install (spectrumPhy, mac, wifiStaNode); + mac.SetType ("ns3::ApWifiMac", + "Ssid", SsidValue (ssid)); + apDevice = wifi.Install (spectrumPhy, mac, wifiApNode); + } + + // mobility. + MobilityHelper mobility; + Ptr positionAlloc = CreateObject (); + + positionAlloc->Add (Vector (0.0, 0.0, 0.0)); + positionAlloc->Add (Vector (distance, 0.0, 0.0)); + positionAlloc->Add (Vector (distance, distance, 0.0)); + mobility.SetPositionAllocator (positionAlloc); + + mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel"); + + mobility.Install (wifiApNode); + mobility.Install (wifiStaNode); + mobility.Install (interferingNode); + + /* Internet stack*/ + InternetStackHelper stack; + stack.Install (wifiApNode); + stack.Install (wifiStaNode); + + Ipv4AddressHelper address; + + address.SetBase ("192.168.1.0", "255.255.255.0"); + Ipv4InterfaceContainer staNodeInterface; + Ipv4InterfaceContainer apNodeInterface; + + staNodeInterface = address.Assign (staDevice); + apNodeInterface = address.Assign (apDevice); + + /* Setting applications */ + ApplicationContainer serverApp, sinkApp; + if (udp) + { + //UDP flow + UdpServerHelper myServer (9); + serverApp = myServer.Install (wifiStaNode.Get (0)); + serverApp.Start (Seconds (0.0)); + serverApp.Stop (Seconds (simulationTime + 1)); + + UdpClientHelper myClient (staNodeInterface.GetAddress (0), 9); + myClient.SetAttribute ("MaxPackets", UintegerValue (1000)); + myClient.SetAttribute ("Interval", TimeValue (MilliSeconds (5))); + myClient.SetAttribute ("PacketSize", UintegerValue (payloadSize)); + + ApplicationContainer clientApp = myClient.Install (wifiApNode.Get (0)); + clientApp.Start (Seconds (1.0)); + clientApp.Stop (Seconds (simulationTime + 1)); + } + else + { + //TCP flow + uint16_t port = 50000; + Address apLocalAddress (InetSocketAddress (Ipv4Address::GetAny (), port)); + PacketSinkHelper packetSinkHelper ("ns3::TcpSocketFactory", apLocalAddress); + sinkApp = packetSinkHelper.Install (wifiStaNode.Get (0)); + + sinkApp.Start (Seconds (0.0)); + sinkApp.Stop (Seconds (simulationTime + 1)); + + OnOffHelper onoff ("ns3::TcpSocketFactory",Ipv4Address::GetAny ()); + onoff.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1]")); + onoff.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0]")); + onoff.SetAttribute ("PacketSize", UintegerValue (payloadSize)); + onoff.SetAttribute ("DataRate", DataRateValue (1000000000)); //bit/s + ApplicationContainer apps; + + AddressValue remoteAddress (InetSocketAddress (staNodeInterface.GetAddress (0), port)); + onoff.SetAttribute ("Remote", remoteAddress); + apps.Add (onoff.Install (wifiApNode.Get (0))); + apps.Start (Seconds (1.0)); + apps.Stop (Seconds (simulationTime + 1)); + } + // Configure waveform generator + + Ptr wgPsd = Create (SpectrumModelWifi5180MHz); + *wgPsd = waveformPower / (100 * 180000); + NS_LOG_INFO ("wgPsd : " << *wgPsd << " integrated power: " << Integral (*(GetPointer (wgPsd)))); + + if (wifiType == "ns3::SpectrumWifiPhy") + { + WaveformGeneratorHelper waveformGeneratorHelper; + waveformGeneratorHelper.SetChannel (spectrumChannel); + waveformGeneratorHelper.SetTxPowerSpectralDensity (wgPsd); + + waveformGeneratorHelper.SetPhyAttribute ("Period", TimeValue (Seconds (0.0007))); + waveformGeneratorHelper.SetPhyAttribute ("DutyCycle", DoubleValue (1)); + NetDeviceContainer waveformGeneratorDevices = waveformGeneratorHelper.Install (interferingNode); + + Simulator::Schedule (Seconds (0.002), &WaveformGenerator::Start, + waveformGeneratorDevices.Get (0)->GetObject ()->GetPhy ()->GetObject ()); + } + + Config::ConnectWithoutContext ("/NodeList/0/DeviceList/*/Phy/MonitorSnifferRx", MakeCallback (&MonitorSniffRx)); + + if (enablePcap) + { + std::stringstream ss; + ss << "wifi-spectrum-per-example-" << i; + phy.EnablePcap (ss.str (), apDevice); + } + g_signalDbmAvg = 0; + g_noiseDbmAvg = 0; + g_samples = 0; + g_channelNumber = 0; + g_rate = 0; + + // Make sure we are tuned to 5180 MHz; if not, the example will + // not work properly + Ptr staDevicePtr = staDevice.Get (0); + Ptr wifiStaDevicePtr = staDevicePtr->GetObject (); + UintegerValue val; + wifiStaDevicePtr->GetPhy ()->GetAttribute ("Frequency", val); + if (val.Get () != 5180) + { + NS_FATAL_ERROR ("Error: Wi-Fi nodes must be tuned to 5180 MHz to match the waveform generator"); + } + + Simulator::Stop (Seconds (simulationTime + 1)); + Simulator::Run (); + Simulator::Destroy (); + + double throughput = 0; + uint32_t totalPacketsThrough = 0; + if (udp) + { + //UDP + totalPacketsThrough = DynamicCast (serverApp.Get (0))->GetReceived (); + throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0); //Mbit/s + } + else + { + //TCP + uint32_t totalBytesRx = DynamicCast (sinkApp.Get (0))->GetTotalRx (); + totalPacketsThrough = totalBytesRx / tcpPacketSize; + throughput = totalBytesRx * 8 / (simulationTime * 1000000.0); //Mbit/s + } + std::cout << std::setw (5) << i << + std::setw (6) << (i % 8) << + std::setw (10) << datarate << + std::setw (12) << throughput << + std::setw (8) << totalPacketsThrough; + if (totalPacketsThrough > 0) + { + std::cout << std::setw (12) << g_signalDbmAvg << + std::setw (12) << g_noiseDbmAvg << + std::setw (12) << (g_signalDbmAvg - g_noiseDbmAvg) << + std::endl; + } + else + { + std::cout << std::setw (12) << "N/A" << + std::setw (12) << "N/A" << + std::setw (12) << "N/A" << + std::endl; + } + } + return 0; +} diff --git a/examples/wireless/wifi-spectrum-saturation-example.cc b/examples/wireless/wifi-spectrum-saturation-example.cc new file mode 100644 index 00000000000..4dedf297974 --- /dev/null +++ b/examples/wireless/wifi-spectrum-saturation-example.cc @@ -0,0 +1,701 @@ +/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2009 MIRKO BANCHI + * Copyright (c) 2015 University of Washington + * + * 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 + * + * Authors: Mirko Banchi + * Sebastien Deronne + * Tom Henderson + * + * Adapted from ht-wifi-network.cc example + */ +#include +#include + +#include "ns3/core-module.h" +#include "ns3/config-store-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" + +// This is a simple example of an IEEE 802.11n Wi-Fi network. +// +// The main use case is to enable and test SpectrumWifiPhy vs YansWifiPhy +// under saturation conditions (for max throughput). +// +// Network topology: +// +// Wi-Fi 192.168.1.0 +// +// STA AP +// * <-- distance --> * +// | | +// n1 n2 +// +// Users may vary the following command-line arguments in addition to the +// attributes, global values, and default values typically available: +// +// --simulationTime: Simulation time in seconds [10] +// --distance: meters separation between nodes [50] +// --index: restrict index to single value between 0 and 31 [256] +// --wifiType: select ns3::SpectrumWifiPhy or ns3::YansWifiPhy [ns3::SpectrumWifiPhy] +// --errorModelType: select ns3::NistErrorRateModel or ns3::YansErrorRateModel [ns3::NistErrorRateModel] +// --enablePcap: enable pcap output [false] +// +// By default, the program will step through 64 index values, corresponding +// to the following MCS, channel width, and guard interval combinations: +// index 0-7: MCS 0-7, long guard interval, 20 MHz channel +// index 8-15: MCS 0-7, short guard interval, 20 MHz channel +// index 16-23: MCS 0-7, long guard interval, 40 MHz channel +// index 24-31: MCS 0-7, short guard interval, 40 MHz channel +// index 32-39: MCS 8-15, long guard interval, 20 MHz channel +// index 40-47: MCS 8-15, short guard interval, 20 MHz channel +// index 48-55: MCS 8-15, long guard interval, 40 MHz channel +// index 56-63: MCS 8-15, short guard interval, 40 MHz channel +// and send packets at a high rate using each MCS, using the SpectrumWifiPhy +// and the NistErrorRateModel, at a distance of 1 meter. The program outputs +// results such as: +// +// wifiType: ns3::SpectrumWifiPhy distance: 1m +// index MCS width Rate (Mb/s) Tput (Mb/s) Received +// 0 0 20 6.5 5.96219 5063 +// 1 1 20 13 11.9491 10147 +// 2 2 20 19.5 17.9184 15216 +// 3 3 20 26 23.9253 20317 +// ... +// +// selection of index values 32-63 will result in MCS selection 8-15 +// involving two spatial streams + +using namespace ns3; + +NS_LOG_COMPONENT_DEFINE ("WifiSpectrumSaturationExample"); + +int main (int argc, char *argv[]) +{ + double distance = 1; + double simulationTime = 10; //seconds + uint16_t index = 256; + uint32_t channelWidth; + std::string wifiType = "ns3::SpectrumWifiPhy"; + std::string errorModelType = "ns3::NistErrorRateModel"; + bool enablePcap = false; + + CommandLine cmd; + cmd.AddValue ("simulationTime", "Simulation time in seconds", simulationTime); + cmd.AddValue ("distance", "meters separation between nodes", distance); + cmd.AddValue ("index", "restrict index to single value between 0 and 63", index); + cmd.AddValue ("wifiType", "select ns3::SpectrumWifiPhy or ns3::YansWifiPhy", wifiType); + cmd.AddValue ("errorModelType", "select ns3::NistErrorRateModel or ns3::YansErrorRateModel", errorModelType); + cmd.AddValue ("enablePcap", "enable pcap output", enablePcap); + cmd.Parse (argc,argv); + + uint16_t startIndex = 0; + uint16_t stopIndex = 63; + if (index < 64) + { + startIndex = index; + stopIndex = index; + } + + std::cout << "wifiType: " << wifiType << " distance: " << distance << "m" << std::endl; + std::cout << std::setw (5) << "index" << + std::setw (6) << "MCS" << + std::setw (8) << "width" << + std::setw (12) << "Rate (Mb/s)" << + std::setw (12) << "Tput (Mb/s)" << + std::setw (10) << "Received " << + std::endl; + for (uint16_t i = startIndex; i <= stopIndex; i++) + { + uint32_t payloadSize; + payloadSize = 1472; // 1500 bytes IPv4 + + NodeContainer wifiStaNode; + wifiStaNode.Create (1); + NodeContainer wifiApNode; + wifiApNode.Create (1); + + YansWifiPhyHelper phy = YansWifiPhyHelper::Default (); + SpectrumWifiPhyHelper spectrumPhy = SpectrumWifiPhyHelper::Default (); + if (wifiType == "ns3::YansWifiPhy") + { + YansWifiChannelHelper channel; + channel.AddPropagationLoss ("ns3::FriisPropagationLossModel"); + channel.SetPropagationDelay ("ns3::ConstantSpeedPropagationDelayModel"); + phy.SetChannel (channel.Create ()); + phy.Set ("TxPowerStart", DoubleValue (1)); + phy.Set ("TxPowerEnd", DoubleValue (1)); + + if (i <= 7) + { + phy.Set ("ShortGuardEnabled", BooleanValue (false)); + channelWidth = 20; + } + else if (i > 7 && i <= 15) + { + phy.Set ("ShortGuardEnabled", BooleanValue (true)); + channelWidth = 20; + } + else if (i > 15 && i <= 23) + { + phy.Set ("ShortGuardEnabled", BooleanValue (false)); + channelWidth = 40; + } + else if (i > 23 && i <= 31) + { + phy.Set ("ShortGuardEnabled", BooleanValue (true)); + channelWidth = 40; + } + else if (i > 31 && i <= 39) + { + phy.Set ("ShortGuardEnabled", BooleanValue (false)); + phy.Set ("RxAntennas", UintegerValue (2)); + phy.Set ("TxAntennas", UintegerValue (2)); + channelWidth = 20; + } + else if (i > 39 && i <= 47) + { + phy.Set ("ShortGuardEnabled", BooleanValue (true)); + phy.Set ("RxAntennas", UintegerValue (2)); + phy.Set ("TxAntennas", UintegerValue (2)); + channelWidth = 20; + } + else if (i > 47 && i <= 55) + { + phy.Set ("ShortGuardEnabled", BooleanValue (false)); + phy.Set ("RxAntennas", UintegerValue (2)); + phy.Set ("TxAntennas", UintegerValue (2)); + channelWidth = 40; + } + else if (i > 55 && i <= 63) + { + phy.Set ("ShortGuardEnabled", BooleanValue (true)); + phy.Set ("RxAntennas", UintegerValue (2)); + phy.Set ("TxAntennas", UintegerValue (2)); + channelWidth = 40; + } + } + else if (wifiType == "ns3::SpectrumWifiPhy") + { + Ptr spectrumChannel + = CreateObject (); + Ptr lossModel + = CreateObject (); + spectrumChannel->AddPropagationLossModel (lossModel); + + Ptr delayModel + = CreateObject (); + spectrumChannel->SetPropagationDelayModel (delayModel); + + spectrumPhy.SetChannel (spectrumChannel); + spectrumPhy.SetErrorRateModel (errorModelType); + spectrumPhy.Set ("Frequency", UintegerValue (5180)); // channel 36 at 20 MHz + spectrumPhy.Set ("TxPowerStart", DoubleValue (1)); + spectrumPhy.Set ("TxPowerEnd", DoubleValue (1)); + + if (i <= 7) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (false)); + channelWidth = 20; + } + else if (i > 7 && i <= 15) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (true)); + channelWidth = 20; + } + else if (i > 15 && i <= 23) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (false)); + channelWidth = 40; + } + else if (i > 23 && i <= 31) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (true)); + channelWidth = 40; + } + else if (i > 31 && i <= 39) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (false)); + spectrumPhy.Set ("RxAntennas", UintegerValue (2)); + spectrumPhy.Set ("TxAntennas", UintegerValue (2)); + channelWidth = 20; + } + else if (i > 39 && i <= 47) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (true)); + spectrumPhy.Set ("RxAntennas", UintegerValue (2)); + spectrumPhy.Set ("TxAntennas", UintegerValue (2)); + channelWidth = 20; + } + else if (i > 47 && i <= 55) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (false)); + spectrumPhy.Set ("RxAntennas", UintegerValue (2)); + spectrumPhy.Set ("TxAntennas", UintegerValue (2)); + channelWidth = 40; + } + else if (i > 55 && i <= 63) + { + spectrumPhy.Set ("ShortGuardEnabled", BooleanValue (true)); + spectrumPhy.Set ("RxAntennas", UintegerValue (2)); + spectrumPhy.Set ("TxAntennas", UintegerValue (2)); + channelWidth = 40; + } + } + else + { + NS_FATAL_ERROR ("Unsupported WiFi type " << wifiType); + } + + + WifiHelper wifi; + wifi.SetStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + WifiMacHelper mac; + + Ssid ssid = Ssid ("ns380211n"); + + double datarate = 0; + StringValue DataRate; + if (i == 0) + { + DataRate = StringValue ("HtMcs0"); + datarate = 6.5; + } + else if (i == 1) + { + DataRate = StringValue ("HtMcs1"); + datarate = 13; + } + else if (i == 2) + { + DataRate = StringValue ("HtMcs2"); + datarate = 19.5; + } + else if (i == 3) + { + DataRate = StringValue ("HtMcs3"); + datarate = 26; + } + else if (i == 4) + { + DataRate = StringValue ("HtMcs4"); + datarate = 39; + } + else if (i == 5) + { + DataRate = StringValue ("HtMcs5"); + datarate = 52; + } + else if (i == 6) + { + DataRate = StringValue ("HtMcs6"); + datarate = 58.5; + } + else if (i == 7) + { + DataRate = StringValue ("HtMcs7"); + datarate = 65; + } + else if (i == 8) + { + DataRate = StringValue ("HtMcs0"); + datarate = 7.2; + } + else if (i == 9) + { + DataRate = StringValue ("HtMcs1"); + datarate = 14.4; + } + else if (i == 10) + { + DataRate = StringValue ("HtMcs2"); + datarate = 21.7; + } + else if (i == 11) + { + DataRate = StringValue ("HtMcs3"); + datarate = 28.9; + } + else if (i == 12) + { + DataRate = StringValue ("HtMcs4"); + datarate = 43.3; + } + else if (i == 13) + { + DataRate = StringValue ("HtMcs5"); + datarate = 57.8; + } + else if (i == 14) + { + DataRate = StringValue ("HtMcs6"); + datarate = 65; + } + else if (i == 15) + { + DataRate = StringValue ("HtMcs7"); + datarate = 72.2; + } + else if (i == 16) + { + DataRate = StringValue ("HtMcs0"); + datarate = 13.5; + } + else if (i == 17) + { + DataRate = StringValue ("HtMcs1"); + datarate = 27; + } + else if (i == 18) + { + DataRate = StringValue ("HtMcs2"); + datarate = 40.5; + } + else if (i == 19) + { + DataRate = StringValue ("HtMcs3"); + datarate = 54; + } + else if (i == 20) + { + DataRate = StringValue ("HtMcs4"); + datarate = 81; + } + else if (i == 21) + { + DataRate = StringValue ("HtMcs5"); + datarate = 108; + } + else if (i == 22) + { + DataRate = StringValue ("HtMcs6"); + datarate = 121.5; + } + else if (i == 23) + { + DataRate = StringValue ("HtMcs7"); + datarate = 135; + } + else if (i == 24) + { + DataRate = StringValue ("HtMcs0"); + datarate = 15; + } + else if (i == 25) + { + DataRate = StringValue ("HtMcs1"); + datarate = 30; + } + else if (i == 26) + { + DataRate = StringValue ("HtMcs2"); + datarate = 45; + } + else if (i == 27) + { + DataRate = StringValue ("HtMcs3"); + datarate = 60; + } + else if (i == 28) + { + DataRate = StringValue ("HtMcs4"); + datarate = 90; + } + else if (i == 29) + { + DataRate = StringValue ("HtMcs5"); + datarate = 120; + } + else if (i == 30) + { + DataRate = StringValue ("HtMcs6"); + datarate = 135; + } + else if (i == 31) + { + DataRate = StringValue ("HtMcs7"); + datarate = 150; + } + else if (i == 32) + { + DataRate = StringValue ("HtMcs8"); + datarate = 13; + } + else if (i == 33) + { + DataRate = StringValue ("HtMcs9"); + datarate = 26; + } + else if (i == 34) + { + DataRate = StringValue ("HtMcs10"); + datarate = 39; + } + else if (i == 35) + { + DataRate = StringValue ("HtMcs11"); + datarate = 52; + } + else if (i == 36) + { + DataRate = StringValue ("HtMcs12"); + datarate = 78; + } + else if (i == 37) + { + DataRate = StringValue ("HtMcs13"); + datarate = 104; + } + else if (i == 38) + { + DataRate = StringValue ("HtMcs14"); + datarate = 117; + } + else if (i == 39) + { + DataRate = StringValue ("HtMcs15"); + datarate = 130; + } + else if (i == 40) + { + DataRate = StringValue ("HtMcs8"); + datarate = 14.4; + } + else if (i == 41) + { + DataRate = StringValue ("HtMcs9"); + datarate = 28.9; + } + else if (i == 42) + { + DataRate = StringValue ("HtMcs10"); + datarate = 43.3; + } + else if (i == 43) + { + DataRate = StringValue ("HtMcs11"); + datarate = 57.8; + } + else if (i == 44) + { + DataRate = StringValue ("HtMcs12"); + datarate = 86.7; + } + else if (i == 45) + { + DataRate = StringValue ("HtMcs13"); + datarate = 115.6; + } + else if (i == 46) + { + DataRate = StringValue ("HtMcs14"); + datarate = 130.3; + } + else if (i == 47) + { + DataRate = StringValue ("HtMcs15"); + datarate = 144.4; + } + else if (i == 48) + { + DataRate = StringValue ("HtMcs8"); + datarate = 27; + } + else if (i == 49) + { + DataRate = StringValue ("HtMcs9"); + datarate = 54; + } + else if (i == 50) + { + DataRate = StringValue ("HtMcs10"); + datarate = 81; + } + else if (i == 51) + { + DataRate = StringValue ("HtMcs11"); + datarate = 108; + } + else if (i == 52) + { + DataRate = StringValue ("HtMcs12"); + datarate = 162; + } + else if (i == 53) + { + DataRate = StringValue ("HtMcs13"); + datarate = 216; + } + else if (i == 54) + { + DataRate = StringValue ("HtMcs14"); + datarate = 243; + } + else if (i == 55) + { + DataRate = StringValue ("HtMcs15"); + datarate = 270; + } + else if (i == 56) + { + DataRate = StringValue ("HtMcs8"); + datarate = 30; + } + else if (i == 57) + { + DataRate = StringValue ("HtMcs9"); + datarate = 60; + } + else if (i == 58) + { + DataRate = StringValue ("HtMcs10"); + datarate = 90; + } + else if (i == 59) + { + DataRate = StringValue ("HtMcs11"); + datarate = 120; + } + else if (i == 60) + { + DataRate = StringValue ("HtMcs12"); + datarate = 180; + } + else if (i == 61) + { + DataRate = StringValue ("HtMcs13"); + datarate = 240; + } + else if (i == 62) + { + DataRate = StringValue ("HtMcs14"); + datarate = 270; + } + else if (i == 63) + { + DataRate = StringValue ("HtMcs15"); + datarate = 300; + } + else + { + NS_FATAL_ERROR ("Illegal index i " << i); + } + + wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager","DataMode", DataRate, + "ControlMode", DataRate); + + NetDeviceContainer staDevice; + NetDeviceContainer apDevice; + + if (wifiType == "ns3::YansWifiPhy") + { + mac.SetType ("ns3::StaWifiMac", + "Ssid", SsidValue (ssid), + "ActiveProbing", BooleanValue (false)); + staDevice = wifi.Install (phy, mac, wifiStaNode); + mac.SetType ("ns3::ApWifiMac", + "Ssid", SsidValue (ssid)); + apDevice = wifi.Install (phy, mac, wifiApNode); + + } + else if (wifiType == "ns3::SpectrumWifiPhy") + { + mac.SetType ("ns3::StaWifiMac", + "Ssid", SsidValue (ssid), + "ActiveProbing", BooleanValue (false)); + staDevice = wifi.Install (spectrumPhy, mac, wifiStaNode); + mac.SetType ("ns3::ApWifiMac", + "Ssid", SsidValue (ssid)); + apDevice = wifi.Install (spectrumPhy, mac, wifiApNode); + } + + // Channel width must be set *after* installation because the attribute + // is overwritten by the ConfigureStandard method () + Config::Set ("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Phy/ChannelWidth", UintegerValue (channelWidth)); + + // mobility. + MobilityHelper mobility; + Ptr positionAlloc = CreateObject (); + + positionAlloc->Add (Vector (0.0, 0.0, 0.0)); + positionAlloc->Add (Vector (distance, 0.0, 0.0)); + mobility.SetPositionAllocator (positionAlloc); + + mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel"); + + mobility.Install (wifiApNode); + mobility.Install (wifiStaNode); + + /* Internet stack*/ + InternetStackHelper stack; + stack.Install (wifiApNode); + stack.Install (wifiStaNode); + + Ipv4AddressHelper address; + + address.SetBase ("192.168.1.0", "255.255.255.0"); + Ipv4InterfaceContainer staNodeInterface; + Ipv4InterfaceContainer apNodeInterface; + + staNodeInterface = address.Assign (staDevice); + apNodeInterface = address.Assign (apDevice); + + /* Setting applications */ + ApplicationContainer serverApp, sinkApp; + //UDP flow + UdpServerHelper myServer (9); + serverApp = myServer.Install (wifiStaNode.Get (0)); + serverApp.Start (Seconds (0.0)); + serverApp.Stop (Seconds (simulationTime + 1)); + + UdpClientHelper myClient (staNodeInterface.GetAddress (0), 9); + myClient.SetAttribute ("MaxPackets", UintegerValue (4294967295u)); + myClient.SetAttribute ("Interval", TimeValue (Time ("0.00002"))); //packets/s + myClient.SetAttribute ("PacketSize", UintegerValue (payloadSize)); + + ApplicationContainer clientApp = myClient.Install (wifiApNode.Get (0)); + clientApp.Start (Seconds (1.0)); + clientApp.Stop (Seconds (simulationTime + 1)); + + if (enablePcap) + { + std::stringstream ss; + ss << "wifi-spectrum-saturation-example-" << i; + phy.EnablePcap (ss.str (), apDevice); + } + + Simulator::Stop (Seconds (simulationTime + 1)); + Simulator::Run (); + Simulator::Destroy (); + + double throughput; + uint32_t totalPacketsThrough; + totalPacketsThrough = DynamicCast (serverApp.Get (0))->GetReceived (); + throughput = totalPacketsThrough * payloadSize * 8 / (simulationTime * 1000000.0); //Mbit/s + std::cout << std::setw (5) << i << + std::setw (6) << (i % 8) + 8 * (i / 32) << + std::setw (8) << channelWidth << + std::setw (10) << datarate << + std::setw (12) << throughput << + std::setw (8) << totalPacketsThrough << + std::endl; + } + return 0; +} diff --git a/examples/wireless/wscript b/examples/wireless/wscript index 9d093e808e2..8459450db0f 100644 --- a/examples/wireless/wscript +++ b/examples/wireless/wscript @@ -91,3 +91,11 @@ def build(bld): obj = bld.create_ns3_program('80211e-txop', ['internet', 'mobility', 'wifi', 'applications']) obj.source = '80211e-txop.cc' + obj = bld.create_ns3_program('wifi-spectrum-per-example', ['internet', 'mobility', 'wifi', 'applications', 'spectrum']) + obj.source = 'wifi-spectrum-per-example.cc' + + obj = bld.create_ns3_program('wifi-spectrum-per-interference', ['internet', 'mobility', 'wifi', 'applications', 'spectrum']) + obj.source = 'wifi-spectrum-per-interference.cc' + + obj = bld.create_ns3_program('wifi-spectrum-saturation-example', ['internet', 'mobility', 'wifi', 'applications', 'spectrum']) + obj.source = 'wifi-spectrum-saturation-example.cc' diff --git a/src/spectrum/model/wifi-spectrum-value-helper.cc b/src/spectrum/model/wifi-spectrum-value-helper.cc index 3a9f0fb434d..54f8d39d4cb 100644 --- a/src/spectrum/model/wifi-spectrum-value-helper.cc +++ b/src/spectrum/model/wifi-spectrum-value-helper.cc @@ -1,6 +1,7 @@ /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ /* * Copyright (c) 2009 CTTC + * Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari * * 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 @@ -16,14 +17,350 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Author: Nicola Baldo + * Giuseppe Piro */ - +#include +#include #include "wifi-spectrum-value-helper.h" +#include "ns3/log.h" +#include "ns3/fatal-error.h" +#include "ns3/assert.h" namespace ns3 { -/// The Wi-Fi spectrum model +NS_LOG_COMPONENT_DEFINE ("WifiSpectrumValueHelper"); + +struct WifiSpectrumModelId +{ + WifiSpectrumModelId (uint32_t f, uint32_t w); + uint32_t m_centerFrequency; + uint32_t m_channelWidth; +}; + +WifiSpectrumModelId::WifiSpectrumModelId (uint32_t f, uint32_t w) + : m_centerFrequency (f), + m_channelWidth (w) +{ + NS_LOG_FUNCTION (this << f << w); +} + +bool +operator < (const WifiSpectrumModelId& a, const WifiSpectrumModelId& b) +{ + return ( (a.m_centerFrequency < b.m_centerFrequency) || ( (a.m_centerFrequency == b.m_centerFrequency) && (a.m_channelWidth < b.m_channelWidth))); +} + +static std::map > g_wifiSpectrumModelMap; + +Ptr +WifiSpectrumValueHelper::GetSpectrumModel (uint32_t centerFrequency, uint32_t channelWidth) +{ + NS_LOG_FUNCTION (centerFrequency << channelWidth); + Ptr ret; + WifiSpectrumModelId key (centerFrequency, channelWidth); + std::map >::iterator it = g_wifiSpectrumModelMap.find (key); + if (it != g_wifiSpectrumModelMap.end ()) + { + ret = it->second; + } + else + { + Bands bands; + double centerFrequencyHz = centerFrequency * 1e6; + // Overall bandwidth will be channelWidth plus 10 MHz guards on each side + double bandwidth = (channelWidth + 20) * 1e6; + // Use OFDM subcarrier width of 312.5 KHz as band granularity + double bandBandwidth = 312500; + // For OFDM, the center subcarrier is null (at center frequency) + uint32_t numBands = static_cast (bandwidth / bandBandwidth + 0.5); + NS_ASSERT (numBands > 0); + if (numBands % 2 == 0) + { + // round up to the nearest odd number of subbands so that bands + // are symmetric around center frequency + NS_LOG_DEBUG ("Total bandwidth evenly divided by 312.5 KHz"); + numBands += 1; + } + NS_ASSERT_MSG (numBands % 2 == 1, "Number of bands should be odd"); + // lay down numBands/2 bands symmetrically around center frequency + // and place an additional band at center frequency + double startingFrequencyHz = centerFrequencyHz - (numBands/2 * bandBandwidth) - bandBandwidth/2; + for (size_t i = 0; i < numBands; i++) + { + BandInfo info; + double f = startingFrequencyHz + (i * bandBandwidth); + info.fl = f; + f += bandBandwidth/2; + info.fc = f; + f += bandBandwidth/2; + info.fh = f; + NS_LOG_DEBUG ("creating band " << i << " (" << info.fl << ":" << info.fc << ":" << info.fh << ")"); + bands.push_back (info); + } + ret = Create (bands); + g_wifiSpectrumModelMap.insert (std::pair > (key, ret)); + } + NS_LOG_LOGIC ("returning SpectrumModel::GetUid () == " << ret->GetUid ()); + return ret; +} + +Ptr +WifiSpectrumValueHelper::CreateHtOfdmTxPowerSpectralDensity (uint32_t centerFrequency, uint32_t channelWidth, double txPowerW) +{ + NS_LOG_FUNCTION (centerFrequency << channelWidth << txPowerW); + Ptr c = Create (GetSpectrumModel (centerFrequency, channelWidth)); + Values::iterator vit = c->ValuesBegin (); + Bands::const_iterator bit = c->ConstBandsBegin (); + double txPowerPerBand; + switch (channelWidth) + { + case 20: + // 56 subcarriers (52 data + 4 pilot) + NS_ASSERT_MSG (c->GetSpectrumModel ()->GetNumBands () == 129, "Unexpected number of bands"); + // skip 32 subbands, then place power in 28 of the next 32 subbands, then + // skip the center subband, then place power in 28 of the next 32 + // subbands, then skip the final 32 subbands. + txPowerPerBand = txPowerW / 56; + for (size_t i = 0; i < c->GetSpectrumModel ()->GetNumBands (); i++, vit++, bit++) + { + if ((i >=36 && i <=63) || (i >=65 && i <=92)) + { + *vit = txPowerPerBand / (bit->fh - bit->fl); + } + } + NS_LOG_DEBUG ("Added signal power to subbands 36-63 and 65-92"); + NS_LOG_DEBUG ("Integrated power " << Integral (*(GetPointer (c)))); + NS_ASSERT_MSG (std::abs (txPowerW - Integral (*(GetPointer (c)))) < 1e-6, "Power allocation failed"); + break; + case 40: + // 112 subcarriers (104 data + 8 pilot) + // possible alternative: 114 subcarriers (108 data + 6 pilot) + NS_ASSERT_MSG (c->GetSpectrumModel ()->GetNumBands () == 193, "Unexpected number of bands"); + txPowerPerBand = txPowerW / 112; + for (size_t i = 0; i < c->GetSpectrumModel ()->GetNumBands (); i++, vit++, bit++) + { + if ((i >=36 && i <=63) || (i >=65 && i <=92) || (i >=100 && i<=127) || (i >=129 && i<= 156)) + { + *vit = txPowerPerBand / (bit->fh - bit->fl); + } + } + NS_LOG_DEBUG ("Added signal power to subbands 36-63, 65-92, 100-127, and 129-156"); + NS_LOG_DEBUG ("Integrated power " << Integral (*(GetPointer (c)))); + NS_ASSERT_MSG (std::abs (txPowerW - Integral (*(GetPointer (c)))) < 1e-6, "Power allocation failed"); + break; + case 80: + // 224 subcarriers (208 data + 16 pilot) + // possible alternative: 242 subcarriers (234 data + 8 pilot) + NS_ASSERT_MSG (c->GetSpectrumModel ()->GetNumBands () == 321, "Unexpected number of bands"); + txPowerPerBand = txPowerW / 224; + for (size_t i = 0; i < c->GetSpectrumModel ()->GetNumBands (); i++, vit++, bit++) + { + if ((i >= 36 && i <= 63) || (i >= 65 && i <= 92) || + (i >= 100 && i <= 127) || (i >= 129 && i <= 156) || + (i >= 164 && i <= 191) || (i >= 193 && i <= 220) || + (i >= 228 && i <= 255) || (i >= 257 && i <= 284)) + { + *vit = txPowerPerBand / (bit->fh - bit->fl); + } + } + NS_LOG_DEBUG ("Added signal power to subbands 36-63, 65-92, 100-127, 129-156, 164-191, 193-220, 228-255, 257-284"); + NS_LOG_DEBUG ("Integrated power " << Integral (*(GetPointer (c)))); + NS_ASSERT_MSG (std::abs (txPowerW - Integral (*(GetPointer (c)))) < 1e-6, "Power allocation failed"); + break; + case 160: + // 448 subcarriers (416 data + 32 pilot) VHT + // possible alternative: 484 subcarriers (468 data + 16 pilot) + NS_ASSERT_MSG (c->GetSpectrumModel ()->GetNumBands () == 577, "Unexpected number of bands"); + txPowerPerBand = txPowerW / 448; + for (size_t i = 0; i < c->GetSpectrumModel ()->GetNumBands (); i++, vit++, bit++) + { + if ((i >= 36 && i <= 63) || (i >= 65 && i <= 92) || + (i >= 100 && i <= 127) || (i >= 129 && i <= 156) || + (i >= 164 && i <= 191) || (i >= 193 && i <= 220) || + (i >= 228 && i <= 255) || (i >= 257 && i <= 284) || + (i >= 292 && i <= 319) || (i >= 321 && i <= 348) || + (i >= 356 && i <= 383) || (i >= 385 && i <= 412) || + (i >= 420 && i <= 447) || (i >= 449 && i <= 476) || + (i >= 484 && i <= 511) || (i >= 513 && i <= 540)) + { + *vit = txPowerPerBand / (bit->fh - bit->fl); + } + } + NS_LOG_DEBUG ("Added signal power to subbands 36-63, 65-92, 100-127, 129-156, 164-191, 193-220, 228-255, 257-284, 292-319, 321-348, 356-383, 385-412, 420-447, 449-476, 484-511, and 513-540"); + NS_LOG_DEBUG ("Integrated power " << Integral (*(GetPointer (c)))); + NS_ASSERT_MSG (std::abs (txPowerW - Integral (*(GetPointer (c)))) < 1e-6, "Power allocation failed"); + break; + default: + NS_FATAL_ERROR ("ChannelWidth " << channelWidth << " unsupported"); + break; + } + return c; +} + +Ptr +WifiSpectrumValueHelper::CreateOfdmTxPowerSpectralDensity (uint32_t centerFrequency, uint32_t channelWidth, double txPowerW) +{ + NS_LOG_FUNCTION (centerFrequency << channelWidth << txPowerW); + Ptr c = Create (GetSpectrumModel (centerFrequency, channelWidth)); + Values::iterator vit = c->ValuesBegin (); + Bands::const_iterator bit = c->ConstBandsBegin (); + double txPowerPerBand; + switch (channelWidth) + { + case 20: + // 52 subcarriers (48 data + 4 pilot) + // skip 38 subbands, then place power in 26 subbands, then + // skip the center subband, then place power in 26 subbands, then skip + // the final 38 subbands. + std::cout << c->GetSpectrumModel ()->GetNumBands () << std::endl; + NS_ASSERT_MSG (c->GetSpectrumModel ()->GetNumBands () == 129, "Unexpected number of bands"); + txPowerPerBand = txPowerW / 52; + for (size_t i = 0; i < c->GetSpectrumModel ()->GetNumBands (); i++, vit++, bit++) + { + if ((i >=38 && i <=63) || (i >=65 && i <=90)) + { + *vit = txPowerPerBand / (bit->fh - bit->fl); + } + else + { + *vit = 0; + } + } + NS_LOG_DEBUG ("Added signal power to subbands 38-63 and 65-90"); + NS_LOG_DEBUG ("Integrated power " << Integral (*(GetPointer (c)))); + NS_ASSERT_MSG (std::abs (txPowerW - Integral (*(GetPointer (c)))) < 1e-6, "Power allocation failed"); + break; + case 10: + // 28 subcarriers (24 data + 4 pilot) + // skip 34 subbands, then place power in 14 subbands, then + // skip the center subband, then place power in 14 subbands, then skip + // the final 34 subbands. + std::cout << c->GetSpectrumModel ()->GetNumBands () << std::endl; + NS_ASSERT_MSG (c->GetSpectrumModel ()->GetNumBands () == 97, "Unexpected number of bands"); + txPowerPerBand = txPowerW / 28; + for (size_t i = 0; i < c->GetSpectrumModel ()->GetNumBands (); i++, vit++, bit++) + { + if ((i >=34 && i <=47) || (i >=49 && i <=62)) + { + *vit = txPowerPerBand / (bit->fh - bit->fl); + } + else + { + *vit = 0; + } + } + NS_LOG_DEBUG ("Added signal power to subbands 34-47 and 49-62"); + NS_LOG_DEBUG ("Integrated power " << Integral (*(GetPointer (c)))); + NS_ASSERT_MSG (std::abs (txPowerW - Integral (*(GetPointer (c)))) < 1e-6, "Power allocation failed"); + break; + case 5: + // 16 subcarriers (12 data + 4 pilot) + // skip 34 subbands, then place power in 14 subbands, then + // skip the center subband, then place power in 14 subbands, then skip + // the final 34 subbands. + std::cout << c->GetSpectrumModel ()->GetNumBands () << std::endl; + NS_ASSERT_MSG (c->GetSpectrumModel ()->GetNumBands () == 81, "Unexpected number of bands"); + txPowerPerBand = txPowerW / 16; + for (size_t i = 0; i < c->GetSpectrumModel ()->GetNumBands (); i++, vit++, bit++) + { + if ((i >=32 && i <=39) || (i >=41 && i <=48)) + { + *vit = txPowerPerBand / (bit->fh - bit->fl); + } + else + { + *vit = 0; + } + } + NS_LOG_DEBUG ("Added signal power to subbands 32-39 and 41-48"); + NS_LOG_DEBUG ("Integrated power " << Integral (*(GetPointer (c)))); + NS_ASSERT_MSG (std::abs (txPowerW - Integral (*(GetPointer (c)))) < 1e-6, "Power allocation failed"); + break; + default: + NS_FATAL_ERROR ("ChannelWidth " << channelWidth << " unsupported"); + break; + } + return c; +} + +// Power allocated to 71 center subbands out of 135 total subbands in the band +Ptr +WifiSpectrumValueHelper::CreateDsssTxPowerSpectralDensity (uint32_t centerFrequency, double txPowerW) +{ + NS_LOG_FUNCTION (centerFrequency << txPowerW); + uint32_t channelWidth = 22; // DSSS channels are 22 MHz wide + Ptr c = Create (GetSpectrumModel (centerFrequency, channelWidth)); + Values::iterator vit = c->ValuesBegin (); + Bands::const_iterator bit = c->ConstBandsBegin (); + double txPowerPerBand; + // Evenly spread power across 22 MHz (71 bands) + NS_ASSERT (c->GetSpectrumModel ()->GetNumBands () == 135); + txPowerPerBand = txPowerW / 71; + for (size_t i = 0; i < c->GetSpectrumModel ()->GetNumBands (); i++, vit++, bit++) + { + if (i >=32 && i <=102) + { + *vit = txPowerPerBand / (bit->fh - bit->fl); + } + } + return c; +} + +Ptr +WifiSpectrumValueHelper::CreateNoisePowerSpectralDensity (uint32_t centerFrequency, uint32_t channelWidth, double noiseFigure) +{ + Ptr model = GetSpectrumModel (centerFrequency, channelWidth); + return CreateNoisePowerSpectralDensity (noiseFigure, model); +} + +Ptr +WifiSpectrumValueHelper::CreateNoisePowerSpectralDensity (double noiseFigureDb, Ptr spectrumModel) +{ + NS_LOG_FUNCTION (noiseFigureDb << spectrumModel); + + // see "LTE - From theory to practice" + // Section 22.4.4.2 Thermal Noise and Receiver Noise Figure + const double kT_dBm_Hz = -174.0; // dBm/Hz + double kT_W_Hz = std::pow (10.0, (kT_dBm_Hz - 30) / 10.0); + double noiseFigureLinear = std::pow (10.0, noiseFigureDb / 10.0); + double noisePowerSpectralDensity = kT_W_Hz * noiseFigureLinear; + + Ptr noisePsd = Create (spectrumModel); + (*noisePsd) = noisePowerSpectralDensity; + NS_LOG_DEBUG ("NoisePowerSpectralDensity has integrated power of " << Integral (*(GetPointer (noisePsd)))); + return noisePsd; +} + +Ptr +WifiSpectrumValueHelper::CreateRfFilter (uint32_t centerFrequency, uint32_t channelWidth) +{ + NS_LOG_FUNCTION (centerFrequency << channelWidth); + Ptr c = Create (GetSpectrumModel (centerFrequency, channelWidth)); + size_t numBands = c->GetSpectrumModel ()->GetNumBands (); + Bands::const_iterator bit = c->ConstBandsBegin (); + Values::iterator vit = c->ValuesBegin (); + uint32_t bandBandwidth = static_cast (((bit->fh - bit->fl) + 0.5)); + NS_LOG_DEBUG ("Band bandwidth: " << bandBandwidth); + size_t numBandsInFilter = static_cast (channelWidth * 1e6 / bandBandwidth); + if (channelWidth % bandBandwidth != 0) + { + numBandsInFilter += 1; + } + NS_LOG_DEBUG ("Num bands in filter: " << numBandsInFilter); + // Set the value of the filter to 1 for the center-most numBandsInFilter + NS_ASSERT_MSG ((numBandsInFilter % 2 == 1) && (numBands % 2 == 1), "Should have odd number of bands"); + size_t startIndex = (numBands - numBandsInFilter) / 2; + vit += startIndex; + bit += startIndex; + for (size_t i = startIndex; i < startIndex + numBandsInFilter; i++, vit++, bit++) + { + *vit = 1; + } + NS_LOG_DEBUG ("Added subbands " << startIndex << " to " << startIndex + numBandsInFilter << " to filter"); + return c; +} + static Ptr g_WifiSpectrumModel5Mhz; WifiSpectrumValueHelper::~WifiSpectrumValueHelper () @@ -35,7 +372,7 @@ WifiSpectrumValue5MhzFactory::~WifiSpectrumValue5MhzFactory () } /** - * Static class to initialize the values for the Wi-Fi spectrum model + * Static class to initialize the values for the 2.4 GHz Wi-Fi spectrum model */ static class WifiSpectrumModel5MhzInitializer { diff --git a/src/spectrum/model/wifi-spectrum-value-helper.h b/src/spectrum/model/wifi-spectrum-value-helper.h index ba4b66e3d73..7c9dd241ddb 100644 --- a/src/spectrum/model/wifi-spectrum-value-helper.h +++ b/src/spectrum/model/wifi-spectrum-value-helper.h @@ -26,77 +26,144 @@ namespace ns3 { - - /** * \ingroup spectrum * - * This abstract class defines the interface for interacting with all WifiSpectrumValue implementations. - * + * This class defines all functions to create a spectrum model for + * Wi-Fi based on a a spectral model aligned with an OFDM subcarrier + * spacing of 312.5 KHz (model also reused for DSSS modulations) */ class WifiSpectrumValueHelper { public: + /** + * Destructor + */ virtual ~WifiSpectrumValueHelper (); + /** - * Creates a SpectrumValue instance which - * has a constant value for all frequencies - * - * @param psd the constant value + * Return a SpectrumModel instance corresponding to the center frequency + * and channel width. The model includes +/- 10 MHz of guard bands + * (i.e. the model will span (channelWidth + 20) MHz of bandwidth). * - * @return a Ptr to a newly created SpectrumValue + * \param centerFrequency center frequency (MHz) + * \param channelWidth channel width (MHz) + * \return the static SpectrumModel instance corresponding to the + * given carrier frequency and channel width configuration. */ - virtual Ptr CreateConstant (double psd) = 0; + static Ptr GetSpectrumModel (uint32_t centerFrequency, uint32_t channelWidth); /** - * Creates a SpectrumValue instance which - * represents the TX Power Spectral Density of a wifi device - * corresponding to the provided parameters + * Create a transmit power spectral density corresponding to OFDM + * High Throughput (HT) (802.11n/ac). Channel width may vary between + * 20, 40, 80, and 160 MHz. * - * @param txPower the total TX power in W - * @param channel the number of the channel + * \param centerFrequency center frequency (MHz) + * \param channelWidth channel width (MHz) + * \param txPowerW transmit power (W) to allocate + */ + static Ptr CreateHtOfdmTxPowerSpectralDensity (uint32_t centerFrequency, uint32_t channelWidth, double txPowerW); + + /** + * Create a transmit power spectral density corresponding to OFDM + * (802.11a/g). Channel width may vary between 20, 10, and 5 MHz. * - * @return a Ptr to a newly created SpectrumValue + * \param centerFrequency center frequency (MHz) + * \param channelWidth channel width (MHz) + * \param txPowerW transmit power (W) to allocate */ - virtual Ptr CreateTxPowerSpectralDensity (double txPower, uint32_t channel) = 0; + static Ptr CreateOfdmTxPowerSpectralDensity (uint32_t centerFrequency, uint32_t channelWidth, double txPowerW); /** - * Creates a pectrumValue instance which - * represents the frequency response of the RF filter which is used - * by a wifi device to receive signals when tuned to a particular channel + * Create a transmit power spectral density corresponding to DSSS * - * @param channel the number of the channel + * The center frequency typically corresponds to 802.11b channel + * center frequencies but is not restricted to those frequencies. * - * @return a Ptr to a newly created SpectrumValue + * \param centerFrequency center frequency (MHz) + * \param txPowerW transmit power (W) to allocate */ - virtual Ptr CreateRfFilter (uint32_t channel) = 0; + static Ptr CreateDsssTxPowerSpectralDensity (uint32_t centerFrequency, double txPowerW); -}; + /** + * + * \param centerFrequency center frequency (MHz) + * \param channelWidth channel width (MHz) + * \param noiseFigure the noise figure in dB w.r.t. a reference temperature of 290K + * \return a pointer to a newly allocated SpectrumValue representing the noise Power Spectral Density in W/Hz for each Band + */ + static Ptr CreateNoisePowerSpectralDensity (uint32_t centerFrequency, uint32_t channelWidth, double noiseFigure); + /** + * \param centerFrequency center frequency (MHz) + * \param channelWidth channel width (MHz) + * \return a pointer to a newly allocated SpectrumValue representing the noise Power Spectral Density in W/Hz corresponding to thermal noise, for each Band + */ + static Ptr CreateNoisePowerSpectralDensity (double noiseFigure, Ptr spectrumModel); + /** + * \param centerFrequency center frequency (MHz) + * \param channelWidth channel width (MHz) + * \return a pointer to a SpectrumValue representing the RF filter applied + * to an received power spectral density + */ + static Ptr CreateRfFilter (uint32_t centerFrequency, uint32_t channelWidth); +}; /** * \ingroup spectrum * - * Implements WifiSpectrumValue for the 2.4 GHz ISM band only, with a + * Implements Wifi SpectrumValue for the 2.4 GHz ISM band only, with a * 5 MHz spectrum resolution. * */ -class WifiSpectrumValue5MhzFactory : public WifiSpectrumValueHelper +class WifiSpectrumValue5MhzFactory { public: + /** + * Destructor + */ virtual ~WifiSpectrumValue5MhzFactory (); - // inherited from WifiSpectrumValueHelper + /** + * Creates a SpectrumValue instance with a constant value for all frequencies + * + * @param psd the constant value + * + * @return a Ptr to a newly created SpectrumValue + */ virtual Ptr CreateConstant (double psd); + /** + * Creates a SpectrumValue instance that represents the TX Power Spectral + * Density of a wifi device corresponding to the provided parameters + * + * Since the spectrum model has a resolution of 5 MHz, we model + * the transmitted signal with a constant density over a 20MHz + * bandwidth centered on the center frequency of the channel. The + * transmission power outside the transmission power density is + * calculated considering the transmit spectrum mask, see IEEE + * Std. 802.11-2007, Annex I. The two bands just outside of the main + * 20 MHz are allocated power at -28 dB down from the center 20 MHz, + * and the two bands outside of this are allocated power at -40 dB down + * (with a total bandwidth of 60 MHz containing non-zero power allocation). + * + * @param txPower the total TX power in W + * @param channel the number of the channel (1 <= channel <= 13) + * + * @return a Ptr to a newly created SpectrumValue + */ virtual Ptr CreateTxPowerSpectralDensity (double txPower, uint32_t channel); + /** + * Creates a SpectrumValue instance which + * represents the frequency response of the RF filter which is used + * by a wifi device to receive signals when tuned to a particular channel + * + * @param channel the number of the channel (1 <= channel <= 13) + * + * @return a Ptr to a newly created SpectrumValue + */ virtual Ptr CreateRfFilter (uint32_t channel); - }; - - } // namespace ns3 - - #endif /* WIFI_SPECTRUM_VALUE_HELPER_H */ diff --git a/src/wifi/doc/source/wifi-design.rst b/src/wifi/doc/source/wifi-design.rst index 0b97c6f8a7b..a46dfe66609 100644 --- a/src/wifi/doc/source/wifi-design.rst +++ b/src/wifi/doc/source/wifi-design.rst @@ -36,9 +36,10 @@ packet-level abstraction of the PHY-level for different PHYs, corresponding to 802.11a/b/e/g/n/ac specifications. In |ns3|, nodes can have multiple WifiNetDevices on separate channels, and the -WifiNetDevice can coexist with other device types; this removes an architectural -limitation found in |ns2|. Presently, however, there is no model for -cross-channel interference or coupling between channels. +WifiNetDevice can coexist with other device types. +With the use of the **SpectrumWifiPhy** framework, one can also build scenarios +involving cross-channel interference or multiple wireless technologies on +a single channel. The source code for the WifiNetDevice and its models lives in the directory ``src/wifi``. @@ -115,14 +116,9 @@ The **MAC low layer** is split into three main components: PHY layer models ================ -The PHY layer implements a single model in the ``ns3::WifiPhy`` class: the -physical layer model implemented there is described in a paper entitled -`Yet Another Network Simulator `_ -The acronym *Yans* derives from this paper title. - In short, the physical layer models are mainly responsible for modeling the reception of packets and for tracking energy consumption. There -are typically three main components to this: +are typically three main components to packet reception: * each packet received is probabilistically evaluated for successful or failed reception. The probability depends on the modulation, on @@ -135,6 +131,17 @@ are typically three main components to this: * one or more error models corresponding to the modulation and standard are used to look up probability of successful reception. +|ns3| offers users a choice between two physical layer models, with a +base interface defined in the ``ns3::WifiPhy`` class. The YansWifiPhy +class has been the only physical layer model until recently; the model +implemented there is described in a paper entitled +`Yet Another Network Simulator `_ +The acronym *Yans* derives from this paper title. The SpectrumWifiPhy +class is an alternative implementation based on the Spectrum framework +used for other |ns3| wireless models. Spectrum allows a fine-grained +frequency decomposition of the signal, and permits scenarios to +include multiple technologies coexisting on the same channel. + Scope and Limitations ********************* @@ -145,9 +152,8 @@ attempts to summarize compliance with the standard and with behavior found in practice. The physical layer and channel models operate on a per-packet basis, with -no frequency-selective propagation or interference effects. Detailed -link simulations are not performed, nor are frequency-selective fading -or interference models available. Directional antennas are also not +no frequency-selective propagation or interference effects when using +the default YansWifiPhy model. Directional antennas are also not supported at this time. For additive white gaussian noise (AWGN) scenarios, or wideband interference scenarios, performance is governed by the application of analytical models (based on modulation and factors @@ -186,14 +192,29 @@ We organize these more detailed sections from the bottom-up, in terms of layering, by describing the channel and PHY models first, followed by the MAC models. +We focus first on the choice between physical layer frameworks. |ns3| +contains support for a Wi-Fi-only physical layer model called YansWifiPhy +that offers no frequency-level decomposition of the signal. For simulations +that involve only Wi-Fi signals on the Wi-Fi channel, and that do not +involve frequency-dependent propagation loss or fading models, the default +YansWifiPhy framework is a suitable choice. For simulations involving +mixed technologies on the same channel, or frequency dependent effects, +the SpectrumWifiPhy is more appropriate. The two frameworks are very +similarly configured. + +The YansWifiPhy framework uses the ``WifiChannel`` and ``YansWifiChannel`` +frameworks. The SpectrumWifiPhy framework uses the ``Spectrum`` channel +framework, which is not documented herein but in the Spectrum module +documentation. + WifiChannel =========== ``ns3::WifiChannel`` is an abstract base class that allows different channel implementations to be connected. At present, there is only one such channel -(the ``ns3::YansWifiChannel``). The class works in tandem with the -``ns3::WifiPhy`` class; if you want to provide a new physical layer model, -you must subclass both ``ns3::WifiChannel`` and ``ns3::WifiPhy``. +(the ``ns3::YansWifiChannel``) since the SpectrumWifiPhy uses the +base class ``ns3::SpectrumChannel``. The class works in tandem with the +``ns3::WifiPhy`` class. The WifiChannel model exists to interconnect WifiPhy objects so that packets sent by one Phy are received by some or all other Phys on the channel. @@ -226,7 +247,7 @@ WifiPhy and related models The ``ns3::WifiPhy`` is an abstract base class representing the 802.11 physical layer functions. Packets passed to this object (via a -``SendPacket()`` method are sent over the ``WifiChannel`` object, and +``SendPacket()`` method are sent over a channel object, and upon reception, the receiving PHY object decides (based on signal power and interference) whether the packet was successful or not. This class also provides a number of callbacks for notifications of physical layer @@ -235,8 +256,9 @@ MAC-level processes such as carrier sense, and handles sleep/wake models and energy consumption. The ``ns3::WifiPhy`` hooks to the ``ns3::MacLow`` object in the WifiNetDevice. -There is currently one implementation of the ``WifiPhy``, which is the -``ns3::YansWifiPhy``. It works in conjunction with three other objects: +There are currently two implementations of the ``WifiPhy``: the +``ns3::YansWifiPhy`` and the ``ns3::SpectrumWifiPhy``. They each work in +conjunction with three other objects: * **WifiPhyStateHelper**: Maintains the PHY state machine * **InterferenceHelper**: Tracks all packets observed on the channel @@ -396,6 +418,70 @@ As a result, there are three error models: Users should select either Nist or Yans models for OFDM (Nist is default), and Dsss will be used in either case for 802.11b. +SpectrumWifiPhy +############### + +This section describes the implementation of the ``SpectrumWifiPhy`` +class that can be found in ``src/wifi/model/spectrum-wifi-phy.{cc,h}``. + +The implementation also makes use of additional classes found in the +same directory: + +* ``wifi-spectrum-phy-interface.{cc,h}`` +* ``wifi-spectrum-signal-parameters.{cc,h}`` + +and classes found in the spectrum module: + +* ``wifi-spectrum-value-helper.{cc,h}`` + +The current ``SpectrumWifiPhy`` class +reuses the existing interference manager and error rate models originally +built for YansWifiPhy, but allows, as a first step, foreign (non Wi-Fi) +signals to be treated as additive noise. + +Two main changes were needed to adapt the Spectrum framework to Wi-Fi. +First, the physical layer must send signals compatible with the +Spectrum channel framework, and in particular, the +``MultiModelSpectrumChannel`` that allows signals from different +technologies to coexist. Second, the InterferenceHelper must be +extended to support the insertion of non-Wi-Fi signals and to +add their received power to the noise, in the same way that +unintended Wi-Fi signals (perhaps from a different SSID or arriving +late from a hidden node) are added to the noise. + +Third, the default value for CcaMode1Threshold attribute is -62 dBm +rather than the value of -99 dBm used for YansWifiPhy. This is because, +unlike YansWifiPhy, where there are no foreign signals, CCA BUSY state +will be raised for foreign signals that are higher than this 'energy +detection' threshold (see section 16.4.8.5 in the 802.11-2012 standard +for definition of CCA Mode 1). + +To support the Spectrum channel, the ``YansWifiPhy`` transmit and receive methods +were adapted to use the Spectrum channel API. This required developing +a few ``SpectrumModel``-related classes. The class +``WifiSpectrumValueHelper`` is used to create Wi-Fi signals with the +spectrum framework and spread their energy across the bands. The +spectrum is sub-divided into 312.5 KHz sub-bands (the width of an OFDM +subcarrier). The power allocated to a particular channel +is spread across the sub-bands roughly according to how power would +be allocated to sub-carriers using an even distribution of power and +assuming perfect transmit filters. This could be extended in the +future to place power outside of the +channel according to the real spectral mask. This should be +done for future adjacent channel models but is not presently implemented. +Similarly, on the receive side, a receiver filter mask can be defined; +for this initial implementation, we implemented a perfect brick wall +filter that is centered on the channel center frequency. + +To support an easier user configuration experience, the existing +YansWifi helper classes (in ``src/wifi/helper``) were copied and +adapted to provide equivalent SpectrumWifi helper classes. + +Finally, for reasons related to avoiding C++ multiple inheritance +issues, a small forwarding class called ``WifiSpectrumPhyInterface`` +was inserted as a shim between the ``SpectrumWifiPhy`` and the +Spectrum channel. + The MAC model ============= diff --git a/src/wifi/doc/source/wifi-testing.rst b/src/wifi/doc/source/wifi-testing.rst index 366b311f417..ad22084b7aa 100644 --- a/src/wifi/doc/source/wifi-testing.rst +++ b/src/wifi/doc/source/wifi-testing.rst @@ -52,7 +52,166 @@ in Figure :ref:`fig-nist-frame-success-rate`. Frame error rate (NIST model) for OFDM Wi-Fi - MAC validation ************** Validation of the MAC layer has been performed in [baldo2010]_. + +SpectrumWiFiPhy +*************** + +The SpectrumWifiPhy implementation has been verified to produce equivalent +results to the legacy YansWifiPhy by using the saturation and packet +error rate programs (described below) and toggling the implementation +between the two physical layers. + +A basic unit test is provided using injection of hand-crafted packets to +a receiving Phy object, controlling the timing and receive power of +each packet arrival and checking the reception results. However, most of +the testing of this Phy implementation has been performed using example +programs described below, and during the course of a (separate) LTE/Wi-Fi +coexistence study not documented herein. + +Saturation performance +====================== + +The program ``examples/wireless/wifi-spectrum-saturation-example.cc`` +allows user to select either the `SpectrumWifiPhy` or `YansWifiPhy` for +saturation tests. The wifiType can be toggled by the argument +``'--wifiType=ns3::YansWifiPhy'`` or ``--wifiType=ns3::SpectrumWifiPhy'`` + +There isn't any difference in the output, which is to be expected because +this test is more of a test of the DCF than the physical layer. + +By default, the program will use the `SpectrumWifiPhy` and will run +for 10 seconds of saturating UDP data, with 802.11n features enabled. +It produces this output for the main 802.11n rates (with short and long guard +intervals): + +:: + + wifiType: ns3::SpectrumWifiPhy distance: 1m + index MCS width Rate (Mb/s) Tput (Mb/s) Received + 0 0 20 6.5 5.96219 5063 + 1 1 20 13 11.9491 10147 + 2 2 20 19.5 17.9172 15215 + 3 3 20 26 23.9241 20316 + 4 4 20 39 35.9427 30522 + 5 5 20 52 47.9283 40700 + 6 6 20 58.5 53.7445 45639 + 7 7 20 65 59.4629 50495 + ... + 63 15 40 300 240.884 204555 + + +The above output shows the first 8 (of 32) modes, and last mode, that will be +output from the program. The first 8 modes correspond +to short guard interval disabled and channel bonding disabled. The +subsequent 24 modes run by this program are variations with short guard +interval enabled (cases 9-16), and then with channel bonding enabled and +short guard first disabled then enabled (cases 17-32). Cases 33-64 repeat +the same configurations but for two spatial streams (MIMO abstraction). + +When run with the legacy YansWifiPhy, as in ``./waf --run "wifi-spectrum-saturation-example --wifiType=ns3::YansWifiPhy"``, the same output is observed: + +:: + + wifiType: ns3::YansWifiPhy distance: 1m + index MCS width Rate (Mb/s) Tput (Mb/s) Received + 0 0 20 6.5 5.96219 5063 + 1 1 20 13 11.9491 10147 + 2 2 20 19.5 17.9172 15215 + 3 3 20 26 23.9241 20316 + 4 4 20 39 35.9427 30522 + 5 5 20 52 47.9283 40700 + 6 6 20 58.5 53.7445 45639 + +This is to be expected since YansWifiPhy and SpectrumWifiPhy use the +same error rate model in this case. + +Packet error rate performance +============================= + +The program ``examples/wireless/wifi-spectrum-per-example.cc`` allows users +to select either `SpectrumWifiPhy` or `YansWifiPhy`, as above, and select +the distance between the nodes, and to log the reception statistics and +received SNR (as observed by the MonitorRx trace source), using a +Friis propagation loss model. The transmit power is lowered from the default +of 40 mW (16 dBm) to 1 dBm to lower the baseline SNR; the distance between +the nodes can be changed to further change the SNR. By default, it steps +through the same index values as in the saturation example (0 through 31) +for a 50m distance, producing output such as: + +:: + + wifiType: ns3::SpectrumWifiPhy distance: 50m; sent: 1000 TxPower: 1 dBm (1.3 mW) + index MCS Rate (Mb/s) Tput (Mb/s) Received Signal (dBm) Noise (dBm) SNR (dB) + 0 0 6.5 0.7776 1000 -77.6633 -100.966 23.3027 + 1 1 13 0.7776 1000 -77.6633 -100.966 23.3027 + 2 2 19.5 0.7776 1000 -77.6633 -100.966 23.3027 + 3 3 26 0.7776 1000 -77.6633 -100.966 23.3027 + 4 4 39 0.7776 1000 -77.6633 -100.966 23.3027 + 5 5 52 0 0 N/A N/A N/A + 6 6 58.5 0 0 N/A N/A N/A + 7 7 65 0 0 N/A N/A N/A + +As in the above saturation example, running this program with YansWifiPhy +will yield identical output. + +Interference performance +======================== + +The program ``examples/wireless/wifi-spectrum-per-interference.cc`` is based +on the previous packet error rate example, but copies over the +WaveformGenerator from the unlicensed LTE interferer test, to allow +users to inject a non-Wi-Fi signal (using the ``--waveformPower`` argument) +from the command line. Another difference with respect to the packet +error rate example program is that the transmit power is set back to the +default of 40 mW (16 dBm). By default, the interference generator is off, +and the program should behave similarly to the other packet error rate example, +but by adding small +amounts of power (e.g. ``--waveformPower=0.001``), one will start to observe +SNR degradation and frame loss. + +Some sample output with default arguments (no interference) is: + +:: + + ./waf --run "wifi-spectrum-per-interference" + + wifiType: ns3::SpectrumWifiPhy distance: 50m; sent: 1000 TxPower: 16 dBm (40 mW) + index MCS Rate (Mb/s) Tput (Mb/s) Received Signal (dBm)Noi+Inf(dBm) SNR (dB) + 0 0 6.5 0.7776 1000 -62.6427 -100.966 38.3233 + 1 1 13 0.7776 1000 -62.6427 -100.966 38.3233 + 2 2 19.5 0.7776 1000 -62.6427 -100.966 38.3233 + 3 3 26 0.7776 1000 -62.6427 -100.966 38.3233 + 4 4 39 0.7776 1000 -62.6427 -100.966 38.3233 + 5 5 52 0.7776 1000 -62.6427 -100.966 38.3233 + 6 6 58.5 0.7776 1000 -62.6427 -100.966 38.3233 + ... + +while a small amount of waveform power will cause frame losses to occur at +higher order modulations, due to lower SNR: + +:: + + ./waf --run "wifi-spectrum-per-interference --waveformPower=0.001" + + wifiType: ns3::SpectrumWifiPhy distance: 50m; sent: 1000 TxPower: 16 dBm (40 mW) + index MCS Rate (Mb/s) Tput (Mb/s) Received Signal (dBm)Noi+Inf(dBm) SNR (dB) + 0 0 6.5 0.7776 1000 -62.6427 -86.1031 23.4604 + 1 1 13 0.7776 1000 -62.6427 -86.1031 23.4604 + 2 2 19.5 0.7776 1000 -62.6427 -86.1032 23.4605 + 3 3 26 0.7776 1000 -62.6427 -86.1031 23.4604 + 4 4 39 0.7776 1000 -62.6427 -86.1032 23.4605 + 5 5 52 0 0 N/A N/A N/A + 6 6 58.5 0 0 N/A N/A N/A + ... + +If ns3::YansWifiPhy is selected as the wifiType, the waveform generator will +not be enabled because only transmitters of type YansWifiPhy may be connected +to a YansWifiChannel. + +The interference signal as received by the sending node is typically below +the default -62 dBm CCA Mode 1 threshold in this example. If it raises +above, the sending node will suppress all transmissions. + diff --git a/src/wifi/doc/source/wifi-user.rst b/src/wifi/doc/source/wifi-user.rst index fa886aa5947..087af4a9e1d 100644 --- a/src/wifi/doc/source/wifi-user.rst +++ b/src/wifi/doc/source/wifi-user.rst @@ -31,8 +31,10 @@ Attributes section. The scripts in ``examples/wireless`` can be browsed to see how this is done. Next, we describe the common steps to create a WifiNetDevice from the bottom layer (WifiChannel) up to the device layer (WifiNetDevice). -To create a WifiNetDevice, users need to configure mainly five steps: +To create a WifiNetDevice, users need to follow these steps: +* Decide on which physical layer framework, the ``SpectrumWifiPhy`` or + ``YansWifiPhy``, to use. This will affect which Channel and Phy type to use. * Configure the WifiChannel: WifiChannel takes care of getting signal from one device to other devices on the same wifi channel. The main configurations of WifiChannel are propagation loss model and propagation delay model. @@ -488,6 +490,13 @@ for the standard. Setting ChannelWidth has no effect on Frequency or ChannelNumber. Setting Frequency will set ChannelNumber to either the defined value for that Wi-Fi standard, or to the value 0 if undefined. +SpectrumWifiPhyHelper +===================== + +The API for this helper closely tracks the API of the YansWifiPhyHelper, +with the exception that a channel of type ``ns3::SpectrumChannel`` instead +of type ``ns3::WifiChannel`` must be used with it. + WifiMacHelper ============= diff --git a/src/wifi/helper/spectrum-wifi-helper.cc b/src/wifi/helper/spectrum-wifi-helper.cc new file mode 100644 index 00000000000..26a49e9be9c --- /dev/null +++ b/src/wifi/helper/spectrum-wifi-helper.cc @@ -0,0 +1,687 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2008 INRIA + * + * 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 + * + * Authors: Mathieu Lacage + * Sébastien Deronne + */ + +#include "ns3/trace-helper.h" +#include "spectrum-wifi-helper.h" +#include "ns3/error-rate-model.h" +#include "ns3/propagation-loss-model.h" +#include "ns3/propagation-delay-model.h" +#include "ns3/spectrum-channel.h" +#include "ns3/spectrum-wifi-phy.h" +#include "ns3/ampdu-subframe-header.h" +#include "ns3/wifi-net-device.h" +#include "ns3/radiotap-header.h" +#include "ns3/pcap-file-wrapper.h" +#include "ns3/simulator.h" +#include "ns3/config.h" +#include "ns3/names.h" +#include "ns3/abort.h" +#include "ns3/log.h" + +namespace ns3 { + +NS_LOG_COMPONENT_DEFINE ("SpectrumWifiHelper"); + +static void +AsciiPhyTransmitSinkWithContext ( + Ptr stream, + std::string context, + Ptr p, + WifiMode mode, + WifiPreamble preamble, + uint8_t txLevel) +{ + NS_LOG_FUNCTION (stream << context << p << mode << preamble << txLevel); + *stream->GetStream () << "t " << Simulator::Now ().GetSeconds () << " " << context << " " << *p << std::endl; +} + +static void +AsciiPhyTransmitSinkWithoutContext ( + Ptr stream, + Ptr p, + WifiMode mode, + WifiPreamble preamble, + uint8_t txLevel) +{ + NS_LOG_FUNCTION (stream << p << mode << preamble << txLevel); + *stream->GetStream () << "t " << Simulator::Now ().GetSeconds () << " " << *p << std::endl; +} + +static void +AsciiPhyReceiveSinkWithContext ( + Ptr stream, + std::string context, + Ptr p, + double snr, + WifiMode mode, + enum WifiPreamble preamble) +{ + NS_LOG_FUNCTION (stream << context << p << snr << mode << preamble); + *stream->GetStream () << "r " << Simulator::Now ().GetSeconds () << " " << context << " " << *p << std::endl; +} + +static void +AsciiPhyReceiveSinkWithoutContext ( + Ptr stream, + Ptr p, + double snr, + WifiMode mode, + enum WifiPreamble preamble) +{ + NS_LOG_FUNCTION (stream << p << snr << mode << preamble); + *stream->GetStream () << "r " << Simulator::Now ().GetSeconds () << " " << *p << std::endl; +} + +SpectrumWifiPhyHelper::SpectrumWifiPhyHelper () + : m_channel (0), + m_pcapDlt (PcapHelper::DLT_IEEE802_11) +{ + m_phy.SetTypeId ("ns3::SpectrumWifiPhy"); +} + +SpectrumWifiPhyHelper +SpectrumWifiPhyHelper::Default (void) +{ + SpectrumWifiPhyHelper helper; + helper.SetErrorRateModel ("ns3::NistErrorRateModel"); + return helper; +} + +void +SpectrumWifiPhyHelper::SetChannel (Ptr channel) +{ + m_channel = channel; +} + +void +SpectrumWifiPhyHelper::SetChannel (std::string channelName) +{ + Ptr channel = Names::Find (channelName); + m_channel = channel; +} + +void +SpectrumWifiPhyHelper::Set (std::string name, const AttributeValue &v) +{ + m_phy.Set (name, v); +} + +void +SpectrumWifiPhyHelper::SetErrorRateModel (std::string name, + std::string n0, const AttributeValue &v0, + std::string n1, const AttributeValue &v1, + std::string n2, const AttributeValue &v2, + std::string n3, const AttributeValue &v3, + std::string n4, const AttributeValue &v4, + std::string n5, const AttributeValue &v5, + std::string n6, const AttributeValue &v6, + std::string n7, const AttributeValue &v7) +{ + m_errorRateModel = ObjectFactory (); + m_errorRateModel.SetTypeId (name); + m_errorRateModel.Set (n0, v0); + m_errorRateModel.Set (n1, v1); + m_errorRateModel.Set (n2, v2); + m_errorRateModel.Set (n3, v3); + m_errorRateModel.Set (n4, v4); + m_errorRateModel.Set (n5, v5); + m_errorRateModel.Set (n6, v6); + m_errorRateModel.Set (n7, v7); +} + +Ptr +SpectrumWifiPhyHelper::Create (Ptr node, Ptr device) const +{ + Ptr phy = m_phy.Create (); + phy->CreateWifiSpectrumPhyInterface (device); + Ptr error = m_errorRateModel.Create (); + phy->SetErrorRateModel (error); + phy->SetChannel (m_channel); + phy->SetDevice (device); + phy->SetMobility (node->GetObject ()); + return phy; +} + +static void +PcapSniffTxEvent ( + Ptr file, + Ptr packet, + uint16_t channelFreqMhz, + uint16_t channelNumber, + uint32_t rate, + WifiPreamble preamble, + WifiTxVector txVector, + struct mpduInfo aMpdu) +{ + uint32_t dlt = file->GetDataLinkType (); + + switch (dlt) + { + case PcapHelper::DLT_IEEE802_11: + file->Write (Simulator::Now (), packet); + return; + case PcapHelper::DLT_PRISM_HEADER: + { + NS_FATAL_ERROR ("PcapSniffTxEvent(): DLT_PRISM_HEADER not implemented"); + return; + } + case PcapHelper::DLT_IEEE802_11_RADIO: + { + Ptr p = packet->Copy (); + RadiotapHeader header; + uint8_t frameFlags = RadiotapHeader::FRAME_FLAG_NONE; + header.SetTsft (Simulator::Now ().GetMicroSeconds ()); + + //Our capture includes the FCS, so we set the flag to say so. + frameFlags |= RadiotapHeader::FRAME_FLAG_FCS_INCLUDED; + + if (preamble == WIFI_PREAMBLE_SHORT) + { + frameFlags |= RadiotapHeader::FRAME_FLAG_SHORT_PREAMBLE; + } + + if (txVector.IsShortGuardInterval ()) + { + frameFlags |= RadiotapHeader::FRAME_FLAG_SHORT_GUARD; + } + + header.SetFrameFlags (frameFlags); + header.SetRate (rate); + + uint16_t channelFlags = 0; + switch (rate) + { + case 2: //1Mbps + case 4: //2Mbps + case 10: //5Mbps + case 22: //11Mbps + channelFlags |= RadiotapHeader::CHANNEL_FLAG_CCK; + break; + + default: + channelFlags |= RadiotapHeader::CHANNEL_FLAG_OFDM; + break; + } + + if (channelFreqMhz < 2500) + { + channelFlags |= RadiotapHeader::CHANNEL_FLAG_SPECTRUM_2GHZ; + } + else + { + channelFlags |= RadiotapHeader::CHANNEL_FLAG_SPECTRUM_5GHZ; + } + + header.SetChannelFrequencyAndFlags (channelFreqMhz, channelFlags); + + if (preamble == WIFI_PREAMBLE_HT_MF || preamble == WIFI_PREAMBLE_HT_GF || preamble == WIFI_PREAMBLE_NONE) + { + uint8_t mcsRate = 0; + uint8_t mcsKnown = RadiotapHeader::MCS_KNOWN_NONE; + uint8_t mcsFlags = RadiotapHeader::MCS_FLAGS_NONE; + + mcsKnown |= RadiotapHeader::MCS_KNOWN_INDEX; + mcsRate = rate - 128; + + mcsKnown |= RadiotapHeader::MCS_KNOWN_BANDWIDTH; + if (txVector.GetChannelWidth () == 40) + { + mcsFlags |= RadiotapHeader::MCS_FLAGS_BANDWIDTH_40; + } + + mcsKnown |= RadiotapHeader::MCS_KNOWN_GUARD_INTERVAL; + if (txVector.IsShortGuardInterval ()) + { + mcsFlags |= RadiotapHeader::MCS_FLAGS_GUARD_INTERVAL; + } + + mcsKnown |= RadiotapHeader::MCS_KNOWN_HT_FORMAT; + if (preamble == WIFI_PREAMBLE_HT_GF) + { + mcsFlags |= RadiotapHeader::MCS_FLAGS_HT_GREENFIELD; + } + + mcsKnown |= RadiotapHeader::MCS_KNOWN_NESS; + if (txVector.GetNess () & 0x01) //bit 1 + { + mcsFlags |= RadiotapHeader::MCS_FLAGS_NESS_BIT_0; + } + if (txVector.GetNess () & 0x02) //bit 2 + { + mcsKnown |= RadiotapHeader::MCS_KNOWN_NESS_BIT_1; + } + + mcsKnown |= RadiotapHeader::MCS_KNOWN_FEC_TYPE; //only BCC is currently supported + + mcsKnown |= RadiotapHeader::MCS_KNOWN_STBC; + if (txVector.IsStbc ()) + { + mcsFlags |= RadiotapHeader::MCS_FLAGS_STBC_STREAMS; + } + + header.SetMcsFields (mcsKnown, mcsFlags, mcsRate); + } + + if (txVector.IsAggregation ()) + { + uint16_t ampduStatusFlags = RadiotapHeader::A_MPDU_STATUS_NONE; + ampduStatusFlags |= RadiotapHeader::A_MPDU_STATUS_LAST_KNOWN; + /* For PCAP file, MPDU Delimiter and Padding should be removed by the MAC Driver */ + AmpduSubframeHeader hdr; + uint32_t extractedLength; + p->RemoveHeader (hdr); + extractedLength = hdr.GetLength (); + p = p->CreateFragment (0, static_cast (extractedLength)); + if (aMpdu.type == LAST_MPDU_IN_AGGREGATE || (hdr.GetEof () == true && hdr.GetLength () > 0)) + { + ampduStatusFlags |= RadiotapHeader::A_MPDU_STATUS_LAST; + } + header.SetAmpduStatus (aMpdu.mpduRefNumber, ampduStatusFlags, hdr.GetCrc ()); + } + + if (preamble == WIFI_PREAMBLE_VHT) + { + uint16_t vhtKnown = RadiotapHeader::VHT_KNOWN_NONE; + uint8_t vhtFlags = RadiotapHeader::VHT_FLAGS_NONE; + uint8_t vhtBandwidth = 0; + uint8_t vhtMcsNss[4] = {0,0,0,0}; + uint8_t vhtCoding = 0; + uint8_t vhtGroupId = 0; + uint16_t vhtPartialAid = 0; + + vhtKnown |= RadiotapHeader::VHT_KNOWN_STBC; + if (txVector.IsStbc ()) + { + vhtFlags |= RadiotapHeader::VHT_FLAGS_STBC; + } + + vhtKnown |= RadiotapHeader::VHT_KNOWN_GUARD_INTERVAL; + if (txVector.IsShortGuardInterval ()) + { + vhtFlags |= RadiotapHeader::VHT_FLAGS_GUARD_INTERVAL; + } + + vhtKnown |= RadiotapHeader::VHT_KNOWN_BEAMFORMED; //Beamforming is currently not supported + + vhtKnown |= RadiotapHeader::VHT_KNOWN_BANDWIDTH; + //not all bandwidth values are currently supported + if (txVector.GetChannelWidth () == 40) + { + vhtBandwidth = 1; + } + else if (txVector.GetChannelWidth () == 80) + { + vhtBandwidth = 4; + } + else if (txVector.GetChannelWidth () == 160) + { + vhtBandwidth = 11; + } + + //only SU PPDUs are currently supported + vhtMcsNss[0] |= (txVector.GetNss () & 0x0f); + vhtMcsNss[0] |= (((rate - 128) << 4) & 0xf0); + + header.SetVhtFields (vhtKnown, vhtFlags, vhtBandwidth, vhtMcsNss, vhtCoding, vhtGroupId, vhtPartialAid); + } + + p->AddHeader (header); + file->Write (Simulator::Now (), p); + return; + } + default: + NS_ABORT_MSG ("PcapSniffTxEvent(): Unexpected data link type " << dlt); + } +} + +static void +PcapSniffRxEvent ( + Ptr file, + Ptr packet, + uint16_t channelFreqMhz, + uint16_t channelNumber, + uint32_t rate, + WifiPreamble preamble, + WifiTxVector txVector, + struct mpduInfo aMpdu, + struct signalNoiseDbm signalNoise) +{ + uint32_t dlt = file->GetDataLinkType (); + + switch (dlt) + { + case PcapHelper::DLT_IEEE802_11: + file->Write (Simulator::Now (), packet); + return; + case PcapHelper::DLT_PRISM_HEADER: + { + NS_FATAL_ERROR ("PcapSniffRxEvent(): DLT_PRISM_HEADER not implemented"); + return; + } + case PcapHelper::DLT_IEEE802_11_RADIO: + { + Ptr p = packet->Copy (); + RadiotapHeader header; + uint8_t frameFlags = RadiotapHeader::FRAME_FLAG_NONE; + header.SetTsft (Simulator::Now ().GetMicroSeconds ()); + + //Our capture includes the FCS, so we set the flag to say so. + frameFlags |= RadiotapHeader::FRAME_FLAG_FCS_INCLUDED; + + if (preamble == WIFI_PREAMBLE_SHORT) + { + frameFlags |= RadiotapHeader::FRAME_FLAG_SHORT_PREAMBLE; + } + + if (txVector.IsShortGuardInterval ()) + { + frameFlags |= RadiotapHeader::FRAME_FLAG_SHORT_GUARD; + } + + header.SetFrameFlags (frameFlags); + header.SetRate (rate); + + uint16_t channelFlags = 0; + switch (rate) + { + case 2: //1Mbps + case 4: //2Mbps + case 10: //5Mbps + case 22: //11Mbps + channelFlags |= RadiotapHeader::CHANNEL_FLAG_CCK; + break; + + default: + channelFlags |= RadiotapHeader::CHANNEL_FLAG_OFDM; + break; + } + + if (channelFreqMhz < 2500) + { + channelFlags |= RadiotapHeader::CHANNEL_FLAG_SPECTRUM_2GHZ; + } + else + { + channelFlags |= RadiotapHeader::CHANNEL_FLAG_SPECTRUM_5GHZ; + } + + header.SetChannelFrequencyAndFlags (channelFreqMhz, channelFlags); + + header.SetAntennaSignalPower (signalNoise.signal); + header.SetAntennaNoisePower (signalNoise.noise); + + if (preamble == WIFI_PREAMBLE_HT_MF || preamble == WIFI_PREAMBLE_HT_GF || preamble == WIFI_PREAMBLE_NONE) + { + uint8_t mcsRate = 0; + uint8_t mcsKnown = RadiotapHeader::MCS_KNOWN_NONE; + uint8_t mcsFlags = RadiotapHeader::MCS_FLAGS_NONE; + + mcsKnown |= RadiotapHeader::MCS_KNOWN_INDEX; + mcsRate = rate - 128; + + mcsKnown |= RadiotapHeader::MCS_KNOWN_BANDWIDTH; + if (txVector.GetChannelWidth () == 40) + { + mcsFlags |= RadiotapHeader::MCS_FLAGS_BANDWIDTH_40; + } + + mcsKnown |= RadiotapHeader::MCS_KNOWN_GUARD_INTERVAL; + if (txVector.IsShortGuardInterval ()) + { + mcsFlags |= RadiotapHeader::MCS_FLAGS_GUARD_INTERVAL; + } + + mcsKnown |= RadiotapHeader::MCS_KNOWN_HT_FORMAT; + if (preamble == WIFI_PREAMBLE_HT_GF) + { + mcsFlags |= RadiotapHeader::MCS_FLAGS_HT_GREENFIELD; + } + + mcsKnown |= RadiotapHeader::MCS_KNOWN_NESS; + if (txVector.GetNess () & 0x01) //bit 1 + { + mcsFlags |= RadiotapHeader::MCS_FLAGS_NESS_BIT_0; + } + if (txVector.GetNess () & 0x02) //bit 2 + { + mcsKnown |= RadiotapHeader::MCS_KNOWN_NESS_BIT_1; + } + + mcsKnown |= RadiotapHeader::MCS_KNOWN_FEC_TYPE; //only BCC is currently supported + + mcsKnown |= RadiotapHeader::MCS_KNOWN_STBC; + if (txVector.IsStbc ()) + { + mcsFlags |= RadiotapHeader::MCS_FLAGS_STBC_STREAMS; + } + + header.SetMcsFields (mcsKnown, mcsFlags, mcsRate); + } + + if (txVector.IsAggregation ()) + { + uint16_t ampduStatusFlags = RadiotapHeader::A_MPDU_STATUS_NONE; + ampduStatusFlags |= RadiotapHeader::A_MPDU_STATUS_DELIMITER_CRC_KNOWN; + ampduStatusFlags |= RadiotapHeader::A_MPDU_STATUS_LAST_KNOWN; + /* For PCAP file, MPDU Delimiter and Padding should be removed by the MAC Driver */ + AmpduSubframeHeader hdr; + uint32_t extractedLength; + p->RemoveHeader (hdr); + extractedLength = hdr.GetLength (); + p = p->CreateFragment (0, static_cast (extractedLength)); + if (aMpdu.type == LAST_MPDU_IN_AGGREGATE || (hdr.GetEof () == true && hdr.GetLength () > 0)) + { + ampduStatusFlags |= RadiotapHeader::A_MPDU_STATUS_LAST; + } + header.SetAmpduStatus (aMpdu.mpduRefNumber, ampduStatusFlags, hdr.GetCrc ()); + } + + if (preamble == WIFI_PREAMBLE_VHT) + { + uint16_t vhtKnown = RadiotapHeader::VHT_KNOWN_NONE; + uint8_t vhtFlags = RadiotapHeader::VHT_FLAGS_NONE; + uint8_t vhtBandwidth = 0; + uint8_t vhtMcsNss[4] = {0,0,0,0}; + uint8_t vhtCoding = 0; + uint8_t vhtGroupId = 0; + uint16_t vhtPartialAid = 0; + + vhtKnown |= RadiotapHeader::VHT_KNOWN_STBC; + if (txVector.IsStbc ()) + { + vhtFlags |= RadiotapHeader::VHT_FLAGS_STBC; + } + + vhtKnown |= RadiotapHeader::VHT_KNOWN_GUARD_INTERVAL; + if (txVector.IsShortGuardInterval ()) + { + vhtFlags |= RadiotapHeader::VHT_FLAGS_GUARD_INTERVAL; + } + + vhtKnown |= RadiotapHeader::VHT_KNOWN_BEAMFORMED; //Beamforming is currently not supported + + vhtKnown |= RadiotapHeader::VHT_KNOWN_BANDWIDTH; + //not all bandwidth values are currently supported + if (txVector.GetChannelWidth () == 40) + { + vhtBandwidth = 1; + } + else if (txVector.GetChannelWidth () == 80) + { + vhtBandwidth = 4; + } + else if (txVector.GetChannelWidth () == 160) + { + vhtBandwidth = 11; + } + + //only SU PPDUs are currently supported + vhtMcsNss[0] |= (txVector.GetNss () & 0x0f); + vhtMcsNss[0] |= (((rate - 128) << 4) & 0xf0); + + header.SetVhtFields (vhtKnown, vhtFlags, vhtBandwidth, vhtMcsNss, vhtCoding, vhtGroupId, vhtPartialAid); + } + + p->AddHeader (header); + file->Write (Simulator::Now (), p); + return; + } + default: + NS_ABORT_MSG ("PcapSniffRxEvent(): Unexpected data link type " << dlt); + } +} + +void +SpectrumWifiPhyHelper::SetPcapDataLinkType (enum SupportedPcapDataLinkTypes dlt) +{ + switch (dlt) + { + case DLT_IEEE802_11: + m_pcapDlt = PcapHelper::DLT_IEEE802_11; + return; + case DLT_PRISM_HEADER: + m_pcapDlt = PcapHelper::DLT_PRISM_HEADER; + return; + case DLT_IEEE802_11_RADIO: + m_pcapDlt = PcapHelper::DLT_IEEE802_11_RADIO; + return; + default: + NS_ABORT_MSG ("SpectrumWifiPhyHelper::SetPcapFormat(): Unexpected format"); + } +} + +PcapHelper::DataLinkType +SpectrumWifiPhyHelper::GetPcapDataLinkType (void) const +{ + return m_pcapDlt; +} + +void +SpectrumWifiPhyHelper::EnablePcapInternal (std::string prefix, Ptr nd, bool promiscuous, bool explicitFilename) +{ + //All of the Pcap enable functions vector through here including the ones + //that are wandering through all of devices on perhaps all of the nodes in + //the system. We can only deal with devices of type WifiNetDevice. + Ptr device = nd->GetObject (); + if (device == 0) + { + NS_LOG_INFO ("SpectrumWifiHelper::EnablePcapInternal(): Device " << &device << " not of type ns3::WifiNetDevice"); + return; + } + + Ptr phy = device->GetPhy (); + NS_ABORT_MSG_IF (phy == 0, "SpectrumWifiPhyHelper::EnablePcapInternal(): Phy layer in WifiNetDevice must be set"); + + PcapHelper pcapHelper; + + std::string filename; + if (explicitFilename) + { + filename = prefix; + } + else + { + filename = pcapHelper.GetFilenameFromDevice (prefix, device); + } + + Ptr file = pcapHelper.CreateFile (filename, std::ios::out, m_pcapDlt); + + phy->TraceConnectWithoutContext ("MonitorSnifferTx", MakeBoundCallback (&PcapSniffTxEvent, file)); + phy->TraceConnectWithoutContext ("MonitorSnifferRx", MakeBoundCallback (&PcapSniffRxEvent, file)); +} + +void +SpectrumWifiPhyHelper::EnableAsciiInternal ( + Ptr stream, + std::string prefix, + Ptr nd, + bool explicitFilename) +{ + //All of the ascii enable functions vector through here including the ones + //that are wandering through all of devices on perhaps all of the nodes in + //the system. We can only deal with devices of type WifiNetDevice. + Ptr device = nd->GetObject (); + if (device == 0) + { + NS_LOG_INFO ("SpectrumWifiHelper::EnableAsciiInternal(): Device " << device << " not of type ns3::WifiNetDevice"); + return; + } + + //Our trace sinks are going to use packet printing, so we have to make sure + //that is turned on. + Packet::EnablePrinting (); + + uint32_t nodeid = nd->GetNode ()->GetId (); + uint32_t deviceid = nd->GetIfIndex (); + std::ostringstream oss; + + //If we are not provided an OutputStreamWrapper, we are expected to create + //one using the usual trace filename conventions and write our traces + //without a context since there will be one file per context and therefore + //the context would be redundant. + if (stream == 0) + { + //Set up an output stream object to deal with private ofstream copy + //constructor and lifetime issues. Let the helper decide the actual + //name of the file given the prefix. + AsciiTraceHelper asciiTraceHelper; + + std::string filename; + if (explicitFilename) + { + filename = prefix; + } + else + { + filename = asciiTraceHelper.GetFilenameFromDevice (prefix, device); + } + + Ptr theStream = asciiTraceHelper.CreateFileStream (filename); + //We could go poking through the phy and the state looking for the + //correct trace source, but we can let Config deal with that with + //some search cost. Since this is presumably happening at topology + //creation time, it doesn't seem much of a price to pay. + oss.str (""); + oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::WifiNetDevice/Phy/State/RxOk"; + Config::ConnectWithoutContext (oss.str (), MakeBoundCallback (&AsciiPhyReceiveSinkWithoutContext, theStream)); + + oss.str (""); + oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::WifiNetDevice/Phy/State/Tx"; + Config::ConnectWithoutContext (oss.str (), MakeBoundCallback (&AsciiPhyTransmitSinkWithoutContext, theStream)); + + return; + } + + //If we are provided an OutputStreamWrapper, we are expected to use it, and + //to provide a context. We are free to come up with our own context if we + //want, and use the AsciiTraceHelper Hook*WithContext functions, but for + //compatibility and simplicity, we just use Config::Connect and let it deal + //with coming up with a context. + oss.str (""); + oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::WifiNetDevice/Phy/State/RxOk"; + Config::Connect (oss.str (), MakeBoundCallback (&AsciiPhyReceiveSinkWithContext, stream)); + + oss.str (""); + oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::WifiNetDevice/Phy/State/Tx"; + Config::Connect (oss.str (), MakeBoundCallback (&AsciiPhyTransmitSinkWithContext, stream)); +} + +} //namespace ns3 diff --git a/src/wifi/helper/spectrum-wifi-helper.h b/src/wifi/helper/spectrum-wifi-helper.h new file mode 100644 index 00000000000..ef52680dc75 --- /dev/null +++ b/src/wifi/helper/spectrum-wifi-helper.h @@ -0,0 +1,187 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2008 INRIA + * + * 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: Mathieu Lacage + */ + +#ifndef SPECTRUM_WIFI_HELPER_H +#define SPECTRUM_WIFI_HELPER_H + +#include "wifi-helper.h" +#include "ns3/trace-helper.h" +#include "ns3/wifi-phy.h" + +namespace ns3 { + +class SpectrumChannel; + +/** + * \brief Make it easy to create and manage PHY objects for the spectrum model. + * + * The Pcap and ascii traces generated by the EnableAscii and EnablePcap methods defined + * in this class correspond to PHY-level traces and come to us via WifiPhyHelper + * + */ +class SpectrumWifiPhyHelper : public WifiPhyHelper, + public PcapHelperForDevice, + public AsciiTraceHelperForDevice +{ +public: + /** + * Create a phy helper without any parameter set. The user must set + * them all to be able to call Install later. + */ + SpectrumWifiPhyHelper (); + + /** + * Create a phy helper in a default working state. + */ + static SpectrumWifiPhyHelper Default (void); + + /** + * \param channel the channel to associate to this helper + * + * Every PHY created by a call to Install is associated to this channel. + */ + void SetChannel (Ptr channel); + /** + * \param channelName The name of the channel to associate to this helper + * + * Every PHY created by a call to Install is associated to this channel. + */ + void SetChannel (std::string channelName); + /** + * \param name the name of the attribute to set + * \param v the value of the attribute + * + * Set an attribute of the underlying PHY object. + */ + void Set (std::string name, const AttributeValue &v); + /** + * \param name the name of the error rate model to set. + * \param n0 the name of the attribute to set + * \param v0 the value of the attribute to set + * \param n1 the name of the attribute to set + * \param v1 the value of the attribute to set + * \param n2 the name of the attribute to set + * \param v2 the value of the attribute to set + * \param n3 the name of the attribute to set + * \param v3 the value of the attribute to set + * \param n4 the name of the attribute to set + * \param v4 the value of the attribute to set + * \param n5 the name of the attribute to set + * \param v5 the value of the attribute to set + * \param n6 the name of the attribute to set + * \param v6 the value of the attribute to set + * \param n7 the name of the attribute to set + * \param v7 the value of the attribute to set + * + * Set the error rate model and its attributes to use when Install is called. + */ + void SetErrorRateModel (std::string name, + std::string n0 = "", const AttributeValue &v0 = EmptyAttributeValue (), + std::string n1 = "", const AttributeValue &v1 = EmptyAttributeValue (), + std::string n2 = "", const AttributeValue &v2 = EmptyAttributeValue (), + std::string n3 = "", const AttributeValue &v3 = EmptyAttributeValue (), + std::string n4 = "", const AttributeValue &v4 = EmptyAttributeValue (), + std::string n5 = "", const AttributeValue &v5 = EmptyAttributeValue (), + std::string n6 = "", const AttributeValue &v6 = EmptyAttributeValue (), + std::string n7 = "", const AttributeValue &v7 = EmptyAttributeValue ()); + + /** + * An enumeration of the pcap data link types (DLTs) which this helper + * supports. See http://wiki.wireshark.org/Development/LibpcapFileFormat + * for more information on these formats. + */ + enum SupportedPcapDataLinkTypes + { + DLT_IEEE802_11 = PcapHelper::DLT_IEEE802_11, /**< IEEE 802.11 Wireless LAN headers on packets */ + DLT_PRISM_HEADER = PcapHelper::DLT_PRISM_HEADER, /**< Include Prism monitor mode information */ + DLT_IEEE802_11_RADIO = PcapHelper::DLT_IEEE802_11_RADIO /**< Include Radiotap link layer information */ + }; + + /** + * Set the data link type of PCAP traces to be used. This function has to be + * called before EnablePcap(), so that the header of the pcap file can be + * written correctly. + * + * @see SupportedPcapDataLinkTypes + * + * @param dlt The data link type of the pcap file (and packets) to be used + */ + void SetPcapDataLinkType (enum SupportedPcapDataLinkTypes dlt); + + /** + * Get the data link type of PCAP traces to be used. + * + * @see SupportedPcapDataLinkTypes + * + * @returns The data link type of the pcap file (and packets) to be used + */ + PcapHelper::DataLinkType GetPcapDataLinkType (void) const; + +private: + /** + * \param node the node on which we wish to create a wifi PHY + * \param device the device within which this PHY will be created + * \returns a newly-created PHY object. + * + * This method implements the pure virtual method defined in \ref ns3::WifiPhyHelper. + */ + virtual Ptr Create (Ptr node, Ptr device) const; + + /** + * @brief Enable pcap output the indicated net device. + * + * NetDevice-specific implementation mechanism for hooking the trace and + * writing to the trace file. + * + * @param prefix Filename prefix to use for pcap files. + * @param nd Net device for which you want to enable tracing. + * @param promiscuous If true capture all possible packets available at the device. + * @param explicitFilename Treat the prefix as an explicit filename if true + */ + virtual void EnablePcapInternal (std::string prefix, + Ptr nd, + bool promiscuous, + bool explicitFilename); + + /** + * \brief Enable ascii trace output on the indicated net device. + * + * NetDevice-specific implementation mechanism for hooking the trace and + * writing to the trace file. + * + * \param stream The output stream object to use when logging ascii traces. + * \param prefix Filename prefix to use for ascii trace files. + * \param nd Net device for which you want to enable tracing. + * \param explicitFilename Treat the prefix as an explicit filename if true + */ + virtual void EnableAsciiInternal (Ptr stream, + std::string prefix, + Ptr nd, + bool explicitFilename); + + ObjectFactory m_phy; + ObjectFactory m_errorRateModel; + Ptr m_channel; + PcapHelper::DataLinkType m_pcapDlt; +}; + +} //namespace ns3 + +#endif /* SPECTRUM_WIFI_HELPER_H */ diff --git a/src/wifi/model/interference-helper.cc b/src/wifi/model/interference-helper.cc index 674b0931cc5..421f33df9b7 100644 --- a/src/wifi/model/interference-helper.cc +++ b/src/wifi/model/interference-helper.cc @@ -162,6 +162,14 @@ InterferenceHelper::Add (uint32_t size, WifiTxVector txVector, return event; } +void +InterferenceHelper::AddForeignSignal (Time duration, double rxPowerW) +{ + // Parameters other than duration and rxPowerW are unused for this type + // of signal, so we provide dummy versions + WifiTxVector fakeTxVector; + Add (0, fakeTxVector, WIFI_PREAMBLE_NONE, duration, rxPowerW); +} void InterferenceHelper::SetNoiseFigure (double value) diff --git a/src/wifi/model/interference-helper.h b/src/wifi/model/interference-helper.h index 09a0135184f..274bd4d834d 100644 --- a/src/wifi/model/interference-helper.h +++ b/src/wifi/model/interference-helper.h @@ -183,6 +183,12 @@ class InterferenceHelper enum WifiPreamble preamble, Time duration, double rxPower); + /** + * Add a non-Wifi signal to interference helper. + * \param duration the duration of the signal + * \param rxPower receive power (W) + */ + void AddForeignSignal (Time duration, double rxPower); /** * Calculate the SNIR at the start of the plcp payload and accumulate * all SNIR changes in the snir vector. diff --git a/src/wifi/model/spectrum-wifi-phy.cc b/src/wifi/model/spectrum-wifi-phy.cc new file mode 100644 index 00000000000..3eb0bd71e5b --- /dev/null +++ b/src/wifi/model/spectrum-wifi-phy.cc @@ -0,0 +1,1663 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2005,2006 INRIA + * + * 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 + * + * Authors: Mathieu Lacage + * Ghada Badawy + * Sébastien Deronne + * + * Ported from yans-wifi-phy.cc by several contributors starting + * with Nicola Baldo and Dean Armstrong + */ + +#include "spectrum-wifi-phy.h" +#include "ns3/spectrum-channel.h" +#include "ns3/spectrum-value.h" +#include "ns3/wifi-spectrum-value-helper.h" +#include "wifi-channel.h" +#include "wifi-mode.h" +#include "wifi-preamble.h" +#include "wifi-phy-state-helper.h" +#include "error-rate-model.h" +#include "ns3/simulator.h" +#include "ns3/packet.h" +#include "ns3/assert.h" +#include "ns3/log.h" +#include "ns3/double.h" +#include "ns3/uinteger.h" +#include "ns3/enum.h" +#include "ns3/pointer.h" +#include "ns3/net-device.h" +#include "ns3/trace-source-accessor.h" +#include "ns3/boolean.h" +#include "ns3/node.h" +#include "ampdu-tag.h" +#include "wifi-spectrum-signal-parameters.h" +#include "wifi-phy-tag.h" +#include "ns3/antenna-model.h" +#include + +namespace ns3 { + +NS_LOG_COMPONENT_DEFINE ("SpectrumWifiPhy"); + +NS_OBJECT_ENSURE_REGISTERED (SpectrumWifiPhy); + +TypeId +SpectrumWifiPhy::GetTypeId (void) +{ + static TypeId tid = TypeId ("ns3::SpectrumWifiPhy") + .SetParent () + .SetGroupName ("Wifi") + .AddConstructor () + .AddAttribute ("EnergyDetectionThreshold", + "The energy of a received signal should be higher than " + "this threshold (dbm) to allow the PHY layer to detect the signal.", + DoubleValue (-96.0), + MakeDoubleAccessor (&SpectrumWifiPhy::SetEdThreshold, + &SpectrumWifiPhy::GetEdThreshold), + MakeDoubleChecker ()) + .AddAttribute ("CcaMode1Threshold", + "The energy of a received signal should be higher than " + "this threshold (dbm) to allow the PHY layer to declare CCA BUSY state.", + DoubleValue (-62.0), + MakeDoubleAccessor (&SpectrumWifiPhy::SetCcaMode1Threshold, + &SpectrumWifiPhy::GetCcaMode1Threshold), + MakeDoubleChecker ()) + .AddAttribute ("DisableWifiReception", "Prevent Wi-Fi frame sync from ever happening", + BooleanValue (false), + MakeBooleanAccessor (&SpectrumWifiPhy::m_disableWifiReception), + MakeBooleanChecker ()) + .AddAttribute ("TxGain", + "Transmission gain (dB).", + DoubleValue (1.0), + MakeDoubleAccessor (&SpectrumWifiPhy::SetTxGain, + &SpectrumWifiPhy::GetTxGain), + MakeDoubleChecker ()) + .AddAttribute ("RxGain", + "Reception gain (dB).", + DoubleValue (1.0), + MakeDoubleAccessor (&SpectrumWifiPhy::SetRxGain, + &SpectrumWifiPhy::GetRxGain), + MakeDoubleChecker ()) + .AddAttribute ("TxPowerLevels", + "Number of transmission power levels available between " + "TxPowerStart and TxPowerEnd included.", + UintegerValue (1), + MakeUintegerAccessor (&SpectrumWifiPhy::m_nTxPower), + MakeUintegerChecker ()) + .AddAttribute ("TxPowerEnd", + "Maximum available transmission level (dbm).", + DoubleValue (16.0206), + MakeDoubleAccessor (&SpectrumWifiPhy::SetTxPowerEnd, + &SpectrumWifiPhy::GetTxPowerEnd), + MakeDoubleChecker ()) + .AddAttribute ("TxPowerStart", + "Minimum available transmission level (dbm).", + DoubleValue (16.0206), + MakeDoubleAccessor (&SpectrumWifiPhy::SetTxPowerStart, + &SpectrumWifiPhy::GetTxPowerStart), + MakeDoubleChecker ()) + .AddAttribute ("RxNoiseFigure", + "Loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver." + " According to Wikipedia (http://en.wikipedia.org/wiki/Noise_figure), this is " + "\"the difference in decibels (dB) between" + " the noise output of the actual receiver to the noise output of an " + " ideal receiver with the same overall gain and bandwidth when the receivers " + " are connected to sources at the standard noise temperature T0 (usually 290 K)\".", + DoubleValue (7), + MakeDoubleAccessor (&SpectrumWifiPhy::SetRxNoiseFigure, + &SpectrumWifiPhy::GetRxNoiseFigure), + MakeDoubleChecker ()) + .AddAttribute ("State", + "The state of the PHY layer.", + PointerValue (), + MakePointerAccessor (&SpectrumWifiPhy::m_state), + MakePointerChecker ()) + .AddAttribute ("ChannelSwitchDelay", + "Delay between two short frames transmitted on different frequencies.", + TimeValue (MicroSeconds (250)), + MakeTimeAccessor (&SpectrumWifiPhy::m_channelSwitchDelay), + MakeTimeChecker ()) + .AddAttribute ("TxAntennas", + "The number of supported Tx antennas.", + UintegerValue (1), + MakeUintegerAccessor (&SpectrumWifiPhy::GetNumberOfTransmitAntennas, + &SpectrumWifiPhy::SetNumberOfTransmitAntennas), + MakeUintegerChecker ()) + .AddAttribute ("RxAntennas", + "The number of supported Rx antennas.", + UintegerValue (1), + MakeUintegerAccessor (&SpectrumWifiPhy::GetNumberOfReceiveAntennas, + &SpectrumWifiPhy::SetNumberOfReceiveAntennas), + MakeUintegerChecker ()) + .AddAttribute ("ShortGuardEnabled", + "Whether or not short guard interval is enabled." + "This parameter is only valuable for 802.11n/ac STAs and APs.", + BooleanValue (false), + MakeBooleanAccessor (&SpectrumWifiPhy::GetGuardInterval, + &SpectrumWifiPhy::SetGuardInterval), + MakeBooleanChecker ()) + .AddAttribute ("LdpcEnabled", + "Whether or not LDPC is enabled.", + BooleanValue (false), + MakeBooleanAccessor (&SpectrumWifiPhy::GetLdpc, + &SpectrumWifiPhy::SetLdpc), + MakeBooleanChecker ()) + .AddAttribute ("STBCEnabled", + "Whether or not STBC is enabled.", + BooleanValue (false), + MakeBooleanAccessor (&SpectrumWifiPhy::GetStbc, + &SpectrumWifiPhy::SetStbc), + MakeBooleanChecker ()) + .AddAttribute ("GreenfieldEnabled", + "Whether or not Greenfield is enabled." + "This parameter is only valuable for 802.11n STAs and APs.", + BooleanValue (false), + MakeBooleanAccessor (&SpectrumWifiPhy::GetGreenfield, + &SpectrumWifiPhy::SetGreenfield), + MakeBooleanChecker ()) + .AddAttribute ("ShortPlcpPreambleSupported", + "Whether or not short PLCP preamble is supported." + "This parameter is only valuable for 802.11b STAs and APs." + "Note: 802.11g APs and STAs always support short PLCP preamble.", + BooleanValue (false), + MakeBooleanAccessor (&SpectrumWifiPhy::GetShortPlcpPreambleSupported, + &SpectrumWifiPhy::SetShortPlcpPreambleSupported), + MakeBooleanChecker ()) + .AddTraceSource ("SignalArrival", + "Signal arrival", + MakeTraceSourceAccessor (&SpectrumWifiPhy::m_signalCb), + "ns3::SpectrumWifiPhy::SignalArrivalCallback") + ; + return tid; +} + +SpectrumWifiPhy::SpectrumWifiPhy () + : m_endRxEvent (), + m_endPlcpRxEvent (), + m_mpdusNum (0), + m_plcpSuccess (false), + m_txMpduReferenceNumber (0xffffffff), + m_rxMpduReferenceNumber (0xffffffff) +{ + NS_LOG_FUNCTION (this); + m_random = CreateObject (); + m_state = CreateObject (); +} + +SpectrumWifiPhy::~SpectrumWifiPhy () +{ + NS_LOG_FUNCTION (this); +} + +void +SpectrumWifiPhy::DoDispose (void) +{ + NS_LOG_FUNCTION (this); + m_channel = 0; + m_deviceRateSet.clear (); + m_deviceMcsSet.clear (); + m_device = 0; + m_mobility = 0; + m_state = 0; +} + +void +SpectrumWifiPhy::DoInitialize (void) +{ + NS_LOG_FUNCTION (this); + WifiPhy::DoInitialize (); + // This connection is deferred until frequency and channel width are set + if (m_channel && m_wifiSpectrumPhyInterface) + { + m_channel->AddRx (m_wifiSpectrumPhyInterface); + } + else + { + NS_FATAL_ERROR ("SpectrumWifiPhy misses channel and WifiSpectrumPhyInterface objects at initialization time"); + } +} + +bool +SpectrumWifiPhy::DoChannelSwitch (uint16_t nch) +{ + if (IsInitialized () == false) + { + //this is not channel switch, this is initialization + NS_LOG_DEBUG ("start at channel " << nch); + return true; + } + + NS_ASSERT (!IsStateSwitching ()); + switch (m_state->GetState ()) + { + case SpectrumWifiPhy::RX: + NS_LOG_DEBUG ("drop packet because of channel switching while reception"); + m_endPlcpRxEvent.Cancel (); + m_endRxEvent.Cancel (); + goto switchChannel; + break; + case SpectrumWifiPhy::TX: + NS_LOG_DEBUG ("channel switching postponed until end of current transmission"); + Simulator::Schedule (GetDelayUntilIdle (), &WifiPhy::SetChannelNumber, this, nch); + break; + case SpectrumWifiPhy::CCA_BUSY: + case SpectrumWifiPhy::IDLE: + goto switchChannel; + break; + case SpectrumWifiPhy::SLEEP: + NS_LOG_DEBUG ("channel switching ignored in sleep mode"); + break; + default: + NS_ASSERT (false); + break; + } + + return false; + +switchChannel: + + NS_LOG_DEBUG ("switching channel " << GetChannelNumber () << " -> " << nch); + m_rxSpectrumModel = WifiSpectrumValueHelper::GetSpectrumModel (GetFrequency (), GetChannelWidth ()); + m_state->SwitchToChannelSwitching (m_channelSwitchDelay); + m_interference.EraseEvents (); + /* + * Needed here to be able to correctly sensed the medium for the first + * time after the switching. The actual switching is not performed until + * after m_channelSwitchDelay. Packets received during the switching + * state are added to the event list and are employed later to figure + * out the state of the medium after the switching. + */ + return true; +} + +bool +SpectrumWifiPhy::DoFrequencySwitch (uint32_t frequency) +{ + if (IsInitialized () == false) + { + //this is not channel switch, this is initialization + NS_LOG_DEBUG ("start at frequency " << frequency); + return true; + } + + NS_ASSERT (!IsStateSwitching ()); + switch (m_state->GetState ()) + { + case SpectrumWifiPhy::RX: + NS_LOG_DEBUG ("drop packet because of channel/frequency switching while reception"); + m_endPlcpRxEvent.Cancel (); + m_endRxEvent.Cancel (); + goto switchFrequency; + break; + case SpectrumWifiPhy::TX: + NS_LOG_DEBUG ("channel/frequency switching postponed until end of current transmission"); + Simulator::Schedule (GetDelayUntilIdle (), &WifiPhy::SetFrequency, this, frequency); + break; + case SpectrumWifiPhy::CCA_BUSY: + case SpectrumWifiPhy::IDLE: + goto switchFrequency; + break; + case SpectrumWifiPhy::SLEEP: + NS_LOG_DEBUG ("frequency switching ignored in sleep mode"); + break; + default: + NS_ASSERT (false); + break; + } + + return false; + +switchFrequency: + + NS_LOG_DEBUG ("switching frequency " << GetFrequency () << " -> " << frequency); + m_rxSpectrumModel = WifiSpectrumValueHelper::GetSpectrumModel (GetFrequency (), GetChannelWidth ()); + m_state->SwitchToChannelSwitching (m_channelSwitchDelay); + m_interference.EraseEvents (); + /* + * Needed here to be able to correctly sensed the medium for the first + * time after the switching. The actual switching is not performed until + * after m_channelSwitchDelay. Packets received during the switching + * state are added to the event list and are employed later to figure + * out the state of the medium after the switching. + */ + return true; +} + +void +SpectrumWifiPhy::ConfigureStandard (enum WifiPhyStandard standard) +{ + NS_LOG_FUNCTION (this << standard); + WifiPhy::ConfigureStandard (standard); // set up base class + switch (standard) + { + case WIFI_PHY_STANDARD_80211a: + Configure80211a (); + break; + case WIFI_PHY_STANDARD_80211b: + Configure80211b (); + break; + case WIFI_PHY_STANDARD_80211g: + Configure80211g (); + break; + case WIFI_PHY_STANDARD_80211_10MHZ: + Configure80211_10Mhz (); + break; + case WIFI_PHY_STANDARD_80211_5MHZ: + Configure80211_5Mhz (); + break; + case WIFI_PHY_STANDARD_holland: + ConfigureHolland (); + break; + case WIFI_PHY_STANDARD_80211n_2_4GHZ: + Configure80211n (); + break; + case WIFI_PHY_STANDARD_80211n_5GHZ: + Configure80211n (); + break; + case WIFI_PHY_STANDARD_80211ac: + Configure80211ac (); + break; + default: + NS_ASSERT (false); + break; + } +} + +void +SpectrumWifiPhy::SetRxNoiseFigure (double noiseFigureDb) +{ + NS_LOG_FUNCTION (this << noiseFigureDb); + m_interference.SetNoiseFigure (DbToRatio (noiseFigureDb)); +} + +void +SpectrumWifiPhy::SetTxPowerStart (double start) +{ + NS_LOG_FUNCTION (this << start); + m_txPowerBaseDbm = start; +} + +void +SpectrumWifiPhy::SetTxPowerEnd (double end) +{ + NS_LOG_FUNCTION (this << end); + m_txPowerEndDbm = end; +} + +void +SpectrumWifiPhy::SetNTxPower (uint32_t n) +{ + NS_LOG_FUNCTION (this << n); + m_nTxPower = n; +} + +void +SpectrumWifiPhy::SetTxGain (double gain) +{ + NS_LOG_FUNCTION (this << gain); + m_txGainDb = gain; +} + +void +SpectrumWifiPhy::SetRxGain (double gain) +{ + NS_LOG_FUNCTION (this << gain); + m_rxGainDb = gain; +} + +void +SpectrumWifiPhy::SetEdThreshold (double threshold) +{ + NS_LOG_FUNCTION (this << threshold); + m_edThresholdW = DbmToW (threshold); +} + +void +SpectrumWifiPhy::SetCcaMode1Threshold (double threshold) +{ + NS_LOG_FUNCTION (this << threshold); + m_ccaMode1ThresholdW = DbmToW (threshold); +} + +void +SpectrumWifiPhy::SetErrorRateModel (Ptr rate) +{ + m_interference.SetErrorRateModel (rate); +} + +void +SpectrumWifiPhy::SetDevice (Ptr device) +{ + m_device = device; +} + +void +SpectrumWifiPhy::SetMobility (Ptr mobility) +{ + m_mobility = mobility; +} + +double +SpectrumWifiPhy::GetRxNoiseFigure (void) const +{ + return RatioToDb (m_interference.GetNoiseFigure ()); +} + +double +SpectrumWifiPhy::GetTxPowerStart (void) const +{ + return m_txPowerBaseDbm; +} + +double +SpectrumWifiPhy::GetTxPowerEnd (void) const +{ + return m_txPowerEndDbm; +} + +double +SpectrumWifiPhy::GetTxGain (void) const +{ + return m_txGainDb; +} + +double +SpectrumWifiPhy::GetRxGain (void) const +{ + return m_rxGainDb; +} + +double +SpectrumWifiPhy::GetEdThreshold (void) const +{ + return WToDbm (m_edThresholdW); +} + +double +SpectrumWifiPhy::GetCcaMode1Threshold (void) const +{ + return WToDbm (m_ccaMode1ThresholdW); +} + +Ptr +SpectrumWifiPhy::GetErrorRateModel (void) const +{ + return m_interference.GetErrorRateModel (); +} + +Ptr +SpectrumWifiPhy::GetDevice (void) const +{ + return m_device; +} + +Ptr +SpectrumWifiPhy::GetMobility (void) +{ + if (m_mobility != 0) + { + return m_mobility; + } + else + { + return m_device->GetNode ()->GetObject (); + } +} + +Ptr +SpectrumWifiPhy::GetRxSpectrumModel () const +{ + NS_LOG_FUNCTION (this); + if (m_rxSpectrumModel) + { + return m_rxSpectrumModel; + } + else + { + if (GetFrequency () == 0) + { + NS_LOG_DEBUG ("Frequency is not set; returning 0"); + return 0; + } + else + { + NS_LOG_DEBUG ("Creating spectrum model from frequency/width pair of (" << GetFrequency () << ", " << GetChannelWidth () << ")"); + m_rxSpectrumModel = WifiSpectrumValueHelper::GetSpectrumModel (GetFrequency (), GetChannelWidth ()); + } + } + return m_rxSpectrumModel; +} + +double +SpectrumWifiPhy::CalculateSnr (WifiTxVector txVector, double ber) const +{ + return m_interference.GetErrorRateModel ()->CalculateSnr (txVector, ber); +} + +Ptr +SpectrumWifiPhy::GetChannel (void) const +{ + return Ptr (0); +} + +void +SpectrumWifiPhy::SetChannel (Ptr channel) +{ + m_channel = channel; +} + +void +SpectrumWifiPhy::SetPacketReceivedCallback (RxCallback callback) +{ + m_rxCallback = callback; +} + +Time +SpectrumWifiPhy::GetChannelSwitchDelay (void) const +{ + return m_channelSwitchDelay; +} + +void +SpectrumWifiPhy::AddOperationalChannel (uint16_t channelNumber) +{ + m_operationalChannelList.push_back (channelNumber); +} + +std::vector +SpectrumWifiPhy::GetOperationalChannelList () const +{ + std::vector channelList; + channelList.push_back (GetChannelNumber ()); // first channel of list + for (std::vector::size_type i = 0; i != m_operationalChannelList.size (); i++) + { + if (m_operationalChannelList[i] != GetChannelNumber ()) + { + channelList.push_back (m_operationalChannelList[i]); + } + } + return channelList; +} + +void +SpectrumWifiPhy::ClearOperationalChannelList () +{ + m_operationalChannelList.clear (); +} + +void +SpectrumWifiPhy::SetSleepMode (void) +{ + NS_LOG_FUNCTION (this); + switch (m_state->GetState ()) + { + case SpectrumWifiPhy::TX: + NS_LOG_DEBUG ("setting sleep mode postponed until end of current transmission"); + Simulator::Schedule (GetDelayUntilIdle (), &SpectrumWifiPhy::SetSleepMode, this); + break; + case SpectrumWifiPhy::RX: + NS_LOG_DEBUG ("setting sleep mode postponed until end of current reception"); + Simulator::Schedule (GetDelayUntilIdle (), &SpectrumWifiPhy::SetSleepMode, this); + break; + case SpectrumWifiPhy::SWITCHING: + NS_LOG_DEBUG ("setting sleep mode postponed until end of channel switching"); + Simulator::Schedule (GetDelayUntilIdle (), &SpectrumWifiPhy::SetSleepMode, this); + break; + case SpectrumWifiPhy::CCA_BUSY: + case SpectrumWifiPhy::IDLE: + NS_LOG_DEBUG ("setting sleep mode"); + m_state->SwitchToSleep (); + break; + case SpectrumWifiPhy::SLEEP: + NS_LOG_DEBUG ("already in sleep mode"); + break; + default: + NS_ASSERT (false); + break; + } +} + +void +SpectrumWifiPhy::ResumeFromSleep (void) +{ + NS_LOG_FUNCTION (this); + switch (m_state->GetState ()) + { + case SpectrumWifiPhy::TX: + case SpectrumWifiPhy::RX: + case SpectrumWifiPhy::IDLE: + case SpectrumWifiPhy::CCA_BUSY: + case SpectrumWifiPhy::SWITCHING: + { + NS_LOG_DEBUG ("not in sleep mode, there is nothing to resume"); + break; + } + case SpectrumWifiPhy::SLEEP: + { + NS_LOG_DEBUG ("resuming from sleep mode"); + Time delayUntilCcaEnd = m_interference.GetEnergyDuration (m_ccaMode1ThresholdW); + m_state->SwitchFromSleep (delayUntilCcaEnd); + break; + } + default: + { + NS_ASSERT (false); + break; + } + } +} + +void +SpectrumWifiPhy::SetReceiveOkCallback (RxOkCallback callback) +{ + m_state->SetReceiveOkCallback (callback); +} + +void +SpectrumWifiPhy::SetReceiveErrorCallback (RxErrorCallback callback) +{ + m_state->SetReceiveErrorCallback (callback); +} + +void +SpectrumWifiPhy::SwitchMaybeToCcaBusy (void) +{ + NS_LOG_FUNCTION (this); + //We are here because we have received the first bit of a packet and we are + //not going to be able to synchronize on it + //In this model, CCA becomes busy when the aggregation of all signals as + //tracked by the InterferenceHelper class is higher than the CcaBusyThreshold + + Time delayUntilCcaEnd = m_interference.GetEnergyDuration (m_ccaMode1ThresholdW); + if (!delayUntilCcaEnd.IsZero ()) + { + NS_LOG_DEBUG ("Calling SwitchMaybeToCcaBusy for " << delayUntilCcaEnd.As (Time::S)); + m_state->SwitchMaybeToCcaBusy (delayUntilCcaEnd); + } +} + +void +SpectrumWifiPhy::StartRx (Ptr rxParams) +{ + NS_LOG_FUNCTION (this << rxParams); + Time rxDuration = rxParams->duration; + Ptr receivedSignalPsd = rxParams->psd; + NS_LOG_DEBUG ("Received signal with PSD " << *receivedSignalPsd << " and duration " << rxDuration.As (Time::NS)); + uint32_t senderNodeId = 0; + if (rxParams->txPhy) + { + senderNodeId = rxParams->txPhy->GetDevice ()->GetNode ()->GetId (); + } + NS_LOG_DEBUG ("Received signal from " << senderNodeId << " with unfiltered power " << WToDbm (Integral (*(GetPointer (receivedSignalPsd)))) << " dBm"); + // Integrate over our receive bandwidth (i.e., all that the receive + // spectral mask representing our filtering allows) to find the + // total energy apparent to the "demodulator". + Ptr filter = WifiSpectrumValueHelper::CreateRfFilter (GetFrequency (), GetChannelWidth ()); + SpectrumValue filteredSignal = (*filter) * (*receivedSignalPsd); + // Add receiver antenna gain + NS_LOG_DEBUG ("Signal power received (watts) before antenna gain: " << Integral (filteredSignal)); + double rxPowerW = Integral (filteredSignal) * DbToRatio (m_rxGainDb); + NS_LOG_DEBUG ("Signal power received after antenna gain: " << rxPowerW << " W (" << WToDbm (rxPowerW) << " dBm)"); + + Ptr wifiRxParams = DynamicCast (rxParams); + + // Log the signal arrival to the trace source + m_signalCb (wifiRxParams ? true : false, senderNodeId, WToDbm (rxPowerW), rxDuration); + if (wifiRxParams == 0) + { + NS_LOG_INFO ("Received non Wi-Fi signal"); + m_interference.AddForeignSignal (rxDuration, rxPowerW); + SwitchMaybeToCcaBusy (); + return; + } + if (wifiRxParams && m_disableWifiReception) + { + NS_LOG_INFO ("Received Wi-Fi signal but blocked from syncing"); + m_interference.AddForeignSignal (rxDuration, rxPowerW); + SwitchMaybeToCcaBusy (); + return; + } + + NS_LOG_INFO ("Received Wi-Fi signal"); + Ptr packet = wifiRxParams->packet; + WifiPhyTag tag; + bool found = packet->PeekPacketTag (tag); + if (!found) + { + NS_FATAL_ERROR ("Received Wi-Fi Spectrum Signal with no WifiPhyTag"); + return; + } + + WifiTxVector txVector = tag.GetWifiTxVector (); + if (txVector.GetNss () > GetNumberOfReceiveAntennas ()) + { + /* failure. */ + NotifyRxDrop (packet); + NS_LOG_INFO ("Reception ends in failure because less RX antennas than number of spatial streams"); + SwitchMaybeToCcaBusy (); + return; + } + + enum WifiPreamble preamble = tag.GetWifiPreamble (); + enum mpduType mpdutype = tag.GetMpduType (); + + // At this point forward, processing parallels that of + // YansWifiPhy::StartReceivePreambleAndHeader () + + AmpduTag ampduTag; + Time endRx = Simulator::Now () + rxDuration; + Time preambleAndHeaderDuration = CalculatePlcpPreambleAndHeaderDuration (txVector, preamble); + + Ptr event; + event = m_interference.Add (packet->GetSize (), + txVector, + preamble, + rxDuration, + rxPowerW); + + switch (m_state->GetState ()) + { + case SpectrumWifiPhy::SWITCHING: + NS_LOG_DEBUG ("drop packet because of channel switching"); + NotifyRxDrop (packet); + m_plcpSuccess = false; + /* + * Packets received on the upcoming channel are added to the event list + * during the switching state. This way the medium can be correctly sensed + * when the device listens to the channel for the first time after the + * switching e.g. after channel switching, the channel may be sensed as + * busy due to other devices' tramissions started before the end of + * the switching. + */ + if (endRx > Simulator::Now () + m_state->GetDelayUntilIdle ()) + { + //that packet will be noise _after_ the completion of the + //channel switching. + SwitchMaybeToCcaBusy (); + return; + } + break; + case SpectrumWifiPhy::RX: + NS_LOG_DEBUG ("drop packet because already in Rx (power=" << + rxPowerW << "W)"); + NotifyRxDrop (packet); + if (endRx > Simulator::Now () + m_state->GetDelayUntilIdle ()) + { + //that packet will be noise _after_ the reception of the + //currently-received packet. + SwitchMaybeToCcaBusy (); + return; + } + break; + case SpectrumWifiPhy::TX: + NS_LOG_DEBUG ("drop packet because already in Tx (power=" << + rxPowerW << "W)"); + NotifyRxDrop (packet); + if (endRx > Simulator::Now () + m_state->GetDelayUntilIdle ()) + { + //that packet will be noise _after_ the transmission of the + //currently-transmitted packet. + SwitchMaybeToCcaBusy (); + return; + } + break; + case SpectrumWifiPhy::CCA_BUSY: + case SpectrumWifiPhy::IDLE: + if (rxPowerW > m_edThresholdW) //checked here, no need to check in the payload reception (current implementation assumes constant rx power over the packet duration) + { + if (preamble == WIFI_PREAMBLE_NONE && m_mpdusNum == 0) + { + NS_LOG_DEBUG ("drop packet because no preamble has been received"); + NotifyRxDrop (packet); + SwitchMaybeToCcaBusy (); + return; + } + else if (preamble == WIFI_PREAMBLE_NONE && m_plcpSuccess == false) //A-MPDU reception fails + { + NS_LOG_DEBUG ("Drop MPDU because no plcp has been received"); + NotifyRxDrop (packet); + SwitchMaybeToCcaBusy (); + return; + } + else if (preamble != WIFI_PREAMBLE_NONE && packet->PeekPacketTag (ampduTag) && m_mpdusNum == 0) + { + //received the first MPDU in an MPDU + m_mpdusNum = ampduTag.GetRemainingNbOfMpdus () - 1; + m_rxMpduReferenceNumber++; + } + else if (preamble == WIFI_PREAMBLE_NONE && packet->PeekPacketTag (ampduTag) && m_mpdusNum > 0) + { + //received the other MPDUs that are part of the A-MPDU + if (ampduTag.GetRemainingNbOfMpdus () < m_mpdusNum) + { + NS_LOG_DEBUG ("Missing MPDU from the A-MPDU " << m_mpdusNum - ampduTag.GetRemainingNbOfMpdus ()); + m_mpdusNum = ampduTag.GetRemainingNbOfMpdus (); + } + else + { + m_mpdusNum--; + } + } + else if (preamble != WIFI_PREAMBLE_NONE && m_mpdusNum > 0 ) + { + NS_LOG_DEBUG ("Didn't receive the last MPDUs from an A-MPDU " << m_mpdusNum); + m_mpdusNum = 0; + } + + NS_LOG_DEBUG ("sync to signal (power=" << rxPowerW << "W)"); + //sync to signal + m_state->SwitchToRx (rxDuration); + NS_ASSERT (m_endPlcpRxEvent.IsExpired ()); + NotifyRxBegin (packet); + m_interference.NotifyRxStart (); + + if (preamble != WIFI_PREAMBLE_NONE) + { + NS_ASSERT (m_endPlcpRxEvent.IsExpired ()); + m_endPlcpRxEvent = Simulator::Schedule (preambleAndHeaderDuration, &SpectrumWifiPhy::StartReceivePacket, this, + packet, txVector, preamble, mpdutype, event); + } + + NS_ASSERT (m_endRxEvent.IsExpired ()); + m_endRxEvent = Simulator::Schedule (rxDuration, &SpectrumWifiPhy::EndReceive, this, + packet, preamble, mpdutype, event); + } + else + { + NS_LOG_DEBUG ("drop packet because signal power too Small (" << + rxPowerW << "<" << m_edThresholdW << ")"); + NotifyRxDrop (packet); + m_plcpSuccess = false; + SwitchMaybeToCcaBusy (); + return; + } + break; + case SpectrumWifiPhy::SLEEP: + NS_LOG_DEBUG ("drop packet because in sleep mode"); + NotifyRxDrop (packet); + m_plcpSuccess = false; + break; + } + + return; +} + +void +SpectrumWifiPhy::StartReceivePacket (Ptr packet, + WifiTxVector txVector, + enum WifiPreamble preamble, + enum mpduType mpdutype, + Ptr event) +{ + NS_LOG_FUNCTION (this << packet << txVector.GetMode () << preamble << (uint32_t)mpdutype); + NS_ASSERT (IsStateRx ()); + NS_ASSERT (m_endPlcpRxEvent.IsExpired ()); + AmpduTag ampduTag; + WifiMode txMode = txVector.GetMode (); + + struct InterferenceHelper::SnrPer snrPer; + snrPer = m_interference.CalculatePlcpHeaderSnrPer (event); + + NS_LOG_DEBUG ("snr(dB)=" << RatioToDb (snrPer.snr) << ", per=" << snrPer.per); + + if (m_random->GetValue () > snrPer.per) //plcp reception succeeded + { + if (IsModeSupported (txMode) || IsMcsSupported (txMode)) + { + NS_LOG_DEBUG ("receiving plcp payload"); //endReceive is already scheduled + m_plcpSuccess = true; + } + else //mode is not allowed + { + NS_LOG_DEBUG ("drop packet because it was sent using an unsupported mode (" << txMode << ")"); + NotifyRxDrop (packet); + m_plcpSuccess = false; + } + } + else //plcp reception failed + { + NS_LOG_DEBUG ("drop packet because plcp preamble/header reception failed"); + NotifyRxDrop (packet); + m_plcpSuccess = false; + } +} + +Ptr +SpectrumWifiPhy::GetSpectrumPhy (void) const +{ + return m_wifiSpectrumPhyInterface; +} + +Ptr +SpectrumWifiPhy::GetRxAntenna (void) const +{ + return m_antenna; +} + +void +SpectrumWifiPhy::SetAntenna (Ptr a) +{ + NS_LOG_FUNCTION (this << a); + m_antenna = a; +} + +void +SpectrumWifiPhy::CreateWifiSpectrumPhyInterface (Ptr device) +{ + NS_LOG_FUNCTION (this << device); + m_wifiSpectrumPhyInterface = CreateObject (); + m_wifiSpectrumPhyInterface->SetSpectrumWifiPhy (this); + m_wifiSpectrumPhyInterface->SetDevice (device); +} + +void +SpectrumWifiPhy::SendPacket (Ptr packet, WifiTxVector txVector, WifiPreamble preamble) +{ + SendPacket (packet, txVector, preamble, NORMAL_MPDU); +} + +Ptr +SpectrumWifiPhy::GetTxPowerSpectralDensity (uint32_t centerFrequency, uint32_t channelWidth, double txPowerW) const +{ + NS_LOG_FUNCTION (centerFrequency << channelWidth << txPowerW); + Ptr v; + switch (GetStandard ()) + { + case WIFI_PHY_STANDARD_80211a: + case WIFI_PHY_STANDARD_80211g: + case WIFI_PHY_STANDARD_holland: + case WIFI_PHY_STANDARD_80211_10MHZ: + case WIFI_PHY_STANDARD_80211_5MHZ: + v = WifiSpectrumValueHelper::CreateOfdmTxPowerSpectralDensity (centerFrequency, channelWidth, txPowerW); + break; + case WIFI_PHY_STANDARD_80211b: + v = WifiSpectrumValueHelper::CreateDsssTxPowerSpectralDensity (centerFrequency, txPowerW); + break; + case WIFI_PHY_STANDARD_80211n_2_4GHZ: + case WIFI_PHY_STANDARD_80211n_5GHZ: + case WIFI_PHY_STANDARD_80211ac: + v = WifiSpectrumValueHelper::CreateHtOfdmTxPowerSpectralDensity (centerFrequency, channelWidth, txPowerW); + break; + default: + NS_FATAL_ERROR ("Standard unknown: " << GetStandard ()); + break; + } + return v; +} + +void +SpectrumWifiPhy::SendPacket (Ptr packet, WifiTxVector txVector, WifiPreamble preamble, enum mpduType mpdutype) +{ + NS_LOG_FUNCTION (this << packet << txVector.GetMode () + << txVector.GetMode ().GetDataRate (txVector) + << preamble << (uint32_t)txVector.GetTxPowerLevel () << (uint32_t)mpdutype); + /* Transmission can happen if: + * - we are syncing on a packet. It is the responsability of the + * MAC layer to avoid doing this but the PHY does nothing to + * prevent it. + * - we are idle + */ + NS_ASSERT (!m_state->IsStateTx () && !m_state->IsStateSwitching ()); + + if (m_state->IsStateSleep ()) + { + NS_LOG_DEBUG ("Dropping packet because in sleep mode"); + NotifyTxDrop (packet); + return; + } + + Time txDuration = CalculateTxDuration (packet->GetSize (), txVector, preamble, GetFrequency (), mpdutype, 1); + NS_ASSERT (txDuration > NanoSeconds (0)); + + if (m_state->IsStateRx ()) + { + m_endPlcpRxEvent.Cancel (); + m_endRxEvent.Cancel (); + m_interference.NotifyRxEnd (); + } + NotifyTxBegin (packet); + uint32_t dataRate500KbpsUnits; + if (txVector.GetMode ().GetModulationClass () == WIFI_MOD_CLASS_HT || txVector.GetMode ().GetModulationClass () == WIFI_MOD_CLASS_VHT) + { + dataRate500KbpsUnits = 128 + txVector.GetMode ().GetMcsValue (); + } + else + { + dataRate500KbpsUnits = txVector.GetMode ().GetDataRate (txVector.GetChannelWidth (), txVector.IsShortGuardInterval (), 1) * txVector.GetNss () / 500000; + } + if (mpdutype == MPDU_IN_AGGREGATE && preamble != WIFI_PREAMBLE_NONE) + { + //send the first MPDU in an MPDU + m_txMpduReferenceNumber++; + } + struct mpduInfo aMpdu; + aMpdu.type = mpdutype; + aMpdu.mpduRefNumber = m_txMpduReferenceNumber; + NotifyMonitorSniffTx (packet, (uint16_t) GetFrequency (), GetChannelNumber (), dataRate500KbpsUnits, preamble, txVector, aMpdu); + m_state->SwitchToTx (txDuration, packet, GetPowerDbm (txVector.GetTxPowerLevel ()), txVector, preamble); + // + // Spectrum elements added here + // + Ptr newPacket = packet->Copy (); // obtain non-const Packet + WifiPhyTag oldtag; + newPacket->RemovePacketTag (oldtag); + WifiPhyTag tag (txVector, preamble, mpdutype); + newPacket->AddPacketTag (tag); + + NS_LOG_DEBUG ("Transmission signal power before antenna gain: " << GetPowerDbm (txVector.GetTxPowerLevel ()) << " dBm"); + double txPowerWatts = DbmToW (GetPowerDbm (txVector.GetTxPowerLevel ()) + m_txGainDb); + + Ptr txPowerSpectrum = GetTxPowerSpectralDensity (GetFrequency (), GetChannelWidth (), txPowerWatts); + Ptr txParams = Create (); + txParams->duration = txDuration; + txParams->psd = txPowerSpectrum; + NS_ASSERT_MSG (m_wifiSpectrumPhyInterface, "SpectrumPhy() is not set; maybe forgot to call CreateWifiSpectrumPhyInterface?"); + txParams->txPhy = m_wifiSpectrumPhyInterface->GetObject (); + txParams->txAntenna = m_antenna; + txParams->packet = newPacket; + NS_LOG_DEBUG ("Starting transmission with power " << WToDbm (txPowerWatts) << " dBm on channel " << GetChannelNumber ()); + NS_LOG_DEBUG ("Starting transmission with integrated spectrum power " << WToDbm (Integral (*txPowerSpectrum)) << " dBm; spectrum model Uid: " << txPowerSpectrum->GetSpectrumModel ()->GetUid ()); + m_channel->StartTx (txParams); +} + +uint32_t +SpectrumWifiPhy::GetNModes (void) const +{ + return m_deviceRateSet.size (); +} + +WifiMode +SpectrumWifiPhy::GetMode (uint32_t mode) const +{ + return m_deviceRateSet[mode]; +} + +bool +SpectrumWifiPhy::IsModeSupported (WifiMode mode) const +{ + for (uint32_t i = 0; i < GetNModes (); i++) + { + if (mode == GetMode (i)) + { + return true; + } + } + return false; +} +bool +SpectrumWifiPhy::IsMcsSupported (WifiMode mcs) +{ + for (uint32_t i = 0; i < GetNMcs (); i++) + { + if (mcs == GetMcs (i)) + { + return true; + } + } + return false; +} + +uint32_t +SpectrumWifiPhy::GetNTxPower (void) const +{ + return m_nTxPower; +} + +void +SpectrumWifiPhy::Configure80211a (void) +{ + NS_LOG_FUNCTION (this); + + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate6Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate9Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate12Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate18Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate24Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate36Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate48Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate54Mbps ()); +} + +void +SpectrumWifiPhy::Configure80211b (void) +{ + NS_LOG_FUNCTION (this); + + m_deviceRateSet.push_back (WifiPhy::GetDsssRate1Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetDsssRate2Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetDsssRate5_5Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetDsssRate11Mbps ()); +} + +void +SpectrumWifiPhy::Configure80211g (void) +{ + NS_LOG_FUNCTION (this); + Configure80211b (); + + m_deviceRateSet.push_back (WifiPhy::GetErpOfdmRate6Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetErpOfdmRate9Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetErpOfdmRate12Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetErpOfdmRate18Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetErpOfdmRate24Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetErpOfdmRate36Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetErpOfdmRate48Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetErpOfdmRate54Mbps ()); +} + +void +SpectrumWifiPhy::Configure80211_10Mhz (void) +{ + NS_LOG_FUNCTION (this); + + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate3MbpsBW10MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate4_5MbpsBW10MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate6MbpsBW10MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate9MbpsBW10MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate12MbpsBW10MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate18MbpsBW10MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate24MbpsBW10MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate27MbpsBW10MHz ()); +} + +void +SpectrumWifiPhy::Configure80211_5Mhz (void) +{ + NS_LOG_FUNCTION (this); + + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate1_5MbpsBW5MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate2_25MbpsBW5MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate3MbpsBW5MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate4_5MbpsBW5MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate6MbpsBW5MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate9MbpsBW5MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate12MbpsBW5MHz ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate13_5MbpsBW5MHz ()); +} + +void +SpectrumWifiPhy::ConfigureHolland (void) +{ + NS_LOG_FUNCTION (this); + + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate6Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate12Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate18Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate36Mbps ()); + m_deviceRateSet.push_back (WifiPhy::GetOfdmRate54Mbps ()); +} + +void +SpectrumWifiPhy::ConfigureHtDeviceMcsSet (void) +{ + NS_LOG_FUNCTION (this); + + bool htFound = false; + for (std::vector::size_type i = 0; i < m_bssMembershipSelectorSet.size (); i++) + { + if (m_bssMembershipSelectorSet[i] == HT_PHY) + { + htFound = true; + break; + } + } + if (htFound) + { + // erase all HtMcs modes from deviceMcsSet + size_t index = m_deviceMcsSet.size () - 1; + for (std::vector::reverse_iterator rit = m_deviceMcsSet.rbegin (); rit != m_deviceMcsSet.rend (); ++rit, --index) + { + if (m_deviceMcsSet[index].GetModulationClass () == WIFI_MOD_CLASS_HT) + { + m_deviceMcsSet.erase (m_deviceMcsSet.begin () + index); + } + } + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs0 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs1 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs2 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs3 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs4 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs5 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs6 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs7 ()); + if (GetSupportedTxSpatialStreams () > 1) + { + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs8 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs9 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs10 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs11 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs12 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs13 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs14 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs15 ()); + } + if (GetSupportedTxSpatialStreams () > 2) + { + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs16 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs17 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs18 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs19 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs20 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs21 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs22 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs23 ()); + } + if (GetSupportedTxSpatialStreams () > 3) + { + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs24 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs25 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs26 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs27 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs28 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs29 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs30 ()); + m_deviceMcsSet.push_back (WifiPhy::GetHtMcs31 ()); + } + } +} + +void +SpectrumWifiPhy::Configure80211n (void) +{ + NS_LOG_FUNCTION (this); + if (GetFrequency () >= 2400 && GetFrequency () <= 2500) //at 2.4 GHz + { + Configure80211b (); + Configure80211g (); + } + if (GetFrequency () >= 5000 && GetFrequency () <= 6000) //at 5 GHz + { + Configure80211a (); + } + m_bssMembershipSelectorSet.push_back (HT_PHY); + ConfigureHtDeviceMcsSet (); +} + +void +SpectrumWifiPhy::Configure80211ac (void) +{ + NS_LOG_FUNCTION (this); + Configure80211n (); + + m_deviceMcsSet.push_back (WifiPhy::GetVhtMcs0 ()); + m_deviceMcsSet.push_back (WifiPhy::GetVhtMcs1 ()); + m_deviceMcsSet.push_back (WifiPhy::GetVhtMcs2 ()); + m_deviceMcsSet.push_back (WifiPhy::GetVhtMcs3 ()); + m_deviceMcsSet.push_back (WifiPhy::GetVhtMcs4 ()); + m_deviceMcsSet.push_back (WifiPhy::GetVhtMcs5 ()); + m_deviceMcsSet.push_back (WifiPhy::GetVhtMcs6 ()); + m_deviceMcsSet.push_back (WifiPhy::GetVhtMcs7 ()); + m_deviceMcsSet.push_back (WifiPhy::GetVhtMcs8 ()); + m_deviceMcsSet.push_back (WifiPhy::GetVhtMcs9 ()); + + m_bssMembershipSelectorSet.push_back (VHT_PHY); +} + +void +SpectrumWifiPhy::RegisterListener (WifiPhyListener *listener) +{ + m_state->RegisterListener (listener); +} + +void +SpectrumWifiPhy::UnregisterListener (WifiPhyListener *listener) +{ + m_state->UnregisterListener (listener); +} + +bool +SpectrumWifiPhy::IsStateCcaBusy (void) +{ + return m_state->IsStateCcaBusy (); +} + +bool +SpectrumWifiPhy::IsStateIdle (void) +{ + return m_state->IsStateIdle (); +} + +bool +SpectrumWifiPhy::IsStateBusy (void) +{ + return m_state->IsStateBusy (); +} + +bool +SpectrumWifiPhy::IsStateRx (void) +{ + return m_state->IsStateRx (); +} + +bool +SpectrumWifiPhy::IsStateTx (void) +{ + return m_state->IsStateTx (); +} + +bool +SpectrumWifiPhy::IsStateSwitching (void) +{ + return m_state->IsStateSwitching (); +} + +bool +SpectrumWifiPhy::IsStateSleep (void) +{ + return m_state->IsStateSleep (); +} + +Time +SpectrumWifiPhy::GetStateDuration (void) +{ + return m_state->GetStateDuration (); +} + +Time +SpectrumWifiPhy::GetDelayUntilIdle (void) +{ + return m_state->GetDelayUntilIdle (); +} + +Time +SpectrumWifiPhy::GetLastRxStartTime (void) const +{ + return m_state->GetLastRxStartTime (); +} + +double +SpectrumWifiPhy::DbToRatio (double dB) const +{ + double ratio = std::pow (10.0, dB / 10.0); + return ratio; +} + +double +SpectrumWifiPhy::DbmToW (double dBm) const +{ + double mW = std::pow (10.0, dBm / 10.0); + return mW / 1000.0; +} + +double +SpectrumWifiPhy::WToDbm (double w) const +{ + return 10.0 * std::log10 (w * 1000.0); +} + +double +SpectrumWifiPhy::RatioToDb (double ratio) const +{ + return 10.0 * std::log10 (ratio); +} + +double +SpectrumWifiPhy::GetEdThresholdW (void) const +{ + return m_edThresholdW; +} + +double +SpectrumWifiPhy::GetPowerDbm (uint8_t power) const +{ + NS_ASSERT (m_txPowerBaseDbm <= m_txPowerEndDbm); + NS_ASSERT (m_nTxPower > 0); + double dbm; + if (m_nTxPower > 1) + { + dbm = m_txPowerBaseDbm + power * (m_txPowerEndDbm - m_txPowerBaseDbm) / (m_nTxPower - 1); + } + else + { + NS_ASSERT_MSG (m_txPowerBaseDbm == m_txPowerEndDbm, "cannot have TxPowerEnd != TxPowerStart with TxPowerLevels == 1"); + dbm = m_txPowerBaseDbm; + } + return dbm; +} + +void +SpectrumWifiPhy::EndReceive (Ptr packet, enum WifiPreamble preamble, enum mpduType mpdutype, Ptr event) +{ + NS_LOG_FUNCTION (this << packet << event); + NS_ASSERT (IsStateRx ()); + NS_ASSERT (event->GetEndTime () == Simulator::Now ()); + + struct InterferenceHelper::SnrPer snrPer; + snrPer = m_interference.CalculatePlcpPayloadSnrPer (event); + m_interference.NotifyRxEnd (); + bool rxSucceeded; + + if (m_plcpSuccess == true) + { + NS_LOG_DEBUG ("mode=" << (event->GetPayloadMode ().GetDataRate (event->GetTxVector ())) << + ", snr(dB)=" << RatioToDb (snrPer.snr) << ", per=" << snrPer.per << ", size=" << packet->GetSize ()); + + if (m_random->GetValue () > snrPer.per) + { + NotifyRxEnd (packet); + uint32_t dataRate500KbpsUnits; + if ((event->GetPayloadMode ().GetModulationClass () == WIFI_MOD_CLASS_HT) || (event->GetPayloadMode ().GetModulationClass () == WIFI_MOD_CLASS_VHT)) + { + dataRate500KbpsUnits = 128 + event->GetPayloadMode ().GetMcsValue (); + } + else + { + dataRate500KbpsUnits = event->GetPayloadMode ().GetDataRate (event->GetTxVector ().GetChannelWidth (), event->GetTxVector ().IsShortGuardInterval (), 1) * event->GetTxVector ().GetNss () / 500000; + } + struct signalNoiseDbm signalNoise; + signalNoise.signal = RatioToDb (event->GetRxPowerW ()) + 30; + signalNoise.noise = RatioToDb (event->GetRxPowerW () / snrPer.snr) - GetRxNoiseFigure () + 30; + struct mpduInfo aMpdu; + aMpdu.type = mpdutype; + aMpdu.mpduRefNumber = m_rxMpduReferenceNumber; + NotifyMonitorSniffRx (packet, (uint16_t) GetFrequency (), GetChannelNumber (), dataRate500KbpsUnits, event->GetPreambleType (), event->GetTxVector (), aMpdu, signalNoise); + m_state->SwitchFromRxEndOk (packet, snrPer.snr, event->GetTxVector (), event->GetPreambleType ()); + rxSucceeded = true; + } + else + { + /* failure. */ + NotifyRxDrop (packet); + m_state->SwitchFromRxEndError (packet, snrPer.snr); + rxSucceeded = false; + } + if (!m_rxCallback.IsNull ()) + { + m_rxCallback (rxSucceeded); + } + } + else + { + m_state->SwitchFromRxEndError (packet, snrPer.snr); + if (!m_rxCallback.IsNull ()) + { + m_rxCallback (false); + } + } + + if (preamble == WIFI_PREAMBLE_NONE && mpdutype == LAST_MPDU_IN_AGGREGATE) + { + m_plcpSuccess = false; + } + +} + +int64_t +SpectrumWifiPhy::AssignStreams (int64_t stream) +{ + NS_LOG_FUNCTION (this << stream); + m_random->SetStream (stream); + return 1; +} + +void +SpectrumWifiPhy::SetNumberOfTransmitAntennas (uint32_t tx) +{ + m_numberOfTransmitters = tx; + ConfigureHtDeviceMcsSet (); +} + +void +SpectrumWifiPhy::SetNumberOfReceiveAntennas (uint32_t rx) +{ + m_numberOfReceivers = rx; +} + +void +SpectrumWifiPhy::SetLdpc (bool Ldpc) +{ + m_ldpc = Ldpc; +} + +void +SpectrumWifiPhy::SetStbc (bool stbc) +{ + m_stbc = stbc; +} + +void +SpectrumWifiPhy::SetGreenfield (bool greenfield) +{ + m_greenfield = greenfield; +} + +bool +SpectrumWifiPhy::GetGuardInterval (void) const +{ + return m_guardInterval; +} + +void +SpectrumWifiPhy::SetGuardInterval (bool guardInterval) +{ + m_guardInterval = guardInterval; +} + +uint32_t +SpectrumWifiPhy::GetNumberOfTransmitAntennas (void) const +{ + return m_numberOfTransmitters; +} + +uint32_t +SpectrumWifiPhy::GetNumberOfReceiveAntennas (void) const +{ + return m_numberOfReceivers; +} + +bool +SpectrumWifiPhy::GetLdpc (void) const +{ + return m_ldpc; +} + +bool +SpectrumWifiPhy::GetStbc (void) const +{ + return m_stbc; +} + +bool +SpectrumWifiPhy::GetGreenfield (void) const +{ + return m_greenfield; +} + +bool +SpectrumWifiPhy::GetShortPlcpPreambleSupported (void) const +{ + return m_shortPreamble; +} + +void +SpectrumWifiPhy::SetShortPlcpPreambleSupported (bool enable) +{ + m_shortPreamble = enable; +} + +uint8_t +SpectrumWifiPhy::GetSupportedRxSpatialStreams (void) const +{ + return (static_cast (GetNumberOfReceiveAntennas ())); +} + +uint8_t +SpectrumWifiPhy::GetSupportedTxSpatialStreams (void) const +{ + return (static_cast (GetNumberOfTransmitAntennas ())); +} + +uint32_t +SpectrumWifiPhy::GetNBssMembershipSelectors (void) const +{ + return m_bssMembershipSelectorSet.size (); +} + +uint32_t +SpectrumWifiPhy::GetBssMembershipSelector (uint32_t selector) const +{ + return m_bssMembershipSelectorSet[selector]; +} + +WifiModeList +SpectrumWifiPhy::GetMembershipSelectorModes (uint32_t selector) +{ + uint32_t id = GetBssMembershipSelector (selector); + WifiModeList supportedmodes; + if (id == HT_PHY || id == VHT_PHY) + { + //mandatory MCS 0 to 7 + supportedmodes.push_back (WifiPhy::GetHtMcs0 ()); + supportedmodes.push_back (WifiPhy::GetHtMcs1 ()); + supportedmodes.push_back (WifiPhy::GetHtMcs2 ()); + supportedmodes.push_back (WifiPhy::GetHtMcs3 ()); + supportedmodes.push_back (WifiPhy::GetHtMcs4 ()); + supportedmodes.push_back (WifiPhy::GetHtMcs5 ()); + supportedmodes.push_back (WifiPhy::GetHtMcs6 ()); + supportedmodes.push_back (WifiPhy::GetHtMcs7 ()); + } + if (id == VHT_PHY) + { + //mandatory MCS 0 to 9 + supportedmodes.push_back (WifiPhy::GetVhtMcs0 ()); + supportedmodes.push_back (WifiPhy::GetVhtMcs1 ()); + supportedmodes.push_back (WifiPhy::GetVhtMcs2 ()); + supportedmodes.push_back (WifiPhy::GetVhtMcs3 ()); + supportedmodes.push_back (WifiPhy::GetVhtMcs4 ()); + supportedmodes.push_back (WifiPhy::GetVhtMcs5 ()); + supportedmodes.push_back (WifiPhy::GetVhtMcs6 ()); + supportedmodes.push_back (WifiPhy::GetVhtMcs7 ()); + supportedmodes.push_back (WifiPhy::GetVhtMcs8 ()); + supportedmodes.push_back (WifiPhy::GetVhtMcs9 ()); + } + return supportedmodes; +} + +uint8_t +SpectrumWifiPhy::GetNMcs (void) const +{ + return m_deviceMcsSet.size (); +} + +WifiMode +SpectrumWifiPhy::GetMcs (uint8_t mcs) const +{ + return m_deviceMcsSet[mcs]; +} + +} //namespace ns3 diff --git a/src/wifi/model/spectrum-wifi-phy.h b/src/wifi/model/spectrum-wifi-phy.h new file mode 100644 index 00000000000..aef684984e3 --- /dev/null +++ b/src/wifi/model/spectrum-wifi-phy.h @@ -0,0 +1,685 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2005,2006 INRIA + * + * 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 + * + * Authors: Mathieu Lacage + * Ghada Badawy + * Sébastien Deronne + * + * Ported from yans-wifi-phy.h by several contributors starting + * with Nicola Baldo and Dean Armstrong + */ + +#ifndef SPECTRUM_WIFI_PHY_H +#define SPECTRUM_WIFI_PHY_H + +#include +#include "ns3/callback.h" +#include "ns3/event-id.h" +#include "ns3/packet.h" +#include "ns3/object.h" +#include "ns3/traced-callback.h" +#include "ns3/nstime.h" +#include "ns3/ptr.h" +#include "ns3/random-variable-stream.h" +#include "ns3/mobility-model.h" +#include "wifi-phy.h" +#include "wifi-mode.h" +#include "wifi-preamble.h" +#include "wifi-phy-standard.h" +#include "interference-helper.h" + +#include "wifi-spectrum-phy-interface.h" +#include "ns3/spectrum-channel.h" +#include "ns3/spectrum-interference.h" + +namespace ns3 { + +#define VHT_PHY 126 +#define HT_PHY 127 + +class WifiPhyStateHelper; +class AntennaModel; + +/** + * \brief 802.11 PHY layer model + * \ingroup wifi + * + * This PHY implements a spectrum-aware enhancement of the 802.11 SpectrumWifiPhy + * model. + * + * This PHY model depends on a channel loss and delay + * model as provided by the ns3::SpectrumPropagationLossModel + * and ns3::PropagationDelayModel classes. + * + */ +class SpectrumWifiPhy : public WifiPhy +{ +public: + static TypeId GetTypeId (void); + + SpectrumWifiPhy (); + virtual ~SpectrumWifiPhy (); + + /** + * Set the SpectrumChannel this SpectrumWifiPhy is to be connected to. + * + * \param channel the SpectrumChannel this SpectrumWifiPhy is to be connected to + */ + void SetChannel (Ptr channel); + /** + * \return the required time for channel switch operation of this WifiPhy + */ + Time GetChannelSwitchDelay (void) const; + /** + * Add a channel number to the list of operational channels. This method + * is used to support scanning for strongest base station. + * + * \param channelNumber the channel number to add + */ + void AddOperationalChannel (uint16_t channelNumber); + /** + * Return a list of channels to which it may be possible to roam + * By default, this method will return the current channel number followed + * by any other channel numbers that have been added. + * + * \return vector of channel numbers to which it may be possible to roam + */ + std::vector GetOperationalChannelList (void) const; + /** + * Clear the list of operational channels. + */ + void ClearOperationalChannelList (void); + + /** + * Starting receiving the plcp of a packet (i.e. the first bit of the preamble has arrived). + * + * \param packet the arriving packet + * \param rxPowerDbm the receive power in dBm + * \param txVector the TXVECTOR of the arriving packet + * \param preamble the preamble of the arriving packet + * \param mpdutype the type of the MPDU as defined in WifiPhy::mpduType. + * \param rxDuration the duration needed for the reception of the packet + */ + void StartReceivePreambleAndHeader (Ptr packet, + double rxPowerDbm, + WifiTxVector txVector, + WifiPreamble preamble, + enum mpduType mpdutype, + Time rxDuration); + /** + * Starting receiving the payload of a packet (i.e. the first bit of the packet has arrived). + * + * \param packet the arriving packet + * \param txVector the TXVECTOR of the arriving packet + * \param preamble the preamble of the arriving packet + * \param mpdutype the type of the MPDU as defined in WifiPhy::mpduType. + * \param event the corresponding event of the first time the packet arrives + */ + void StartReceivePacket (Ptr packet, + WifiTxVector txVector, + WifiPreamble preamble, + enum mpduType mpdutype, + Ptr event); + + /** + * Sets the RX loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver. + * + * \param noiseFigureDb noise figure in dB + */ + void SetRxNoiseFigure (double noiseFigureDb); + /** + * Sets the minimum available transmission power level (dBm). + * + * \param start the minimum transmission power level (dBm) + */ + void SetTxPowerStart (double start); + /** + * Sets the maximum available transmission power level (dBm). + * + * \param end the maximum transmission power level (dBm) + */ + void SetTxPowerEnd (double end); + /** + * Sets the number of transmission power levels available between the + * minimum level and the maximum level. Transmission power levels are + * equally separated (in dBm) with the minimum and the maximum included. + * + * \param n the number of available levels + */ + void SetNTxPower (uint32_t n); + /** + * Sets the transmission gain (dB). + * + * \param gain the transmission gain in dB + */ + void SetTxGain (double gain); + /** + * Sets the reception gain (dB). + * + * \param gain the reception gain in dB + */ + void SetRxGain (double gain); + /** + * Sets the energy detection threshold (dBm). + * The energy of a received signal should be higher than + * this threshold (dbm) to allow the PHY layer to detect the signal. + * + * \param threshold the energy detction threshold in dBm + */ + void SetEdThreshold (double threshold); + /** + * Sets the CCA threshold (dBm). The energy of a received signal + * should be higher than this threshold to allow the PHY + * layer to declare CCA BUSY state. + * + * \param threshold the CCA threshold in dBm + */ + void SetCcaMode1Threshold (double threshold); + /** + * Sets the error rate model. + * + * \param rate the error rate model + */ + void SetErrorRateModel (Ptr rate); + /** + * Sets the device this PHY is associated with. + * + * \param device the device this PHY is associated with + */ + void SetDevice (Ptr device); + /** + * \brief assign a mobility model to this device + * + * This method allows a user to specify a mobility model that should be + * associated with this physical layer. Calling this method is optional + * and only necessary if the user wants to override the mobility model + * that is aggregated to the node. + * + * \param mobility the mobility model this PHY is associated with + */ + void SetMobility (Ptr mobility); + /** + * Return the RX noise figure (dBm). + * + * \return the RX noise figure in dBm + */ + double GetRxNoiseFigure (void) const; + /** + * Return the transmission gain (dB). + * + * \return the transmission gain in dB + */ + double GetTxGain (void) const; + /** + * Return the reception gain (dB). + * + * \return the reception gain in dB + */ + double GetRxGain (void) const; + /** + * Return the energy detection threshold (dBm). + * + * \return the energy detection threshold in dBm + */ + double GetEdThreshold (void) const; + /** + * Return the CCA threshold (dBm). + * + * \return the CCA threshold in dBm + */ + double GetCcaMode1Threshold (void) const; + /** + * Return the error rate model this PHY is using. + * + * \return the error rate model this PHY is using + */ + Ptr GetErrorRateModel (void) const; + /** + * Return the device this PHY is associated with + * + * \return the device this PHY is associated with + */ + Ptr GetDevice (void) const; + /** + * Return the mobility model this PHY is associated with. + * This method will return either the mobility model that has been + * explicitly set by a call to SpectrumWifiPhy::SetMobility(), or else + * will return the mobility model (if any) that has been aggregated + * to the node. + * + * \return the mobility model this PHY is associated with + */ + Ptr GetMobility (void); + /** + * Return the minimum available transmission power level (dBm). + * \return the minimum available transmission power level (dBm) + */ + virtual double GetTxPowerStart (void) const; + /** + * Return the maximum available transmission power level (dBm). + * \return the maximum available transmission power level (dBm) + */ + virtual double GetTxPowerEnd (void) const; + /** + * Return the number of available transmission power levels. + * + * \return the number of available transmission power levels + */ + virtual uint32_t GetNTxPower (void) const; + + /** + * Input method for delivering a signal from the spectrum channel + * and low-level Phy interface to this SpectrumWifiPhy instance. + * + * \param rxParams Input signal parameters + */ + void StartRx (Ptr rxParams); + /** + * Method to encapsulate the creation of the WifiSpectrumPhyInterface + * object (used to bind the WifiSpectrumPhy to a SpectrumChannel) and + * to link it to this SpectrumWifiPhy instance + * + * \param device pointer to the NetDevice object including this new object + */ + void CreateWifiSpectrumPhyInterface (Ptr device); + /** + * \return pointer to WifiSpectrumPhyInterface associated with this Phy + */ + Ptr GetSpectrumPhy (void) const; + /** + * \param antenna an AntennaModel to include in the transmitted + * SpectrumSignalParameters (in case any objects downstream of the + * SpectrumWifiPhy wish to adjust signal properties based on the + * transmitted antenna model. This antenna is also used when + * the underlying WifiSpectrumPhyInterface::GetRxAntenna() method + * is called. + * + * Note: this method may be split into separate SetTx and SetRx + * methods in the future if the modelling need for this arises + */ + void SetAntenna (Ptr antenna); + /** + * Get the antenna model used for reception + * + * \return the AntennaModel used for reception + */ + Ptr GetRxAntenna (void) const; + /** + * \return returns the SpectrumModel that this SpectrumPhy expects to be used + * for all SpectrumValues that are passed to StartRx. If 0 is + * returned, it means that any model will be accepted. + */ + Ptr GetRxSpectrumModel () const; + /** + * Callback invoked at the end of a frame reception, to notify whether + * the frame was received successfully (true) or not (false) + */ + typedef Callback RxCallback; + /** + * Set the packet received callback (invoked at the end of a frame + * reception), to notify whether the frame was received successfully + * or not. + * + * \param callback the function to hook to the callback + */ + void SetPacketReceivedCallback (RxCallback callback); + + /** + * Callback invoked when the Phy model starts to process a signal + * + * \param signalType Whether signal is WiFi (true) or foreign (false) + * \param senderNodeId Node Id of the sender of the signal + * \param rxPower received signal power (dBm) + * \param duration Signal duration + */ + typedef void (* SignalArrivalCallback) (bool signalType, uint32_t senderNodeId, double rxPower, Time duration); + + virtual void SetReceiveOkCallback (WifiPhy::RxOkCallback callback); + virtual void SetReceiveErrorCallback (WifiPhy::RxErrorCallback callback); + virtual void SendPacket (Ptr packet, WifiTxVector txVector, enum WifiPreamble preamble); + virtual void SendPacket (Ptr packet, WifiTxVector txVector, enum WifiPreamble preamble, enum mpduType mpdutype); + virtual void RegisterListener (WifiPhyListener *listener); + virtual void UnregisterListener (WifiPhyListener *listener); + virtual void SetSleepMode (void); + virtual void ResumeFromSleep (void); + virtual bool IsStateCcaBusy (void); + virtual bool IsStateIdle (void); + virtual bool IsStateBusy (void); + virtual bool IsStateRx (void); + virtual bool IsStateTx (void); + virtual bool IsStateSwitching (void); + virtual bool IsStateSleep (void); + virtual Time GetStateDuration (void); + virtual Time GetDelayUntilIdle (void); + virtual Time GetLastRxStartTime (void) const; + virtual uint32_t GetNModes (void) const; + virtual WifiMode GetMode (uint32_t mode) const; + virtual bool IsModeSupported (WifiMode mode) const; + virtual bool IsMcsSupported (WifiMode mcs); + virtual double CalculateSnr (WifiTxVector txVector, double ber) const; + virtual Ptr GetChannel (void) const; + + virtual void ConfigureStandard (enum WifiPhyStandard standard); + + /** + * Assign a fixed random variable stream number to the random variables + * used by this model. Return the number of streams (possibly zero) that + * have been assigned. + * + * \param stream first stream index to use + * \return the number of stream indices assigned by this model + */ + int64_t AssignStreams (int64_t stream); + + /** + * \param tx the number of transmitters on this node. + */ + virtual void SetNumberOfTransmitAntennas (uint32_t tx); + /** + * \return the number of transmitters on this node. + */ + virtual uint32_t GetNumberOfTransmitAntennas (void) const; + /** + * \param rx the number of receivers on this node. + */ + virtual void SetNumberOfReceiveAntennas (uint32_t rx); + /** + * \return the number of receivers on this node. + */ + virtual uint32_t GetNumberOfReceiveAntennas (void) const; + /** + * Enable or disable short/long guard interval. + * + * \param guardInterval Enable or disable guard interval + */ + virtual void SetGuardInterval (bool guardInterval); + /** + * Return whether guard interval is being used. + * + * \return true if guard interval is being used, false otherwise + */ + virtual bool GetGuardInterval (void) const; + /** + * Enable or disable LDPC. + * \param ldpc Enable or disable LDPC + */ + virtual void SetLdpc (bool ldpc); + /** + * Return if LDPC is supported. + * + * \return true if LDPC is supported, false otherwise + */ + virtual bool GetLdpc (void) const; + /** + * Enable or disable STBC. + * + * \param stbc Enable or disable STBC + */ + virtual void SetStbc (bool stbc); + /** + * Return whether STBC is supported. + * + * \return true if STBC is supported, false otherwise + */ + virtual bool GetStbc (void) const; + /** + * Enable or disable Greenfield support. + * + * \param greenfield Enable or disable Greenfield + */ + virtual void SetGreenfield (bool greenfield); + /** + * Return whether Greenfield is supported. + * + * \return true if Greenfield is supported, false otherwise + */ + virtual bool GetGreenfield (void) const; + /** + * Enable or disable short PLCP preamble. + * + * \param preamble sets whether short PLCP preamble is supported or not + */ + virtual void SetShortPlcpPreambleSupported (bool preamble); + /** + * Return whether short PLCP preamble is supported. + * + * \returns if short PLCP preamble is supported or not + */ + virtual bool GetShortPlcpPreambleSupported (void) const; + + virtual uint8_t GetSupportedRxSpatialStreams (void) const; + virtual uint8_t GetSupportedTxSpatialStreams (void) const; + virtual uint32_t GetNBssMembershipSelectors (void) const; + virtual uint32_t GetBssMembershipSelector (uint32_t selector) const; + virtual WifiModeList GetMembershipSelectorModes (uint32_t selector); + + /** + * \return the number of MCS supported by this phy + */ + virtual uint8_t GetNMcs (void) const; + virtual WifiMode GetMcs (uint8_t mcs) const; + +protected: + // Inherited + virtual void DoDispose (void); + virtual void DoInitialize (void); + virtual bool DoChannelSwitch (uint16_t id); + virtual bool DoFrequencySwitch (uint32_t frequency); + +private: + /** + * Configure SpectrumWifiPhy with appropriate channel frequency and + * supported rates for 802.11a standard. + */ + void Configure80211a (void); + /** + * Configure SpectrumWifiPhy with appropriate channel frequency and + * supported rates for 802.11b standard. + */ + void Configure80211b (void); + /** + * Configure SpectrumWifiPhy with appropriate channel frequency and + * supported rates for 802.11g standard. + */ + void Configure80211g (void); + /** + * Configure SpectrumWifiPhy with appropriate channel frequency and + * supported rates for 802.11a standard with 10MHz channel spacing. + */ + void Configure80211_10Mhz (void); + /** + * Configure SpectrumWifiPhy with appropriate channel frequency and + * supported rates for 802.11a standard with 5MHz channel spacing. + */ + void Configure80211_5Mhz (); + void ConfigureHolland (void); + /** + * Configure SpectrumWifiPhy with appropriate channel frequency and + * supported rates for 802.11n standard. + */ + void Configure80211n (void); + /** + * Configure SpectrumWifiPhy with appropriate channel frequency and + * supported rates for 802.11ac standard. + */ + void Configure80211ac (void); + /** + * Configure the device Mcs set with the appropriate HtMcs modes for + * the number of available transmit spatial streams + */ + void ConfigureHtDeviceMcsSet (void); + /** + * Return the energy detection threshold. + * + * \return the energy detection threshold. + */ + double GetEdThresholdW (void) const; + /** + * Convert from dBm to Watts. + * + * \param dbm the power in dBm + * + * \return the equivalent Watts for the given dBm + */ + double DbmToW (double dbm) const; + /** + * Convert from dB to ratio. + * + * \param db + * + * \return ratio + */ + double DbToRatio (double db) const; + /** + * Convert from Watts to dBm. + * + * \param w the power in Watts + * + * \return the equivalent dBm for the given Watts + */ + double WToDbm (double w) const; + /** + * Convert from ratio to dB. + * + * \param ratio + * + * \return dB + */ + double RatioToDb (double ratio) const; + /** + * Get the power of the given power level in dBm. + * In SpectrumWifiPhy implementation, the power levels are equally spaced (in dBm). + * + * \param power the power level + * + * \return the transmission power in dBm at the given power level + */ + double GetPowerDbm (uint8_t power) const; + /** + * The last bit of the packet has arrived. + * + * \param packet the packet that the last bit has arrived + * \param preamble the preamble of the arriving packet + * \param mpdutype the type of the MPDU as defined in WifiPhy::mpduType. + * \param event the corresponding event of the first time the packet arrives + */ + void EndReceive (Ptr packet, enum WifiPreamble preamble, enum mpduType mpdutype, Ptr event); + + /** + * Check if Phy state should move to CCA busy state based on current + * state of interference tracker. In this model, CCA becomes busy when + * the aggregation of all signals as tracked by the InterferenceHelper + * class is higher than the CcaMode1Threshold + */ + void SwitchMaybeToCcaBusy (void); + + /** + * \param centerFrequency center frequency (MHz) + * \param channelWidth channel width (MHz) of the channel + * \param txPowerW power in W to spread across the bands + * \return Ptr to SpectrumValue + * + * This is a helper function to create the right Tx PSD corresponding + * to the standard in use. + */ + Ptr GetTxPowerSpectralDensity (uint32_t centerFrequency, uint32_t channelWidth, double txPowerW) const; + + double m_edThresholdW; //!< Energy detection threshold in watts + double m_ccaMode1ThresholdW; //!< Clear channel assessment (CCA) threshold in watts + double m_txGainDb; //!< Transmission gain (dB) + double m_rxGainDb; //!< Reception gain (dB) + double m_txPowerBaseDbm; //!< Minimum transmission power (dBm) + double m_txPowerEndDbm; //!< Maximum transmission power (dBm) + uint32_t m_nTxPower; //!< Number of available transmission power levels + + Ptr m_channel; //!< SpectrumChannel that this SpectrumWifiPhy is connected to + std::vector m_operationalChannelList; //!< List of possible channels + Ptr m_device; //!< Pointer to the device + Ptr m_mobility; //!< Pointer to the mobility model + + uint32_t m_numberOfTransmitters; //!< Number of transmitters + uint32_t m_numberOfReceivers; //!< Number of receivers + bool m_ldpc; //!< Flag if LDPC is used + bool m_stbc; //!< Flag if STBC is used + bool m_greenfield; //!< Flag if GreenField format is supported + bool m_guardInterval; //!< Flag if short guard interval is used + bool m_shortPreamble; //!< Flag if short PLCP preamble is supported + + /** + * This vector holds the set of transmission modes that this + * WifiPhy(-derived class) can support. In conversation we call this + * the DeviceRateSet (not a term you'll find in the standard), and + * it is a superset of standard-defined parameters such as the + * OperationalRateSet, and the BSSBasicRateSet (which, themselves, + * have a superset/subset relationship). + * + * Mandatory rates relevant to this WifiPhy can be found by + * iterating over this vector looking for WifiMode objects for which + * WifiMode::IsMandatory() is true. + * + * A quick note is appropriate here (well, here is as good a place + * as any I can find)... + * + * In the standard there is no text that explicitly precludes + * production of a device that does not support some rates that are + * mandatory (according to the standard) for PHYs that the device + * happens to fully or partially support. + * + * This approach is taken by some devices which choose to only support, + * for example, 6 and 9 Mbps ERP-OFDM rates for cost and power + * consumption reasons (i.e., these devices don't need to be designed + * for and waste current on the increased linearity requirement of + * higher-order constellations when 6 and 9 Mbps more than meet their + * data requirements). The wording of the standard allows such devices + * to have an OperationalRateSet which includes 6 and 9 Mbps ERP-OFDM + * rates, despite 12 and 24 Mbps being "mandatory" rates for the + * ERP-OFDM PHY. + * + * Now this doesn't actually have any impact on code, yet. It is, + * however, something that we need to keep in mind for the + * future. Basically, the key point is that we can't be making + * assumptions like "the Operational Rate Set will contain all the + * mandatory rates". + */ + WifiModeList m_deviceRateSet; + WifiModeList m_deviceMcsSet; + + std::vector m_bssMembershipSelectorSet; + EventId m_endRxEvent; + EventId m_endPlcpRxEvent; + + Ptr m_random; //!< Provides uniform random variables. + double m_channelStartingFrequency; //!< Standard-dependent center frequency of 0-th channel in MHz + Ptr m_state; //!< Pointer to WifiPhyStateHelper + InterferenceHelper m_interference; //!< Pointer to InterferenceHelper + Ptr m_wifiSpectrumPhyInterface; + Ptr m_antenna; + mutable Ptr m_rxSpectrumModel; + RxCallback m_rxCallback; + Time m_channelSwitchDelay; //!< Time required to switch between channel + uint16_t m_mpdusNum; //!< carries the number of expected mpdus that are part of an A-MPDU + bool m_plcpSuccess; //!< Flag if the PLCP of the packet or the first MPDU in an A-MPDU has been received + uint32_t m_txMpduReferenceNumber; //!< A-MPDU reference number to identify all transmitted subframes belonging to the same received A-MPDU + uint32_t m_rxMpduReferenceNumber; //!< A-MPDU reference number to identify all received subframes belonging to the same received A-MPDU + bool m_disableWifiReception; //!< forces this Phy to fail to sync on any signal + TracedCallback m_signalCb; + +}; + +} //namespace ns3 + +#endif /* SPECTRUM_WIFI_PHY_H */ diff --git a/src/wifi/model/wifi-mode.h b/src/wifi/model/wifi-mode.h index 29f272e7990..c9d0cbf489c 100644 --- a/src/wifi/model/wifi-mode.h +++ b/src/wifi/model/wifi-mode.h @@ -209,6 +209,7 @@ class WifiMode private: friend class WifiModeFactory; + friend class WifiPhyTag; // access the UID-based constructor /** * Create a WifiMode from a given unique ID. * diff --git a/src/wifi/model/wifi-phy-tag.cc b/src/wifi/model/wifi-phy-tag.cc new file mode 100644 index 00000000000..5d50255fbfb --- /dev/null +++ b/src/wifi/model/wifi-phy-tag.cc @@ -0,0 +1,107 @@ +/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2009 CTTC + * + * 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: Nicola Baldo + */ +#include + +namespace ns3 { + +TypeId +WifiPhyTag::GetTypeId (void) +{ + static TypeId tid = TypeId ("ns3::WifiPhyTag") + .SetParent () + ; + return tid; +} + +TypeId +WifiPhyTag::GetInstanceTypeId (void) const +{ + return GetTypeId (); +} + +uint32_t +WifiPhyTag::GetSerializedSize (void) const +{ + return (4 + (6 * 1) + 4 + 2); +} + +void +WifiPhyTag::Serialize (TagBuffer i) const +{ + i.WriteU32 (m_wifiTxVector.GetMode ().GetUid ()); + i.WriteU8 (m_wifiTxVector.GetTxPowerLevel ()); + i.WriteU8 (m_wifiTxVector.GetRetries ()); + i.WriteU8 (m_wifiTxVector.IsShortGuardInterval ()); + i.WriteU8 (m_wifiTxVector.GetNss ()); + i.WriteU8 (m_wifiTxVector.GetNess ()); + i.WriteU8 (m_wifiTxVector.IsStbc ()); + i.WriteU32 (m_wifiPreamble); + i.WriteU16 (m_mpduType); +} + +void +WifiPhyTag::Deserialize (TagBuffer i) +{ + m_wifiTxVector.SetMode (WifiMode (i.ReadU32 ())); + m_wifiTxVector.SetTxPowerLevel (i.ReadU8 ()); + m_wifiTxVector.SetRetries (i.ReadU8 ()); + m_wifiTxVector.SetShortGuardInterval (i.ReadU8 ()); + m_wifiTxVector.SetNss (i.ReadU8 ()); + m_wifiTxVector.SetNess (i.ReadU8 ()); + m_wifiTxVector.SetStbc (i.ReadU8 ()); + m_wifiPreamble = i.ReadU32 (); + m_mpduType = static_cast (i.ReadU16 ()); +} +void +WifiPhyTag::Print (std::ostream &os) const +{ + os << m_wifiTxVector << " " << (m_wifiPreamble ? "SP " : "LP ") << m_mpduType; +} + +WifiPhyTag::WifiPhyTag () +{ +} + +WifiPhyTag::WifiPhyTag (WifiTxVector txVector, WifiPreamble preamble, enum mpduType mpdutype) + : m_wifiTxVector (txVector), + m_wifiPreamble (preamble), + m_mpduType (mpdutype) +{ +} + +WifiTxVector +WifiPhyTag::GetWifiTxVector (void) const +{ + return m_wifiTxVector; +} + +WifiPreamble +WifiPhyTag::GetWifiPreamble (void) const +{ + return ((enum WifiPreamble) m_wifiPreamble); +} + +enum mpduType +WifiPhyTag::GetMpduType (void) const +{ + return m_mpduType; +} + +} // namespace ns3 diff --git a/src/wifi/model/wifi-phy-tag.h b/src/wifi/model/wifi-phy-tag.h new file mode 100644 index 00000000000..bb363fd0b36 --- /dev/null +++ b/src/wifi/model/wifi-phy-tag.h @@ -0,0 +1,83 @@ +/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2009 CTTC + * + * 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: Nicola Baldo + */ +#ifndef WIFI_PHY_TAG_H +#define WIFI_PHY_TAG_H + +#include +#include +#include +#include + +namespace ns3 { + +/** + * \ingroup wifi + * + * Tag for WifiTxVector and WifiPreamble information to be embedded in outgoing + * transmissions as a PacketTag + */ +class WifiPhyTag : public Tag +{ +public: + static TypeId GetTypeId (void); + virtual TypeId GetInstanceTypeId (void) const; + + /** + * Constructor + */ + WifiPhyTag (); + /** + * Constructor + * \param txVector the WifiTxVector + * \param preamble the WifiPreamble + * \param mpduType the mpduType + */ + WifiPhyTag (WifiTxVector txVector, WifiPreamble preamble, enum mpduType mpdutype); + /** + * Getter for WifiTxVector parameter + * \return the WifiTxVector + */ + WifiTxVector GetWifiTxVector (void) const; + /** + * Getter for WifiPreamble parameter + * \return preamble the WifiPreamble + */ + WifiPreamble GetWifiPreamble (void) const; + /** + * Getter for mpduType parameter + * \return mpduType the mpduType + */ + enum mpduType GetMpduType (void) const; + + // From class Tag + virtual uint32_t GetSerializedSize (void) const; + virtual void Serialize (TagBuffer i) const; + virtual void Deserialize (TagBuffer i); + virtual void Print (std::ostream &os) const; + +private: + WifiTxVector m_wifiTxVector; + int32_t m_wifiPreamble; + enum mpduType m_mpduType; +}; + +} // namespace ns3 + +#endif /* WIFI_PHY_TAG_H */ diff --git a/src/wifi/model/wifi-phy.cc b/src/wifi/model/wifi-phy.cc index 6ee4fe0ec1c..e0b1241c86b 100644 --- a/src/wifi/model/wifi-phy.cc +++ b/src/wifi/model/wifi-phy.cc @@ -474,7 +474,7 @@ WifiPhy::SetFrequency (uint32_t frequency) m_channelCenterFrequency = frequency; m_channelNumber = nch; } - else + else { NS_LOG_DEBUG ("Suppressing reassignment of frequency"); } diff --git a/src/wifi/model/wifi-spectrum-phy-interface.cc b/src/wifi/model/wifi-spectrum-phy-interface.cc new file mode 100644 index 00000000000..192cb96b4c7 --- /dev/null +++ b/src/wifi/model/wifi-spectrum-phy-interface.cc @@ -0,0 +1,117 @@ +/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2009 CTTC + * + * 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: Nicola Baldo + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wifi-spectrum-phy-interface.h" +#include "spectrum-wifi-phy.h" + +NS_LOG_COMPONENT_DEFINE ("WifiSpectrumPhyInterface"); + +namespace ns3 { + +NS_OBJECT_ENSURE_REGISTERED (WifiSpectrumPhyInterface); + +TypeId +WifiSpectrumPhyInterface::GetTypeId (void) +{ + static TypeId tid = TypeId ("ns3::WifiSpectrumPhyInterface") + .SetParent (); + return tid; +} + +WifiSpectrumPhyInterface::WifiSpectrumPhyInterface () +{ + NS_LOG_FUNCTION (this); +} + +void +WifiSpectrumPhyInterface::DoDispose (void) +{ + NS_LOG_FUNCTION (this); + m_spectrumWifiPhy = 0; +} + +void WifiSpectrumPhyInterface::SetSpectrumWifiPhy (Ptr spectrumWifiPhy) +{ + m_spectrumWifiPhy = spectrumWifiPhy; +} + +Ptr +WifiSpectrumPhyInterface::GetDevice () const +{ + return m_netDevice; +} + +Ptr +WifiSpectrumPhyInterface::GetMobility () +{ + return m_spectrumWifiPhy->GetMobility (); +} + +void +WifiSpectrumPhyInterface::SetDevice (Ptr d) +{ + m_netDevice = d; +} + +void +WifiSpectrumPhyInterface::SetMobility (Ptr m) +{ + m_spectrumWifiPhy->SetMobility (m); +} + +void +WifiSpectrumPhyInterface::SetChannel (Ptr c) +{ + NS_LOG_FUNCTION (this << c); + m_channel = c; +} + +Ptr +WifiSpectrumPhyInterface::GetRxSpectrumModel () const +{ + return m_spectrumWifiPhy->GetRxSpectrumModel (); +} + +Ptr +WifiSpectrumPhyInterface::GetRxAntenna (void) +{ + NS_LOG_FUNCTION (this); + return m_spectrumWifiPhy->GetRxAntenna (); +} + +void +WifiSpectrumPhyInterface::StartRx (Ptr params) +{ + m_spectrumWifiPhy->StartRx (params); +} + + +} //namespace ns3 diff --git a/src/wifi/model/wifi-spectrum-phy-interface.h b/src/wifi/model/wifi-spectrum-phy-interface.h new file mode 100644 index 00000000000..3ad5c7b291e --- /dev/null +++ b/src/wifi/model/wifi-spectrum-phy-interface.h @@ -0,0 +1,72 @@ +/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2009 CTTC + * + * 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: Nicola Baldo + */ +#ifndef WIFI_SPECTRUM_PHY_INTERFACE_H +#define WIFI_SPECTRUM_PHY_INTERFACE_H + +#include +#include +#include + +namespace ns3 { + +class SpectrumWifiPhy; + +/** + * \ingroup wifi + * + * This class is an adaptor between class SpectrumWifiPhy (which inherits + * from WifiPhy) and class SpectrumChannel (which expects objects derived + * from class SpectrumPhy to be connected to it). + * + * The adaptor is used only in the receive direction; in the transmit + * direction, the class SpectrumWifiPhy constructs signal parameters + * and directly accesses the SpectrumChannel + */ +class WifiSpectrumPhyInterface : public SpectrumPhy +{ +public: + static TypeId GetTypeId (void); + WifiSpectrumPhyInterface (); + /** + * Connect SpectrumWifiPhy object + * \param phy SpectrumWifiPhy object to be connected to this object + */ + void SetSpectrumWifiPhy (Ptr phy); + + // Inherited from SpectrumPhy + virtual Ptr GetDevice () const; + virtual void SetDevice (Ptr d); + virtual void SetMobility (Ptr m); + virtual Ptr GetMobility (); + virtual void SetChannel (Ptr c); + virtual Ptr GetRxSpectrumModel () const; + virtual Ptr GetRxAntenna (); + virtual void StartRx (Ptr params); + +private: + virtual void DoDispose (void); + Ptr m_spectrumWifiPhy; + Ptr m_netDevice; + Ptr m_channel; +}; + +} // namespace ns3 + +#endif /* WIFI_SPECTRUM_PHY_INTERFACE_H */ diff --git a/src/wifi/model/wifi-spectrum-signal-parameters.cc b/src/wifi/model/wifi-spectrum-signal-parameters.cc new file mode 100644 index 00000000000..b948881f436 --- /dev/null +++ b/src/wifi/model/wifi-spectrum-signal-parameters.cc @@ -0,0 +1,58 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2011 CTTC + * + * 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: Nicola Baldo + * Modified by Marco Miozzo (add data and ctrl diversity) + */ + +#include +#include +#include +#include "wifi-spectrum-signal-parameters.h" + +namespace ns3 { + +NS_LOG_COMPONENT_DEFINE ("WifiSpectrumSignalParameters"); + +WifiSpectrumSignalParameters::WifiSpectrumSignalParameters () +{ + NS_LOG_FUNCTION (this); +} + +WifiSpectrumSignalParameters::WifiSpectrumSignalParameters (const WifiSpectrumSignalParameters& p) + : SpectrumSignalParameters (p) +{ + NS_LOG_FUNCTION (this << &p); + packet = p.packet; +} + +Ptr +WifiSpectrumSignalParameters::Copy () +{ + NS_LOG_FUNCTION (this); + // Ideally we would use: + // return Copy (*this); + // but for some reason it doesn't work. Another alternative is + // return Copy (this); + // but it causes a double creation of the object, hence it is less efficient. + // The solution below is copied from the implementation of Copy<> (Ptr<>) in ptr.h + Ptr wssp (new WifiSpectrumSignalParameters (*this), false); + return wssp; +} + + +} // namespace ns3 diff --git a/src/wifi/model/wifi-spectrum-signal-parameters.h b/src/wifi/model/wifi-spectrum-signal-parameters.h new file mode 100644 index 00000000000..a523ba185fc --- /dev/null +++ b/src/wifi/model/wifi-spectrum-signal-parameters.h @@ -0,0 +1,60 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2011 CTTC + * + * 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: Nicola Baldo + * Modified by Marco Miozzo (add data and ctrl diversity) + */ + +#ifndef WIFI_SPECTRUM_SIGNAL_PARAMETERS_H +#define WIFI_SPECTRUM_SIGNAL_PARAMETERS_H + +#include + +namespace ns3 { + +class Packet; + +/** + * \ingroup wifi + * + * Signal parameters for wifi + */ +struct WifiSpectrumSignalParameters : public SpectrumSignalParameters +{ + + // inherited from SpectrumSignalParameters + virtual Ptr Copy (); + + /** + * default constructor + */ + WifiSpectrumSignalParameters (); + + /** + * copy constructor + */ + WifiSpectrumSignalParameters (const WifiSpectrumSignalParameters& p); + + /** + * The packet being transmitted with this signal + */ + Ptr packet; +}; + +} // namespace ns3 + +#endif /* WIFI_SPECTRUM_SIGNAL_PARAMETERS_H */ diff --git a/src/wifi/test/spectrum-wifi-phy-test.cc b/src/wifi/test/spectrum-wifi-phy-test.cc new file mode 100644 index 00000000000..d1b62838777 --- /dev/null +++ b/src/wifi/test/spectrum-wifi-phy-test.cc @@ -0,0 +1,261 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2015 University of Washington + * + * 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 + */ + +#include "ns3/test.h" +#include "ns3/packet.h" +#include "ns3/tag.h" +#include "ns3/packet-burst.h" +#include "ns3/spectrum-wifi-helper.h" +#include "ns3/wifi-spectrum-value-helper.h" +#include "ns3/spectrum-wifi-phy.h" +#include "ns3/interference-helper.h" +#include "ns3/nist-error-rate-model.h" +#include "ns3/wifi-mac-header.h" +#include "ns3/wifi-mac-trailer.h" +#include "ns3/wifi-phy-tag.h" +#include "ns3/wifi-phy-standard.h" +#include "ns3/wifi-spectrum-signal-parameters.h" + +using namespace ns3; + +static const uint16_t CHANNEL_NUMBER = 36; +static const uint32_t FREQUENCY = 5180; // MHz +static const uint32_t CHANNEL_WIDTH = 20; // MHz + +class SpectrumWifiPhyBasicTest : public TestCase +{ +public: + SpectrumWifiPhyBasicTest (); + SpectrumWifiPhyBasicTest (std::string name); + virtual ~SpectrumWifiPhyBasicTest (); +protected: + virtual void DoSetup (void); + Ptr m_phy; + Ptr MakeSignal (double txPowerWatts); + void SendSignal (double txPowerWatts); + void SpectrumWifiPhyReceiver (bool rxSucceeded); + uint32_t m_count; +private: + virtual void DoRun (void); +}; + +SpectrumWifiPhyBasicTest::SpectrumWifiPhyBasicTest () + : TestCase ("SpectrumWifiPhy test case receives one packet"), + m_count (0) +{ +} + +SpectrumWifiPhyBasicTest::SpectrumWifiPhyBasicTest (std::string name) + : TestCase (name), + m_count (0) +{ +} + +// Make a Wi-Fi signal to inject directly to the StartRx() method +Ptr +SpectrumWifiPhyBasicTest::MakeSignal (double txPowerWatts) +{ + WifiPreamble preamble; + preamble = WIFI_PREAMBLE_LONG; + WifiMode mode = WifiPhy::GetOfdmRate6Mbps (); + WifiTxVector txVector = WifiTxVector (mode, 0, 0, false, 1, 0, 20000000, false, false); + enum mpduType mpdutype = NORMAL_MPDU; + + Ptr pkt = Create (1000); + WifiMacHeader hdr; + WifiMacTrailer trailer; + + hdr.SetType (WIFI_MAC_QOSDATA); + hdr.SetQosTid (0); + uint32_t size = pkt->GetSize () + hdr.GetSize () + trailer.GetSerializedSize (); + Time txDuration = m_phy->CalculateTxDuration (size, txVector, preamble, m_phy->GetFrequency(), mpdutype, 0); + hdr.SetDuration (txDuration); + + pkt->AddHeader (hdr); + pkt->AddTrailer (trailer); + WifiPhyTag tag (txVector, preamble, mpdutype); + pkt->AddPacketTag (tag); + Ptr txPowerSpectrum = WifiSpectrumValueHelper::CreateOfdmTxPowerSpectralDensity (FREQUENCY, CHANNEL_WIDTH, txPowerWatts); + Ptr txParams = Create (); + txParams->psd = txPowerSpectrum; + txParams->txPhy = 0; + txParams->duration = txDuration; + txParams->packet = pkt; + return txParams; +} + +// Make a Wi-Fi signal to inject directly to the StartRx() method +void +SpectrumWifiPhyBasicTest::SendSignal (double txPowerWatts) +{ + m_phy->StartRx (MakeSignal (txPowerWatts)); +} + +void +SpectrumWifiPhyBasicTest::SpectrumWifiPhyReceiver (bool rxSucceeded) +{ + m_count++; +} + +SpectrumWifiPhyBasicTest::~SpectrumWifiPhyBasicTest () +{ +} + +// Create necessary objects, and inject signals. Test that the expected +// number of packet receptions occur. +void +SpectrumWifiPhyBasicTest::DoSetup (void) +{ + m_phy = CreateObject (); + m_phy->ConfigureStandard (WIFI_PHY_STANDARD_80211n_5GHZ); + Ptr error = CreateObject (); + m_phy->SetErrorRateModel (error); + m_phy->SetChannelNumber (CHANNEL_NUMBER); + m_phy->SetFrequency (FREQUENCY); + m_phy->SetPacketReceivedCallback (MakeCallback (&SpectrumWifiPhyBasicTest::SpectrumWifiPhyReceiver, this)); +} + +// Test that the expected number of packet receptions occur. +void +SpectrumWifiPhyBasicTest::DoRun (void) +{ + double txPowerWatts = 0.010; + // Send packets spaced 1 second apart; all should be received + Simulator::Schedule (Seconds (1), &SpectrumWifiPhyBasicTest::SendSignal, this, txPowerWatts); + Simulator::Schedule (Seconds (2), &SpectrumWifiPhyBasicTest::SendSignal, this, txPowerWatts); + Simulator::Schedule (Seconds (3), &SpectrumWifiPhyBasicTest::SendSignal, this, txPowerWatts); + // Send packets spaced 1 microsecond second apart; only one should be received + Simulator::Schedule (MicroSeconds (4000000), &SpectrumWifiPhyBasicTest::SendSignal, this, txPowerWatts); + Simulator::Schedule (MicroSeconds (4000001), &SpectrumWifiPhyBasicTest::SendSignal, this, txPowerWatts); + Simulator::Run (); + Simulator::Destroy (); + + NS_TEST_ASSERT_MSG_EQ (m_count, 4, "Didn't receive right number of packets"); +} + +class TestPhyListener : public ns3::WifiPhyListener +{ +public: + /** + * Create a test PhyListener + * + */ + TestPhyListener (void) : + m_notifyRxStart (0), + m_notifyRxEndOk (0), + m_notifyRxEndError (0), + m_notifyMaybeCcaBusyStart (0) + { + } + virtual ~TestPhyListener () + { + } + virtual void NotifyRxStart (Time duration) + { + ++m_notifyRxStart; + } + virtual void NotifyRxEndOk (void) + { + ++m_notifyRxEndOk; + } + virtual void NotifyRxEndError (void) + { + ++m_notifyRxEndError; + } + virtual void NotifyTxStart (Time duration, double txPowerDbm) + { + } + virtual void NotifyMaybeCcaBusyStart (Time duration) + { + ++m_notifyMaybeCcaBusyStart; + } + virtual void NotifySwitchingStart (Time duration) + { + } + virtual void NotifySleep (void) + { + } + virtual void NotifyWakeup (void) + { + } + uint32_t m_notifyRxStart; + uint32_t m_notifyRxEndOk; + uint32_t m_notifyRxEndError; + uint32_t m_notifyMaybeCcaBusyStart; +private: +}; + + +class SpectrumWifiPhyListenerTest : public SpectrumWifiPhyBasicTest +{ +public: + SpectrumWifiPhyListenerTest (); + virtual ~SpectrumWifiPhyListenerTest (); +private: + virtual void DoSetup (void); + virtual void DoRun (void); + TestPhyListener* m_listener; +}; + +SpectrumWifiPhyListenerTest::SpectrumWifiPhyListenerTest () + : SpectrumWifiPhyBasicTest ("SpectrumWifiPhy test operation of WifiPhyListener") +{ +} + +SpectrumWifiPhyListenerTest::~SpectrumWifiPhyListenerTest () +{ +} + +void +SpectrumWifiPhyListenerTest::DoSetup (void) +{ + SpectrumWifiPhyBasicTest::DoSetup (); + m_listener = new TestPhyListener; + m_phy->RegisterListener (m_listener); +} + +void +SpectrumWifiPhyListenerTest::DoRun (void) +{ + double txPowerWatts = 0.010; + Simulator::Schedule (Seconds (1), &SpectrumWifiPhyListenerTest::SendSignal, this, txPowerWatts); + Simulator::Run (); + + NS_TEST_ASSERT_MSG_EQ (m_count, 1, "Didn't receive right number of packets"); + NS_TEST_ASSERT_MSG_EQ (m_listener->m_notifyRxStart, 1, "Didn't receive NotifyRxStart"); + NS_TEST_ASSERT_MSG_EQ (m_listener->m_notifyRxEndOk, 1, "Didn't receive NotifyRxEnd"); + NS_TEST_ASSERT_MSG_EQ (m_listener->m_notifyMaybeCcaBusyStart, 0, "Received NotifyMaybeCcaBusyStart unexpectedly"); + + Simulator::Destroy (); + delete m_listener; +} + +class SpectrumWifiPhyTestSuite : public TestSuite +{ +public: + SpectrumWifiPhyTestSuite (); +}; + +SpectrumWifiPhyTestSuite::SpectrumWifiPhyTestSuite () + : TestSuite ("spectrum-wifi-phy", UNIT) +{ + AddTestCase (new SpectrumWifiPhyBasicTest, TestCase::QUICK); + AddTestCase (new SpectrumWifiPhyListenerTest, TestCase::QUICK); +} + +static SpectrumWifiPhyTestSuite spectrumWifiPhyTestSuite; diff --git a/src/wifi/wscript b/src/wifi/wscript index 61f18f90259..62dcc5a17a5 100644 --- a/src/wifi/wscript +++ b/src/wifi/wscript @@ -1,7 +1,7 @@ ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*- def build(bld): - obj = bld.create_ns3_module('wifi', ['network', 'propagation', 'energy']) + obj = bld.create_ns3_module('wifi', ['network', 'propagation', 'energy', 'spectrum', 'antenna', 'mobility']) obj.source = [ 'model/wifi-information-element.cc', 'model/wifi-information-element-vector.cc', @@ -17,6 +17,10 @@ def build(bld): 'model/interference-helper.cc', 'model/yans-wifi-phy.cc', 'model/yans-wifi-channel.cc', + 'model/spectrum-wifi-phy.cc', + 'model/wifi-phy-tag.cc', + 'model/wifi-spectrum-phy-interface.cc', + 'model/wifi-spectrum-signal-parameters.cc', 'model/wifi-mac-header.cc', 'model/wifi-mac-trailer.cc', 'model/mac-low.cc', @@ -81,6 +85,7 @@ def build(bld): 'helper/athstats-helper.cc', 'helper/wifi-helper.cc', 'helper/yans-wifi-helper.cc', + 'helper/spectrum-wifi-helper.cc', 'helper/nqos-wifi-mac-helper.cc', 'helper/qos-wifi-mac-helper.cc', 'helper/wifi-mac-helper.cc', @@ -93,6 +98,7 @@ def build(bld): 'test/tx-duration-test.cc', 'test/power-rate-adaptation-test.cc', 'test/wifi-test.cc', + 'test/spectrum-wifi-phy-test.cc', 'test/wifi-aggregation-test.cc', 'test/wifi-error-rate-models-test.cc', ] @@ -109,8 +115,12 @@ def build(bld): 'model/wifi-preamble.h', 'model/wifi-phy-standard.h', 'model/yans-wifi-phy.h', + 'model/spectrum-wifi-phy.h', + 'model/wifi-phy-tag.h', 'model/yans-wifi-channel.h', 'model/wifi-phy.h', + 'model/wifi-spectrum-phy-interface.h', + 'model/wifi-spectrum-signal-parameters.h', 'model/interference-helper.h', 'model/wifi-remote-station-manager.h', 'model/ap-wifi-mac.h', @@ -178,6 +188,7 @@ def build(bld): 'helper/athstats-helper.h', 'helper/wifi-helper.h', 'helper/yans-wifi-helper.h', + 'helper/spectrum-wifi-helper.h', 'helper/nqos-wifi-mac-helper.h', 'helper/qos-wifi-mac-helper.h', 'helper/wifi-mac-helper.h', From 544b50afbdcd0442f1d93a6219122a6435703611 Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Fri, 22 Jul 2016 21:50:18 -0700 Subject: [PATCH 15/27] wifi: remove forward declaration --- src/wifi/model/spectrum-wifi-phy.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wifi/model/spectrum-wifi-phy.h b/src/wifi/model/spectrum-wifi-phy.h index aef684984e3..ad664c4208f 100644 --- a/src/wifi/model/spectrum-wifi-phy.h +++ b/src/wifi/model/spectrum-wifi-phy.h @@ -28,6 +28,7 @@ #include #include "ns3/callback.h" +#include "ns3/antenna-model.h" #include "ns3/event-id.h" #include "ns3/packet.h" #include "ns3/object.h" @@ -52,7 +53,6 @@ namespace ns3 { #define HT_PHY 127 class WifiPhyStateHelper; -class AntennaModel; /** * \brief 802.11 PHY layer model From 651d30b9ce6646085e654201163adcc9a580d54c Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Fri, 22 Jul 2016 21:51:06 -0700 Subject: [PATCH 16/27] bindings: rescan wifi-related bindings --- src/spectrum/bindings/modulegen__gcc_ILP32.py | 92 +- src/spectrum/bindings/modulegen__gcc_LP64.py | 92 +- src/wave/bindings/modulegen__gcc_ILP32.py | 4 + src/wave/bindings/modulegen__gcc_LP64.py | 4 + src/wifi/bindings/callbacks_list.py | 1 + src/wifi/bindings/modulegen__gcc_ILP32.py | 1010 ++++++++++++++++- src/wifi/bindings/modulegen__gcc_LP64.py | 1010 ++++++++++++++++- 7 files changed, 2137 insertions(+), 76 deletions(-) diff --git a/src/spectrum/bindings/modulegen__gcc_ILP32.py b/src/spectrum/bindings/modulegen__gcc_ILP32.py index b3f1e143ffd..dc98dc8a72b 100644 --- a/src/spectrum/bindings/modulegen__gcc_ILP32.py +++ b/src/spectrum/bindings/modulegen__gcc_ILP32.py @@ -154,8 +154,10 @@ def register_types(module): module.add_class('Vector3D', import_from_module='ns.core') ## waveform-generator-helper.h (module 'spectrum'): ns3::WaveformGeneratorHelper [class] module.add_class('WaveformGeneratorHelper') + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValue5MhzFactory [class] + module.add_class('WifiSpectrumValue5MhzFactory', allow_subclassing=True) ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValueHelper [class] - module.add_class('WifiSpectrumValueHelper', allow_subclassing=True) + module.add_class('WifiSpectrumValueHelper') ## empty.h (module 'core'): ns3::empty [class] module.add_class('empty', import_from_module='ns.core') ## int64x64-double.h (module 'core'): ns3::int64x64_t [class] @@ -260,8 +262,6 @@ def register_types(module): module.add_class('WaveformGenerator', parent=root_module['ns3::SpectrumPhy']) ## random-variable-stream.h (module 'core'): ns3::WeibullRandomVariable [class] module.add_class('WeibullRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValue5MhzFactory [class] - module.add_class('WifiSpectrumValue5MhzFactory', parent=root_module['ns3::WifiSpectrumValueHelper']) ## 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] @@ -643,6 +643,7 @@ def register_methods(root_module): register_Ns3Vector2D_methods(root_module, root_module['ns3::Vector2D']) register_Ns3Vector3D_methods(root_module, root_module['ns3::Vector3D']) register_Ns3WaveformGeneratorHelper_methods(root_module, root_module['ns3::WaveformGeneratorHelper']) + register_Ns3WifiSpectrumValue5MhzFactory_methods(root_module, root_module['ns3::WifiSpectrumValue5MhzFactory']) register_Ns3WifiSpectrumValueHelper_methods(root_module, root_module['ns3::WifiSpectrumValueHelper']) register_Ns3Empty_methods(root_module, root_module['ns3::empty']) register_Ns3Int64x64_t_methods(root_module, root_module['ns3::int64x64_t']) @@ -691,7 +692,6 @@ def register_methods(root_module): register_Ns3UniformRandomVariable_methods(root_module, root_module['ns3::UniformRandomVariable']) register_Ns3WaveformGenerator_methods(root_module, root_module['ns3::WaveformGenerator']) register_Ns3WeibullRandomVariable_methods(root_module, root_module['ns3::WeibullRandomVariable']) - register_Ns3WifiSpectrumValue5MhzFactory_methods(root_module, root_module['ns3::WifiSpectrumValue5MhzFactory']) register_Ns3ZetaRandomVariable_methods(root_module, root_module['ns3::ZetaRandomVariable']) register_Ns3ZipfRandomVariable_methods(root_module, root_module['ns3::ZipfRandomVariable']) register_Ns3AlohaNoackMacHeader_methods(root_module, root_module['ns3::AlohaNoackMacHeader']) @@ -3099,26 +3099,68 @@ def register_Ns3WaveformGeneratorHelper_methods(root_module, cls): [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')]) return -def register_Ns3WifiSpectrumValueHelper_methods(root_module, cls): - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValueHelper::WifiSpectrumValueHelper() [constructor] +def register_Ns3WifiSpectrumValue5MhzFactory_methods(root_module, cls): + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValue5MhzFactory::WifiSpectrumValue5MhzFactory() [constructor] cls.add_constructor([]) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValueHelper::WifiSpectrumValueHelper(ns3::WifiSpectrumValueHelper const & arg0) [copy constructor] - cls.add_constructor([param('ns3::WifiSpectrumValueHelper const &', 'arg0')]) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValueHelper::CreateConstant(double psd) [member function] + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValue5MhzFactory::WifiSpectrumValue5MhzFactory(ns3::WifiSpectrumValue5MhzFactory const & arg0) [copy constructor] + cls.add_constructor([param('ns3::WifiSpectrumValue5MhzFactory const &', 'arg0')]) + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValue5MhzFactory::CreateConstant(double psd) [member function] cls.add_method('CreateConstant', 'ns3::Ptr< ns3::SpectrumValue >', [param('double', 'psd')], - is_pure_virtual=True, is_virtual=True) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValueHelper::CreateRfFilter(uint32_t channel) [member function] + is_virtual=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValue5MhzFactory::CreateRfFilter(uint32_t channel) [member function] cls.add_method('CreateRfFilter', 'ns3::Ptr< ns3::SpectrumValue >', [param('uint32_t', 'channel')], - is_pure_virtual=True, is_virtual=True) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValueHelper::CreateTxPowerSpectralDensity(double txPower, uint32_t channel) [member function] + is_virtual=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValue5MhzFactory::CreateTxPowerSpectralDensity(double txPower, uint32_t channel) [member function] cls.add_method('CreateTxPowerSpectralDensity', 'ns3::Ptr< ns3::SpectrumValue >', [param('double', 'txPower'), param('uint32_t', 'channel')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) + return + +def register_Ns3WifiSpectrumValueHelper_methods(root_module, cls): + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValueHelper::WifiSpectrumValueHelper() [constructor] + cls.add_constructor([]) + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValueHelper::WifiSpectrumValueHelper(ns3::WifiSpectrumValueHelper const & arg0) [copy constructor] + cls.add_constructor([param('ns3::WifiSpectrumValueHelper const &', 'arg0')]) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::CreateDsssTxPowerSpectralDensity(uint32_t centerFrequency, double txPowerW) [member function] + cls.add_method('CreateDsssTxPowerSpectralDensity', + 'ns3::Ptr< ns3::SpectrumValue >', + [param('uint32_t', 'centerFrequency'), param('double', 'txPowerW')], + is_static=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::CreateHtOfdmTxPowerSpectralDensity(uint32_t centerFrequency, uint32_t channelWidth, double txPowerW) [member function] + cls.add_method('CreateHtOfdmTxPowerSpectralDensity', + 'ns3::Ptr< ns3::SpectrumValue >', + [param('uint32_t', 'centerFrequency'), param('uint32_t', 'channelWidth'), param('double', 'txPowerW')], + is_static=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::CreateNoisePowerSpectralDensity(uint32_t centerFrequency, uint32_t channelWidth, double noiseFigure) [member function] + cls.add_method('CreateNoisePowerSpectralDensity', + 'ns3::Ptr< ns3::SpectrumValue >', + [param('uint32_t', 'centerFrequency'), param('uint32_t', 'channelWidth'), param('double', 'noiseFigure')], + is_static=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::CreateNoisePowerSpectralDensity(double noiseFigure, ns3::Ptr spectrumModel) [member function] + cls.add_method('CreateNoisePowerSpectralDensity', + 'ns3::Ptr< ns3::SpectrumValue >', + [param('double', 'noiseFigure'), param('ns3::Ptr< ns3::SpectrumModel >', 'spectrumModel')], + is_static=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::CreateOfdmTxPowerSpectralDensity(uint32_t centerFrequency, uint32_t channelWidth, double txPowerW) [member function] + cls.add_method('CreateOfdmTxPowerSpectralDensity', + 'ns3::Ptr< ns3::SpectrumValue >', + [param('uint32_t', 'centerFrequency'), param('uint32_t', 'channelWidth'), param('double', 'txPowerW')], + is_static=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::CreateRfFilter(uint32_t centerFrequency, uint32_t channelWidth) [member function] + cls.add_method('CreateRfFilter', + 'ns3::Ptr< ns3::SpectrumValue >', + [param('uint32_t', 'centerFrequency'), param('uint32_t', 'channelWidth')], + is_static=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::GetSpectrumModel(uint32_t centerFrequency, uint32_t channelWidth) [member function] + cls.add_method('GetSpectrumModel', + 'ns3::Ptr< ns3::SpectrumModel >', + [param('uint32_t', 'centerFrequency'), param('uint32_t', 'channelWidth')], + is_static=True) return def register_Ns3Empty_methods(root_module, cls): @@ -4750,28 +4792,6 @@ def register_Ns3WeibullRandomVariable_methods(root_module, cls): is_virtual=True) return -def register_Ns3WifiSpectrumValue5MhzFactory_methods(root_module, cls): - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValue5MhzFactory::WifiSpectrumValue5MhzFactory() [constructor] - cls.add_constructor([]) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValue5MhzFactory::WifiSpectrumValue5MhzFactory(ns3::WifiSpectrumValue5MhzFactory const & arg0) [copy constructor] - cls.add_constructor([param('ns3::WifiSpectrumValue5MhzFactory const &', 'arg0')]) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValue5MhzFactory::CreateConstant(double psd) [member function] - cls.add_method('CreateConstant', - 'ns3::Ptr< ns3::SpectrumValue >', - [param('double', 'psd')], - is_virtual=True) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValue5MhzFactory::CreateRfFilter(uint32_t channel) [member function] - cls.add_method('CreateRfFilter', - 'ns3::Ptr< ns3::SpectrumValue >', - [param('uint32_t', 'channel')], - is_virtual=True) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValue5MhzFactory::CreateTxPowerSpectralDensity(double txPower, uint32_t channel) [member function] - cls.add_method('CreateTxPowerSpectralDensity', - 'ns3::Ptr< ns3::SpectrumValue >', - [param('double', 'txPower'), param('uint32_t', 'channel')], - is_virtual=True) - 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', diff --git a/src/spectrum/bindings/modulegen__gcc_LP64.py b/src/spectrum/bindings/modulegen__gcc_LP64.py index b3f1e143ffd..dc98dc8a72b 100644 --- a/src/spectrum/bindings/modulegen__gcc_LP64.py +++ b/src/spectrum/bindings/modulegen__gcc_LP64.py @@ -154,8 +154,10 @@ def register_types(module): module.add_class('Vector3D', import_from_module='ns.core') ## waveform-generator-helper.h (module 'spectrum'): ns3::WaveformGeneratorHelper [class] module.add_class('WaveformGeneratorHelper') + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValue5MhzFactory [class] + module.add_class('WifiSpectrumValue5MhzFactory', allow_subclassing=True) ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValueHelper [class] - module.add_class('WifiSpectrumValueHelper', allow_subclassing=True) + module.add_class('WifiSpectrumValueHelper') ## empty.h (module 'core'): ns3::empty [class] module.add_class('empty', import_from_module='ns.core') ## int64x64-double.h (module 'core'): ns3::int64x64_t [class] @@ -260,8 +262,6 @@ def register_types(module): module.add_class('WaveformGenerator', parent=root_module['ns3::SpectrumPhy']) ## random-variable-stream.h (module 'core'): ns3::WeibullRandomVariable [class] module.add_class('WeibullRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValue5MhzFactory [class] - module.add_class('WifiSpectrumValue5MhzFactory', parent=root_module['ns3::WifiSpectrumValueHelper']) ## 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] @@ -643,6 +643,7 @@ def register_methods(root_module): register_Ns3Vector2D_methods(root_module, root_module['ns3::Vector2D']) register_Ns3Vector3D_methods(root_module, root_module['ns3::Vector3D']) register_Ns3WaveformGeneratorHelper_methods(root_module, root_module['ns3::WaveformGeneratorHelper']) + register_Ns3WifiSpectrumValue5MhzFactory_methods(root_module, root_module['ns3::WifiSpectrumValue5MhzFactory']) register_Ns3WifiSpectrumValueHelper_methods(root_module, root_module['ns3::WifiSpectrumValueHelper']) register_Ns3Empty_methods(root_module, root_module['ns3::empty']) register_Ns3Int64x64_t_methods(root_module, root_module['ns3::int64x64_t']) @@ -691,7 +692,6 @@ def register_methods(root_module): register_Ns3UniformRandomVariable_methods(root_module, root_module['ns3::UniformRandomVariable']) register_Ns3WaveformGenerator_methods(root_module, root_module['ns3::WaveformGenerator']) register_Ns3WeibullRandomVariable_methods(root_module, root_module['ns3::WeibullRandomVariable']) - register_Ns3WifiSpectrumValue5MhzFactory_methods(root_module, root_module['ns3::WifiSpectrumValue5MhzFactory']) register_Ns3ZetaRandomVariable_methods(root_module, root_module['ns3::ZetaRandomVariable']) register_Ns3ZipfRandomVariable_methods(root_module, root_module['ns3::ZipfRandomVariable']) register_Ns3AlohaNoackMacHeader_methods(root_module, root_module['ns3::AlohaNoackMacHeader']) @@ -3099,26 +3099,68 @@ def register_Ns3WaveformGeneratorHelper_methods(root_module, cls): [param('ns3::Ptr< ns3::SpectrumValue >', 'txPsd')]) return -def register_Ns3WifiSpectrumValueHelper_methods(root_module, cls): - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValueHelper::WifiSpectrumValueHelper() [constructor] +def register_Ns3WifiSpectrumValue5MhzFactory_methods(root_module, cls): + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValue5MhzFactory::WifiSpectrumValue5MhzFactory() [constructor] cls.add_constructor([]) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValueHelper::WifiSpectrumValueHelper(ns3::WifiSpectrumValueHelper const & arg0) [copy constructor] - cls.add_constructor([param('ns3::WifiSpectrumValueHelper const &', 'arg0')]) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValueHelper::CreateConstant(double psd) [member function] + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValue5MhzFactory::WifiSpectrumValue5MhzFactory(ns3::WifiSpectrumValue5MhzFactory const & arg0) [copy constructor] + cls.add_constructor([param('ns3::WifiSpectrumValue5MhzFactory const &', 'arg0')]) + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValue5MhzFactory::CreateConstant(double psd) [member function] cls.add_method('CreateConstant', 'ns3::Ptr< ns3::SpectrumValue >', [param('double', 'psd')], - is_pure_virtual=True, is_virtual=True) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValueHelper::CreateRfFilter(uint32_t channel) [member function] + is_virtual=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValue5MhzFactory::CreateRfFilter(uint32_t channel) [member function] cls.add_method('CreateRfFilter', 'ns3::Ptr< ns3::SpectrumValue >', [param('uint32_t', 'channel')], - is_pure_virtual=True, is_virtual=True) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValueHelper::CreateTxPowerSpectralDensity(double txPower, uint32_t channel) [member function] + is_virtual=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValue5MhzFactory::CreateTxPowerSpectralDensity(double txPower, uint32_t channel) [member function] cls.add_method('CreateTxPowerSpectralDensity', 'ns3::Ptr< ns3::SpectrumValue >', [param('double', 'txPower'), param('uint32_t', 'channel')], - is_pure_virtual=True, is_virtual=True) + is_virtual=True) + return + +def register_Ns3WifiSpectrumValueHelper_methods(root_module, cls): + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValueHelper::WifiSpectrumValueHelper() [constructor] + cls.add_constructor([]) + ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValueHelper::WifiSpectrumValueHelper(ns3::WifiSpectrumValueHelper const & arg0) [copy constructor] + cls.add_constructor([param('ns3::WifiSpectrumValueHelper const &', 'arg0')]) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::CreateDsssTxPowerSpectralDensity(uint32_t centerFrequency, double txPowerW) [member function] + cls.add_method('CreateDsssTxPowerSpectralDensity', + 'ns3::Ptr< ns3::SpectrumValue >', + [param('uint32_t', 'centerFrequency'), param('double', 'txPowerW')], + is_static=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::CreateHtOfdmTxPowerSpectralDensity(uint32_t centerFrequency, uint32_t channelWidth, double txPowerW) [member function] + cls.add_method('CreateHtOfdmTxPowerSpectralDensity', + 'ns3::Ptr< ns3::SpectrumValue >', + [param('uint32_t', 'centerFrequency'), param('uint32_t', 'channelWidth'), param('double', 'txPowerW')], + is_static=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::CreateNoisePowerSpectralDensity(uint32_t centerFrequency, uint32_t channelWidth, double noiseFigure) [member function] + cls.add_method('CreateNoisePowerSpectralDensity', + 'ns3::Ptr< ns3::SpectrumValue >', + [param('uint32_t', 'centerFrequency'), param('uint32_t', 'channelWidth'), param('double', 'noiseFigure')], + is_static=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::CreateNoisePowerSpectralDensity(double noiseFigure, ns3::Ptr spectrumModel) [member function] + cls.add_method('CreateNoisePowerSpectralDensity', + 'ns3::Ptr< ns3::SpectrumValue >', + [param('double', 'noiseFigure'), param('ns3::Ptr< ns3::SpectrumModel >', 'spectrumModel')], + is_static=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::CreateOfdmTxPowerSpectralDensity(uint32_t centerFrequency, uint32_t channelWidth, double txPowerW) [member function] + cls.add_method('CreateOfdmTxPowerSpectralDensity', + 'ns3::Ptr< ns3::SpectrumValue >', + [param('uint32_t', 'centerFrequency'), param('uint32_t', 'channelWidth'), param('double', 'txPowerW')], + is_static=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::CreateRfFilter(uint32_t centerFrequency, uint32_t channelWidth) [member function] + cls.add_method('CreateRfFilter', + 'ns3::Ptr< ns3::SpectrumValue >', + [param('uint32_t', 'centerFrequency'), param('uint32_t', 'channelWidth')], + is_static=True) + ## wifi-spectrum-value-helper.h (module 'spectrum'): static ns3::Ptr ns3::WifiSpectrumValueHelper::GetSpectrumModel(uint32_t centerFrequency, uint32_t channelWidth) [member function] + cls.add_method('GetSpectrumModel', + 'ns3::Ptr< ns3::SpectrumModel >', + [param('uint32_t', 'centerFrequency'), param('uint32_t', 'channelWidth')], + is_static=True) return def register_Ns3Empty_methods(root_module, cls): @@ -4750,28 +4792,6 @@ def register_Ns3WeibullRandomVariable_methods(root_module, cls): is_virtual=True) return -def register_Ns3WifiSpectrumValue5MhzFactory_methods(root_module, cls): - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValue5MhzFactory::WifiSpectrumValue5MhzFactory() [constructor] - cls.add_constructor([]) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::WifiSpectrumValue5MhzFactory::WifiSpectrumValue5MhzFactory(ns3::WifiSpectrumValue5MhzFactory const & arg0) [copy constructor] - cls.add_constructor([param('ns3::WifiSpectrumValue5MhzFactory const &', 'arg0')]) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValue5MhzFactory::CreateConstant(double psd) [member function] - cls.add_method('CreateConstant', - 'ns3::Ptr< ns3::SpectrumValue >', - [param('double', 'psd')], - is_virtual=True) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValue5MhzFactory::CreateRfFilter(uint32_t channel) [member function] - cls.add_method('CreateRfFilter', - 'ns3::Ptr< ns3::SpectrumValue >', - [param('uint32_t', 'channel')], - is_virtual=True) - ## wifi-spectrum-value-helper.h (module 'spectrum'): ns3::Ptr ns3::WifiSpectrumValue5MhzFactory::CreateTxPowerSpectralDensity(double txPower, uint32_t channel) [member function] - cls.add_method('CreateTxPowerSpectralDensity', - 'ns3::Ptr< ns3::SpectrumValue >', - [param('double', 'txPower'), param('uint32_t', 'channel')], - is_virtual=True) - 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', diff --git a/src/wave/bindings/modulegen__gcc_ILP32.py b/src/wave/bindings/modulegen__gcc_ILP32.py index 833c94b29b4..591f9d18dd2 100644 --- a/src/wave/bindings/modulegen__gcc_ILP32.py +++ b/src/wave/bindings/modulegen__gcc_ILP32.py @@ -2403,6 +2403,10 @@ def register_Ns3InterferenceHelper_methods(root_module, cls): cls.add_method('Add', 'ns3::Ptr< ns3::InterferenceHelper::Event >', [param('uint32_t', 'size'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::Time', 'duration'), param('double', 'rxPower')]) + ## interference-helper.h (module 'wifi'): void ns3::InterferenceHelper::AddForeignSignal(ns3::Time duration, double rxPower) [member function] + cls.add_method('AddForeignSignal', + 'void', + [param('ns3::Time', 'duration'), param('double', 'rxPower')]) ## interference-helper.h (module 'wifi'): ns3::InterferenceHelper::SnrPer ns3::InterferenceHelper::CalculatePlcpHeaderSnrPer(ns3::Ptr event) [member function] cls.add_method('CalculatePlcpHeaderSnrPer', 'ns3::InterferenceHelper::SnrPer', diff --git a/src/wave/bindings/modulegen__gcc_LP64.py b/src/wave/bindings/modulegen__gcc_LP64.py index 833c94b29b4..591f9d18dd2 100644 --- a/src/wave/bindings/modulegen__gcc_LP64.py +++ b/src/wave/bindings/modulegen__gcc_LP64.py @@ -2403,6 +2403,10 @@ def register_Ns3InterferenceHelper_methods(root_module, cls): cls.add_method('Add', 'ns3::Ptr< ns3::InterferenceHelper::Event >', [param('uint32_t', 'size'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::Time', 'duration'), param('double', 'rxPower')]) + ## interference-helper.h (module 'wifi'): void ns3::InterferenceHelper::AddForeignSignal(ns3::Time duration, double rxPower) [member function] + cls.add_method('AddForeignSignal', + 'void', + [param('ns3::Time', 'duration'), param('double', 'rxPower')]) ## interference-helper.h (module 'wifi'): ns3::InterferenceHelper::SnrPer ns3::InterferenceHelper::CalculatePlcpHeaderSnrPer(ns3::Ptr event) [member function] cls.add_method('CalculatePlcpHeaderSnrPer', 'ns3::InterferenceHelper::SnrPer', diff --git a/src/wifi/bindings/callbacks_list.py b/src/wifi/bindings/callbacks_list.py index 5fa6feb6cc2..2e7b0259c22 100644 --- a/src/wifi/bindings/callbacks_list.py +++ b/src/wifi/bindings/callbacks_list.py @@ -6,6 +6,7 @@ ['void', 'ns3::Ptr', 'double', 'ns3::WifiTxVector', 'ns3::WifiPreamble', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['bool', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['bool', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], + ['void', 'bool', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::WifiMacHeader const*', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['void', 'ns3::Ptr', 'ns3::Ptr', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'], ['unsigned char', 'ns3::Ptr', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], diff --git a/src/wifi/bindings/modulegen__gcc_ILP32.py b/src/wifi/bindings/modulegen__gcc_ILP32.py index 2b8d9b3d2e6..a2925455b66 100644 --- a/src/wifi/bindings/modulegen__gcc_ILP32.py +++ b/src/wifi/bindings/modulegen__gcc_ILP32.py @@ -20,8 +20,6 @@ def module_init(): def register_types(module): root_module = module.get_root() - ## propagation-environment.h (module 'propagation'): ns3::EnvironmentType [enumeration] - module.add_enum('EnvironmentType', ['UrbanEnvironment', 'SubUrbanEnvironment', 'OpenAreasEnvironment'], import_from_module='ns.propagation') ## ht-operations.h (module 'wifi'): ns3::HtProtectionType [enumeration] module.add_enum('HtProtectionType', ['NO_PROTECTION', 'NON_MEMBER_PROTECTION', 'TWENTY_MHZ_PROTECTION', 'MIXED_MODE_PROTECTION']) ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacType [enumeration] @@ -42,12 +40,16 @@ def register_types(module): module.add_enum('TypeOfStation', ['STA', 'AP', 'ADHOC_STA', 'MESH', 'HT_STA', 'HT_AP', 'HT_ADHOC_STA', 'OCB']) ## ctrl-headers.h (module 'wifi'): ns3::BlockAckType [enumeration] module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK']) + ## propagation-environment.h (module 'propagation'): ns3::EnvironmentType [enumeration] + module.add_enum('EnvironmentType', ['UrbanEnvironment', 'SubUrbanEnvironment', 'OpenAreasEnvironment'], import_from_module='ns.propagation') ## propagation-environment.h (module 'propagation'): ns3::CitySize [enumeration] module.add_enum('CitySize', ['SmallCity', 'MediumCity', 'LargeCity'], import_from_module='ns.propagation') ## 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] module.add_enum('MaxSize_e', ['MAX_SIZE'], outer_class=root_module['ns3::Address'], import_from_module='ns.network') + ## angles.h (module 'antenna'): ns3::Angles [struct] + module.add_class('Angles', import_from_module='ns.antenna') ## trace-helper.h (module 'network'): ns3::AsciiTraceHelper [class] module.add_class('AsciiTraceHelper', import_from_module='ns.network') ## trace-helper.h (module 'network'): ns3::AsciiTraceHelperForDevice [class] @@ -58,6 +60,8 @@ def register_types(module): module.add_class('AttributeConstructionList', import_from_module='ns.core') ## attribute-construction-list.h (module 'core'): ns3::AttributeConstructionList::Item [struct] module.add_class('Item', import_from_module='ns.core', outer_class=root_module['ns3::AttributeConstructionList']) + ## spectrum-model.h (module 'spectrum'): ns3::BandInfo [struct] + module.add_class('BandInfo', import_from_module='ns.spectrum') ## block-ack-manager.h (module 'wifi'): ns3::Bar [struct] module.add_class('Bar') ## block-ack-agreement.h (module 'wifi'): ns3::BlockAckAgreement [class] @@ -228,6 +232,8 @@ def register_types(module): module.add_class('WifiPhyHelper', allow_subclassing=True) ## wifi-phy.h (module 'wifi'): ns3::WifiPhyListener [class] module.add_class('WifiPhyListener', allow_subclassing=True) + ## wifi-phy-tag.h (module 'wifi'): ns3::WifiPhyTag [class] + module.add_class('WifiPhyTag', parent=root_module['ns3::Tag']) ## wifi-radio-energy-model-helper.h (module 'wifi'): ns3::WifiRadioEnergyModelHelper [class] module.add_class('WifiRadioEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper']) ## wifi-radio-energy-model.h (module 'wifi'): ns3::WifiRadioEnergyModelPhyListener [class] @@ -328,12 +334,32 @@ def register_types(module): module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Packet', '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, import_from_module='ns.core', template_parameters=['ns3::SpectrumModel', '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::SpectrumSignalParameters', '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::SpectrumValue', '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')) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::WifiInformationElement', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## snr-tag.h (module 'wifi'): ns3::SnrTag [class] module.add_class('SnrTag', parent=root_module['ns3::Tag']) + ## spectrum-interference.h (module 'spectrum'): ns3::SpectrumInterference [class] + module.add_class('SpectrumInterference', import_from_module='ns.spectrum', parent=root_module['ns3::Object']) + ## spectrum-model.h (module 'spectrum'): ns3::SpectrumModel [class] + module.add_class('SpectrumModel', import_from_module='ns.spectrum', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter >']) + ## spectrum-phy.h (module 'spectrum'): ns3::SpectrumPhy [class] + module.add_class('SpectrumPhy', import_from_module='ns.spectrum', parent=root_module['ns3::Object']) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters [struct] + module.add_class('SpectrumSignalParameters', import_from_module='ns.spectrum', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumSignalParameters, ns3::empty, ns3::DefaultDeleter >']) + ## spectrum-value.h (module 'spectrum'): ns3::SpectrumValue [class] + module.add_class('SpectrumValue', import_from_module='ns.spectrum', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter >']) + ## spectrum-wifi-helper.h (module 'wifi'): ns3::SpectrumWifiPhyHelper [class] + module.add_class('SpectrumWifiPhyHelper', parent=[root_module['ns3::WifiPhyHelper'], root_module['ns3::PcapHelperForDevice'], root_module['ns3::AsciiTraceHelperForDevice']]) + ## spectrum-wifi-helper.h (module 'wifi'): ns3::SpectrumWifiPhyHelper::SupportedPcapDataLinkTypes [enumeration] + module.add_enum('SupportedPcapDataLinkTypes', ['DLT_IEEE802_11', 'DLT_PRISM_HEADER', 'DLT_IEEE802_11_RADIO'], outer_class=root_module['ns3::SpectrumWifiPhyHelper']) ## propagation-loss-model.h (module 'propagation'): ns3::ThreeLogDistancePropagationLossModel [class] module.add_class('ThreeLogDistancePropagationLossModel', import_from_module='ns.propagation', parent=root_module['ns3::PropagationLossModel']) ## nstime.h (module 'core'): ns3::Time [class] @@ -398,6 +424,10 @@ def register_types(module): module.add_class('WifiRemoteStationManager', parent=root_module['ns3::Object']) ## wifi-remote-station-manager.h (module 'wifi'): ns3::WifiRemoteStationManager::ProtectionMode [enumeration] module.add_enum('ProtectionMode', ['RTS_CTS', 'CTS_TO_SELF'], outer_class=root_module['ns3::WifiRemoteStationManager']) + ## wifi-spectrum-phy-interface.h (module 'wifi'): ns3::WifiSpectrumPhyInterface [class] + module.add_class('WifiSpectrumPhyInterface', parent=root_module['ns3::SpectrumPhy']) + ## wifi-spectrum-signal-parameters.h (module 'wifi'): ns3::WifiSpectrumSignalParameters [struct] + module.add_class('WifiSpectrumSignalParameters', parent=root_module['ns3::SpectrumSignalParameters']) ## wifi-tx-current-model.h (module 'wifi'): ns3::WifiTxCurrentModel [class] module.add_class('WifiTxCurrentModel', parent=root_module['ns3::Object']) ## yans-wifi-phy.h (module 'wifi'): ns3::YansWifiPhy [class] @@ -416,6 +446,8 @@ def register_types(module): module.add_class('AmrrWifiManager', parent=root_module['ns3::WifiRemoteStationManager']) ## amsdu-subframe-header.h (module 'wifi'): ns3::AmsduSubframeHeader [class] module.add_class('AmsduSubframeHeader', parent=root_module['ns3::Header']) + ## antenna-model.h (module 'antenna'): ns3::AntennaModel [class] + module.add_class('AntennaModel', import_from_module='ns.antenna', parent=root_module['ns3::Object']) ## aparf-wifi-manager.h (module 'wifi'): ns3::AparfWifiManager [class] module.add_class('AparfWifiManager', parent=root_module['ns3::WifiRemoteStationManager']) ## aparf-wifi-manager.h (module 'wifi'): ns3::AparfWifiManager::State [enumeration] @@ -624,6 +656,10 @@ def register_types(module): module.add_class('RegularWifiMac', parent=root_module['ns3::WifiMac']) ## rraa-wifi-manager.h (module 'wifi'): ns3::RraaWifiManager [class] module.add_class('RraaWifiManager', parent=root_module['ns3::WifiRemoteStationManager']) + ## spectrum-channel.h (module 'spectrum'): ns3::SpectrumChannel [class] + module.add_class('SpectrumChannel', import_from_module='ns.spectrum', parent=root_module['ns3::Channel']) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::SpectrumWifiPhy [class] + module.add_class('SpectrumWifiPhy', parent=root_module['ns3::WifiPhy']) ## ssid.h (module 'wifi'): ns3::Ssid [class] module.add_class('Ssid', parent=root_module['ns3::WifiInformationElement']) ## ssid.h (module 'wifi'): ns3::SsidChecker [class] @@ -689,10 +725,13 @@ def register_types(module): module.add_container('ns3::WifiModeList', 'ns3::WifiMode', container_type=u'vector') module.add_container('ns3::MinstrelRate', 'ns3::RateInfo', container_type=u'vector') module.add_container('ns3::SampleRate', 'std::vector< unsigned int >', container_type=u'vector') + module.add_container('std::vector< double >', 'double', container_type=u'vector') + module.add_container('ns3::Bands', 'ns3::BandInfo', container_type=u'vector') module.add_container('std::vector< unsigned int >', 'unsigned int', container_type=u'vector') module.add_container('std::map< ns3::Mac48Address, bool >', ('ns3::Mac48Address', 'bool'), container_type=u'map') module.add_container('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::AmpduSubframeHeader > >', 'std::pair< ns3::Ptr< ns3::Packet >, ns3::AmpduSubframeHeader >', container_type=u'list') module.add_container('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::AmsduSubframeHeader > >', 'std::pair< ns3::Ptr< ns3::Packet >, ns3::AmsduSubframeHeader >', container_type=u'list') + module.add_container('std::vector< unsigned short >', 'short unsigned int', container_type=u'vector') typehandlers.add_type_alias(u'std::vector< ns3::McsGroup, std::allocator< ns3::McsGroup > >', u'ns3::MinstrelMcsGroups') typehandlers.add_type_alias(u'std::vector< ns3::McsGroup, std::allocator< ns3::McsGroup > >*', u'ns3::MinstrelMcsGroups*') typehandlers.add_type_alias(u'std::vector< ns3::McsGroup, std::allocator< ns3::McsGroup > >&', u'ns3::MinstrelMcsGroups&') @@ -702,6 +741,12 @@ def register_types(module): typehandlers.add_type_alias(u'uint8_t', u'ns3::WifiInformationElementId') typehandlers.add_type_alias(u'uint8_t*', u'ns3::WifiInformationElementId*') typehandlers.add_type_alias(u'uint8_t&', u'ns3::WifiInformationElementId&') + typehandlers.add_type_alias(u'std::vector< double, std::allocator< double > >', u'ns3::Values') + typehandlers.add_type_alias(u'std::vector< double, std::allocator< double > >*', u'ns3::Values*') + typehandlers.add_type_alias(u'std::vector< double, std::allocator< double > >&', u'ns3::Values&') + typehandlers.add_type_alias(u'std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >', u'ns3::Bands') + typehandlers.add_type_alias(u'std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >*', u'ns3::Bands*') + typehandlers.add_type_alias(u'std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >&', u'ns3::Bands&') typehandlers.add_type_alias(u'ns3::Vector3D', u'ns3::Vector') typehandlers.add_type_alias(u'ns3::Vector3D*', u'ns3::Vector*') typehandlers.add_type_alias(u'ns3::Vector3D&', u'ns3::Vector&') @@ -722,6 +767,9 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< std::vector< unsigned int, std::allocator< unsigned int > >, std::allocator< std::vector< unsigned int, std::allocator< unsigned int > > > >', u'ns3::SampleRate') typehandlers.add_type_alias(u'std::vector< std::vector< unsigned int, std::allocator< unsigned int > >, std::allocator< std::vector< unsigned int, std::allocator< unsigned int > > > >*', u'ns3::SampleRate*') typehandlers.add_type_alias(u'std::vector< std::vector< unsigned int, std::allocator< unsigned int > >, std::allocator< std::vector< unsigned int, std::allocator< unsigned int > > > >&', u'ns3::SampleRate&') + typehandlers.add_type_alias(u'uint32_t', u'ns3::SpectrumModelUid_t') + typehandlers.add_type_alias(u'uint32_t*', u'ns3::SpectrumModelUid_t*') + typehandlers.add_type_alias(u'uint32_t&', u'ns3::SpectrumModelUid_t&') typehandlers.add_type_alias(u'std::vector< ns3::GroupInfo, std::allocator< ns3::GroupInfo > >', u'ns3::McsGroupData') typehandlers.add_type_alias(u'std::vector< ns3::GroupInfo, std::allocator< ns3::GroupInfo > >*', u'ns3::McsGroupData*') typehandlers.add_type_alias(u'std::vector< ns3::GroupInfo, std::allocator< ns3::GroupInfo > >&', u'ns3::McsGroupData&') @@ -831,11 +879,13 @@ def register_types_ns3_internal(module): def register_methods(root_module): register_Ns3Address_methods(root_module, root_module['ns3::Address']) + register_Ns3Angles_methods(root_module, root_module['ns3::Angles']) register_Ns3AsciiTraceHelper_methods(root_module, root_module['ns3::AsciiTraceHelper']) register_Ns3AsciiTraceHelperForDevice_methods(root_module, root_module['ns3::AsciiTraceHelperForDevice']) register_Ns3AthstatsHelper_methods(root_module, root_module['ns3::AthstatsHelper']) register_Ns3AttributeConstructionList_methods(root_module, root_module['ns3::AttributeConstructionList']) register_Ns3AttributeConstructionListItem_methods(root_module, root_module['ns3::AttributeConstructionList::Item']) + register_Ns3BandInfo_methods(root_module, root_module['ns3::BandInfo']) register_Ns3Bar_methods(root_module, root_module['ns3::Bar']) register_Ns3BlockAckAgreement_methods(root_module, root_module['ns3::BlockAckAgreement']) register_Ns3BlockAckCache_methods(root_module, root_module['ns3::BlockAckCache']) @@ -912,6 +962,7 @@ def register_methods(root_module): register_Ns3WifiModeFactory_methods(root_module, root_module['ns3::WifiModeFactory']) register_Ns3WifiPhyHelper_methods(root_module, root_module['ns3::WifiPhyHelper']) register_Ns3WifiPhyListener_methods(root_module, root_module['ns3::WifiPhyListener']) + register_Ns3WifiPhyTag_methods(root_module, root_module['ns3::WifiPhyTag']) register_Ns3WifiRadioEnergyModelHelper_methods(root_module, root_module['ns3::WifiRadioEnergyModelHelper']) register_Ns3WifiRadioEnergyModelPhyListener_methods(root_module, root_module['ns3::WifiRadioEnergyModelPhyListener']) register_Ns3WifiRemoteStation_methods(root_module, root_module['ns3::WifiRemoteStation']) @@ -959,9 +1010,18 @@ def register_methods(root_module): register_Ns3SimpleRefCount__Ns3OutputStreamWrapper_Ns3Empty_Ns3DefaultDeleter__lt__ns3OutputStreamWrapper__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter >']) register_Ns3SimpleRefCount__Ns3Packet_Ns3Empty_Ns3DefaultDeleter__lt__ns3Packet__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) register_Ns3SimpleRefCount__Ns3QueueItem_Ns3Empty_Ns3DefaultDeleter__lt__ns3QueueItem__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + register_Ns3SimpleRefCount__Ns3SpectrumModel_Ns3Empty_Ns3DefaultDeleter__lt__ns3SpectrumModel__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter >']) + register_Ns3SimpleRefCount__Ns3SpectrumSignalParameters_Ns3Empty_Ns3DefaultDeleter__lt__ns3SpectrumSignalParameters__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::SpectrumSignalParameters, ns3::empty, ns3::DefaultDeleter >']) + register_Ns3SimpleRefCount__Ns3SpectrumValue_Ns3Empty_Ns3DefaultDeleter__lt__ns3SpectrumValue__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter >']) register_Ns3SimpleRefCount__Ns3TraceSourceAccessor_Ns3Empty_Ns3DefaultDeleter__lt__ns3TraceSourceAccessor__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter >']) register_Ns3SimpleRefCount__Ns3WifiInformationElement_Ns3Empty_Ns3DefaultDeleter__lt__ns3WifiInformationElement__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::WifiInformationElement, ns3::empty, ns3::DefaultDeleter >']) register_Ns3SnrTag_methods(root_module, root_module['ns3::SnrTag']) + register_Ns3SpectrumInterference_methods(root_module, root_module['ns3::SpectrumInterference']) + register_Ns3SpectrumModel_methods(root_module, root_module['ns3::SpectrumModel']) + register_Ns3SpectrumPhy_methods(root_module, root_module['ns3::SpectrumPhy']) + register_Ns3SpectrumSignalParameters_methods(root_module, root_module['ns3::SpectrumSignalParameters']) + register_Ns3SpectrumValue_methods(root_module, root_module['ns3::SpectrumValue']) + register_Ns3SpectrumWifiPhyHelper_methods(root_module, root_module['ns3::SpectrumWifiPhyHelper']) register_Ns3ThreeLogDistancePropagationLossModel_methods(root_module, root_module['ns3::ThreeLogDistancePropagationLossModel']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -982,6 +1042,8 @@ def register_methods(root_module): register_Ns3WifiPhy_methods(root_module, root_module['ns3::WifiPhy']) register_Ns3WifiPhyStateHelper_methods(root_module, root_module['ns3::WifiPhyStateHelper']) register_Ns3WifiRemoteStationManager_methods(root_module, root_module['ns3::WifiRemoteStationManager']) + register_Ns3WifiSpectrumPhyInterface_methods(root_module, root_module['ns3::WifiSpectrumPhyInterface']) + register_Ns3WifiSpectrumSignalParameters_methods(root_module, root_module['ns3::WifiSpectrumSignalParameters']) register_Ns3WifiTxCurrentModel_methods(root_module, root_module['ns3::WifiTxCurrentModel']) register_Ns3YansWifiPhy_methods(root_module, root_module['ns3::YansWifiPhy']) register_Ns3ZetaRandomVariable_methods(root_module, root_module['ns3::ZetaRandomVariable']) @@ -991,6 +1053,7 @@ def register_methods(root_module): register_Ns3AmpduSubframeHeader_methods(root_module, root_module['ns3::AmpduSubframeHeader']) register_Ns3AmrrWifiManager_methods(root_module, root_module['ns3::AmrrWifiManager']) register_Ns3AmsduSubframeHeader_methods(root_module, root_module['ns3::AmsduSubframeHeader']) + register_Ns3AntennaModel_methods(root_module, root_module['ns3::AntennaModel']) register_Ns3AparfWifiManager_methods(root_module, root_module['ns3::AparfWifiManager']) register_Ns3ArfWifiManager_methods(root_module, root_module['ns3::ArfWifiManager']) register_Ns3AthstatsWifiTraceSink_methods(root_module, root_module['ns3::AthstatsWifiTraceSink']) @@ -1092,6 +1155,8 @@ def register_methods(root_module): register_Ns3QueueItem_methods(root_module, root_module['ns3::QueueItem']) register_Ns3RegularWifiMac_methods(root_module, root_module['ns3::RegularWifiMac']) register_Ns3RraaWifiManager_methods(root_module, root_module['ns3::RraaWifiManager']) + register_Ns3SpectrumChannel_methods(root_module, root_module['ns3::SpectrumChannel']) + register_Ns3SpectrumWifiPhy_methods(root_module, root_module['ns3::SpectrumWifiPhy']) register_Ns3Ssid_methods(root_module, root_module['ns3::Ssid']) register_Ns3SsidChecker_methods(root_module, root_module['ns3::SsidChecker']) register_Ns3SsidValue_methods(root_module, root_module['ns3::SsidValue']) @@ -1199,6 +1264,24 @@ def register_Ns3Address_methods(root_module, cls): is_const=True) return +def register_Ns3Angles_methods(root_module, cls): + cls.add_output_stream_operator() + ## angles.h (module 'antenna'): ns3::Angles::Angles(ns3::Angles const & arg0) [copy constructor] + cls.add_constructor([param('ns3::Angles const &', 'arg0')]) + ## angles.h (module 'antenna'): ns3::Angles::Angles() [constructor] + cls.add_constructor([]) + ## angles.h (module 'antenna'): ns3::Angles::Angles(double phi, double theta) [constructor] + cls.add_constructor([param('double', 'phi'), param('double', 'theta')]) + ## angles.h (module 'antenna'): ns3::Angles::Angles(ns3::Vector v) [constructor] + cls.add_constructor([param('ns3::Vector', 'v')]) + ## angles.h (module 'antenna'): ns3::Angles::Angles(ns3::Vector v, ns3::Vector o) [constructor] + cls.add_constructor([param('ns3::Vector', 'v'), param('ns3::Vector', 'o')]) + ## angles.h (module 'antenna'): ns3::Angles::phi [variable] + cls.add_instance_attribute('phi', 'double', is_const=False) + ## angles.h (module 'antenna'): ns3::Angles::theta [variable] + cls.add_instance_attribute('theta', 'double', is_const=False) + return + def register_Ns3AsciiTraceHelper_methods(root_module, cls): ## trace-helper.h (module 'network'): ns3::AsciiTraceHelper::AsciiTraceHelper(ns3::AsciiTraceHelper const & arg0) [copy constructor] cls.add_constructor([param('ns3::AsciiTraceHelper const &', 'arg0')]) @@ -1380,6 +1463,19 @@ def register_Ns3AttributeConstructionListItem_methods(root_module, cls): cls.add_instance_attribute('value', 'ns3::Ptr< ns3::AttributeValue >', is_const=False) return +def register_Ns3BandInfo_methods(root_module, cls): + ## spectrum-model.h (module 'spectrum'): ns3::BandInfo::BandInfo() [constructor] + cls.add_constructor([]) + ## spectrum-model.h (module 'spectrum'): ns3::BandInfo::BandInfo(ns3::BandInfo const & arg0) [copy constructor] + cls.add_constructor([param('ns3::BandInfo const &', 'arg0')]) + ## spectrum-model.h (module 'spectrum'): ns3::BandInfo::fc [variable] + cls.add_instance_attribute('fc', 'double', is_const=False) + ## spectrum-model.h (module 'spectrum'): ns3::BandInfo::fh [variable] + cls.add_instance_attribute('fh', 'double', is_const=False) + ## spectrum-model.h (module 'spectrum'): ns3::BandInfo::fl [variable] + cls.add_instance_attribute('fl', 'double', is_const=False) + return + def register_Ns3Bar_methods(root_module, cls): ## block-ack-manager.h (module 'wifi'): ns3::Bar::Bar(ns3::Bar const & arg0) [copy constructor] cls.add_constructor([param('ns3::Bar const &', 'arg0')]) @@ -2584,6 +2680,10 @@ def register_Ns3InterferenceHelper_methods(root_module, cls): cls.add_method('Add', 'ns3::Ptr< ns3::InterferenceHelper::Event >', [param('uint32_t', 'size'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::Time', 'duration'), param('double', 'rxPower')]) + ## interference-helper.h (module 'wifi'): void ns3::InterferenceHelper::AddForeignSignal(ns3::Time duration, double rxPower) [member function] + cls.add_method('AddForeignSignal', + 'void', + [param('ns3::Time', 'duration'), param('double', 'rxPower')]) ## interference-helper.h (module 'wifi'): ns3::InterferenceHelper::SnrPer ns3::InterferenceHelper::CalculatePlcpHeaderSnrPer(ns3::Ptr event) [member function] cls.add_method('CalculatePlcpHeaderSnrPer', 'ns3::InterferenceHelper::SnrPer', @@ -4959,6 +5059,60 @@ def register_Ns3WifiPhyListener_methods(root_module, cls): is_pure_virtual=True, is_virtual=True) return +def register_Ns3WifiPhyTag_methods(root_module, cls): + ## wifi-phy-tag.h (module 'wifi'): ns3::WifiPhyTag::WifiPhyTag(ns3::WifiPhyTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::WifiPhyTag const &', 'arg0')]) + ## wifi-phy-tag.h (module 'wifi'): ns3::WifiPhyTag::WifiPhyTag() [constructor] + cls.add_constructor([]) + ## wifi-phy-tag.h (module 'wifi'): ns3::WifiPhyTag::WifiPhyTag(ns3::WifiTxVector txVector, ns3::WifiPreamble preamble, ns3::mpduType mpdutype) [constructor] + cls.add_constructor([param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::mpduType', 'mpdutype')]) + ## wifi-phy-tag.h (module 'wifi'): void ns3::WifiPhyTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## wifi-phy-tag.h (module 'wifi'): ns3::TypeId ns3::WifiPhyTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## wifi-phy-tag.h (module 'wifi'): ns3::mpduType ns3::WifiPhyTag::GetMpduType() const [member function] + cls.add_method('GetMpduType', + 'ns3::mpduType', + [], + is_const=True) + ## wifi-phy-tag.h (module 'wifi'): uint32_t ns3::WifiPhyTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## wifi-phy-tag.h (module 'wifi'): static ns3::TypeId ns3::WifiPhyTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## wifi-phy-tag.h (module 'wifi'): ns3::WifiPreamble ns3::WifiPhyTag::GetWifiPreamble() const [member function] + cls.add_method('GetWifiPreamble', + 'ns3::WifiPreamble', + [], + is_const=True) + ## wifi-phy-tag.h (module 'wifi'): ns3::WifiTxVector ns3::WifiPhyTag::GetWifiTxVector() const [member function] + cls.add_method('GetWifiTxVector', + 'ns3::WifiTxVector', + [], + is_const=True) + ## wifi-phy-tag.h (module 'wifi'): void ns3::WifiPhyTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## wifi-phy-tag.h (module 'wifi'): void ns3::WifiPhyTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + return + def register_Ns3WifiRadioEnergyModelHelper_methods(root_module, cls): ## wifi-radio-energy-model-helper.h (module 'wifi'): ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper(ns3::WifiRadioEnergyModelHelper const & arg0) [copy constructor] cls.add_constructor([param('ns3::WifiRadioEnergyModelHelper const &', 'arg0')]) @@ -6764,6 +6918,42 @@ def register_Ns3SimpleRefCount__Ns3QueueItem_Ns3Empty_Ns3DefaultDeleter__lt__ns3 is_static=True) return +def register_Ns3SimpleRefCount__Ns3SpectrumModel_Ns3Empty_Ns3DefaultDeleter__lt__ns3SpectrumModel__gt___methods(root_module, cls): + ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount() [constructor] + cls.add_constructor([]) + ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount(ns3::SimpleRefCount > const & o) [copy constructor] + cls.add_constructor([param('ns3::SimpleRefCount< ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter< ns3::SpectrumModel > > const &', 'o')]) + ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount >::Cleanup() [member function] + cls.add_method('Cleanup', + 'void', + [], + is_static=True) + return + +def register_Ns3SimpleRefCount__Ns3SpectrumSignalParameters_Ns3Empty_Ns3DefaultDeleter__lt__ns3SpectrumSignalParameters__gt___methods(root_module, cls): + ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount() [constructor] + cls.add_constructor([]) + ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount(ns3::SimpleRefCount > const & o) [copy constructor] + cls.add_constructor([param('ns3::SimpleRefCount< ns3::SpectrumSignalParameters, ns3::empty, ns3::DefaultDeleter< ns3::SpectrumSignalParameters > > const &', 'o')]) + ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount >::Cleanup() [member function] + cls.add_method('Cleanup', + 'void', + [], + is_static=True) + return + +def register_Ns3SimpleRefCount__Ns3SpectrumValue_Ns3Empty_Ns3DefaultDeleter__lt__ns3SpectrumValue__gt___methods(root_module, cls): + ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount() [constructor] + cls.add_constructor([]) + ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount(ns3::SimpleRefCount > const & o) [copy constructor] + cls.add_constructor([param('ns3::SimpleRefCount< ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter< ns3::SpectrumValue > > const &', 'o')]) + ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount >::Cleanup() [member function] + cls.add_method('Cleanup', + 'void', + [], + is_static=True) + return + def register_Ns3SimpleRefCount__Ns3TraceSourceAccessor_Ns3Empty_Ns3DefaultDeleter__lt__ns3TraceSourceAccessor__gt___methods(root_module, cls): ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount() [constructor] cls.add_constructor([]) @@ -6836,6 +7026,269 @@ def register_Ns3SnrTag_methods(root_module, cls): [param('double', 'snr')]) return +def register_Ns3SpectrumInterference_methods(root_module, cls): + ## spectrum-interference.h (module 'spectrum'): ns3::SpectrumInterference::SpectrumInterference(ns3::SpectrumInterference const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SpectrumInterference const &', 'arg0')]) + ## spectrum-interference.h (module 'spectrum'): ns3::SpectrumInterference::SpectrumInterference() [constructor] + cls.add_constructor([]) + ## spectrum-interference.h (module 'spectrum'): void ns3::SpectrumInterference::AbortRx() [member function] + cls.add_method('AbortRx', + 'void', + []) + ## spectrum-interference.h (module 'spectrum'): void ns3::SpectrumInterference::AddSignal(ns3::Ptr spd, ns3::Time const duration) [member function] + cls.add_method('AddSignal', + 'void', + [param('ns3::Ptr< ns3::SpectrumValue const >', 'spd'), param('ns3::Time const', 'duration')]) + ## spectrum-interference.h (module 'spectrum'): bool ns3::SpectrumInterference::EndRx() [member function] + cls.add_method('EndRx', + 'bool', + []) + ## spectrum-interference.h (module 'spectrum'): static ns3::TypeId ns3::SpectrumInterference::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## spectrum-interference.h (module 'spectrum'): void ns3::SpectrumInterference::SetErrorModel(ns3::Ptr e) [member function] + cls.add_method('SetErrorModel', + 'void', + [param('ns3::Ptr< ns3::SpectrumErrorModel >', 'e')]) + ## spectrum-interference.h (module 'spectrum'): void ns3::SpectrumInterference::SetNoisePowerSpectralDensity(ns3::Ptr noisePsd) [member function] + cls.add_method('SetNoisePowerSpectralDensity', + 'void', + [param('ns3::Ptr< ns3::SpectrumValue const >', 'noisePsd')]) + ## spectrum-interference.h (module 'spectrum'): void ns3::SpectrumInterference::StartRx(ns3::Ptr p, ns3::Ptr rxPsd) [member function] + cls.add_method('StartRx', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd')]) + ## spectrum-interference.h (module 'spectrum'): void ns3::SpectrumInterference::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + return + +def register_Ns3SpectrumModel_methods(root_module, cls): + cls.add_binary_comparison_operator('==') + ## spectrum-model.h (module 'spectrum'): ns3::SpectrumModel::SpectrumModel(ns3::SpectrumModel const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SpectrumModel const &', 'arg0')]) + ## spectrum-model.h (module 'spectrum'): ns3::SpectrumModel::SpectrumModel(std::vector > centerFreqs) [constructor] + cls.add_constructor([param('std::vector< double >', 'centerFreqs')]) + ## spectrum-model.h (module 'spectrum'): ns3::SpectrumModel::SpectrumModel(ns3::Bands bands) [constructor] + cls.add_constructor([param('ns3::Bands', 'bands')]) + ## spectrum-model.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumModel::Begin() const [member function] + cls.add_method('Begin', + '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', + [], + is_const=True) + ## spectrum-model.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumModel::End() const [member function] + cls.add_method('End', + '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', + [], + is_const=True) + ## spectrum-model.h (module 'spectrum'): size_t ns3::SpectrumModel::GetNumBands() const [member function] + cls.add_method('GetNumBands', + 'size_t', + [], + is_const=True) + ## spectrum-model.h (module 'spectrum'): ns3::SpectrumModelUid_t ns3::SpectrumModel::GetUid() const [member function] + cls.add_method('GetUid', + 'ns3::SpectrumModelUid_t', + [], + is_const=True) + return + +def register_Ns3SpectrumPhy_methods(root_module, cls): + ## spectrum-phy.h (module 'spectrum'): ns3::SpectrumPhy::SpectrumPhy() [constructor] + cls.add_constructor([]) + ## spectrum-phy.h (module 'spectrum'): static ns3::TypeId ns3::SpectrumPhy::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## spectrum-phy.h (module 'spectrum'): void ns3::SpectrumPhy::SetDevice(ns3::Ptr d) [member function] + cls.add_method('SetDevice', + 'void', + [param('ns3::Ptr< ns3::NetDevice >', 'd')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): ns3::Ptr ns3::SpectrumPhy::GetDevice() const [member function] + cls.add_method('GetDevice', + 'ns3::Ptr< ns3::NetDevice >', + [], + is_pure_virtual=True, is_const=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): void ns3::SpectrumPhy::SetMobility(ns3::Ptr m) [member function] + cls.add_method('SetMobility', + 'void', + [param('ns3::Ptr< ns3::MobilityModel >', 'm')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): ns3::Ptr ns3::SpectrumPhy::GetMobility() [member function] + cls.add_method('GetMobility', + 'ns3::Ptr< ns3::MobilityModel >', + [], + is_pure_virtual=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): void ns3::SpectrumPhy::SetChannel(ns3::Ptr c) [member function] + cls.add_method('SetChannel', + 'void', + [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): ns3::Ptr ns3::SpectrumPhy::GetRxSpectrumModel() const [member function] + cls.add_method('GetRxSpectrumModel', + 'ns3::Ptr< ns3::SpectrumModel const >', + [], + is_pure_virtual=True, is_const=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): ns3::Ptr ns3::SpectrumPhy::GetRxAntenna() [member function] + cls.add_method('GetRxAntenna', + 'ns3::Ptr< ns3::AntennaModel >', + [], + is_pure_virtual=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): void ns3::SpectrumPhy::StartRx(ns3::Ptr params) [member function] + cls.add_method('StartRx', + 'void', + [param('ns3::Ptr< ns3::SpectrumSignalParameters >', 'params')], + is_pure_virtual=True, is_virtual=True) + return + +def register_Ns3SpectrumSignalParameters_methods(root_module, cls): + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters::SpectrumSignalParameters() [constructor] + cls.add_constructor([]) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters::SpectrumSignalParameters(ns3::SpectrumSignalParameters const & p) [copy constructor] + cls.add_constructor([param('ns3::SpectrumSignalParameters const &', 'p')]) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::Ptr ns3::SpectrumSignalParameters::Copy() [member function] + cls.add_method('Copy', + 'ns3::Ptr< ns3::SpectrumSignalParameters >', + [], + is_virtual=True) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters::duration [variable] + cls.add_instance_attribute('duration', 'ns3::Time', is_const=False) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters::psd [variable] + cls.add_instance_attribute('psd', 'ns3::Ptr< ns3::SpectrumValue >', is_const=False) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters::txAntenna [variable] + cls.add_instance_attribute('txAntenna', 'ns3::Ptr< ns3::AntennaModel >', is_const=False) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters::txPhy [variable] + cls.add_instance_attribute('txPhy', 'ns3::Ptr< ns3::SpectrumPhy >', is_const=False) + return + +def register_Ns3SpectrumValue_methods(root_module, cls): + cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', u'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', u'right')) + cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', u'right')) + cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', u'right')) + cls.add_unary_numeric_operator('-') + cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', u'right')) + cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', u'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', u'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', u'right')) + cls.add_output_stream_operator() + cls.add_inplace_numeric_operator('*=', param('ns3::SpectrumValue const &', u'right')) + cls.add_inplace_numeric_operator('*=', param('double', u'right')) + cls.add_inplace_numeric_operator('+=', param('ns3::SpectrumValue const &', u'right')) + cls.add_inplace_numeric_operator('+=', param('double', u'right')) + cls.add_inplace_numeric_operator('-=', param('ns3::SpectrumValue const &', u'right')) + cls.add_inplace_numeric_operator('-=', param('double', u'right')) + cls.add_inplace_numeric_operator('/=', param('ns3::SpectrumValue const &', u'right')) + cls.add_inplace_numeric_operator('/=', param('double', u'right')) + ## spectrum-value.h (module 'spectrum'): ns3::SpectrumValue::SpectrumValue(ns3::SpectrumValue const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SpectrumValue const &', 'arg0')]) + ## spectrum-value.h (module 'spectrum'): ns3::SpectrumValue::SpectrumValue(ns3::Ptr sm) [constructor] + cls.add_constructor([param('ns3::Ptr< ns3::SpectrumModel const >', 'sm')]) + ## spectrum-value.h (module 'spectrum'): ns3::SpectrumValue::SpectrumValue() [constructor] + cls.add_constructor([]) + ## spectrum-value.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumValue::ConstBandsBegin() const [member function] + cls.add_method('ConstBandsBegin', + '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumValue::ConstBandsEnd() const [member function] + cls.add_method('ConstBandsEnd', + '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumValue::ConstValuesBegin() const [member function] + cls.add_method('ConstValuesBegin', + '__gnu_cxx::__normal_iterator< double const *, std::vector< double > >', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumValue::ConstValuesEnd() const [member function] + cls.add_method('ConstValuesEnd', + '__gnu_cxx::__normal_iterator< double const *, std::vector< double > >', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): ns3::Ptr ns3::SpectrumValue::Copy() const [member function] + cls.add_method('Copy', + 'ns3::Ptr< ns3::SpectrumValue >', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): ns3::Ptr ns3::SpectrumValue::GetSpectrumModel() const [member function] + cls.add_method('GetSpectrumModel', + 'ns3::Ptr< ns3::SpectrumModel const >', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): ns3::SpectrumModelUid_t ns3::SpectrumValue::GetSpectrumModelUid() const [member function] + cls.add_method('GetSpectrumModelUid', + 'ns3::SpectrumModelUid_t', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumValue::ValuesBegin() [member function] + cls.add_method('ValuesBegin', + '__gnu_cxx::__normal_iterator< double *, std::vector< double > >', + []) + ## spectrum-value.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumValue::ValuesEnd() [member function] + cls.add_method('ValuesEnd', + '__gnu_cxx::__normal_iterator< double *, std::vector< double > >', + []) + return + +def register_Ns3SpectrumWifiPhyHelper_methods(root_module, cls): + ## spectrum-wifi-helper.h (module 'wifi'): ns3::SpectrumWifiPhyHelper::SpectrumWifiPhyHelper(ns3::SpectrumWifiPhyHelper const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SpectrumWifiPhyHelper const &', 'arg0')]) + ## spectrum-wifi-helper.h (module 'wifi'): ns3::SpectrumWifiPhyHelper::SpectrumWifiPhyHelper() [constructor] + cls.add_constructor([]) + ## spectrum-wifi-helper.h (module 'wifi'): static ns3::SpectrumWifiPhyHelper ns3::SpectrumWifiPhyHelper::Default() [member function] + cls.add_method('Default', + 'ns3::SpectrumWifiPhyHelper', + [], + is_static=True) + ## spectrum-wifi-helper.h (module 'wifi'): ns3::PcapHelper::DataLinkType ns3::SpectrumWifiPhyHelper::GetPcapDataLinkType() const [member function] + cls.add_method('GetPcapDataLinkType', + 'ns3::PcapHelper::DataLinkType', + [], + is_const=True) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::Set(std::string name, ns3::AttributeValue const & v) [member function] + cls.add_method('Set', + 'void', + [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')]) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::SetChannel(ns3::Ptr channel) [member function] + cls.add_method('SetChannel', + 'void', + [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')]) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::SetChannel(std::string channelName) [member function] + cls.add_method('SetChannel', + 'void', + [param('std::string', 'channelName')]) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::SetErrorRateModel(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function] + cls.add_method('SetErrorRateModel', + 'void', + [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')]) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::SetPcapDataLinkType(ns3::SpectrumWifiPhyHelper::SupportedPcapDataLinkTypes dlt) [member function] + cls.add_method('SetPcapDataLinkType', + 'void', + [param('ns3::SpectrumWifiPhyHelper::SupportedPcapDataLinkTypes', 'dlt')]) + ## spectrum-wifi-helper.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhyHelper::Create(ns3::Ptr node, ns3::Ptr device) const [member function] + cls.add_method('Create', + 'ns3::Ptr< ns3::WifiPhy >', + [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::NetDevice >', 'device')], + is_const=True, visibility='private', is_virtual=True) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd, bool explicitFilename) [member function] + cls.add_method('EnableAsciiInternal', + 'void', + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename')], + visibility='private', is_virtual=True) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool promiscuous, bool explicitFilename) [member function] + cls.add_method('EnablePcapInternal', + 'void', + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous'), param('bool', 'explicitFilename')], + visibility='private', is_virtual=True) + return + def register_Ns3ThreeLogDistancePropagationLossModel_methods(root_module, cls): ## propagation-loss-model.h (module 'propagation'): static ns3::TypeId ns3::ThreeLogDistancePropagationLossModel::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -9900,6 +10353,79 @@ def register_Ns3WifiRemoteStationManager_methods(root_module, cls): is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) return +def register_Ns3WifiSpectrumPhyInterface_methods(root_module, cls): + ## wifi-spectrum-phy-interface.h (module 'wifi'): static ns3::TypeId ns3::WifiSpectrumPhyInterface::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): ns3::WifiSpectrumPhyInterface::WifiSpectrumPhyInterface() [constructor] + cls.add_constructor([]) + ## wifi-spectrum-phy-interface.h (module 'wifi'): void ns3::WifiSpectrumPhyInterface::SetSpectrumWifiPhy(ns3::Ptr phy) [member function] + cls.add_method('SetSpectrumWifiPhy', + 'void', + [param('ns3::Ptr< ns3::SpectrumWifiPhy >', 'phy')]) + ## wifi-spectrum-phy-interface.h (module 'wifi'): ns3::Ptr ns3::WifiSpectrumPhyInterface::GetDevice() const [member function] + cls.add_method('GetDevice', + 'ns3::Ptr< ns3::NetDevice >', + [], + is_const=True, is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): void ns3::WifiSpectrumPhyInterface::SetDevice(ns3::Ptr d) [member function] + cls.add_method('SetDevice', + 'void', + [param('ns3::Ptr< ns3::NetDevice >', 'd')], + is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): void ns3::WifiSpectrumPhyInterface::SetMobility(ns3::Ptr m) [member function] + cls.add_method('SetMobility', + 'void', + [param('ns3::Ptr< ns3::MobilityModel >', 'm')], + is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): ns3::Ptr ns3::WifiSpectrumPhyInterface::GetMobility() [member function] + cls.add_method('GetMobility', + 'ns3::Ptr< ns3::MobilityModel >', + [], + is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): void ns3::WifiSpectrumPhyInterface::SetChannel(ns3::Ptr c) [member function] + cls.add_method('SetChannel', + 'void', + [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')], + is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): ns3::Ptr ns3::WifiSpectrumPhyInterface::GetRxSpectrumModel() const [member function] + cls.add_method('GetRxSpectrumModel', + 'ns3::Ptr< ns3::SpectrumModel const >', + [], + is_const=True, is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): ns3::Ptr ns3::WifiSpectrumPhyInterface::GetRxAntenna() [member function] + cls.add_method('GetRxAntenna', + 'ns3::Ptr< ns3::AntennaModel >', + [], + is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): void ns3::WifiSpectrumPhyInterface::StartRx(ns3::Ptr params) [member function] + cls.add_method('StartRx', + 'void', + [param('ns3::Ptr< ns3::SpectrumSignalParameters >', 'params')], + is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): void ns3::WifiSpectrumPhyInterface::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='private', is_virtual=True) + return + +def register_Ns3WifiSpectrumSignalParameters_methods(root_module, cls): + ## wifi-spectrum-signal-parameters.h (module 'wifi'): ns3::WifiSpectrumSignalParameters::WifiSpectrumSignalParameters() [constructor] + cls.add_constructor([]) + ## wifi-spectrum-signal-parameters.h (module 'wifi'): ns3::WifiSpectrumSignalParameters::WifiSpectrumSignalParameters(ns3::WifiSpectrumSignalParameters const & p) [copy constructor] + cls.add_constructor([param('ns3::WifiSpectrumSignalParameters const &', 'p')]) + ## wifi-spectrum-signal-parameters.h (module 'wifi'): ns3::Ptr ns3::WifiSpectrumSignalParameters::Copy() [member function] + cls.add_method('Copy', + 'ns3::Ptr< ns3::SpectrumSignalParameters >', + [], + is_virtual=True) + ## wifi-spectrum-signal-parameters.h (module 'wifi'): ns3::WifiSpectrumSignalParameters::packet [variable] + cls.add_instance_attribute('packet', 'ns3::Ptr< ns3::Packet >', is_const=False) + return + def register_Ns3WifiTxCurrentModel_methods(root_module, cls): ## wifi-tx-current-model.h (module 'wifi'): ns3::WifiTxCurrentModel::WifiTxCurrentModel(ns3::WifiTxCurrentModel const & arg0) [copy constructor] cls.add_constructor([param('ns3::WifiTxCurrentModel const &', 'arg0')]) @@ -10743,6 +11269,23 @@ def register_Ns3AmsduSubframeHeader_methods(root_module, cls): [param('ns3::Mac48Address', 'to')]) return +def register_Ns3AntennaModel_methods(root_module, cls): + ## antenna-model.h (module 'antenna'): ns3::AntennaModel::AntennaModel(ns3::AntennaModel const & arg0) [copy constructor] + cls.add_constructor([param('ns3::AntennaModel const &', 'arg0')]) + ## antenna-model.h (module 'antenna'): ns3::AntennaModel::AntennaModel() [constructor] + cls.add_constructor([]) + ## antenna-model.h (module 'antenna'): double ns3::AntennaModel::GetGainDb(ns3::Angles a) [member function] + cls.add_method('GetGainDb', + 'double', + [param('ns3::Angles', 'a')], + is_pure_virtual=True, is_virtual=True) + ## antenna-model.h (module 'antenna'): static ns3::TypeId ns3::AntennaModel::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + return + def register_Ns3AparfWifiManager_methods(root_module, cls): ## aparf-wifi-manager.h (module 'wifi'): ns3::AparfWifiManager::AparfWifiManager(ns3::AparfWifiManager const & arg0) [copy constructor] cls.add_constructor([param('ns3::AparfWifiManager const &', 'arg0')]) @@ -16390,6 +16933,469 @@ def register_Ns3RraaWifiManager_methods(root_module, cls): is_const=True, visibility='private', is_virtual=True) return +def register_Ns3SpectrumChannel_methods(root_module, cls): + ## spectrum-channel.h (module 'spectrum'): ns3::SpectrumChannel::SpectrumChannel() [constructor] + cls.add_constructor([]) + ## spectrum-channel.h (module 'spectrum'): ns3::SpectrumChannel::SpectrumChannel(ns3::SpectrumChannel const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SpectrumChannel const &', 'arg0')]) + ## spectrum-channel.h (module 'spectrum'): void ns3::SpectrumChannel::AddPropagationLossModel(ns3::Ptr loss) [member function] + cls.add_method('AddPropagationLossModel', + 'void', + [param('ns3::Ptr< ns3::PropagationLossModel >', 'loss')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-channel.h (module 'spectrum'): void ns3::SpectrumChannel::AddRx(ns3::Ptr phy) [member function] + cls.add_method('AddRx', + 'void', + [param('ns3::Ptr< ns3::SpectrumPhy >', 'phy')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-channel.h (module 'spectrum'): void ns3::SpectrumChannel::AddSpectrumPropagationLossModel(ns3::Ptr loss) [member function] + cls.add_method('AddSpectrumPropagationLossModel', + 'void', + [param('ns3::Ptr< ns3::SpectrumPropagationLossModel >', 'loss')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-channel.h (module 'spectrum'): static ns3::TypeId ns3::SpectrumChannel::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## spectrum-channel.h (module 'spectrum'): void ns3::SpectrumChannel::SetPropagationDelayModel(ns3::Ptr delay) [member function] + cls.add_method('SetPropagationDelayModel', + 'void', + [param('ns3::Ptr< ns3::PropagationDelayModel >', 'delay')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-channel.h (module 'spectrum'): void ns3::SpectrumChannel::StartTx(ns3::Ptr params) [member function] + cls.add_method('StartTx', + 'void', + [param('ns3::Ptr< ns3::SpectrumSignalParameters >', 'params')], + is_pure_virtual=True, is_virtual=True) + return + +def register_Ns3SpectrumWifiPhy_methods(root_module, cls): + ## spectrum-wifi-phy.h (module 'wifi'): ns3::SpectrumWifiPhy::SpectrumWifiPhy(ns3::SpectrumWifiPhy const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SpectrumWifiPhy const &', 'arg0')]) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::SpectrumWifiPhy::SpectrumWifiPhy() [constructor] + cls.add_constructor([]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::AddOperationalChannel(uint16_t channelNumber) [member function] + cls.add_method('AddOperationalChannel', + 'void', + [param('uint16_t', 'channelNumber')]) + ## spectrum-wifi-phy.h (module 'wifi'): int64_t ns3::SpectrumWifiPhy::AssignStreams(int64_t stream) [member function] + cls.add_method('AssignStreams', + 'int64_t', + [param('int64_t', 'stream')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::CalculateSnr(ns3::WifiTxVector txVector, double ber) const [member function] + cls.add_method('CalculateSnr', + 'double', + [param('ns3::WifiTxVector', 'txVector'), param('double', 'ber')], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::ClearOperationalChannelList() [member function] + cls.add_method('ClearOperationalChannelList', + 'void', + []) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::ConfigureStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::CreateWifiSpectrumPhyInterface(ns3::Ptr device) [member function] + cls.add_method('CreateWifiSpectrumPhyInterface', + 'void', + [param('ns3::Ptr< ns3::NetDevice >', 'device')]) + ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetBssMembershipSelector(uint32_t selector) const [member function] + cls.add_method('GetBssMembershipSelector', + 'uint32_t', + [param('uint32_t', 'selector')], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetCcaMode1Threshold() const [member function] + cls.add_method('GetCcaMode1Threshold', + 'double', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetChannel() const [member function] + cls.add_method('GetChannel', + 'ns3::Ptr< ns3::WifiChannel >', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Time ns3::SpectrumWifiPhy::GetChannelSwitchDelay() const [member function] + cls.add_method('GetChannelSwitchDelay', + 'ns3::Time', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Time ns3::SpectrumWifiPhy::GetDelayUntilIdle() [member function] + cls.add_method('GetDelayUntilIdle', + 'ns3::Time', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetDevice() const [member function] + cls.add_method('GetDevice', + 'ns3::Ptr< ns3::NetDevice >', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetEdThreshold() const [member function] + cls.add_method('GetEdThreshold', + 'double', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetErrorRateModel() const [member function] + cls.add_method('GetErrorRateModel', + 'ns3::Ptr< ns3::ErrorRateModel >', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::GetGreenfield() const [member function] + cls.add_method('GetGreenfield', + 'bool', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::GetGuardInterval() const [member function] + cls.add_method('GetGuardInterval', + 'bool', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Time ns3::SpectrumWifiPhy::GetLastRxStartTime() const [member function] + cls.add_method('GetLastRxStartTime', + 'ns3::Time', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::GetLdpc() const [member function] + cls.add_method('GetLdpc', + 'bool', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::WifiMode ns3::SpectrumWifiPhy::GetMcs(uint8_t mcs) const [member function] + cls.add_method('GetMcs', + 'ns3::WifiMode', + [param('uint8_t', 'mcs')], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::WifiModeList ns3::SpectrumWifiPhy::GetMembershipSelectorModes(uint32_t selector) [member function] + cls.add_method('GetMembershipSelectorModes', + 'ns3::WifiModeList', + [param('uint32_t', 'selector')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetMobility() [member function] + cls.add_method('GetMobility', + 'ns3::Ptr< ns3::MobilityModel >', + []) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::WifiMode ns3::SpectrumWifiPhy::GetMode(uint32_t mode) const [member function] + cls.add_method('GetMode', + 'ns3::WifiMode', + [param('uint32_t', 'mode')], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetNBssMembershipSelectors() const [member function] + cls.add_method('GetNBssMembershipSelectors', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint8_t ns3::SpectrumWifiPhy::GetNMcs() const [member function] + cls.add_method('GetNMcs', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetNModes() const [member function] + cls.add_method('GetNModes', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetNTxPower() const [member function] + cls.add_method('GetNTxPower', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetNumberOfReceiveAntennas() const [member function] + cls.add_method('GetNumberOfReceiveAntennas', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetNumberOfTransmitAntennas() const [member function] + cls.add_method('GetNumberOfTransmitAntennas', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): std::vector > ns3::SpectrumWifiPhy::GetOperationalChannelList() const [member function] + cls.add_method('GetOperationalChannelList', + 'std::vector< unsigned short >', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetRxAntenna() const [member function] + cls.add_method('GetRxAntenna', + 'ns3::Ptr< ns3::AntennaModel >', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetRxGain() const [member function] + cls.add_method('GetRxGain', + 'double', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetRxNoiseFigure() const [member function] + cls.add_method('GetRxNoiseFigure', + 'double', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetRxSpectrumModel() const [member function] + cls.add_method('GetRxSpectrumModel', + 'ns3::Ptr< ns3::SpectrumModel const >', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::GetShortPlcpPreambleSupported() const [member function] + cls.add_method('GetShortPlcpPreambleSupported', + 'bool', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetSpectrumPhy() const [member function] + cls.add_method('GetSpectrumPhy', + 'ns3::Ptr< ns3::WifiSpectrumPhyInterface >', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Time ns3::SpectrumWifiPhy::GetStateDuration() [member function] + cls.add_method('GetStateDuration', + 'ns3::Time', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::GetStbc() const [member function] + cls.add_method('GetStbc', + 'bool', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint8_t ns3::SpectrumWifiPhy::GetSupportedRxSpatialStreams() const [member function] + cls.add_method('GetSupportedRxSpatialStreams', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint8_t ns3::SpectrumWifiPhy::GetSupportedTxSpatialStreams() const [member function] + cls.add_method('GetSupportedTxSpatialStreams', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetTxGain() const [member function] + cls.add_method('GetTxGain', + 'double', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetTxPowerEnd() const [member function] + cls.add_method('GetTxPowerEnd', + 'double', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetTxPowerStart() const [member function] + cls.add_method('GetTxPowerStart', + 'double', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): static ns3::TypeId ns3::SpectrumWifiPhy::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsMcsSupported(ns3::WifiMode mcs) [member function] + cls.add_method('IsMcsSupported', + 'bool', + [param('ns3::WifiMode', 'mcs')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsModeSupported(ns3::WifiMode mode) const [member function] + cls.add_method('IsModeSupported', + 'bool', + [param('ns3::WifiMode', 'mode')], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateBusy() [member function] + cls.add_method('IsStateBusy', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateCcaBusy() [member function] + cls.add_method('IsStateCcaBusy', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateIdle() [member function] + cls.add_method('IsStateIdle', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateRx() [member function] + cls.add_method('IsStateRx', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateSleep() [member function] + cls.add_method('IsStateSleep', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateSwitching() [member function] + cls.add_method('IsStateSwitching', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateTx() [member function] + cls.add_method('IsStateTx', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::RegisterListener(ns3::WifiPhyListener * listener) [member function] + cls.add_method('RegisterListener', + 'void', + [param('ns3::WifiPhyListener *', 'listener')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::ResumeFromSleep() [member function] + cls.add_method('ResumeFromSleep', + 'void', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SendPacket(ns3::Ptr packet, ns3::WifiTxVector txVector, ns3::WifiPreamble preamble) [member function] + cls.add_method('SendPacket', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SendPacket(ns3::Ptr packet, ns3::WifiTxVector txVector, ns3::WifiPreamble preamble, ns3::mpduType mpdutype) [member function] + cls.add_method('SendPacket', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::mpduType', 'mpdutype')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetAntenna(ns3::Ptr antenna) [member function] + cls.add_method('SetAntenna', + 'void', + [param('ns3::Ptr< ns3::AntennaModel >', 'antenna')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetCcaMode1Threshold(double threshold) [member function] + cls.add_method('SetCcaMode1Threshold', + 'void', + [param('double', 'threshold')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetChannel(ns3::Ptr channel) [member function] + cls.add_method('SetChannel', + 'void', + [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetDevice(ns3::Ptr device) [member function] + cls.add_method('SetDevice', + 'void', + [param('ns3::Ptr< ns3::NetDevice >', 'device')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetEdThreshold(double threshold) [member function] + cls.add_method('SetEdThreshold', + 'void', + [param('double', 'threshold')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetErrorRateModel(ns3::Ptr rate) [member function] + cls.add_method('SetErrorRateModel', + 'void', + [param('ns3::Ptr< ns3::ErrorRateModel >', 'rate')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetGreenfield(bool greenfield) [member function] + cls.add_method('SetGreenfield', + 'void', + [param('bool', 'greenfield')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetGuardInterval(bool guardInterval) [member function] + cls.add_method('SetGuardInterval', + 'void', + [param('bool', 'guardInterval')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetLdpc(bool ldpc) [member function] + cls.add_method('SetLdpc', + 'void', + [param('bool', 'ldpc')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetMobility(ns3::Ptr mobility) [member function] + cls.add_method('SetMobility', + 'void', + [param('ns3::Ptr< ns3::MobilityModel >', 'mobility')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetNTxPower(uint32_t n) [member function] + cls.add_method('SetNTxPower', + 'void', + [param('uint32_t', 'n')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetNumberOfReceiveAntennas(uint32_t rx) [member function] + cls.add_method('SetNumberOfReceiveAntennas', + 'void', + [param('uint32_t', 'rx')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetNumberOfTransmitAntennas(uint32_t tx) [member function] + cls.add_method('SetNumberOfTransmitAntennas', + 'void', + [param('uint32_t', 'tx')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetPacketReceivedCallback(ns3::Callback callback) [member function] + cls.add_method('SetPacketReceivedCallback', + 'void', + [param('ns3::Callback< void, bool, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetReceiveErrorCallback(ns3::Callback, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function] + cls.add_method('SetReceiveErrorCallback', + 'void', + [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetReceiveOkCallback(ns3::Callback, double, ns3::WifiTxVector, ns3::WifiPreamble, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function] + cls.add_method('SetReceiveOkCallback', + 'void', + [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::WifiTxVector, ns3::WifiPreamble, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetRxGain(double gain) [member function] + cls.add_method('SetRxGain', + 'void', + [param('double', 'gain')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetRxNoiseFigure(double noiseFigureDb) [member function] + cls.add_method('SetRxNoiseFigure', + 'void', + [param('double', 'noiseFigureDb')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetShortPlcpPreambleSupported(bool preamble) [member function] + cls.add_method('SetShortPlcpPreambleSupported', + 'void', + [param('bool', 'preamble')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetSleepMode() [member function] + cls.add_method('SetSleepMode', + 'void', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetStbc(bool stbc) [member function] + cls.add_method('SetStbc', + 'void', + [param('bool', 'stbc')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetTxGain(double gain) [member function] + cls.add_method('SetTxGain', + 'void', + [param('double', 'gain')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetTxPowerEnd(double end) [member function] + cls.add_method('SetTxPowerEnd', + 'void', + [param('double', 'end')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetTxPowerStart(double start) [member function] + cls.add_method('SetTxPowerStart', + 'void', + [param('double', 'start')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::StartReceivePacket(ns3::Ptr packet, ns3::WifiTxVector txVector, ns3::WifiPreamble preamble, ns3::mpduType mpdutype, ns3::Ptr event) [member function] + cls.add_method('StartReceivePacket', + 'void', + [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::mpduType', 'mpdutype'), param('ns3::Ptr< ns3::InterferenceHelper::Event >', 'event')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::StartReceivePreambleAndHeader(ns3::Ptr packet, double rxPowerDbm, ns3::WifiTxVector txVector, ns3::WifiPreamble preamble, ns3::mpduType mpdutype, ns3::Time rxDuration) [member function] + cls.add_method('StartReceivePreambleAndHeader', + 'void', + [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDbm'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::mpduType', 'mpdutype'), param('ns3::Time', 'rxDuration')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::StartRx(ns3::Ptr rxParams) [member function] + cls.add_method('StartRx', + 'void', + [param('ns3::Ptr< ns3::SpectrumSignalParameters >', 'rxParams')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::UnregisterListener(ns3::WifiPhyListener * listener) [member function] + cls.add_method('UnregisterListener', + 'void', + [param('ns3::WifiPhyListener *', 'listener')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + return + def register_Ns3Ssid_methods(root_module, cls): cls.add_output_stream_operator() ## ssid.h (module 'wifi'): ns3::Ssid::Ssid(ns3::Ssid const & arg0) [copy constructor] diff --git a/src/wifi/bindings/modulegen__gcc_LP64.py b/src/wifi/bindings/modulegen__gcc_LP64.py index 8d15c769ad5..96d3e844d58 100644 --- a/src/wifi/bindings/modulegen__gcc_LP64.py +++ b/src/wifi/bindings/modulegen__gcc_LP64.py @@ -20,8 +20,6 @@ def module_init(): def register_types(module): root_module = module.get_root() - ## propagation-environment.h (module 'propagation'): ns3::EnvironmentType [enumeration] - module.add_enum('EnvironmentType', ['UrbanEnvironment', 'SubUrbanEnvironment', 'OpenAreasEnvironment'], import_from_module='ns.propagation') ## ht-operations.h (module 'wifi'): ns3::HtProtectionType [enumeration] module.add_enum('HtProtectionType', ['NO_PROTECTION', 'NON_MEMBER_PROTECTION', 'TWENTY_MHZ_PROTECTION', 'MIXED_MODE_PROTECTION']) ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacType [enumeration] @@ -42,12 +40,16 @@ def register_types(module): module.add_enum('TypeOfStation', ['STA', 'AP', 'ADHOC_STA', 'MESH', 'HT_STA', 'HT_AP', 'HT_ADHOC_STA', 'OCB']) ## ctrl-headers.h (module 'wifi'): ns3::BlockAckType [enumeration] module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK']) + ## propagation-environment.h (module 'propagation'): ns3::EnvironmentType [enumeration] + module.add_enum('EnvironmentType', ['UrbanEnvironment', 'SubUrbanEnvironment', 'OpenAreasEnvironment'], import_from_module='ns.propagation') ## propagation-environment.h (module 'propagation'): ns3::CitySize [enumeration] module.add_enum('CitySize', ['SmallCity', 'MediumCity', 'LargeCity'], import_from_module='ns.propagation') ## 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] module.add_enum('MaxSize_e', ['MAX_SIZE'], outer_class=root_module['ns3::Address'], import_from_module='ns.network') + ## angles.h (module 'antenna'): ns3::Angles [struct] + module.add_class('Angles', import_from_module='ns.antenna') ## trace-helper.h (module 'network'): ns3::AsciiTraceHelper [class] module.add_class('AsciiTraceHelper', import_from_module='ns.network') ## trace-helper.h (module 'network'): ns3::AsciiTraceHelperForDevice [class] @@ -58,6 +60,8 @@ def register_types(module): module.add_class('AttributeConstructionList', import_from_module='ns.core') ## attribute-construction-list.h (module 'core'): ns3::AttributeConstructionList::Item [struct] module.add_class('Item', import_from_module='ns.core', outer_class=root_module['ns3::AttributeConstructionList']) + ## spectrum-model.h (module 'spectrum'): ns3::BandInfo [struct] + module.add_class('BandInfo', import_from_module='ns.spectrum') ## block-ack-manager.h (module 'wifi'): ns3::Bar [struct] module.add_class('Bar') ## block-ack-agreement.h (module 'wifi'): ns3::BlockAckAgreement [class] @@ -228,6 +232,8 @@ def register_types(module): module.add_class('WifiPhyHelper', allow_subclassing=True) ## wifi-phy.h (module 'wifi'): ns3::WifiPhyListener [class] module.add_class('WifiPhyListener', allow_subclassing=True) + ## wifi-phy-tag.h (module 'wifi'): ns3::WifiPhyTag [class] + module.add_class('WifiPhyTag', parent=root_module['ns3::Tag']) ## wifi-radio-energy-model-helper.h (module 'wifi'): ns3::WifiRadioEnergyModelHelper [class] module.add_class('WifiRadioEnergyModelHelper', parent=root_module['ns3::DeviceEnergyModelHelper']) ## wifi-radio-energy-model.h (module 'wifi'): ns3::WifiRadioEnergyModelPhyListener [class] @@ -328,12 +334,32 @@ def register_types(module): module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Packet', '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, import_from_module='ns.core', template_parameters=['ns3::SpectrumModel', '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::SpectrumSignalParameters', '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::SpectrumValue', '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')) ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount > [class] module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::WifiInformationElement', 'ns3::empty', 'ns3::DefaultDeleter'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount')) ## snr-tag.h (module 'wifi'): ns3::SnrTag [class] module.add_class('SnrTag', parent=root_module['ns3::Tag']) + ## spectrum-interference.h (module 'spectrum'): ns3::SpectrumInterference [class] + module.add_class('SpectrumInterference', import_from_module='ns.spectrum', parent=root_module['ns3::Object']) + ## spectrum-model.h (module 'spectrum'): ns3::SpectrumModel [class] + module.add_class('SpectrumModel', import_from_module='ns.spectrum', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter >']) + ## spectrum-phy.h (module 'spectrum'): ns3::SpectrumPhy [class] + module.add_class('SpectrumPhy', import_from_module='ns.spectrum', parent=root_module['ns3::Object']) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters [struct] + module.add_class('SpectrumSignalParameters', import_from_module='ns.spectrum', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumSignalParameters, ns3::empty, ns3::DefaultDeleter >']) + ## spectrum-value.h (module 'spectrum'): ns3::SpectrumValue [class] + module.add_class('SpectrumValue', import_from_module='ns.spectrum', parent=root_module['ns3::SimpleRefCount< ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter >']) + ## spectrum-wifi-helper.h (module 'wifi'): ns3::SpectrumWifiPhyHelper [class] + module.add_class('SpectrumWifiPhyHelper', parent=[root_module['ns3::WifiPhyHelper'], root_module['ns3::PcapHelperForDevice'], root_module['ns3::AsciiTraceHelperForDevice']]) + ## spectrum-wifi-helper.h (module 'wifi'): ns3::SpectrumWifiPhyHelper::SupportedPcapDataLinkTypes [enumeration] + module.add_enum('SupportedPcapDataLinkTypes', ['DLT_IEEE802_11', 'DLT_PRISM_HEADER', 'DLT_IEEE802_11_RADIO'], outer_class=root_module['ns3::SpectrumWifiPhyHelper']) ## propagation-loss-model.h (module 'propagation'): ns3::ThreeLogDistancePropagationLossModel [class] module.add_class('ThreeLogDistancePropagationLossModel', import_from_module='ns.propagation', parent=root_module['ns3::PropagationLossModel']) ## nstime.h (module 'core'): ns3::Time [class] @@ -398,6 +424,10 @@ def register_types(module): module.add_class('WifiRemoteStationManager', parent=root_module['ns3::Object']) ## wifi-remote-station-manager.h (module 'wifi'): ns3::WifiRemoteStationManager::ProtectionMode [enumeration] module.add_enum('ProtectionMode', ['RTS_CTS', 'CTS_TO_SELF'], outer_class=root_module['ns3::WifiRemoteStationManager']) + ## wifi-spectrum-phy-interface.h (module 'wifi'): ns3::WifiSpectrumPhyInterface [class] + module.add_class('WifiSpectrumPhyInterface', parent=root_module['ns3::SpectrumPhy']) + ## wifi-spectrum-signal-parameters.h (module 'wifi'): ns3::WifiSpectrumSignalParameters [struct] + module.add_class('WifiSpectrumSignalParameters', parent=root_module['ns3::SpectrumSignalParameters']) ## wifi-tx-current-model.h (module 'wifi'): ns3::WifiTxCurrentModel [class] module.add_class('WifiTxCurrentModel', parent=root_module['ns3::Object']) ## yans-wifi-phy.h (module 'wifi'): ns3::YansWifiPhy [class] @@ -416,6 +446,8 @@ def register_types(module): module.add_class('AmrrWifiManager', parent=root_module['ns3::WifiRemoteStationManager']) ## amsdu-subframe-header.h (module 'wifi'): ns3::AmsduSubframeHeader [class] module.add_class('AmsduSubframeHeader', parent=root_module['ns3::Header']) + ## antenna-model.h (module 'antenna'): ns3::AntennaModel [class] + module.add_class('AntennaModel', import_from_module='ns.antenna', parent=root_module['ns3::Object']) ## aparf-wifi-manager.h (module 'wifi'): ns3::AparfWifiManager [class] module.add_class('AparfWifiManager', parent=root_module['ns3::WifiRemoteStationManager']) ## aparf-wifi-manager.h (module 'wifi'): ns3::AparfWifiManager::State [enumeration] @@ -624,6 +656,10 @@ def register_types(module): module.add_class('RegularWifiMac', parent=root_module['ns3::WifiMac']) ## rraa-wifi-manager.h (module 'wifi'): ns3::RraaWifiManager [class] module.add_class('RraaWifiManager', parent=root_module['ns3::WifiRemoteStationManager']) + ## spectrum-channel.h (module 'spectrum'): ns3::SpectrumChannel [class] + module.add_class('SpectrumChannel', import_from_module='ns.spectrum', parent=root_module['ns3::Channel']) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::SpectrumWifiPhy [class] + module.add_class('SpectrumWifiPhy', parent=root_module['ns3::WifiPhy']) ## ssid.h (module 'wifi'): ns3::Ssid [class] module.add_class('Ssid', parent=root_module['ns3::WifiInformationElement']) ## ssid.h (module 'wifi'): ns3::SsidChecker [class] @@ -689,10 +725,13 @@ def register_types(module): module.add_container('ns3::WifiModeList', 'ns3::WifiMode', container_type=u'vector') module.add_container('ns3::MinstrelRate', 'ns3::RateInfo', container_type=u'vector') module.add_container('ns3::SampleRate', 'std::vector< unsigned int >', container_type=u'vector') + module.add_container('std::vector< double >', 'double', container_type=u'vector') + module.add_container('ns3::Bands', 'ns3::BandInfo', container_type=u'vector') module.add_container('std::vector< unsigned int >', 'unsigned int', container_type=u'vector') module.add_container('std::map< ns3::Mac48Address, bool >', ('ns3::Mac48Address', 'bool'), container_type=u'map') module.add_container('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::AmpduSubframeHeader > >', 'std::pair< ns3::Ptr< ns3::Packet >, ns3::AmpduSubframeHeader >', container_type=u'list') module.add_container('std::list< std::pair< ns3::Ptr< ns3::Packet >, ns3::AmsduSubframeHeader > >', 'std::pair< ns3::Ptr< ns3::Packet >, ns3::AmsduSubframeHeader >', container_type=u'list') + module.add_container('std::vector< unsigned short >', 'short unsigned int', container_type=u'vector') typehandlers.add_type_alias(u'std::vector< ns3::McsGroup, std::allocator< ns3::McsGroup > >', u'ns3::MinstrelMcsGroups') typehandlers.add_type_alias(u'std::vector< ns3::McsGroup, std::allocator< ns3::McsGroup > >*', u'ns3::MinstrelMcsGroups*') typehandlers.add_type_alias(u'std::vector< ns3::McsGroup, std::allocator< ns3::McsGroup > >&', u'ns3::MinstrelMcsGroups&') @@ -702,6 +741,12 @@ def register_types(module): typehandlers.add_type_alias(u'uint8_t', u'ns3::WifiInformationElementId') typehandlers.add_type_alias(u'uint8_t*', u'ns3::WifiInformationElementId*') typehandlers.add_type_alias(u'uint8_t&', u'ns3::WifiInformationElementId&') + typehandlers.add_type_alias(u'std::vector< double, std::allocator< double > >', u'ns3::Values') + typehandlers.add_type_alias(u'std::vector< double, std::allocator< double > >*', u'ns3::Values*') + typehandlers.add_type_alias(u'std::vector< double, std::allocator< double > >&', u'ns3::Values&') + typehandlers.add_type_alias(u'std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >', u'ns3::Bands') + typehandlers.add_type_alias(u'std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >*', u'ns3::Bands*') + typehandlers.add_type_alias(u'std::vector< ns3::BandInfo, std::allocator< ns3::BandInfo > >&', u'ns3::Bands&') typehandlers.add_type_alias(u'ns3::Vector3D', u'ns3::Vector') typehandlers.add_type_alias(u'ns3::Vector3D*', u'ns3::Vector*') typehandlers.add_type_alias(u'ns3::Vector3D&', u'ns3::Vector&') @@ -722,6 +767,9 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< std::vector< unsigned int, std::allocator< unsigned int > >, std::allocator< std::vector< unsigned int, std::allocator< unsigned int > > > >', u'ns3::SampleRate') typehandlers.add_type_alias(u'std::vector< std::vector< unsigned int, std::allocator< unsigned int > >, std::allocator< std::vector< unsigned int, std::allocator< unsigned int > > > >*', u'ns3::SampleRate*') typehandlers.add_type_alias(u'std::vector< std::vector< unsigned int, std::allocator< unsigned int > >, std::allocator< std::vector< unsigned int, std::allocator< unsigned int > > > >&', u'ns3::SampleRate&') + typehandlers.add_type_alias(u'uint32_t', u'ns3::SpectrumModelUid_t') + typehandlers.add_type_alias(u'uint32_t*', u'ns3::SpectrumModelUid_t*') + typehandlers.add_type_alias(u'uint32_t&', u'ns3::SpectrumModelUid_t&') typehandlers.add_type_alias(u'std::vector< ns3::GroupInfo, std::allocator< ns3::GroupInfo > >', u'ns3::McsGroupData') typehandlers.add_type_alias(u'std::vector< ns3::GroupInfo, std::allocator< ns3::GroupInfo > >*', u'ns3::McsGroupData*') typehandlers.add_type_alias(u'std::vector< ns3::GroupInfo, std::allocator< ns3::GroupInfo > >&', u'ns3::McsGroupData&') @@ -831,11 +879,13 @@ def register_types_ns3_internal(module): def register_methods(root_module): register_Ns3Address_methods(root_module, root_module['ns3::Address']) + register_Ns3Angles_methods(root_module, root_module['ns3::Angles']) register_Ns3AsciiTraceHelper_methods(root_module, root_module['ns3::AsciiTraceHelper']) register_Ns3AsciiTraceHelperForDevice_methods(root_module, root_module['ns3::AsciiTraceHelperForDevice']) register_Ns3AthstatsHelper_methods(root_module, root_module['ns3::AthstatsHelper']) register_Ns3AttributeConstructionList_methods(root_module, root_module['ns3::AttributeConstructionList']) register_Ns3AttributeConstructionListItem_methods(root_module, root_module['ns3::AttributeConstructionList::Item']) + register_Ns3BandInfo_methods(root_module, root_module['ns3::BandInfo']) register_Ns3Bar_methods(root_module, root_module['ns3::Bar']) register_Ns3BlockAckAgreement_methods(root_module, root_module['ns3::BlockAckAgreement']) register_Ns3BlockAckCache_methods(root_module, root_module['ns3::BlockAckCache']) @@ -912,6 +962,7 @@ def register_methods(root_module): register_Ns3WifiModeFactory_methods(root_module, root_module['ns3::WifiModeFactory']) register_Ns3WifiPhyHelper_methods(root_module, root_module['ns3::WifiPhyHelper']) register_Ns3WifiPhyListener_methods(root_module, root_module['ns3::WifiPhyListener']) + register_Ns3WifiPhyTag_methods(root_module, root_module['ns3::WifiPhyTag']) register_Ns3WifiRadioEnergyModelHelper_methods(root_module, root_module['ns3::WifiRadioEnergyModelHelper']) register_Ns3WifiRadioEnergyModelPhyListener_methods(root_module, root_module['ns3::WifiRadioEnergyModelPhyListener']) register_Ns3WifiRemoteStation_methods(root_module, root_module['ns3::WifiRemoteStation']) @@ -959,9 +1010,18 @@ def register_methods(root_module): register_Ns3SimpleRefCount__Ns3OutputStreamWrapper_Ns3Empty_Ns3DefaultDeleter__lt__ns3OutputStreamWrapper__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter >']) register_Ns3SimpleRefCount__Ns3Packet_Ns3Empty_Ns3DefaultDeleter__lt__ns3Packet__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) register_Ns3SimpleRefCount__Ns3QueueItem_Ns3Empty_Ns3DefaultDeleter__lt__ns3QueueItem__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::QueueItem, ns3::empty, ns3::DefaultDeleter >']) + register_Ns3SimpleRefCount__Ns3SpectrumModel_Ns3Empty_Ns3DefaultDeleter__lt__ns3SpectrumModel__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter >']) + register_Ns3SimpleRefCount__Ns3SpectrumSignalParameters_Ns3Empty_Ns3DefaultDeleter__lt__ns3SpectrumSignalParameters__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::SpectrumSignalParameters, ns3::empty, ns3::DefaultDeleter >']) + register_Ns3SimpleRefCount__Ns3SpectrumValue_Ns3Empty_Ns3DefaultDeleter__lt__ns3SpectrumValue__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter >']) register_Ns3SimpleRefCount__Ns3TraceSourceAccessor_Ns3Empty_Ns3DefaultDeleter__lt__ns3TraceSourceAccessor__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter >']) register_Ns3SimpleRefCount__Ns3WifiInformationElement_Ns3Empty_Ns3DefaultDeleter__lt__ns3WifiInformationElement__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::WifiInformationElement, ns3::empty, ns3::DefaultDeleter >']) register_Ns3SnrTag_methods(root_module, root_module['ns3::SnrTag']) + register_Ns3SpectrumInterference_methods(root_module, root_module['ns3::SpectrumInterference']) + register_Ns3SpectrumModel_methods(root_module, root_module['ns3::SpectrumModel']) + register_Ns3SpectrumPhy_methods(root_module, root_module['ns3::SpectrumPhy']) + register_Ns3SpectrumSignalParameters_methods(root_module, root_module['ns3::SpectrumSignalParameters']) + register_Ns3SpectrumValue_methods(root_module, root_module['ns3::SpectrumValue']) + register_Ns3SpectrumWifiPhyHelper_methods(root_module, root_module['ns3::SpectrumWifiPhyHelper']) register_Ns3ThreeLogDistancePropagationLossModel_methods(root_module, root_module['ns3::ThreeLogDistancePropagationLossModel']) register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) @@ -982,6 +1042,8 @@ def register_methods(root_module): register_Ns3WifiPhy_methods(root_module, root_module['ns3::WifiPhy']) register_Ns3WifiPhyStateHelper_methods(root_module, root_module['ns3::WifiPhyStateHelper']) register_Ns3WifiRemoteStationManager_methods(root_module, root_module['ns3::WifiRemoteStationManager']) + register_Ns3WifiSpectrumPhyInterface_methods(root_module, root_module['ns3::WifiSpectrumPhyInterface']) + register_Ns3WifiSpectrumSignalParameters_methods(root_module, root_module['ns3::WifiSpectrumSignalParameters']) register_Ns3WifiTxCurrentModel_methods(root_module, root_module['ns3::WifiTxCurrentModel']) register_Ns3YansWifiPhy_methods(root_module, root_module['ns3::YansWifiPhy']) register_Ns3ZetaRandomVariable_methods(root_module, root_module['ns3::ZetaRandomVariable']) @@ -991,6 +1053,7 @@ def register_methods(root_module): register_Ns3AmpduSubframeHeader_methods(root_module, root_module['ns3::AmpduSubframeHeader']) register_Ns3AmrrWifiManager_methods(root_module, root_module['ns3::AmrrWifiManager']) register_Ns3AmsduSubframeHeader_methods(root_module, root_module['ns3::AmsduSubframeHeader']) + register_Ns3AntennaModel_methods(root_module, root_module['ns3::AntennaModel']) register_Ns3AparfWifiManager_methods(root_module, root_module['ns3::AparfWifiManager']) register_Ns3ArfWifiManager_methods(root_module, root_module['ns3::ArfWifiManager']) register_Ns3AthstatsWifiTraceSink_methods(root_module, root_module['ns3::AthstatsWifiTraceSink']) @@ -1092,6 +1155,8 @@ def register_methods(root_module): register_Ns3QueueItem_methods(root_module, root_module['ns3::QueueItem']) register_Ns3RegularWifiMac_methods(root_module, root_module['ns3::RegularWifiMac']) register_Ns3RraaWifiManager_methods(root_module, root_module['ns3::RraaWifiManager']) + register_Ns3SpectrumChannel_methods(root_module, root_module['ns3::SpectrumChannel']) + register_Ns3SpectrumWifiPhy_methods(root_module, root_module['ns3::SpectrumWifiPhy']) register_Ns3Ssid_methods(root_module, root_module['ns3::Ssid']) register_Ns3SsidChecker_methods(root_module, root_module['ns3::SsidChecker']) register_Ns3SsidValue_methods(root_module, root_module['ns3::SsidValue']) @@ -1199,6 +1264,24 @@ def register_Ns3Address_methods(root_module, cls): is_const=True) return +def register_Ns3Angles_methods(root_module, cls): + cls.add_output_stream_operator() + ## angles.h (module 'antenna'): ns3::Angles::Angles(ns3::Angles const & arg0) [copy constructor] + cls.add_constructor([param('ns3::Angles const &', 'arg0')]) + ## angles.h (module 'antenna'): ns3::Angles::Angles() [constructor] + cls.add_constructor([]) + ## angles.h (module 'antenna'): ns3::Angles::Angles(double phi, double theta) [constructor] + cls.add_constructor([param('double', 'phi'), param('double', 'theta')]) + ## angles.h (module 'antenna'): ns3::Angles::Angles(ns3::Vector v) [constructor] + cls.add_constructor([param('ns3::Vector', 'v')]) + ## angles.h (module 'antenna'): ns3::Angles::Angles(ns3::Vector v, ns3::Vector o) [constructor] + cls.add_constructor([param('ns3::Vector', 'v'), param('ns3::Vector', 'o')]) + ## angles.h (module 'antenna'): ns3::Angles::phi [variable] + cls.add_instance_attribute('phi', 'double', is_const=False) + ## angles.h (module 'antenna'): ns3::Angles::theta [variable] + cls.add_instance_attribute('theta', 'double', is_const=False) + return + def register_Ns3AsciiTraceHelper_methods(root_module, cls): ## trace-helper.h (module 'network'): ns3::AsciiTraceHelper::AsciiTraceHelper(ns3::AsciiTraceHelper const & arg0) [copy constructor] cls.add_constructor([param('ns3::AsciiTraceHelper const &', 'arg0')]) @@ -1380,6 +1463,19 @@ def register_Ns3AttributeConstructionListItem_methods(root_module, cls): cls.add_instance_attribute('value', 'ns3::Ptr< ns3::AttributeValue >', is_const=False) return +def register_Ns3BandInfo_methods(root_module, cls): + ## spectrum-model.h (module 'spectrum'): ns3::BandInfo::BandInfo() [constructor] + cls.add_constructor([]) + ## spectrum-model.h (module 'spectrum'): ns3::BandInfo::BandInfo(ns3::BandInfo const & arg0) [copy constructor] + cls.add_constructor([param('ns3::BandInfo const &', 'arg0')]) + ## spectrum-model.h (module 'spectrum'): ns3::BandInfo::fc [variable] + cls.add_instance_attribute('fc', 'double', is_const=False) + ## spectrum-model.h (module 'spectrum'): ns3::BandInfo::fh [variable] + cls.add_instance_attribute('fh', 'double', is_const=False) + ## spectrum-model.h (module 'spectrum'): ns3::BandInfo::fl [variable] + cls.add_instance_attribute('fl', 'double', is_const=False) + return + def register_Ns3Bar_methods(root_module, cls): ## block-ack-manager.h (module 'wifi'): ns3::Bar::Bar(ns3::Bar const & arg0) [copy constructor] cls.add_constructor([param('ns3::Bar const &', 'arg0')]) @@ -2584,6 +2680,10 @@ def register_Ns3InterferenceHelper_methods(root_module, cls): cls.add_method('Add', 'ns3::Ptr< ns3::InterferenceHelper::Event >', [param('uint32_t', 'size'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::Time', 'duration'), param('double', 'rxPower')]) + ## interference-helper.h (module 'wifi'): void ns3::InterferenceHelper::AddForeignSignal(ns3::Time duration, double rxPower) [member function] + cls.add_method('AddForeignSignal', + 'void', + [param('ns3::Time', 'duration'), param('double', 'rxPower')]) ## interference-helper.h (module 'wifi'): ns3::InterferenceHelper::SnrPer ns3::InterferenceHelper::CalculatePlcpHeaderSnrPer(ns3::Ptr event) [member function] cls.add_method('CalculatePlcpHeaderSnrPer', 'ns3::InterferenceHelper::SnrPer', @@ -4959,6 +5059,60 @@ def register_Ns3WifiPhyListener_methods(root_module, cls): is_pure_virtual=True, is_virtual=True) return +def register_Ns3WifiPhyTag_methods(root_module, cls): + ## wifi-phy-tag.h (module 'wifi'): ns3::WifiPhyTag::WifiPhyTag(ns3::WifiPhyTag const & arg0) [copy constructor] + cls.add_constructor([param('ns3::WifiPhyTag const &', 'arg0')]) + ## wifi-phy-tag.h (module 'wifi'): ns3::WifiPhyTag::WifiPhyTag() [constructor] + cls.add_constructor([]) + ## wifi-phy-tag.h (module 'wifi'): ns3::WifiPhyTag::WifiPhyTag(ns3::WifiTxVector txVector, ns3::WifiPreamble preamble, ns3::mpduType mpdutype) [constructor] + cls.add_constructor([param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::mpduType', 'mpdutype')]) + ## wifi-phy-tag.h (module 'wifi'): void ns3::WifiPhyTag::Deserialize(ns3::TagBuffer i) [member function] + cls.add_method('Deserialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_virtual=True) + ## wifi-phy-tag.h (module 'wifi'): ns3::TypeId ns3::WifiPhyTag::GetInstanceTypeId() const [member function] + cls.add_method('GetInstanceTypeId', + 'ns3::TypeId', + [], + is_const=True, is_virtual=True) + ## wifi-phy-tag.h (module 'wifi'): ns3::mpduType ns3::WifiPhyTag::GetMpduType() const [member function] + cls.add_method('GetMpduType', + 'ns3::mpduType', + [], + is_const=True) + ## wifi-phy-tag.h (module 'wifi'): uint32_t ns3::WifiPhyTag::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## wifi-phy-tag.h (module 'wifi'): static ns3::TypeId ns3::WifiPhyTag::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## wifi-phy-tag.h (module 'wifi'): ns3::WifiPreamble ns3::WifiPhyTag::GetWifiPreamble() const [member function] + cls.add_method('GetWifiPreamble', + 'ns3::WifiPreamble', + [], + is_const=True) + ## wifi-phy-tag.h (module 'wifi'): ns3::WifiTxVector ns3::WifiPhyTag::GetWifiTxVector() const [member function] + cls.add_method('GetWifiTxVector', + 'ns3::WifiTxVector', + [], + is_const=True) + ## wifi-phy-tag.h (module 'wifi'): void ns3::WifiPhyTag::Print(std::ostream & os) const [member function] + cls.add_method('Print', + 'void', + [param('std::ostream &', 'os')], + is_const=True, is_virtual=True) + ## wifi-phy-tag.h (module 'wifi'): void ns3::WifiPhyTag::Serialize(ns3::TagBuffer i) const [member function] + cls.add_method('Serialize', + 'void', + [param('ns3::TagBuffer', 'i')], + is_const=True, is_virtual=True) + return + def register_Ns3WifiRadioEnergyModelHelper_methods(root_module, cls): ## wifi-radio-energy-model-helper.h (module 'wifi'): ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper(ns3::WifiRadioEnergyModelHelper const & arg0) [copy constructor] cls.add_constructor([param('ns3::WifiRadioEnergyModelHelper const &', 'arg0')]) @@ -6764,6 +6918,42 @@ def register_Ns3SimpleRefCount__Ns3QueueItem_Ns3Empty_Ns3DefaultDeleter__lt__ns3 is_static=True) return +def register_Ns3SimpleRefCount__Ns3SpectrumModel_Ns3Empty_Ns3DefaultDeleter__lt__ns3SpectrumModel__gt___methods(root_module, cls): + ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount() [constructor] + cls.add_constructor([]) + ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount(ns3::SimpleRefCount > const & o) [copy constructor] + cls.add_constructor([param('ns3::SimpleRefCount< ns3::SpectrumModel, ns3::empty, ns3::DefaultDeleter< ns3::SpectrumModel > > const &', 'o')]) + ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount >::Cleanup() [member function] + cls.add_method('Cleanup', + 'void', + [], + is_static=True) + return + +def register_Ns3SimpleRefCount__Ns3SpectrumSignalParameters_Ns3Empty_Ns3DefaultDeleter__lt__ns3SpectrumSignalParameters__gt___methods(root_module, cls): + ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount() [constructor] + cls.add_constructor([]) + ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount(ns3::SimpleRefCount > const & o) [copy constructor] + cls.add_constructor([param('ns3::SimpleRefCount< ns3::SpectrumSignalParameters, ns3::empty, ns3::DefaultDeleter< ns3::SpectrumSignalParameters > > const &', 'o')]) + ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount >::Cleanup() [member function] + cls.add_method('Cleanup', + 'void', + [], + is_static=True) + return + +def register_Ns3SimpleRefCount__Ns3SpectrumValue_Ns3Empty_Ns3DefaultDeleter__lt__ns3SpectrumValue__gt___methods(root_module, cls): + ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount() [constructor] + cls.add_constructor([]) + ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount(ns3::SimpleRefCount > const & o) [copy constructor] + cls.add_constructor([param('ns3::SimpleRefCount< ns3::SpectrumValue, ns3::empty, ns3::DefaultDeleter< ns3::SpectrumValue > > const &', 'o')]) + ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount >::Cleanup() [member function] + cls.add_method('Cleanup', + 'void', + [], + is_static=True) + return + def register_Ns3SimpleRefCount__Ns3TraceSourceAccessor_Ns3Empty_Ns3DefaultDeleter__lt__ns3TraceSourceAccessor__gt___methods(root_module, cls): ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount >::SimpleRefCount() [constructor] cls.add_constructor([]) @@ -6836,6 +7026,269 @@ def register_Ns3SnrTag_methods(root_module, cls): [param('double', 'snr')]) return +def register_Ns3SpectrumInterference_methods(root_module, cls): + ## spectrum-interference.h (module 'spectrum'): ns3::SpectrumInterference::SpectrumInterference(ns3::SpectrumInterference const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SpectrumInterference const &', 'arg0')]) + ## spectrum-interference.h (module 'spectrum'): ns3::SpectrumInterference::SpectrumInterference() [constructor] + cls.add_constructor([]) + ## spectrum-interference.h (module 'spectrum'): void ns3::SpectrumInterference::AbortRx() [member function] + cls.add_method('AbortRx', + 'void', + []) + ## spectrum-interference.h (module 'spectrum'): void ns3::SpectrumInterference::AddSignal(ns3::Ptr spd, ns3::Time const duration) [member function] + cls.add_method('AddSignal', + 'void', + [param('ns3::Ptr< ns3::SpectrumValue const >', 'spd'), param('ns3::Time const', 'duration')]) + ## spectrum-interference.h (module 'spectrum'): bool ns3::SpectrumInterference::EndRx() [member function] + cls.add_method('EndRx', + 'bool', + []) + ## spectrum-interference.h (module 'spectrum'): static ns3::TypeId ns3::SpectrumInterference::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## spectrum-interference.h (module 'spectrum'): void ns3::SpectrumInterference::SetErrorModel(ns3::Ptr e) [member function] + cls.add_method('SetErrorModel', + 'void', + [param('ns3::Ptr< ns3::SpectrumErrorModel >', 'e')]) + ## spectrum-interference.h (module 'spectrum'): void ns3::SpectrumInterference::SetNoisePowerSpectralDensity(ns3::Ptr noisePsd) [member function] + cls.add_method('SetNoisePowerSpectralDensity', + 'void', + [param('ns3::Ptr< ns3::SpectrumValue const >', 'noisePsd')]) + ## spectrum-interference.h (module 'spectrum'): void ns3::SpectrumInterference::StartRx(ns3::Ptr p, ns3::Ptr rxPsd) [member function] + cls.add_method('StartRx', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ptr< ns3::SpectrumValue const >', 'rxPsd')]) + ## spectrum-interference.h (module 'spectrum'): void ns3::SpectrumInterference::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + return + +def register_Ns3SpectrumModel_methods(root_module, cls): + cls.add_binary_comparison_operator('==') + ## spectrum-model.h (module 'spectrum'): ns3::SpectrumModel::SpectrumModel(ns3::SpectrumModel const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SpectrumModel const &', 'arg0')]) + ## spectrum-model.h (module 'spectrum'): ns3::SpectrumModel::SpectrumModel(std::vector > centerFreqs) [constructor] + cls.add_constructor([param('std::vector< double >', 'centerFreqs')]) + ## spectrum-model.h (module 'spectrum'): ns3::SpectrumModel::SpectrumModel(ns3::Bands bands) [constructor] + cls.add_constructor([param('ns3::Bands', 'bands')]) + ## spectrum-model.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumModel::Begin() const [member function] + cls.add_method('Begin', + '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', + [], + is_const=True) + ## spectrum-model.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumModel::End() const [member function] + cls.add_method('End', + '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', + [], + is_const=True) + ## spectrum-model.h (module 'spectrum'): size_t ns3::SpectrumModel::GetNumBands() const [member function] + cls.add_method('GetNumBands', + 'size_t', + [], + is_const=True) + ## spectrum-model.h (module 'spectrum'): ns3::SpectrumModelUid_t ns3::SpectrumModel::GetUid() const [member function] + cls.add_method('GetUid', + 'ns3::SpectrumModelUid_t', + [], + is_const=True) + return + +def register_Ns3SpectrumPhy_methods(root_module, cls): + ## spectrum-phy.h (module 'spectrum'): ns3::SpectrumPhy::SpectrumPhy() [constructor] + cls.add_constructor([]) + ## spectrum-phy.h (module 'spectrum'): static ns3::TypeId ns3::SpectrumPhy::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## spectrum-phy.h (module 'spectrum'): void ns3::SpectrumPhy::SetDevice(ns3::Ptr d) [member function] + cls.add_method('SetDevice', + 'void', + [param('ns3::Ptr< ns3::NetDevice >', 'd')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): ns3::Ptr ns3::SpectrumPhy::GetDevice() const [member function] + cls.add_method('GetDevice', + 'ns3::Ptr< ns3::NetDevice >', + [], + is_pure_virtual=True, is_const=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): void ns3::SpectrumPhy::SetMobility(ns3::Ptr m) [member function] + cls.add_method('SetMobility', + 'void', + [param('ns3::Ptr< ns3::MobilityModel >', 'm')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): ns3::Ptr ns3::SpectrumPhy::GetMobility() [member function] + cls.add_method('GetMobility', + 'ns3::Ptr< ns3::MobilityModel >', + [], + is_pure_virtual=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): void ns3::SpectrumPhy::SetChannel(ns3::Ptr c) [member function] + cls.add_method('SetChannel', + 'void', + [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): ns3::Ptr ns3::SpectrumPhy::GetRxSpectrumModel() const [member function] + cls.add_method('GetRxSpectrumModel', + 'ns3::Ptr< ns3::SpectrumModel const >', + [], + is_pure_virtual=True, is_const=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): ns3::Ptr ns3::SpectrumPhy::GetRxAntenna() [member function] + cls.add_method('GetRxAntenna', + 'ns3::Ptr< ns3::AntennaModel >', + [], + is_pure_virtual=True, is_virtual=True) + ## spectrum-phy.h (module 'spectrum'): void ns3::SpectrumPhy::StartRx(ns3::Ptr params) [member function] + cls.add_method('StartRx', + 'void', + [param('ns3::Ptr< ns3::SpectrumSignalParameters >', 'params')], + is_pure_virtual=True, is_virtual=True) + return + +def register_Ns3SpectrumSignalParameters_methods(root_module, cls): + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters::SpectrumSignalParameters() [constructor] + cls.add_constructor([]) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters::SpectrumSignalParameters(ns3::SpectrumSignalParameters const & p) [copy constructor] + cls.add_constructor([param('ns3::SpectrumSignalParameters const &', 'p')]) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::Ptr ns3::SpectrumSignalParameters::Copy() [member function] + cls.add_method('Copy', + 'ns3::Ptr< ns3::SpectrumSignalParameters >', + [], + is_virtual=True) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters::duration [variable] + cls.add_instance_attribute('duration', 'ns3::Time', is_const=False) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters::psd [variable] + cls.add_instance_attribute('psd', 'ns3::Ptr< ns3::SpectrumValue >', is_const=False) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters::txAntenna [variable] + cls.add_instance_attribute('txAntenna', 'ns3::Ptr< ns3::AntennaModel >', is_const=False) + ## spectrum-signal-parameters.h (module 'spectrum'): ns3::SpectrumSignalParameters::txPhy [variable] + cls.add_instance_attribute('txPhy', 'ns3::Ptr< ns3::SpectrumPhy >', is_const=False) + return + +def register_Ns3SpectrumValue_methods(root_module, cls): + cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', u'right')) + cls.add_binary_numeric_operator('*', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', u'right')) + cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', u'right')) + cls.add_binary_numeric_operator('+', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', u'right')) + cls.add_unary_numeric_operator('-') + cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', u'right')) + cls.add_binary_numeric_operator('-', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', u'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('double', u'right')) + cls.add_binary_numeric_operator('/', root_module['ns3::SpectrumValue'], root_module['ns3::SpectrumValue'], param('ns3::SpectrumValue const &', u'right')) + cls.add_output_stream_operator() + cls.add_inplace_numeric_operator('*=', param('ns3::SpectrumValue const &', u'right')) + cls.add_inplace_numeric_operator('*=', param('double', u'right')) + cls.add_inplace_numeric_operator('+=', param('ns3::SpectrumValue const &', u'right')) + cls.add_inplace_numeric_operator('+=', param('double', u'right')) + cls.add_inplace_numeric_operator('-=', param('ns3::SpectrumValue const &', u'right')) + cls.add_inplace_numeric_operator('-=', param('double', u'right')) + cls.add_inplace_numeric_operator('/=', param('ns3::SpectrumValue const &', u'right')) + cls.add_inplace_numeric_operator('/=', param('double', u'right')) + ## spectrum-value.h (module 'spectrum'): ns3::SpectrumValue::SpectrumValue(ns3::SpectrumValue const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SpectrumValue const &', 'arg0')]) + ## spectrum-value.h (module 'spectrum'): ns3::SpectrumValue::SpectrumValue(ns3::Ptr sm) [constructor] + cls.add_constructor([param('ns3::Ptr< ns3::SpectrumModel const >', 'sm')]) + ## spectrum-value.h (module 'spectrum'): ns3::SpectrumValue::SpectrumValue() [constructor] + cls.add_constructor([]) + ## spectrum-value.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumValue::ConstBandsBegin() const [member function] + cls.add_method('ConstBandsBegin', + '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumValue::ConstBandsEnd() const [member function] + cls.add_method('ConstBandsEnd', + '__gnu_cxx::__normal_iterator< ns3::BandInfo const *, std::vector< ns3::BandInfo > >', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumValue::ConstValuesBegin() const [member function] + cls.add_method('ConstValuesBegin', + '__gnu_cxx::__normal_iterator< double const *, std::vector< double > >', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumValue::ConstValuesEnd() const [member function] + cls.add_method('ConstValuesEnd', + '__gnu_cxx::__normal_iterator< double const *, std::vector< double > >', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): ns3::Ptr ns3::SpectrumValue::Copy() const [member function] + cls.add_method('Copy', + 'ns3::Ptr< ns3::SpectrumValue >', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): ns3::Ptr ns3::SpectrumValue::GetSpectrumModel() const [member function] + cls.add_method('GetSpectrumModel', + 'ns3::Ptr< ns3::SpectrumModel const >', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): ns3::SpectrumModelUid_t ns3::SpectrumValue::GetSpectrumModelUid() const [member function] + cls.add_method('GetSpectrumModelUid', + 'ns3::SpectrumModelUid_t', + [], + is_const=True) + ## spectrum-value.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumValue::ValuesBegin() [member function] + cls.add_method('ValuesBegin', + '__gnu_cxx::__normal_iterator< double *, std::vector< double > >', + []) + ## spectrum-value.h (module 'spectrum'): __gnu_cxx::__normal_iterator > > ns3::SpectrumValue::ValuesEnd() [member function] + cls.add_method('ValuesEnd', + '__gnu_cxx::__normal_iterator< double *, std::vector< double > >', + []) + return + +def register_Ns3SpectrumWifiPhyHelper_methods(root_module, cls): + ## spectrum-wifi-helper.h (module 'wifi'): ns3::SpectrumWifiPhyHelper::SpectrumWifiPhyHelper(ns3::SpectrumWifiPhyHelper const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SpectrumWifiPhyHelper const &', 'arg0')]) + ## spectrum-wifi-helper.h (module 'wifi'): ns3::SpectrumWifiPhyHelper::SpectrumWifiPhyHelper() [constructor] + cls.add_constructor([]) + ## spectrum-wifi-helper.h (module 'wifi'): static ns3::SpectrumWifiPhyHelper ns3::SpectrumWifiPhyHelper::Default() [member function] + cls.add_method('Default', + 'ns3::SpectrumWifiPhyHelper', + [], + is_static=True) + ## spectrum-wifi-helper.h (module 'wifi'): ns3::PcapHelper::DataLinkType ns3::SpectrumWifiPhyHelper::GetPcapDataLinkType() const [member function] + cls.add_method('GetPcapDataLinkType', + 'ns3::PcapHelper::DataLinkType', + [], + is_const=True) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::Set(std::string name, ns3::AttributeValue const & v) [member function] + cls.add_method('Set', + 'void', + [param('std::string', 'name'), param('ns3::AttributeValue const &', 'v')]) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::SetChannel(ns3::Ptr channel) [member function] + cls.add_method('SetChannel', + 'void', + [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')]) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::SetChannel(std::string channelName) [member function] + cls.add_method('SetChannel', + 'void', + [param('std::string', 'channelName')]) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::SetErrorRateModel(std::string name, std::string n0="", ns3::AttributeValue const & v0=ns3::EmptyAttributeValue(), std::string n1="", ns3::AttributeValue const & v1=ns3::EmptyAttributeValue(), std::string n2="", ns3::AttributeValue const & v2=ns3::EmptyAttributeValue(), std::string n3="", ns3::AttributeValue const & v3=ns3::EmptyAttributeValue(), std::string n4="", ns3::AttributeValue const & v4=ns3::EmptyAttributeValue(), std::string n5="", ns3::AttributeValue const & v5=ns3::EmptyAttributeValue(), std::string n6="", ns3::AttributeValue const & v6=ns3::EmptyAttributeValue(), std::string n7="", ns3::AttributeValue const & v7=ns3::EmptyAttributeValue()) [member function] + cls.add_method('SetErrorRateModel', + 'void', + [param('std::string', 'name'), param('std::string', 'n0', default_value='""'), param('ns3::AttributeValue const &', 'v0', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n1', default_value='""'), param('ns3::AttributeValue const &', 'v1', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n2', default_value='""'), param('ns3::AttributeValue const &', 'v2', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n3', default_value='""'), param('ns3::AttributeValue const &', 'v3', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n4', default_value='""'), param('ns3::AttributeValue const &', 'v4', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n5', default_value='""'), param('ns3::AttributeValue const &', 'v5', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n6', default_value='""'), param('ns3::AttributeValue const &', 'v6', default_value='ns3::EmptyAttributeValue()'), param('std::string', 'n7', default_value='""'), param('ns3::AttributeValue const &', 'v7', default_value='ns3::EmptyAttributeValue()')]) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::SetPcapDataLinkType(ns3::SpectrumWifiPhyHelper::SupportedPcapDataLinkTypes dlt) [member function] + cls.add_method('SetPcapDataLinkType', + 'void', + [param('ns3::SpectrumWifiPhyHelper::SupportedPcapDataLinkTypes', 'dlt')]) + ## spectrum-wifi-helper.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhyHelper::Create(ns3::Ptr node, ns3::Ptr device) const [member function] + cls.add_method('Create', + 'ns3::Ptr< ns3::WifiPhy >', + [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::Ptr< ns3::NetDevice >', 'device')], + is_const=True, visibility='private', is_virtual=True) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::EnableAsciiInternal(ns3::Ptr stream, std::string prefix, ns3::Ptr nd, bool explicitFilename) [member function] + cls.add_method('EnableAsciiInternal', + 'void', + [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'explicitFilename')], + visibility='private', is_virtual=True) + ## spectrum-wifi-helper.h (module 'wifi'): void ns3::SpectrumWifiPhyHelper::EnablePcapInternal(std::string prefix, ns3::Ptr nd, bool promiscuous, bool explicitFilename) [member function] + cls.add_method('EnablePcapInternal', + 'void', + [param('std::string', 'prefix'), param('ns3::Ptr< ns3::NetDevice >', 'nd'), param('bool', 'promiscuous'), param('bool', 'explicitFilename')], + visibility='private', is_virtual=True) + return + def register_Ns3ThreeLogDistancePropagationLossModel_methods(root_module, cls): ## propagation-loss-model.h (module 'propagation'): static ns3::TypeId ns3::ThreeLogDistancePropagationLossModel::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -9900,6 +10353,79 @@ def register_Ns3WifiRemoteStationManager_methods(root_module, cls): is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True) return +def register_Ns3WifiSpectrumPhyInterface_methods(root_module, cls): + ## wifi-spectrum-phy-interface.h (module 'wifi'): static ns3::TypeId ns3::WifiSpectrumPhyInterface::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): ns3::WifiSpectrumPhyInterface::WifiSpectrumPhyInterface() [constructor] + cls.add_constructor([]) + ## wifi-spectrum-phy-interface.h (module 'wifi'): void ns3::WifiSpectrumPhyInterface::SetSpectrumWifiPhy(ns3::Ptr phy) [member function] + cls.add_method('SetSpectrumWifiPhy', + 'void', + [param('ns3::Ptr< ns3::SpectrumWifiPhy >', 'phy')]) + ## wifi-spectrum-phy-interface.h (module 'wifi'): ns3::Ptr ns3::WifiSpectrumPhyInterface::GetDevice() const [member function] + cls.add_method('GetDevice', + 'ns3::Ptr< ns3::NetDevice >', + [], + is_const=True, is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): void ns3::WifiSpectrumPhyInterface::SetDevice(ns3::Ptr d) [member function] + cls.add_method('SetDevice', + 'void', + [param('ns3::Ptr< ns3::NetDevice >', 'd')], + is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): void ns3::WifiSpectrumPhyInterface::SetMobility(ns3::Ptr m) [member function] + cls.add_method('SetMobility', + 'void', + [param('ns3::Ptr< ns3::MobilityModel >', 'm')], + is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): ns3::Ptr ns3::WifiSpectrumPhyInterface::GetMobility() [member function] + cls.add_method('GetMobility', + 'ns3::Ptr< ns3::MobilityModel >', + [], + is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): void ns3::WifiSpectrumPhyInterface::SetChannel(ns3::Ptr c) [member function] + cls.add_method('SetChannel', + 'void', + [param('ns3::Ptr< ns3::SpectrumChannel >', 'c')], + is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): ns3::Ptr ns3::WifiSpectrumPhyInterface::GetRxSpectrumModel() const [member function] + cls.add_method('GetRxSpectrumModel', + 'ns3::Ptr< ns3::SpectrumModel const >', + [], + is_const=True, is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): ns3::Ptr ns3::WifiSpectrumPhyInterface::GetRxAntenna() [member function] + cls.add_method('GetRxAntenna', + 'ns3::Ptr< ns3::AntennaModel >', + [], + is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): void ns3::WifiSpectrumPhyInterface::StartRx(ns3::Ptr params) [member function] + cls.add_method('StartRx', + 'void', + [param('ns3::Ptr< ns3::SpectrumSignalParameters >', 'params')], + is_virtual=True) + ## wifi-spectrum-phy-interface.h (module 'wifi'): void ns3::WifiSpectrumPhyInterface::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='private', is_virtual=True) + return + +def register_Ns3WifiSpectrumSignalParameters_methods(root_module, cls): + ## wifi-spectrum-signal-parameters.h (module 'wifi'): ns3::WifiSpectrumSignalParameters::WifiSpectrumSignalParameters() [constructor] + cls.add_constructor([]) + ## wifi-spectrum-signal-parameters.h (module 'wifi'): ns3::WifiSpectrumSignalParameters::WifiSpectrumSignalParameters(ns3::WifiSpectrumSignalParameters const & p) [copy constructor] + cls.add_constructor([param('ns3::WifiSpectrumSignalParameters const &', 'p')]) + ## wifi-spectrum-signal-parameters.h (module 'wifi'): ns3::Ptr ns3::WifiSpectrumSignalParameters::Copy() [member function] + cls.add_method('Copy', + 'ns3::Ptr< ns3::SpectrumSignalParameters >', + [], + is_virtual=True) + ## wifi-spectrum-signal-parameters.h (module 'wifi'): ns3::WifiSpectrumSignalParameters::packet [variable] + cls.add_instance_attribute('packet', 'ns3::Ptr< ns3::Packet >', is_const=False) + return + def register_Ns3WifiTxCurrentModel_methods(root_module, cls): ## wifi-tx-current-model.h (module 'wifi'): ns3::WifiTxCurrentModel::WifiTxCurrentModel(ns3::WifiTxCurrentModel const & arg0) [copy constructor] cls.add_constructor([param('ns3::WifiTxCurrentModel const &', 'arg0')]) @@ -10743,6 +11269,23 @@ def register_Ns3AmsduSubframeHeader_methods(root_module, cls): [param('ns3::Mac48Address', 'to')]) return +def register_Ns3AntennaModel_methods(root_module, cls): + ## antenna-model.h (module 'antenna'): ns3::AntennaModel::AntennaModel(ns3::AntennaModel const & arg0) [copy constructor] + cls.add_constructor([param('ns3::AntennaModel const &', 'arg0')]) + ## antenna-model.h (module 'antenna'): ns3::AntennaModel::AntennaModel() [constructor] + cls.add_constructor([]) + ## antenna-model.h (module 'antenna'): double ns3::AntennaModel::GetGainDb(ns3::Angles a) [member function] + cls.add_method('GetGainDb', + 'double', + [param('ns3::Angles', 'a')], + is_pure_virtual=True, is_virtual=True) + ## antenna-model.h (module 'antenna'): static ns3::TypeId ns3::AntennaModel::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + return + def register_Ns3AparfWifiManager_methods(root_module, cls): ## aparf-wifi-manager.h (module 'wifi'): ns3::AparfWifiManager::AparfWifiManager(ns3::AparfWifiManager const & arg0) [copy constructor] cls.add_constructor([param('ns3::AparfWifiManager const &', 'arg0')]) @@ -16390,6 +16933,469 @@ def register_Ns3RraaWifiManager_methods(root_module, cls): is_const=True, visibility='private', is_virtual=True) return +def register_Ns3SpectrumChannel_methods(root_module, cls): + ## spectrum-channel.h (module 'spectrum'): ns3::SpectrumChannel::SpectrumChannel() [constructor] + cls.add_constructor([]) + ## spectrum-channel.h (module 'spectrum'): ns3::SpectrumChannel::SpectrumChannel(ns3::SpectrumChannel const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SpectrumChannel const &', 'arg0')]) + ## spectrum-channel.h (module 'spectrum'): void ns3::SpectrumChannel::AddPropagationLossModel(ns3::Ptr loss) [member function] + cls.add_method('AddPropagationLossModel', + 'void', + [param('ns3::Ptr< ns3::PropagationLossModel >', 'loss')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-channel.h (module 'spectrum'): void ns3::SpectrumChannel::AddRx(ns3::Ptr phy) [member function] + cls.add_method('AddRx', + 'void', + [param('ns3::Ptr< ns3::SpectrumPhy >', 'phy')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-channel.h (module 'spectrum'): void ns3::SpectrumChannel::AddSpectrumPropagationLossModel(ns3::Ptr loss) [member function] + cls.add_method('AddSpectrumPropagationLossModel', + 'void', + [param('ns3::Ptr< ns3::SpectrumPropagationLossModel >', 'loss')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-channel.h (module 'spectrum'): static ns3::TypeId ns3::SpectrumChannel::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## spectrum-channel.h (module 'spectrum'): void ns3::SpectrumChannel::SetPropagationDelayModel(ns3::Ptr delay) [member function] + cls.add_method('SetPropagationDelayModel', + 'void', + [param('ns3::Ptr< ns3::PropagationDelayModel >', 'delay')], + is_pure_virtual=True, is_virtual=True) + ## spectrum-channel.h (module 'spectrum'): void ns3::SpectrumChannel::StartTx(ns3::Ptr params) [member function] + cls.add_method('StartTx', + 'void', + [param('ns3::Ptr< ns3::SpectrumSignalParameters >', 'params')], + is_pure_virtual=True, is_virtual=True) + return + +def register_Ns3SpectrumWifiPhy_methods(root_module, cls): + ## spectrum-wifi-phy.h (module 'wifi'): ns3::SpectrumWifiPhy::SpectrumWifiPhy(ns3::SpectrumWifiPhy const & arg0) [copy constructor] + cls.add_constructor([param('ns3::SpectrumWifiPhy const &', 'arg0')]) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::SpectrumWifiPhy::SpectrumWifiPhy() [constructor] + cls.add_constructor([]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::AddOperationalChannel(uint16_t channelNumber) [member function] + cls.add_method('AddOperationalChannel', + 'void', + [param('uint16_t', 'channelNumber')]) + ## spectrum-wifi-phy.h (module 'wifi'): int64_t ns3::SpectrumWifiPhy::AssignStreams(int64_t stream) [member function] + cls.add_method('AssignStreams', + 'int64_t', + [param('int64_t', 'stream')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::CalculateSnr(ns3::WifiTxVector txVector, double ber) const [member function] + cls.add_method('CalculateSnr', + 'double', + [param('ns3::WifiTxVector', 'txVector'), param('double', 'ber')], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::ClearOperationalChannelList() [member function] + cls.add_method('ClearOperationalChannelList', + 'void', + []) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::ConfigureStandard(ns3::WifiPhyStandard standard) [member function] + cls.add_method('ConfigureStandard', + 'void', + [param('ns3::WifiPhyStandard', 'standard')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::CreateWifiSpectrumPhyInterface(ns3::Ptr device) [member function] + cls.add_method('CreateWifiSpectrumPhyInterface', + 'void', + [param('ns3::Ptr< ns3::NetDevice >', 'device')]) + ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetBssMembershipSelector(uint32_t selector) const [member function] + cls.add_method('GetBssMembershipSelector', + 'uint32_t', + [param('uint32_t', 'selector')], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetCcaMode1Threshold() const [member function] + cls.add_method('GetCcaMode1Threshold', + 'double', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetChannel() const [member function] + cls.add_method('GetChannel', + 'ns3::Ptr< ns3::WifiChannel >', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Time ns3::SpectrumWifiPhy::GetChannelSwitchDelay() const [member function] + cls.add_method('GetChannelSwitchDelay', + 'ns3::Time', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Time ns3::SpectrumWifiPhy::GetDelayUntilIdle() [member function] + cls.add_method('GetDelayUntilIdle', + 'ns3::Time', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetDevice() const [member function] + cls.add_method('GetDevice', + 'ns3::Ptr< ns3::NetDevice >', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetEdThreshold() const [member function] + cls.add_method('GetEdThreshold', + 'double', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetErrorRateModel() const [member function] + cls.add_method('GetErrorRateModel', + 'ns3::Ptr< ns3::ErrorRateModel >', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::GetGreenfield() const [member function] + cls.add_method('GetGreenfield', + 'bool', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::GetGuardInterval() const [member function] + cls.add_method('GetGuardInterval', + 'bool', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Time ns3::SpectrumWifiPhy::GetLastRxStartTime() const [member function] + cls.add_method('GetLastRxStartTime', + 'ns3::Time', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::GetLdpc() const [member function] + cls.add_method('GetLdpc', + 'bool', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::WifiMode ns3::SpectrumWifiPhy::GetMcs(uint8_t mcs) const [member function] + cls.add_method('GetMcs', + 'ns3::WifiMode', + [param('uint8_t', 'mcs')], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::WifiModeList ns3::SpectrumWifiPhy::GetMembershipSelectorModes(uint32_t selector) [member function] + cls.add_method('GetMembershipSelectorModes', + 'ns3::WifiModeList', + [param('uint32_t', 'selector')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetMobility() [member function] + cls.add_method('GetMobility', + 'ns3::Ptr< ns3::MobilityModel >', + []) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::WifiMode ns3::SpectrumWifiPhy::GetMode(uint32_t mode) const [member function] + cls.add_method('GetMode', + 'ns3::WifiMode', + [param('uint32_t', 'mode')], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetNBssMembershipSelectors() const [member function] + cls.add_method('GetNBssMembershipSelectors', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint8_t ns3::SpectrumWifiPhy::GetNMcs() const [member function] + cls.add_method('GetNMcs', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetNModes() const [member function] + cls.add_method('GetNModes', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetNTxPower() const [member function] + cls.add_method('GetNTxPower', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetNumberOfReceiveAntennas() const [member function] + cls.add_method('GetNumberOfReceiveAntennas', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetNumberOfTransmitAntennas() const [member function] + cls.add_method('GetNumberOfTransmitAntennas', + 'uint32_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): std::vector > ns3::SpectrumWifiPhy::GetOperationalChannelList() const [member function] + cls.add_method('GetOperationalChannelList', + 'std::vector< unsigned short >', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetRxAntenna() const [member function] + cls.add_method('GetRxAntenna', + 'ns3::Ptr< ns3::AntennaModel >', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetRxGain() const [member function] + cls.add_method('GetRxGain', + 'double', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetRxNoiseFigure() const [member function] + cls.add_method('GetRxNoiseFigure', + 'double', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetRxSpectrumModel() const [member function] + cls.add_method('GetRxSpectrumModel', + 'ns3::Ptr< ns3::SpectrumModel const >', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::GetShortPlcpPreambleSupported() const [member function] + cls.add_method('GetShortPlcpPreambleSupported', + 'bool', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetSpectrumPhy() const [member function] + cls.add_method('GetSpectrumPhy', + 'ns3::Ptr< ns3::WifiSpectrumPhyInterface >', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): ns3::Time ns3::SpectrumWifiPhy::GetStateDuration() [member function] + cls.add_method('GetStateDuration', + 'ns3::Time', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::GetStbc() const [member function] + cls.add_method('GetStbc', + 'bool', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint8_t ns3::SpectrumWifiPhy::GetSupportedRxSpatialStreams() const [member function] + cls.add_method('GetSupportedRxSpatialStreams', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): uint8_t ns3::SpectrumWifiPhy::GetSupportedTxSpatialStreams() const [member function] + cls.add_method('GetSupportedTxSpatialStreams', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetTxGain() const [member function] + cls.add_method('GetTxGain', + 'double', + [], + is_const=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetTxPowerEnd() const [member function] + cls.add_method('GetTxPowerEnd', + 'double', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): double ns3::SpectrumWifiPhy::GetTxPowerStart() const [member function] + cls.add_method('GetTxPowerStart', + 'double', + [], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): static ns3::TypeId ns3::SpectrumWifiPhy::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsMcsSupported(ns3::WifiMode mcs) [member function] + cls.add_method('IsMcsSupported', + 'bool', + [param('ns3::WifiMode', 'mcs')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsModeSupported(ns3::WifiMode mode) const [member function] + cls.add_method('IsModeSupported', + 'bool', + [param('ns3::WifiMode', 'mode')], + is_const=True, is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateBusy() [member function] + cls.add_method('IsStateBusy', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateCcaBusy() [member function] + cls.add_method('IsStateCcaBusy', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateIdle() [member function] + cls.add_method('IsStateIdle', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateRx() [member function] + cls.add_method('IsStateRx', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateSleep() [member function] + cls.add_method('IsStateSleep', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateSwitching() [member function] + cls.add_method('IsStateSwitching', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::IsStateTx() [member function] + cls.add_method('IsStateTx', + 'bool', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::RegisterListener(ns3::WifiPhyListener * listener) [member function] + cls.add_method('RegisterListener', + 'void', + [param('ns3::WifiPhyListener *', 'listener')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::ResumeFromSleep() [member function] + cls.add_method('ResumeFromSleep', + 'void', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SendPacket(ns3::Ptr packet, ns3::WifiTxVector txVector, ns3::WifiPreamble preamble) [member function] + cls.add_method('SendPacket', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SendPacket(ns3::Ptr packet, ns3::WifiTxVector txVector, ns3::WifiPreamble preamble, ns3::mpduType mpdutype) [member function] + cls.add_method('SendPacket', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::mpduType', 'mpdutype')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetAntenna(ns3::Ptr antenna) [member function] + cls.add_method('SetAntenna', + 'void', + [param('ns3::Ptr< ns3::AntennaModel >', 'antenna')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetCcaMode1Threshold(double threshold) [member function] + cls.add_method('SetCcaMode1Threshold', + 'void', + [param('double', 'threshold')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetChannel(ns3::Ptr channel) [member function] + cls.add_method('SetChannel', + 'void', + [param('ns3::Ptr< ns3::SpectrumChannel >', 'channel')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetDevice(ns3::Ptr device) [member function] + cls.add_method('SetDevice', + 'void', + [param('ns3::Ptr< ns3::NetDevice >', 'device')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetEdThreshold(double threshold) [member function] + cls.add_method('SetEdThreshold', + 'void', + [param('double', 'threshold')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetErrorRateModel(ns3::Ptr rate) [member function] + cls.add_method('SetErrorRateModel', + 'void', + [param('ns3::Ptr< ns3::ErrorRateModel >', 'rate')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetGreenfield(bool greenfield) [member function] + cls.add_method('SetGreenfield', + 'void', + [param('bool', 'greenfield')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetGuardInterval(bool guardInterval) [member function] + cls.add_method('SetGuardInterval', + 'void', + [param('bool', 'guardInterval')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetLdpc(bool ldpc) [member function] + cls.add_method('SetLdpc', + 'void', + [param('bool', 'ldpc')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetMobility(ns3::Ptr mobility) [member function] + cls.add_method('SetMobility', + 'void', + [param('ns3::Ptr< ns3::MobilityModel >', 'mobility')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetNTxPower(uint32_t n) [member function] + cls.add_method('SetNTxPower', + 'void', + [param('uint32_t', 'n')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetNumberOfReceiveAntennas(uint32_t rx) [member function] + cls.add_method('SetNumberOfReceiveAntennas', + 'void', + [param('uint32_t', 'rx')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetNumberOfTransmitAntennas(uint32_t tx) [member function] + cls.add_method('SetNumberOfTransmitAntennas', + 'void', + [param('uint32_t', 'tx')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetPacketReceivedCallback(ns3::Callback callback) [member function] + cls.add_method('SetPacketReceivedCallback', + 'void', + [param('ns3::Callback< void, bool, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetReceiveErrorCallback(ns3::Callback, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function] + cls.add_method('SetReceiveErrorCallback', + 'void', + [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetReceiveOkCallback(ns3::Callback, double, ns3::WifiTxVector, ns3::WifiPreamble, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> callback) [member function] + cls.add_method('SetReceiveOkCallback', + 'void', + [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::WifiTxVector, ns3::WifiPreamble, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetRxGain(double gain) [member function] + cls.add_method('SetRxGain', + 'void', + [param('double', 'gain')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetRxNoiseFigure(double noiseFigureDb) [member function] + cls.add_method('SetRxNoiseFigure', + 'void', + [param('double', 'noiseFigureDb')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetShortPlcpPreambleSupported(bool preamble) [member function] + cls.add_method('SetShortPlcpPreambleSupported', + 'void', + [param('bool', 'preamble')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetSleepMode() [member function] + cls.add_method('SetSleepMode', + 'void', + [], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetStbc(bool stbc) [member function] + cls.add_method('SetStbc', + 'void', + [param('bool', 'stbc')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetTxGain(double gain) [member function] + cls.add_method('SetTxGain', + 'void', + [param('double', 'gain')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetTxPowerEnd(double end) [member function] + cls.add_method('SetTxPowerEnd', + 'void', + [param('double', 'end')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::SetTxPowerStart(double start) [member function] + cls.add_method('SetTxPowerStart', + 'void', + [param('double', 'start')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::StartReceivePacket(ns3::Ptr packet, ns3::WifiTxVector txVector, ns3::WifiPreamble preamble, ns3::mpduType mpdutype, ns3::Ptr event) [member function] + cls.add_method('StartReceivePacket', + 'void', + [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::mpduType', 'mpdutype'), param('ns3::Ptr< ns3::InterferenceHelper::Event >', 'event')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::StartReceivePreambleAndHeader(ns3::Ptr packet, double rxPowerDbm, ns3::WifiTxVector txVector, ns3::WifiPreamble preamble, ns3::mpduType mpdutype, ns3::Time rxDuration) [member function] + cls.add_method('StartReceivePreambleAndHeader', + 'void', + [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDbm'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::mpduType', 'mpdutype'), param('ns3::Time', 'rxDuration')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::StartRx(ns3::Ptr rxParams) [member function] + cls.add_method('StartRx', + 'void', + [param('ns3::Ptr< ns3::SpectrumSignalParameters >', 'rxParams')]) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::UnregisterListener(ns3::WifiPhyListener * listener) [member function] + cls.add_method('UnregisterListener', + 'void', + [param('ns3::WifiPhyListener *', 'listener')], + is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::DoChannelSwitch(uint16_t id) [member function] + cls.add_method('DoChannelSwitch', + 'bool', + [param('uint16_t', 'id')], + visibility='protected', is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): bool ns3::SpectrumWifiPhy::DoFrequencySwitch(uint32_t frequency) [member function] + cls.add_method('DoFrequencySwitch', + 'bool', + [param('uint32_t', 'frequency')], + visibility='protected', is_virtual=True) + ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + return + def register_Ns3Ssid_methods(root_module, cls): cls.add_output_stream_operator() ## ssid.h (module 'wifi'): ns3::Ssid::Ssid(ns3::Ssid const & arg0) [copy constructor] From fabdf6a9cba4371b1b758c151ff4935bc482f838 Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Sun, 24 Jul 2016 10:10:46 -0700 Subject: [PATCH 17/27] wifi: Remove undefined method --- src/wifi/model/spectrum-wifi-phy.h | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/wifi/model/spectrum-wifi-phy.h b/src/wifi/model/spectrum-wifi-phy.h index ad664c4208f..e1aae8ca02e 100644 --- a/src/wifi/model/spectrum-wifi-phy.h +++ b/src/wifi/model/spectrum-wifi-phy.h @@ -104,22 +104,6 @@ class SpectrumWifiPhy : public WifiPhy */ void ClearOperationalChannelList (void); - /** - * Starting receiving the plcp of a packet (i.e. the first bit of the preamble has arrived). - * - * \param packet the arriving packet - * \param rxPowerDbm the receive power in dBm - * \param txVector the TXVECTOR of the arriving packet - * \param preamble the preamble of the arriving packet - * \param mpdutype the type of the MPDU as defined in WifiPhy::mpduType. - * \param rxDuration the duration needed for the reception of the packet - */ - void StartReceivePreambleAndHeader (Ptr packet, - double rxPowerDbm, - WifiTxVector txVector, - WifiPreamble preamble, - enum mpduType mpdutype, - Time rxDuration); /** * Starting receiving the payload of a packet (i.e. the first bit of the packet has arrived). * From a2f9e4513329a21697be97a7fd5cb24b92e662e4 Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Sun, 24 Jul 2016 11:21:01 -0700 Subject: [PATCH 18/27] wifi: Rescan wifi bindings --- src/wifi/bindings/modulegen__gcc_ILP32.py | 4 ---- src/wifi/bindings/modulegen__gcc_LP64.py | 4 ---- 2 files changed, 8 deletions(-) diff --git a/src/wifi/bindings/modulegen__gcc_ILP32.py b/src/wifi/bindings/modulegen__gcc_ILP32.py index a2925455b66..ed16d6ba7af 100644 --- a/src/wifi/bindings/modulegen__gcc_ILP32.py +++ b/src/wifi/bindings/modulegen__gcc_ILP32.py @@ -17361,10 +17361,6 @@ def register_Ns3SpectrumWifiPhy_methods(root_module, cls): cls.add_method('StartReceivePacket', 'void', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::mpduType', 'mpdutype'), param('ns3::Ptr< ns3::InterferenceHelper::Event >', 'event')]) - ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::StartReceivePreambleAndHeader(ns3::Ptr packet, double rxPowerDbm, ns3::WifiTxVector txVector, ns3::WifiPreamble preamble, ns3::mpduType mpdutype, ns3::Time rxDuration) [member function] - cls.add_method('StartReceivePreambleAndHeader', - 'void', - [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDbm'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::mpduType', 'mpdutype'), param('ns3::Time', 'rxDuration')]) ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::StartRx(ns3::Ptr rxParams) [member function] cls.add_method('StartRx', 'void', diff --git a/src/wifi/bindings/modulegen__gcc_LP64.py b/src/wifi/bindings/modulegen__gcc_LP64.py index 96d3e844d58..fa1bd5a1f78 100644 --- a/src/wifi/bindings/modulegen__gcc_LP64.py +++ b/src/wifi/bindings/modulegen__gcc_LP64.py @@ -17361,10 +17361,6 @@ def register_Ns3SpectrumWifiPhy_methods(root_module, cls): cls.add_method('StartReceivePacket', 'void', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::mpduType', 'mpdutype'), param('ns3::Ptr< ns3::InterferenceHelper::Event >', 'event')]) - ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::StartReceivePreambleAndHeader(ns3::Ptr packet, double rxPowerDbm, ns3::WifiTxVector txVector, ns3::WifiPreamble preamble, ns3::mpduType mpdutype, ns3::Time rxDuration) [member function] - cls.add_method('StartReceivePreambleAndHeader', - 'void', - [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxPowerDbm'), param('ns3::WifiTxVector', 'txVector'), param('ns3::WifiPreamble', 'preamble'), param('ns3::mpduType', 'mpdutype'), param('ns3::Time', 'rxDuration')]) ## spectrum-wifi-phy.h (module 'wifi'): void ns3::SpectrumWifiPhy::StartRx(ns3::Ptr rxParams) [member function] cls.add_method('StartRx', 'void', From 02dcb9923bae0df549b9463ec84dfc996f3bc725 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deronne?= Date: Mon, 25 Jul 2016 14:43:47 +0200 Subject: [PATCH 19/27] wifi: Remove unused member in SpectrumWifiPhy --- src/wifi/model/spectrum-wifi-phy.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/wifi/model/spectrum-wifi-phy.h b/src/wifi/model/spectrum-wifi-phy.h index e1aae8ca02e..406abf36130 100644 --- a/src/wifi/model/spectrum-wifi-phy.h +++ b/src/wifi/model/spectrum-wifi-phy.h @@ -647,7 +647,6 @@ class SpectrumWifiPhy : public WifiPhy EventId m_endPlcpRxEvent; Ptr m_random; //!< Provides uniform random variables. - double m_channelStartingFrequency; //!< Standard-dependent center frequency of 0-th channel in MHz Ptr m_state; //!< Pointer to WifiPhyStateHelper InterferenceHelper m_interference; //!< Pointer to InterferenceHelper Ptr m_wifiSpectrumPhyInterface; From aeceb9b7428e533c742680da9233a5f6d438cedf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deronne?= Date: Mon, 25 Jul 2016 17:34:00 +0200 Subject: [PATCH 20/27] wifi: Support DSSS Parameter Set information element --- src/wifi/model/ap-wifi-mac.cc | 20 +++++ src/wifi/model/ap-wifi-mac.h | 7 ++ src/wifi/model/dsss-parameter-set.cc | 116 +++++++++++++++++++++++++++ src/wifi/model/dsss-parameter-set.h | 94 ++++++++++++++++++++++ src/wifi/model/mgt-headers.cc | 19 ++++- src/wifi/model/mgt-headers.h | 14 ++++ src/wifi/model/regular-wifi-mac.cc | 26 +++++- src/wifi/model/regular-wifi-mac.h | 19 ++++- src/wifi/wscript | 2 + 9 files changed, 309 insertions(+), 8 deletions(-) create mode 100644 src/wifi/model/dsss-parameter-set.cc create mode 100644 src/wifi/model/dsss-parameter-set.h diff --git a/src/wifi/model/ap-wifi-mac.cc b/src/wifi/model/ap-wifi-mac.cc index 1348449dce0..ee5c6acff05 100644 --- a/src/wifi/model/ap-wifi-mac.cc +++ b/src/wifi/model/ap-wifi-mac.cc @@ -389,6 +389,18 @@ ApWifiMac::GetSupportedRates (void) const return rates; } +DsssParameterSet +ApWifiMac::GetDsssParameterSet (void) const +{ + DsssParameterSet dsssParameters; + if (m_dsssSupported) + { + dsssParameters.SetDsssSupported (1); + dsssParameters.SetCurrentChannel (m_phy->GetChannelNumber ()); + } + return dsssParameters; +} + CapabilityInformation ApWifiMac::GetCapabilities (void) const { @@ -502,6 +514,10 @@ ApWifiMac::SendProbeResp (Mac48Address to) probe.SetCapabilities (GetCapabilities ()); m_stationManager->SetShortPreambleEnabled (GetShortPreambleEnabled ()); m_stationManager->SetShortSlotTimeEnabled (GetShortSlotTimeEnabled ()); + if (m_dsssSupported) + { + probe.SetDsssParameterSet (GetDsssParameterSet ()); + } if (m_erpSupported) { probe.SetErpInformation (GetErpInformation ()); @@ -601,6 +617,10 @@ ApWifiMac::SendOneBeacon (void) beacon.SetCapabilities (GetCapabilities ()); m_stationManager->SetShortPreambleEnabled (GetShortPreambleEnabled ()); m_stationManager->SetShortSlotTimeEnabled (GetShortSlotTimeEnabled ()); + if (m_dsssSupported) + { + beacon.SetDsssParameterSet (GetDsssParameterSet ()); + } if (m_erpSupported) { beacon.SetErpInformation (GetErpInformation ()); diff --git a/src/wifi/model/ap-wifi-mac.h b/src/wifi/model/ap-wifi-mac.h index 04a9a2efd75..7471e32f8e7 100644 --- a/src/wifi/model/ap-wifi-mac.h +++ b/src/wifi/model/ap-wifi-mac.h @@ -30,6 +30,7 @@ #include "vht-capabilities.h" #include "amsdu-subframe-header.h" #include "supported-rates.h" +#include "dsss-parameter-set.h" #include "erp-information.h" #include "edca-parameter-set.h" #include "ns3/random-variable-stream.h" @@ -228,6 +229,12 @@ class ApWifiMac : public RegularWifiMac * \return SupportedRates all rates that we support */ SupportedRates GetSupportedRates (void) const; + /** + * Return the DSSS Parameter Set that we support. + * + * \return the DSSS Parameter Set that we support + */ + DsssParameterSet GetDsssParameterSet (void) const; /** * Enable or disable beacon generation of the AP. * diff --git a/src/wifi/model/dsss-parameter-set.cc b/src/wifi/model/dsss-parameter-set.cc new file mode 100644 index 00000000000..3359e6a8518 --- /dev/null +++ b/src/wifi/model/dsss-parameter-set.cc @@ -0,0 +1,116 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2016 Sébastien Deronne + * + * 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 + */ + +#include "dsss-parameter-set.h" +#include "ns3/assert.h" +#include "ns3/log.h" +#include + +namespace ns3 { + +NS_LOG_COMPONENT_DEFINE ("DsssParameterSet"); + +DsssParameterSet::DsssParameterSet () + : m_currentChannel (0), + m_dsssSupported (0) +{ +} + +WifiInformationElementId +DsssParameterSet::ElementId () const +{ + return IE_DS_PARAMETER_SET; +} + +void +DsssParameterSet::SetDsssSupported (uint8_t dsssSupported) +{ + m_dsssSupported = dsssSupported; +} + +void +DsssParameterSet::SetCurrentChannel (uint8_t currentChannel) +{ + m_currentChannel = currentChannel; +} + +uint8_t +DsssParameterSet::GetCurrentChannel (void) const +{ + return m_currentChannel; +} + +uint8_t +DsssParameterSet::GetInformationFieldSize () const +{ + NS_ASSERT (m_dsssSupported > 0); + return 1; +} + +Buffer::Iterator +DsssParameterSet::Serialize (Buffer::Iterator i) const +{ + if (m_dsssSupported < 1) + { + return i; + } + return WifiInformationElement::Serialize (i); +} + +uint16_t +DsssParameterSet::GetSerializedSize () const +{ + if (m_dsssSupported < 1) + { + return 0; + } + return WifiInformationElement::GetSerializedSize (); +} + +void +DsssParameterSet::SerializeInformationField (Buffer::Iterator start) const +{ + if (m_dsssSupported == 1) + { + start.WriteU8 (m_currentChannel); + } +} + +uint8_t +DsssParameterSet::DeserializeInformationField (Buffer::Iterator start, uint8_t length) +{ + Buffer::Iterator i = start; + m_currentChannel = i.ReadU8 (); + return length; +} + +ATTRIBUTE_HELPER_CPP (DsssParameterSet); + +std::ostream & operator << (std::ostream &os, const DsssParameterSet &DsssParameterSet) +{ + return os; +} + +std::istream &operator >> (std::istream &is, DsssParameterSet &DsssParameterSet) +{ + return is; +} + +} //namespace ns3 diff --git a/src/wifi/model/dsss-parameter-set.h b/src/wifi/model/dsss-parameter-set.h new file mode 100644 index 00000000000..190d3eedc0a --- /dev/null +++ b/src/wifi/model/dsss-parameter-set.h @@ -0,0 +1,94 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2016 Sébastien Deronne + * + * 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 + */ + +#ifndef DSSS_PARAMETER_SET_H +#define DSSS_PARAMETER_SET_H + +#include +#include +#include "ns3/buffer.h" +#include "ns3/wifi-information-element.h" + +namespace ns3 { + +/** + * \brief The DSSS Parameter Set + * \ingroup wifi + * + * This class knows how to serialise and deserialise the DSSS Parameter Set. + */ +class DsssParameterSet : public WifiInformationElement +{ +public: + DsssParameterSet (); + void SetDsssSupported (uint8_t DsssSupported); + + /** + * Set the Current Channel field in the DsssParameterSet information element. + * + * \param qosInfo the CurrentChannel field in the DsssParameterSet information element + */ + void SetCurrentChannel (uint8_t currentChannel); + + /* + * Return the Current Channel field in the DsssParameterSet information element. + * + * \return the Current Channel field in the DsssParameterSet information element + */ + uint8_t GetCurrentChannel (void) const; + + WifiInformationElementId ElementId () const; + uint8_t GetInformationFieldSize () const; + void SerializeInformationField (Buffer::Iterator start) const; + uint8_t DeserializeInformationField (Buffer::Iterator start, uint8_t length); + + /** + * This information element is a bit special in that it is only + * included if the STA does support DSSS. To support this we + * override the Serialize and GetSerializedSize methods of + * WifiInformationElement. + * + * \param start + * + * \return an iterator + */ + Buffer::Iterator Serialize (Buffer::Iterator start) const; + /** + * Return the serialized size of this DSSS Parameter Set. + * + * \return the serialized size of this DSSS Parameter Set + */ + uint16_t GetSerializedSize () const; + +private: + uint8_t m_currentChannel; + + //This is used to decide whether this element should be added to the frame or not + bool m_dsssSupported; +}; + +std::ostream &operator << (std::ostream &os, const DsssParameterSet &dsssParameterSet); +std::istream &operator >> (std::istream &is, DsssParameterSet &dsssParameterSet); + +ATTRIBUTE_HELPER_HEADER (DsssParameterSet); + +} //namespace ns3 + +#endif /* DSSS_PARAMETER_SET_H */ diff --git a/src/wifi/model/mgt-headers.cc b/src/wifi/model/mgt-headers.cc index 0cbb71d643b..d46e3b5b1fc 100644 --- a/src/wifi/model/mgt-headers.cc +++ b/src/wifi/model/mgt-headers.cc @@ -251,6 +251,18 @@ MgtProbeResponseHeader::SetSupportedRates (SupportedRates rates) m_rates = rates; } +void +MgtProbeResponseHeader::SetDsssParameterSet (DsssParameterSet dsssParameterSet) +{ + m_dsssParameterSet = dsssParameterSet; +} + +DsssParameterSet +MgtProbeResponseHeader::GetDsssParameterSet (void) const +{ + return m_dsssParameterSet; +} + void MgtProbeResponseHeader::SetErpInformation (ErpInformation erpInformation) { @@ -301,7 +313,7 @@ MgtProbeResponseHeader::GetSerializedSize (void) const size += m_capability.GetSerializedSize (); size += m_ssid.GetSerializedSize (); size += m_rates.GetSerializedSize (); - //size += 3; //ds parameter set + size += m_dsssParameterSet.GetSerializedSize (); size += m_erpInformation.GetSerializedSize (); size += m_rates.extended.GetSerializedSize (); size += m_edcaParameterSet.GetSerializedSize (); @@ -316,6 +328,7 @@ MgtProbeResponseHeader::Print (std::ostream &os) const { os << "ssid=" << m_ssid << ", " << "rates=" << m_rates << ", " + << "DSSS Parameter Set=" << m_dsssParameterSet << " , " << "ERP information=" << m_erpInformation << ", " << "HT Capabilities=" << m_htCapability << " , " << "HT Operations=" << m_htOperations << " , " @@ -340,7 +353,7 @@ MgtProbeResponseHeader::Serialize (Buffer::Iterator start) const i = m_capability.Serialize (i); i = m_ssid.Serialize (i); i = m_rates.Serialize (i); - //i.WriteU8 (0, 3); //ds parameter set. + i = m_dsssParameterSet.Serialize (i); i = m_erpInformation.Serialize (i); i = m_rates.extended.Serialize (i); i = m_edcaParameterSet.Serialize (i); @@ -359,7 +372,7 @@ MgtProbeResponseHeader::Deserialize (Buffer::Iterator start) i = m_capability.Deserialize (i); i = m_ssid.Deserialize (i); i = m_rates.Deserialize (i); - //i.Next (3); //ds parameter set + i = m_dsssParameterSet.DeserializeIfPresent (i); i = m_erpInformation.DeserializeIfPresent (i); i = m_rates.extended.DeserializeIfPresent (i); i = m_edcaParameterSet.DeserializeIfPresent (i); diff --git a/src/wifi/model/mgt-headers.h b/src/wifi/model/mgt-headers.h index 9f41bf40110..c17bb3bbb6e 100644 --- a/src/wifi/model/mgt-headers.h +++ b/src/wifi/model/mgt-headers.h @@ -30,6 +30,7 @@ #include "capability-information.h" #include "supported-rates.h" #include "ssid.h" +#include "dsss-parameter-set.h" #include "ht-capabilities.h" #include "ht-operations.h" #include "vht-capabilities.h" @@ -387,6 +388,12 @@ class MgtProbeResponseHeader : public Header * \return Capability information */ CapabilityInformation GetCapabilities (void) const; + /** + * Return the DSSS Parameter Set. + * + * \return the DSSS Parameter Set + */ + DsssParameterSet GetDsssParameterSet (void) const; /** * Return the HT capabilities. * @@ -459,6 +466,12 @@ class MgtProbeResponseHeader : public Header * \param rates the supported rates */ void SetSupportedRates (SupportedRates rates); + /** + * Set the DSSS Parameter Set. + * + * \param dsssParameterSet the DSSS Parameter Set + */ + void SetDsssParameterSet (DsssParameterSet dsssParameterSet); /** * Set the ERP information. * @@ -496,6 +509,7 @@ class MgtProbeResponseHeader : public Header uint64_t m_beaconInterval; //!< Beacon interval SupportedRates m_rates; //!< List of supported rates CapabilityInformation m_capability; //!< Capability information + DsssParameterSet m_dsssParameterSet; //!< DSSS Parameter Set HtCapabilities m_htCapability; //!< HT capabilities HtOperations m_htOperations; //!< HT operations VhtCapabilities m_vhtCapability; //!< VHT capabilities diff --git a/src/wifi/model/regular-wifi-mac.cc b/src/wifi/model/regular-wifi-mac.cc index ef2daabff51..7b9bb92e14e 100644 --- a/src/wifi/model/regular-wifi-mac.cc +++ b/src/wifi/model/regular-wifi-mac.cc @@ -43,7 +43,7 @@ RegularWifiMac::RegularWifiMac () : m_htSupported (0), m_vhtSupported (0), m_erpSupported (0), - m_isDsssOnly (0) + m_dsssSupported (0) { NS_LOG_FUNCTION (this); m_rxMiddle = new MacRxMiddle (); @@ -523,9 +523,26 @@ void RegularWifiMac::SetErpSupported (bool enable) { NS_LOG_FUNCTION (this); + if (enable) + { + SetDsssSupported (true); + } m_erpSupported = enable; } +void +RegularWifiMac::SetDsssSupported (bool enable) +{ + NS_LOG_FUNCTION (this); + m_dsssSupported = enable; +} + +bool +RegularWifiMac::GetDsssSupported () const +{ + return m_dsssSupported; +} + void RegularWifiMac::SetCtsToSelfSupported (bool enable) { @@ -1108,9 +1125,9 @@ RegularWifiMac::FinishConfigureStandard (enum WifiPhyStandard standard) cwmax = 1023; break; case WIFI_PHY_STANDARD_80211b: + SetDsssSupported (true); cwmin = 31; cwmax = 1023; - m_isDsssOnly = true; break; default: NS_FATAL_ERROR ("Unsupported WifiPhyStandard in RegularWifiMac::FinishConfigureStandard ()"); @@ -1122,14 +1139,15 @@ RegularWifiMac::FinishConfigureStandard (enum WifiPhyStandard standard) void RegularWifiMac::ConfigureContentionWindow (uint32_t cwMin, uint32_t cwMax) { + bool isDsssOnly = m_dsssSupported && !m_erpSupported; //The special value of AC_BE_NQOS which exists in the Access //Category enumeration allows us to configure plain old DCF. - ConfigureDcf (m_dca, cwMin, cwMax, m_isDsssOnly, AC_BE_NQOS); + ConfigureDcf (m_dca, cwMin, cwMax, isDsssOnly, AC_BE_NQOS); //Now we configure the EDCA functions for (EdcaQueues::iterator i = m_edca.begin (); i != m_edca.end (); ++i) { - ConfigureDcf (i->second, cwMin, cwMax, m_isDsssOnly, i->first); + ConfigureDcf (i->second, cwMin, cwMax, isDsssOnly, i->first); } } diff --git a/src/wifi/model/regular-wifi-mac.h b/src/wifi/model/regular-wifi-mac.h index ac8050a9c93..b259f2a57b1 100644 --- a/src/wifi/model/regular-wifi-mac.h +++ b/src/wifi/model/regular-wifi-mac.h @@ -509,6 +509,24 @@ class RegularWifiMac : public WifiMac * \return true if ERP is supported, false otherwise */ bool GetErpSupported () const; + + /** + * This Boolean is set \c true iff this WifiMac is to model + * 802.11b. It is exposed through the attribute system. + */ + bool m_dsssSupported; + /** + * Enable or disable DSSS support for the device. + * + * \param enable whether DSSS is supported + */ + void SetDsssSupported (bool enable); + /** + * Return whether the device supports DSSS. + * + * \return true if DSSS is supported, false otherwise + */ + bool GetDsssSupported () const; private: @@ -561,7 +579,6 @@ class RegularWifiMac : public WifiMac TracedCallback m_txErrCallback; bool m_shortSlotTimeSupported; - bool m_isDsssOnly; }; } //namespace ns3 diff --git a/src/wifi/wscript b/src/wifi/wscript index 62dcc5a17a5..0ba3c191e47 100644 --- a/src/wifi/wscript +++ b/src/wifi/wscript @@ -78,6 +78,7 @@ def build(bld): 'model/vht-capabilities.cc', 'model/erp-information.cc', 'model/ht-operations.cc', + 'model/dsss-parameter-set.cc', 'model/edca-parameter-set.cc', 'helper/wifi-radio-energy-model-helper.cc', 'helper/vht-wifi-mac-helper.cc', @@ -181,6 +182,7 @@ def build(bld): 'model/vht-capabilities.h', 'model/erp-information.h', 'model/ht-operations.h', + 'model/dsss-parameter-set.h', 'model/edca-parameter-set.h', 'helper/wifi-radio-energy-model-helper.h', 'helper/vht-wifi-mac-helper.h', From c9f9289a93409c16b4d50b7d2d0227e30522d6e9 Mon Sep 17 00:00:00 2001 From: Pasquale Imputato Date: Thu, 17 Mar 2016 15:35:40 +0100 Subject: [PATCH 21/27] network: add the QueueLimits base class --- src/network/utils/queue-limits.cc | 46 +++++++++++++++++ src/network/utils/queue-limits.h | 84 +++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 src/network/utils/queue-limits.cc create mode 100644 src/network/utils/queue-limits.h diff --git a/src/network/utils/queue-limits.cc b/src/network/utils/queue-limits.cc new file mode 100644 index 00000000000..1efa60eb9b6 --- /dev/null +++ b/src/network/utils/queue-limits.cc @@ -0,0 +1,46 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2016 Universita' degli Studi di Napoli Federico II + * + * 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 + * + * Authors: Pasquale Imputato + * Stefano Avallone + */ + +#include "ns3/log.h" +#include "queue-limits.h" + +namespace ns3 { + +NS_LOG_COMPONENT_DEFINE ("QueueLimits"); + +NS_OBJECT_ENSURE_REGISTERED (QueueLimits); + +TypeId +QueueLimits::GetTypeId (void) +{ + static TypeId tid = TypeId ("ns3::QueueLimits") + .SetParent () + .SetGroupName ("Network") + ; + return tid; +} + +QueueLimits::~QueueLimits () +{ + NS_LOG_FUNCTION (this); +} + +} // namespace ns3 diff --git a/src/network/utils/queue-limits.h b/src/network/utils/queue-limits.h new file mode 100644 index 00000000000..146acd0b07c --- /dev/null +++ b/src/network/utils/queue-limits.h @@ -0,0 +1,84 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2016 Universita' degli Studi di Napoli Federico II + * + * 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 + * + * Authors: Pasquale Imputato + * Stefano Avallone + */ + +#ifndef QUEUE_LIMITS_H +#define QUEUE_LIMITS_H + +#include "ns3/object.h" + +namespace ns3 { + +/** + * \ingroup network + * + * \brief Abstract base class for NetDevice queue length controller + * + * QueueLimits is an abstract base class providing the interface to + * the NetDevice queue length controller. + * + * Child classes need to implement the methods used for a byte-based + * measure of the queue length. + * + * The design and implementation of this class is inspired by Linux. + * For more details, see the queue limits model page. + * + */ +class QueueLimits : public Object { +public: + /** + * \brief Get the type ID. + * \return the object TypeId + */ + static TypeId GetTypeId (void); + + virtual ~QueueLimits (); + + /** + * \brief Reset queue limits state + */ + virtual void Reset () = 0; + + /** + * \brief Record number of completed objects and recalculate the limit + * \param count the number of completed objects + */ + virtual void Completed (uint32_t count) = 0; + + /** + * Available is called from NotifyTransmissionCompleted to calculate the + * number of objects that can be passed again to the NetDevice. + * A negative value mean that no objects can be passed to the NetDevice. + * In this case, NotifyTransmissionCompleted stop the transmission queue. + * \brief Returns how many objects that can be queued + * \return the number of objects that can be queued + */ + virtual int32_t Available () const = 0; + + /** + * \brief Record number of objects queued + * \param count the number of objects queued + */ + virtual void Queued (uint32_t count) = 0; +}; + +} // namespace ns3 + +#endif /* QUEUE_LIMITS_H */ From dac0d934bab5974ed53bdca8d999792a366030b9 Mon Sep 17 00:00:00 2001 From: Pasquale Imputato Date: Thu, 17 Mar 2016 15:38:44 +0100 Subject: [PATCH 22/27] network: add DynamicQueueLimits --- src/network/utils/dynamic-queue-limits.cc | 229 ++++++++++++++++++++++ src/network/utils/dynamic-queue-limits.h | 106 ++++++++++ src/network/wscript | 4 + 3 files changed, 339 insertions(+) create mode 100644 src/network/utils/dynamic-queue-limits.cc create mode 100644 src/network/utils/dynamic-queue-limits.h diff --git a/src/network/utils/dynamic-queue-limits.cc b/src/network/utils/dynamic-queue-limits.cc new file mode 100644 index 00000000000..ed3be5cb465 --- /dev/null +++ b/src/network/utils/dynamic-queue-limits.cc @@ -0,0 +1,229 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2016 Universita' degli Studi di Napoli Federico II + * + * 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 + * + * Authors: Pasquale Imputato + * Stefano Avallone + * + * This code is a port of the dynamic queue limits library implemented + * in the Linux kernel by + * Author: Tom Herbert + */ + +#include "ns3/log.h" +#include "ns3/uinteger.h" +#include "ns3/simulator.h" +#include "ns3/string.h" +#include "dynamic-queue-limits.h" + +// Set some static maximums +static const uint32_t UINTMAX = std::numeric_limits::max (); +static const uint32_t DQL_MAX_OBJECT = UINTMAX / 16; +static const uint32_t DQL_MAX_LIMIT = (UINTMAX / 2) - DQL_MAX_OBJECT; + +namespace ns3 { + +NS_LOG_COMPONENT_DEFINE ("DynamicQueueLimits"); + +NS_OBJECT_ENSURE_REGISTERED (DynamicQueueLimits); + +TypeId +DynamicQueueLimits::GetTypeId (void) +{ + static TypeId tid = TypeId ("ns3::DynamicQueueLimits") + .SetParent () + .SetParent () + .SetGroupName ("Network") + .AddConstructor () + .AddAttribute ("HoldTime", + "The DQL algorithm hold time", + StringValue ("4ms"), // 1/HZ + MakeTimeAccessor (&DynamicQueueLimits::m_slackHoldTime), + MakeTimeChecker ()) + .AddAttribute ("MaxLimit", + "Maximum limit", + UintegerValue (DQL_MAX_LIMIT), + MakeUintegerAccessor (&DynamicQueueLimits::m_maxLimit), + MakeUintegerChecker (0, DQL_MAX_LIMIT)) + .AddAttribute ("MinLimit", + "Minimum limit", + UintegerValue (0), + MakeUintegerAccessor (&DynamicQueueLimits::m_minLimit), + MakeUintegerChecker ()) + .AddTraceSource ("Limit", + "Limit value calculated by DQL", + MakeTraceSourceAccessor (&DynamicQueueLimits::m_limit), + "ns3::TracedValueCallback::Uint32") + ; + return tid; +} + +DynamicQueueLimits::DynamicQueueLimits () +{ + NS_LOG_FUNCTION (this); + Reset (); +} + +DynamicQueueLimits::~DynamicQueueLimits () +{ + NS_LOG_FUNCTION (this); +} + +void +DynamicQueueLimits::Reset () +{ + NS_LOG_FUNCTION (this); + // Reset all dynamic values + m_limit = 0; + m_numQueued = 0; + m_numCompleted = 0; + m_lastObjCnt = 0; + m_prevNumQueued = 0; + m_prevLastObjCnt = 0; + m_prevOvlimit = 0; + m_lowestSlack = UINTMAX; + m_slackStartTime = Simulator::Now (); +} + +void +DynamicQueueLimits::Completed (uint32_t count) +{ + NS_LOG_FUNCTION (this << count); + uint32_t inprogress, prevInprogress, limit; + uint32_t ovlimit, completed, numQueued; + bool allPrevCompleted; + + numQueued = m_numQueued; + + // Can't complete more than what's in queue + NS_ASSERT (count <= numQueued - m_numCompleted); + + completed = m_numCompleted + count; + limit = m_limit; + ovlimit = Posdiff (numQueued - m_numCompleted, limit); + inprogress = numQueued - completed; + prevInprogress = m_prevNumQueued - m_numCompleted; + allPrevCompleted = ((int32_t)(completed - m_prevNumQueued)) >= 0; + + if ((ovlimit && !inprogress) || (m_prevOvlimit && allPrevCompleted)) + { + NS_LOG_DEBUG ("Queue starved, increase limit"); + /* + * Queue considered starved if: + * - The queue was over-limit in the last interval, + * and there is no more data in the queue. + * OR + * - The queue was over-limit in the previous interval and + * when enqueuing it was possible that all queued data + * had been consumed. This covers the case when queue + * may have becomes starved between completion processing + * running and next time enqueue was scheduled. + * + * When queue is starved increase the limit by the amount + * of bytes both sent and completed in the last interval, + * plus any previous over-limit. + */ + limit += Posdiff (completed, m_prevNumQueued) + m_prevOvlimit; + m_slackStartTime = Simulator::Now (); + m_lowestSlack = UINTMAX; + } + else if (inprogress && prevInprogress && !allPrevCompleted) + { + NS_LOG_DEBUG ("Queue not starved, check decrease limit"); + /* + * Queue was not starved, check if the limit can be decreased. + * A decrease is only considered if the queue has been busy in + * the whole interval (the check above). + * + * If there is slack, the amount of execess data queued above + * the the amount needed to prevent starvation, the queue limit + * can be decreased. To avoid hysteresis we consider the + * minimum amount of slack found over several iterations of the + * completion routine. + */ + uint32_t slack, slackLastObjs; + + /* + * Slack is the maximum of + * - The queue limit plus previous over-limit minus twice + * the number of objects completed. Note that two times + * number of completed bytes is a basis for an upper bound + * of the limit. + * - Portion of objects in the last queuing operation that + * was not part of non-zero previous over-limit. That is + * "round down" by non-overlimit portion of the last + * queueing operation. + */ + slack = Posdiff (limit + m_prevOvlimit, 2 * (completed - m_numCompleted)); + slackLastObjs = m_prevOvlimit ? Posdiff (m_prevLastObjCnt, m_prevOvlimit) : 0; + + slack = std::max (slack, slackLastObjs); + + if (slack < m_lowestSlack) + { + m_lowestSlack = slack; + } + + if (Simulator::Now () > (m_slackStartTime + m_slackHoldTime)) + { + limit = Posdiff (limit, m_lowestSlack); + m_slackStartTime = Simulator::Now (); + m_lowestSlack = UINTMAX; + } + } + + // Enforce bounds on limit + limit = std::min ((uint32_t)std::max (limit, m_minLimit), m_maxLimit); + + if (limit != m_limit) + { + NS_LOG_DEBUG ("Update limit"); + m_limit = limit; + ovlimit = 0; + } + + m_adjLimit = limit + completed; + m_prevOvlimit = ovlimit; + m_prevLastObjCnt = m_lastObjCnt; + m_numCompleted = completed; + m_prevNumQueued = numQueued; +} + +int32_t +DynamicQueueLimits::Available () const +{ + NS_LOG_FUNCTION (this); + return (m_adjLimit - m_numQueued); +} + +void +DynamicQueueLimits::Queued (uint32_t count) +{ + NS_LOG_FUNCTION (this << count); + NS_ASSERT (count <= DQL_MAX_OBJECT); + + m_lastObjCnt = count; + m_numQueued += count; +} + +int32_t +DynamicQueueLimits::Posdiff (int32_t a, int32_t b) +{ + NS_LOG_FUNCTION (this << a << b); + return std::max ((a - b), 0); +} + +} // namespace ns3 diff --git a/src/network/utils/dynamic-queue-limits.h b/src/network/utils/dynamic-queue-limits.h new file mode 100644 index 00000000000..aaff3edaa17 --- /dev/null +++ b/src/network/utils/dynamic-queue-limits.h @@ -0,0 +1,106 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2016 Universita' degli Studi di Napoli Federico II + * + * 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 + * + * Authors: Pasquale Imputato + * Stefano Avallone + * + * This code is a port of the dynamic queue limits library implemented + * in the Linux kernel by + * Author: Tom Herbert + */ + +#ifndef DYNAMIC_QUEUE_LIMITS_H +#define DYNAMIC_QUEUE_LIMITS_H + +#include "queue-limits.h" +#include "ns3/nstime.h" +#include "ns3/traced-value.h" +#include + +namespace ns3 { + +/** + * \ingroup network + * + * DynamicQueueLimits would be used in conjunction with a producer/consumer + * type queue (possibly a netdevice queue). + * Such a queue would have these general properties: + * + * 1) Objects are queued up to some limit specified as number of objects. + * 2) Periodically a completion process executes which retires consumed + * objects. + * 3) Starvation occurs when limit has been reached, all queued data has + * actually been consumed, but completion processing has not yet run + * so queuing new data is blocked. + * 4) Minimizing the amount of queued data is desirable. + * + * The goal of DynamicQueueLimits is to calculate the limit as the minimum + * number of objects needed to prevent starvation. + * + * The primary functions of DynamicQueueLimits are: + * Completed - called at completion time to indicate how many objects + * were retired from the queue + * Available - returns how many objects are available to be queued based + * on the object limit and how many objects are already enqueued + * Queued - called when objects are enqueued to record number of objects + * + */ + +class DynamicQueueLimits : public QueueLimits { +public: + /** + * \brief Get the type ID. + * \return the object TypeId + */ + static TypeId GetTypeId (void); + + DynamicQueueLimits (); + virtual ~DynamicQueueLimits (); + + virtual void Reset (); + virtual void Completed (uint32_t count); + virtual int32_t Available () const; + virtual void Queued (uint32_t count); + +private: + int32_t Posdiff (int32_t a, int32_t b); + + // Fields accessed in enqueue path + uint32_t m_numQueued; //!< Total ever queued + uint32_t m_adjLimit; //!< limit + num_completed + uint32_t m_lastObjCnt; //!< Count at last queuing + + // Fields accessed only by completion path + TracedValue m_limit; //!< Current limit + uint32_t m_numCompleted; //!< Total ever completed + + uint32_t m_prevOvlimit; //!< Previous over limit + uint32_t m_prevNumQueued; //!< Previous queue total + uint32_t m_prevLastObjCnt; //!< Previous queuing cnt + + uint32_t m_lowestSlack; //!< Lowest slack found + Time m_slackStartTime; //!< Time slacks seen + + // Configuration + uint32_t m_maxLimit; //!< Max limit + uint32_t m_minLimit; //!< Minimum limit + Time m_slackHoldTime; //!< Time to measure slack +}; + +} // namespace ns3 + +#endif /* DYNAMIC_QUEUE_LIMITS_H */ diff --git a/src/network/wscript b/src/network/wscript index fb6032d64b8..b9c40198d0a 100644 --- a/src/network/wscript +++ b/src/network/wscript @@ -28,6 +28,7 @@ def build(bld): 'utils/crc32.cc', 'utils/data-rate.cc', 'utils/drop-tail-queue.cc', + 'utils/dynamic-queue-limits.cc', 'utils/error-model.cc', 'utils/ethernet-header.cc', 'utils/ethernet-trailer.cc', @@ -49,6 +50,7 @@ def build(bld): 'utils/pcap-file.cc', 'utils/pcap-file-wrapper.cc', 'utils/queue.cc', + 'utils/queue-limits.cc', 'utils/radiotap-header.cc', 'utils/simple-channel.cc', 'utils/simple-net-device.cc', @@ -109,6 +111,7 @@ def build(bld): 'utils/crc32.h', 'utils/data-rate.h', 'utils/drop-tail-queue.h', + 'utils/dynamic-queue-limits.h', 'utils/error-model.h', 'utils/ethernet-header.h', 'utils/ethernet-trailer.h', @@ -131,6 +134,7 @@ def build(bld): 'utils/pcap-file-wrapper.h', 'utils/generic-phy.h', 'utils/queue.h', + 'utils/queue-limits.h', 'utils/radiotap-header.h', 'utils/sequence-number.h', 'utils/sgi-hashmap.h', From b9c651865c76c3be28f323b1a5441272a5e3d4a3 Mon Sep 17 00:00:00 2001 From: Pasquale Imputato Date: Wed, 27 Jul 2016 15:06:50 +0200 Subject: [PATCH 23/27] network: NetDeviceQueue use QueueLimits to define byte queue limits --- src/network/model/net-device.cc | 72 +++++++++++++++++++++++++++++++-- src/network/model/net-device.h | 36 ++++++++++++++++- 2 files changed, 102 insertions(+), 6 deletions(-) diff --git a/src/network/model/net-device.cc b/src/network/model/net-device.cc index ad4c43bb504..419cfdab726 100644 --- a/src/network/model/net-device.cc +++ b/src/network/model/net-device.cc @@ -22,6 +22,7 @@ #include "ns3/log.h" #include "ns3/abort.h" #include "ns3/uinteger.h" +#include "ns3/queue-limits.h" #include "net-device.h" #include "packet.h" @@ -72,7 +73,8 @@ std::ostream & operator << (std::ostream &os, const QueueItem &item) } NetDeviceQueue::NetDeviceQueue() - : m_stopped (false) + : m_stoppedByDevice (false), + m_stoppedByQueueLimits (false) { NS_LOG_FUNCTION (this); } @@ -85,19 +87,19 @@ NetDeviceQueue::~NetDeviceQueue () bool NetDeviceQueue::IsStopped (void) const { - return m_stopped; + return m_stoppedByDevice || m_stoppedByQueueLimits; } void NetDeviceQueue::Start (void) { - m_stopped = false; + m_stoppedByDevice = false; } void NetDeviceQueue::Stop (void) { - m_stopped = true; + m_stoppedByDevice = true; } void @@ -118,6 +120,68 @@ NetDeviceQueue::SetWakeCallback (WakeCallback cb) m_wakeCallback = cb; } +void +NetDeviceQueue::NotifyQueuedBytes (uint32_t bytes) +{ + NS_LOG_FUNCTION (this << bytes); + if (!m_queueLimits) + { + return; + } + m_queueLimits->Queued (bytes); + if (m_queueLimits->Available () >= 0) + { + return; + } + m_stoppedByQueueLimits = true; +} + +void +NetDeviceQueue::NotifyTransmittedBytes (uint32_t bytes) +{ + NS_LOG_FUNCTION (this << bytes); + if ((!m_queueLimits) || (!bytes)) + { + return; + } + m_queueLimits->Completed (bytes); + if (m_queueLimits->Available () < 0) + { + return; + } + m_stoppedByQueueLimits = false; + // Request the queue disc to dequeue a packet + if (!m_wakeCallback.IsNull ()) + { + m_wakeCallback (); + } +} + +void +NetDeviceQueue::ResetQueueLimits () +{ + NS_LOG_FUNCTION (this); + if (!m_queueLimits) + { + return; + } + m_queueLimits->Reset (); +} + +void +NetDeviceQueue::SetQueueLimits (Ptr ql) +{ + NS_LOG_FUNCTION (this << ql); + m_queueLimits = ql; +} + +Ptr +NetDeviceQueue::GetQueueLimits () +{ + NS_LOG_FUNCTION (this); + return m_queueLimits; +} + NS_OBJECT_ENSURE_REGISTERED (NetDeviceQueueInterface); diff --git a/src/network/model/net-device.h b/src/network/model/net-device.h index f4661f75ce4..d6f47d38d26 100644 --- a/src/network/model/net-device.h +++ b/src/network/model/net-device.h @@ -37,6 +37,7 @@ namespace ns3 { class Node; class Channel; class Packet; +class QueueLimits; /** * \ingroup network @@ -207,9 +208,40 @@ class NetDeviceQueue : public SimpleRefCount */ virtual void SetWakeCallback (WakeCallback cb); + /** + * \brief Report the number of bytes queued to the device queue + * \param bytes number of bytes queued to the device queue + */ + void NotifyQueuedBytes (uint32_t bytes); + + /** + * \brief Report the number of bytes transmitted by device + * \param bytes number of bytes transmitted by device + */ + void NotifyTransmittedBytes (uint32_t bytes); + + /** + * \brief Reset queue limits state + */ + void ResetQueueLimits (); + + /** + * \brief Set queue limits to this queue + * \param ql the queue limits associated to this queue + */ + void SetQueueLimits (Ptr ql); + + /** + * \brief Get queue limits to this queue + * \return the queue limits associated to this queue + */ + Ptr GetQueueLimits (); + private: - bool m_stopped; //!< Status of the transmission queue - WakeCallback m_wakeCallback; //!< Wake callback + bool m_stoppedByDevice; //!< Status of the transmission queue by device + bool m_stoppedByQueueLimits; //!< Status of the trasmissione queue by queue limits + Ptr m_queueLimits; //!< Queue limits + WakeCallback m_wakeCallback; //!< Wake callback }; From f1bcf9d0a07b09f3e3b8d78b09bec291d0eb2dd0 Mon Sep 17 00:00:00 2001 From: Pasquale Imputato Date: Thu, 19 May 2016 19:50:04 +0200 Subject: [PATCH 24/27] point-to-point: now the device inform byte queue limits --- .../model/point-to-point-net-device.cc | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/point-to-point/model/point-to-point-net-device.cc b/src/point-to-point/model/point-to-point-net-device.cc index 11a25b58b3c..5faacc47234 100644 --- a/src/point-to-point/model/point-to-point-net-device.cc +++ b/src/point-to-point/model/point-to-point-net-device.cc @@ -341,6 +341,11 @@ PointToPointNetDevice::TransmitComplete (void) m_snifferTrace (p); m_promiscSnifferTrace (p); TransmitStart (p); + if (txq) + { + // Inform BQL + txq->NotifyTransmittedBytes (m_currentPkt->GetSize ()); + } } bool @@ -591,6 +596,11 @@ PointToPointNetDevice::Send ( // if (m_queue->Enqueue (Create (packet))) { + // Inform BQL + if (txq) + { + txq->NotifyQueuedBytes (packet->GetSize ()); + } // // If the channel is ready for transition we send the packet right now // @@ -613,7 +623,13 @@ PointToPointNetDevice::Send ( } m_snifferTrace (packet); m_promiscSnifferTrace (packet); - return TransmitStart (packet); + bool ret = TransmitStart (packet); + if (txq) + { + // Inform BQL + txq->NotifyTransmittedBytes (m_currentPkt->GetSize ()); + } + return ret; } // We have enqueued a packet but we have not dequeued any packet. Thus, we // need to check whether the queue is able to store another packet. If not, From a9c2c21bdbc8132a4a503a800754d158d65e2a54 Mon Sep 17 00:00:00 2001 From: Stefano Avallone Date: Fri, 20 May 2016 18:04:28 +0200 Subject: [PATCH 25/27] traffic-control: Queue limits objects can be installed by the traffic control helper --- src/network/model/net-device.h | 1 - .../helper/traffic-control-helper.cc | 49 ++++++++++++++++++ .../helper/traffic-control-helper.h | 50 ++++++++++++++++--- 3 files changed, 93 insertions(+), 7 deletions(-) diff --git a/src/network/model/net-device.h b/src/network/model/net-device.h index d6f47d38d26..2a1d0f60435 100644 --- a/src/network/model/net-device.h +++ b/src/network/model/net-device.h @@ -157,7 +157,6 @@ std::ostream& operator<< (std::ostream& os, const QueueItem &item); * stopped or not) and data used by techniques such as Byte Queue Limits. * * This class roughly models the struct netdev_queue of Linux. - * \todo Implement BQL */ class NetDeviceQueue : public SimpleRefCount { diff --git a/src/traffic-control/helper/traffic-control-helper.cc b/src/traffic-control/helper/traffic-control-helper.cc index 45df710dcfe..bf5bd532608 100644 --- a/src/traffic-control/helper/traffic-control-helper.cc +++ b/src/traffic-control/helper/traffic-control-helper.cc @@ -21,6 +21,7 @@ #include "ns3/log.h" #include "ns3/abort.h" #include "ns3/queue-disc.h" +#include "ns3/queue-limits.h" #include "ns3/uinteger.h" #include "ns3/pointer.h" #include "ns3/traffic-control-layer.h" @@ -327,9 +328,33 @@ TrafficControlHelper::AddChildQueueDiscs (uint16_t handle, const TrafficControlH return list; } +void +TrafficControlHelper::SetQueueLimits (std::string type, + std::string n01, const AttributeValue& v01, + std::string n02, const AttributeValue& v02, + std::string n03, const AttributeValue& v03, + std::string n04, const AttributeValue& v04, + std::string n05, const AttributeValue& v05, + std::string n06, const AttributeValue& v06, + std::string n07, const AttributeValue& v07, + std::string n08, const AttributeValue& v08) +{ + m_queueLimitsFactory.SetTypeId (type); + m_queueLimitsFactory.Set (n01, v01); + m_queueLimitsFactory.Set (n02, v02); + m_queueLimitsFactory.Set (n03, v03); + m_queueLimitsFactory.Set (n04, v04); + m_queueLimitsFactory.Set (n05, v05); + m_queueLimitsFactory.Set (n06, v06); + m_queueLimitsFactory.Set (n07, v07); + m_queueLimitsFactory.Set (n08, v08); +} + QueueDiscContainer TrafficControlHelper::Install (Ptr d) { + NS_ASSERT_MSG (!m_queueDiscFactory.empty (), "No queue disc to install!"); + QueueDiscContainer container; // A TrafficControlLayer object is aggregated by the InternetStackHelper, but check @@ -353,6 +378,21 @@ TrafficControlHelper::Install (Ptr d) // Set the root queue disc on the device tc->SetRootQueueDiscOnDevice (d, m_queueDiscs[0]); + // SetRootQueueDiscOnDevice calls SetupDevice (if it has not been called yet), + // which aggregates a netdevice queue interface to the device and creates the + // device transmission queues. Hence, we can install a queue limits object (if + // required) on all the device transmission queues + if (m_queueLimitsFactory.GetTypeId ().GetUid ()) + { + Ptr ndqi = d->GetObject (); + NS_ASSERT (ndqi); + for (uint8_t i = 0; i < ndqi->GetNTxQueues (); i++) + { + Ptr ql = m_queueLimitsFactory.Create (); + ndqi->GetTxQueue (i)->SetQueueLimits (ql); + } + } + return container; } @@ -376,6 +416,15 @@ TrafficControlHelper::Uninstall (Ptr d) NS_ASSERT (tc != 0); tc->DeleteRootQueueDiscOnDevice (d); + // remove the queue limits objects installed on the device transmission queues + Ptr ndqi = d->GetObject (); + // if a queue disc has been installed on the device, a netdevice queue interface + // must have been aggregated to the device + NS_ASSERT (ndqi); + for (uint8_t i = 0; i < ndqi->GetNTxQueues (); i++) + { + ndqi->GetTxQueue (i)->SetQueueLimits (0); + } } void diff --git a/src/traffic-control/helper/traffic-control-helper.h b/src/traffic-control/helper/traffic-control-helper.h index 3828713059a..62120eaf071 100644 --- a/src/traffic-control/helper/traffic-control-helper.h +++ b/src/traffic-control/helper/traffic-control-helper.h @@ -416,6 +416,38 @@ class TrafficControlHelper std::string n14 = "", const AttributeValue &v14 = EmptyAttributeValue (), std::string n15 = "", const AttributeValue &v15 = EmptyAttributeValue ()); + /** + * Helper function used to add a queue limits object to the transmission + * queues of the devices + * + * \param type the type of queue + * \param n01 the name of the attribute to set on the queue limits object + * \param v01 the value of the attribute to set on the queue limits object + * \param n02 the name of the attribute to set on the queue limits object + * \param v02 the value of the attribute to set on the queue limits object + * \param n03 the name of the attribute to set on the queue limits object + * \param v03 the value of the attribute to set on the queue limits object + * \param n04 the name of the attribute to set on the queue limits object + * \param v04 the value of the attribute to set on the queue limits object + * \param n05 the name of the attribute to set on the queue limits object + * \param v05 the value of the attribute to set on the queue limits object + * \param n06 the name of the attribute to set on the queue limits object + * \param v06 the value of the attribute to set on the queue limits object + * \param n07 the name of the attribute to set on the queue limits object + * \param v07 the value of the attribute to set on the queue limits object + * \param n08 the name of the attribute to set on the queue limits object + * \param v08 the value of the attribute to set on the queue limits object + */ + void SetQueueLimits (std::string type, + std::string n01 = "", const AttributeValue &v01 = EmptyAttributeValue (), + std::string n02 = "", const AttributeValue &v02 = EmptyAttributeValue (), + std::string n03 = "", const AttributeValue &v03 = EmptyAttributeValue (), + std::string n04 = "", const AttributeValue &v04 = EmptyAttributeValue (), + std::string n05 = "", const AttributeValue &v05 = EmptyAttributeValue (), + std::string n06 = "", const AttributeValue &v06 = EmptyAttributeValue (), + std::string n07 = "", const AttributeValue &v07 = EmptyAttributeValue (), + std::string n08 = "", const AttributeValue &v08 = EmptyAttributeValue ()); + /** * \param c set of devices * \returns a QueueDisc container with the queue discs installed on the devices @@ -425,18 +457,22 @@ class TrafficControlHelper * each device in the container. Then, stores the mapping between a * device and the associated queue disc into the traffic control layer * of the corresponding node. + * This method creates the queue discs (along with their packet filters, + * internal queues, classes) configured with the methods provided by this + * class and installs them on each device in the given container. Additionally, + * if configured, a queue limits object is installed on each transmission queue + * of the devices. */ QueueDiscContainer Install (NetDeviceContainer c); /** * \param d device - * \returns a QueueDisc container with the queue disc installed on the device + * \returns a QueueDisc container with the queue discs installed on the device * - * This method creates a QueueDisc object of the type and with the - * attributes configured by TrafficControlHelper::SetQueueDisc for - * the given device. Then, stores the mapping between the device - * and the associated queue disc into the traffic control layer - * of the corresponding node. + * This method creates the queue discs (along with their packet filters, + * internal queues, classes) configured with the methods provided by this + * class and installs them on the given device. Additionally, if configured, + * a queue limits object is installed on each transmission queue of the device. */ QueueDiscContainer Install (Ptr d); @@ -461,6 +497,8 @@ class TrafficControlHelper std::vector m_queueDiscFactory; /// Vector of all the created queue discs std::vector > m_queueDiscs; + /// Factory to create a queue limits object + ObjectFactory m_queueLimitsFactory; }; } // namespace ns3 From 28ef65d4d70b966ddebbb619188840f382325af3 Mon Sep 17 00:00:00 2001 From: Pasquale Imputato Date: Mon, 18 Jul 2016 14:53:41 +0200 Subject: [PATCH 26/27] network: Add the queue limits documentation --- doc/models/Makefile | 1 + doc/models/source/network.rst | 1 + src/network/doc/queue-limits.rst | 100 +++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 src/network/doc/queue-limits.rst diff --git a/doc/models/Makefile b/doc/models/Makefile index ac3b2f385a8..2d29f02cd2d 100644 --- a/doc/models/Makefile +++ b/doc/models/Makefile @@ -57,6 +57,7 @@ SOURCES = \ $(SRC)/network/doc/sockets-api.rst \ $(SRC)/network/doc/simple.rst \ $(SRC)/network/doc/queue.rst \ + $(SRC)/network/doc/queue-limits.rst \ $(SRC)/internet/doc/internet-stack.rst \ $(SRC)/internet/doc/ipv4.rst \ $(SRC)/internet/doc/ipv6.rst \ diff --git a/doc/models/source/network.rst b/doc/models/source/network.rst index bb67a7c36e1..cb3b8b5d063 100644 --- a/doc/models/source/network.rst +++ b/doc/models/source/network.rst @@ -9,3 +9,4 @@ Network Module sockets-api simple queue + queue-limits diff --git a/src/network/doc/queue-limits.rst b/src/network/doc/queue-limits.rst new file mode 100644 index 00000000000..df9d2ce7b04 --- /dev/null +++ b/src/network/doc/queue-limits.rst @@ -0,0 +1,100 @@ +Queue limits +------ + +.. heading hierarchy: + ------------- Chapter + ************* Section (#.#) + ============= Subsection (#.#.#) + ############# Paragraph (no number) + +This section documents the queue limits model, which is used by traffic control +to limit the NetDevices queueing delay. It operates on the transmission path of +the network node. + +The reduction of the NetDevices queueing delay is essential to improve the effectiveness of +Active Queue Management (AQM) algorithm. +Careful assessment of the queueing delay includes a byte-based measure of the NetDevices +queue length. In this design, traffic control can use different byte-based schemes to +limit the queueing delay. Currently the only available schema is DynamicQueueLimits, which is +modelled after the dynamic queue limit library of Linux. + +Model Description +***************** + +The source code for the model lives in the directory ``src/network/utils``. + +The model allows a byte-based measure of the netdevice queue. The byte-based measure +more accurately approximates the time required to empty the queue than a packet-based measure. + +To inform the upper layers about the transmission of packets, NetDevices can call a couple +of functions: + +* ``void NotifyQueuedBytes (uint32_t bytes)``: Report the number of bytes queued to the device queue +* ``void NotifyTransmittedBytes (uint32_t bytes)``: Report the number of bytes transmitted by device + +Based on this information, the QueueLimits object can stop the transmission queue. + +In case of multiqueue NetDevices this mechanism is available for each queue. + +The QueueLimits model can be used on any NetDevice modelled in ns-3. + +Design +====== + +An abstract base class, class QueueLimits, is subclassed for specific +byte-based limiting strategies. + +Common operations provided by the base class QueueLimits include: + +* ``void Reset ()``: Reset queue limits state +* ``void Completed (uint32_t count)``: Record number of completed objects and recalculate the limit +* ``int32_t Available () const``: Return how many objects can be queued +* ``void Queued (uint32_t count)``: Record number of objects queued + +DynamicQueueLimits +################## + +Dynamic queue limits (DQL) is a basic library implemented in Linux kernel to limit the Ethernet +queueing delay. DQL is a general purpose queue length controller. The goal of DQL is to calculate +the limit as the minimum number of objects needed to prevent starvation. + +Three attributes are defined in the DynamicQueueLimits class: + +* ``HoldTime``: The DQL algorithm hold time +* ``MaxLimit``: Maximum limit +* ``MinLimit``: Minimum limit + +The HoldTime attribute is modelled after 1/HZ in use in Linux DQL library. The default value +is 4 ms. Typical values for HoldTime are in the range from 10 to 1 ms (corresponding to the typical +values of HZ which varies from 100 to 1000). Reducing the HoldTime increases the responsiveness of +DQL with consequent greater number of limit variation events. The limit calculated from DQL is in the +range from MinLimit to MaxLimit. The default values are respectively 0 and DQL_MAX_LIMIT. +Increasing the MinLimit is recommended in case of higher NetDevice transmission rate (e.g. 1 Gbps) +while reducing the MaxLimit is recommended in case of lower NetDevice transmission rate (e.g. 500 Kbps). + +There is one trace source in DynamicQueueLimits class that may be hooked: + +* ``Limit``: Limit value calculated by DQL + +Usage +***** + +Helpers +======= + +A typical usage pattern is to create a traffic control helper and configure +the queue limits type and attributes from the helper, such as this example: + +.. sourcecode:: cpp + + TrafficControlHelper tch; + uint32_t handle = tch.SetRootQueueDisc ("ns3::PfifoFastQueueDisc", "Limit", UintegerValue (1000)); + tch.AddPacketFilter (handle, "ns3::PfifoFastIpv4PacketFilter"); + + tch.SetQueueLimits ("ns3::DynamicQueueLimits", "HoldTime", StringValue ("4ms")); + +then install the configuration on a NetDevices container + +.. sourcecode:: cpp + + tch.Install (devices); From e53ece8d9d991b89611915e6910193a58823cca8 Mon Sep 17 00:00:00 2001 From: Pasquale Imputato Date: Mon, 18 Jul 2016 14:50:44 +0200 Subject: [PATCH 27/27] examples: Add benchmark queue discs example --- .../traffic-control/benchmark-queue-discs.cc | 294 ++++++++++++++++++ examples/traffic-control/wscript | 4 + 2 files changed, 298 insertions(+) create mode 100644 examples/traffic-control/benchmark-queue-discs.cc diff --git a/examples/traffic-control/benchmark-queue-discs.cc b/examples/traffic-control/benchmark-queue-discs.cc new file mode 100644 index 00000000000..8a2af914265 --- /dev/null +++ b/examples/traffic-control/benchmark-queue-discs.cc @@ -0,0 +1,294 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2015 Universita' degli Studi di Napoli Federico II + * + * 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 + * + * Authors: Pasquale Imputato + * Stefano Avallone + */ + +// This example serves as benchmark test for all the queue discs (with BQL enabled or not) +// +// Network topology +// +// 192.168.1.0 192.168.2.0 +// n1 ------------------------------------ n2 ----------------------------------- n3 +// point-to-point (access link) point-to-point (bottleneck link) +// 100 Mbps, 0.1 ms bandwidth [10 Mbps], delay [5 ms] +// qdiscs PfifoFast with capacity qdiscs queueDiscType in {PfifoFast, ARED, CoDel} [PfifoFast] +// of 1000 packets with capacity of queueDiscSize packets [1000] +// netdevices queues with size of 100 packets netdevices queues with size of netdevicesQueueSize packets [100] +// without BQL bql BQL [false] +// *** fixed configuration *** +// +// The output will consist of a number of ping Rtt such as: +// +// /NodeList/0/ApplicationList/2/$ns3::V4Ping/Rtt=111 ms +// /NodeList/0/ApplicationList/2/$ns3::V4Ping/Rtt=111 ms +// /NodeList/0/ApplicationList/2/$ns3::V4Ping/Rtt=110 ms +// /NodeList/0/ApplicationList/2/$ns3::V4Ping/Rtt=111 ms +// /NodeList/0/ApplicationList/2/$ns3::V4Ping/Rtt=111 ms +// /NodeList/0/ApplicationList/2/$ns3::V4Ping/Rtt=112 ms +// /NodeList/0/ApplicationList/2/$ns3::V4Ping/Rtt=111 ms +// +// The files output will consist of a trace file with bytes in queue and of a trace file for limits +// (when BQL is enabled) both for bottleneck NetDevice on n2, two files with upload and download +// goodput for flows configuration and a file with flow monitor stats. +// +// If you use an AQM as queue disc on the bottleneck netdevices, you can observe that the ping Rtt +// decrease. A further decrease can be observed when you enable BQL. + +#include "ns3/core-module.h" +#include "ns3/network-module.h" +#include "ns3/internet-module.h" +#include "ns3/point-to-point-module.h" +#include "ns3/applications-module.h" +#include "ns3/internet-apps-module.h" +#include "ns3/traffic-control-module.h" +#include "ns3/flow-monitor-module.h" + +using namespace ns3; + +NS_LOG_COMPONENT_DEFINE ("BenchmarkQueueDiscs"); + +void +LimitsTrace (Ptr stream, uint32_t oldVal, uint32_t newVal) +{ + *stream->GetStream () << Simulator::Now ().GetSeconds () << " " << newVal << std::endl; +} + +void +BytesInQueueTrace (Ptr stream, uint32_t oldVal, uint32_t newVal) +{ + *stream->GetStream () << Simulator::Now ().GetSeconds () << " " << newVal << std::endl; +} + +static void +GoodputSampling (std::string fileName, ApplicationContainer app, Ptr stream, float period) +{ + Simulator::Schedule (Seconds (period), &GoodputSampling, fileName, app, stream, period); + double goodput; + uint32_t totalPackets = DynamicCast (app.Get (0))->GetTotalRx (); + goodput = totalPackets * 8 / (Simulator::Now ().GetSeconds () * 1024); // Kbit/s + *stream->GetStream () << Simulator::Now ().GetSeconds () << " " << goodput << std::endl; +} + +static void PingRtt (std::string context, Time rtt) +{ + std::cout << context << "=" << rtt.GetMilliSeconds () << " ms" << std::endl; +} + +int main (int argc, char *argv[]) +{ + std::string bandwidth = "10Mbps"; + std::string delay = "5ms"; + std::string queueDiscType = "PfifoFast"; + uint32_t queueDiscSize = 1000; + uint32_t netdevicesQueueSize = 100; + bool bql = false; + + std::string flowsDatarate = "20Mbps"; + uint32_t flowsPacketsSize = 1000; + + float startTime = 0.1; // 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}", 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); + cmd.AddValue ("flowsDatarate", "Upload and download flows datarate", flowsDatarate); + cmd.AddValue ("flowsPacketsSize", "Upload and download flows packets sizes", flowsPacketsSize); + cmd.AddValue ("startTime", "Simulation start time", startTime); + cmd.AddValue ("simDuration", "Simulation duration in seconds", simDuration); + cmd.AddValue ("samplingPeriod", "Goodput sampling period in seconds", samplingPeriod); + cmd.Parse (argc, argv); + + float stopTime = startTime + simDuration; + + // Create nodes + NodeContainer n1, n2, n3; + n1.Create (1); + n2.Create (1); + n3.Create (1); + + // Create and configure access link and bottleneck link + PointToPointHelper accessLink; + accessLink.SetDeviceAttribute ("DataRate", StringValue ("100Mbps")); + accessLink.SetChannelAttribute ("Delay", StringValue ("0.1ms")); + + PointToPointHelper bottleneckLink; + bottleneckLink.SetDeviceAttribute ("DataRate", StringValue (bandwidth)); + bottleneckLink.SetChannelAttribute ("Delay", StringValue (delay)); + + InternetStackHelper stack; + stack.InstallAll (); + + // Access link traffic control configuration + TrafficControlHelper tchPfifoFastAccess; + uint32_t handle = tchPfifoFastAccess.SetRootQueueDisc ("ns3::PfifoFastQueueDisc", "Limit", UintegerValue (1000)); + + // Bottleneck link traffic control configuration + TrafficControlHelper tchPfifoFastBottleneck; + handle = tchPfifoFastBottleneck.SetRootQueueDisc ("ns3::PfifoFastQueueDisc", "Limit", UintegerValue (queueDiscSize)); + + TrafficControlHelper tchRed; + handle = tchRed.SetRootQueueDisc ("ns3::RedQueueDisc"); + Config::SetDefault ("ns3::RedQueueDisc::ARED", BooleanValue (true)); + tchRed.AddInternalQueues (handle, 1, "ns3::DropTailQueue", "MaxPackets", UintegerValue (queueDiscSize)); + + TrafficControlHelper tchCoDel; + handle = tchCoDel.SetRootQueueDisc ("ns3::CoDelQueueDisc"); + Config::SetDefault ("ns3::CoDelQueueDisc::Mode", EnumValue (Queue::QUEUE_MODE_PACKETS)); + tchCoDel.AddInternalQueues (handle, 1, "ns3::DropTailQueue", "MaxPackets", UintegerValue (queueDiscSize)); + + if (bql) + { + tchPfifoFastBottleneck.SetQueueLimits ("ns3::DynamicQueueLimits"); + tchRed.SetQueueLimits ("ns3::DynamicQueueLimits"); + tchCoDel.SetQueueLimits ("ns3::DynamicQueueLimits"); + } + + Config::SetDefault ("ns3::Queue::Mode", StringValue ("QUEUE_MODE_PACKETS")); + Config::SetDefault ("ns3::Queue::MaxPackets", UintegerValue (100)); + + NetDeviceContainer devicesAccessLink = accessLink.Install (n1.Get (0), n2.Get (0)); + tchPfifoFastAccess.Install (devicesAccessLink); + Ipv4AddressHelper address; + address.SetBase ("192.168.0.0", "255.255.255.0"); + address.NewNetwork (); + Ipv4InterfaceContainer interfacesAccess = address.Assign (devicesAccessLink); + + Config::SetDefault ("ns3::Queue::MaxPackets", UintegerValue (netdevicesQueueSize)); + + NetDeviceContainer devicesBottleneckLink = bottleneckLink.Install (n2.Get (0), n3.Get (0)); + QueueDiscContainer qdiscs; + if (queueDiscType.compare ("PfifoFast") == 0) + { + qdiscs = tchPfifoFastBottleneck.Install (devicesBottleneckLink); + } + else if (queueDiscType.compare ("ARED") == 0) + { + qdiscs = tchRed.Install (devicesBottleneckLink); + } + else if (queueDiscType.compare ("CoDel") == 0) + { + qdiscs = tchCoDel.Install (devicesBottleneckLink); + } + else + { + NS_ABORT_MSG ("--queueDiscType not valid"); + } + address.NewNetwork (); + Ipv4InterfaceContainer interfacesBottleneck = address.Assign (devicesBottleneckLink); + + Ptr interface = devicesBottleneckLink.Get (0)->GetObject (); + Ptr queueInterface = interface->GetTxQueue (0); + Ptr queueLimits = StaticCast (queueInterface->GetQueueLimits ()); + + AsciiTraceHelper ascii; + if (bql) + { + queueDiscType = queueDiscType + "-bql"; + Ptr streamLimits = ascii.CreateFileStream (queueDiscType + "-limits.txt"); + queueLimits->TraceConnectWithoutContext ("Limit",MakeBoundCallback (&LimitsTrace, streamLimits)); + } + Ptr queue = StaticCast (devicesBottleneckLink.Get (0))->GetQueue (); + Ptr streamBytesInQueue = ascii.CreateFileStream (queueDiscType + "-bytesInQueue.txt"); + queue->TraceConnectWithoutContext ("BytesInQueue",MakeBoundCallback (&BytesInQueueTrace, streamBytesInQueue)); + + Ipv4InterfaceContainer n1Interface; + n1Interface.Add (interfacesAccess.Get (0)); + + Ipv4InterfaceContainer n3Interface; + n3Interface.Add (interfacesBottleneck.Get (1)); + + Ipv4GlobalRoutingHelper::PopulateRoutingTables (); + + Config::SetDefault ("ns3::TcpSocket::SegmentSize", UintegerValue (flowsPacketsSize)); + + // Flows configuration + // Bidirectional TCP streams with ping like flent tcp_bidirectional test. + uint16_t port = 7; + ApplicationContainer uploadApp, downloadApp, sourceApps; + // Configure and install upload flow + Address addUp (InetSocketAddress (Ipv4Address::GetAny (), port)); + PacketSinkHelper sinkHelperUp ("ns3::TcpSocketFactory", addUp); + sinkHelperUp.SetAttribute ("Protocol", TypeIdValue (TcpSocketFactory::GetTypeId ())); + uploadApp.Add (sinkHelperUp.Install (n3)); + + InetSocketAddress socketAddressUp = InetSocketAddress (n3Interface.GetAddress (0), port); + OnOffHelper onOffHelperUp ("ns3::TcpSocketFactory", Address ()); + onOffHelperUp.SetAttribute ("Remote", AddressValue (socketAddressUp)); + onOffHelperUp.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1]")); + onOffHelperUp.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0]")); + onOffHelperUp.SetAttribute ("PacketSize", UintegerValue (flowsPacketsSize)); + onOffHelperUp.SetAttribute ("DataRate", StringValue (flowsDatarate)); + sourceApps.Add (onOffHelperUp.Install (n1)); + + port = 8; + // Configure and install download flow + Address addDown (InetSocketAddress (Ipv4Address::GetAny (), port)); + PacketSinkHelper sinkHelperDown ("ns3::TcpSocketFactory", addDown); + sinkHelperDown.SetAttribute ("Protocol", TypeIdValue (TcpSocketFactory::GetTypeId ())); + downloadApp.Add (sinkHelperDown.Install (n1)); + + InetSocketAddress socketAddressDown = InetSocketAddress (n1Interface.GetAddress (0), port); + OnOffHelper onOffHelperDown ("ns3::TcpSocketFactory", Address ()); + onOffHelperDown.SetAttribute ("Remote", AddressValue (socketAddressDown)); + onOffHelperDown.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1]")); + onOffHelperDown.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0]")); + onOffHelperDown.SetAttribute ("PacketSize", UintegerValue (flowsPacketsSize)); + onOffHelperDown.SetAttribute ("DataRate", StringValue (flowsDatarate)); + sourceApps.Add (onOffHelperDown.Install (n3)); + + // Configure and install ping + V4PingHelper ping = V4PingHelper (n3Interface.GetAddress (0)); + ping.Install (n1); + + Config::Connect ("/NodeList/*/ApplicationList/*/$ns3::V4Ping/Rtt", MakeCallback (&PingRtt)); + + uploadApp.Start (Seconds (0)); + uploadApp.Stop (Seconds (stopTime)); + downloadApp.Start (Seconds (0)); + downloadApp.Stop (Seconds (stopTime)); + + sourceApps.Start (Seconds (0 + 0.1)); + sourceApps.Stop (Seconds (stopTime - 0.1)); + + Ptr uploadGoodputStream = ascii.CreateFileStream (queueDiscType + "-upGoodput.txt"); + Simulator::Schedule (Seconds (samplingPeriod), &GoodputSampling, queueDiscType + "-upGoodput.txt", uploadApp, + uploadGoodputStream, samplingPeriod); + Ptr downloadGoodputStream = ascii.CreateFileStream (queueDiscType + "-downGoodput.txt"); + Simulator::Schedule (Seconds (samplingPeriod), &GoodputSampling, queueDiscType + "-downGoodput.txt", downloadApp, + downloadGoodputStream, samplingPeriod); + + // Flow monitor + Ptr flowMonitor; + FlowMonitorHelper flowHelper; + flowMonitor = flowHelper.InstallAll(); + + Simulator::Stop (Seconds (stopTime)); + Simulator::Run (); + + flowMonitor->SerializeToXmlFile(queueDiscType + "-flowMonitor.xml", true, true); + + Simulator::Destroy (); + return 0; +} diff --git a/examples/traffic-control/wscript b/examples/traffic-control/wscript index 3955647f65c..8c4692e47f1 100644 --- a/examples/traffic-control/wscript +++ b/examples/traffic-control/wscript @@ -4,3 +4,7 @@ def build(bld): obj = bld.create_ns3_program('traffic-control', ['internet', 'point-to-point', 'applications', 'traffic-control']) obj.source = 'traffic-control.cc' + + obj = bld.create_ns3_program('benchmark-queue-discs', + ['internet', 'point-to-point', 'applications', 'internet-apps', 'traffic-control', 'flow-monitor']) + obj.source = 'benchmark-queue-discs.cc'