diff --git a/examples/wireless/80211e-txop.cc b/examples/wireless/80211e-txop.cc index dcafc98dc..7ce70f179 100644 --- a/examples/wireless/80211e-txop.cc +++ b/examples/wireless/80211e-txop.cc @@ -31,7 +31,7 @@ #include "ns3/on-off-helper.h" #include "ns3/yans-wifi-channel.h" #include "ns3/wifi-net-device.h" -#include "ns3/edca-txop-n.h" +#include "ns3/qos-txop.h" #include "ns3/wifi-mac.h" // This is an example that illustrates 802.11 QoS for different Access Categories. @@ -132,9 +132,9 @@ int main (int argc, char *argv[]) Ptr wifi_dev = DynamicCast (dev); Ptr wifi_mac = wifi_dev->GetMac (); PointerValue ptr; - Ptr edca; - wifi_mac->GetAttribute ("BE_EdcaTxopN", ptr); - edca = ptr.Get (); + Ptr edca; + wifi_mac->GetAttribute ("BE_Txop", ptr); + edca = ptr.Get (); edca->SetTxopLimit (MicroSeconds (3008)); //Network C @@ -171,8 +171,8 @@ int main (int argc, char *argv[]) dev = wifiApNodes.Get (3)->GetDevice (0); wifi_dev = DynamicCast (dev); wifi_mac = wifi_dev->GetMac (); - wifi_mac->GetAttribute ("VI_EdcaTxopN", ptr); - edca = ptr.Get (); + wifi_mac->GetAttribute ("VI_Txop", ptr); + edca = ptr.Get (); edca->SetTxopLimit (MicroSeconds (0)); /* Setting mobility model */ diff --git a/examples/wireless/mixed-network.cc b/examples/wireless/mixed-network.cc index 6d60ea98a..db0ebcab6 100644 --- a/examples/wireless/mixed-network.cc +++ b/examples/wireless/mixed-network.cc @@ -32,7 +32,7 @@ #include "ns3/on-off-helper.h" #include "ns3/yans-wifi-channel.h" #include "ns3/wifi-net-device.h" -#include "ns3/edca-txop-n.h" +#include "ns3/qos-txop.h" #include "ns3/wifi-mac.h" #include "ns3/packet-sink-helper.h" #include "ns3/packet-sink.h" @@ -223,8 +223,8 @@ Experiment::Run (Parameters params) Ptr wifi_dev = DynamicCast (dev); Ptr wifi_mac = wifi_dev->GetMac (); PointerValue ptr; - wifi_mac->GetAttribute ("BE_EdcaTxopN", ptr); - Ptr edca = ptr.Get (); + wifi_mac->GetAttribute ("BE_Txop", ptr); + Ptr edca = ptr.Get (); edca->SetTxopLimit (MicroSeconds (3008)); } if (nWifiNNGF > 0) @@ -233,8 +233,8 @@ Experiment::Run (Parameters params) Ptr wifi_dev = DynamicCast (dev); Ptr wifi_mac = wifi_dev->GetMac (); PointerValue ptr; - wifi_mac->GetAttribute ("BE_EdcaTxopN", ptr); - Ptr edca = ptr.Get (); + wifi_mac->GetAttribute ("BE_Txop", ptr); + Ptr edca = ptr.Get (); edca->SetTxopLimit (MicroSeconds (3008)); } if (nWifiNGF > 0) @@ -243,8 +243,8 @@ Experiment::Run (Parameters params) Ptr wifi_dev = DynamicCast (dev); Ptr wifi_mac = wifi_dev->GetMac (); PointerValue ptr; - wifi_mac->GetAttribute ("BE_EdcaTxopN", ptr); - Ptr edca = ptr.Get (); + wifi_mac->GetAttribute ("BE_Txop", ptr); + Ptr edca = ptr.Get (); edca->SetTxopLimit (MicroSeconds (3008)); } diff --git a/examples/wireless/mixed-wired-wireless.cc b/examples/wireless/mixed-wired-wireless.cc index eb6c2be77..ab07c87ca 100644 --- a/examples/wireless/mixed-wired-wireless.cc +++ b/examples/wireless/mixed-wired-wireless.cc @@ -67,7 +67,7 @@ #include "ns3/ipv4-address-helper.h" #include "ns3/on-off-helper.h" #include "ns3/yans-wifi-channel.h" -#include "ns3/edca-txop-n.h" +#include "ns3/qos-txop.h" #include "ns3/packet-sink-helper.h" #include "ns3/olsr-helper.h" #include "ns3/csma-helper.h" diff --git a/examples/wireless/wifi-blockack.cc b/examples/wireless/wifi-blockack.cc index f12d44189..8c589dfb0 100644 --- a/examples/wireless/wifi-blockack.cc +++ b/examples/wireless/wifi-blockack.cc @@ -66,7 +66,7 @@ int main (int argc, char * argv[]) CommandLine cmd; cmd.Parse (argc, argv); - LogComponentEnable ("EdcaTxopN", LOG_LEVEL_DEBUG); + LogComponentEnable ("QosTxop", LOG_LEVEL_DEBUG); LogComponentEnable ("BlockAckManager", LOG_LEVEL_INFO); Ptr sta = CreateObject (); diff --git a/examples/wireless/wifi-pcf.cc b/examples/wireless/wifi-pcf.cc new file mode 100644 index 000000000..40517d16c --- /dev/null +++ b/examples/wireless/wifi-pcf.cc @@ -0,0 +1,287 @@ +/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2017 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Sebastien Deronne + */ + +#include "ns3/log.h" +#include "ns3/config.h" +#include "ns3/command-line.h" +#include "ns3/uinteger.h" +#include "ns3/boolean.h" +#include "ns3/string.h" +#include "ns3/yans-wifi-helper.h" +#include "ns3/mobility-helper.h" +#include "ns3/internet-stack-helper.h" +#include "ns3/ipv4-address-helper.h" +#include "ns3/packet-sink-helper.h" +#include "ns3/on-off-helper.h" +#include "ns3/packet-sink.h" +#include "ns3/ssid.h" +#include "ns3/wifi-mac-header.h" + +/* This is a simple example in order to show the frames exchanged in 802.11 PCF. + * The output prints the overal throughput as well as the number of different PCF frames that have been transmitted. + * + * It is possible to tune some parameters using the command line: + * - number of connected stations + * - enable/disable PCF + * - enable PCAP output file generation in order to vizualise frame exchange. + * - configure UDP data traffic: + * -> enable/disable data generation: --withData=<0|1> + * -> select traffic direction: --trafficDirection= + * + * For example, one can observe the benefit of PCF over DCF when the number of stations increased: + * ./waf --run "wifi-pcf enablePcf=0 --nWifi=10" => DCF only + * ./waf --run "wifi-pcf enablePcf=1 --nWifi=10" => alternance of PCF and DCF + * + * One can also change the value of cfpMaxDuration: a shorter valer means the granted time for PCF is shorter, and so it's benefit is reduced. + * ./waf --run "wifi-pcf enablePcf=1 --nWifi=10 --cfpMaxDuration=10240" + * + * One can also see the different types of piggybacked frames depending on the traffic direction and whether PCF is enabled or not: + * ./waf --run "wifi-pcf enablePcf=0 --nWifi=1" => only CF_POLL and DATA_NULL frames should be seen + * ./waf --run "wifi-pcf enablePcf=1 --nWifi=1 --trafficDirection=upstream" => no DATA_NULL frames should be seen + * ./waf --run "wifi-pcf enablePcf=1 --nWifi=1 --trafficDirection=downstream" => no CF_END_ACK frames should be seen + */ + +using namespace ns3; + +NS_LOG_COMPONENT_DEFINE ("WifiPcf"); + +uint64_t m_countBeacon; +uint64_t m_countCfPoll; +uint64_t m_countCfPollAck; +uint64_t m_countCfPollData; +uint64_t m_countCfPollDataAck; +uint64_t m_countCfEnd; +uint64_t m_countCfEndAck; +uint64_t m_countDataNull; +uint64_t m_countData; + +void TxCallback (std::string context, Ptr p) +{ + WifiMacHeader hdr; + p->PeekHeader (hdr); + if (hdr.IsBeacon ()) + { + m_countBeacon++; + } + else if (hdr.IsCfPoll ()) + { + if (hdr.IsCfAck () && hdr.HasData ()) + { + m_countCfPollDataAck++; + } + else if (!hdr.IsCfAck () && hdr.HasData ()) + { + m_countCfPollData++; + } + else if (hdr.IsCfAck () && !hdr.HasData ()) + { + m_countCfPollAck++; + } + else + { + m_countCfPoll++; + } + } + else if (hdr.IsCfEnd ()) + { + if (hdr.IsCfAck ()) + { + m_countCfEndAck++; + } + else + { + m_countCfEnd++; + } + } + else if (hdr.IsData ()) + { + if (!hdr.HasData ()) + { + m_countDataNull++; + } + else + { + m_countData++; + } + } +} + +int main (int argc, char *argv[]) +{ + uint32_t nWifi = 1; + bool enablePcap = false; + bool enablePcf = true; + bool withData = true; + std::string trafficDirection = "upstream"; + uint64_t cfpMaxDurationUs = 65536; //microseconds + double simulationTime = 10; //seconds + + CommandLine cmd; + cmd.AddValue ("nWifi", "Number of wifi STA devices", nWifi); + cmd.AddValue ("enablePcf", "Enable/disable PCF mode", enablePcf); + cmd.AddValue ("withData", "Enable/disable UDP data packets generation", withData); + cmd.AddValue ("trafficDirection", "Data traffic direction (if withData is set to 1): upstream (all STAs -> AP) or downstream (AP -> all STAs)", trafficDirection); + cmd.AddValue ("cfpMaxDuration", "CFP max duration in microseconds", cfpMaxDurationUs); + cmd.AddValue ("simulationTime", "Simulation time in seconds", simulationTime); + cmd.AddValue ("enablePcap", "Enable/disable PCAP output", enablePcap); + cmd.Parse (argc, argv); + + m_countBeacon = 0; + m_countCfEnd = 0; + m_countCfEndAck = 0; + m_countCfPoll = 0; + m_countCfPollAck = 0; + m_countCfPollData = 0; + m_countCfPollDataAck = 0; + m_countDataNull = 0; + m_countData = 0; + m_countDataNull = 0; + m_countData = 0; + + NodeContainer wifiStaNodes; + wifiStaNodes.Create (nWifi); + + NodeContainer wifiApNode; + wifiApNode.Create (1); + + YansWifiChannelHelper channel = YansWifiChannelHelper::Default (); + YansWifiPhyHelper phy = YansWifiPhyHelper::Default (); + phy.SetPcapDataLinkType (YansWifiPhyHelper::DLT_IEEE802_11_RADIO); + phy.SetChannel (channel.Create ()); + + WifiHelper wifi; + WifiMacHelper mac; + + Ssid ssid = Ssid ("wifi-pcf"); + wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager", "DataMode", StringValue ("OfdmRate54Mbps"), "ControlMode", StringValue ("OfdmRate24Mbps")); + + NetDeviceContainer staDevices; + mac.SetType ("ns3::StaWifiMac", + "Ssid", SsidValue (ssid), + "ActiveProbing", BooleanValue (false), + "PcfSupported", BooleanValue (enablePcf)); + staDevices = wifi.Install (phy, mac, wifiStaNodes); + + mac.SetType ("ns3::ApWifiMac", + "Ssid", SsidValue (ssid), + "BeaconGeneration", BooleanValue (true), + "PcfSupported", BooleanValue (enablePcf), + "CfpMaxDuration", TimeValue (MicroSeconds (cfpMaxDurationUs))); + + NetDeviceContainer apDevice; + apDevice = wifi.Install (phy, mac, wifiApNode); + + MobilityHelper mobility; + + Ptr positionAlloc = CreateObject (); + + for (uint32_t i = 0; i < nWifi; i++) + { + positionAlloc->Add (Vector (1.0, 0.0, 0.0)); + } + positionAlloc->Add (Vector (0.0, 0.0, 0.0)); + mobility.SetPositionAllocator (positionAlloc); + + mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel"); + + mobility.Install (wifiApNode); + mobility.Install (wifiStaNodes); + + InternetStackHelper stack; + stack.Install (wifiApNode); + stack.Install (wifiStaNodes); + + Ipv4AddressHelper address; + + address.SetBase ("10.1.1.0", "255.255.255.0"); + Ipv4InterfaceContainer StaInterface; + StaInterface = address.Assign (staDevices); + Ipv4InterfaceContainer ApInterface; + ApInterface = address.Assign (apDevice); + + ApplicationContainer sourceApplications, sinkApplications; + if (withData) + { + uint32_t portNumber = 9; + for (uint32_t index = 0; index < nWifi; ++index) + { + auto ipv4 = (trafficDirection == "upstream") ? wifiApNode.Get (0)->GetObject () : wifiStaNodes.Get (index)->GetObject (); + const auto address = ipv4->GetAddress (1, 0).GetLocal (); + InetSocketAddress sinkSocket (address, portNumber++); + OnOffHelper onOffHelper ("ns3::UdpSocketFactory", sinkSocket); + onOffHelper.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1]")); + onOffHelper.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0]")); + onOffHelper.SetAttribute ("DataRate", DataRateValue (50000000 / nWifi)); + onOffHelper.SetAttribute ("PacketSize", UintegerValue (1472)); //bytes + PacketSinkHelper packetSinkHelper ("ns3::UdpSocketFactory", sinkSocket); + if (trafficDirection == "upstream") + { + sourceApplications.Add (onOffHelper.Install (wifiStaNodes.Get (index))); + sinkApplications.Add (packetSinkHelper.Install (wifiApNode.Get (0))); + } + else if (trafficDirection == "downstream") + { + sinkApplications.Add (packetSinkHelper.Install (wifiStaNodes.Get (index))); + sourceApplications.Add (onOffHelper.Install (wifiApNode.Get (0))); + } + else + { + NS_ASSERT_MSG (false, "Invalid trafficDirection!"); + } + } + sinkApplications.Start (Seconds (0.0)); + sinkApplications.Stop (Seconds (simulationTime + 1)); + sourceApplications.Start (Seconds (1.0)); + sourceApplications.Stop (Seconds (simulationTime + 1)); + } + + Config::Connect ("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Phy/$ns3::WifiPhy/PhyTxBegin", MakeCallback (&TxCallback)); + + if (enablePcap) + { + phy.EnablePcap ("wifi_pcf", apDevice.Get (0)); + } + + Simulator::Stop (Seconds (simulationTime + 1)); + + Simulator::Run (); + Simulator::Destroy (); + + double throughput = 0; + for (uint32_t index = 0; index < sinkApplications.GetN (); ++index) + { + uint64_t totalPacketsThrough = DynamicCast (sinkApplications.Get (index))->GetTotalRx (); + throughput += ((totalPacketsThrough * 8) / (simulationTime * 1000000.0)); //Mbit/s + } + + std::cout << "Throughput: " << throughput << " Mbit/s" << std::endl; + + std::cout << "# tx beacons: " << m_countBeacon << std::endl; + std::cout << "# tx CF-END: " << m_countCfEnd << std::endl; + std::cout << "# tx CF-END-ACK: " << m_countCfEndAck << std::endl; + std::cout << "# tx CF-POLL: " << m_countCfPoll << std::endl; + std::cout << "# tx CF-POLL-ACK: " << m_countCfPollAck << std::endl; + std::cout << "# tx CF-POLL-DATA: " << m_countCfPollData << std::endl; + std::cout << "# tx CF-POLL-DATA-ACK: " << m_countCfPollDataAck << std::endl; + std::cout << "# tx DATA-NULL: " << m_countDataNull << std::endl; + std::cout << "# tx DATA: " << m_countData << std::endl; + + return 0; +} diff --git a/examples/wireless/wscript b/examples/wireless/wscript index f823dbdf4..839c545f4 100644 --- a/examples/wireless/wscript +++ b/examples/wireless/wscript @@ -112,3 +112,6 @@ def build(bld): obj = bld.create_ns3_program('wifi-backward-compatibility', ['wifi', 'applications']) obj.source = 'wifi-backward-compatibility.cc' + + obj = bld.create_ns3_program('wifi-pcf', ['wifi', 'applications']) + obj.source = 'wifi-pcf.cc' diff --git a/src/mesh/bindings/modulegen__gcc_ILP32.py b/src/mesh/bindings/modulegen__gcc_ILP32.py index 653582fb2..b61101162 100644 --- a/src/mesh/bindings/modulegen__gcc_ILP32.py +++ b/src/mesh/bindings/modulegen__gcc_ILP32.py @@ -20,12 +20,12 @@ def module_init(): def register_types(module): root_module = module.get_root() - ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation [enumeration] + ## qos-txop.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') ## block-ack-type.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') ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacType [enumeration] - module.add_enum('WifiMacType', ['WIFI_MAC_CTL_CTLWRAPPER', 'WIFI_MAC_CTL_RTS', 'WIFI_MAC_CTL_CTS', 'WIFI_MAC_CTL_ACK', 'WIFI_MAC_CTL_BACKREQ', 'WIFI_MAC_CTL_BACKRESP', 'WIFI_MAC_MGT_BEACON', 'WIFI_MAC_MGT_ASSOCIATION_REQUEST', 'WIFI_MAC_MGT_ASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_DISASSOCIATION', 'WIFI_MAC_MGT_REASSOCIATION_REQUEST', 'WIFI_MAC_MGT_REASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_PROBE_REQUEST', 'WIFI_MAC_MGT_PROBE_RESPONSE', 'WIFI_MAC_MGT_AUTHENTICATION', 'WIFI_MAC_MGT_DEAUTHENTICATION', 'WIFI_MAC_MGT_ACTION', 'WIFI_MAC_MGT_ACTION_NO_ACK', 'WIFI_MAC_MGT_MULTIHOP_ACTION', 'WIFI_MAC_DATA', 'WIFI_MAC_DATA_CFACK', 'WIFI_MAC_DATA_CFPOLL', 'WIFI_MAC_DATA_CFACK_CFPOLL', 'WIFI_MAC_DATA_NULL', 'WIFI_MAC_DATA_NULL_CFACK', 'WIFI_MAC_DATA_NULL_CFPOLL', 'WIFI_MAC_DATA_NULL_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA', 'WIFI_MAC_QOSDATA_CFACK', 'WIFI_MAC_QOSDATA_CFPOLL', 'WIFI_MAC_QOSDATA_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA_NULL', 'WIFI_MAC_QOSDATA_NULL_CFPOLL', 'WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL'], import_from_module='ns.wifi') + 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_CTL_END', 'WIFI_MAC_CTL_END_ACK', 'WIFI_MAC_MGT_BEACON', 'WIFI_MAC_MGT_ASSOCIATION_REQUEST', 'WIFI_MAC_MGT_ASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_DISASSOCIATION', 'WIFI_MAC_MGT_REASSOCIATION_REQUEST', 'WIFI_MAC_MGT_REASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_PROBE_REQUEST', 'WIFI_MAC_MGT_PROBE_RESPONSE', 'WIFI_MAC_MGT_AUTHENTICATION', 'WIFI_MAC_MGT_DEAUTHENTICATION', 'WIFI_MAC_MGT_ACTION', 'WIFI_MAC_MGT_ACTION_NO_ACK', 'WIFI_MAC_MGT_MULTIHOP_ACTION', 'WIFI_MAC_DATA', 'WIFI_MAC_DATA_CFACK', 'WIFI_MAC_DATA_CFPOLL', 'WIFI_MAC_DATA_CFACK_CFPOLL', 'WIFI_MAC_DATA_NULL', 'WIFI_MAC_DATA_NULL_CFACK', 'WIFI_MAC_DATA_NULL_CFPOLL', 'WIFI_MAC_DATA_NULL_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA', 'WIFI_MAC_QOSDATA_CFACK', 'WIFI_MAC_QOSDATA_CFPOLL', 'WIFI_MAC_QOSDATA_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA_NULL', 'WIFI_MAC_QOSDATA_NULL_CFPOLL', 'WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL'], import_from_module='ns.wifi') ## 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-preamble.h (module 'wifi'): ns3::WifiPreamble [enumeration] @@ -254,6 +254,8 @@ def register_types(module): module.add_class('TraceSourceAccessor', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter >']) ## trailer.h (module 'network'): ns3::Trailer [class] module.add_class('Trailer', import_from_module='ns.network', parent=root_module['ns3::Chunk']) + ## txop.h (module 'wifi'): ns3::Txop [class] + module.add_class('Txop', import_from_module='ns.wifi', parent=root_module['ns3::Object']) ## mgt-headers.h (module 'wifi'): ns3::WifiActionHeader [class] module.add_class('WifiActionHeader', import_from_module='ns.wifi', parent=root_module['ns3::Header']) ## mgt-headers.h (module 'wifi'): ns3::WifiActionHeader::CategoryValue [enumeration] @@ -302,22 +304,20 @@ def register_types(module): module.add_class('CallbackImplBase', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::CallbackImplBase, ns3::empty, ns3::DefaultDeleter >']) ## callback.h (module 'core'): ns3::CallbackValue [class] module.add_class('CallbackValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) + ## cf-parameter-set.h (module 'wifi'): ns3::CfParameterSet [class] + module.add_class('CfParameterSet', import_from_module='ns.wifi', parent=root_module['ns3::WifiInformationElement']) ## channel.h (module 'network'): ns3::Channel [class] module.add_class('Channel', import_from_module='ns.network', parent=root_module['ns3::Object']) ## data-rate.h (module 'network'): ns3::DataRateChecker [class] module.add_class('DataRateChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## data-rate.h (module 'network'): ns3::DataRateValue [class] module.add_class('DataRateValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) - ## dca-txop.h (module 'wifi'): ns3::DcaTxop [class] - module.add_class('DcaTxop', 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']) ## dsss-parameter-set.h (module 'wifi'): ns3::DsssParameterSet [class] module.add_class('DsssParameterSet', import_from_module='ns.wifi', parent=root_module['ns3::WifiInformationElement']) ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet [class] module.add_class('EdcaParameterSet', import_from_module='ns.wifi', parent=root_module['ns3::WifiInformationElement']) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN [class] - module.add_class('EdcaTxopN', import_from_module='ns.wifi', parent=root_module['ns3::DcaTxop']) ## attribute.h (module 'core'): ns3::EmptyAttributeAccessor [class] module.add_class('EmptyAttributeAccessor', import_from_module='ns.core', parent=root_module['ns3::AttributeAccessor']) ## attribute.h (module 'core'): ns3::EmptyAttributeChecker [class] @@ -390,6 +390,8 @@ def register_types(module): module.add_class('ObjectFactoryValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## packet.h (module 'network'): ns3::Packet [class] module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) + ## qos-txop.h (module 'wifi'): ns3::QosTxop [class] + module.add_class('QosTxop', import_from_module='ns.wifi', parent=root_module['ns3::Txop']) ## 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] @@ -776,6 +778,7 @@ def register_methods(root_module): register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) register_Ns3Trailer_methods(root_module, root_module['ns3::Trailer']) + register_Ns3Txop_methods(root_module, root_module['ns3::Txop']) register_Ns3WifiActionHeader_methods(root_module, root_module['ns3::WifiActionHeader']) register_Ns3WifiActionHeaderActionValue_methods(root_module, root_module['ns3::WifiActionHeader::ActionValue']) register_Ns3WifiInformationElement_methods(root_module, root_module['ns3::WifiInformationElement']) @@ -792,14 +795,13 @@ def register_methods(root_module): register_Ns3CallbackChecker_methods(root_module, root_module['ns3::CallbackChecker']) register_Ns3CallbackImplBase_methods(root_module, root_module['ns3::CallbackImplBase']) register_Ns3CallbackValue_methods(root_module, root_module['ns3::CallbackValue']) + register_Ns3CfParameterSet_methods(root_module, root_module['ns3::CfParameterSet']) register_Ns3Channel_methods(root_module, root_module['ns3::Channel']) register_Ns3DataRateChecker_methods(root_module, root_module['ns3::DataRateChecker']) register_Ns3DataRateValue_methods(root_module, root_module['ns3::DataRateValue']) - register_Ns3DcaTxop_methods(root_module, root_module['ns3::DcaTxop']) register_Ns3DoubleValue_methods(root_module, root_module['ns3::DoubleValue']) register_Ns3DsssParameterSet_methods(root_module, root_module['ns3::DsssParameterSet']) register_Ns3EdcaParameterSet_methods(root_module, root_module['ns3::EdcaParameterSet']) - register_Ns3EdcaTxopN_methods(root_module, root_module['ns3::EdcaTxopN']) register_Ns3EmptyAttributeAccessor_methods(root_module, root_module['ns3::EmptyAttributeAccessor']) register_Ns3EmptyAttributeChecker_methods(root_module, root_module['ns3::EmptyAttributeChecker']) register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue']) @@ -835,6 +837,7 @@ def register_methods(root_module): register_Ns3ObjectFactoryChecker_methods(root_module, root_module['ns3::ObjectFactoryChecker']) register_Ns3ObjectFactoryValue_methods(root_module, root_module['ns3::ObjectFactoryValue']) register_Ns3Packet_methods(root_module, root_module['ns3::Packet']) + register_Ns3QosTxop_methods(root_module, root_module['ns3::QosTxop']) register_Ns3RegularWifiMac_methods(root_module, root_module['ns3::RegularWifiMac']) register_Ns3Ssid_methods(root_module, root_module['ns3::Ssid']) register_Ns3SsidChecker_methods(root_module, root_module['ns3::SsidChecker']) @@ -1510,6 +1513,11 @@ def register_Ns3CapabilityInformation_methods(root_module, cls): 'uint32_t', [], is_const=True) + ## capability-information.h (module 'wifi'): bool ns3::CapabilityInformation::IsCfPollable() const [member function] + cls.add_method('IsCfPollable', + 'bool', + [], + is_const=True) ## capability-information.h (module 'wifi'): bool ns3::CapabilityInformation::IsEss() const [member function] cls.add_method('IsEss', 'bool', @@ -1535,6 +1543,10 @@ def register_Ns3CapabilityInformation_methods(root_module, cls): 'ns3::Buffer::Iterator', [param('ns3::Buffer::Iterator', 'start')], is_const=True) + ## capability-information.h (module 'wifi'): void ns3::CapabilityInformation::SetCfPollable() [member function] + cls.add_method('SetCfPollable', + 'void', + []) ## capability-information.h (module 'wifi'): void ns3::CapabilityInformation::SetEss() [member function] cls.add_method('SetEss', 'void', @@ -4230,6 +4242,11 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::CfParameterSet ns3::MgtProbeResponseHeader::GetCfParameterSet() const [member function] + cls.add_method('GetCfParameterSet', + 'ns3::CfParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::DsssParameterSet ns3::MgtProbeResponseHeader::GetDsssParameterSet() const [member function] cls.add_method('GetDsssParameterSet', 'ns3::DsssParameterSet', @@ -4327,6 +4344,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::SetCfParameterSet(ns3::CfParameterSet cfparameterset) [member function] + cls.add_method('SetCfParameterSet', + 'void', + [param('ns3::CfParameterSet', 'cfparameterset')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetDsssParameterSet(ns3::DsssParameterSet dsssParameterSet) [member function] cls.add_method('SetDsssParameterSet', 'void', @@ -4915,6 +4936,328 @@ def register_Ns3Trailer_methods(root_module, cls): is_pure_virtual=True, is_const=True, is_virtual=True) return +def register_Ns3Txop_methods(root_module, cls): + ## txop.h (module 'wifi'): ns3::Txop::Txop() [constructor] + cls.add_constructor([]) + ## txop.h (module 'wifi'): static ns3::TypeId ns3::Txop::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsQosTxop() const [member function] + cls.add_method('IsQosTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SetMacLow(ns3::Ptr const low) [member function] + cls.add_method('SetMacLow', + 'void', + [param('ns3::Ptr< ns3::MacLow > const', 'low')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetChannelAccessManager(ns3::Ptr const manager) [member function] + cls.add_method('SetChannelAccessManager', + 'void', + [param('ns3::Ptr< ns3::ChannelAccessManager > const', 'manager')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxMiddle(ns3::Ptr const txMiddle) [member function] + cls.add_method('SetTxMiddle', + 'void', + [param('ns3::Ptr< ns3::MacTxMiddle > const', 'txMiddle')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxOkCallback(ns3::Txop::TxOk callback) [member function] + cls.add_method('SetTxOkCallback', + 'void', + [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxFailedCallback(ns3::Txop::TxFailed callback) [member function] + cls.add_method('SetTxFailedCallback', + 'void', + [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxDroppedCallback(ns3::Txop::TxDropped callback) [member function] + cls.add_method('SetTxDroppedCallback', + 'void', + [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetLow() const [member function] + cls.add_method('GetLow', + 'ns3::Ptr< ns3::MacLow >', + [], + is_const=True) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetWifiMacQueue() const [member function] + cls.add_method('GetWifiMacQueue', + 'ns3::Ptr< ns3::WifiMacQueue >', + [], + is_const=True) + ## txop.h (module 'wifi'): void ns3::Txop::SetMinCw(uint32_t minCw) [member function] + cls.add_method('SetMinCw', + 'void', + [param('uint32_t', 'minCw')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetMaxCw(uint32_t maxCw) [member function] + cls.add_method('SetMaxCw', + 'void', + [param('uint32_t', 'maxCw')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetAifsn(uint32_t aifsn) [member function] + cls.add_method('SetAifsn', + 'void', + [param('uint32_t', 'aifsn')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')]) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetMinCw() const [member function] + cls.add_method('GetMinCw', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetMaxCw() const [member function] + cls.add_method('GetMaxCw', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetAifsn() const [member function] + cls.add_method('GetAifsn', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): ns3::Time ns3::Txop::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyChannelSwitching() [member function] + cls.add_method('NotifyChannelSwitching', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifySleep() [member function] + cls.add_method('NotifySleep', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyOff() [member function] + cls.add_method('NotifyOff', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyWakeUp() [member function] + cls.add_method('NotifyWakeUp', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyOn() [member function] + cls.add_method('NotifyOn', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::Queue(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('Queue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SendCfFrame(ns3::WifiMacType frameType, ns3::Mac48Address addr) [member function] + cls.add_method('SendCfFrame', + 'void', + [param('ns3::WifiMacType', 'frameType'), param('ns3::Mac48Address', 'addr')]) + ## txop.h (module 'wifi'): void ns3::Txop::MissedCts() [member function] + cls.add_method('MissedCts', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotAck() [member function] + cls.add_method('GotAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedAck() [member function] + cls.add_method('MissedAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotCfEnd() [member function] + cls.add_method('GotCfEnd', + 'void', + []) + ## txop.h (module 'wifi'): void ns3::Txop::MissedCfPollResponse(bool expectedCfAck) [member function] + cls.add_method('MissedCfPollResponse', + 'void', + [param('bool', 'expectedCfAck')]) + ## txop.h (module 'wifi'): void ns3::Txop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] + cls.add_method('GotBlockAck', + 'void', + [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedBlockAck(uint8_t nMpdus) [member function] + cls.add_method('MissedBlockAck', + 'void', + [param('uint8_t', 'nMpdus')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::Cancel() [member function] + cls.add_method('Cancel', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartNextPacket() [member function] + cls.add_method('StartNextPacket', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::EndTxNoAck() [member function] + cls.add_method('EndTxNoAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::HasTxop() const [member function] + cls.add_method('HasTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::CanStartNextPolling() const [member function] + cls.add_method('CanStartNextPolling', + 'bool', + [], + is_const=True) + ## txop.h (module 'wifi'): int64_t ns3::Txop::AssignStreams(int64_t stream) [member function] + cls.add_method('AssignStreams', + 'int64_t', + [param('int64_t', 'stream')]) + ## txop.h (module 'wifi'): bool ns3::Txop::IsAccessRequested() const [member function] + cls.add_method('IsAccessRequested', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartBackoffNow(uint32_t nSlots) [member function] + cls.add_method('StartBackoffNow', + 'void', + [param('uint32_t', 'nSlots')]) + ## txop.h (module 'wifi'): ns3::Txop::Txop(ns3::Txop const & arg0) [constructor] + cls.add_constructor([param('ns3::Txop const &', 'arg0')]) + ## txop.h (module 'wifi'): void ns3::Txop::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyAccessRequested() [member function] + cls.add_method('NotifyAccessRequested', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyAccessGranted() [member function] + cls.add_method('NotifyAccessGranted', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyInternalCollision() [member function] + cls.add_method('NotifyInternalCollision', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyCollision() [member function] + cls.add_method('NotifyCollision', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::RestartAccessIfNeeded() [member function] + cls.add_method('RestartAccessIfNeeded', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartAccessIfNeeded() [member function] + cls.add_method('StartAccessIfNeeded', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetCw() const [member function] + cls.add_method('GetCw', + 'uint32_t', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::ResetCw() [member function] + cls.add_method('ResetCw', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::UpdateFailedCw() [member function] + cls.add_method('UpdateFailedCw', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetBackoffSlots() const [member function] + cls.add_method('GetBackoffSlots', + 'uint32_t', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): ns3::Time ns3::Txop::GetBackoffStart() const [member function] + cls.add_method('GetBackoffStart', + 'ns3::Time', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::UpdateBackoffSlotsNow(uint32_t nSlots, ns3::Time backoffUpdateBound) [member function] + cls.add_method('UpdateBackoffSlotsNow', + 'void', + [param('uint32_t', 'nSlots'), param('ns3::Time', 'backoffUpdateBound')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedRtsRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('NeedRtsRetransmission', + 'bool', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedDataRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('NeedDataRetransmission', + 'bool', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedFragmentation() const [member function] + cls.add_method('NeedFragmentation', + 'bool', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NextFragment() [member function] + cls.add_method('NextFragment', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetFragmentPacket', + 'ns3::Ptr< ns3::Packet >', + [param('ns3::WifiMacHeader *', 'hdr')], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetNextFragmentSize() const [member function] + cls.add_method('GetNextFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetFragmentSize() const [member function] + cls.add_method('GetFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetFragmentOffset() const [member function] + cls.add_method('GetFragmentOffset', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsLastFragment() const [member function] + cls.add_method('IsLastFragment', + 'bool', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::TxDroppedPacket(ns3::Ptr item) [member function] + cls.add_method('TxDroppedPacket', + 'void', + [param('ns3::Ptr< ns3::WifiMacQueueItem const >', 'item')], + visibility='protected') + return + def register_Ns3WifiActionHeader_methods(root_module, cls): ## mgt-headers.h (module 'wifi'): ns3::WifiActionHeader::WifiActionHeader(ns3::WifiActionHeader const & arg0) [constructor] cls.add_constructor([param('ns3::WifiActionHeader const &', 'arg0')]) @@ -5328,10 +5671,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, bool isDsss, 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::DcaTxop >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Txop >', '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', @@ -5390,6 +5733,11 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'uint8_t', [], is_const=True) + ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetRawDuration() const [member function] + cls.add_method('GetRawDuration', + 'uint16_t', + [], + is_const=True) ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetSequenceControl() const [member function] cls.add_method('GetSequenceControl', 'uint16_t', @@ -5425,6 +5773,11 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'char const *', [], is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::HasData() const [member function] + cls.add_method('HasData', + 'bool', + [], + is_const=True) ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAck() const [member function] cls.add_method('IsAck', 'bool', @@ -5465,8 +5818,23 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'bool', [], is_const=True) - ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfpoll() const [member function] - cls.add_method('IsCfpoll', + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfAck() const [member function] + cls.add_method('IsCfAck', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfEnd() const [member function] + cls.add_method('IsCfEnd', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfEndAck() const [member function] + cls.add_method('IsCfEndAck', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfPoll() const [member function] + cls.add_method('IsCfPoll', 'bool', [], is_const=True) @@ -5690,6 +6058,10 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): cls.add_method('SetQosTxopLimit', 'void', [param('uint8_t', 'txop')]) + ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRawDuration(uint16_t duration) [member function] + cls.add_method('SetRawDuration', + 'void', + [param('uint16_t', 'duration')]) ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRetry() [member function] cls.add_method('SetRetry', 'void', @@ -5698,10 +6070,10 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): cls.add_method('SetSequenceNumber', 'void', [param('uint16_t', 'seq')]) - ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type) [member function] + ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type, bool resetToDsFromDs=true) [member function] cls.add_method('SetType', 'void', - [param('ns3::WifiMacType', 'type')]) + [param('ns3::WifiMacType', 'type'), param('bool', 'resetToDsFromDs', default_value='true')]) return def register_Ns3WifiRemoteStationManager_methods(root_module, cls): @@ -5793,6 +6165,16 @@ def register_Ns3WifiRemoteStationManager_methods(root_module, cls): 'bool', [], is_const=True) + ## wifi-remote-station-manager.h (module 'wifi'): void ns3::WifiRemoteStationManager::SetPcfSupported(bool enable) [member function] + cls.add_method('SetPcfSupported', + 'void', + [param('bool', 'enable')], + is_virtual=True) + ## wifi-remote-station-manager.h (module 'wifi'): bool ns3::WifiRemoteStationManager::HasPcfSupported() const [member function] + cls.add_method('HasPcfSupported', + 'bool', + [], + is_const=True) ## wifi-remote-station-manager.h (module 'wifi'): void ns3::WifiRemoteStationManager::SetUseNonErpProtection(bool enable) [member function] cls.add_method('SetUseNonErpProtection', 'void', @@ -6812,6 +7194,84 @@ def register_Ns3CallbackValue_methods(root_module, cls): [param('ns3::CallbackBase', 'base')]) return +def register_Ns3CfParameterSet_methods(root_module, cls): + cls.add_output_stream_operator() + ## cf-parameter-set.h (module 'wifi'): ns3::CfParameterSet::CfParameterSet(ns3::CfParameterSet const & arg0) [constructor] + cls.add_constructor([param('ns3::CfParameterSet const &', 'arg0')]) + ## cf-parameter-set.h (module 'wifi'): ns3::CfParameterSet::CfParameterSet() [constructor] + cls.add_constructor([]) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::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) + ## cf-parameter-set.h (module 'wifi'): ns3::WifiInformationElementId ns3::CfParameterSet::ElementId() const [member function] + cls.add_method('ElementId', + 'ns3::WifiInformationElementId', + [], + is_const=True, is_virtual=True) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::GetCFPCount() const [member function] + cls.add_method('GetCFPCount', + 'uint8_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint64_t ns3::CfParameterSet::GetCFPDurRemainingUs() const [member function] + cls.add_method('GetCFPDurRemainingUs', + 'uint64_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint64_t ns3::CfParameterSet::GetCFPMaxDurationUs() const [member function] + cls.add_method('GetCFPMaxDurationUs', + 'uint64_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::GetCFPPeriod() const [member function] + cls.add_method('GetCFPPeriod', + 'uint8_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::GetInformationFieldSize() const [member function] + cls.add_method('GetInformationFieldSize', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## cf-parameter-set.h (module 'wifi'): uint16_t ns3::CfParameterSet::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint16_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): ns3::Buffer::Iterator ns3::CfParameterSet::Serialize(ns3::Buffer::Iterator start) const [member function] + cls.add_method('Serialize', + 'ns3::Buffer::Iterator', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SerializeInformationField(ns3::Buffer::Iterator start) const [member function] + cls.add_method('SerializeInformationField', + 'void', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True, is_virtual=True) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPCount(uint8_t cfpcount) [member function] + cls.add_method('SetCFPCount', + 'void', + [param('uint8_t', 'cfpcount')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPDurRemainingUs(uint64_t cfpdurremaining) [member function] + cls.add_method('SetCFPDurRemainingUs', + 'void', + [param('uint64_t', 'cfpdurremaining')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPMaxDurationUs(uint64_t cfpmaxduration) [member function] + cls.add_method('SetCFPMaxDurationUs', + 'void', + [param('uint64_t', 'cfpmaxduration')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPPeriod(uint8_t cfpperiod) [member function] + cls.add_method('SetCFPPeriod', + 'void', + [param('uint8_t', 'cfpperiod')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetPcfSupported(uint8_t pcfSupported) [member function] + cls.add_method('SetPcfSupported', + 'void', + [param('uint8_t', 'pcfSupported')]) + return + def register_Ns3Channel_methods(root_module, cls): ## channel.h (module 'network'): ns3::Channel::Channel(ns3::Channel const & arg0) [constructor] cls.add_constructor([param('ns3::Channel const &', 'arg0')]) @@ -6879,311 +7339,6 @@ def register_Ns3DataRateValue_methods(root_module, cls): [param('ns3::DataRate const &', 'value')]) return -def register_Ns3DcaTxop_methods(root_module, cls): - ## dca-txop.h (module 'wifi'): ns3::DcaTxop::DcaTxop() [constructor] - cls.add_constructor([]) - ## dca-txop.h (module 'wifi'): static ns3::TypeId ns3::DcaTxop::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsEdca() [member function] - cls.add_method('IsEdca', - 'bool', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMacLow(ns3::Ptr const low) [member function] - cls.add_method('SetMacLow', - 'void', - [param('ns3::Ptr< ns3::MacLow > const', 'low')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetDcfManager(ns3::Ptr const manager) [member function] - cls.add_method('SetDcfManager', - 'void', - [param('ns3::Ptr< ns3::DcfManager > const', 'manager')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxMiddle(ns3::Ptr const txMiddle) [member function] - cls.add_method('SetTxMiddle', - 'void', - [param('ns3::Ptr< ns3::MacTxMiddle > const', 'txMiddle')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxOkCallback(ns3::DcaTxop::TxOk callback) [member function] - cls.add_method('SetTxOkCallback', - 'void', - [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxFailedCallback(ns3::DcaTxop::TxFailed callback) [member function] - cls.add_method('SetTxFailedCallback', - 'void', - [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxDroppedCallback(ns3::DcaTxop::TxDropped callback) [member function] - cls.add_method('SetTxDroppedCallback', - 'void', - [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetLow() const [member function] - cls.add_method('GetLow', - 'ns3::Ptr< ns3::MacLow >', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetWifiMacQueue() const [member function] - cls.add_method('GetWifiMacQueue', - 'ns3::Ptr< ns3::WifiMacQueue >', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMinCw(uint32_t minCw) [member function] - cls.add_method('SetMinCw', - 'void', - [param('uint32_t', 'minCw')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMaxCw(uint32_t maxCw) [member function] - cls.add_method('SetMaxCw', - 'void', - [param('uint32_t', 'maxCw')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetAifsn(uint32_t aifsn) [member function] - cls.add_method('SetAifsn', - 'void', - [param('uint32_t', 'aifsn')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxopLimit(ns3::Time txopLimit) [member function] - cls.add_method('SetTxopLimit', - 'void', - [param('ns3::Time', 'txopLimit')]) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMinCw() const [member function] - cls.add_method('GetMinCw', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMaxCw() const [member function] - cls.add_method('GetMaxCw', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetAifsn() const [member function] - cls.add_method('GetAifsn', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetTxopLimit() const [member function] - cls.add_method('GetTxopLimit', - 'ns3::Time', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyChannelSwitching() [member function] - cls.add_method('NotifyChannelSwitching', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifySleep() [member function] - cls.add_method('NotifySleep', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyOff() [member function] - cls.add_method('NotifyOff', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyWakeUp() [member function] - cls.add_method('NotifyWakeUp', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyOn() [member function] - cls.add_method('NotifyOn', - 'void', - [], - 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', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedCts() [member function] - cls.add_method('MissedCts', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::GotAck() [member function] - cls.add_method('GotAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedAck() [member function] - cls.add_method('MissedAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] - cls.add_method('GotBlockAck', - 'void', - [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedBlockAck(uint8_t nMpdus) [member function] - cls.add_method('MissedBlockAck', - 'void', - [param('uint8_t', 'nMpdus')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartNextFragment() [member function] - cls.add_method('StartNextFragment', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::Cancel() [member function] - cls.add_method('Cancel', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartNextPacket() [member function] - cls.add_method('StartNextPacket', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::EndTxNoAck() [member function] - cls.add_method('EndTxNoAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::HasTxop() const [member function] - cls.add_method('HasTxop', - 'bool', - [], - is_const=True, is_virtual=True) - ## dca-txop.h (module 'wifi'): int64_t ns3::DcaTxop::AssignStreams(int64_t stream) [member function] - cls.add_method('AssignStreams', - 'int64_t', - [param('int64_t', 'stream')]) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsAccessRequested() const [member function] - cls.add_method('IsAccessRequested', - 'bool', - [], - is_const=True, is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartBackoffNow(uint32_t nSlots) [member function] - cls.add_method('StartBackoffNow', - 'void', - [param('uint32_t', 'nSlots')]) - ## dca-txop.h (module 'wifi'): ns3::DcaTxop::DcaTxop(ns3::DcaTxop const & arg0) [constructor] - cls.add_constructor([param('ns3::DcaTxop const &', 'arg0')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyAccessRequested() [member function] - cls.add_method('NotifyAccessRequested', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyAccessGranted() [member function] - cls.add_method('NotifyAccessGranted', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyInternalCollision() [member function] - cls.add_method('NotifyInternalCollision', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyCollision() [member function] - cls.add_method('NotifyCollision', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::RestartAccessIfNeeded() [member function] - cls.add_method('RestartAccessIfNeeded', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartAccessIfNeeded() [member function] - cls.add_method('StartAccessIfNeeded', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetCw() const [member function] - cls.add_method('GetCw', - 'uint32_t', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::ResetCw() [member function] - cls.add_method('ResetCw', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::UpdateFailedCw() [member function] - cls.add_method('UpdateFailedCw', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetBackoffSlots() const [member function] - cls.add_method('GetBackoffSlots', - 'uint32_t', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetBackoffStart() const [member function] - cls.add_method('GetBackoffStart', - 'ns3::Time', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::UpdateBackoffSlotsNow(uint32_t nSlots, ns3::Time backoffUpdateBound) [member function] - cls.add_method('UpdateBackoffSlotsNow', - 'void', - [param('uint32_t', 'nSlots'), param('ns3::Time', 'backoffUpdateBound')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedRtsRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('NeedRtsRetransmission', - 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedDataRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('NeedDataRetransmission', - 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedFragmentation() const [member function] - cls.add_method('NeedFragmentation', - 'bool', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NextFragment() [member function] - cls.add_method('NextFragment', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetFragmentPacket', - 'ns3::Ptr< ns3::Packet >', - [param('ns3::WifiMacHeader *', 'hdr')], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetNextFragmentSize() const [member function] - cls.add_method('GetNextFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetFragmentSize() const [member function] - cls.add_method('GetFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetFragmentOffset() const [member function] - cls.add_method('GetFragmentOffset', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsLastFragment() const [member function] - cls.add_method('IsLastFragment', - 'bool', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::TxDroppedPacket(ns3::Ptr item) [member function] - cls.add_method('TxDroppedPacket', - 'void', - [param('ns3::Ptr< ns3::WifiMacQueueItem const >', 'item')], - visibility='protected') - return - def register_Ns3DoubleValue_methods(root_module, cls): ## double.h (module 'core'): ns3::DoubleValue::DoubleValue() [constructor] cls.add_constructor([]) @@ -7477,257 +7632,6 @@ def register_Ns3EdcaParameterSet_methods(root_module, cls): [param('uint16_t', 'txop')]) 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) - ## edca-txop-n.h (module 'wifi'): static ns3::TypeId ns3::EdcaTxopN::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::EdcaTxopN() [constructor] - cls.add_constructor([]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::IsEdca() [member function] - cls.add_method('IsEdca', - 'bool', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetTypeOfStation(ns3::TypeOfStation type) [member function] - cls.add_method('SetTypeOfStation', - 'void', - [param('ns3::TypeOfStation', 'type')]) - ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation ns3::EdcaTxopN::GetTypeOfStation() const [member function] - cls.add_method('GetTypeOfStation', - 'ns3::TypeOfStation', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetMsduAggregator() const [member function] - cls.add_method('GetMsduAggregator', - 'ns3::Ptr< ns3::MsduAggregator >', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetMpduAggregator() const [member function] - cls.add_method('GetMpduAggregator', - 'ns3::Ptr< ns3::MpduAggregator >', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::GetBaAgreementExists(ns3::Mac48Address address, uint8_t tid) const [member function] - cls.add_method('GetBaAgreementExists', - 'bool', - [param('ns3::Mac48Address', 'address'), param('uint8_t', 'tid')], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteAmpduTransfer(ns3::Mac48Address recipient, uint8_t tid) [member function] - cls.add_method('CompleteAmpduTransfer', - 'void', - [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyAccessGranted() [member function] - cls.add_method('NotifyAccessGranted', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyInternalCollision() [member function] - cls.add_method('NotifyInternalCollision', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyCollision() [member function] - cls.add_method('NotifyCollision', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedCts() [member function] - cls.add_method('MissedCts', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotAck() [member function] - cls.add_method('GotAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] - cls.add_method('GotBlockAck', - 'void', - [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedBlockAck(uint8_t nMpdus) [member function] - cls.add_method('MissedBlockAck', - 'void', - [param('uint8_t', 'nMpdus')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotAddBaResponse(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address recipient) [member function] - cls.add_method('GotAddBaResponse', - 'void', - [param('ns3::MgtAddBaResponseHeader const *', 'respHdr'), param('ns3::Mac48Address', 'recipient')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotDelBaFrame(ns3::MgtDelBaHeader const * delBaHdr, ns3::Mac48Address recipient) [member function] - cls.add_method('GotDelBaFrame', - 'void', - [param('ns3::MgtDelBaHeader const *', 'delBaHdr'), param('ns3::Mac48Address', 'recipient')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedAck() [member function] - cls.add_method('MissedAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNextPacket() [member function] - cls.add_method('StartNextPacket', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::EndTxNoAck() [member function] - cls.add_method('EndTxNoAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::RestartAccessIfNeeded() [member function] - cls.add_method('RestartAccessIfNeeded', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartAccessIfNeeded() [member function] - cls.add_method('StartAccessIfNeeded', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::NeedBarRetransmission() [member function] - cls.add_method('NeedBarRetransmission', - 'bool', - []) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::NeedFragmentation() const [member function] - cls.add_method('NeedFragmentation', - 'bool', - [], - is_const=True, is_virtual=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetFragmentPacket', - 'ns3::Ptr< ns3::Packet >', - [param('ns3::WifiMacHeader *', 'hdr')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetAccessCategory(ns3::AcIndex ac) [member function] - cls.add_method('SetAccessCategory', - 'void', - [param('ns3::AcIndex', 'ac')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetMsduAggregator(ns3::Ptr const aggr) [member function] - cls.add_method('SetMsduAggregator', - 'void', - [param('ns3::Ptr< ns3::MsduAggregator > const', 'aggr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetMpduAggregator(ns3::Ptr const aggr) [member function] - cls.add_method('SetMpduAggregator', - 'void', - [param('ns3::Ptr< ns3::MpduAggregator > const', 'aggr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::PushFront(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('PushFront', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteConfig() [member function] - cls.add_method('CompleteConfig', - 'void', - []) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetBlockAckThreshold(uint8_t threshold) [member function] - cls.add_method('SetBlockAckThreshold', - 'void', - [param('uint8_t', 'threshold')]) - ## edca-txop-n.h (module 'wifi'): uint8_t ns3::EdcaTxopN::GetBlockAckThreshold() const [member function] - cls.add_method('GetBlockAckThreshold', - 'uint8_t', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetBlockAckInactivityTimeout(uint16_t timeout) [member function] - cls.add_method('SetBlockAckInactivityTimeout', - 'void', - [param('uint16_t', 'timeout')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SendDelbaFrame(ns3::Mac48Address addr, uint8_t tid, bool byOriginator) [member function] - cls.add_method('SendDelbaFrame', - 'void', - [param('ns3::Mac48Address', 'addr'), param('uint8_t', 'tid'), param('bool', 'byOriginator')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteMpduTx(ns3::Ptr packet, ns3::WifiMacHeader hdr, ns3::Time tstamp) [member function] - cls.add_method('CompleteMpduTx', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader', 'hdr'), param('ns3::Time', 'tstamp')]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::GetAmpduExist(ns3::Mac48Address dest) const [member function] - cls.add_method('GetAmpduExist', - 'bool', - [param('ns3::Mac48Address', 'dest')], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetAmpduExist(ns3::Mac48Address dest, bool enableAmpdu) [member function] - cls.add_method('SetAmpduExist', - 'void', - [param('ns3::Mac48Address', 'dest'), param('bool', 'enableAmpdu')]) - ## edca-txop-n.h (module 'wifi'): uint16_t ns3::EdcaTxopN::GetNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetNextSequenceNumberFor', - 'uint16_t', - [param('ns3::WifiMacHeader *', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): uint16_t ns3::EdcaTxopN::PeekNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('PeekNextSequenceNumberFor', - 'uint16_t', - [param('ns3::WifiMacHeader *', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::RemoveRetransmitPacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] - cls.add_method('RemoveRetransmitPacket', - 'void', - [param('uint8_t', 'tid'), param('ns3::Mac48Address', 'recipient'), param('uint16_t', 'seqnumber')]) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::PeekNextRetransmitPacket(ns3::WifiMacHeader & header, uint8_t tid, ns3::Time * timestamp) [member function] - cls.add_method('PeekNextRetransmitPacket', - 'ns3::Ptr< ns3::Packet const >', - [param('ns3::WifiMacHeader &', 'header'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::BaTxOk(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('BaTxOk', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::BaTxFailed(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('BaTxFailed', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::Mac48Address ns3::EdcaTxopN::MapSrcAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('MapSrcAddressForAggregation', - 'ns3::Mac48Address', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::Mac48Address ns3::EdcaTxopN::MapDestAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('MapDestAddressForAggregation', - 'ns3::Mac48Address', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::EdcaTxopN(ns3::EdcaTxopN const & arg0) [constructor] - cls.add_constructor([param('ns3::EdcaTxopN const &', 'arg0')]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::HasTxop() const [member function] - cls.add_method('HasTxop', - 'bool', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetNextFragmentSize() const [member function] - cls.add_method('GetNextFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetFragmentSize() const [member function] - cls.add_method('GetFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetFragmentOffset() const [member function] - cls.add_method('GetFragmentOffset', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::IsLastFragment() const [member function] - cls.add_method('IsLastFragment', - 'bool', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='private', is_virtual=True) - return - def register_Ns3EmptyAttributeAccessor_methods(root_module, cls): ## attribute.h (module 'core'): ns3::EmptyAttributeAccessor::EmptyAttributeAccessor(ns3::EmptyAttributeAccessor const & arg0) [constructor] cls.add_constructor([param('ns3::EmptyAttributeAccessor const &', 'arg0')]) @@ -9631,6 +9535,257 @@ def register_Ns3Packet_methods(root_module, cls): is_const=True) return +def register_Ns3QosTxop_methods(root_module, cls): + ## qos-txop.h (module 'wifi'): ns3::QosTxop::m_aMpduEnabled [variable] + cls.add_instance_attribute('m_aMpduEnabled', 'std::map< ns3::Mac48Address, bool >', is_const=False) + ## qos-txop.h (module 'wifi'): static ns3::TypeId ns3::QosTxop::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## qos-txop.h (module 'wifi'): ns3::QosTxop::QosTxop() [constructor] + cls.add_constructor([]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::IsQosTxop() const [member function] + cls.add_method('IsQosTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetTypeOfStation(ns3::TypeOfStation type) [member function] + cls.add_method('SetTypeOfStation', + 'void', + [param('ns3::TypeOfStation', 'type')]) + ## qos-txop.h (module 'wifi'): ns3::TypeOfStation ns3::QosTxop::GetTypeOfStation() const [member function] + cls.add_method('GetTypeOfStation', + 'ns3::TypeOfStation', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetMsduAggregator() const [member function] + cls.add_method('GetMsduAggregator', + 'ns3::Ptr< ns3::MsduAggregator >', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetMpduAggregator() const [member function] + cls.add_method('GetMpduAggregator', + 'ns3::Ptr< ns3::MpduAggregator >', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::GetBaAgreementExists(ns3::Mac48Address address, uint8_t tid) const [member function] + cls.add_method('GetBaAgreementExists', + 'bool', + [param('ns3::Mac48Address', 'address'), param('uint8_t', 'tid')], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteAmpduTransfer(ns3::Mac48Address recipient, uint8_t tid) [member function] + cls.add_method('CompleteAmpduTransfer', + 'void', + [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyAccessGranted() [member function] + cls.add_method('NotifyAccessGranted', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyInternalCollision() [member function] + cls.add_method('NotifyInternalCollision', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyCollision() [member function] + cls.add_method('NotifyCollision', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedCts() [member function] + cls.add_method('MissedCts', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotAck() [member function] + cls.add_method('GotAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] + cls.add_method('GotBlockAck', + 'void', + [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedBlockAck(uint8_t nMpdus) [member function] + cls.add_method('MissedBlockAck', + 'void', + [param('uint8_t', 'nMpdus')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotAddBaResponse(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address recipient) [member function] + cls.add_method('GotAddBaResponse', + 'void', + [param('ns3::MgtAddBaResponseHeader const *', 'respHdr'), param('ns3::Mac48Address', 'recipient')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotDelBaFrame(ns3::MgtDelBaHeader const * delBaHdr, ns3::Mac48Address recipient) [member function] + cls.add_method('GotDelBaFrame', + 'void', + [param('ns3::MgtDelBaHeader const *', 'delBaHdr'), param('ns3::Mac48Address', 'recipient')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedAck() [member function] + cls.add_method('MissedAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::StartNextPacket() [member function] + cls.add_method('StartNextPacket', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::EndTxNoAck() [member function] + cls.add_method('EndTxNoAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::RestartAccessIfNeeded() [member function] + cls.add_method('RestartAccessIfNeeded', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::StartAccessIfNeeded() [member function] + cls.add_method('StartAccessIfNeeded', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::NeedBarRetransmission() [member function] + cls.add_method('NeedBarRetransmission', + 'bool', + []) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::NeedFragmentation() const [member function] + cls.add_method('NeedFragmentation', + 'bool', + [], + is_const=True, is_virtual=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetFragmentPacket', + 'ns3::Ptr< ns3::Packet >', + [param('ns3::WifiMacHeader *', 'hdr')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetAccessCategory(ns3::AcIndex ac) [member function] + cls.add_method('SetAccessCategory', + 'void', + [param('ns3::AcIndex', 'ac')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetMsduAggregator(ns3::Ptr const aggr) [member function] + cls.add_method('SetMsduAggregator', + 'void', + [param('ns3::Ptr< ns3::MsduAggregator > const', 'aggr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetMpduAggregator(ns3::Ptr const aggr) [member function] + cls.add_method('SetMpduAggregator', + 'void', + [param('ns3::Ptr< ns3::MpduAggregator > const', 'aggr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::PushFront(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('PushFront', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteConfig() [member function] + cls.add_method('CompleteConfig', + 'void', + []) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetBlockAckThreshold(uint8_t threshold) [member function] + cls.add_method('SetBlockAckThreshold', + 'void', + [param('uint8_t', 'threshold')]) + ## qos-txop.h (module 'wifi'): uint8_t ns3::QosTxop::GetBlockAckThreshold() const [member function] + cls.add_method('GetBlockAckThreshold', + 'uint8_t', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetBlockAckInactivityTimeout(uint16_t timeout) [member function] + cls.add_method('SetBlockAckInactivityTimeout', + 'void', + [param('uint16_t', 'timeout')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SendDelbaFrame(ns3::Mac48Address addr, uint8_t tid, bool byOriginator) [member function] + cls.add_method('SendDelbaFrame', + 'void', + [param('ns3::Mac48Address', 'addr'), param('uint8_t', 'tid'), param('bool', 'byOriginator')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteMpduTx(ns3::Ptr packet, ns3::WifiMacHeader hdr, ns3::Time tstamp) [member function] + cls.add_method('CompleteMpduTx', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader', 'hdr'), param('ns3::Time', 'tstamp')]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::GetAmpduExist(ns3::Mac48Address dest) const [member function] + cls.add_method('GetAmpduExist', + 'bool', + [param('ns3::Mac48Address', 'dest')], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetAmpduExist(ns3::Mac48Address dest, bool enableAmpdu) [member function] + cls.add_method('SetAmpduExist', + 'void', + [param('ns3::Mac48Address', 'dest'), param('bool', 'enableAmpdu')]) + ## qos-txop.h (module 'wifi'): uint16_t ns3::QosTxop::GetNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetNextSequenceNumberFor', + 'uint16_t', + [param('ns3::WifiMacHeader *', 'hdr')]) + ## qos-txop.h (module 'wifi'): uint16_t ns3::QosTxop::PeekNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('PeekNextSequenceNumberFor', + 'uint16_t', + [param('ns3::WifiMacHeader *', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::RemoveRetransmitPacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] + cls.add_method('RemoveRetransmitPacket', + 'void', + [param('uint8_t', 'tid'), param('ns3::Mac48Address', 'recipient'), param('uint16_t', 'seqnumber')]) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::PeekNextRetransmitPacket(ns3::WifiMacHeader & header, uint8_t tid, ns3::Time * timestamp) [member function] + cls.add_method('PeekNextRetransmitPacket', + 'ns3::Ptr< ns3::Packet const >', + [param('ns3::WifiMacHeader &', 'header'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::BaTxOk(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('BaTxOk', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::BaTxFailed(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('BaTxFailed', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::Mac48Address ns3::QosTxop::MapSrcAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('MapSrcAddressForAggregation', + 'ns3::Mac48Address', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::Mac48Address ns3::QosTxop::MapDestAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('MapDestAddressForAggregation', + 'ns3::Mac48Address', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::QosTxop::QosTxop(ns3::QosTxop const & arg0) [constructor] + cls.add_constructor([param('ns3::QosTxop const &', 'arg0')]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::HasTxop() const [member function] + cls.add_method('HasTxop', + 'bool', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetNextFragmentSize() const [member function] + cls.add_method('GetNextFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetFragmentSize() const [member function] + cls.add_method('GetFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetFragmentOffset() const [member function] + cls.add_method('GetFragmentOffset', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::IsLastFragment() const [member function] + cls.add_method('IsLastFragment', + 'bool', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='private', is_virtual=True) + return + def register_Ns3RegularWifiMac_methods(root_module, cls): ## regular-wifi-mac.h (module 'wifi'): static ns3::TypeId ns3::RegularWifiMac::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -9871,29 +10026,29 @@ def register_Ns3RegularWifiMac_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetDcaTxop() const [member function] - cls.add_method('GetDcaTxop', - 'ns3::Ptr< ns3::DcaTxop >', + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetTxop() const [member function] + cls.add_method('GetTxop', + 'ns3::Ptr< ns3::Txop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVOQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVOQueue() const [member function] cls.add_method('GetVOQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVIQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVIQueue() const [member function] cls.add_method('GetVIQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBEQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBEQueue() const [member function] cls.add_method('GetBEQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBKQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBKQueue() const [member function] cls.add_method('GetBKQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') ## regular-wifi-mac.h (module 'wifi'): void ns3::RegularWifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] @@ -9945,7 +10100,7 @@ def register_Ns3RegularWifiMac_methods(root_module, cls): cls.add_method('SetQosSupported', 'void', [param('bool', 'enable')], - visibility='protected') + visibility='protected', is_virtual=True) ## regular-wifi-mac.h (module 'wifi'): bool ns3::RegularWifiMac::GetQosSupported() const [member function] cls.add_method('GetQosSupported', 'bool', diff --git a/src/mesh/bindings/modulegen__gcc_LP64.py b/src/mesh/bindings/modulegen__gcc_LP64.py index 653582fb2..b61101162 100644 --- a/src/mesh/bindings/modulegen__gcc_LP64.py +++ b/src/mesh/bindings/modulegen__gcc_LP64.py @@ -20,12 +20,12 @@ def module_init(): def register_types(module): root_module = module.get_root() - ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation [enumeration] + ## qos-txop.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') ## block-ack-type.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') ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacType [enumeration] - module.add_enum('WifiMacType', ['WIFI_MAC_CTL_CTLWRAPPER', 'WIFI_MAC_CTL_RTS', 'WIFI_MAC_CTL_CTS', 'WIFI_MAC_CTL_ACK', 'WIFI_MAC_CTL_BACKREQ', 'WIFI_MAC_CTL_BACKRESP', 'WIFI_MAC_MGT_BEACON', 'WIFI_MAC_MGT_ASSOCIATION_REQUEST', 'WIFI_MAC_MGT_ASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_DISASSOCIATION', 'WIFI_MAC_MGT_REASSOCIATION_REQUEST', 'WIFI_MAC_MGT_REASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_PROBE_REQUEST', 'WIFI_MAC_MGT_PROBE_RESPONSE', 'WIFI_MAC_MGT_AUTHENTICATION', 'WIFI_MAC_MGT_DEAUTHENTICATION', 'WIFI_MAC_MGT_ACTION', 'WIFI_MAC_MGT_ACTION_NO_ACK', 'WIFI_MAC_MGT_MULTIHOP_ACTION', 'WIFI_MAC_DATA', 'WIFI_MAC_DATA_CFACK', 'WIFI_MAC_DATA_CFPOLL', 'WIFI_MAC_DATA_CFACK_CFPOLL', 'WIFI_MAC_DATA_NULL', 'WIFI_MAC_DATA_NULL_CFACK', 'WIFI_MAC_DATA_NULL_CFPOLL', 'WIFI_MAC_DATA_NULL_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA', 'WIFI_MAC_QOSDATA_CFACK', 'WIFI_MAC_QOSDATA_CFPOLL', 'WIFI_MAC_QOSDATA_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA_NULL', 'WIFI_MAC_QOSDATA_NULL_CFPOLL', 'WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL'], import_from_module='ns.wifi') + 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_CTL_END', 'WIFI_MAC_CTL_END_ACK', 'WIFI_MAC_MGT_BEACON', 'WIFI_MAC_MGT_ASSOCIATION_REQUEST', 'WIFI_MAC_MGT_ASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_DISASSOCIATION', 'WIFI_MAC_MGT_REASSOCIATION_REQUEST', 'WIFI_MAC_MGT_REASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_PROBE_REQUEST', 'WIFI_MAC_MGT_PROBE_RESPONSE', 'WIFI_MAC_MGT_AUTHENTICATION', 'WIFI_MAC_MGT_DEAUTHENTICATION', 'WIFI_MAC_MGT_ACTION', 'WIFI_MAC_MGT_ACTION_NO_ACK', 'WIFI_MAC_MGT_MULTIHOP_ACTION', 'WIFI_MAC_DATA', 'WIFI_MAC_DATA_CFACK', 'WIFI_MAC_DATA_CFPOLL', 'WIFI_MAC_DATA_CFACK_CFPOLL', 'WIFI_MAC_DATA_NULL', 'WIFI_MAC_DATA_NULL_CFACK', 'WIFI_MAC_DATA_NULL_CFPOLL', 'WIFI_MAC_DATA_NULL_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA', 'WIFI_MAC_QOSDATA_CFACK', 'WIFI_MAC_QOSDATA_CFPOLL', 'WIFI_MAC_QOSDATA_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA_NULL', 'WIFI_MAC_QOSDATA_NULL_CFPOLL', 'WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL'], import_from_module='ns.wifi') ## 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-preamble.h (module 'wifi'): ns3::WifiPreamble [enumeration] @@ -254,6 +254,8 @@ def register_types(module): module.add_class('TraceSourceAccessor', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter >']) ## trailer.h (module 'network'): ns3::Trailer [class] module.add_class('Trailer', import_from_module='ns.network', parent=root_module['ns3::Chunk']) + ## txop.h (module 'wifi'): ns3::Txop [class] + module.add_class('Txop', import_from_module='ns.wifi', parent=root_module['ns3::Object']) ## mgt-headers.h (module 'wifi'): ns3::WifiActionHeader [class] module.add_class('WifiActionHeader', import_from_module='ns.wifi', parent=root_module['ns3::Header']) ## mgt-headers.h (module 'wifi'): ns3::WifiActionHeader::CategoryValue [enumeration] @@ -302,22 +304,20 @@ def register_types(module): module.add_class('CallbackImplBase', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::CallbackImplBase, ns3::empty, ns3::DefaultDeleter >']) ## callback.h (module 'core'): ns3::CallbackValue [class] module.add_class('CallbackValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) + ## cf-parameter-set.h (module 'wifi'): ns3::CfParameterSet [class] + module.add_class('CfParameterSet', import_from_module='ns.wifi', parent=root_module['ns3::WifiInformationElement']) ## channel.h (module 'network'): ns3::Channel [class] module.add_class('Channel', import_from_module='ns.network', parent=root_module['ns3::Object']) ## data-rate.h (module 'network'): ns3::DataRateChecker [class] module.add_class('DataRateChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## data-rate.h (module 'network'): ns3::DataRateValue [class] module.add_class('DataRateValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) - ## dca-txop.h (module 'wifi'): ns3::DcaTxop [class] - module.add_class('DcaTxop', 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']) ## dsss-parameter-set.h (module 'wifi'): ns3::DsssParameterSet [class] module.add_class('DsssParameterSet', import_from_module='ns.wifi', parent=root_module['ns3::WifiInformationElement']) ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet [class] module.add_class('EdcaParameterSet', import_from_module='ns.wifi', parent=root_module['ns3::WifiInformationElement']) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN [class] - module.add_class('EdcaTxopN', import_from_module='ns.wifi', parent=root_module['ns3::DcaTxop']) ## attribute.h (module 'core'): ns3::EmptyAttributeAccessor [class] module.add_class('EmptyAttributeAccessor', import_from_module='ns.core', parent=root_module['ns3::AttributeAccessor']) ## attribute.h (module 'core'): ns3::EmptyAttributeChecker [class] @@ -390,6 +390,8 @@ def register_types(module): module.add_class('ObjectFactoryValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## packet.h (module 'network'): ns3::Packet [class] module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter >']) + ## qos-txop.h (module 'wifi'): ns3::QosTxop [class] + module.add_class('QosTxop', import_from_module='ns.wifi', parent=root_module['ns3::Txop']) ## 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] @@ -776,6 +778,7 @@ def register_methods(root_module): register_Ns3Time_methods(root_module, root_module['ns3::Time']) register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) register_Ns3Trailer_methods(root_module, root_module['ns3::Trailer']) + register_Ns3Txop_methods(root_module, root_module['ns3::Txop']) register_Ns3WifiActionHeader_methods(root_module, root_module['ns3::WifiActionHeader']) register_Ns3WifiActionHeaderActionValue_methods(root_module, root_module['ns3::WifiActionHeader::ActionValue']) register_Ns3WifiInformationElement_methods(root_module, root_module['ns3::WifiInformationElement']) @@ -792,14 +795,13 @@ def register_methods(root_module): register_Ns3CallbackChecker_methods(root_module, root_module['ns3::CallbackChecker']) register_Ns3CallbackImplBase_methods(root_module, root_module['ns3::CallbackImplBase']) register_Ns3CallbackValue_methods(root_module, root_module['ns3::CallbackValue']) + register_Ns3CfParameterSet_methods(root_module, root_module['ns3::CfParameterSet']) register_Ns3Channel_methods(root_module, root_module['ns3::Channel']) register_Ns3DataRateChecker_methods(root_module, root_module['ns3::DataRateChecker']) register_Ns3DataRateValue_methods(root_module, root_module['ns3::DataRateValue']) - register_Ns3DcaTxop_methods(root_module, root_module['ns3::DcaTxop']) register_Ns3DoubleValue_methods(root_module, root_module['ns3::DoubleValue']) register_Ns3DsssParameterSet_methods(root_module, root_module['ns3::DsssParameterSet']) register_Ns3EdcaParameterSet_methods(root_module, root_module['ns3::EdcaParameterSet']) - register_Ns3EdcaTxopN_methods(root_module, root_module['ns3::EdcaTxopN']) register_Ns3EmptyAttributeAccessor_methods(root_module, root_module['ns3::EmptyAttributeAccessor']) register_Ns3EmptyAttributeChecker_methods(root_module, root_module['ns3::EmptyAttributeChecker']) register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue']) @@ -835,6 +837,7 @@ def register_methods(root_module): register_Ns3ObjectFactoryChecker_methods(root_module, root_module['ns3::ObjectFactoryChecker']) register_Ns3ObjectFactoryValue_methods(root_module, root_module['ns3::ObjectFactoryValue']) register_Ns3Packet_methods(root_module, root_module['ns3::Packet']) + register_Ns3QosTxop_methods(root_module, root_module['ns3::QosTxop']) register_Ns3RegularWifiMac_methods(root_module, root_module['ns3::RegularWifiMac']) register_Ns3Ssid_methods(root_module, root_module['ns3::Ssid']) register_Ns3SsidChecker_methods(root_module, root_module['ns3::SsidChecker']) @@ -1510,6 +1513,11 @@ def register_Ns3CapabilityInformation_methods(root_module, cls): 'uint32_t', [], is_const=True) + ## capability-information.h (module 'wifi'): bool ns3::CapabilityInformation::IsCfPollable() const [member function] + cls.add_method('IsCfPollable', + 'bool', + [], + is_const=True) ## capability-information.h (module 'wifi'): bool ns3::CapabilityInformation::IsEss() const [member function] cls.add_method('IsEss', 'bool', @@ -1535,6 +1543,10 @@ def register_Ns3CapabilityInformation_methods(root_module, cls): 'ns3::Buffer::Iterator', [param('ns3::Buffer::Iterator', 'start')], is_const=True) + ## capability-information.h (module 'wifi'): void ns3::CapabilityInformation::SetCfPollable() [member function] + cls.add_method('SetCfPollable', + 'void', + []) ## capability-information.h (module 'wifi'): void ns3::CapabilityInformation::SetEss() [member function] cls.add_method('SetEss', 'void', @@ -4230,6 +4242,11 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::CfParameterSet ns3::MgtProbeResponseHeader::GetCfParameterSet() const [member function] + cls.add_method('GetCfParameterSet', + 'ns3::CfParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::DsssParameterSet ns3::MgtProbeResponseHeader::GetDsssParameterSet() const [member function] cls.add_method('GetDsssParameterSet', 'ns3::DsssParameterSet', @@ -4327,6 +4344,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::SetCfParameterSet(ns3::CfParameterSet cfparameterset) [member function] + cls.add_method('SetCfParameterSet', + 'void', + [param('ns3::CfParameterSet', 'cfparameterset')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetDsssParameterSet(ns3::DsssParameterSet dsssParameterSet) [member function] cls.add_method('SetDsssParameterSet', 'void', @@ -4915,6 +4936,328 @@ def register_Ns3Trailer_methods(root_module, cls): is_pure_virtual=True, is_const=True, is_virtual=True) return +def register_Ns3Txop_methods(root_module, cls): + ## txop.h (module 'wifi'): ns3::Txop::Txop() [constructor] + cls.add_constructor([]) + ## txop.h (module 'wifi'): static ns3::TypeId ns3::Txop::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsQosTxop() const [member function] + cls.add_method('IsQosTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SetMacLow(ns3::Ptr const low) [member function] + cls.add_method('SetMacLow', + 'void', + [param('ns3::Ptr< ns3::MacLow > const', 'low')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetChannelAccessManager(ns3::Ptr const manager) [member function] + cls.add_method('SetChannelAccessManager', + 'void', + [param('ns3::Ptr< ns3::ChannelAccessManager > const', 'manager')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxMiddle(ns3::Ptr const txMiddle) [member function] + cls.add_method('SetTxMiddle', + 'void', + [param('ns3::Ptr< ns3::MacTxMiddle > const', 'txMiddle')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxOkCallback(ns3::Txop::TxOk callback) [member function] + cls.add_method('SetTxOkCallback', + 'void', + [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxFailedCallback(ns3::Txop::TxFailed callback) [member function] + cls.add_method('SetTxFailedCallback', + 'void', + [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxDroppedCallback(ns3::Txop::TxDropped callback) [member function] + cls.add_method('SetTxDroppedCallback', + 'void', + [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetLow() const [member function] + cls.add_method('GetLow', + 'ns3::Ptr< ns3::MacLow >', + [], + is_const=True) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetWifiMacQueue() const [member function] + cls.add_method('GetWifiMacQueue', + 'ns3::Ptr< ns3::WifiMacQueue >', + [], + is_const=True) + ## txop.h (module 'wifi'): void ns3::Txop::SetMinCw(uint32_t minCw) [member function] + cls.add_method('SetMinCw', + 'void', + [param('uint32_t', 'minCw')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetMaxCw(uint32_t maxCw) [member function] + cls.add_method('SetMaxCw', + 'void', + [param('uint32_t', 'maxCw')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetAifsn(uint32_t aifsn) [member function] + cls.add_method('SetAifsn', + 'void', + [param('uint32_t', 'aifsn')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')]) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetMinCw() const [member function] + cls.add_method('GetMinCw', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetMaxCw() const [member function] + cls.add_method('GetMaxCw', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetAifsn() const [member function] + cls.add_method('GetAifsn', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): ns3::Time ns3::Txop::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyChannelSwitching() [member function] + cls.add_method('NotifyChannelSwitching', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifySleep() [member function] + cls.add_method('NotifySleep', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyOff() [member function] + cls.add_method('NotifyOff', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyWakeUp() [member function] + cls.add_method('NotifyWakeUp', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyOn() [member function] + cls.add_method('NotifyOn', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::Queue(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('Queue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SendCfFrame(ns3::WifiMacType frameType, ns3::Mac48Address addr) [member function] + cls.add_method('SendCfFrame', + 'void', + [param('ns3::WifiMacType', 'frameType'), param('ns3::Mac48Address', 'addr')]) + ## txop.h (module 'wifi'): void ns3::Txop::MissedCts() [member function] + cls.add_method('MissedCts', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotAck() [member function] + cls.add_method('GotAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedAck() [member function] + cls.add_method('MissedAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotCfEnd() [member function] + cls.add_method('GotCfEnd', + 'void', + []) + ## txop.h (module 'wifi'): void ns3::Txop::MissedCfPollResponse(bool expectedCfAck) [member function] + cls.add_method('MissedCfPollResponse', + 'void', + [param('bool', 'expectedCfAck')]) + ## txop.h (module 'wifi'): void ns3::Txop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] + cls.add_method('GotBlockAck', + 'void', + [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedBlockAck(uint8_t nMpdus) [member function] + cls.add_method('MissedBlockAck', + 'void', + [param('uint8_t', 'nMpdus')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::Cancel() [member function] + cls.add_method('Cancel', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartNextPacket() [member function] + cls.add_method('StartNextPacket', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::EndTxNoAck() [member function] + cls.add_method('EndTxNoAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::HasTxop() const [member function] + cls.add_method('HasTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::CanStartNextPolling() const [member function] + cls.add_method('CanStartNextPolling', + 'bool', + [], + is_const=True) + ## txop.h (module 'wifi'): int64_t ns3::Txop::AssignStreams(int64_t stream) [member function] + cls.add_method('AssignStreams', + 'int64_t', + [param('int64_t', 'stream')]) + ## txop.h (module 'wifi'): bool ns3::Txop::IsAccessRequested() const [member function] + cls.add_method('IsAccessRequested', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartBackoffNow(uint32_t nSlots) [member function] + cls.add_method('StartBackoffNow', + 'void', + [param('uint32_t', 'nSlots')]) + ## txop.h (module 'wifi'): ns3::Txop::Txop(ns3::Txop const & arg0) [constructor] + cls.add_constructor([param('ns3::Txop const &', 'arg0')]) + ## txop.h (module 'wifi'): void ns3::Txop::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyAccessRequested() [member function] + cls.add_method('NotifyAccessRequested', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyAccessGranted() [member function] + cls.add_method('NotifyAccessGranted', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyInternalCollision() [member function] + cls.add_method('NotifyInternalCollision', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyCollision() [member function] + cls.add_method('NotifyCollision', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::RestartAccessIfNeeded() [member function] + cls.add_method('RestartAccessIfNeeded', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartAccessIfNeeded() [member function] + cls.add_method('StartAccessIfNeeded', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetCw() const [member function] + cls.add_method('GetCw', + 'uint32_t', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::ResetCw() [member function] + cls.add_method('ResetCw', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::UpdateFailedCw() [member function] + cls.add_method('UpdateFailedCw', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetBackoffSlots() const [member function] + cls.add_method('GetBackoffSlots', + 'uint32_t', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): ns3::Time ns3::Txop::GetBackoffStart() const [member function] + cls.add_method('GetBackoffStart', + 'ns3::Time', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::UpdateBackoffSlotsNow(uint32_t nSlots, ns3::Time backoffUpdateBound) [member function] + cls.add_method('UpdateBackoffSlotsNow', + 'void', + [param('uint32_t', 'nSlots'), param('ns3::Time', 'backoffUpdateBound')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedRtsRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('NeedRtsRetransmission', + 'bool', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedDataRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('NeedDataRetransmission', + 'bool', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedFragmentation() const [member function] + cls.add_method('NeedFragmentation', + 'bool', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NextFragment() [member function] + cls.add_method('NextFragment', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetFragmentPacket', + 'ns3::Ptr< ns3::Packet >', + [param('ns3::WifiMacHeader *', 'hdr')], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetNextFragmentSize() const [member function] + cls.add_method('GetNextFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetFragmentSize() const [member function] + cls.add_method('GetFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetFragmentOffset() const [member function] + cls.add_method('GetFragmentOffset', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsLastFragment() const [member function] + cls.add_method('IsLastFragment', + 'bool', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::TxDroppedPacket(ns3::Ptr item) [member function] + cls.add_method('TxDroppedPacket', + 'void', + [param('ns3::Ptr< ns3::WifiMacQueueItem const >', 'item')], + visibility='protected') + return + def register_Ns3WifiActionHeader_methods(root_module, cls): ## mgt-headers.h (module 'wifi'): ns3::WifiActionHeader::WifiActionHeader(ns3::WifiActionHeader const & arg0) [constructor] cls.add_constructor([param('ns3::WifiActionHeader const &', 'arg0')]) @@ -5328,10 +5671,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, bool isDsss, 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::DcaTxop >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Txop >', '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', @@ -5390,6 +5733,11 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'uint8_t', [], is_const=True) + ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetRawDuration() const [member function] + cls.add_method('GetRawDuration', + 'uint16_t', + [], + is_const=True) ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetSequenceControl() const [member function] cls.add_method('GetSequenceControl', 'uint16_t', @@ -5425,6 +5773,11 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'char const *', [], is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::HasData() const [member function] + cls.add_method('HasData', + 'bool', + [], + is_const=True) ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAck() const [member function] cls.add_method('IsAck', 'bool', @@ -5465,8 +5818,23 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'bool', [], is_const=True) - ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfpoll() const [member function] - cls.add_method('IsCfpoll', + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfAck() const [member function] + cls.add_method('IsCfAck', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfEnd() const [member function] + cls.add_method('IsCfEnd', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfEndAck() const [member function] + cls.add_method('IsCfEndAck', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfPoll() const [member function] + cls.add_method('IsCfPoll', 'bool', [], is_const=True) @@ -5690,6 +6058,10 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): cls.add_method('SetQosTxopLimit', 'void', [param('uint8_t', 'txop')]) + ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRawDuration(uint16_t duration) [member function] + cls.add_method('SetRawDuration', + 'void', + [param('uint16_t', 'duration')]) ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRetry() [member function] cls.add_method('SetRetry', 'void', @@ -5698,10 +6070,10 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): cls.add_method('SetSequenceNumber', 'void', [param('uint16_t', 'seq')]) - ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type) [member function] + ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type, bool resetToDsFromDs=true) [member function] cls.add_method('SetType', 'void', - [param('ns3::WifiMacType', 'type')]) + [param('ns3::WifiMacType', 'type'), param('bool', 'resetToDsFromDs', default_value='true')]) return def register_Ns3WifiRemoteStationManager_methods(root_module, cls): @@ -5793,6 +6165,16 @@ def register_Ns3WifiRemoteStationManager_methods(root_module, cls): 'bool', [], is_const=True) + ## wifi-remote-station-manager.h (module 'wifi'): void ns3::WifiRemoteStationManager::SetPcfSupported(bool enable) [member function] + cls.add_method('SetPcfSupported', + 'void', + [param('bool', 'enable')], + is_virtual=True) + ## wifi-remote-station-manager.h (module 'wifi'): bool ns3::WifiRemoteStationManager::HasPcfSupported() const [member function] + cls.add_method('HasPcfSupported', + 'bool', + [], + is_const=True) ## wifi-remote-station-manager.h (module 'wifi'): void ns3::WifiRemoteStationManager::SetUseNonErpProtection(bool enable) [member function] cls.add_method('SetUseNonErpProtection', 'void', @@ -6812,6 +7194,84 @@ def register_Ns3CallbackValue_methods(root_module, cls): [param('ns3::CallbackBase', 'base')]) return +def register_Ns3CfParameterSet_methods(root_module, cls): + cls.add_output_stream_operator() + ## cf-parameter-set.h (module 'wifi'): ns3::CfParameterSet::CfParameterSet(ns3::CfParameterSet const & arg0) [constructor] + cls.add_constructor([param('ns3::CfParameterSet const &', 'arg0')]) + ## cf-parameter-set.h (module 'wifi'): ns3::CfParameterSet::CfParameterSet() [constructor] + cls.add_constructor([]) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::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) + ## cf-parameter-set.h (module 'wifi'): ns3::WifiInformationElementId ns3::CfParameterSet::ElementId() const [member function] + cls.add_method('ElementId', + 'ns3::WifiInformationElementId', + [], + is_const=True, is_virtual=True) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::GetCFPCount() const [member function] + cls.add_method('GetCFPCount', + 'uint8_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint64_t ns3::CfParameterSet::GetCFPDurRemainingUs() const [member function] + cls.add_method('GetCFPDurRemainingUs', + 'uint64_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint64_t ns3::CfParameterSet::GetCFPMaxDurationUs() const [member function] + cls.add_method('GetCFPMaxDurationUs', + 'uint64_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::GetCFPPeriod() const [member function] + cls.add_method('GetCFPPeriod', + 'uint8_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::GetInformationFieldSize() const [member function] + cls.add_method('GetInformationFieldSize', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## cf-parameter-set.h (module 'wifi'): uint16_t ns3::CfParameterSet::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint16_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): ns3::Buffer::Iterator ns3::CfParameterSet::Serialize(ns3::Buffer::Iterator start) const [member function] + cls.add_method('Serialize', + 'ns3::Buffer::Iterator', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SerializeInformationField(ns3::Buffer::Iterator start) const [member function] + cls.add_method('SerializeInformationField', + 'void', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True, is_virtual=True) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPCount(uint8_t cfpcount) [member function] + cls.add_method('SetCFPCount', + 'void', + [param('uint8_t', 'cfpcount')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPDurRemainingUs(uint64_t cfpdurremaining) [member function] + cls.add_method('SetCFPDurRemainingUs', + 'void', + [param('uint64_t', 'cfpdurremaining')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPMaxDurationUs(uint64_t cfpmaxduration) [member function] + cls.add_method('SetCFPMaxDurationUs', + 'void', + [param('uint64_t', 'cfpmaxduration')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPPeriod(uint8_t cfpperiod) [member function] + cls.add_method('SetCFPPeriod', + 'void', + [param('uint8_t', 'cfpperiod')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetPcfSupported(uint8_t pcfSupported) [member function] + cls.add_method('SetPcfSupported', + 'void', + [param('uint8_t', 'pcfSupported')]) + return + def register_Ns3Channel_methods(root_module, cls): ## channel.h (module 'network'): ns3::Channel::Channel(ns3::Channel const & arg0) [constructor] cls.add_constructor([param('ns3::Channel const &', 'arg0')]) @@ -6879,311 +7339,6 @@ def register_Ns3DataRateValue_methods(root_module, cls): [param('ns3::DataRate const &', 'value')]) return -def register_Ns3DcaTxop_methods(root_module, cls): - ## dca-txop.h (module 'wifi'): ns3::DcaTxop::DcaTxop() [constructor] - cls.add_constructor([]) - ## dca-txop.h (module 'wifi'): static ns3::TypeId ns3::DcaTxop::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsEdca() [member function] - cls.add_method('IsEdca', - 'bool', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMacLow(ns3::Ptr const low) [member function] - cls.add_method('SetMacLow', - 'void', - [param('ns3::Ptr< ns3::MacLow > const', 'low')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetDcfManager(ns3::Ptr const manager) [member function] - cls.add_method('SetDcfManager', - 'void', - [param('ns3::Ptr< ns3::DcfManager > const', 'manager')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxMiddle(ns3::Ptr const txMiddle) [member function] - cls.add_method('SetTxMiddle', - 'void', - [param('ns3::Ptr< ns3::MacTxMiddle > const', 'txMiddle')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxOkCallback(ns3::DcaTxop::TxOk callback) [member function] - cls.add_method('SetTxOkCallback', - 'void', - [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxFailedCallback(ns3::DcaTxop::TxFailed callback) [member function] - cls.add_method('SetTxFailedCallback', - 'void', - [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxDroppedCallback(ns3::DcaTxop::TxDropped callback) [member function] - cls.add_method('SetTxDroppedCallback', - 'void', - [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetLow() const [member function] - cls.add_method('GetLow', - 'ns3::Ptr< ns3::MacLow >', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetWifiMacQueue() const [member function] - cls.add_method('GetWifiMacQueue', - 'ns3::Ptr< ns3::WifiMacQueue >', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMinCw(uint32_t minCw) [member function] - cls.add_method('SetMinCw', - 'void', - [param('uint32_t', 'minCw')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMaxCw(uint32_t maxCw) [member function] - cls.add_method('SetMaxCw', - 'void', - [param('uint32_t', 'maxCw')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetAifsn(uint32_t aifsn) [member function] - cls.add_method('SetAifsn', - 'void', - [param('uint32_t', 'aifsn')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxopLimit(ns3::Time txopLimit) [member function] - cls.add_method('SetTxopLimit', - 'void', - [param('ns3::Time', 'txopLimit')]) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMinCw() const [member function] - cls.add_method('GetMinCw', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMaxCw() const [member function] - cls.add_method('GetMaxCw', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetAifsn() const [member function] - cls.add_method('GetAifsn', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetTxopLimit() const [member function] - cls.add_method('GetTxopLimit', - 'ns3::Time', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyChannelSwitching() [member function] - cls.add_method('NotifyChannelSwitching', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifySleep() [member function] - cls.add_method('NotifySleep', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyOff() [member function] - cls.add_method('NotifyOff', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyWakeUp() [member function] - cls.add_method('NotifyWakeUp', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyOn() [member function] - cls.add_method('NotifyOn', - 'void', - [], - 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', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedCts() [member function] - cls.add_method('MissedCts', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::GotAck() [member function] - cls.add_method('GotAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedAck() [member function] - cls.add_method('MissedAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] - cls.add_method('GotBlockAck', - 'void', - [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedBlockAck(uint8_t nMpdus) [member function] - cls.add_method('MissedBlockAck', - 'void', - [param('uint8_t', 'nMpdus')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartNextFragment() [member function] - cls.add_method('StartNextFragment', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::Cancel() [member function] - cls.add_method('Cancel', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartNextPacket() [member function] - cls.add_method('StartNextPacket', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::EndTxNoAck() [member function] - cls.add_method('EndTxNoAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::HasTxop() const [member function] - cls.add_method('HasTxop', - 'bool', - [], - is_const=True, is_virtual=True) - ## dca-txop.h (module 'wifi'): int64_t ns3::DcaTxop::AssignStreams(int64_t stream) [member function] - cls.add_method('AssignStreams', - 'int64_t', - [param('int64_t', 'stream')]) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsAccessRequested() const [member function] - cls.add_method('IsAccessRequested', - 'bool', - [], - is_const=True, is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartBackoffNow(uint32_t nSlots) [member function] - cls.add_method('StartBackoffNow', - 'void', - [param('uint32_t', 'nSlots')]) - ## dca-txop.h (module 'wifi'): ns3::DcaTxop::DcaTxop(ns3::DcaTxop const & arg0) [constructor] - cls.add_constructor([param('ns3::DcaTxop const &', 'arg0')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyAccessRequested() [member function] - cls.add_method('NotifyAccessRequested', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyAccessGranted() [member function] - cls.add_method('NotifyAccessGranted', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyInternalCollision() [member function] - cls.add_method('NotifyInternalCollision', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyCollision() [member function] - cls.add_method('NotifyCollision', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::RestartAccessIfNeeded() [member function] - cls.add_method('RestartAccessIfNeeded', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartAccessIfNeeded() [member function] - cls.add_method('StartAccessIfNeeded', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetCw() const [member function] - cls.add_method('GetCw', - 'uint32_t', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::ResetCw() [member function] - cls.add_method('ResetCw', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::UpdateFailedCw() [member function] - cls.add_method('UpdateFailedCw', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetBackoffSlots() const [member function] - cls.add_method('GetBackoffSlots', - 'uint32_t', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetBackoffStart() const [member function] - cls.add_method('GetBackoffStart', - 'ns3::Time', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::UpdateBackoffSlotsNow(uint32_t nSlots, ns3::Time backoffUpdateBound) [member function] - cls.add_method('UpdateBackoffSlotsNow', - 'void', - [param('uint32_t', 'nSlots'), param('ns3::Time', 'backoffUpdateBound')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedRtsRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('NeedRtsRetransmission', - 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedDataRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('NeedDataRetransmission', - 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedFragmentation() const [member function] - cls.add_method('NeedFragmentation', - 'bool', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NextFragment() [member function] - cls.add_method('NextFragment', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetFragmentPacket', - 'ns3::Ptr< ns3::Packet >', - [param('ns3::WifiMacHeader *', 'hdr')], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetNextFragmentSize() const [member function] - cls.add_method('GetNextFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetFragmentSize() const [member function] - cls.add_method('GetFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetFragmentOffset() const [member function] - cls.add_method('GetFragmentOffset', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsLastFragment() const [member function] - cls.add_method('IsLastFragment', - 'bool', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::TxDroppedPacket(ns3::Ptr item) [member function] - cls.add_method('TxDroppedPacket', - 'void', - [param('ns3::Ptr< ns3::WifiMacQueueItem const >', 'item')], - visibility='protected') - return - def register_Ns3DoubleValue_methods(root_module, cls): ## double.h (module 'core'): ns3::DoubleValue::DoubleValue() [constructor] cls.add_constructor([]) @@ -7477,257 +7632,6 @@ def register_Ns3EdcaParameterSet_methods(root_module, cls): [param('uint16_t', 'txop')]) 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) - ## edca-txop-n.h (module 'wifi'): static ns3::TypeId ns3::EdcaTxopN::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::EdcaTxopN() [constructor] - cls.add_constructor([]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::IsEdca() [member function] - cls.add_method('IsEdca', - 'bool', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetTypeOfStation(ns3::TypeOfStation type) [member function] - cls.add_method('SetTypeOfStation', - 'void', - [param('ns3::TypeOfStation', 'type')]) - ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation ns3::EdcaTxopN::GetTypeOfStation() const [member function] - cls.add_method('GetTypeOfStation', - 'ns3::TypeOfStation', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetMsduAggregator() const [member function] - cls.add_method('GetMsduAggregator', - 'ns3::Ptr< ns3::MsduAggregator >', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetMpduAggregator() const [member function] - cls.add_method('GetMpduAggregator', - 'ns3::Ptr< ns3::MpduAggregator >', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::GetBaAgreementExists(ns3::Mac48Address address, uint8_t tid) const [member function] - cls.add_method('GetBaAgreementExists', - 'bool', - [param('ns3::Mac48Address', 'address'), param('uint8_t', 'tid')], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteAmpduTransfer(ns3::Mac48Address recipient, uint8_t tid) [member function] - cls.add_method('CompleteAmpduTransfer', - 'void', - [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyAccessGranted() [member function] - cls.add_method('NotifyAccessGranted', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyInternalCollision() [member function] - cls.add_method('NotifyInternalCollision', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyCollision() [member function] - cls.add_method('NotifyCollision', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedCts() [member function] - cls.add_method('MissedCts', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotAck() [member function] - cls.add_method('GotAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] - cls.add_method('GotBlockAck', - 'void', - [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedBlockAck(uint8_t nMpdus) [member function] - cls.add_method('MissedBlockAck', - 'void', - [param('uint8_t', 'nMpdus')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotAddBaResponse(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address recipient) [member function] - cls.add_method('GotAddBaResponse', - 'void', - [param('ns3::MgtAddBaResponseHeader const *', 'respHdr'), param('ns3::Mac48Address', 'recipient')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotDelBaFrame(ns3::MgtDelBaHeader const * delBaHdr, ns3::Mac48Address recipient) [member function] - cls.add_method('GotDelBaFrame', - 'void', - [param('ns3::MgtDelBaHeader const *', 'delBaHdr'), param('ns3::Mac48Address', 'recipient')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedAck() [member function] - cls.add_method('MissedAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNextPacket() [member function] - cls.add_method('StartNextPacket', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::EndTxNoAck() [member function] - cls.add_method('EndTxNoAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::RestartAccessIfNeeded() [member function] - cls.add_method('RestartAccessIfNeeded', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartAccessIfNeeded() [member function] - cls.add_method('StartAccessIfNeeded', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::NeedBarRetransmission() [member function] - cls.add_method('NeedBarRetransmission', - 'bool', - []) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::NeedFragmentation() const [member function] - cls.add_method('NeedFragmentation', - 'bool', - [], - is_const=True, is_virtual=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetFragmentPacket', - 'ns3::Ptr< ns3::Packet >', - [param('ns3::WifiMacHeader *', 'hdr')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetAccessCategory(ns3::AcIndex ac) [member function] - cls.add_method('SetAccessCategory', - 'void', - [param('ns3::AcIndex', 'ac')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetMsduAggregator(ns3::Ptr const aggr) [member function] - cls.add_method('SetMsduAggregator', - 'void', - [param('ns3::Ptr< ns3::MsduAggregator > const', 'aggr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetMpduAggregator(ns3::Ptr const aggr) [member function] - cls.add_method('SetMpduAggregator', - 'void', - [param('ns3::Ptr< ns3::MpduAggregator > const', 'aggr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::PushFront(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('PushFront', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteConfig() [member function] - cls.add_method('CompleteConfig', - 'void', - []) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetBlockAckThreshold(uint8_t threshold) [member function] - cls.add_method('SetBlockAckThreshold', - 'void', - [param('uint8_t', 'threshold')]) - ## edca-txop-n.h (module 'wifi'): uint8_t ns3::EdcaTxopN::GetBlockAckThreshold() const [member function] - cls.add_method('GetBlockAckThreshold', - 'uint8_t', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetBlockAckInactivityTimeout(uint16_t timeout) [member function] - cls.add_method('SetBlockAckInactivityTimeout', - 'void', - [param('uint16_t', 'timeout')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SendDelbaFrame(ns3::Mac48Address addr, uint8_t tid, bool byOriginator) [member function] - cls.add_method('SendDelbaFrame', - 'void', - [param('ns3::Mac48Address', 'addr'), param('uint8_t', 'tid'), param('bool', 'byOriginator')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteMpduTx(ns3::Ptr packet, ns3::WifiMacHeader hdr, ns3::Time tstamp) [member function] - cls.add_method('CompleteMpduTx', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader', 'hdr'), param('ns3::Time', 'tstamp')]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::GetAmpduExist(ns3::Mac48Address dest) const [member function] - cls.add_method('GetAmpduExist', - 'bool', - [param('ns3::Mac48Address', 'dest')], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetAmpduExist(ns3::Mac48Address dest, bool enableAmpdu) [member function] - cls.add_method('SetAmpduExist', - 'void', - [param('ns3::Mac48Address', 'dest'), param('bool', 'enableAmpdu')]) - ## edca-txop-n.h (module 'wifi'): uint16_t ns3::EdcaTxopN::GetNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetNextSequenceNumberFor', - 'uint16_t', - [param('ns3::WifiMacHeader *', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): uint16_t ns3::EdcaTxopN::PeekNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('PeekNextSequenceNumberFor', - 'uint16_t', - [param('ns3::WifiMacHeader *', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::RemoveRetransmitPacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] - cls.add_method('RemoveRetransmitPacket', - 'void', - [param('uint8_t', 'tid'), param('ns3::Mac48Address', 'recipient'), param('uint16_t', 'seqnumber')]) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::PeekNextRetransmitPacket(ns3::WifiMacHeader & header, uint8_t tid, ns3::Time * timestamp) [member function] - cls.add_method('PeekNextRetransmitPacket', - 'ns3::Ptr< ns3::Packet const >', - [param('ns3::WifiMacHeader &', 'header'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::BaTxOk(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('BaTxOk', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::BaTxFailed(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('BaTxFailed', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::Mac48Address ns3::EdcaTxopN::MapSrcAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('MapSrcAddressForAggregation', - 'ns3::Mac48Address', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::Mac48Address ns3::EdcaTxopN::MapDestAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('MapDestAddressForAggregation', - 'ns3::Mac48Address', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::EdcaTxopN(ns3::EdcaTxopN const & arg0) [constructor] - cls.add_constructor([param('ns3::EdcaTxopN const &', 'arg0')]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::HasTxop() const [member function] - cls.add_method('HasTxop', - 'bool', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetNextFragmentSize() const [member function] - cls.add_method('GetNextFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetFragmentSize() const [member function] - cls.add_method('GetFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetFragmentOffset() const [member function] - cls.add_method('GetFragmentOffset', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::IsLastFragment() const [member function] - cls.add_method('IsLastFragment', - 'bool', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='private', is_virtual=True) - return - def register_Ns3EmptyAttributeAccessor_methods(root_module, cls): ## attribute.h (module 'core'): ns3::EmptyAttributeAccessor::EmptyAttributeAccessor(ns3::EmptyAttributeAccessor const & arg0) [constructor] cls.add_constructor([param('ns3::EmptyAttributeAccessor const &', 'arg0')]) @@ -9631,6 +9535,257 @@ def register_Ns3Packet_methods(root_module, cls): is_const=True) return +def register_Ns3QosTxop_methods(root_module, cls): + ## qos-txop.h (module 'wifi'): ns3::QosTxop::m_aMpduEnabled [variable] + cls.add_instance_attribute('m_aMpduEnabled', 'std::map< ns3::Mac48Address, bool >', is_const=False) + ## qos-txop.h (module 'wifi'): static ns3::TypeId ns3::QosTxop::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## qos-txop.h (module 'wifi'): ns3::QosTxop::QosTxop() [constructor] + cls.add_constructor([]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::IsQosTxop() const [member function] + cls.add_method('IsQosTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetTypeOfStation(ns3::TypeOfStation type) [member function] + cls.add_method('SetTypeOfStation', + 'void', + [param('ns3::TypeOfStation', 'type')]) + ## qos-txop.h (module 'wifi'): ns3::TypeOfStation ns3::QosTxop::GetTypeOfStation() const [member function] + cls.add_method('GetTypeOfStation', + 'ns3::TypeOfStation', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetMsduAggregator() const [member function] + cls.add_method('GetMsduAggregator', + 'ns3::Ptr< ns3::MsduAggregator >', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetMpduAggregator() const [member function] + cls.add_method('GetMpduAggregator', + 'ns3::Ptr< ns3::MpduAggregator >', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::GetBaAgreementExists(ns3::Mac48Address address, uint8_t tid) const [member function] + cls.add_method('GetBaAgreementExists', + 'bool', + [param('ns3::Mac48Address', 'address'), param('uint8_t', 'tid')], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteAmpduTransfer(ns3::Mac48Address recipient, uint8_t tid) [member function] + cls.add_method('CompleteAmpduTransfer', + 'void', + [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyAccessGranted() [member function] + cls.add_method('NotifyAccessGranted', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyInternalCollision() [member function] + cls.add_method('NotifyInternalCollision', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyCollision() [member function] + cls.add_method('NotifyCollision', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedCts() [member function] + cls.add_method('MissedCts', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotAck() [member function] + cls.add_method('GotAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] + cls.add_method('GotBlockAck', + 'void', + [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedBlockAck(uint8_t nMpdus) [member function] + cls.add_method('MissedBlockAck', + 'void', + [param('uint8_t', 'nMpdus')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotAddBaResponse(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address recipient) [member function] + cls.add_method('GotAddBaResponse', + 'void', + [param('ns3::MgtAddBaResponseHeader const *', 'respHdr'), param('ns3::Mac48Address', 'recipient')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotDelBaFrame(ns3::MgtDelBaHeader const * delBaHdr, ns3::Mac48Address recipient) [member function] + cls.add_method('GotDelBaFrame', + 'void', + [param('ns3::MgtDelBaHeader const *', 'delBaHdr'), param('ns3::Mac48Address', 'recipient')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedAck() [member function] + cls.add_method('MissedAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::StartNextPacket() [member function] + cls.add_method('StartNextPacket', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::EndTxNoAck() [member function] + cls.add_method('EndTxNoAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::RestartAccessIfNeeded() [member function] + cls.add_method('RestartAccessIfNeeded', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::StartAccessIfNeeded() [member function] + cls.add_method('StartAccessIfNeeded', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::NeedBarRetransmission() [member function] + cls.add_method('NeedBarRetransmission', + 'bool', + []) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::NeedFragmentation() const [member function] + cls.add_method('NeedFragmentation', + 'bool', + [], + is_const=True, is_virtual=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetFragmentPacket', + 'ns3::Ptr< ns3::Packet >', + [param('ns3::WifiMacHeader *', 'hdr')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetAccessCategory(ns3::AcIndex ac) [member function] + cls.add_method('SetAccessCategory', + 'void', + [param('ns3::AcIndex', 'ac')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetMsduAggregator(ns3::Ptr const aggr) [member function] + cls.add_method('SetMsduAggregator', + 'void', + [param('ns3::Ptr< ns3::MsduAggregator > const', 'aggr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetMpduAggregator(ns3::Ptr const aggr) [member function] + cls.add_method('SetMpduAggregator', + 'void', + [param('ns3::Ptr< ns3::MpduAggregator > const', 'aggr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::PushFront(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('PushFront', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteConfig() [member function] + cls.add_method('CompleteConfig', + 'void', + []) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetBlockAckThreshold(uint8_t threshold) [member function] + cls.add_method('SetBlockAckThreshold', + 'void', + [param('uint8_t', 'threshold')]) + ## qos-txop.h (module 'wifi'): uint8_t ns3::QosTxop::GetBlockAckThreshold() const [member function] + cls.add_method('GetBlockAckThreshold', + 'uint8_t', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetBlockAckInactivityTimeout(uint16_t timeout) [member function] + cls.add_method('SetBlockAckInactivityTimeout', + 'void', + [param('uint16_t', 'timeout')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SendDelbaFrame(ns3::Mac48Address addr, uint8_t tid, bool byOriginator) [member function] + cls.add_method('SendDelbaFrame', + 'void', + [param('ns3::Mac48Address', 'addr'), param('uint8_t', 'tid'), param('bool', 'byOriginator')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteMpduTx(ns3::Ptr packet, ns3::WifiMacHeader hdr, ns3::Time tstamp) [member function] + cls.add_method('CompleteMpduTx', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader', 'hdr'), param('ns3::Time', 'tstamp')]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::GetAmpduExist(ns3::Mac48Address dest) const [member function] + cls.add_method('GetAmpduExist', + 'bool', + [param('ns3::Mac48Address', 'dest')], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetAmpduExist(ns3::Mac48Address dest, bool enableAmpdu) [member function] + cls.add_method('SetAmpduExist', + 'void', + [param('ns3::Mac48Address', 'dest'), param('bool', 'enableAmpdu')]) + ## qos-txop.h (module 'wifi'): uint16_t ns3::QosTxop::GetNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetNextSequenceNumberFor', + 'uint16_t', + [param('ns3::WifiMacHeader *', 'hdr')]) + ## qos-txop.h (module 'wifi'): uint16_t ns3::QosTxop::PeekNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('PeekNextSequenceNumberFor', + 'uint16_t', + [param('ns3::WifiMacHeader *', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::RemoveRetransmitPacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] + cls.add_method('RemoveRetransmitPacket', + 'void', + [param('uint8_t', 'tid'), param('ns3::Mac48Address', 'recipient'), param('uint16_t', 'seqnumber')]) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::PeekNextRetransmitPacket(ns3::WifiMacHeader & header, uint8_t tid, ns3::Time * timestamp) [member function] + cls.add_method('PeekNextRetransmitPacket', + 'ns3::Ptr< ns3::Packet const >', + [param('ns3::WifiMacHeader &', 'header'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::BaTxOk(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('BaTxOk', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::BaTxFailed(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('BaTxFailed', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::Mac48Address ns3::QosTxop::MapSrcAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('MapSrcAddressForAggregation', + 'ns3::Mac48Address', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::Mac48Address ns3::QosTxop::MapDestAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('MapDestAddressForAggregation', + 'ns3::Mac48Address', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::QosTxop::QosTxop(ns3::QosTxop const & arg0) [constructor] + cls.add_constructor([param('ns3::QosTxop const &', 'arg0')]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::HasTxop() const [member function] + cls.add_method('HasTxop', + 'bool', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetNextFragmentSize() const [member function] + cls.add_method('GetNextFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetFragmentSize() const [member function] + cls.add_method('GetFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetFragmentOffset() const [member function] + cls.add_method('GetFragmentOffset', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::IsLastFragment() const [member function] + cls.add_method('IsLastFragment', + 'bool', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='private', is_virtual=True) + return + def register_Ns3RegularWifiMac_methods(root_module, cls): ## regular-wifi-mac.h (module 'wifi'): static ns3::TypeId ns3::RegularWifiMac::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -9871,29 +10026,29 @@ def register_Ns3RegularWifiMac_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetDcaTxop() const [member function] - cls.add_method('GetDcaTxop', - 'ns3::Ptr< ns3::DcaTxop >', + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetTxop() const [member function] + cls.add_method('GetTxop', + 'ns3::Ptr< ns3::Txop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVOQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVOQueue() const [member function] cls.add_method('GetVOQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVIQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVIQueue() const [member function] cls.add_method('GetVIQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBEQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBEQueue() const [member function] cls.add_method('GetBEQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBKQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBKQueue() const [member function] cls.add_method('GetBKQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') ## regular-wifi-mac.h (module 'wifi'): void ns3::RegularWifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] @@ -9945,7 +10100,7 @@ def register_Ns3RegularWifiMac_methods(root_module, cls): cls.add_method('SetQosSupported', 'void', [param('bool', 'enable')], - visibility='protected') + visibility='protected', is_virtual=True) ## regular-wifi-mac.h (module 'wifi'): bool ns3::RegularWifiMac::GetQosSupported() const [member function] cls.add_method('GetQosSupported', 'bool', diff --git a/src/mesh/helper/mesh-helper.cc b/src/mesh/helper/mesh-helper.cc index 240cc3c10..80fd1bac7 100644 --- a/src/mesh/helper/mesh-helper.cc +++ b/src/mesh/helper/mesh-helper.cc @@ -251,25 +251,25 @@ MeshHelper::AssignStreams (NetDeviceContainer c, int64_t stream) if (rmac) { PointerValue ptr; - rmac->GetAttribute ("DcaTxop", ptr); - Ptr dcaTxop = ptr.Get (); - currentStream += dcaTxop->AssignStreams (currentStream); + rmac->GetAttribute ("Txop", ptr); + Ptr txop = ptr.Get (); + currentStream += txop->AssignStreams (currentStream); - rmac->GetAttribute ("VO_EdcaTxopN", ptr); - Ptr vo_edcaTxopN = ptr.Get (); - currentStream += vo_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("VO_Txop", ptr); + Ptr vo_txop = ptr.Get (); + currentStream += vo_txop->AssignStreams (currentStream); - rmac->GetAttribute ("VI_EdcaTxopN", ptr); - Ptr vi_edcaTxopN = ptr.Get (); - currentStream += vi_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("VI_Txop", ptr); + Ptr vi_txop = ptr.Get (); + currentStream += vi_txop->AssignStreams (currentStream); - rmac->GetAttribute ("BE_EdcaTxopN", ptr); - Ptr be_edcaTxopN = ptr.Get (); - currentStream += be_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("BE_Txop", ptr); + Ptr be_txop = ptr.Get (); + currentStream += be_txop->AssignStreams (currentStream); - rmac->GetAttribute ("BK_EdcaTxopN", ptr); - Ptr bk_edcaTxopN = ptr.Get (); - currentStream += bk_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("BK_Txop", ptr); + Ptr bk_txop = ptr.Get (); + currentStream += bk_txop->AssignStreams (currentStream); } } } diff --git a/src/mesh/model/mesh-wifi-interface-mac.cc b/src/mesh/model/mesh-wifi-interface-mac.cc index aba2f3655..0b18e724a 100644 --- a/src/mesh/model/mesh-wifi-interface-mac.cc +++ b/src/mesh/model/mesh-wifi-interface-mac.cc @@ -206,7 +206,7 @@ MeshWifiInterfaceMac::SwitchFrequencyChannel (uint16_t new_id) Ptr phy = m_phy->GetObject (); phy->SetChannelNumber (new_id); // Don't know NAV on new channel - m_dcfManager->NotifyNavResetNow (Seconds (0)); + m_channelAccessManager->NotifyNavResetNow (Seconds (0)); } //----------------------------------------------------------------------------- // Forward frame down @@ -412,7 +412,7 @@ MeshWifiInterfaceMac::SendBeacon () { (*i)->UpdateBeacon (beacon); } - m_dca->Queue (beacon.CreatePacket (), beacon.CreateHeader (GetAddress (), GetMeshPointAddress ())); + m_txop->Queue (beacon.CreatePacket (), beacon.CreateHeader (GetAddress (), GetMeshPointAddress ())); ScheduleNextBeacon (); } @@ -556,9 +556,9 @@ MeshWifiInterfaceMac::FinishConfigureStandard (enum WifiPhyStandard standard) // We use the single DCF provided by WifiMac for the purpose of // Beacon transmission. For this we need to reconfigure the channel // access parameters slightly, and do so here. - m_dca->SetMinCw (0); - m_dca->SetMaxCw (0); - m_dca->SetAifsn (1); + m_txop->SetMinCw (0); + m_txop->SetMaxCw (0); + m_txop->SetAifsn (1); } WifiPhyStandard MeshWifiInterfaceMac::GetPhyStandard () const diff --git a/src/test/ns3wifi/wifi-ac-mapping-test-suite.cc b/src/test/ns3wifi/wifi-ac-mapping-test-suite.cc index f47e2f855..28170e7f9 100644 --- a/src/test/ns3wifi/wifi-ac-mapping-test-suite.cc +++ b/src/test/ns3wifi/wifi-ac-mapping-test-suite.cc @@ -26,7 +26,7 @@ #include "ns3/wifi-net-device.h" #include "ns3/wifi-mac.h" #include "ns3/wifi-mac-queue.h" -#include "ns3/edca-txop-n.h" +#include "ns3/qos-txop.h" #include "ns3/yans-wifi-helper.h" #include "ns3/mobility-helper.h" #include "ns3/internet-stack-helper.h" @@ -205,20 +205,20 @@ WifiAcMappingTest::DoRun (void) PointerValue ptr; // Get the four wifi mac queues and connect their Enqueue trace to the PacketEnqueuedInWifiMacQueue // method, which counts how many packets with the given ToS value have been enqueued - apMac->GetAttribute ("BE_EdcaTxopN", ptr); - ptr.Get ()->GetWifiMacQueue ()->TraceConnectWithoutContext ("Enqueue", + apMac->GetAttribute ("BE_Txop", ptr); + ptr.Get ()->GetWifiMacQueue ()->TraceConnectWithoutContext ("Enqueue", MakeBoundCallback (&WifiAcMappingTest::PacketEnqueuedInWifiMacQueue, m_tos, m_WifiMacQueueCount)); - apMac->GetAttribute ("BK_EdcaTxopN", ptr); - ptr.Get ()->GetWifiMacQueue ()->TraceConnectWithoutContext ("Enqueue", + apMac->GetAttribute ("BK_Txop", ptr); + ptr.Get ()->GetWifiMacQueue ()->TraceConnectWithoutContext ("Enqueue", MakeBoundCallback (&WifiAcMappingTest::PacketEnqueuedInWifiMacQueue, m_tos, m_WifiMacQueueCount+1)); - apMac->GetAttribute ("VI_EdcaTxopN", ptr); - ptr.Get ()->GetWifiMacQueue ()->TraceConnectWithoutContext ("Enqueue", + apMac->GetAttribute ("VI_Txop", ptr); + ptr.Get ()->GetWifiMacQueue ()->TraceConnectWithoutContext ("Enqueue", MakeBoundCallback (&WifiAcMappingTest::PacketEnqueuedInWifiMacQueue, m_tos, m_WifiMacQueueCount+2)); - apMac->GetAttribute ("VO_EdcaTxopN", ptr); - ptr.Get ()->GetWifiMacQueue ()->TraceConnectWithoutContext ("Enqueue", + apMac->GetAttribute ("VO_Txop", ptr); + ptr.Get ()->GetWifiMacQueue ()->TraceConnectWithoutContext ("Enqueue", MakeBoundCallback (&WifiAcMappingTest::PacketEnqueuedInWifiMacQueue, m_tos, m_WifiMacQueueCount+3)); Simulator::Run (); diff --git a/src/wave/bindings/modulegen__gcc_ILP32.py b/src/wave/bindings/modulegen__gcc_ILP32.py index fff8b60f9..71b7ef55a 100644 --- a/src/wave/bindings/modulegen__gcc_ILP32.py +++ b/src/wave/bindings/modulegen__gcc_ILP32.py @@ -30,12 +30,12 @@ def register_types(module): module.add_enum('QueueSizeUnit', ['PACKETS', 'BYTES'], import_from_module='ns.network') ## log.h (module 'core'): ns3::LogLevel [enumeration] module.add_enum('LogLevel', ['LOG_NONE', 'LOG_ERROR', 'LOG_LEVEL_ERROR', 'LOG_WARN', 'LOG_LEVEL_WARN', 'LOG_DEBUG', 'LOG_LEVEL_DEBUG', 'LOG_INFO', 'LOG_LEVEL_INFO', 'LOG_FUNCTION', 'LOG_LEVEL_FUNCTION', 'LOG_LOGIC', 'LOG_LEVEL_LOGIC', 'LOG_ALL', 'LOG_LEVEL_ALL', 'LOG_PREFIX_FUNC', 'LOG_PREFIX_TIME', 'LOG_PREFIX_NODE', 'LOG_PREFIX_LEVEL', 'LOG_PREFIX_ALL'], import_from_module='ns.core') - ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation [enumeration] + ## qos-txop.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') ## block-ack-type.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') ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacType [enumeration] - module.add_enum('WifiMacType', ['WIFI_MAC_CTL_CTLWRAPPER', 'WIFI_MAC_CTL_RTS', 'WIFI_MAC_CTL_CTS', 'WIFI_MAC_CTL_ACK', 'WIFI_MAC_CTL_BACKREQ', 'WIFI_MAC_CTL_BACKRESP', 'WIFI_MAC_MGT_BEACON', 'WIFI_MAC_MGT_ASSOCIATION_REQUEST', 'WIFI_MAC_MGT_ASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_DISASSOCIATION', 'WIFI_MAC_MGT_REASSOCIATION_REQUEST', 'WIFI_MAC_MGT_REASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_PROBE_REQUEST', 'WIFI_MAC_MGT_PROBE_RESPONSE', 'WIFI_MAC_MGT_AUTHENTICATION', 'WIFI_MAC_MGT_DEAUTHENTICATION', 'WIFI_MAC_MGT_ACTION', 'WIFI_MAC_MGT_ACTION_NO_ACK', 'WIFI_MAC_MGT_MULTIHOP_ACTION', 'WIFI_MAC_DATA', 'WIFI_MAC_DATA_CFACK', 'WIFI_MAC_DATA_CFPOLL', 'WIFI_MAC_DATA_CFACK_CFPOLL', 'WIFI_MAC_DATA_NULL', 'WIFI_MAC_DATA_NULL_CFACK', 'WIFI_MAC_DATA_NULL_CFPOLL', 'WIFI_MAC_DATA_NULL_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA', 'WIFI_MAC_QOSDATA_CFACK', 'WIFI_MAC_QOSDATA_CFPOLL', 'WIFI_MAC_QOSDATA_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA_NULL', 'WIFI_MAC_QOSDATA_NULL_CFPOLL', 'WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL'], import_from_module='ns.wifi') + 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_CTL_END', 'WIFI_MAC_CTL_END_ACK', 'WIFI_MAC_MGT_BEACON', 'WIFI_MAC_MGT_ASSOCIATION_REQUEST', 'WIFI_MAC_MGT_ASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_DISASSOCIATION', 'WIFI_MAC_MGT_REASSOCIATION_REQUEST', 'WIFI_MAC_MGT_REASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_PROBE_REQUEST', 'WIFI_MAC_MGT_PROBE_RESPONSE', 'WIFI_MAC_MGT_AUTHENTICATION', 'WIFI_MAC_MGT_DEAUTHENTICATION', 'WIFI_MAC_MGT_ACTION', 'WIFI_MAC_MGT_ACTION_NO_ACK', 'WIFI_MAC_MGT_MULTIHOP_ACTION', 'WIFI_MAC_DATA', 'WIFI_MAC_DATA_CFACK', 'WIFI_MAC_DATA_CFPOLL', 'WIFI_MAC_DATA_CFACK_CFPOLL', 'WIFI_MAC_DATA_NULL', 'WIFI_MAC_DATA_NULL_CFACK', 'WIFI_MAC_DATA_NULL_CFPOLL', 'WIFI_MAC_DATA_NULL_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA', 'WIFI_MAC_QOSDATA_CFACK', 'WIFI_MAC_QOSDATA_CFPOLL', 'WIFI_MAC_QOSDATA_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA_NULL', 'WIFI_MAC_QOSDATA_NULL_CFPOLL', 'WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL'], import_from_module='ns.wifi') ## 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-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] @@ -404,6 +404,8 @@ def register_types(module): module.add_class('Trailer', import_from_module='ns.network', parent=root_module['ns3::Chunk']) ## random-variable-stream.h (module 'core'): ns3::TriangularRandomVariable [class] module.add_class('TriangularRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) + ## txop.h (module 'wifi'): ns3::Txop [class] + module.add_class('Txop', import_from_module='ns.wifi', parent=root_module['ns3::Object']) ## random-variable-stream.h (module 'core'): ns3::UniformRandomVariable [class] module.add_class('UniformRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## vendor-specific-action.h (module 'wave'): ns3::VendorSpecificActionHeader [class] @@ -466,6 +468,8 @@ def register_types(module): module.add_class('CallbackValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## channel.h (module 'network'): ns3::Channel [class] module.add_class('Channel', import_from_module='ns.network', parent=root_module['ns3::Object']) + ## channel-access-manager.h (module 'wifi'): ns3::ChannelAccessManager [class] + module.add_class('ChannelAccessManager', import_from_module='ns.wifi', parent=root_module['ns3::Object']) ## channel-coordinator.h (module 'wave'): ns3::ChannelCoordinationListener [class] module.add_class('ChannelCoordinationListener', parent=root_module['ns3::SimpleRefCount< ns3::ChannelCoordinationListener, ns3::empty, ns3::DefaultDeleter >']) ## channel-coordinator.h (module 'wave'): ns3::ChannelCoordinator [class] @@ -480,18 +484,12 @@ def register_types(module): module.add_class('DataRateChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## data-rate.h (module 'network'): ns3::DataRateValue [class] module.add_class('DataRateValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) - ## dca-txop.h (module 'wifi'): ns3::DcaTxop [class] - module.add_class('DcaTxop', import_from_module='ns.wifi', parent=root_module['ns3::Object']) - ## dcf-manager.h (module 'wifi'): ns3::DcfManager [class] - module.add_class('DcfManager', import_from_module='ns.wifi', parent=root_module['ns3::Object']) ## default-channel-scheduler.h (module 'wave'): ns3::DefaultChannelScheduler [class] module.add_class('DefaultChannelScheduler', parent=root_module['ns3::ChannelScheduler']) ## random-variable-stream.h (module 'core'): ns3::DeterministicRandomVariable [class] 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-txop-n.h (module 'wifi'): ns3::EdcaTxopN [class] - module.add_class('EdcaTxopN', import_from_module='ns.wifi', parent=root_module['ns3::DcaTxop']) ## random-variable-stream.h (module 'core'): ns3::EmpiricalRandomVariable [class] module.add_class('EmpiricalRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## attribute.h (module 'core'): ns3::EmptyAttributeAccessor [class] @@ -590,6 +588,8 @@ def register_types(module): module.add_class('PointerChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker']) ## pointer.h (module 'core'): ns3::PointerValue [class] module.add_class('PointerValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) + ## qos-txop.h (module 'wifi'): ns3::QosTxop [class] + module.add_class('QosTxop', import_from_module='ns.wifi', parent=root_module['ns3::Txop']) ## wifi-mac-queue-item.h (module 'wifi'): ns3::Queue [class] module.add_class('Queue', import_from_module='ns.wifi', template_parameters=['ns3::WifiMacQueueItem'], parent=root_module['ns3::QueueBase']) ## queue-size.h (module 'network'): ns3::QueueSizeChecker [class] @@ -718,8 +718,8 @@ def register_types(module): module.add_container('ns3::WifiModeList', 'ns3::WifiMode', container_type=u'vector') module.add_container('std::vector< ns3::Ipv6Address >', 'ns3::Ipv6Address', container_type=u'vector') module.add_container('std::vector< unsigned short >', 'short 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::map< unsigned int, unsigned int >', ('unsigned int', 'unsigned int'), container_type=u'map') + module.add_container('std::map< ns3::Mac48Address, bool >', ('ns3::Mac48Address', 'bool'), container_type=u'map') module.add_container('std::map< unsigned int, ns3::Ptr< ns3::OcbWifiMac > >', ('unsigned int', 'ns3::Ptr< ns3::OcbWifiMac >'), container_type=u'map') module.add_container('std::vector< ns3::Ptr< ns3::WifiPhy > >', 'ns3::Ptr< ns3::WifiPhy >', container_type=u'vector') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::WifiTxVector, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::RxOkCallback') @@ -1009,6 +1009,7 @@ def register_methods(root_module): register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) register_Ns3Trailer_methods(root_module, root_module['ns3::Trailer']) register_Ns3TriangularRandomVariable_methods(root_module, root_module['ns3::TriangularRandomVariable']) + register_Ns3Txop_methods(root_module, root_module['ns3::Txop']) register_Ns3UniformRandomVariable_methods(root_module, root_module['ns3::UniformRandomVariable']) register_Ns3VendorSpecificActionHeader_methods(root_module, root_module['ns3::VendorSpecificActionHeader']) register_Ns3VsaManager_methods(root_module, root_module['ns3::VsaManager']) @@ -1037,6 +1038,7 @@ def register_methods(root_module): register_Ns3CallbackImplBase_methods(root_module, root_module['ns3::CallbackImplBase']) register_Ns3CallbackValue_methods(root_module, root_module['ns3::CallbackValue']) register_Ns3Channel_methods(root_module, root_module['ns3::Channel']) + register_Ns3ChannelAccessManager_methods(root_module, root_module['ns3::ChannelAccessManager']) register_Ns3ChannelCoordinationListener_methods(root_module, root_module['ns3::ChannelCoordinationListener']) register_Ns3ChannelCoordinator_methods(root_module, root_module['ns3::ChannelCoordinator']) register_Ns3ChannelManager_methods(root_module, root_module['ns3::ChannelManager']) @@ -1044,12 +1046,9 @@ def register_methods(root_module): register_Ns3ConstantRandomVariable_methods(root_module, root_module['ns3::ConstantRandomVariable']) register_Ns3DataRateChecker_methods(root_module, root_module['ns3::DataRateChecker']) register_Ns3DataRateValue_methods(root_module, root_module['ns3::DataRateValue']) - register_Ns3DcaTxop_methods(root_module, root_module['ns3::DcaTxop']) - register_Ns3DcfManager_methods(root_module, root_module['ns3::DcfManager']) 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_Ns3EdcaTxopN_methods(root_module, root_module['ns3::EdcaTxopN']) register_Ns3EmpiricalRandomVariable_methods(root_module, root_module['ns3::EmpiricalRandomVariable']) register_Ns3EmptyAttributeAccessor_methods(root_module, root_module['ns3::EmptyAttributeAccessor']) register_Ns3EmptyAttributeChecker_methods(root_module, root_module['ns3::EmptyAttributeChecker']) @@ -1096,6 +1095,7 @@ def register_methods(root_module): register_Ns3ParetoRandomVariable_methods(root_module, root_module['ns3::ParetoRandomVariable']) register_Ns3PointerChecker_methods(root_module, root_module['ns3::PointerChecker']) register_Ns3PointerValue_methods(root_module, root_module['ns3::PointerValue']) + register_Ns3QosTxop_methods(root_module, root_module['ns3::QosTxop']) register_Ns3Queue__Ns3WifiMacQueueItem_methods(root_module, root_module['ns3::Queue< ns3::WifiMacQueueItem >']) register_Ns3QueueSizeChecker_methods(root_module, root_module['ns3::QueueSizeChecker']) register_Ns3QueueSizeValue_methods(root_module, root_module['ns3::QueueSizeValue']) @@ -7383,6 +7383,328 @@ def register_Ns3TriangularRandomVariable_methods(root_module, cls): is_virtual=True) return +def register_Ns3Txop_methods(root_module, cls): + ## txop.h (module 'wifi'): ns3::Txop::Txop() [constructor] + cls.add_constructor([]) + ## txop.h (module 'wifi'): static ns3::TypeId ns3::Txop::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsQosTxop() const [member function] + cls.add_method('IsQosTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SetMacLow(ns3::Ptr const low) [member function] + cls.add_method('SetMacLow', + 'void', + [param('ns3::Ptr< ns3::MacLow > const', 'low')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetChannelAccessManager(ns3::Ptr const manager) [member function] + cls.add_method('SetChannelAccessManager', + 'void', + [param('ns3::Ptr< ns3::ChannelAccessManager > const', 'manager')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxMiddle(ns3::Ptr const txMiddle) [member function] + cls.add_method('SetTxMiddle', + 'void', + [param('ns3::Ptr< ns3::MacTxMiddle > const', 'txMiddle')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxOkCallback(ns3::Txop::TxOk callback) [member function] + cls.add_method('SetTxOkCallback', + 'void', + [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxFailedCallback(ns3::Txop::TxFailed callback) [member function] + cls.add_method('SetTxFailedCallback', + 'void', + [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxDroppedCallback(ns3::Txop::TxDropped callback) [member function] + cls.add_method('SetTxDroppedCallback', + 'void', + [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetLow() const [member function] + cls.add_method('GetLow', + 'ns3::Ptr< ns3::MacLow >', + [], + is_const=True) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetWifiMacQueue() const [member function] + cls.add_method('GetWifiMacQueue', + 'ns3::Ptr< ns3::WifiMacQueue >', + [], + is_const=True) + ## txop.h (module 'wifi'): void ns3::Txop::SetMinCw(uint32_t minCw) [member function] + cls.add_method('SetMinCw', + 'void', + [param('uint32_t', 'minCw')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetMaxCw(uint32_t maxCw) [member function] + cls.add_method('SetMaxCw', + 'void', + [param('uint32_t', 'maxCw')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetAifsn(uint32_t aifsn) [member function] + cls.add_method('SetAifsn', + 'void', + [param('uint32_t', 'aifsn')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')]) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetMinCw() const [member function] + cls.add_method('GetMinCw', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetMaxCw() const [member function] + cls.add_method('GetMaxCw', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetAifsn() const [member function] + cls.add_method('GetAifsn', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): ns3::Time ns3::Txop::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyChannelSwitching() [member function] + cls.add_method('NotifyChannelSwitching', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifySleep() [member function] + cls.add_method('NotifySleep', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyOff() [member function] + cls.add_method('NotifyOff', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyWakeUp() [member function] + cls.add_method('NotifyWakeUp', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyOn() [member function] + cls.add_method('NotifyOn', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::Queue(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('Queue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SendCfFrame(ns3::WifiMacType frameType, ns3::Mac48Address addr) [member function] + cls.add_method('SendCfFrame', + 'void', + [param('ns3::WifiMacType', 'frameType'), param('ns3::Mac48Address', 'addr')]) + ## txop.h (module 'wifi'): void ns3::Txop::MissedCts() [member function] + cls.add_method('MissedCts', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotAck() [member function] + cls.add_method('GotAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedAck() [member function] + cls.add_method('MissedAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotCfEnd() [member function] + cls.add_method('GotCfEnd', + 'void', + []) + ## txop.h (module 'wifi'): void ns3::Txop::MissedCfPollResponse(bool expectedCfAck) [member function] + cls.add_method('MissedCfPollResponse', + 'void', + [param('bool', 'expectedCfAck')]) + ## txop.h (module 'wifi'): void ns3::Txop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] + cls.add_method('GotBlockAck', + 'void', + [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedBlockAck(uint8_t nMpdus) [member function] + cls.add_method('MissedBlockAck', + 'void', + [param('uint8_t', 'nMpdus')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::Cancel() [member function] + cls.add_method('Cancel', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartNextPacket() [member function] + cls.add_method('StartNextPacket', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::EndTxNoAck() [member function] + cls.add_method('EndTxNoAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::HasTxop() const [member function] + cls.add_method('HasTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::CanStartNextPolling() const [member function] + cls.add_method('CanStartNextPolling', + 'bool', + [], + is_const=True) + ## txop.h (module 'wifi'): int64_t ns3::Txop::AssignStreams(int64_t stream) [member function] + cls.add_method('AssignStreams', + 'int64_t', + [param('int64_t', 'stream')]) + ## txop.h (module 'wifi'): bool ns3::Txop::IsAccessRequested() const [member function] + cls.add_method('IsAccessRequested', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartBackoffNow(uint32_t nSlots) [member function] + cls.add_method('StartBackoffNow', + 'void', + [param('uint32_t', 'nSlots')]) + ## txop.h (module 'wifi'): ns3::Txop::Txop(ns3::Txop const & arg0) [constructor] + cls.add_constructor([param('ns3::Txop const &', 'arg0')]) + ## txop.h (module 'wifi'): void ns3::Txop::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyAccessRequested() [member function] + cls.add_method('NotifyAccessRequested', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyAccessGranted() [member function] + cls.add_method('NotifyAccessGranted', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyInternalCollision() [member function] + cls.add_method('NotifyInternalCollision', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyCollision() [member function] + cls.add_method('NotifyCollision', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::RestartAccessIfNeeded() [member function] + cls.add_method('RestartAccessIfNeeded', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartAccessIfNeeded() [member function] + cls.add_method('StartAccessIfNeeded', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetCw() const [member function] + cls.add_method('GetCw', + 'uint32_t', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::ResetCw() [member function] + cls.add_method('ResetCw', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::UpdateFailedCw() [member function] + cls.add_method('UpdateFailedCw', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetBackoffSlots() const [member function] + cls.add_method('GetBackoffSlots', + 'uint32_t', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): ns3::Time ns3::Txop::GetBackoffStart() const [member function] + cls.add_method('GetBackoffStart', + 'ns3::Time', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::UpdateBackoffSlotsNow(uint32_t nSlots, ns3::Time backoffUpdateBound) [member function] + cls.add_method('UpdateBackoffSlotsNow', + 'void', + [param('uint32_t', 'nSlots'), param('ns3::Time', 'backoffUpdateBound')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedRtsRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('NeedRtsRetransmission', + 'bool', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedDataRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('NeedDataRetransmission', + 'bool', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedFragmentation() const [member function] + cls.add_method('NeedFragmentation', + 'bool', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NextFragment() [member function] + cls.add_method('NextFragment', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetFragmentPacket', + 'ns3::Ptr< ns3::Packet >', + [param('ns3::WifiMacHeader *', 'hdr')], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetNextFragmentSize() const [member function] + cls.add_method('GetNextFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetFragmentSize() const [member function] + cls.add_method('GetFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetFragmentOffset() const [member function] + cls.add_method('GetFragmentOffset', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsLastFragment() const [member function] + cls.add_method('IsLastFragment', + 'bool', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::TxDroppedPacket(ns3::Ptr item) [member function] + cls.add_method('TxDroppedPacket', + 'void', + [param('ns3::Ptr< ns3::WifiMacQueueItem const >', 'item')], + visibility='protected') + return + def register_Ns3UniformRandomVariable_methods(root_module, cls): ## random-variable-stream.h (module 'core'): static ns3::TypeId ns3::UniformRandomVariable::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -7955,10 +8277,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, bool isDsss, 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::DcaTxop >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Txop >', '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', @@ -8017,6 +8339,11 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'uint8_t', [], is_const=True) + ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetRawDuration() const [member function] + cls.add_method('GetRawDuration', + 'uint16_t', + [], + is_const=True) ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetSequenceControl() const [member function] cls.add_method('GetSequenceControl', 'uint16_t', @@ -8052,6 +8379,11 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'char const *', [], is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::HasData() const [member function] + cls.add_method('HasData', + 'bool', + [], + is_const=True) ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAck() const [member function] cls.add_method('IsAck', 'bool', @@ -8092,8 +8424,23 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'bool', [], is_const=True) - ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfpoll() const [member function] - cls.add_method('IsCfpoll', + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfAck() const [member function] + cls.add_method('IsCfAck', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfEnd() const [member function] + cls.add_method('IsCfEnd', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfEndAck() const [member function] + cls.add_method('IsCfEndAck', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfPoll() const [member function] + cls.add_method('IsCfPoll', 'bool', [], is_const=True) @@ -8317,6 +8664,10 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): cls.add_method('SetQosTxopLimit', 'void', [param('uint8_t', 'txop')]) + ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRawDuration(uint16_t duration) [member function] + cls.add_method('SetRawDuration', + 'void', + [param('uint16_t', 'duration')]) ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRetry() [member function] cls.add_method('SetRetry', 'void', @@ -8325,10 +8676,10 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): cls.add_method('SetSequenceNumber', 'void', [param('uint16_t', 'seq')]) - ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type) [member function] + ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type, bool resetToDsFromDs=true) [member function] cls.add_method('SetType', 'void', - [param('ns3::WifiMacType', 'type')]) + [param('ns3::WifiMacType', 'type'), param('bool', 'resetToDsFromDs', default_value='true')]) return def register_Ns3WifiMacQueueItem_methods(root_module, cls): @@ -9722,6 +10073,11 @@ def register_Ns3WifiRemoteStationManager_methods(root_module, cls): 'bool', [], is_const=True) + ## wifi-remote-station-manager.h (module 'wifi'): bool ns3::WifiRemoteStationManager::HasPcfSupported() const [member function] + cls.add_method('HasPcfSupported', + 'bool', + [], + is_const=True) ## wifi-remote-station-manager.h (module 'wifi'): bool ns3::WifiRemoteStationManager::HasVhtSupported() const [member function] cls.add_method('HasVhtSupported', 'bool', @@ -9852,6 +10208,11 @@ def register_Ns3WifiRemoteStationManager_methods(root_module, cls): cls.add_method('SetMaxSsrc', 'void', [param('uint32_t', 'maxSsrc')]) + ## wifi-remote-station-manager.h (module 'wifi'): void ns3::WifiRemoteStationManager::SetPcfSupported(bool enable) [member function] + cls.add_method('SetPcfSupported', + 'void', + [param('bool', 'enable')], + is_virtual=True) ## wifi-remote-station-manager.h (module 'wifi'): void ns3::WifiRemoteStationManager::SetQosSupport(ns3::Mac48Address from, bool qosSupported) [member function] cls.add_method('SetQosSupport', 'void', @@ -10889,6 +11250,124 @@ def register_Ns3Channel_methods(root_module, cls): is_static=True) return +def register_Ns3ChannelAccessManager_methods(root_module, cls): + ## channel-access-manager.h (module 'wifi'): ns3::ChannelAccessManager::ChannelAccessManager(ns3::ChannelAccessManager const & arg0) [constructor] + cls.add_constructor([param('ns3::ChannelAccessManager const &', 'arg0')]) + ## channel-access-manager.h (module 'wifi'): ns3::ChannelAccessManager::ChannelAccessManager() [constructor] + cls.add_constructor([]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::Add(ns3::Ptr dcf) [member function] + cls.add_method('Add', + 'void', + [param('ns3::Ptr< ns3::Txop >', 'dcf')]) + ## channel-access-manager.h (module 'wifi'): ns3::Time ns3::ChannelAccessManager::GetEifsNoDifs() const [member function] + cls.add_method('GetEifsNoDifs', + 'ns3::Time', + [], + is_const=True) + ## channel-access-manager.h (module 'wifi'): bool ns3::ChannelAccessManager::IsBusy() const [member function] + cls.add_method('IsBusy', + 'bool', + [], + is_const=True) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyAckTimeoutResetNow() [member function] + cls.add_method('NotifyAckTimeoutResetNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyAckTimeoutStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyAckTimeoutStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyCtsTimeoutResetNow() [member function] + cls.add_method('NotifyCtsTimeoutResetNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyCtsTimeoutStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyCtsTimeoutStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyMaybeCcaBusyStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyMaybeCcaBusyStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyNavResetNow(ns3::Time duration) [member function] + cls.add_method('NotifyNavResetNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyNavStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyNavStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyOffNow() [member function] + cls.add_method('NotifyOffNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyOnNow() [member function] + cls.add_method('NotifyOnNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyRxEndErrorNow() [member function] + cls.add_method('NotifyRxEndErrorNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyRxEndOkNow() [member function] + cls.add_method('NotifyRxEndOkNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyRxStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyRxStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifySleepNow() [member function] + cls.add_method('NotifySleepNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifySwitchingStartNow(ns3::Time duration) [member function] + cls.add_method('NotifySwitchingStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyTxStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyTxStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyWakeupNow() [member function] + cls.add_method('NotifyWakeupNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::RemovePhyListener(ns3::Ptr phy) [member function] + cls.add_method('RemovePhyListener', + 'void', + [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::RequestAccess(ns3::Ptr state, bool isCfPeriod=false) [member function] + cls.add_method('RequestAccess', + 'void', + [param('ns3::Ptr< ns3::Txop >', 'state'), param('bool', 'isCfPeriod', default_value='false')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetEifsNoDifs(ns3::Time eifsNoDifs) [member function] + cls.add_method('SetEifsNoDifs', + 'void', + [param('ns3::Time', 'eifsNoDifs')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetSifs(ns3::Time sifs) [member function] + cls.add_method('SetSifs', + 'void', + [param('ns3::Time', 'sifs')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetSlot(ns3::Time slotTime) [member function] + cls.add_method('SetSlot', + 'void', + [param('ns3::Time', 'slotTime')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetupLow(ns3::Ptr low) [member function] + cls.add_method('SetupLow', + 'void', + [param('ns3::Ptr< ns3::MacLow >', 'low')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetupPhyListener(ns3::Ptr phy) [member function] + cls.add_method('SetupPhyListener', + 'void', + [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + return + def register_Ns3ChannelCoordinationListener_methods(root_module, cls): ## channel-coordinator.h (module 'wave'): ns3::ChannelCoordinationListener::ChannelCoordinationListener() [constructor] cls.add_constructor([]) @@ -11277,424 +11756,6 @@ def register_Ns3DataRateValue_methods(root_module, cls): [param('ns3::DataRate const &', 'value')]) return -def register_Ns3DcaTxop_methods(root_module, cls): - ## dca-txop.h (module 'wifi'): ns3::DcaTxop::DcaTxop() [constructor] - cls.add_constructor([]) - ## dca-txop.h (module 'wifi'): static ns3::TypeId ns3::DcaTxop::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsEdca() [member function] - cls.add_method('IsEdca', - 'bool', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMacLow(ns3::Ptr const low) [member function] - cls.add_method('SetMacLow', - 'void', - [param('ns3::Ptr< ns3::MacLow > const', 'low')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetDcfManager(ns3::Ptr const manager) [member function] - cls.add_method('SetDcfManager', - 'void', - [param('ns3::Ptr< ns3::DcfManager > const', 'manager')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxMiddle(ns3::Ptr const txMiddle) [member function] - cls.add_method('SetTxMiddle', - 'void', - [param('ns3::Ptr< ns3::MacTxMiddle > const', 'txMiddle')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxOkCallback(ns3::DcaTxop::TxOk callback) [member function] - cls.add_method('SetTxOkCallback', - 'void', - [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxFailedCallback(ns3::DcaTxop::TxFailed callback) [member function] - cls.add_method('SetTxFailedCallback', - 'void', - [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxDroppedCallback(ns3::DcaTxop::TxDropped callback) [member function] - cls.add_method('SetTxDroppedCallback', - 'void', - [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetLow() const [member function] - cls.add_method('GetLow', - 'ns3::Ptr< ns3::MacLow >', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetWifiMacQueue() const [member function] - cls.add_method('GetWifiMacQueue', - 'ns3::Ptr< ns3::WifiMacQueue >', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMinCw(uint32_t minCw) [member function] - cls.add_method('SetMinCw', - 'void', - [param('uint32_t', 'minCw')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMaxCw(uint32_t maxCw) [member function] - cls.add_method('SetMaxCw', - 'void', - [param('uint32_t', 'maxCw')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetAifsn(uint32_t aifsn) [member function] - cls.add_method('SetAifsn', - 'void', - [param('uint32_t', 'aifsn')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxopLimit(ns3::Time txopLimit) [member function] - cls.add_method('SetTxopLimit', - 'void', - [param('ns3::Time', 'txopLimit')]) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMinCw() const [member function] - cls.add_method('GetMinCw', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMaxCw() const [member function] - cls.add_method('GetMaxCw', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetAifsn() const [member function] - cls.add_method('GetAifsn', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetTxopLimit() const [member function] - cls.add_method('GetTxopLimit', - 'ns3::Time', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyChannelSwitching() [member function] - cls.add_method('NotifyChannelSwitching', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifySleep() [member function] - cls.add_method('NotifySleep', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyOff() [member function] - cls.add_method('NotifyOff', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyWakeUp() [member function] - cls.add_method('NotifyWakeUp', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyOn() [member function] - cls.add_method('NotifyOn', - 'void', - [], - 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', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedCts() [member function] - cls.add_method('MissedCts', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::GotAck() [member function] - cls.add_method('GotAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedAck() [member function] - cls.add_method('MissedAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] - cls.add_method('GotBlockAck', - 'void', - [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedBlockAck(uint8_t nMpdus) [member function] - cls.add_method('MissedBlockAck', - 'void', - [param('uint8_t', 'nMpdus')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartNextFragment() [member function] - cls.add_method('StartNextFragment', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::Cancel() [member function] - cls.add_method('Cancel', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartNextPacket() [member function] - cls.add_method('StartNextPacket', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::EndTxNoAck() [member function] - cls.add_method('EndTxNoAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::HasTxop() const [member function] - cls.add_method('HasTxop', - 'bool', - [], - is_const=True, is_virtual=True) - ## dca-txop.h (module 'wifi'): int64_t ns3::DcaTxop::AssignStreams(int64_t stream) [member function] - cls.add_method('AssignStreams', - 'int64_t', - [param('int64_t', 'stream')]) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsAccessRequested() const [member function] - cls.add_method('IsAccessRequested', - 'bool', - [], - is_const=True, is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartBackoffNow(uint32_t nSlots) [member function] - cls.add_method('StartBackoffNow', - 'void', - [param('uint32_t', 'nSlots')]) - ## dca-txop.h (module 'wifi'): ns3::DcaTxop::DcaTxop(ns3::DcaTxop const & arg0) [constructor] - cls.add_constructor([param('ns3::DcaTxop const &', 'arg0')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyAccessRequested() [member function] - cls.add_method('NotifyAccessRequested', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyAccessGranted() [member function] - cls.add_method('NotifyAccessGranted', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyInternalCollision() [member function] - cls.add_method('NotifyInternalCollision', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyCollision() [member function] - cls.add_method('NotifyCollision', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::RestartAccessIfNeeded() [member function] - cls.add_method('RestartAccessIfNeeded', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartAccessIfNeeded() [member function] - cls.add_method('StartAccessIfNeeded', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetCw() const [member function] - cls.add_method('GetCw', - 'uint32_t', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::ResetCw() [member function] - cls.add_method('ResetCw', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::UpdateFailedCw() [member function] - cls.add_method('UpdateFailedCw', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetBackoffSlots() const [member function] - cls.add_method('GetBackoffSlots', - 'uint32_t', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetBackoffStart() const [member function] - cls.add_method('GetBackoffStart', - 'ns3::Time', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::UpdateBackoffSlotsNow(uint32_t nSlots, ns3::Time backoffUpdateBound) [member function] - cls.add_method('UpdateBackoffSlotsNow', - 'void', - [param('uint32_t', 'nSlots'), param('ns3::Time', 'backoffUpdateBound')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedRtsRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('NeedRtsRetransmission', - 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedDataRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('NeedDataRetransmission', - 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedFragmentation() const [member function] - cls.add_method('NeedFragmentation', - 'bool', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NextFragment() [member function] - cls.add_method('NextFragment', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetFragmentPacket', - 'ns3::Ptr< ns3::Packet >', - [param('ns3::WifiMacHeader *', 'hdr')], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetNextFragmentSize() const [member function] - cls.add_method('GetNextFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetFragmentSize() const [member function] - cls.add_method('GetFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetFragmentOffset() const [member function] - cls.add_method('GetFragmentOffset', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsLastFragment() const [member function] - cls.add_method('IsLastFragment', - 'bool', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::TxDroppedPacket(ns3::Ptr item) [member function] - cls.add_method('TxDroppedPacket', - 'void', - [param('ns3::Ptr< ns3::WifiMacQueueItem const >', 'item')], - visibility='protected') - return - -def register_Ns3DcfManager_methods(root_module, cls): - ## dcf-manager.h (module 'wifi'): ns3::DcfManager::DcfManager(ns3::DcfManager const & arg0) [constructor] - cls.add_constructor([param('ns3::DcfManager const &', 'arg0')]) - ## dcf-manager.h (module 'wifi'): ns3::DcfManager::DcfManager() [constructor] - cls.add_constructor([]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::Add(ns3::Ptr dcf) [member function] - cls.add_method('Add', - 'void', - [param('ns3::Ptr< ns3::DcaTxop >', 'dcf')]) - ## dcf-manager.h (module 'wifi'): ns3::Time ns3::DcfManager::GetEifsNoDifs() const [member function] - cls.add_method('GetEifsNoDifs', - 'ns3::Time', - [], - is_const=True) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyAckTimeoutResetNow() [member function] - cls.add_method('NotifyAckTimeoutResetNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyAckTimeoutStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyAckTimeoutStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyCtsTimeoutResetNow() [member function] - cls.add_method('NotifyCtsTimeoutResetNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyCtsTimeoutStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyCtsTimeoutStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyMaybeCcaBusyStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyMaybeCcaBusyStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyNavResetNow(ns3::Time duration) [member function] - cls.add_method('NotifyNavResetNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyNavStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyNavStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyOffNow() [member function] - cls.add_method('NotifyOffNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyOnNow() [member function] - cls.add_method('NotifyOnNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyRxEndErrorNow() [member function] - cls.add_method('NotifyRxEndErrorNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyRxEndOkNow() [member function] - cls.add_method('NotifyRxEndOkNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyRxStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyRxStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifySleepNow() [member function] - cls.add_method('NotifySleepNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifySwitchingStartNow(ns3::Time duration) [member function] - cls.add_method('NotifySwitchingStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyTxStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyTxStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyWakeupNow() [member function] - cls.add_method('NotifyWakeupNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::RemovePhyListener(ns3::Ptr phy) [member function] - cls.add_method('RemovePhyListener', - 'void', - [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::RequestAccess(ns3::Ptr state) [member function] - cls.add_method('RequestAccess', - 'void', - [param('ns3::Ptr< ns3::DcaTxop >', 'state')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetEifsNoDifs(ns3::Time eifsNoDifs) [member function] - cls.add_method('SetEifsNoDifs', - 'void', - [param('ns3::Time', 'eifsNoDifs')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetSifs(ns3::Time sifs) [member function] - cls.add_method('SetSifs', - 'void', - [param('ns3::Time', 'sifs')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetSlot(ns3::Time slotTime) [member function] - cls.add_method('SetSlot', - 'void', - [param('ns3::Time', 'slotTime')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetupLow(ns3::Ptr low) [member function] - cls.add_method('SetupLow', - 'void', - [param('ns3::Ptr< ns3::MacLow >', 'low')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetupPhyListener(ns3::Ptr phy) [member function] - cls.add_method('SetupPhyListener', - 'void', - [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='protected', is_virtual=True) - return - def register_Ns3DefaultChannelScheduler_methods(root_module, cls): ## default-channel-scheduler.h (module 'wave'): ns3::DefaultChannelScheduler::DefaultChannelScheduler(ns3::DefaultChannelScheduler const & arg0) [constructor] cls.add_constructor([param('ns3::DefaultChannelScheduler const &', 'arg0')]) @@ -11821,257 +11882,6 @@ def register_Ns3DoubleValue_methods(root_module, cls): [param('double 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) - ## edca-txop-n.h (module 'wifi'): static ns3::TypeId ns3::EdcaTxopN::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::EdcaTxopN() [constructor] - cls.add_constructor([]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::IsEdca() [member function] - cls.add_method('IsEdca', - 'bool', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetTypeOfStation(ns3::TypeOfStation type) [member function] - cls.add_method('SetTypeOfStation', - 'void', - [param('ns3::TypeOfStation', 'type')]) - ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation ns3::EdcaTxopN::GetTypeOfStation() const [member function] - cls.add_method('GetTypeOfStation', - 'ns3::TypeOfStation', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetMsduAggregator() const [member function] - cls.add_method('GetMsduAggregator', - 'ns3::Ptr< ns3::MsduAggregator >', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetMpduAggregator() const [member function] - cls.add_method('GetMpduAggregator', - 'ns3::Ptr< ns3::MpduAggregator >', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::GetBaAgreementExists(ns3::Mac48Address address, uint8_t tid) const [member function] - cls.add_method('GetBaAgreementExists', - 'bool', - [param('ns3::Mac48Address', 'address'), param('uint8_t', 'tid')], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteAmpduTransfer(ns3::Mac48Address recipient, uint8_t tid) [member function] - cls.add_method('CompleteAmpduTransfer', - 'void', - [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyAccessGranted() [member function] - cls.add_method('NotifyAccessGranted', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyInternalCollision() [member function] - cls.add_method('NotifyInternalCollision', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyCollision() [member function] - cls.add_method('NotifyCollision', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedCts() [member function] - cls.add_method('MissedCts', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotAck() [member function] - cls.add_method('GotAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] - cls.add_method('GotBlockAck', - 'void', - [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedBlockAck(uint8_t nMpdus) [member function] - cls.add_method('MissedBlockAck', - 'void', - [param('uint8_t', 'nMpdus')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotAddBaResponse(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address recipient) [member function] - cls.add_method('GotAddBaResponse', - 'void', - [param('ns3::MgtAddBaResponseHeader const *', 'respHdr'), param('ns3::Mac48Address', 'recipient')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotDelBaFrame(ns3::MgtDelBaHeader const * delBaHdr, ns3::Mac48Address recipient) [member function] - cls.add_method('GotDelBaFrame', - 'void', - [param('ns3::MgtDelBaHeader const *', 'delBaHdr'), param('ns3::Mac48Address', 'recipient')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedAck() [member function] - cls.add_method('MissedAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNextPacket() [member function] - cls.add_method('StartNextPacket', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::EndTxNoAck() [member function] - cls.add_method('EndTxNoAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::RestartAccessIfNeeded() [member function] - cls.add_method('RestartAccessIfNeeded', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartAccessIfNeeded() [member function] - cls.add_method('StartAccessIfNeeded', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::NeedBarRetransmission() [member function] - cls.add_method('NeedBarRetransmission', - 'bool', - []) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::NeedFragmentation() const [member function] - cls.add_method('NeedFragmentation', - 'bool', - [], - is_const=True, is_virtual=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetFragmentPacket', - 'ns3::Ptr< ns3::Packet >', - [param('ns3::WifiMacHeader *', 'hdr')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetAccessCategory(ns3::AcIndex ac) [member function] - cls.add_method('SetAccessCategory', - 'void', - [param('ns3::AcIndex', 'ac')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetMsduAggregator(ns3::Ptr const aggr) [member function] - cls.add_method('SetMsduAggregator', - 'void', - [param('ns3::Ptr< ns3::MsduAggregator > const', 'aggr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetMpduAggregator(ns3::Ptr const aggr) [member function] - cls.add_method('SetMpduAggregator', - 'void', - [param('ns3::Ptr< ns3::MpduAggregator > const', 'aggr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::PushFront(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('PushFront', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteConfig() [member function] - cls.add_method('CompleteConfig', - 'void', - []) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetBlockAckThreshold(uint8_t threshold) [member function] - cls.add_method('SetBlockAckThreshold', - 'void', - [param('uint8_t', 'threshold')]) - ## edca-txop-n.h (module 'wifi'): uint8_t ns3::EdcaTxopN::GetBlockAckThreshold() const [member function] - cls.add_method('GetBlockAckThreshold', - 'uint8_t', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetBlockAckInactivityTimeout(uint16_t timeout) [member function] - cls.add_method('SetBlockAckInactivityTimeout', - 'void', - [param('uint16_t', 'timeout')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SendDelbaFrame(ns3::Mac48Address addr, uint8_t tid, bool byOriginator) [member function] - cls.add_method('SendDelbaFrame', - 'void', - [param('ns3::Mac48Address', 'addr'), param('uint8_t', 'tid'), param('bool', 'byOriginator')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteMpduTx(ns3::Ptr packet, ns3::WifiMacHeader hdr, ns3::Time tstamp) [member function] - cls.add_method('CompleteMpduTx', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader', 'hdr'), param('ns3::Time', 'tstamp')]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::GetAmpduExist(ns3::Mac48Address dest) const [member function] - cls.add_method('GetAmpduExist', - 'bool', - [param('ns3::Mac48Address', 'dest')], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetAmpduExist(ns3::Mac48Address dest, bool enableAmpdu) [member function] - cls.add_method('SetAmpduExist', - 'void', - [param('ns3::Mac48Address', 'dest'), param('bool', 'enableAmpdu')]) - ## edca-txop-n.h (module 'wifi'): uint16_t ns3::EdcaTxopN::GetNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetNextSequenceNumberFor', - 'uint16_t', - [param('ns3::WifiMacHeader *', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): uint16_t ns3::EdcaTxopN::PeekNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('PeekNextSequenceNumberFor', - 'uint16_t', - [param('ns3::WifiMacHeader *', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::RemoveRetransmitPacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] - cls.add_method('RemoveRetransmitPacket', - 'void', - [param('uint8_t', 'tid'), param('ns3::Mac48Address', 'recipient'), param('uint16_t', 'seqnumber')]) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::PeekNextRetransmitPacket(ns3::WifiMacHeader & header, uint8_t tid, ns3::Time * timestamp) [member function] - cls.add_method('PeekNextRetransmitPacket', - 'ns3::Ptr< ns3::Packet const >', - [param('ns3::WifiMacHeader &', 'header'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::BaTxOk(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('BaTxOk', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::BaTxFailed(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('BaTxFailed', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::Mac48Address ns3::EdcaTxopN::MapSrcAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('MapSrcAddressForAggregation', - 'ns3::Mac48Address', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::Mac48Address ns3::EdcaTxopN::MapDestAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('MapDestAddressForAggregation', - 'ns3::Mac48Address', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::EdcaTxopN(ns3::EdcaTxopN const & arg0) [constructor] - cls.add_constructor([param('ns3::EdcaTxopN const &', 'arg0')]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::HasTxop() const [member function] - cls.add_method('HasTxop', - 'bool', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetNextFragmentSize() const [member function] - cls.add_method('GetNextFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetFragmentSize() const [member function] - cls.add_method('GetFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetFragmentOffset() const [member function] - cls.add_method('GetFragmentOffset', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::IsLastFragment() const [member function] - cls.add_method('IsLastFragment', - 'bool', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='private', is_virtual=True) - return - def register_Ns3EmpiricalRandomVariable_methods(root_module, cls): ## random-variable-stream.h (module 'core'): ns3::EmpiricalRandomVariable::EmpiricalRandomVariable() [constructor] cls.add_constructor([]) @@ -13829,6 +13639,11 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::Time', [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters const &', 'parameters')], is_const=True) + ## mac-low.h (module 'wifi'): bool ns3::MacLow::CanTransmitNextCfFrame() const [member function] + cls.add_method('CanTransmitNextCfFrame', + 'bool', + [], + is_const=True) ## mac-low.h (module 'wifi'): void ns3::MacLow::CreateBlockAckAgreement(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address originator, uint16_t startingSeq) [member function] cls.add_method('CreateBlockAckAgreement', 'void', @@ -13841,6 +13656,10 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('DestroyBlockAckAgreement', 'void', [param('ns3::Mac48Address', 'originator'), param('uint8_t', 'tid')]) + ## mac-low.h (module 'wifi'): bool ns3::MacLow::DoNavStartNow(ns3::Time duration) [member function] + cls.add_method('DoNavStartNow', + 'bool', + [param('ns3::Time', 'duration')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::FlushAggregateQueue(uint8_t tid) [member function] cls.add_method('FlushAggregateQueue', 'void', @@ -13860,11 +13679,21 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::Time', [], is_const=True) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetBeaconInterval() const [member function] + cls.add_method('GetBeaconInterval', + 'ns3::Time', + [], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Mac48Address ns3::MacLow::GetBssid() const [member function] cls.add_method('GetBssid', 'ns3::Mac48Address', [], is_const=True) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetCfpMaxDuration() const [member function] + cls.add_method('GetCfpMaxDuration', + 'ns3::Time', + [], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetCompressedBlockAckTimeout() const [member function] cls.add_method('GetCompressedBlockAckTimeout', 'ns3::Time', @@ -13895,6 +13724,11 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::Time', [], is_const=True) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetRemainingCfpDuration() const [member function] + cls.add_method('GetRemainingCfpDuration', + 'ns3::Time', + [], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetRifs() const [member function] cls.add_method('GetRifs', 'ns3::Time', @@ -13915,6 +13749,11 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## mac-low.h (module 'wifi'): bool ns3::MacLow::IsCfPeriod() const [member function] + cls.add_method('IsCfPeriod', + 'bool', + [], + is_const=True, is_virtual=True) ## mac-low.h (module 'wifi'): bool ns3::MacLow::IsPromisc() const [member function] cls.add_method('IsPromisc', 'bool', @@ -13940,14 +13779,14 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('ReceiveOk', 'void', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxSnr'), param('ns3::WifiTxVector', 'txVector'), param('bool', 'ampduSubframe')]) - ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterDcf(ns3::Ptr dcf) [member function] + ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterDcf(ns3::Ptr dcf) [member function] cls.add_method('RegisterDcf', 'void', - [param('ns3::Ptr< ns3::DcfManager >', 'dcf')]) - ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterEdcaForAc(ns3::AcIndex ac, ns3::Ptr edca) [member function] + [param('ns3::Ptr< ns3::ChannelAccessManager >', 'dcf')]) + ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterEdcaForAc(ns3::AcIndex ac, ns3::Ptr edca) [member function] cls.add_method('RegisterEdcaForAc', 'void', - [param('ns3::AcIndex', 'ac'), param('ns3::Ptr< ns3::EdcaTxopN >', 'edca')]) + [param('ns3::AcIndex', 'ac'), param('ns3::Ptr< ns3::QosTxop >', 'edca')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::ResetPhy() [member function] cls.add_method('ResetPhy', 'void', @@ -13964,10 +13803,18 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('SetBasicBlockAckTimeout', 'void', [param('ns3::Time', 'blockAckTimeout')]) + ## mac-low.h (module 'wifi'): void ns3::MacLow::SetBeaconInterval(ns3::Time interval) [member function] + cls.add_method('SetBeaconInterval', + 'void', + [param('ns3::Time', 'interval')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::SetBssid(ns3::Mac48Address ad) [member function] cls.add_method('SetBssid', 'void', [param('ns3::Mac48Address', 'ad')]) + ## mac-low.h (module 'wifi'): void ns3::MacLow::SetCfpMaxDuration(ns3::Time duration) [member function] + cls.add_method('SetCfpMaxDuration', + 'void', + [param('ns3::Time', 'duration')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::SetCompressedBlockAckTimeout(ns3::Time blockAckTimeout) [member function] cls.add_method('SetCompressedBlockAckTimeout', 'void', @@ -14012,15 +13859,15 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('SetWifiRemoteStationManager', 'void', [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'manager')]) - ## mac-low.h (module 'wifi'): void ns3::MacLow::StartTransmission(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters parameters, ns3::Ptr dca) [member function] + ## mac-low.h (module 'wifi'): void ns3::MacLow::StartTransmission(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters parameters, ns3::Ptr txop) [member function] cls.add_method('StartTransmission', 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters', 'parameters'), param('ns3::Ptr< ns3::DcaTxop >', 'dca')], + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters', 'parameters'), param('ns3::Ptr< ns3::Txop >', 'txop')], is_virtual=True) - ## mac-low.h (module 'wifi'): bool ns3::MacLow::StopMpduAggregation(ns3::Ptr peekedPacket, ns3::WifiMacHeader peekedHdr, ns3::Ptr aggregatedPacket, uint16_t size) const [member function] + ## mac-low.h (module 'wifi'): bool ns3::MacLow::StopMpduAggregation(ns3::Ptr peekedPacket, ns3::WifiMacHeader peekedHdr, ns3::Ptr aggregatedPacket, uint8_t blockAckSize) const [member function] cls.add_method('StopMpduAggregation', 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'peekedPacket'), param('ns3::WifiMacHeader', 'peekedHdr'), param('ns3::Ptr< ns3::Packet >', 'aggregatedPacket'), param('uint16_t', 'size')], + [param('ns3::Ptr< ns3::Packet const >', 'peekedPacket'), param('ns3::WifiMacHeader', 'peekedHdr'), param('ns3::Ptr< ns3::Packet >', 'aggregatedPacket'), param('uint8_t', 'blockAckSize')], is_const=True) ## mac-low.h (module 'wifi'): void ns3::MacLow::DoDispose() [member function] cls.add_method('DoDispose', @@ -14783,6 +14630,257 @@ def register_Ns3PointerValue_methods(root_module, cls): [param('ns3::Ptr< ns3::Object >', 'object')]) return +def register_Ns3QosTxop_methods(root_module, cls): + ## qos-txop.h (module 'wifi'): ns3::QosTxop::m_aMpduEnabled [variable] + cls.add_instance_attribute('m_aMpduEnabled', 'std::map< ns3::Mac48Address, bool >', is_const=False) + ## qos-txop.h (module 'wifi'): static ns3::TypeId ns3::QosTxop::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## qos-txop.h (module 'wifi'): ns3::QosTxop::QosTxop() [constructor] + cls.add_constructor([]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::IsQosTxop() const [member function] + cls.add_method('IsQosTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetTypeOfStation(ns3::TypeOfStation type) [member function] + cls.add_method('SetTypeOfStation', + 'void', + [param('ns3::TypeOfStation', 'type')]) + ## qos-txop.h (module 'wifi'): ns3::TypeOfStation ns3::QosTxop::GetTypeOfStation() const [member function] + cls.add_method('GetTypeOfStation', + 'ns3::TypeOfStation', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetMsduAggregator() const [member function] + cls.add_method('GetMsduAggregator', + 'ns3::Ptr< ns3::MsduAggregator >', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetMpduAggregator() const [member function] + cls.add_method('GetMpduAggregator', + 'ns3::Ptr< ns3::MpduAggregator >', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::GetBaAgreementExists(ns3::Mac48Address address, uint8_t tid) const [member function] + cls.add_method('GetBaAgreementExists', + 'bool', + [param('ns3::Mac48Address', 'address'), param('uint8_t', 'tid')], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteAmpduTransfer(ns3::Mac48Address recipient, uint8_t tid) [member function] + cls.add_method('CompleteAmpduTransfer', + 'void', + [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyAccessGranted() [member function] + cls.add_method('NotifyAccessGranted', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyInternalCollision() [member function] + cls.add_method('NotifyInternalCollision', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyCollision() [member function] + cls.add_method('NotifyCollision', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedCts() [member function] + cls.add_method('MissedCts', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotAck() [member function] + cls.add_method('GotAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] + cls.add_method('GotBlockAck', + 'void', + [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedBlockAck(uint8_t nMpdus) [member function] + cls.add_method('MissedBlockAck', + 'void', + [param('uint8_t', 'nMpdus')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotAddBaResponse(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address recipient) [member function] + cls.add_method('GotAddBaResponse', + 'void', + [param('ns3::MgtAddBaResponseHeader const *', 'respHdr'), param('ns3::Mac48Address', 'recipient')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotDelBaFrame(ns3::MgtDelBaHeader const * delBaHdr, ns3::Mac48Address recipient) [member function] + cls.add_method('GotDelBaFrame', + 'void', + [param('ns3::MgtDelBaHeader const *', 'delBaHdr'), param('ns3::Mac48Address', 'recipient')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedAck() [member function] + cls.add_method('MissedAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::StartNextPacket() [member function] + cls.add_method('StartNextPacket', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::EndTxNoAck() [member function] + cls.add_method('EndTxNoAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::RestartAccessIfNeeded() [member function] + cls.add_method('RestartAccessIfNeeded', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::StartAccessIfNeeded() [member function] + cls.add_method('StartAccessIfNeeded', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::NeedBarRetransmission() [member function] + cls.add_method('NeedBarRetransmission', + 'bool', + []) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::NeedFragmentation() const [member function] + cls.add_method('NeedFragmentation', + 'bool', + [], + is_const=True, is_virtual=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetFragmentPacket', + 'ns3::Ptr< ns3::Packet >', + [param('ns3::WifiMacHeader *', 'hdr')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetAccessCategory(ns3::AcIndex ac) [member function] + cls.add_method('SetAccessCategory', + 'void', + [param('ns3::AcIndex', 'ac')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetMsduAggregator(ns3::Ptr const aggr) [member function] + cls.add_method('SetMsduAggregator', + 'void', + [param('ns3::Ptr< ns3::MsduAggregator > const', 'aggr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetMpduAggregator(ns3::Ptr const aggr) [member function] + cls.add_method('SetMpduAggregator', + 'void', + [param('ns3::Ptr< ns3::MpduAggregator > const', 'aggr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::PushFront(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('PushFront', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteConfig() [member function] + cls.add_method('CompleteConfig', + 'void', + []) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetBlockAckThreshold(uint8_t threshold) [member function] + cls.add_method('SetBlockAckThreshold', + 'void', + [param('uint8_t', 'threshold')]) + ## qos-txop.h (module 'wifi'): uint8_t ns3::QosTxop::GetBlockAckThreshold() const [member function] + cls.add_method('GetBlockAckThreshold', + 'uint8_t', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetBlockAckInactivityTimeout(uint16_t timeout) [member function] + cls.add_method('SetBlockAckInactivityTimeout', + 'void', + [param('uint16_t', 'timeout')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SendDelbaFrame(ns3::Mac48Address addr, uint8_t tid, bool byOriginator) [member function] + cls.add_method('SendDelbaFrame', + 'void', + [param('ns3::Mac48Address', 'addr'), param('uint8_t', 'tid'), param('bool', 'byOriginator')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteMpduTx(ns3::Ptr packet, ns3::WifiMacHeader hdr, ns3::Time tstamp) [member function] + cls.add_method('CompleteMpduTx', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader', 'hdr'), param('ns3::Time', 'tstamp')]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::GetAmpduExist(ns3::Mac48Address dest) const [member function] + cls.add_method('GetAmpduExist', + 'bool', + [param('ns3::Mac48Address', 'dest')], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetAmpduExist(ns3::Mac48Address dest, bool enableAmpdu) [member function] + cls.add_method('SetAmpduExist', + 'void', + [param('ns3::Mac48Address', 'dest'), param('bool', 'enableAmpdu')]) + ## qos-txop.h (module 'wifi'): uint16_t ns3::QosTxop::GetNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetNextSequenceNumberFor', + 'uint16_t', + [param('ns3::WifiMacHeader *', 'hdr')]) + ## qos-txop.h (module 'wifi'): uint16_t ns3::QosTxop::PeekNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('PeekNextSequenceNumberFor', + 'uint16_t', + [param('ns3::WifiMacHeader *', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::RemoveRetransmitPacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] + cls.add_method('RemoveRetransmitPacket', + 'void', + [param('uint8_t', 'tid'), param('ns3::Mac48Address', 'recipient'), param('uint16_t', 'seqnumber')]) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::PeekNextRetransmitPacket(ns3::WifiMacHeader & header, uint8_t tid, ns3::Time * timestamp) [member function] + cls.add_method('PeekNextRetransmitPacket', + 'ns3::Ptr< ns3::Packet const >', + [param('ns3::WifiMacHeader &', 'header'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::BaTxOk(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('BaTxOk', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::BaTxFailed(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('BaTxFailed', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::Mac48Address ns3::QosTxop::MapSrcAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('MapSrcAddressForAggregation', + 'ns3::Mac48Address', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::Mac48Address ns3::QosTxop::MapDestAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('MapDestAddressForAggregation', + 'ns3::Mac48Address', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::QosTxop::QosTxop(ns3::QosTxop const & arg0) [constructor] + cls.add_constructor([param('ns3::QosTxop const &', 'arg0')]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::HasTxop() const [member function] + cls.add_method('HasTxop', + 'bool', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetNextFragmentSize() const [member function] + cls.add_method('GetNextFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetFragmentSize() const [member function] + cls.add_method('GetFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetFragmentOffset() const [member function] + cls.add_method('GetFragmentOffset', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::IsLastFragment() const [member function] + cls.add_method('IsLastFragment', + 'bool', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='private', is_virtual=True) + return + def register_Ns3Queue__Ns3WifiMacQueueItem_methods(root_module, cls): ## queue.h (module 'network'): static ns3::TypeId ns3::Queue::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -15139,29 +15237,29 @@ def register_Ns3RegularWifiMac_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetDcaTxop() const [member function] - cls.add_method('GetDcaTxop', - 'ns3::Ptr< ns3::DcaTxop >', + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetTxop() const [member function] + cls.add_method('GetTxop', + 'ns3::Ptr< ns3::Txop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVOQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVOQueue() const [member function] cls.add_method('GetVOQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVIQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVIQueue() const [member function] cls.add_method('GetVIQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBEQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBEQueue() const [member function] cls.add_method('GetBEQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBKQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBKQueue() const [member function] cls.add_method('GetBKQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') ## regular-wifi-mac.h (module 'wifi'): void ns3::RegularWifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] @@ -15213,7 +15311,7 @@ def register_Ns3RegularWifiMac_methods(root_module, cls): cls.add_method('SetQosSupported', 'void', [param('bool', 'enable')], - visibility='protected') + visibility='protected', is_virtual=True) ## regular-wifi-mac.h (module 'wifi'): bool ns3::RegularWifiMac::GetQosSupported() const [member function] cls.add_method('GetQosSupported', 'bool', @@ -15556,10 +15654,10 @@ def register_Ns3WaveMacLow_methods(root_module, cls): cls.add_method('SetWaveNetDevice', 'void', [param('ns3::Ptr< ns3::WaveNetDevice >', 'device')]) - ## wave-mac-low.h (module 'wave'): void ns3::WaveMacLow::StartTransmission(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters parameters, ns3::Ptr dca) [member function] + ## wave-mac-low.h (module 'wave'): void ns3::WaveMacLow::StartTransmission(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters parameters, ns3::Ptr txop) [member function] cls.add_method('StartTransmission', 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters', 'parameters'), param('ns3::Ptr< ns3::DcaTxop >', 'dca')], + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters', 'parameters'), param('ns3::Ptr< ns3::Txop >', 'txop')], is_virtual=True) ## wave-mac-low.h (module 'wave'): ns3::WifiTxVector ns3::WaveMacLow::GetDataTxVector(ns3::Ptr packet, ns3::WifiMacHeader const * hdr) const [member function] cls.add_method('GetDataTxVector', @@ -15845,6 +15943,10 @@ def register_Ns3WifiMacQueue_methods(root_module, cls): 'ns3::Ptr< ns3::WifiMacQueueItem >', [], is_virtual=True) + ## wifi-mac-queue.h (module 'wifi'): ns3::Ptr ns3::WifiMacQueue::DequeueByAddress(ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] + cls.add_method('DequeueByAddress', + 'ns3::Ptr< ns3::WifiMacQueueItem >', + [param('ns3::WifiMacHeader::AddressType', 'type'), param('ns3::Mac48Address', 'dest')]) ## wifi-mac-queue.h (module 'wifi'): ns3::Ptr ns3::WifiMacQueue::DequeueByTidAndAddress(uint8_t tid, ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] cls.add_method('DequeueByTidAndAddress', 'ns3::Ptr< ns3::WifiMacQueueItem >', @@ -15875,6 +15977,10 @@ def register_Ns3WifiMacQueue_methods(root_module, cls): cls.add_method('Remove', 'bool', [param('ns3::Ptr< ns3::Packet const >', 'packet')]) + ## wifi-mac-queue.h (module 'wifi'): uint32_t ns3::WifiMacQueue::GetNPacketsByAddress(ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] + cls.add_method('GetNPacketsByAddress', + 'uint32_t', + [param('ns3::WifiMacHeader::AddressType', 'type'), param('ns3::Mac48Address', 'dest')]) ## wifi-mac-queue.h (module 'wifi'): uint32_t ns3::WifiMacQueue::GetNPacketsByTidAndAddress(uint8_t tid, ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] cls.add_method('GetNPacketsByTidAndAddress', 'uint32_t', diff --git a/src/wave/bindings/modulegen__gcc_LP64.py b/src/wave/bindings/modulegen__gcc_LP64.py index fff8b60f9..71b7ef55a 100644 --- a/src/wave/bindings/modulegen__gcc_LP64.py +++ b/src/wave/bindings/modulegen__gcc_LP64.py @@ -30,12 +30,12 @@ def register_types(module): module.add_enum('QueueSizeUnit', ['PACKETS', 'BYTES'], import_from_module='ns.network') ## log.h (module 'core'): ns3::LogLevel [enumeration] module.add_enum('LogLevel', ['LOG_NONE', 'LOG_ERROR', 'LOG_LEVEL_ERROR', 'LOG_WARN', 'LOG_LEVEL_WARN', 'LOG_DEBUG', 'LOG_LEVEL_DEBUG', 'LOG_INFO', 'LOG_LEVEL_INFO', 'LOG_FUNCTION', 'LOG_LEVEL_FUNCTION', 'LOG_LOGIC', 'LOG_LEVEL_LOGIC', 'LOG_ALL', 'LOG_LEVEL_ALL', 'LOG_PREFIX_FUNC', 'LOG_PREFIX_TIME', 'LOG_PREFIX_NODE', 'LOG_PREFIX_LEVEL', 'LOG_PREFIX_ALL'], import_from_module='ns.core') - ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation [enumeration] + ## qos-txop.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') ## block-ack-type.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') ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacType [enumeration] - module.add_enum('WifiMacType', ['WIFI_MAC_CTL_CTLWRAPPER', 'WIFI_MAC_CTL_RTS', 'WIFI_MAC_CTL_CTS', 'WIFI_MAC_CTL_ACK', 'WIFI_MAC_CTL_BACKREQ', 'WIFI_MAC_CTL_BACKRESP', 'WIFI_MAC_MGT_BEACON', 'WIFI_MAC_MGT_ASSOCIATION_REQUEST', 'WIFI_MAC_MGT_ASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_DISASSOCIATION', 'WIFI_MAC_MGT_REASSOCIATION_REQUEST', 'WIFI_MAC_MGT_REASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_PROBE_REQUEST', 'WIFI_MAC_MGT_PROBE_RESPONSE', 'WIFI_MAC_MGT_AUTHENTICATION', 'WIFI_MAC_MGT_DEAUTHENTICATION', 'WIFI_MAC_MGT_ACTION', 'WIFI_MAC_MGT_ACTION_NO_ACK', 'WIFI_MAC_MGT_MULTIHOP_ACTION', 'WIFI_MAC_DATA', 'WIFI_MAC_DATA_CFACK', 'WIFI_MAC_DATA_CFPOLL', 'WIFI_MAC_DATA_CFACK_CFPOLL', 'WIFI_MAC_DATA_NULL', 'WIFI_MAC_DATA_NULL_CFACK', 'WIFI_MAC_DATA_NULL_CFPOLL', 'WIFI_MAC_DATA_NULL_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA', 'WIFI_MAC_QOSDATA_CFACK', 'WIFI_MAC_QOSDATA_CFPOLL', 'WIFI_MAC_QOSDATA_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA_NULL', 'WIFI_MAC_QOSDATA_NULL_CFPOLL', 'WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL'], import_from_module='ns.wifi') + 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_CTL_END', 'WIFI_MAC_CTL_END_ACK', 'WIFI_MAC_MGT_BEACON', 'WIFI_MAC_MGT_ASSOCIATION_REQUEST', 'WIFI_MAC_MGT_ASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_DISASSOCIATION', 'WIFI_MAC_MGT_REASSOCIATION_REQUEST', 'WIFI_MAC_MGT_REASSOCIATION_RESPONSE', 'WIFI_MAC_MGT_PROBE_REQUEST', 'WIFI_MAC_MGT_PROBE_RESPONSE', 'WIFI_MAC_MGT_AUTHENTICATION', 'WIFI_MAC_MGT_DEAUTHENTICATION', 'WIFI_MAC_MGT_ACTION', 'WIFI_MAC_MGT_ACTION_NO_ACK', 'WIFI_MAC_MGT_MULTIHOP_ACTION', 'WIFI_MAC_DATA', 'WIFI_MAC_DATA_CFACK', 'WIFI_MAC_DATA_CFPOLL', 'WIFI_MAC_DATA_CFACK_CFPOLL', 'WIFI_MAC_DATA_NULL', 'WIFI_MAC_DATA_NULL_CFACK', 'WIFI_MAC_DATA_NULL_CFPOLL', 'WIFI_MAC_DATA_NULL_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA', 'WIFI_MAC_QOSDATA_CFACK', 'WIFI_MAC_QOSDATA_CFPOLL', 'WIFI_MAC_QOSDATA_CFACK_CFPOLL', 'WIFI_MAC_QOSDATA_NULL', 'WIFI_MAC_QOSDATA_NULL_CFPOLL', 'WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL'], import_from_module='ns.wifi') ## 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-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] @@ -404,6 +404,8 @@ def register_types(module): module.add_class('Trailer', import_from_module='ns.network', parent=root_module['ns3::Chunk']) ## random-variable-stream.h (module 'core'): ns3::TriangularRandomVariable [class] module.add_class('TriangularRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) + ## txop.h (module 'wifi'): ns3::Txop [class] + module.add_class('Txop', import_from_module='ns.wifi', parent=root_module['ns3::Object']) ## random-variable-stream.h (module 'core'): ns3::UniformRandomVariable [class] module.add_class('UniformRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## vendor-specific-action.h (module 'wave'): ns3::VendorSpecificActionHeader [class] @@ -466,6 +468,8 @@ def register_types(module): module.add_class('CallbackValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## channel.h (module 'network'): ns3::Channel [class] module.add_class('Channel', import_from_module='ns.network', parent=root_module['ns3::Object']) + ## channel-access-manager.h (module 'wifi'): ns3::ChannelAccessManager [class] + module.add_class('ChannelAccessManager', import_from_module='ns.wifi', parent=root_module['ns3::Object']) ## channel-coordinator.h (module 'wave'): ns3::ChannelCoordinationListener [class] module.add_class('ChannelCoordinationListener', parent=root_module['ns3::SimpleRefCount< ns3::ChannelCoordinationListener, ns3::empty, ns3::DefaultDeleter >']) ## channel-coordinator.h (module 'wave'): ns3::ChannelCoordinator [class] @@ -480,18 +484,12 @@ def register_types(module): module.add_class('DataRateChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## data-rate.h (module 'network'): ns3::DataRateValue [class] module.add_class('DataRateValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) - ## dca-txop.h (module 'wifi'): ns3::DcaTxop [class] - module.add_class('DcaTxop', import_from_module='ns.wifi', parent=root_module['ns3::Object']) - ## dcf-manager.h (module 'wifi'): ns3::DcfManager [class] - module.add_class('DcfManager', import_from_module='ns.wifi', parent=root_module['ns3::Object']) ## default-channel-scheduler.h (module 'wave'): ns3::DefaultChannelScheduler [class] module.add_class('DefaultChannelScheduler', parent=root_module['ns3::ChannelScheduler']) ## random-variable-stream.h (module 'core'): ns3::DeterministicRandomVariable [class] 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-txop-n.h (module 'wifi'): ns3::EdcaTxopN [class] - module.add_class('EdcaTxopN', import_from_module='ns.wifi', parent=root_module['ns3::DcaTxop']) ## random-variable-stream.h (module 'core'): ns3::EmpiricalRandomVariable [class] module.add_class('EmpiricalRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## attribute.h (module 'core'): ns3::EmptyAttributeAccessor [class] @@ -590,6 +588,8 @@ def register_types(module): module.add_class('PointerChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker']) ## pointer.h (module 'core'): ns3::PointerValue [class] module.add_class('PointerValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) + ## qos-txop.h (module 'wifi'): ns3::QosTxop [class] + module.add_class('QosTxop', import_from_module='ns.wifi', parent=root_module['ns3::Txop']) ## wifi-mac-queue-item.h (module 'wifi'): ns3::Queue [class] module.add_class('Queue', import_from_module='ns.wifi', template_parameters=['ns3::WifiMacQueueItem'], parent=root_module['ns3::QueueBase']) ## queue-size.h (module 'network'): ns3::QueueSizeChecker [class] @@ -718,8 +718,8 @@ def register_types(module): module.add_container('ns3::WifiModeList', 'ns3::WifiMode', container_type=u'vector') module.add_container('std::vector< ns3::Ipv6Address >', 'ns3::Ipv6Address', container_type=u'vector') module.add_container('std::vector< unsigned short >', 'short 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::map< unsigned int, unsigned int >', ('unsigned int', 'unsigned int'), container_type=u'map') + module.add_container('std::map< ns3::Mac48Address, bool >', ('ns3::Mac48Address', 'bool'), container_type=u'map') module.add_container('std::map< unsigned int, ns3::Ptr< ns3::OcbWifiMac > >', ('unsigned int', 'ns3::Ptr< ns3::OcbWifiMac >'), container_type=u'map') module.add_container('std::vector< ns3::Ptr< ns3::WifiPhy > >', 'ns3::Ptr< ns3::WifiPhy >', container_type=u'vector') typehandlers.add_type_alias(u'ns3::Callback< void, ns3::Ptr< ns3::Packet >, double, ns3::WifiTxVector, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', u'ns3::RxOkCallback') @@ -1009,6 +1009,7 @@ def register_methods(root_module): register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor']) register_Ns3Trailer_methods(root_module, root_module['ns3::Trailer']) register_Ns3TriangularRandomVariable_methods(root_module, root_module['ns3::TriangularRandomVariable']) + register_Ns3Txop_methods(root_module, root_module['ns3::Txop']) register_Ns3UniformRandomVariable_methods(root_module, root_module['ns3::UniformRandomVariable']) register_Ns3VendorSpecificActionHeader_methods(root_module, root_module['ns3::VendorSpecificActionHeader']) register_Ns3VsaManager_methods(root_module, root_module['ns3::VsaManager']) @@ -1037,6 +1038,7 @@ def register_methods(root_module): register_Ns3CallbackImplBase_methods(root_module, root_module['ns3::CallbackImplBase']) register_Ns3CallbackValue_methods(root_module, root_module['ns3::CallbackValue']) register_Ns3Channel_methods(root_module, root_module['ns3::Channel']) + register_Ns3ChannelAccessManager_methods(root_module, root_module['ns3::ChannelAccessManager']) register_Ns3ChannelCoordinationListener_methods(root_module, root_module['ns3::ChannelCoordinationListener']) register_Ns3ChannelCoordinator_methods(root_module, root_module['ns3::ChannelCoordinator']) register_Ns3ChannelManager_methods(root_module, root_module['ns3::ChannelManager']) @@ -1044,12 +1046,9 @@ def register_methods(root_module): register_Ns3ConstantRandomVariable_methods(root_module, root_module['ns3::ConstantRandomVariable']) register_Ns3DataRateChecker_methods(root_module, root_module['ns3::DataRateChecker']) register_Ns3DataRateValue_methods(root_module, root_module['ns3::DataRateValue']) - register_Ns3DcaTxop_methods(root_module, root_module['ns3::DcaTxop']) - register_Ns3DcfManager_methods(root_module, root_module['ns3::DcfManager']) 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_Ns3EdcaTxopN_methods(root_module, root_module['ns3::EdcaTxopN']) register_Ns3EmpiricalRandomVariable_methods(root_module, root_module['ns3::EmpiricalRandomVariable']) register_Ns3EmptyAttributeAccessor_methods(root_module, root_module['ns3::EmptyAttributeAccessor']) register_Ns3EmptyAttributeChecker_methods(root_module, root_module['ns3::EmptyAttributeChecker']) @@ -1096,6 +1095,7 @@ def register_methods(root_module): register_Ns3ParetoRandomVariable_methods(root_module, root_module['ns3::ParetoRandomVariable']) register_Ns3PointerChecker_methods(root_module, root_module['ns3::PointerChecker']) register_Ns3PointerValue_methods(root_module, root_module['ns3::PointerValue']) + register_Ns3QosTxop_methods(root_module, root_module['ns3::QosTxop']) register_Ns3Queue__Ns3WifiMacQueueItem_methods(root_module, root_module['ns3::Queue< ns3::WifiMacQueueItem >']) register_Ns3QueueSizeChecker_methods(root_module, root_module['ns3::QueueSizeChecker']) register_Ns3QueueSizeValue_methods(root_module, root_module['ns3::QueueSizeValue']) @@ -7383,6 +7383,328 @@ def register_Ns3TriangularRandomVariable_methods(root_module, cls): is_virtual=True) return +def register_Ns3Txop_methods(root_module, cls): + ## txop.h (module 'wifi'): ns3::Txop::Txop() [constructor] + cls.add_constructor([]) + ## txop.h (module 'wifi'): static ns3::TypeId ns3::Txop::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsQosTxop() const [member function] + cls.add_method('IsQosTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SetMacLow(ns3::Ptr const low) [member function] + cls.add_method('SetMacLow', + 'void', + [param('ns3::Ptr< ns3::MacLow > const', 'low')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetChannelAccessManager(ns3::Ptr const manager) [member function] + cls.add_method('SetChannelAccessManager', + 'void', + [param('ns3::Ptr< ns3::ChannelAccessManager > const', 'manager')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxMiddle(ns3::Ptr const txMiddle) [member function] + cls.add_method('SetTxMiddle', + 'void', + [param('ns3::Ptr< ns3::MacTxMiddle > const', 'txMiddle')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxOkCallback(ns3::Txop::TxOk callback) [member function] + cls.add_method('SetTxOkCallback', + 'void', + [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxFailedCallback(ns3::Txop::TxFailed callback) [member function] + cls.add_method('SetTxFailedCallback', + 'void', + [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxDroppedCallback(ns3::Txop::TxDropped callback) [member function] + cls.add_method('SetTxDroppedCallback', + 'void', + [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetLow() const [member function] + cls.add_method('GetLow', + 'ns3::Ptr< ns3::MacLow >', + [], + is_const=True) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetWifiMacQueue() const [member function] + cls.add_method('GetWifiMacQueue', + 'ns3::Ptr< ns3::WifiMacQueue >', + [], + is_const=True) + ## txop.h (module 'wifi'): void ns3::Txop::SetMinCw(uint32_t minCw) [member function] + cls.add_method('SetMinCw', + 'void', + [param('uint32_t', 'minCw')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetMaxCw(uint32_t maxCw) [member function] + cls.add_method('SetMaxCw', + 'void', + [param('uint32_t', 'maxCw')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetAifsn(uint32_t aifsn) [member function] + cls.add_method('SetAifsn', + 'void', + [param('uint32_t', 'aifsn')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')]) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetMinCw() const [member function] + cls.add_method('GetMinCw', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetMaxCw() const [member function] + cls.add_method('GetMaxCw', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetAifsn() const [member function] + cls.add_method('GetAifsn', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): ns3::Time ns3::Txop::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyChannelSwitching() [member function] + cls.add_method('NotifyChannelSwitching', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifySleep() [member function] + cls.add_method('NotifySleep', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyOff() [member function] + cls.add_method('NotifyOff', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyWakeUp() [member function] + cls.add_method('NotifyWakeUp', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyOn() [member function] + cls.add_method('NotifyOn', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::Queue(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('Queue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SendCfFrame(ns3::WifiMacType frameType, ns3::Mac48Address addr) [member function] + cls.add_method('SendCfFrame', + 'void', + [param('ns3::WifiMacType', 'frameType'), param('ns3::Mac48Address', 'addr')]) + ## txop.h (module 'wifi'): void ns3::Txop::MissedCts() [member function] + cls.add_method('MissedCts', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotAck() [member function] + cls.add_method('GotAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedAck() [member function] + cls.add_method('MissedAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotCfEnd() [member function] + cls.add_method('GotCfEnd', + 'void', + []) + ## txop.h (module 'wifi'): void ns3::Txop::MissedCfPollResponse(bool expectedCfAck) [member function] + cls.add_method('MissedCfPollResponse', + 'void', + [param('bool', 'expectedCfAck')]) + ## txop.h (module 'wifi'): void ns3::Txop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] + cls.add_method('GotBlockAck', + 'void', + [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedBlockAck(uint8_t nMpdus) [member function] + cls.add_method('MissedBlockAck', + 'void', + [param('uint8_t', 'nMpdus')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::Cancel() [member function] + cls.add_method('Cancel', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartNextPacket() [member function] + cls.add_method('StartNextPacket', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::EndTxNoAck() [member function] + cls.add_method('EndTxNoAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::HasTxop() const [member function] + cls.add_method('HasTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::CanStartNextPolling() const [member function] + cls.add_method('CanStartNextPolling', + 'bool', + [], + is_const=True) + ## txop.h (module 'wifi'): int64_t ns3::Txop::AssignStreams(int64_t stream) [member function] + cls.add_method('AssignStreams', + 'int64_t', + [param('int64_t', 'stream')]) + ## txop.h (module 'wifi'): bool ns3::Txop::IsAccessRequested() const [member function] + cls.add_method('IsAccessRequested', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartBackoffNow(uint32_t nSlots) [member function] + cls.add_method('StartBackoffNow', + 'void', + [param('uint32_t', 'nSlots')]) + ## txop.h (module 'wifi'): ns3::Txop::Txop(ns3::Txop const & arg0) [constructor] + cls.add_constructor([param('ns3::Txop const &', 'arg0')]) + ## txop.h (module 'wifi'): void ns3::Txop::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyAccessRequested() [member function] + cls.add_method('NotifyAccessRequested', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyAccessGranted() [member function] + cls.add_method('NotifyAccessGranted', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyInternalCollision() [member function] + cls.add_method('NotifyInternalCollision', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyCollision() [member function] + cls.add_method('NotifyCollision', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::RestartAccessIfNeeded() [member function] + cls.add_method('RestartAccessIfNeeded', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartAccessIfNeeded() [member function] + cls.add_method('StartAccessIfNeeded', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetCw() const [member function] + cls.add_method('GetCw', + 'uint32_t', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::ResetCw() [member function] + cls.add_method('ResetCw', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::UpdateFailedCw() [member function] + cls.add_method('UpdateFailedCw', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetBackoffSlots() const [member function] + cls.add_method('GetBackoffSlots', + 'uint32_t', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): ns3::Time ns3::Txop::GetBackoffStart() const [member function] + cls.add_method('GetBackoffStart', + 'ns3::Time', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::UpdateBackoffSlotsNow(uint32_t nSlots, ns3::Time backoffUpdateBound) [member function] + cls.add_method('UpdateBackoffSlotsNow', + 'void', + [param('uint32_t', 'nSlots'), param('ns3::Time', 'backoffUpdateBound')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedRtsRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('NeedRtsRetransmission', + 'bool', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedDataRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('NeedDataRetransmission', + 'bool', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedFragmentation() const [member function] + cls.add_method('NeedFragmentation', + 'bool', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NextFragment() [member function] + cls.add_method('NextFragment', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetFragmentPacket', + 'ns3::Ptr< ns3::Packet >', + [param('ns3::WifiMacHeader *', 'hdr')], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetNextFragmentSize() const [member function] + cls.add_method('GetNextFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetFragmentSize() const [member function] + cls.add_method('GetFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetFragmentOffset() const [member function] + cls.add_method('GetFragmentOffset', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsLastFragment() const [member function] + cls.add_method('IsLastFragment', + 'bool', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::TxDroppedPacket(ns3::Ptr item) [member function] + cls.add_method('TxDroppedPacket', + 'void', + [param('ns3::Ptr< ns3::WifiMacQueueItem const >', 'item')], + visibility='protected') + return + def register_Ns3UniformRandomVariable_methods(root_module, cls): ## random-variable-stream.h (module 'core'): static ns3::TypeId ns3::UniformRandomVariable::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -7955,10 +8277,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, bool isDsss, 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::DcaTxop >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Txop >', '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', @@ -8017,6 +8339,11 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'uint8_t', [], is_const=True) + ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetRawDuration() const [member function] + cls.add_method('GetRawDuration', + 'uint16_t', + [], + is_const=True) ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetSequenceControl() const [member function] cls.add_method('GetSequenceControl', 'uint16_t', @@ -8052,6 +8379,11 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'char const *', [], is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::HasData() const [member function] + cls.add_method('HasData', + 'bool', + [], + is_const=True) ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAck() const [member function] cls.add_method('IsAck', 'bool', @@ -8092,8 +8424,23 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'bool', [], is_const=True) - ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfpoll() const [member function] - cls.add_method('IsCfpoll', + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfAck() const [member function] + cls.add_method('IsCfAck', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfEnd() const [member function] + cls.add_method('IsCfEnd', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfEndAck() const [member function] + cls.add_method('IsCfEndAck', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfPoll() const [member function] + cls.add_method('IsCfPoll', 'bool', [], is_const=True) @@ -8317,6 +8664,10 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): cls.add_method('SetQosTxopLimit', 'void', [param('uint8_t', 'txop')]) + ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRawDuration(uint16_t duration) [member function] + cls.add_method('SetRawDuration', + 'void', + [param('uint16_t', 'duration')]) ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRetry() [member function] cls.add_method('SetRetry', 'void', @@ -8325,10 +8676,10 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): cls.add_method('SetSequenceNumber', 'void', [param('uint16_t', 'seq')]) - ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type) [member function] + ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type, bool resetToDsFromDs=true) [member function] cls.add_method('SetType', 'void', - [param('ns3::WifiMacType', 'type')]) + [param('ns3::WifiMacType', 'type'), param('bool', 'resetToDsFromDs', default_value='true')]) return def register_Ns3WifiMacQueueItem_methods(root_module, cls): @@ -9722,6 +10073,11 @@ def register_Ns3WifiRemoteStationManager_methods(root_module, cls): 'bool', [], is_const=True) + ## wifi-remote-station-manager.h (module 'wifi'): bool ns3::WifiRemoteStationManager::HasPcfSupported() const [member function] + cls.add_method('HasPcfSupported', + 'bool', + [], + is_const=True) ## wifi-remote-station-manager.h (module 'wifi'): bool ns3::WifiRemoteStationManager::HasVhtSupported() const [member function] cls.add_method('HasVhtSupported', 'bool', @@ -9852,6 +10208,11 @@ def register_Ns3WifiRemoteStationManager_methods(root_module, cls): cls.add_method('SetMaxSsrc', 'void', [param('uint32_t', 'maxSsrc')]) + ## wifi-remote-station-manager.h (module 'wifi'): void ns3::WifiRemoteStationManager::SetPcfSupported(bool enable) [member function] + cls.add_method('SetPcfSupported', + 'void', + [param('bool', 'enable')], + is_virtual=True) ## wifi-remote-station-manager.h (module 'wifi'): void ns3::WifiRemoteStationManager::SetQosSupport(ns3::Mac48Address from, bool qosSupported) [member function] cls.add_method('SetQosSupport', 'void', @@ -10889,6 +11250,124 @@ def register_Ns3Channel_methods(root_module, cls): is_static=True) return +def register_Ns3ChannelAccessManager_methods(root_module, cls): + ## channel-access-manager.h (module 'wifi'): ns3::ChannelAccessManager::ChannelAccessManager(ns3::ChannelAccessManager const & arg0) [constructor] + cls.add_constructor([param('ns3::ChannelAccessManager const &', 'arg0')]) + ## channel-access-manager.h (module 'wifi'): ns3::ChannelAccessManager::ChannelAccessManager() [constructor] + cls.add_constructor([]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::Add(ns3::Ptr dcf) [member function] + cls.add_method('Add', + 'void', + [param('ns3::Ptr< ns3::Txop >', 'dcf')]) + ## channel-access-manager.h (module 'wifi'): ns3::Time ns3::ChannelAccessManager::GetEifsNoDifs() const [member function] + cls.add_method('GetEifsNoDifs', + 'ns3::Time', + [], + is_const=True) + ## channel-access-manager.h (module 'wifi'): bool ns3::ChannelAccessManager::IsBusy() const [member function] + cls.add_method('IsBusy', + 'bool', + [], + is_const=True) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyAckTimeoutResetNow() [member function] + cls.add_method('NotifyAckTimeoutResetNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyAckTimeoutStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyAckTimeoutStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyCtsTimeoutResetNow() [member function] + cls.add_method('NotifyCtsTimeoutResetNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyCtsTimeoutStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyCtsTimeoutStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyMaybeCcaBusyStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyMaybeCcaBusyStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyNavResetNow(ns3::Time duration) [member function] + cls.add_method('NotifyNavResetNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyNavStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyNavStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyOffNow() [member function] + cls.add_method('NotifyOffNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyOnNow() [member function] + cls.add_method('NotifyOnNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyRxEndErrorNow() [member function] + cls.add_method('NotifyRxEndErrorNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyRxEndOkNow() [member function] + cls.add_method('NotifyRxEndOkNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyRxStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyRxStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifySleepNow() [member function] + cls.add_method('NotifySleepNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifySwitchingStartNow(ns3::Time duration) [member function] + cls.add_method('NotifySwitchingStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyTxStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyTxStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyWakeupNow() [member function] + cls.add_method('NotifyWakeupNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::RemovePhyListener(ns3::Ptr phy) [member function] + cls.add_method('RemovePhyListener', + 'void', + [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::RequestAccess(ns3::Ptr state, bool isCfPeriod=false) [member function] + cls.add_method('RequestAccess', + 'void', + [param('ns3::Ptr< ns3::Txop >', 'state'), param('bool', 'isCfPeriod', default_value='false')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetEifsNoDifs(ns3::Time eifsNoDifs) [member function] + cls.add_method('SetEifsNoDifs', + 'void', + [param('ns3::Time', 'eifsNoDifs')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetSifs(ns3::Time sifs) [member function] + cls.add_method('SetSifs', + 'void', + [param('ns3::Time', 'sifs')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetSlot(ns3::Time slotTime) [member function] + cls.add_method('SetSlot', + 'void', + [param('ns3::Time', 'slotTime')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetupLow(ns3::Ptr low) [member function] + cls.add_method('SetupLow', + 'void', + [param('ns3::Ptr< ns3::MacLow >', 'low')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetupPhyListener(ns3::Ptr phy) [member function] + cls.add_method('SetupPhyListener', + 'void', + [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + return + def register_Ns3ChannelCoordinationListener_methods(root_module, cls): ## channel-coordinator.h (module 'wave'): ns3::ChannelCoordinationListener::ChannelCoordinationListener() [constructor] cls.add_constructor([]) @@ -11277,424 +11756,6 @@ def register_Ns3DataRateValue_methods(root_module, cls): [param('ns3::DataRate const &', 'value')]) return -def register_Ns3DcaTxop_methods(root_module, cls): - ## dca-txop.h (module 'wifi'): ns3::DcaTxop::DcaTxop() [constructor] - cls.add_constructor([]) - ## dca-txop.h (module 'wifi'): static ns3::TypeId ns3::DcaTxop::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsEdca() [member function] - cls.add_method('IsEdca', - 'bool', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMacLow(ns3::Ptr const low) [member function] - cls.add_method('SetMacLow', - 'void', - [param('ns3::Ptr< ns3::MacLow > const', 'low')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetDcfManager(ns3::Ptr const manager) [member function] - cls.add_method('SetDcfManager', - 'void', - [param('ns3::Ptr< ns3::DcfManager > const', 'manager')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxMiddle(ns3::Ptr const txMiddle) [member function] - cls.add_method('SetTxMiddle', - 'void', - [param('ns3::Ptr< ns3::MacTxMiddle > const', 'txMiddle')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxOkCallback(ns3::DcaTxop::TxOk callback) [member function] - cls.add_method('SetTxOkCallback', - 'void', - [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxFailedCallback(ns3::DcaTxop::TxFailed callback) [member function] - cls.add_method('SetTxFailedCallback', - 'void', - [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxDroppedCallback(ns3::DcaTxop::TxDropped callback) [member function] - cls.add_method('SetTxDroppedCallback', - 'void', - [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetLow() const [member function] - cls.add_method('GetLow', - 'ns3::Ptr< ns3::MacLow >', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetWifiMacQueue() const [member function] - cls.add_method('GetWifiMacQueue', - 'ns3::Ptr< ns3::WifiMacQueue >', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMinCw(uint32_t minCw) [member function] - cls.add_method('SetMinCw', - 'void', - [param('uint32_t', 'minCw')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMaxCw(uint32_t maxCw) [member function] - cls.add_method('SetMaxCw', - 'void', - [param('uint32_t', 'maxCw')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetAifsn(uint32_t aifsn) [member function] - cls.add_method('SetAifsn', - 'void', - [param('uint32_t', 'aifsn')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxopLimit(ns3::Time txopLimit) [member function] - cls.add_method('SetTxopLimit', - 'void', - [param('ns3::Time', 'txopLimit')]) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMinCw() const [member function] - cls.add_method('GetMinCw', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMaxCw() const [member function] - cls.add_method('GetMaxCw', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetAifsn() const [member function] - cls.add_method('GetAifsn', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetTxopLimit() const [member function] - cls.add_method('GetTxopLimit', - 'ns3::Time', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyChannelSwitching() [member function] - cls.add_method('NotifyChannelSwitching', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifySleep() [member function] - cls.add_method('NotifySleep', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyOff() [member function] - cls.add_method('NotifyOff', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyWakeUp() [member function] - cls.add_method('NotifyWakeUp', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyOn() [member function] - cls.add_method('NotifyOn', - 'void', - [], - 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', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedCts() [member function] - cls.add_method('MissedCts', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::GotAck() [member function] - cls.add_method('GotAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedAck() [member function] - cls.add_method('MissedAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] - cls.add_method('GotBlockAck', - 'void', - [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedBlockAck(uint8_t nMpdus) [member function] - cls.add_method('MissedBlockAck', - 'void', - [param('uint8_t', 'nMpdus')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartNextFragment() [member function] - cls.add_method('StartNextFragment', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::Cancel() [member function] - cls.add_method('Cancel', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartNextPacket() [member function] - cls.add_method('StartNextPacket', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::EndTxNoAck() [member function] - cls.add_method('EndTxNoAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::HasTxop() const [member function] - cls.add_method('HasTxop', - 'bool', - [], - is_const=True, is_virtual=True) - ## dca-txop.h (module 'wifi'): int64_t ns3::DcaTxop::AssignStreams(int64_t stream) [member function] - cls.add_method('AssignStreams', - 'int64_t', - [param('int64_t', 'stream')]) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsAccessRequested() const [member function] - cls.add_method('IsAccessRequested', - 'bool', - [], - is_const=True, is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartBackoffNow(uint32_t nSlots) [member function] - cls.add_method('StartBackoffNow', - 'void', - [param('uint32_t', 'nSlots')]) - ## dca-txop.h (module 'wifi'): ns3::DcaTxop::DcaTxop(ns3::DcaTxop const & arg0) [constructor] - cls.add_constructor([param('ns3::DcaTxop const &', 'arg0')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyAccessRequested() [member function] - cls.add_method('NotifyAccessRequested', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyAccessGranted() [member function] - cls.add_method('NotifyAccessGranted', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyInternalCollision() [member function] - cls.add_method('NotifyInternalCollision', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyCollision() [member function] - cls.add_method('NotifyCollision', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::RestartAccessIfNeeded() [member function] - cls.add_method('RestartAccessIfNeeded', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartAccessIfNeeded() [member function] - cls.add_method('StartAccessIfNeeded', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetCw() const [member function] - cls.add_method('GetCw', - 'uint32_t', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::ResetCw() [member function] - cls.add_method('ResetCw', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::UpdateFailedCw() [member function] - cls.add_method('UpdateFailedCw', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetBackoffSlots() const [member function] - cls.add_method('GetBackoffSlots', - 'uint32_t', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetBackoffStart() const [member function] - cls.add_method('GetBackoffStart', - 'ns3::Time', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::UpdateBackoffSlotsNow(uint32_t nSlots, ns3::Time backoffUpdateBound) [member function] - cls.add_method('UpdateBackoffSlotsNow', - 'void', - [param('uint32_t', 'nSlots'), param('ns3::Time', 'backoffUpdateBound')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedRtsRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('NeedRtsRetransmission', - 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedDataRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('NeedDataRetransmission', - 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedFragmentation() const [member function] - cls.add_method('NeedFragmentation', - 'bool', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NextFragment() [member function] - cls.add_method('NextFragment', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetFragmentPacket', - 'ns3::Ptr< ns3::Packet >', - [param('ns3::WifiMacHeader *', 'hdr')], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetNextFragmentSize() const [member function] - cls.add_method('GetNextFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetFragmentSize() const [member function] - cls.add_method('GetFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetFragmentOffset() const [member function] - cls.add_method('GetFragmentOffset', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsLastFragment() const [member function] - cls.add_method('IsLastFragment', - 'bool', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::TxDroppedPacket(ns3::Ptr item) [member function] - cls.add_method('TxDroppedPacket', - 'void', - [param('ns3::Ptr< ns3::WifiMacQueueItem const >', 'item')], - visibility='protected') - return - -def register_Ns3DcfManager_methods(root_module, cls): - ## dcf-manager.h (module 'wifi'): ns3::DcfManager::DcfManager(ns3::DcfManager const & arg0) [constructor] - cls.add_constructor([param('ns3::DcfManager const &', 'arg0')]) - ## dcf-manager.h (module 'wifi'): ns3::DcfManager::DcfManager() [constructor] - cls.add_constructor([]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::Add(ns3::Ptr dcf) [member function] - cls.add_method('Add', - 'void', - [param('ns3::Ptr< ns3::DcaTxop >', 'dcf')]) - ## dcf-manager.h (module 'wifi'): ns3::Time ns3::DcfManager::GetEifsNoDifs() const [member function] - cls.add_method('GetEifsNoDifs', - 'ns3::Time', - [], - is_const=True) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyAckTimeoutResetNow() [member function] - cls.add_method('NotifyAckTimeoutResetNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyAckTimeoutStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyAckTimeoutStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyCtsTimeoutResetNow() [member function] - cls.add_method('NotifyCtsTimeoutResetNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyCtsTimeoutStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyCtsTimeoutStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyMaybeCcaBusyStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyMaybeCcaBusyStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyNavResetNow(ns3::Time duration) [member function] - cls.add_method('NotifyNavResetNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyNavStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyNavStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyOffNow() [member function] - cls.add_method('NotifyOffNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyOnNow() [member function] - cls.add_method('NotifyOnNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyRxEndErrorNow() [member function] - cls.add_method('NotifyRxEndErrorNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyRxEndOkNow() [member function] - cls.add_method('NotifyRxEndOkNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyRxStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyRxStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifySleepNow() [member function] - cls.add_method('NotifySleepNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifySwitchingStartNow(ns3::Time duration) [member function] - cls.add_method('NotifySwitchingStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyTxStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyTxStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyWakeupNow() [member function] - cls.add_method('NotifyWakeupNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::RemovePhyListener(ns3::Ptr phy) [member function] - cls.add_method('RemovePhyListener', - 'void', - [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::RequestAccess(ns3::Ptr state) [member function] - cls.add_method('RequestAccess', - 'void', - [param('ns3::Ptr< ns3::DcaTxop >', 'state')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetEifsNoDifs(ns3::Time eifsNoDifs) [member function] - cls.add_method('SetEifsNoDifs', - 'void', - [param('ns3::Time', 'eifsNoDifs')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetSifs(ns3::Time sifs) [member function] - cls.add_method('SetSifs', - 'void', - [param('ns3::Time', 'sifs')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetSlot(ns3::Time slotTime) [member function] - cls.add_method('SetSlot', - 'void', - [param('ns3::Time', 'slotTime')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetupLow(ns3::Ptr low) [member function] - cls.add_method('SetupLow', - 'void', - [param('ns3::Ptr< ns3::MacLow >', 'low')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetupPhyListener(ns3::Ptr phy) [member function] - cls.add_method('SetupPhyListener', - 'void', - [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='protected', is_virtual=True) - return - def register_Ns3DefaultChannelScheduler_methods(root_module, cls): ## default-channel-scheduler.h (module 'wave'): ns3::DefaultChannelScheduler::DefaultChannelScheduler(ns3::DefaultChannelScheduler const & arg0) [constructor] cls.add_constructor([param('ns3::DefaultChannelScheduler const &', 'arg0')]) @@ -11821,257 +11882,6 @@ def register_Ns3DoubleValue_methods(root_module, cls): [param('double 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) - ## edca-txop-n.h (module 'wifi'): static ns3::TypeId ns3::EdcaTxopN::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::EdcaTxopN() [constructor] - cls.add_constructor([]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::IsEdca() [member function] - cls.add_method('IsEdca', - 'bool', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetTypeOfStation(ns3::TypeOfStation type) [member function] - cls.add_method('SetTypeOfStation', - 'void', - [param('ns3::TypeOfStation', 'type')]) - ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation ns3::EdcaTxopN::GetTypeOfStation() const [member function] - cls.add_method('GetTypeOfStation', - 'ns3::TypeOfStation', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetMsduAggregator() const [member function] - cls.add_method('GetMsduAggregator', - 'ns3::Ptr< ns3::MsduAggregator >', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetMpduAggregator() const [member function] - cls.add_method('GetMpduAggregator', - 'ns3::Ptr< ns3::MpduAggregator >', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::GetBaAgreementExists(ns3::Mac48Address address, uint8_t tid) const [member function] - cls.add_method('GetBaAgreementExists', - 'bool', - [param('ns3::Mac48Address', 'address'), param('uint8_t', 'tid')], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteAmpduTransfer(ns3::Mac48Address recipient, uint8_t tid) [member function] - cls.add_method('CompleteAmpduTransfer', - 'void', - [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyAccessGranted() [member function] - cls.add_method('NotifyAccessGranted', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyInternalCollision() [member function] - cls.add_method('NotifyInternalCollision', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyCollision() [member function] - cls.add_method('NotifyCollision', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedCts() [member function] - cls.add_method('MissedCts', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotAck() [member function] - cls.add_method('GotAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] - cls.add_method('GotBlockAck', - 'void', - [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedBlockAck(uint8_t nMpdus) [member function] - cls.add_method('MissedBlockAck', - 'void', - [param('uint8_t', 'nMpdus')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotAddBaResponse(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address recipient) [member function] - cls.add_method('GotAddBaResponse', - 'void', - [param('ns3::MgtAddBaResponseHeader const *', 'respHdr'), param('ns3::Mac48Address', 'recipient')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotDelBaFrame(ns3::MgtDelBaHeader const * delBaHdr, ns3::Mac48Address recipient) [member function] - cls.add_method('GotDelBaFrame', - 'void', - [param('ns3::MgtDelBaHeader const *', 'delBaHdr'), param('ns3::Mac48Address', 'recipient')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedAck() [member function] - cls.add_method('MissedAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNextPacket() [member function] - cls.add_method('StartNextPacket', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::EndTxNoAck() [member function] - cls.add_method('EndTxNoAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::RestartAccessIfNeeded() [member function] - cls.add_method('RestartAccessIfNeeded', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartAccessIfNeeded() [member function] - cls.add_method('StartAccessIfNeeded', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::NeedBarRetransmission() [member function] - cls.add_method('NeedBarRetransmission', - 'bool', - []) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::NeedFragmentation() const [member function] - cls.add_method('NeedFragmentation', - 'bool', - [], - is_const=True, is_virtual=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetFragmentPacket', - 'ns3::Ptr< ns3::Packet >', - [param('ns3::WifiMacHeader *', 'hdr')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetAccessCategory(ns3::AcIndex ac) [member function] - cls.add_method('SetAccessCategory', - 'void', - [param('ns3::AcIndex', 'ac')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetMsduAggregator(ns3::Ptr const aggr) [member function] - cls.add_method('SetMsduAggregator', - 'void', - [param('ns3::Ptr< ns3::MsduAggregator > const', 'aggr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetMpduAggregator(ns3::Ptr const aggr) [member function] - cls.add_method('SetMpduAggregator', - 'void', - [param('ns3::Ptr< ns3::MpduAggregator > const', 'aggr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::PushFront(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('PushFront', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteConfig() [member function] - cls.add_method('CompleteConfig', - 'void', - []) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetBlockAckThreshold(uint8_t threshold) [member function] - cls.add_method('SetBlockAckThreshold', - 'void', - [param('uint8_t', 'threshold')]) - ## edca-txop-n.h (module 'wifi'): uint8_t ns3::EdcaTxopN::GetBlockAckThreshold() const [member function] - cls.add_method('GetBlockAckThreshold', - 'uint8_t', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetBlockAckInactivityTimeout(uint16_t timeout) [member function] - cls.add_method('SetBlockAckInactivityTimeout', - 'void', - [param('uint16_t', 'timeout')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SendDelbaFrame(ns3::Mac48Address addr, uint8_t tid, bool byOriginator) [member function] - cls.add_method('SendDelbaFrame', - 'void', - [param('ns3::Mac48Address', 'addr'), param('uint8_t', 'tid'), param('bool', 'byOriginator')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteMpduTx(ns3::Ptr packet, ns3::WifiMacHeader hdr, ns3::Time tstamp) [member function] - cls.add_method('CompleteMpduTx', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader', 'hdr'), param('ns3::Time', 'tstamp')]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::GetAmpduExist(ns3::Mac48Address dest) const [member function] - cls.add_method('GetAmpduExist', - 'bool', - [param('ns3::Mac48Address', 'dest')], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetAmpduExist(ns3::Mac48Address dest, bool enableAmpdu) [member function] - cls.add_method('SetAmpduExist', - 'void', - [param('ns3::Mac48Address', 'dest'), param('bool', 'enableAmpdu')]) - ## edca-txop-n.h (module 'wifi'): uint16_t ns3::EdcaTxopN::GetNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetNextSequenceNumberFor', - 'uint16_t', - [param('ns3::WifiMacHeader *', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): uint16_t ns3::EdcaTxopN::PeekNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('PeekNextSequenceNumberFor', - 'uint16_t', - [param('ns3::WifiMacHeader *', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::RemoveRetransmitPacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] - cls.add_method('RemoveRetransmitPacket', - 'void', - [param('uint8_t', 'tid'), param('ns3::Mac48Address', 'recipient'), param('uint16_t', 'seqnumber')]) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::PeekNextRetransmitPacket(ns3::WifiMacHeader & header, uint8_t tid, ns3::Time * timestamp) [member function] - cls.add_method('PeekNextRetransmitPacket', - 'ns3::Ptr< ns3::Packet const >', - [param('ns3::WifiMacHeader &', 'header'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::BaTxOk(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('BaTxOk', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::BaTxFailed(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('BaTxFailed', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::Mac48Address ns3::EdcaTxopN::MapSrcAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('MapSrcAddressForAggregation', - 'ns3::Mac48Address', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::Mac48Address ns3::EdcaTxopN::MapDestAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('MapDestAddressForAggregation', - 'ns3::Mac48Address', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::EdcaTxopN(ns3::EdcaTxopN const & arg0) [constructor] - cls.add_constructor([param('ns3::EdcaTxopN const &', 'arg0')]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::HasTxop() const [member function] - cls.add_method('HasTxop', - 'bool', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetNextFragmentSize() const [member function] - cls.add_method('GetNextFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetFragmentSize() const [member function] - cls.add_method('GetFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetFragmentOffset() const [member function] - cls.add_method('GetFragmentOffset', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::IsLastFragment() const [member function] - cls.add_method('IsLastFragment', - 'bool', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='private', is_virtual=True) - return - def register_Ns3EmpiricalRandomVariable_methods(root_module, cls): ## random-variable-stream.h (module 'core'): ns3::EmpiricalRandomVariable::EmpiricalRandomVariable() [constructor] cls.add_constructor([]) @@ -13829,6 +13639,11 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::Time', [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters const &', 'parameters')], is_const=True) + ## mac-low.h (module 'wifi'): bool ns3::MacLow::CanTransmitNextCfFrame() const [member function] + cls.add_method('CanTransmitNextCfFrame', + 'bool', + [], + is_const=True) ## mac-low.h (module 'wifi'): void ns3::MacLow::CreateBlockAckAgreement(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address originator, uint16_t startingSeq) [member function] cls.add_method('CreateBlockAckAgreement', 'void', @@ -13841,6 +13656,10 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('DestroyBlockAckAgreement', 'void', [param('ns3::Mac48Address', 'originator'), param('uint8_t', 'tid')]) + ## mac-low.h (module 'wifi'): bool ns3::MacLow::DoNavStartNow(ns3::Time duration) [member function] + cls.add_method('DoNavStartNow', + 'bool', + [param('ns3::Time', 'duration')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::FlushAggregateQueue(uint8_t tid) [member function] cls.add_method('FlushAggregateQueue', 'void', @@ -13860,11 +13679,21 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::Time', [], is_const=True) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetBeaconInterval() const [member function] + cls.add_method('GetBeaconInterval', + 'ns3::Time', + [], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Mac48Address ns3::MacLow::GetBssid() const [member function] cls.add_method('GetBssid', 'ns3::Mac48Address', [], is_const=True) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetCfpMaxDuration() const [member function] + cls.add_method('GetCfpMaxDuration', + 'ns3::Time', + [], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetCompressedBlockAckTimeout() const [member function] cls.add_method('GetCompressedBlockAckTimeout', 'ns3::Time', @@ -13895,6 +13724,11 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::Time', [], is_const=True) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetRemainingCfpDuration() const [member function] + cls.add_method('GetRemainingCfpDuration', + 'ns3::Time', + [], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetRifs() const [member function] cls.add_method('GetRifs', 'ns3::Time', @@ -13915,6 +13749,11 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## mac-low.h (module 'wifi'): bool ns3::MacLow::IsCfPeriod() const [member function] + cls.add_method('IsCfPeriod', + 'bool', + [], + is_const=True, is_virtual=True) ## mac-low.h (module 'wifi'): bool ns3::MacLow::IsPromisc() const [member function] cls.add_method('IsPromisc', 'bool', @@ -13940,14 +13779,14 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('ReceiveOk', 'void', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxSnr'), param('ns3::WifiTxVector', 'txVector'), param('bool', 'ampduSubframe')]) - ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterDcf(ns3::Ptr dcf) [member function] + ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterDcf(ns3::Ptr dcf) [member function] cls.add_method('RegisterDcf', 'void', - [param('ns3::Ptr< ns3::DcfManager >', 'dcf')]) - ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterEdcaForAc(ns3::AcIndex ac, ns3::Ptr edca) [member function] + [param('ns3::Ptr< ns3::ChannelAccessManager >', 'dcf')]) + ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterEdcaForAc(ns3::AcIndex ac, ns3::Ptr edca) [member function] cls.add_method('RegisterEdcaForAc', 'void', - [param('ns3::AcIndex', 'ac'), param('ns3::Ptr< ns3::EdcaTxopN >', 'edca')]) + [param('ns3::AcIndex', 'ac'), param('ns3::Ptr< ns3::QosTxop >', 'edca')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::ResetPhy() [member function] cls.add_method('ResetPhy', 'void', @@ -13964,10 +13803,18 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('SetBasicBlockAckTimeout', 'void', [param('ns3::Time', 'blockAckTimeout')]) + ## mac-low.h (module 'wifi'): void ns3::MacLow::SetBeaconInterval(ns3::Time interval) [member function] + cls.add_method('SetBeaconInterval', + 'void', + [param('ns3::Time', 'interval')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::SetBssid(ns3::Mac48Address ad) [member function] cls.add_method('SetBssid', 'void', [param('ns3::Mac48Address', 'ad')]) + ## mac-low.h (module 'wifi'): void ns3::MacLow::SetCfpMaxDuration(ns3::Time duration) [member function] + cls.add_method('SetCfpMaxDuration', + 'void', + [param('ns3::Time', 'duration')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::SetCompressedBlockAckTimeout(ns3::Time blockAckTimeout) [member function] cls.add_method('SetCompressedBlockAckTimeout', 'void', @@ -14012,15 +13859,15 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('SetWifiRemoteStationManager', 'void', [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'manager')]) - ## mac-low.h (module 'wifi'): void ns3::MacLow::StartTransmission(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters parameters, ns3::Ptr dca) [member function] + ## mac-low.h (module 'wifi'): void ns3::MacLow::StartTransmission(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters parameters, ns3::Ptr txop) [member function] cls.add_method('StartTransmission', 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters', 'parameters'), param('ns3::Ptr< ns3::DcaTxop >', 'dca')], + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters', 'parameters'), param('ns3::Ptr< ns3::Txop >', 'txop')], is_virtual=True) - ## mac-low.h (module 'wifi'): bool ns3::MacLow::StopMpduAggregation(ns3::Ptr peekedPacket, ns3::WifiMacHeader peekedHdr, ns3::Ptr aggregatedPacket, uint16_t size) const [member function] + ## mac-low.h (module 'wifi'): bool ns3::MacLow::StopMpduAggregation(ns3::Ptr peekedPacket, ns3::WifiMacHeader peekedHdr, ns3::Ptr aggregatedPacket, uint8_t blockAckSize) const [member function] cls.add_method('StopMpduAggregation', 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'peekedPacket'), param('ns3::WifiMacHeader', 'peekedHdr'), param('ns3::Ptr< ns3::Packet >', 'aggregatedPacket'), param('uint16_t', 'size')], + [param('ns3::Ptr< ns3::Packet const >', 'peekedPacket'), param('ns3::WifiMacHeader', 'peekedHdr'), param('ns3::Ptr< ns3::Packet >', 'aggregatedPacket'), param('uint8_t', 'blockAckSize')], is_const=True) ## mac-low.h (module 'wifi'): void ns3::MacLow::DoDispose() [member function] cls.add_method('DoDispose', @@ -14783,6 +14630,257 @@ def register_Ns3PointerValue_methods(root_module, cls): [param('ns3::Ptr< ns3::Object >', 'object')]) return +def register_Ns3QosTxop_methods(root_module, cls): + ## qos-txop.h (module 'wifi'): ns3::QosTxop::m_aMpduEnabled [variable] + cls.add_instance_attribute('m_aMpduEnabled', 'std::map< ns3::Mac48Address, bool >', is_const=False) + ## qos-txop.h (module 'wifi'): static ns3::TypeId ns3::QosTxop::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## qos-txop.h (module 'wifi'): ns3::QosTxop::QosTxop() [constructor] + cls.add_constructor([]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::IsQosTxop() const [member function] + cls.add_method('IsQosTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetTypeOfStation(ns3::TypeOfStation type) [member function] + cls.add_method('SetTypeOfStation', + 'void', + [param('ns3::TypeOfStation', 'type')]) + ## qos-txop.h (module 'wifi'): ns3::TypeOfStation ns3::QosTxop::GetTypeOfStation() const [member function] + cls.add_method('GetTypeOfStation', + 'ns3::TypeOfStation', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetMsduAggregator() const [member function] + cls.add_method('GetMsduAggregator', + 'ns3::Ptr< ns3::MsduAggregator >', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetMpduAggregator() const [member function] + cls.add_method('GetMpduAggregator', + 'ns3::Ptr< ns3::MpduAggregator >', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::GetBaAgreementExists(ns3::Mac48Address address, uint8_t tid) const [member function] + cls.add_method('GetBaAgreementExists', + 'bool', + [param('ns3::Mac48Address', 'address'), param('uint8_t', 'tid')], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteAmpduTransfer(ns3::Mac48Address recipient, uint8_t tid) [member function] + cls.add_method('CompleteAmpduTransfer', + 'void', + [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyAccessGranted() [member function] + cls.add_method('NotifyAccessGranted', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyInternalCollision() [member function] + cls.add_method('NotifyInternalCollision', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyCollision() [member function] + cls.add_method('NotifyCollision', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedCts() [member function] + cls.add_method('MissedCts', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotAck() [member function] + cls.add_method('GotAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] + cls.add_method('GotBlockAck', + 'void', + [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedBlockAck(uint8_t nMpdus) [member function] + cls.add_method('MissedBlockAck', + 'void', + [param('uint8_t', 'nMpdus')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotAddBaResponse(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address recipient) [member function] + cls.add_method('GotAddBaResponse', + 'void', + [param('ns3::MgtAddBaResponseHeader const *', 'respHdr'), param('ns3::Mac48Address', 'recipient')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotDelBaFrame(ns3::MgtDelBaHeader const * delBaHdr, ns3::Mac48Address recipient) [member function] + cls.add_method('GotDelBaFrame', + 'void', + [param('ns3::MgtDelBaHeader const *', 'delBaHdr'), param('ns3::Mac48Address', 'recipient')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedAck() [member function] + cls.add_method('MissedAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::StartNextPacket() [member function] + cls.add_method('StartNextPacket', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::EndTxNoAck() [member function] + cls.add_method('EndTxNoAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::RestartAccessIfNeeded() [member function] + cls.add_method('RestartAccessIfNeeded', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::StartAccessIfNeeded() [member function] + cls.add_method('StartAccessIfNeeded', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::NeedBarRetransmission() [member function] + cls.add_method('NeedBarRetransmission', + 'bool', + []) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::NeedFragmentation() const [member function] + cls.add_method('NeedFragmentation', + 'bool', + [], + is_const=True, is_virtual=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetFragmentPacket', + 'ns3::Ptr< ns3::Packet >', + [param('ns3::WifiMacHeader *', 'hdr')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetAccessCategory(ns3::AcIndex ac) [member function] + cls.add_method('SetAccessCategory', + 'void', + [param('ns3::AcIndex', 'ac')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetMsduAggregator(ns3::Ptr const aggr) [member function] + cls.add_method('SetMsduAggregator', + 'void', + [param('ns3::Ptr< ns3::MsduAggregator > const', 'aggr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetMpduAggregator(ns3::Ptr const aggr) [member function] + cls.add_method('SetMpduAggregator', + 'void', + [param('ns3::Ptr< ns3::MpduAggregator > const', 'aggr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::PushFront(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('PushFront', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteConfig() [member function] + cls.add_method('CompleteConfig', + 'void', + []) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetBlockAckThreshold(uint8_t threshold) [member function] + cls.add_method('SetBlockAckThreshold', + 'void', + [param('uint8_t', 'threshold')]) + ## qos-txop.h (module 'wifi'): uint8_t ns3::QosTxop::GetBlockAckThreshold() const [member function] + cls.add_method('GetBlockAckThreshold', + 'uint8_t', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetBlockAckInactivityTimeout(uint16_t timeout) [member function] + cls.add_method('SetBlockAckInactivityTimeout', + 'void', + [param('uint16_t', 'timeout')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SendDelbaFrame(ns3::Mac48Address addr, uint8_t tid, bool byOriginator) [member function] + cls.add_method('SendDelbaFrame', + 'void', + [param('ns3::Mac48Address', 'addr'), param('uint8_t', 'tid'), param('bool', 'byOriginator')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteMpduTx(ns3::Ptr packet, ns3::WifiMacHeader hdr, ns3::Time tstamp) [member function] + cls.add_method('CompleteMpduTx', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader', 'hdr'), param('ns3::Time', 'tstamp')]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::GetAmpduExist(ns3::Mac48Address dest) const [member function] + cls.add_method('GetAmpduExist', + 'bool', + [param('ns3::Mac48Address', 'dest')], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetAmpduExist(ns3::Mac48Address dest, bool enableAmpdu) [member function] + cls.add_method('SetAmpduExist', + 'void', + [param('ns3::Mac48Address', 'dest'), param('bool', 'enableAmpdu')]) + ## qos-txop.h (module 'wifi'): uint16_t ns3::QosTxop::GetNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetNextSequenceNumberFor', + 'uint16_t', + [param('ns3::WifiMacHeader *', 'hdr')]) + ## qos-txop.h (module 'wifi'): uint16_t ns3::QosTxop::PeekNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('PeekNextSequenceNumberFor', + 'uint16_t', + [param('ns3::WifiMacHeader *', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::RemoveRetransmitPacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] + cls.add_method('RemoveRetransmitPacket', + 'void', + [param('uint8_t', 'tid'), param('ns3::Mac48Address', 'recipient'), param('uint16_t', 'seqnumber')]) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::PeekNextRetransmitPacket(ns3::WifiMacHeader & header, uint8_t tid, ns3::Time * timestamp) [member function] + cls.add_method('PeekNextRetransmitPacket', + 'ns3::Ptr< ns3::Packet const >', + [param('ns3::WifiMacHeader &', 'header'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::BaTxOk(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('BaTxOk', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::BaTxFailed(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('BaTxFailed', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::Mac48Address ns3::QosTxop::MapSrcAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('MapSrcAddressForAggregation', + 'ns3::Mac48Address', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::Mac48Address ns3::QosTxop::MapDestAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('MapDestAddressForAggregation', + 'ns3::Mac48Address', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::QosTxop::QosTxop(ns3::QosTxop const & arg0) [constructor] + cls.add_constructor([param('ns3::QosTxop const &', 'arg0')]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::HasTxop() const [member function] + cls.add_method('HasTxop', + 'bool', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetNextFragmentSize() const [member function] + cls.add_method('GetNextFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetFragmentSize() const [member function] + cls.add_method('GetFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetFragmentOffset() const [member function] + cls.add_method('GetFragmentOffset', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::IsLastFragment() const [member function] + cls.add_method('IsLastFragment', + 'bool', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='private', is_virtual=True) + return + def register_Ns3Queue__Ns3WifiMacQueueItem_methods(root_module, cls): ## queue.h (module 'network'): static ns3::TypeId ns3::Queue::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -15139,29 +15237,29 @@ def register_Ns3RegularWifiMac_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetDcaTxop() const [member function] - cls.add_method('GetDcaTxop', - 'ns3::Ptr< ns3::DcaTxop >', + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetTxop() const [member function] + cls.add_method('GetTxop', + 'ns3::Ptr< ns3::Txop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVOQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVOQueue() const [member function] cls.add_method('GetVOQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVIQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVIQueue() const [member function] cls.add_method('GetVIQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBEQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBEQueue() const [member function] cls.add_method('GetBEQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBKQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBKQueue() const [member function] cls.add_method('GetBKQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') ## regular-wifi-mac.h (module 'wifi'): void ns3::RegularWifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] @@ -15213,7 +15311,7 @@ def register_Ns3RegularWifiMac_methods(root_module, cls): cls.add_method('SetQosSupported', 'void', [param('bool', 'enable')], - visibility='protected') + visibility='protected', is_virtual=True) ## regular-wifi-mac.h (module 'wifi'): bool ns3::RegularWifiMac::GetQosSupported() const [member function] cls.add_method('GetQosSupported', 'bool', @@ -15556,10 +15654,10 @@ def register_Ns3WaveMacLow_methods(root_module, cls): cls.add_method('SetWaveNetDevice', 'void', [param('ns3::Ptr< ns3::WaveNetDevice >', 'device')]) - ## wave-mac-low.h (module 'wave'): void ns3::WaveMacLow::StartTransmission(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters parameters, ns3::Ptr dca) [member function] + ## wave-mac-low.h (module 'wave'): void ns3::WaveMacLow::StartTransmission(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters parameters, ns3::Ptr txop) [member function] cls.add_method('StartTransmission', 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters', 'parameters'), param('ns3::Ptr< ns3::DcaTxop >', 'dca')], + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters', 'parameters'), param('ns3::Ptr< ns3::Txop >', 'txop')], is_virtual=True) ## wave-mac-low.h (module 'wave'): ns3::WifiTxVector ns3::WaveMacLow::GetDataTxVector(ns3::Ptr packet, ns3::WifiMacHeader const * hdr) const [member function] cls.add_method('GetDataTxVector', @@ -15845,6 +15943,10 @@ def register_Ns3WifiMacQueue_methods(root_module, cls): 'ns3::Ptr< ns3::WifiMacQueueItem >', [], is_virtual=True) + ## wifi-mac-queue.h (module 'wifi'): ns3::Ptr ns3::WifiMacQueue::DequeueByAddress(ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] + cls.add_method('DequeueByAddress', + 'ns3::Ptr< ns3::WifiMacQueueItem >', + [param('ns3::WifiMacHeader::AddressType', 'type'), param('ns3::Mac48Address', 'dest')]) ## wifi-mac-queue.h (module 'wifi'): ns3::Ptr ns3::WifiMacQueue::DequeueByTidAndAddress(uint8_t tid, ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] cls.add_method('DequeueByTidAndAddress', 'ns3::Ptr< ns3::WifiMacQueueItem >', @@ -15875,6 +15977,10 @@ def register_Ns3WifiMacQueue_methods(root_module, cls): cls.add_method('Remove', 'bool', [param('ns3::Ptr< ns3::Packet const >', 'packet')]) + ## wifi-mac-queue.h (module 'wifi'): uint32_t ns3::WifiMacQueue::GetNPacketsByAddress(ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] + cls.add_method('GetNPacketsByAddress', + 'uint32_t', + [param('ns3::WifiMacHeader::AddressType', 'type'), param('ns3::Mac48Address', 'dest')]) ## wifi-mac-queue.h (module 'wifi'): uint32_t ns3::WifiMacQueue::GetNPacketsByTidAndAddress(uint8_t tid, ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] cls.add_method('GetNPacketsByTidAndAddress', 'uint32_t', diff --git a/src/wave/helper/wave-helper.cc b/src/wave/helper/wave-helper.cc index 6e07540e4..61bbf8d27 100644 --- a/src/wave/helper/wave-helper.cc +++ b/src/wave/helper/wave-helper.cc @@ -472,25 +472,25 @@ WaveHelper::AssignStreams (NetDeviceContainer c, int64_t stream) } PointerValue ptr; - rmac->GetAttribute ("DcaTxop", ptr); - Ptr dcaTxop = ptr.Get (); - currentStream += dcaTxop->AssignStreams (currentStream); + rmac->GetAttribute ("Txop", ptr); + Ptr txop = ptr.Get (); + currentStream += txop->AssignStreams (currentStream); - rmac->GetAttribute ("VO_EdcaTxopN", ptr); - Ptr vo_edcaTxopN = ptr.Get (); - currentStream += vo_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("VO_Txop", ptr); + Ptr vo_txop = ptr.Get (); + currentStream += vo_txop->AssignStreams (currentStream); - rmac->GetAttribute ("VI_EdcaTxopN", ptr); - Ptr vi_edcaTxopN = ptr.Get (); - currentStream += vi_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("VI_Txop", ptr); + Ptr vi_txop = ptr.Get (); + currentStream += vi_txop->AssignStreams (currentStream); - rmac->GetAttribute ("BE_EdcaTxopN", ptr); - Ptr be_edcaTxopN = ptr.Get (); - currentStream += be_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("BE_Txop", ptr); + Ptr be_txop = ptr.Get (); + currentStream += be_txop->AssignStreams (currentStream); - rmac->GetAttribute ("BK_EdcaTxopN", ptr); - Ptr bk_edcaTxopN = ptr.Get (); - currentStream += bk_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("BK_Txop", ptr); + Ptr bk_txop = ptr.Get (); + currentStream += bk_txop->AssignStreams (currentStream); } } } diff --git a/src/wave/model/ocb-wifi-mac.cc b/src/wave/model/ocb-wifi-mac.cc index e7cbcc7a3..715f9aba5 100644 --- a/src/wave/model/ocb-wifi-mac.cc +++ b/src/wave/model/ocb-wifi-mac.cc @@ -81,7 +81,7 @@ OcbWifiMac::SendVsc (Ptr vsc, Mac48Address peer, OrganizationIdentifier vsa.SetOrganizationIdentifier (oi); vsc->AddHeader (vsa); - if (m_qosSupported) + if (GetQosSupported ()) { uint8_t tid = QosUtilsGetTidForPacket (vsc); tid = tid > 7 ? 0 : tid; @@ -89,7 +89,7 @@ OcbWifiMac::SendVsc (Ptr vsc, Mac48Address peer, OrganizationIdentifier } else { - m_dca->Queue (vsc, hdr); + m_txop->Queue (vsc, hdr); } } @@ -163,12 +163,12 @@ OcbWifiMac::Enqueue (Ptr packet, Mac48Address to) { //In ad hoc mode, we assume that every destination supports all //the rates we support. - if (m_htSupported || m_vhtSupported) + if (GetHtSupported () || GetVhtSupported ()) { m_stationManager->AddAllSupportedMcs (to); m_stationManager->AddStationHtCapabilities (to, GetHtCapabilities()); } - if (m_vhtSupported) + if (GetVhtSupported ()) { m_stationManager->AddStationVhtCapabilities (to, GetVhtCapabilities()); } @@ -183,7 +183,7 @@ OcbWifiMac::Enqueue (Ptr packet, Mac48Address to) // QosUtilsMapTidToAc()), so we use that as our default here. uint8_t tid = 0; - if (m_qosSupported) + if (GetQosSupported ()) { hdr.SetType (WIFI_MAC_QOSDATA); hdr.SetQosAckPolicy (WifiMacHeader::NORMAL_ACK); @@ -211,7 +211,7 @@ OcbWifiMac::Enqueue (Ptr packet, Mac48Address to) hdr.SetType (WIFI_MAC_DATA); } - if (m_htSupported || m_vhtSupported) + if (GetHtSupported () || GetVhtSupported ()) { hdr.SetNoOrder (); } @@ -221,7 +221,7 @@ OcbWifiMac::Enqueue (Ptr packet, Mac48Address to) hdr.SetDsNotFrom (); hdr.SetDsNotTo (); - if (m_qosSupported) + if (GetQosSupported ()) { // Sanity check that the TID is valid NS_ASSERT (tid < 8); @@ -229,7 +229,7 @@ OcbWifiMac::Enqueue (Ptr packet, Mac48Address to) } else { - m_dca->Queue (packet, hdr); + m_txop->Queue (packet, hdr); } } @@ -251,12 +251,12 @@ OcbWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) { //In ad hoc mode, we assume that every destination supports all //the rates we support. - if (m_htSupported || m_vhtSupported) + if (GetHtSupported () || GetVhtSupported ()) { m_stationManager->AddAllSupportedMcs (from); m_stationManager->AddStationHtCapabilities (from, GetHtCapabilities()); } - if (m_vhtSupported) + if (GetVhtSupported ()) { m_stationManager->AddStationVhtCapabilities (from, GetVhtCapabilities()); } @@ -327,7 +327,7 @@ void OcbWifiMac::ConfigureEdca (uint32_t cwmin, uint32_t cwmax, uint32_t aifsn, enum AcIndex ac) { NS_LOG_FUNCTION (this << cwmin << cwmax << aifsn << ac); - Ptr dcf; + Ptr dcf; switch (ac) { case AC_VO: @@ -355,7 +355,7 @@ OcbWifiMac::ConfigureEdca (uint32_t cwmin, uint32_t cwmax, uint32_t aifsn, enum dcf->SetAifsn (aifsn); break; case AC_BE_NQOS: - dcf = RegularWifiMac::GetDcaTxop (); + dcf = RegularWifiMac::GetTxop (); dcf->SetMinCw (cwmin); dcf->SetMaxCw (cwmax); dcf->SetAifsn (aifsn); @@ -394,7 +394,7 @@ void OcbWifiMac::Suspend (void) { NS_LOG_FUNCTION (this); - m_dcfManager->NotifySleepNow (); + m_channelAccessManager->NotifySleepNow (); m_low->NotifySleepNow (); } @@ -403,21 +403,21 @@ OcbWifiMac::Resume (void) { NS_LOG_FUNCTION (this); // wake-up operation is not required in m_low object - m_dcfManager->NotifyWakeupNow (); + m_channelAccessManager->NotifyWakeupNow (); } void OcbWifiMac::MakeVirtualBusy (Time duration) { NS_LOG_FUNCTION (this << duration); - m_dcfManager->NotifyMaybeCcaBusyStartNow (duration); + m_channelAccessManager->NotifyMaybeCcaBusyStartNow (duration); } void OcbWifiMac::CancleTx (enum AcIndex ac) { NS_LOG_FUNCTION (this << ac); - Ptr queue = m_edca.find (ac)->second; + Ptr queue = m_edca.find (ac)->second; NS_ASSERT (queue != 0); // reset and flush queue queue->NotifyChannelSwitching (); @@ -428,7 +428,7 @@ OcbWifiMac::Reset (void) { NS_LOG_FUNCTION (this); // The switching event is used to notify MAC entity reset its operation. - m_dcfManager->NotifySwitchingStartNow (Time (0)); + m_channelAccessManager->NotifySwitchingStartNow (Time (0)); m_low->NotifySwitchingStartNow (Time (0)); } @@ -440,8 +440,8 @@ OcbWifiMac::EnableForWave (Ptr device) m_low = CreateObject (); (DynamicCast (m_low))->SetWaveNetDevice (device); m_low->SetRxCallback (MakeCallback (&MacRxMiddle::Receive, m_rxMiddle)); - m_dcfManager->SetupLow (m_low); - m_dca->SetMacLow (m_low); + m_channelAccessManager->SetupLow (m_low); + m_txop->SetMacLow (m_low); for (EdcaQueues::iterator i = m_edca.begin (); i != m_edca.end (); ++i) { i->second->SetMacLow (m_low); diff --git a/src/wave/model/wave-mac-low.cc b/src/wave/model/wave-mac-low.cc index 476440b82..0dcde912d 100644 --- a/src/wave/model/wave-mac-low.cc +++ b/src/wave/model/wave-mac-low.cc @@ -109,7 +109,7 @@ void WaveMacLow::StartTransmission (Ptr packet, const WifiMacHeader* hdr, MacLowTransmissionParameters params, - Ptr dca) + Ptr dca) { NS_LOG_FUNCTION (this << packet << hdr << params << dca); Ptr phy = MacLow::GetPhy (); @@ -127,7 +127,7 @@ WaveMacLow::StartTransmission (Ptr packet, if (transmissionTime > remainingTime) { // The attempt for this transmission will be canceled; - // and this packet will be pending for next transmission by EdcaTxopN class + // and this packet will be pending for next transmission by QosTxop class NS_LOG_DEBUG ("Because the required transmission time = " << transmissionTime.GetMilliSeconds () << "ms exceeds the remainingTime = " << remainingTime.GetMilliSeconds () << "ms, currently this packet will not be transmitted."); diff --git a/src/wave/model/wave-mac-low.h b/src/wave/model/wave-mac-low.h index 6532fc9ad..dc6363e23 100644 --- a/src/wave/model/wave-mac-low.h +++ b/src/wave/model/wave-mac-low.h @@ -62,7 +62,7 @@ public: * \param packet packet to send * \param hdr 802.11 header for packet to send * \param parameters the transmission parameters to use for this packet. - * \param dca pointer to the calling DcaTxop. + * \param txop pointer to the calling Txop. * * Start the transmission of the input packet and notify the listener * of transmission events. @@ -70,7 +70,7 @@ public: virtual void StartTransmission (Ptr packet, const WifiMacHeader* hdr, MacLowTransmissionParameters parameters, - Ptr dca); + Ptr txop); private: /** * Return a TXVECTOR for the DATA frame given the destination. diff --git a/src/wave/test/ocb-test-suite.cc b/src/wave/test/ocb-test-suite.cc index ba7380de8..561bccfe4 100644 --- a/src/wave/test/ocb-test-suite.cc +++ b/src/wave/test/ocb-test-suite.cc @@ -49,25 +49,25 @@ AssignWifiRandomStreams (Ptr mac, int64_t stream) if (rmac) { PointerValue ptr; - rmac->GetAttribute ("DcaTxop", ptr); - Ptr dcaTxop = ptr.Get (); - currentStream += dcaTxop->AssignStreams (currentStream); + rmac->GetAttribute ("Txop", ptr); + Ptr txop = ptr.Get (); + currentStream += txop->AssignStreams (currentStream); - rmac->GetAttribute ("VO_EdcaTxopN", ptr); - Ptr vo_edcaTxopN = ptr.Get (); - currentStream += vo_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("VO_Txop", ptr); + Ptr vo_txop = ptr.Get (); + currentStream += vo_txop->AssignStreams (currentStream); - rmac->GetAttribute ("VI_EdcaTxopN", ptr); - Ptr vi_edcaTxopN = ptr.Get (); - currentStream += vi_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("VI_Txop", ptr); + Ptr vi_txop = ptr.Get (); + currentStream += vi_txop->AssignStreams (currentStream); - rmac->GetAttribute ("BE_EdcaTxopN", ptr); - Ptr be_edcaTxopN = ptr.Get (); - currentStream += be_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("BE_Txop", ptr); + Ptr be_txop = ptr.Get (); + currentStream += be_txop->AssignStreams (currentStream); - rmac->GetAttribute ("BK_EdcaTxopN", ptr); - Ptr bk_edcaTxopN = ptr.Get (); - currentStream += bk_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("BK_Txop", ptr); + Ptr bk_txop = ptr.Get (); + currentStream += bk_txop->AssignStreams (currentStream); } } @@ -310,9 +310,9 @@ OcbWifiMacTestCase::PostDeviceConfiguration (Ptr static_node, Ptr mo Ptr mobile_device = DynamicCast (mobile_node->GetDevice (0)); // Fix the stream assignment to the Dcf Txop objects (backoffs) - // The below stream assignment will result in the DcaTxop object + // The below stream assignment will result in the Txop object // using a backoff value of zero for this test when the - // DcaTxop::EndTxNoAck() calls to StartBackoffNow() + // Txop::EndTxNoAck() calls to StartBackoffNow() AssignWifiRandomStreams (static_device->GetMac (), 21); AssignWifiRandomStreams (mobile_device->GetMac (), 22); diff --git a/src/wifi/bindings/modulegen__gcc_ILP32.py b/src/wifi/bindings/modulegen__gcc_ILP32.py index 1f1cc2a03..d6e613893 100644 --- a/src/wifi/bindings/modulegen__gcc_ILP32.py +++ b/src/wifi/bindings/modulegen__gcc_ILP32.py @@ -32,12 +32,12 @@ def register_types(module): module.add_enum('MpduType', ['NORMAL_MPDU', 'MPDU_IN_AGGREGATE', 'LAST_MPDU_IN_AGGREGATE']) ## ht-operation.h (module 'wifi'): ns3::HtProtectionType [enumeration] module.add_enum('HtProtectionType', ['NO_PROTECTION', 'NON_MEMBER_PROTECTION', 'TWENTY_MHZ_PROTECTION', 'MIXED_MODE_PROTECTION']) - ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation [enumeration] + ## qos-txop.h (module 'wifi'): ns3::TypeOfStation [enumeration] module.add_enum('TypeOfStation', ['STA', 'AP', 'ADHOC_STA', 'MESH', 'HT_STA', 'HT_AP', 'HT_ADHOC_STA', 'OCB']) ## block-ack-type.h (module 'wifi'): ns3::BlockAckType [enumeration] module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK']) ## 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']) + 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_CTL_END', 'WIFI_MAC_CTL_END_ACK', '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']) ## 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-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] @@ -410,6 +410,8 @@ def register_types(module): module.add_class('TriangularRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## propagation-loss-model.h (module 'propagation'): ns3::TwoRayGroundPropagationLossModel [class] module.add_class('TwoRayGroundPropagationLossModel', import_from_module='ns.propagation', parent=root_module['ns3::PropagationLossModel']) + ## txop.h (module 'wifi'): ns3::Txop [class] + module.add_class('Txop', parent=root_module['ns3::Object']) ## random-variable-stream.h (module 'core'): ns3::UniformRandomVariable [class] module.add_class('UniformRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## random-variable-stream.h (module 'core'): ns3::WeibullRandomVariable [class] @@ -504,8 +506,12 @@ def register_types(module): module.add_class('CallbackValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## cara-wifi-manager.h (module 'wifi'): ns3::CaraWifiManager [class] module.add_class('CaraWifiManager', parent=root_module['ns3::WifiRemoteStationManager']) + ## cf-parameter-set.h (module 'wifi'): ns3::CfParameterSet [class] + module.add_class('CfParameterSet', parent=root_module['ns3::WifiInformationElement']) ## channel.h (module 'network'): ns3::Channel [class] module.add_class('Channel', import_from_module='ns.network', parent=root_module['ns3::Object']) + ## channel-access-manager.h (module 'wifi'): ns3::ChannelAccessManager [class] + module.add_class('ChannelAccessManager', parent=root_module['ns3::Object']) ## random-variable-stream.h (module 'core'): ns3::ConstantRandomVariable [class] module.add_class('ConstantRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## constant-rate-wifi-manager.h (module 'wifi'): ns3::ConstantRateWifiManager [class] @@ -522,10 +528,6 @@ def register_types(module): module.add_class('DataRateChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## data-rate.h (module 'network'): ns3::DataRateValue [class] module.add_class('DataRateValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) - ## dca-txop.h (module 'wifi'): ns3::DcaTxop [class] - module.add_class('DcaTxop', parent=root_module['ns3::Object']) - ## dcf-manager.h (module 'wifi'): ns3::DcfManager [class] - module.add_class('DcfManager', parent=root_module['ns3::Object']) ## random-variable-stream.h (module 'core'): ns3::DeterministicRandomVariable [class] module.add_class('DeterministicRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## device-energy-model.h (module 'energy'): ns3::DeviceEnergyModel [class] @@ -536,8 +538,6 @@ def register_types(module): module.add_class('DsssParameterSet', parent=root_module['ns3::WifiInformationElement']) ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet [class] module.add_class('EdcaParameterSet', parent=root_module['ns3::WifiInformationElement']) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN [class] - module.add_class('EdcaTxopN', parent=root_module['ns3::DcaTxop']) ## random-variable-stream.h (module 'core'): ns3::EmpiricalRandomVariable [class] module.add_class('EmpiricalRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## attribute.h (module 'core'): ns3::EmptyAttributeAccessor [class] @@ -680,6 +680,8 @@ def register_types(module): module.add_class('ParfWifiManager', parent=root_module['ns3::WifiRemoteStationManager']) ## qos-blocked-destinations.h (module 'wifi'): ns3::QosBlockedDestinations [class] module.add_class('QosBlockedDestinations', parent=root_module['ns3::SimpleRefCount< ns3::QosBlockedDestinations, ns3::empty, ns3::DefaultDeleter >']) + ## qos-txop.h (module 'wifi'): ns3::QosTxop [class] + module.add_class('QosTxop', parent=root_module['ns3::Txop']) ## wifi-mac-queue-item.h (module 'wifi'): ns3::Queue [class] module.add_class('Queue', template_parameters=['ns3::WifiMacQueueItem'], parent=root_module['ns3::QueueBase']) ## queue-size.h (module 'network'): ns3::QueueSizeChecker [class] @@ -704,8 +706,6 @@ def register_types(module): module.add_class('SsidChecker', parent=root_module['ns3::AttributeChecker']) ## ssid.h (module 'wifi'): ns3::SsidValue [class] module.add_class('SsidValue', parent=root_module['ns3::AttributeValue']) - ## sta-wifi-mac.h (module 'wifi'): ns3::StaWifiMac [class] - module.add_class('StaWifiMac', parent=root_module['ns3::RegularWifiMac']) ## supported-rates.h (module 'wifi'): ns3::SupportedRates [class] module.add_class('SupportedRates', parent=root_module['ns3::WifiInformationElement']) ## nstime.h (module 'core'): ns3::TimeValue [class] @@ -750,8 +750,6 @@ def register_types(module): module.add_class('AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) ## adhoc-wifi-mac.h (module 'wifi'): ns3::AdhocWifiMac [class] module.add_class('AdhocWifiMac', parent=root_module['ns3::RegularWifiMac']) - ## ap-wifi-mac.h (module 'wifi'): ns3::ApWifiMac [class] - module.add_class('ApWifiMac', parent=root_module['ns3::RegularWifiMac']) ## callback.h (module 'core'): ns3::CallbackImpl [class] module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['ns3::ObjectBase *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl [class] @@ -810,20 +808,26 @@ def register_types(module): module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'unsigned long long', 'ns3::Mac48Address', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl [class] module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'unsigned long long', 'unsigned long long', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + ## infrastructure-wifi-mac.h (module 'wifi'): ns3::InfrastructureWifiMac [class] + module.add_class('InfrastructureWifiMac', parent=root_module['ns3::RegularWifiMac']) + ## sta-wifi-mac.h (module 'wifi'): ns3::StaWifiMac [class] + module.add_class('StaWifiMac', parent=root_module['ns3::InfrastructureWifiMac']) + ## ap-wifi-mac.h (module 'wifi'): ns3::ApWifiMac [class] + module.add_class('ApWifiMac', parent=root_module['ns3::InfrastructureWifiMac']) module.add_container('ns3::HtMinstrelRate', 'ns3::HtRateInfo', container_type=u'vector') module.add_container('std::map< std::string, ns3::LogComponent * >', ('std::string', 'ns3::LogComponent *'), container_type=u'map') - module.add_container('ns3::TxTime', 'std::pair< ns3::Time, ns3::WifiMode >', container_type=u'vector') + module.add_container('ns3::TxTime', ('ns3::WifiMode', 'ns3::Time'), container_type=u'map') 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('ns3::SampleRate', 'std::vector< unsigned char >', 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 short >', 'short 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('ns3::MpduAggregator::DeaggregatedMpdus', '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('ns3::MsduAggregator::DeaggregatedMsdus', 'std::pair< ns3::Ptr< ns3::Packet >, ns3::AmsduSubframeHeader >', container_type=u'list') + module.add_container('std::map< ns3::Mac48Address, bool >', ('ns3::Mac48Address', 'bool'), container_type=u'map') module.add_container('std::vector< unsigned char >', 'unsigned char', container_type=u'vector') typehandlers.add_type_alias(u'void ( * ) ( std::ostream & )', u'ns3::LogTimePrinter') typehandlers.add_type_alias(u'void ( * ) ( std::ostream & )*', u'ns3::LogTimePrinter*') @@ -864,9 +868,9 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< std::pair< ns3::WifiRraaThresholds, ns3::WifiMode >, std::allocator< std::pair< ns3::WifiRraaThresholds, ns3::WifiMode > > >', u'ns3::RraaThresholdsTable') typehandlers.add_type_alias(u'std::vector< std::pair< ns3::WifiRraaThresholds, ns3::WifiMode >, std::allocator< std::pair< ns3::WifiRraaThresholds, ns3::WifiMode > > >*', u'ns3::RraaThresholdsTable*') typehandlers.add_type_alias(u'std::vector< std::pair< ns3::WifiRraaThresholds, ns3::WifiMode >, std::allocator< std::pair< ns3::WifiRraaThresholds, ns3::WifiMode > > >&', u'ns3::RraaThresholdsTable&') - typehandlers.add_type_alias(u'std::vector< std::pair< ns3::Time, ns3::WifiMode >, std::allocator< std::pair< ns3::Time, ns3::WifiMode > > >', u'ns3::TxTime') - typehandlers.add_type_alias(u'std::vector< std::pair< ns3::Time, ns3::WifiMode >, std::allocator< std::pair< ns3::Time, ns3::WifiMode > > >*', u'ns3::TxTime*') - typehandlers.add_type_alias(u'std::vector< std::pair< ns3::Time, ns3::WifiMode >, std::allocator< std::pair< ns3::Time, ns3::WifiMode > > >&', u'ns3::TxTime&') + typehandlers.add_type_alias(u'std::map< ns3::WifiMode, ns3::Time, std::less< ns3::WifiMode >, std::allocator< std::pair< ns3::WifiMode const, ns3::Time > > >', u'ns3::TxTime') + typehandlers.add_type_alias(u'std::map< ns3::WifiMode, ns3::Time, std::less< ns3::WifiMode >, std::allocator< std::pair< ns3::WifiMode const, ns3::Time > > >*', u'ns3::TxTime*') + typehandlers.add_type_alias(u'std::map< ns3::WifiMode, ns3::Time, std::less< ns3::WifiMode >, std::allocator< std::pair< ns3::WifiMode const, ns3::Time > > >&', u'ns3::TxTime&') 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&') @@ -876,15 +880,15 @@ def register_types(module): 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&') - 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::HtSampleRate') - 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::HtSampleRate*') - 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::HtSampleRate&') + typehandlers.add_type_alias(u'std::vector< std::vector< unsigned char, std::allocator< unsigned char > >, std::allocator< std::vector< unsigned char, std::allocator< unsigned char > > > >', u'ns3::HtSampleRate') + typehandlers.add_type_alias(u'std::vector< std::vector< unsigned char, std::allocator< unsigned char > >, std::allocator< std::vector< unsigned char, std::allocator< unsigned char > > > >*', u'ns3::HtSampleRate*') + typehandlers.add_type_alias(u'std::vector< std::vector< unsigned char, std::allocator< unsigned char > >, std::allocator< std::vector< unsigned char, std::allocator< unsigned char > > > >&', u'ns3::HtSampleRate&') typehandlers.add_type_alias(u'std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >', u'ns3::MinstrelRate') typehandlers.add_type_alias(u'std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >*', u'ns3::MinstrelRate*') typehandlers.add_type_alias(u'std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >&', u'ns3::MinstrelRate&') - 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'std::vector< std::vector< unsigned char, std::allocator< unsigned char > >, std::allocator< std::vector< unsigned char, std::allocator< unsigned char > > > >', u'ns3::SampleRate') + typehandlers.add_type_alias(u'std::vector< std::vector< unsigned char, std::allocator< unsigned char > >, std::allocator< std::vector< unsigned char, std::allocator< unsigned char > > > >*', u'ns3::SampleRate*') + typehandlers.add_type_alias(u'std::vector< std::vector< unsigned char, std::allocator< unsigned char > >, std::allocator< std::vector< unsigned char, std::allocator< unsigned char > > > >&', u'ns3::SampleRate&') 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&') @@ -1156,6 +1160,7 @@ def register_methods(root_module): register_Ns3Trailer_methods(root_module, root_module['ns3::Trailer']) register_Ns3TriangularRandomVariable_methods(root_module, root_module['ns3::TriangularRandomVariable']) register_Ns3TwoRayGroundPropagationLossModel_methods(root_module, root_module['ns3::TwoRayGroundPropagationLossModel']) + register_Ns3Txop_methods(root_module, root_module['ns3::Txop']) register_Ns3UniformRandomVariable_methods(root_module, root_module['ns3::UniformRandomVariable']) register_Ns3WeibullRandomVariable_methods(root_module, root_module['ns3::WeibullRandomVariable']) register_Ns3WifiActionHeader_methods(root_module, root_module['ns3::WifiActionHeader']) @@ -1194,7 +1199,9 @@ def register_methods(root_module): register_Ns3CallbackImplBase_methods(root_module, root_module['ns3::CallbackImplBase']) register_Ns3CallbackValue_methods(root_module, root_module['ns3::CallbackValue']) register_Ns3CaraWifiManager_methods(root_module, root_module['ns3::CaraWifiManager']) + register_Ns3CfParameterSet_methods(root_module, root_module['ns3::CfParameterSet']) register_Ns3Channel_methods(root_module, root_module['ns3::Channel']) + register_Ns3ChannelAccessManager_methods(root_module, root_module['ns3::ChannelAccessManager']) register_Ns3ConstantRandomVariable_methods(root_module, root_module['ns3::ConstantRandomVariable']) register_Ns3ConstantRateWifiManager_methods(root_module, root_module['ns3::ConstantRateWifiManager']) register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, root_module['ns3::ConstantSpeedPropagationDelayModel']) @@ -1203,14 +1210,11 @@ def register_methods(root_module): register_Ns3CtrlBAckResponseHeader_methods(root_module, root_module['ns3::CtrlBAckResponseHeader']) register_Ns3DataRateChecker_methods(root_module, root_module['ns3::DataRateChecker']) register_Ns3DataRateValue_methods(root_module, root_module['ns3::DataRateValue']) - register_Ns3DcaTxop_methods(root_module, root_module['ns3::DcaTxop']) - register_Ns3DcfManager_methods(root_module, root_module['ns3::DcfManager']) 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_Ns3DsssParameterSet_methods(root_module, root_module['ns3::DsssParameterSet']) register_Ns3EdcaParameterSet_methods(root_module, root_module['ns3::EdcaParameterSet']) - register_Ns3EdcaTxopN_methods(root_module, root_module['ns3::EdcaTxopN']) register_Ns3EmpiricalRandomVariable_methods(root_module, root_module['ns3::EmpiricalRandomVariable']) register_Ns3EmptyAttributeAccessor_methods(root_module, root_module['ns3::EmptyAttributeAccessor']) register_Ns3EmptyAttributeChecker_methods(root_module, root_module['ns3::EmptyAttributeChecker']) @@ -1281,6 +1285,7 @@ def register_methods(root_module): register_Ns3ParetoRandomVariable_methods(root_module, root_module['ns3::ParetoRandomVariable']) register_Ns3ParfWifiManager_methods(root_module, root_module['ns3::ParfWifiManager']) register_Ns3QosBlockedDestinations_methods(root_module, root_module['ns3::QosBlockedDestinations']) + register_Ns3QosTxop_methods(root_module, root_module['ns3::QosTxop']) register_Ns3Queue__Ns3WifiMacQueueItem_methods(root_module, root_module['ns3::Queue< ns3::WifiMacQueueItem >']) register_Ns3QueueSizeChecker_methods(root_module, root_module['ns3::QueueSizeChecker']) register_Ns3QueueSizeValue_methods(root_module, root_module['ns3::QueueSizeValue']) @@ -1293,7 +1298,6 @@ def register_methods(root_module): 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']) - register_Ns3StaWifiMac_methods(root_module, root_module['ns3::StaWifiMac']) register_Ns3SupportedRates_methods(root_module, root_module['ns3::SupportedRates']) register_Ns3TimeValue_methods(root_module, root_module['ns3::TimeValue']) register_Ns3TypeIdChecker_methods(root_module, root_module['ns3::TypeIdChecker']) @@ -1315,7 +1319,6 @@ def register_methods(root_module): register_Ns3AddressChecker_methods(root_module, root_module['ns3::AddressChecker']) register_Ns3AddressValue_methods(root_module, root_module['ns3::AddressValue']) register_Ns3AdhocWifiMac_methods(root_module, root_module['ns3::AdhocWifiMac']) - register_Ns3ApWifiMac_methods(root_module, root_module['ns3::ApWifiMac']) register_Ns3CallbackImpl__Ns3ObjectBase___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< ns3::ObjectBase *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Bool_Unsigned_int_Double_Ns3Time_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, bool, unsigned int, double, ns3::Time, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Const_ns3WifiMacHeader___amp___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, const ns3::WifiMacHeader &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) @@ -1345,6 +1348,9 @@ def register_methods(root_module): register_Ns3CallbackImpl__Void_Unsigned_int_Unsigned_int_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, unsigned int, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Unsigned_long_Ns3Mac48Address_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, unsigned long long, ns3::Mac48Address, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Unsigned_long_Unsigned_long_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, unsigned long long, unsigned long long, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) + register_Ns3InfrastructureWifiMac_methods(root_module, root_module['ns3::InfrastructureWifiMac']) + register_Ns3StaWifiMac_methods(root_module, root_module['ns3::StaWifiMac']) + register_Ns3ApWifiMac_methods(root_module, root_module['ns3::ApWifiMac']) register_Ns3HashImplementation_methods(root_module, root_module['ns3::Hash::Implementation']) register_Ns3HashFunctionFnv1a_methods(root_module, root_module['ns3::Hash::Function::Fnv1a']) register_Ns3HashFunctionHash32_methods(root_module, root_module['ns3::Hash::Function::Hash32']) @@ -2152,6 +2158,11 @@ def register_Ns3CapabilityInformation_methods(root_module, cls): 'uint32_t', [], is_const=True) + ## capability-information.h (module 'wifi'): bool ns3::CapabilityInformation::IsCfPollable() const [member function] + cls.add_method('IsCfPollable', + 'bool', + [], + is_const=True) ## capability-information.h (module 'wifi'): bool ns3::CapabilityInformation::IsEss() const [member function] cls.add_method('IsEss', 'bool', @@ -2177,6 +2188,10 @@ def register_Ns3CapabilityInformation_methods(root_module, cls): 'ns3::Buffer::Iterator', [param('ns3::Buffer::Iterator', 'start')], is_const=True) + ## capability-information.h (module 'wifi'): void ns3::CapabilityInformation::SetCfPollable() [member function] + cls.add_method('SetCfPollable', + 'void', + []) ## capability-information.h (module 'wifi'): void ns3::CapabilityInformation::SetEss() [member function] cls.add_method('SetEss', 'void', @@ -2638,11 +2653,11 @@ def register_Ns3GroupInfo_methods(root_module, cls): ## minstrel-ht-wifi-manager.h (module 'wifi'): ns3::GroupInfo::m_index [variable] cls.add_instance_attribute('m_index', 'uint8_t', is_const=False) ## minstrel-ht-wifi-manager.h (module 'wifi'): ns3::GroupInfo::m_maxProbRate [variable] - cls.add_instance_attribute('m_maxProbRate', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_maxProbRate', 'uint8_t', is_const=False) ## minstrel-ht-wifi-manager.h (module 'wifi'): ns3::GroupInfo::m_maxTpRate [variable] - cls.add_instance_attribute('m_maxTpRate', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_maxTpRate', 'uint8_t', is_const=False) ## minstrel-ht-wifi-manager.h (module 'wifi'): ns3::GroupInfo::m_maxTpRate2 [variable] - cls.add_instance_attribute('m_maxTpRate2', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_maxTpRate2', 'uint8_t', is_const=False) ## minstrel-ht-wifi-manager.h (module 'wifi'): ns3::GroupInfo::m_ratesTable [variable] cls.add_instance_attribute('m_ratesTable', 'ns3::HtMinstrelRate', is_const=False) ## minstrel-ht-wifi-manager.h (module 'wifi'): ns3::GroupInfo::m_supported [variable] @@ -4882,6 +4897,7 @@ def register_Ns3WifiMacHelper_methods(root_module, cls): def register_Ns3WifiMode_methods(root_module, cls): cls.add_binary_comparison_operator('==') + cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() ## wifi-mode.h (module 'wifi'): ns3::WifiMode::WifiMode(ns3::WifiMode const & arg0) [constructor] cls.add_constructor([param('ns3::WifiMode const &', 'arg0')]) @@ -6310,6 +6326,11 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::CfParameterSet ns3::MgtProbeResponseHeader::GetCfParameterSet() const [member function] + cls.add_method('GetCfParameterSet', + 'ns3::CfParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::DsssParameterSet ns3::MgtProbeResponseHeader::GetDsssParameterSet() const [member function] cls.add_method('GetDsssParameterSet', 'ns3::DsssParameterSet', @@ -6407,6 +6428,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::SetCfParameterSet(ns3::CfParameterSet cfparameterset) [member function] + cls.add_method('SetCfParameterSet', + 'void', + [param('ns3::CfParameterSet', 'cfparameterset')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetDsssParameterSet(ns3::DsssParameterSet dsssParameterSet) [member function] cls.add_method('SetDsssParameterSet', 'void', @@ -6578,11 +6603,11 @@ def register_Ns3MinstrelWifiRemoteStation_methods(root_module, cls): ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_index [variable] cls.add_instance_attribute('m_index', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_maxTpRate [variable] - cls.add_instance_attribute('m_maxTpRate', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_maxTpRate', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_maxTpRate2 [variable] - cls.add_instance_attribute('m_maxTpRate2', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_maxTpRate2', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_maxProbRate [variable] - cls.add_instance_attribute('m_maxProbRate', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_maxProbRate', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_nModes [variable] cls.add_instance_attribute('m_nModes', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_totalPacketsCount [variable] @@ -6594,7 +6619,7 @@ def register_Ns3MinstrelWifiRemoteStation_methods(root_module, cls): ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_isSampling [variable] cls.add_instance_attribute('m_isSampling', 'bool', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_sampleRate [variable] - cls.add_instance_attribute('m_sampleRate', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_sampleRate', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_sampleDeferred [variable] cls.add_instance_attribute('m_sampleDeferred', 'bool', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_shortRetry [variable] @@ -6604,7 +6629,7 @@ def register_Ns3MinstrelWifiRemoteStation_methods(root_module, cls): ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_retry [variable] cls.add_instance_attribute('m_retry', 'uint32_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_txrate [variable] - cls.add_instance_attribute('m_txrate', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_txrate', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_initialized [variable] cls.add_instance_attribute('m_initialized', 'bool', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_minstrelTable [variable] @@ -7772,6 +7797,328 @@ def register_Ns3TwoRayGroundPropagationLossModel_methods(root_module, cls): visibility='private', is_virtual=True) return +def register_Ns3Txop_methods(root_module, cls): + ## txop.h (module 'wifi'): ns3::Txop::Txop(ns3::Txop const & arg0) [constructor] + cls.add_constructor([param('ns3::Txop const &', 'arg0')]) + ## txop.h (module 'wifi'): ns3::Txop::Txop() [constructor] + cls.add_constructor([]) + ## txop.h (module 'wifi'): int64_t ns3::Txop::AssignStreams(int64_t stream) [member function] + cls.add_method('AssignStreams', + 'int64_t', + [param('int64_t', 'stream')]) + ## txop.h (module 'wifi'): bool ns3::Txop::CanStartNextPolling() const [member function] + cls.add_method('CanStartNextPolling', + 'bool', + [], + is_const=True) + ## txop.h (module 'wifi'): void ns3::Txop::Cancel() [member function] + cls.add_method('Cancel', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::EndTxNoAck() [member function] + cls.add_method('EndTxNoAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetAifsn() const [member function] + cls.add_method('GetAifsn', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetLow() const [member function] + cls.add_method('GetLow', + 'ns3::Ptr< ns3::MacLow >', + [], + is_const=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetMaxCw() const [member function] + cls.add_method('GetMaxCw', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetMinCw() const [member function] + cls.add_method('GetMinCw', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): ns3::Time ns3::Txop::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True) + ## txop.h (module 'wifi'): static ns3::TypeId ns3::Txop::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetWifiMacQueue() const [member function] + cls.add_method('GetWifiMacQueue', + 'ns3::Ptr< ns3::WifiMacQueue >', + [], + is_const=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotAck() [member function] + cls.add_method('GotAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] + cls.add_method('GotBlockAck', + 'void', + [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotCfEnd() [member function] + cls.add_method('GotCfEnd', + 'void', + []) + ## txop.h (module 'wifi'): bool ns3::Txop::HasTxop() const [member function] + cls.add_method('HasTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsAccessRequested() const [member function] + cls.add_method('IsAccessRequested', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsQosTxop() const [member function] + cls.add_method('IsQosTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedAck() [member function] + cls.add_method('MissedAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedBlockAck(uint8_t nMpdus) [member function] + cls.add_method('MissedBlockAck', + 'void', + [param('uint8_t', 'nMpdus')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedCfPollResponse(bool expectedCfAck) [member function] + cls.add_method('MissedCfPollResponse', + 'void', + [param('bool', 'expectedCfAck')]) + ## txop.h (module 'wifi'): void ns3::Txop::MissedCts() [member function] + cls.add_method('MissedCts', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyChannelSwitching() [member function] + cls.add_method('NotifyChannelSwitching', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyOff() [member function] + cls.add_method('NotifyOff', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyOn() [member function] + cls.add_method('NotifyOn', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifySleep() [member function] + cls.add_method('NotifySleep', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyWakeUp() [member function] + cls.add_method('NotifyWakeUp', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::Queue(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('Queue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SendCfFrame(ns3::WifiMacType frameType, ns3::Mac48Address addr) [member function] + cls.add_method('SendCfFrame', + 'void', + [param('ns3::WifiMacType', 'frameType'), param('ns3::Mac48Address', 'addr')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetAifsn(uint32_t aifsn) [member function] + cls.add_method('SetAifsn', + 'void', + [param('uint32_t', 'aifsn')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetChannelAccessManager(ns3::Ptr const manager) [member function] + cls.add_method('SetChannelAccessManager', + 'void', + [param('ns3::Ptr< ns3::ChannelAccessManager > const', 'manager')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetMacLow(ns3::Ptr const low) [member function] + cls.add_method('SetMacLow', + 'void', + [param('ns3::Ptr< ns3::MacLow > const', 'low')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetMaxCw(uint32_t maxCw) [member function] + cls.add_method('SetMaxCw', + 'void', + [param('uint32_t', 'maxCw')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetMinCw(uint32_t minCw) [member function] + cls.add_method('SetMinCw', + 'void', + [param('uint32_t', 'minCw')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxDroppedCallback(ns3::Txop::TxDropped callback) [member function] + cls.add_method('SetTxDroppedCallback', + 'void', + [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxFailedCallback(ns3::Txop::TxFailed callback) [member function] + cls.add_method('SetTxFailedCallback', + 'void', + [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxMiddle(ns3::Ptr const txMiddle) [member function] + cls.add_method('SetTxMiddle', + 'void', + [param('ns3::Ptr< ns3::MacTxMiddle > const', 'txMiddle')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxOkCallback(ns3::Txop::TxOk callback) [member function] + cls.add_method('SetTxOkCallback', + 'void', + [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartBackoffNow(uint32_t nSlots) [member function] + cls.add_method('StartBackoffNow', + 'void', + [param('uint32_t', 'nSlots')]) + ## txop.h (module 'wifi'): void ns3::Txop::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartNextPacket() [member function] + cls.add_method('StartNextPacket', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetBackoffSlots() const [member function] + cls.add_method('GetBackoffSlots', + 'uint32_t', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): ns3::Time ns3::Txop::GetBackoffStart() const [member function] + cls.add_method('GetBackoffStart', + 'ns3::Time', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetCw() const [member function] + cls.add_method('GetCw', + 'uint32_t', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetFragmentOffset() const [member function] + cls.add_method('GetFragmentOffset', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetFragmentPacket', + 'ns3::Ptr< ns3::Packet >', + [param('ns3::WifiMacHeader *', 'hdr')], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetFragmentSize() const [member function] + cls.add_method('GetFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetNextFragmentSize() const [member function] + cls.add_method('GetNextFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsLastFragment() const [member function] + cls.add_method('IsLastFragment', + 'bool', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::NeedDataRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('NeedDataRetransmission', + 'bool', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedFragmentation() const [member function] + cls.add_method('NeedFragmentation', + 'bool', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::NeedRtsRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('NeedRtsRetransmission', + 'bool', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::NextFragment() [member function] + cls.add_method('NextFragment', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::NotifyAccessGranted() [member function] + cls.add_method('NotifyAccessGranted', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyAccessRequested() [member function] + cls.add_method('NotifyAccessRequested', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyCollision() [member function] + cls.add_method('NotifyCollision', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyInternalCollision() [member function] + cls.add_method('NotifyInternalCollision', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::ResetCw() [member function] + cls.add_method('ResetCw', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::RestartAccessIfNeeded() [member function] + cls.add_method('RestartAccessIfNeeded', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartAccessIfNeeded() [member function] + cls.add_method('StartAccessIfNeeded', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::TxDroppedPacket(ns3::Ptr item) [member function] + cls.add_method('TxDroppedPacket', + 'void', + [param('ns3::Ptr< ns3::WifiMacQueueItem const >', 'item')], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::UpdateBackoffSlotsNow(uint32_t nSlots, ns3::Time backoffUpdateBound) [member function] + cls.add_method('UpdateBackoffSlotsNow', + 'void', + [param('uint32_t', 'nSlots'), param('ns3::Time', 'backoffUpdateBound')], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::UpdateFailedCw() [member function] + cls.add_method('UpdateFailedCw', + 'void', + [], + visibility='protected') + return + def register_Ns3UniformRandomVariable_methods(root_module, cls): ## random-variable-stream.h (module 'core'): static ns3::TypeId ns3::UniformRandomVariable::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -8266,10 +8613,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, bool isDsss, 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::DcaTxop >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Txop >', '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', @@ -8328,6 +8675,11 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'uint8_t', [], is_const=True) + ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetRawDuration() const [member function] + cls.add_method('GetRawDuration', + 'uint16_t', + [], + is_const=True) ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetSequenceControl() const [member function] cls.add_method('GetSequenceControl', 'uint16_t', @@ -8363,6 +8715,11 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'char const *', [], is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::HasData() const [member function] + cls.add_method('HasData', + 'bool', + [], + is_const=True) ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAck() const [member function] cls.add_method('IsAck', 'bool', @@ -8403,8 +8760,18 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'bool', [], is_const=True) - ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfpoll() const [member function] - cls.add_method('IsCfpoll', + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfAck() const [member function] + cls.add_method('IsCfAck', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfEnd() const [member function] + cls.add_method('IsCfEnd', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfPoll() const [member function] + cls.add_method('IsCfPoll', 'bool', [], is_const=True) @@ -8628,6 +8995,10 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): cls.add_method('SetQosTxopLimit', 'void', [param('uint8_t', 'txop')]) + ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRawDuration(uint16_t duration) [member function] + cls.add_method('SetRawDuration', + 'void', + [param('uint16_t', 'duration')]) ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRetry() [member function] cls.add_method('SetRetry', 'void', @@ -8636,10 +9007,10 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): cls.add_method('SetSequenceNumber', 'void', [param('uint16_t', 'seq')]) - ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type) [member function] + ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type, bool resetToDsFromDs=true) [member function] cls.add_method('SetType', 'void', - [param('ns3::WifiMacType', 'type')]) + [param('ns3::WifiMacType', 'type'), param('bool', 'resetToDsFromDs', default_value='true')]) return def register_Ns3WifiMacQueueItem_methods(root_module, cls): @@ -10070,6 +10441,11 @@ def register_Ns3WifiRemoteStationManager_methods(root_module, cls): 'bool', [], is_const=True) + ## wifi-remote-station-manager.h (module 'wifi'): bool ns3::WifiRemoteStationManager::HasPcfSupported() const [member function] + cls.add_method('HasPcfSupported', + 'bool', + [], + is_const=True) ## wifi-remote-station-manager.h (module 'wifi'): bool ns3::WifiRemoteStationManager::HasVhtSupported() const [member function] cls.add_method('HasVhtSupported', 'bool', @@ -10200,6 +10576,11 @@ def register_Ns3WifiRemoteStationManager_methods(root_module, cls): cls.add_method('SetMaxSsrc', 'void', [param('uint32_t', 'maxSsrc')]) + ## wifi-remote-station-manager.h (module 'wifi'): void ns3::WifiRemoteStationManager::SetPcfSupported(bool enable) [member function] + cls.add_method('SetPcfSupported', + 'void', + [param('bool', 'enable')], + is_virtual=True) ## wifi-remote-station-manager.h (module 'wifi'): void ns3::WifiRemoteStationManager::SetQosSupport(ns3::Mac48Address from, bool qosSupported) [member function] cls.add_method('SetQosSupport', 'void', @@ -11501,10 +11882,10 @@ def register_Ns3BlockAckManager_methods(root_module, cls): cls.add_method('NotifyMpduTransmission', 'void', [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid'), param('uint16_t', 'nextSeqNumber'), param('ns3::WifiMacHeader::QosAckPolicy', 'policy')]) - ## block-ack-manager.h (module 'wifi'): ns3::Ptr ns3::BlockAckManager::PeekNextPacketByTidAndAddress(ns3::WifiMacHeader & hdr, ns3::Mac48Address recipient, uint8_t tid, ns3::Time * timestamp) [member function] + ## block-ack-manager.h (module 'wifi'): ns3::Ptr ns3::BlockAckManager::PeekNextPacketByTidAndAddress(ns3::WifiMacHeader & hdr, uint8_t tid, ns3::Time * timestamp) [member function] cls.add_method('PeekNextPacketByTidAndAddress', 'ns3::Ptr< ns3::Packet const >', - [param('ns3::WifiMacHeader &', 'hdr'), param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) + [param('ns3::WifiMacHeader &', 'hdr'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) ## block-ack-manager.h (module 'wifi'): bool ns3::BlockAckManager::RemovePacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] cls.add_method('RemovePacket', 'bool', @@ -11887,6 +12268,84 @@ def register_Ns3CaraWifiManager_methods(root_module, cls): is_const=True, visibility='private', is_virtual=True) return +def register_Ns3CfParameterSet_methods(root_module, cls): + cls.add_output_stream_operator() + ## cf-parameter-set.h (module 'wifi'): ns3::CfParameterSet::CfParameterSet(ns3::CfParameterSet const & arg0) [constructor] + cls.add_constructor([param('ns3::CfParameterSet const &', 'arg0')]) + ## cf-parameter-set.h (module 'wifi'): ns3::CfParameterSet::CfParameterSet() [constructor] + cls.add_constructor([]) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::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) + ## cf-parameter-set.h (module 'wifi'): ns3::WifiInformationElementId ns3::CfParameterSet::ElementId() const [member function] + cls.add_method('ElementId', + 'ns3::WifiInformationElementId', + [], + is_const=True, is_virtual=True) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::GetCFPCount() const [member function] + cls.add_method('GetCFPCount', + 'uint8_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint64_t ns3::CfParameterSet::GetCFPDurRemainingUs() const [member function] + cls.add_method('GetCFPDurRemainingUs', + 'uint64_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint64_t ns3::CfParameterSet::GetCFPMaxDurationUs() const [member function] + cls.add_method('GetCFPMaxDurationUs', + 'uint64_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::GetCFPPeriod() const [member function] + cls.add_method('GetCFPPeriod', + 'uint8_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::GetInformationFieldSize() const [member function] + cls.add_method('GetInformationFieldSize', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## cf-parameter-set.h (module 'wifi'): uint16_t ns3::CfParameterSet::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint16_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): ns3::Buffer::Iterator ns3::CfParameterSet::Serialize(ns3::Buffer::Iterator start) const [member function] + cls.add_method('Serialize', + 'ns3::Buffer::Iterator', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SerializeInformationField(ns3::Buffer::Iterator start) const [member function] + cls.add_method('SerializeInformationField', + 'void', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True, is_virtual=True) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPCount(uint8_t cfpcount) [member function] + cls.add_method('SetCFPCount', + 'void', + [param('uint8_t', 'cfpcount')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPDurRemainingUs(uint64_t cfpdurremaining) [member function] + cls.add_method('SetCFPDurRemainingUs', + 'void', + [param('uint64_t', 'cfpdurremaining')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPMaxDurationUs(uint64_t cfpmaxduration) [member function] + cls.add_method('SetCFPMaxDurationUs', + 'void', + [param('uint64_t', 'cfpmaxduration')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPPeriod(uint8_t cfpperiod) [member function] + cls.add_method('SetCFPPeriod', + 'void', + [param('uint8_t', 'cfpperiod')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetPcfSupported(uint8_t pcfSupported) [member function] + cls.add_method('SetPcfSupported', + 'void', + [param('uint8_t', 'pcfSupported')]) + return + def register_Ns3Channel_methods(root_module, cls): ## channel.h (module 'network'): ns3::Channel::Channel(ns3::Channel const & arg0) [constructor] cls.add_constructor([param('ns3::Channel const &', 'arg0')]) @@ -11914,6 +12373,124 @@ def register_Ns3Channel_methods(root_module, cls): is_static=True) return +def register_Ns3ChannelAccessManager_methods(root_module, cls): + ## channel-access-manager.h (module 'wifi'): ns3::ChannelAccessManager::ChannelAccessManager(ns3::ChannelAccessManager const & arg0) [constructor] + cls.add_constructor([param('ns3::ChannelAccessManager const &', 'arg0')]) + ## channel-access-manager.h (module 'wifi'): ns3::ChannelAccessManager::ChannelAccessManager() [constructor] + cls.add_constructor([]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::Add(ns3::Ptr dcf) [member function] + cls.add_method('Add', + 'void', + [param('ns3::Ptr< ns3::Txop >', 'dcf')]) + ## channel-access-manager.h (module 'wifi'): ns3::Time ns3::ChannelAccessManager::GetEifsNoDifs() const [member function] + cls.add_method('GetEifsNoDifs', + 'ns3::Time', + [], + is_const=True) + ## channel-access-manager.h (module 'wifi'): bool ns3::ChannelAccessManager::IsBusy() const [member function] + cls.add_method('IsBusy', + 'bool', + [], + is_const=True) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyAckTimeoutResetNow() [member function] + cls.add_method('NotifyAckTimeoutResetNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyAckTimeoutStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyAckTimeoutStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyCtsTimeoutResetNow() [member function] + cls.add_method('NotifyCtsTimeoutResetNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyCtsTimeoutStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyCtsTimeoutStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyMaybeCcaBusyStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyMaybeCcaBusyStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyNavResetNow(ns3::Time duration) [member function] + cls.add_method('NotifyNavResetNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyNavStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyNavStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyOffNow() [member function] + cls.add_method('NotifyOffNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyOnNow() [member function] + cls.add_method('NotifyOnNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyRxEndErrorNow() [member function] + cls.add_method('NotifyRxEndErrorNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyRxEndOkNow() [member function] + cls.add_method('NotifyRxEndOkNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyRxStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyRxStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifySleepNow() [member function] + cls.add_method('NotifySleepNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifySwitchingStartNow(ns3::Time duration) [member function] + cls.add_method('NotifySwitchingStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyTxStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyTxStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyWakeupNow() [member function] + cls.add_method('NotifyWakeupNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::RemovePhyListener(ns3::Ptr phy) [member function] + cls.add_method('RemovePhyListener', + 'void', + [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::RequestAccess(ns3::Ptr state, bool isCfPeriod=false) [member function] + cls.add_method('RequestAccess', + 'void', + [param('ns3::Ptr< ns3::Txop >', 'state'), param('bool', 'isCfPeriod', default_value='false')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetEifsNoDifs(ns3::Time eifsNoDifs) [member function] + cls.add_method('SetEifsNoDifs', + 'void', + [param('ns3::Time', 'eifsNoDifs')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetSifs(ns3::Time sifs) [member function] + cls.add_method('SetSifs', + 'void', + [param('ns3::Time', 'sifs')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetSlot(ns3::Time slotTime) [member function] + cls.add_method('SetSlot', + 'void', + [param('ns3::Time', 'slotTime')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetupLow(ns3::Ptr low) [member function] + cls.add_method('SetupLow', + 'void', + [param('ns3::Ptr< ns3::MacLow >', 'low')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetupPhyListener(ns3::Ptr phy) [member function] + cls.add_method('SetupPhyListener', + 'void', + [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + return + def register_Ns3ConstantRandomVariable_methods(root_module, cls): ## random-variable-stream.h (module 'core'): static ns3::TypeId ns3::ConstantRandomVariable::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -12370,424 +12947,6 @@ def register_Ns3DataRateValue_methods(root_module, cls): [param('ns3::DataRate const &', 'value')]) return -def register_Ns3DcaTxop_methods(root_module, cls): - ## dca-txop.h (module 'wifi'): ns3::DcaTxop::DcaTxop(ns3::DcaTxop const & arg0) [constructor] - cls.add_constructor([param('ns3::DcaTxop const &', 'arg0')]) - ## dca-txop.h (module 'wifi'): ns3::DcaTxop::DcaTxop() [constructor] - cls.add_constructor([]) - ## dca-txop.h (module 'wifi'): int64_t ns3::DcaTxop::AssignStreams(int64_t stream) [member function] - cls.add_method('AssignStreams', - 'int64_t', - [param('int64_t', 'stream')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::Cancel() [member function] - cls.add_method('Cancel', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::EndTxNoAck() [member function] - cls.add_method('EndTxNoAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetAifsn() const [member function] - cls.add_method('GetAifsn', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetLow() const [member function] - cls.add_method('GetLow', - 'ns3::Ptr< ns3::MacLow >', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMaxCw() const [member function] - cls.add_method('GetMaxCw', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMinCw() const [member function] - cls.add_method('GetMinCw', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetTxopLimit() const [member function] - cls.add_method('GetTxopLimit', - 'ns3::Time', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): static ns3::TypeId ns3::DcaTxop::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetWifiMacQueue() const [member function] - cls.add_method('GetWifiMacQueue', - 'ns3::Ptr< ns3::WifiMacQueue >', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::GotAck() [member function] - cls.add_method('GotAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] - cls.add_method('GotBlockAck', - 'void', - [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::HasTxop() const [member function] - cls.add_method('HasTxop', - 'bool', - [], - is_const=True, is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsAccessRequested() const [member function] - cls.add_method('IsAccessRequested', - 'bool', - [], - is_const=True, is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsEdca() [member function] - cls.add_method('IsEdca', - 'bool', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedAck() [member function] - cls.add_method('MissedAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedBlockAck(uint8_t nMpdus) [member function] - cls.add_method('MissedBlockAck', - 'void', - [param('uint8_t', 'nMpdus')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedCts() [member function] - cls.add_method('MissedCts', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyChannelSwitching() [member function] - cls.add_method('NotifyChannelSwitching', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyOff() [member function] - cls.add_method('NotifyOff', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyOn() [member function] - cls.add_method('NotifyOn', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifySleep() [member function] - cls.add_method('NotifySleep', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyWakeUp() [member function] - cls.add_method('NotifyWakeUp', - 'void', - [], - 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', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetAifsn(uint32_t aifsn) [member function] - cls.add_method('SetAifsn', - 'void', - [param('uint32_t', 'aifsn')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetDcfManager(ns3::Ptr const manager) [member function] - cls.add_method('SetDcfManager', - 'void', - [param('ns3::Ptr< ns3::DcfManager > const', 'manager')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMacLow(ns3::Ptr const low) [member function] - cls.add_method('SetMacLow', - 'void', - [param('ns3::Ptr< ns3::MacLow > const', 'low')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMaxCw(uint32_t maxCw) [member function] - cls.add_method('SetMaxCw', - 'void', - [param('uint32_t', 'maxCw')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMinCw(uint32_t minCw) [member function] - cls.add_method('SetMinCw', - 'void', - [param('uint32_t', 'minCw')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxDroppedCallback(ns3::DcaTxop::TxDropped callback) [member function] - cls.add_method('SetTxDroppedCallback', - 'void', - [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxFailedCallback(ns3::DcaTxop::TxFailed callback) [member function] - cls.add_method('SetTxFailedCallback', - 'void', - [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxMiddle(ns3::Ptr const txMiddle) [member function] - cls.add_method('SetTxMiddle', - 'void', - [param('ns3::Ptr< ns3::MacTxMiddle > const', 'txMiddle')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxOkCallback(ns3::DcaTxop::TxOk callback) [member function] - cls.add_method('SetTxOkCallback', - 'void', - [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxopLimit(ns3::Time txopLimit) [member function] - cls.add_method('SetTxopLimit', - 'void', - [param('ns3::Time', 'txopLimit')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartBackoffNow(uint32_t nSlots) [member function] - cls.add_method('StartBackoffNow', - 'void', - [param('uint32_t', 'nSlots')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartNextFragment() [member function] - cls.add_method('StartNextFragment', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartNextPacket() [member function] - cls.add_method('StartNextPacket', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetBackoffSlots() const [member function] - cls.add_method('GetBackoffSlots', - 'uint32_t', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetBackoffStart() const [member function] - cls.add_method('GetBackoffStart', - 'ns3::Time', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetCw() const [member function] - cls.add_method('GetCw', - 'uint32_t', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetFragmentOffset() const [member function] - cls.add_method('GetFragmentOffset', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetFragmentPacket', - 'ns3::Ptr< ns3::Packet >', - [param('ns3::WifiMacHeader *', 'hdr')], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetFragmentSize() const [member function] - cls.add_method('GetFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetNextFragmentSize() const [member function] - cls.add_method('GetNextFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsLastFragment() const [member function] - cls.add_method('IsLastFragment', - 'bool', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedDataRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('NeedDataRetransmission', - 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedFragmentation() const [member function] - cls.add_method('NeedFragmentation', - 'bool', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedRtsRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('NeedRtsRetransmission', - 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NextFragment() [member function] - cls.add_method('NextFragment', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyAccessGranted() [member function] - cls.add_method('NotifyAccessGranted', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyAccessRequested() [member function] - cls.add_method('NotifyAccessRequested', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyCollision() [member function] - cls.add_method('NotifyCollision', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyInternalCollision() [member function] - cls.add_method('NotifyInternalCollision', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::ResetCw() [member function] - cls.add_method('ResetCw', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::RestartAccessIfNeeded() [member function] - cls.add_method('RestartAccessIfNeeded', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartAccessIfNeeded() [member function] - cls.add_method('StartAccessIfNeeded', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::TxDroppedPacket(ns3::Ptr item) [member function] - cls.add_method('TxDroppedPacket', - 'void', - [param('ns3::Ptr< ns3::WifiMacQueueItem const >', 'item')], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::UpdateBackoffSlotsNow(uint32_t nSlots, ns3::Time backoffUpdateBound) [member function] - cls.add_method('UpdateBackoffSlotsNow', - 'void', - [param('uint32_t', 'nSlots'), param('ns3::Time', 'backoffUpdateBound')], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::UpdateFailedCw() [member function] - cls.add_method('UpdateFailedCw', - 'void', - [], - visibility='protected') - return - -def register_Ns3DcfManager_methods(root_module, cls): - ## dcf-manager.h (module 'wifi'): ns3::DcfManager::DcfManager(ns3::DcfManager const & arg0) [constructor] - cls.add_constructor([param('ns3::DcfManager const &', 'arg0')]) - ## dcf-manager.h (module 'wifi'): ns3::DcfManager::DcfManager() [constructor] - cls.add_constructor([]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::Add(ns3::Ptr dcf) [member function] - cls.add_method('Add', - 'void', - [param('ns3::Ptr< ns3::DcaTxop >', 'dcf')]) - ## dcf-manager.h (module 'wifi'): ns3::Time ns3::DcfManager::GetEifsNoDifs() const [member function] - cls.add_method('GetEifsNoDifs', - 'ns3::Time', - [], - is_const=True) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyAckTimeoutResetNow() [member function] - cls.add_method('NotifyAckTimeoutResetNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyAckTimeoutStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyAckTimeoutStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyCtsTimeoutResetNow() [member function] - cls.add_method('NotifyCtsTimeoutResetNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyCtsTimeoutStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyCtsTimeoutStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyMaybeCcaBusyStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyMaybeCcaBusyStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyNavResetNow(ns3::Time duration) [member function] - cls.add_method('NotifyNavResetNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyNavStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyNavStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyOffNow() [member function] - cls.add_method('NotifyOffNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyOnNow() [member function] - cls.add_method('NotifyOnNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyRxEndErrorNow() [member function] - cls.add_method('NotifyRxEndErrorNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyRxEndOkNow() [member function] - cls.add_method('NotifyRxEndOkNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyRxStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyRxStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifySleepNow() [member function] - cls.add_method('NotifySleepNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifySwitchingStartNow(ns3::Time duration) [member function] - cls.add_method('NotifySwitchingStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyTxStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyTxStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyWakeupNow() [member function] - cls.add_method('NotifyWakeupNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::RemovePhyListener(ns3::Ptr phy) [member function] - cls.add_method('RemovePhyListener', - 'void', - [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::RequestAccess(ns3::Ptr state) [member function] - cls.add_method('RequestAccess', - 'void', - [param('ns3::Ptr< ns3::DcaTxop >', 'state')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetEifsNoDifs(ns3::Time eifsNoDifs) [member function] - cls.add_method('SetEifsNoDifs', - 'void', - [param('ns3::Time', 'eifsNoDifs')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetSifs(ns3::Time sifs) [member function] - cls.add_method('SetSifs', - 'void', - [param('ns3::Time', 'sifs')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetSlot(ns3::Time slotTime) [member function] - cls.add_method('SetSlot', - 'void', - [param('ns3::Time', 'slotTime')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetupLow(ns3::Ptr low) [member function] - cls.add_method('SetupLow', - 'void', - [param('ns3::Ptr< ns3::MacLow >', 'low')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetupPhyListener(ns3::Ptr phy) [member function] - cls.add_method('SetupPhyListener', - 'void', - [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='protected', is_virtual=True) - return - def register_Ns3DeterministicRandomVariable_methods(root_module, cls): ## random-variable-stream.h (module 'core'): static ns3::TypeId ns3::DeterministicRandomVariable::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -13157,257 +13316,6 @@ def register_Ns3EdcaParameterSet_methods(root_module, cls): [param('uint16_t', 'txop')]) return -def register_Ns3EdcaTxopN_methods(root_module, cls): - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::EdcaTxopN(ns3::EdcaTxopN const & arg0) [constructor] - cls.add_constructor([param('ns3::EdcaTxopN const &', 'arg0')]) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::EdcaTxopN() [constructor] - cls.add_constructor([]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::BaTxFailed(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('BaTxFailed', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::BaTxOk(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('BaTxOk', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteAmpduTransfer(ns3::Mac48Address recipient, uint8_t tid) [member function] - cls.add_method('CompleteAmpduTransfer', - 'void', - [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteConfig() [member function] - cls.add_method('CompleteConfig', - 'void', - []) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteMpduTx(ns3::Ptr packet, ns3::WifiMacHeader hdr, ns3::Time tstamp) [member function] - cls.add_method('CompleteMpduTx', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader', 'hdr'), param('ns3::Time', 'tstamp')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::EndTxNoAck() [member function] - cls.add_method('EndTxNoAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::GetAmpduExist(ns3::Mac48Address dest) const [member function] - cls.add_method('GetAmpduExist', - 'bool', - [param('ns3::Mac48Address', 'dest')], - is_const=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::GetBaAgreementExists(ns3::Mac48Address address, uint8_t tid) const [member function] - cls.add_method('GetBaAgreementExists', - 'bool', - [param('ns3::Mac48Address', 'address'), param('uint8_t', 'tid')], - is_const=True) - ## edca-txop-n.h (module 'wifi'): uint8_t ns3::EdcaTxopN::GetBlockAckThreshold() const [member function] - cls.add_method('GetBlockAckThreshold', - 'uint8_t', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetFragmentPacket', - 'ns3::Ptr< ns3::Packet >', - [param('ns3::WifiMacHeader *', 'hdr')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetMpduAggregator() const [member function] - cls.add_method('GetMpduAggregator', - 'ns3::Ptr< ns3::MpduAggregator >', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetMsduAggregator() const [member function] - cls.add_method('GetMsduAggregator', - 'ns3::Ptr< ns3::MsduAggregator >', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): uint16_t ns3::EdcaTxopN::GetNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetNextSequenceNumberFor', - 'uint16_t', - [param('ns3::WifiMacHeader *', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): static ns3::TypeId ns3::EdcaTxopN::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation ns3::EdcaTxopN::GetTypeOfStation() const [member function] - cls.add_method('GetTypeOfStation', - 'ns3::TypeOfStation', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotAck() [member function] - cls.add_method('GotAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotAddBaResponse(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address recipient) [member function] - cls.add_method('GotAddBaResponse', - 'void', - [param('ns3::MgtAddBaResponseHeader const *', 'respHdr'), param('ns3::Mac48Address', 'recipient')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] - cls.add_method('GotBlockAck', - 'void', - [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotDelBaFrame(ns3::MgtDelBaHeader const * delBaHdr, ns3::Mac48Address recipient) [member function] - cls.add_method('GotDelBaFrame', - 'void', - [param('ns3::MgtDelBaHeader const *', 'delBaHdr'), param('ns3::Mac48Address', 'recipient')]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::IsEdca() [member function] - cls.add_method('IsEdca', - 'bool', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): ns3::Mac48Address ns3::EdcaTxopN::MapDestAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('MapDestAddressForAggregation', - 'ns3::Mac48Address', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::Mac48Address ns3::EdcaTxopN::MapSrcAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('MapSrcAddressForAggregation', - 'ns3::Mac48Address', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedAck() [member function] - cls.add_method('MissedAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedBlockAck(uint8_t nMpdus) [member function] - cls.add_method('MissedBlockAck', - 'void', - [param('uint8_t', 'nMpdus')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedCts() [member function] - cls.add_method('MissedCts', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::NeedBarRetransmission() [member function] - cls.add_method('NeedBarRetransmission', - 'bool', - []) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::NeedFragmentation() const [member function] - cls.add_method('NeedFragmentation', - 'bool', - [], - is_const=True, is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyAccessGranted() [member function] - cls.add_method('NotifyAccessGranted', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyCollision() [member function] - cls.add_method('NotifyCollision', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyInternalCollision() [member function] - cls.add_method('NotifyInternalCollision', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::PeekNextRetransmitPacket(ns3::WifiMacHeader & header, ns3::Mac48Address recipient, uint8_t tid, ns3::Time * timestamp) [member function] - cls.add_method('PeekNextRetransmitPacket', - 'ns3::Ptr< ns3::Packet const >', - [param('ns3::WifiMacHeader &', 'header'), param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) - ## edca-txop-n.h (module 'wifi'): uint16_t ns3::EdcaTxopN::PeekNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('PeekNextSequenceNumberFor', - 'uint16_t', - [param('ns3::WifiMacHeader *', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::PushFront(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('PushFront', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::RemoveRetransmitPacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] - cls.add_method('RemoveRetransmitPacket', - 'void', - [param('uint8_t', 'tid'), param('ns3::Mac48Address', 'recipient'), param('uint16_t', 'seqnumber')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::RestartAccessIfNeeded() [member function] - cls.add_method('RestartAccessIfNeeded', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SendDelbaFrame(ns3::Mac48Address addr, uint8_t tid, bool byOriginator) [member function] - cls.add_method('SendDelbaFrame', - 'void', - [param('ns3::Mac48Address', 'addr'), param('uint8_t', 'tid'), param('bool', 'byOriginator')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetAccessCategory(ns3::AcIndex ac) [member function] - cls.add_method('SetAccessCategory', - 'void', - [param('ns3::AcIndex', 'ac')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetAmpduExist(ns3::Mac48Address dest, bool enableAmpdu) [member function] - cls.add_method('SetAmpduExist', - 'void', - [param('ns3::Mac48Address', 'dest'), param('bool', 'enableAmpdu')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetBlockAckInactivityTimeout(uint16_t timeout) [member function] - cls.add_method('SetBlockAckInactivityTimeout', - 'void', - [param('uint16_t', 'timeout')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetBlockAckThreshold(uint8_t threshold) [member function] - cls.add_method('SetBlockAckThreshold', - 'void', - [param('uint8_t', 'threshold')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetMpduAggregator(ns3::Ptr const aggr) [member function] - cls.add_method('SetMpduAggregator', - 'void', - [param('ns3::Ptr< ns3::MpduAggregator > const', 'aggr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetMsduAggregator(ns3::Ptr const aggr) [member function] - cls.add_method('SetMsduAggregator', - 'void', - [param('ns3::Ptr< ns3::MsduAggregator > const', 'aggr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetTypeOfStation(ns3::TypeOfStation type) [member function] - cls.add_method('SetTypeOfStation', - 'void', - [param('ns3::TypeOfStation', 'type')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartAccessIfNeeded() [member function] - cls.add_method('StartAccessIfNeeded', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNextPacket() [member function] - cls.add_method('StartNextPacket', - 'void', - [], - is_virtual=True) - ## 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) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetFragmentOffset() const [member function] - cls.add_method('GetFragmentOffset', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetFragmentSize() const [member function] - cls.add_method('GetFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetNextFragmentSize() const [member function] - cls.add_method('GetNextFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::HasTxop() const [member function] - cls.add_method('HasTxop', - 'bool', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::IsLastFragment() const [member function] - cls.add_method('IsLastFragment', - 'bool', - [], - is_const=True, visibility='private', is_virtual=True) - return - def register_Ns3EmpiricalRandomVariable_methods(root_module, cls): ## random-variable-stream.h (module 'core'): ns3::EmpiricalRandomVariable::EmpiricalRandomVariable() [constructor] cls.add_constructor([]) @@ -15512,6 +15420,11 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::Time', [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters const &', 'parameters')], is_const=True) + ## mac-low.h (module 'wifi'): bool ns3::MacLow::CanTransmitNextCfFrame() const [member function] + cls.add_method('CanTransmitNextCfFrame', + 'bool', + [], + is_const=True) ## mac-low.h (module 'wifi'): void ns3::MacLow::CreateBlockAckAgreement(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address originator, uint16_t startingSeq) [member function] cls.add_method('CreateBlockAckAgreement', 'void', @@ -15524,6 +15437,10 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('DestroyBlockAckAgreement', 'void', [param('ns3::Mac48Address', 'originator'), param('uint8_t', 'tid')]) + ## mac-low.h (module 'wifi'): bool ns3::MacLow::DoNavStartNow(ns3::Time duration) [member function] + cls.add_method('DoNavStartNow', + 'bool', + [param('ns3::Time', 'duration')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::FlushAggregateQueue(uint8_t tid) [member function] cls.add_method('FlushAggregateQueue', 'void', @@ -15543,11 +15460,21 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::Time', [], is_const=True) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetBeaconInterval() const [member function] + cls.add_method('GetBeaconInterval', + 'ns3::Time', + [], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Mac48Address ns3::MacLow::GetBssid() const [member function] cls.add_method('GetBssid', 'ns3::Mac48Address', [], is_const=True) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetCfpMaxDuration() const [member function] + cls.add_method('GetCfpMaxDuration', + 'ns3::Time', + [], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetCompressedBlockAckTimeout() const [member function] cls.add_method('GetCompressedBlockAckTimeout', 'ns3::Time', @@ -15578,6 +15505,11 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::Time', [], is_const=True) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetRemainingCfpDuration() const [member function] + cls.add_method('GetRemainingCfpDuration', + 'ns3::Time', + [], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetRifs() const [member function] cls.add_method('GetRifs', 'ns3::Time', @@ -15598,6 +15530,11 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## mac-low.h (module 'wifi'): bool ns3::MacLow::IsCfPeriod() const [member function] + cls.add_method('IsCfPeriod', + 'bool', + [], + is_const=True, is_virtual=True) ## mac-low.h (module 'wifi'): bool ns3::MacLow::IsPromisc() const [member function] cls.add_method('IsPromisc', 'bool', @@ -15623,14 +15560,14 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('ReceiveOk', 'void', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxSnr'), param('ns3::WifiTxVector', 'txVector'), param('bool', 'ampduSubframe')]) - ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterDcf(ns3::Ptr dcf) [member function] + ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterDcf(ns3::Ptr dcf) [member function] cls.add_method('RegisterDcf', 'void', - [param('ns3::Ptr< ns3::DcfManager >', 'dcf')]) - ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterEdcaForAc(ns3::AcIndex ac, ns3::Ptr edca) [member function] + [param('ns3::Ptr< ns3::ChannelAccessManager >', 'dcf')]) + ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterEdcaForAc(ns3::AcIndex ac, ns3::Ptr edca) [member function] cls.add_method('RegisterEdcaForAc', 'void', - [param('ns3::AcIndex', 'ac'), param('ns3::Ptr< ns3::EdcaTxopN >', 'edca')]) + [param('ns3::AcIndex', 'ac'), param('ns3::Ptr< ns3::QosTxop >', 'edca')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::ResetPhy() [member function] cls.add_method('ResetPhy', 'void', @@ -15647,10 +15584,18 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('SetBasicBlockAckTimeout', 'void', [param('ns3::Time', 'blockAckTimeout')]) + ## mac-low.h (module 'wifi'): void ns3::MacLow::SetBeaconInterval(ns3::Time interval) [member function] + cls.add_method('SetBeaconInterval', + 'void', + [param('ns3::Time', 'interval')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::SetBssid(ns3::Mac48Address ad) [member function] cls.add_method('SetBssid', 'void', [param('ns3::Mac48Address', 'ad')]) + ## mac-low.h (module 'wifi'): void ns3::MacLow::SetCfpMaxDuration(ns3::Time duration) [member function] + cls.add_method('SetCfpMaxDuration', + 'void', + [param('ns3::Time', 'duration')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::SetCompressedBlockAckTimeout(ns3::Time blockAckTimeout) [member function] cls.add_method('SetCompressedBlockAckTimeout', 'void', @@ -15695,15 +15640,15 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('SetWifiRemoteStationManager', 'void', [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'manager')]) - ## mac-low.h (module 'wifi'): void ns3::MacLow::StartTransmission(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters parameters, ns3::Ptr dca) [member function] + ## mac-low.h (module 'wifi'): void ns3::MacLow::StartTransmission(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters parameters, ns3::Ptr txop) [member function] cls.add_method('StartTransmission', 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters', 'parameters'), param('ns3::Ptr< ns3::DcaTxop >', 'dca')], + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters', 'parameters'), param('ns3::Ptr< ns3::Txop >', 'txop')], is_virtual=True) - ## mac-low.h (module 'wifi'): bool ns3::MacLow::StopMpduAggregation(ns3::Ptr peekedPacket, ns3::WifiMacHeader peekedHdr, ns3::Ptr aggregatedPacket, uint16_t size) const [member function] + ## mac-low.h (module 'wifi'): bool ns3::MacLow::StopMpduAggregation(ns3::Ptr peekedPacket, ns3::WifiMacHeader peekedHdr, ns3::Ptr aggregatedPacket, uint8_t blockAckSize) const [member function] cls.add_method('StopMpduAggregation', 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'peekedPacket'), param('ns3::WifiMacHeader', 'peekedHdr'), param('ns3::Ptr< ns3::Packet >', 'aggregatedPacket'), param('uint16_t', 'size')], + [param('ns3::Ptr< ns3::Packet const >', 'peekedPacket'), param('ns3::WifiMacHeader', 'peekedHdr'), param('ns3::Ptr< ns3::Packet >', 'aggregatedPacket'), param('uint8_t', 'blockAckSize')], is_const=True) ## mac-low.h (module 'wifi'): void ns3::MacLow::DoDispose() [member function] cls.add_method('DoDispose', @@ -15725,6 +15670,10 @@ def register_Ns3MacRxMiddle_methods(root_module, cls): cls.add_method('SetForwardCallback', 'void', [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::WifiMacHeader const *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## mac-rx-middle.h (module 'wifi'): void ns3::MacRxMiddle::SetPcfCallback(ns3::Callback callback) [member function] + cls.add_method('SetPcfCallback', + 'void', + [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) return def register_Ns3MacTxMiddle_methods(root_module, cls): @@ -15905,9 +15854,9 @@ def register_Ns3MinstrelWifiManager_methods(root_module, cls): cls.add_method('CountRetries', 'uint32_t', [param('ns3::MinstrelWifiRemoteStation *', 'station')]) - ## minstrel-wifi-manager.h (module 'wifi'): uint32_t ns3::MinstrelWifiManager::FindRate(ns3::MinstrelWifiRemoteStation * station) [member function] + ## minstrel-wifi-manager.h (module 'wifi'): uint8_t ns3::MinstrelWifiManager::FindRate(ns3::MinstrelWifiRemoteStation * station) [member function] cls.add_method('FindRate', - 'uint32_t', + 'uint8_t', [param('ns3::MinstrelWifiRemoteStation *', 'station')]) ## minstrel-wifi-manager.h (module 'wifi'): ns3::WifiTxVector ns3::MinstrelWifiManager::GetDataTxVector(ns3::MinstrelWifiRemoteStation * station) [member function] cls.add_method('GetDataTxVector', @@ -17026,6 +16975,257 @@ def register_Ns3QosBlockedDestinations_methods(root_module, cls): [param('ns3::Mac48Address', 'dest'), param('uint8_t', 'tid')]) return +def register_Ns3QosTxop_methods(root_module, cls): + ## qos-txop.h (module 'wifi'): ns3::QosTxop::QosTxop(ns3::QosTxop const & arg0) [constructor] + cls.add_constructor([param('ns3::QosTxop const &', 'arg0')]) + ## qos-txop.h (module 'wifi'): ns3::QosTxop::QosTxop() [constructor] + cls.add_constructor([]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::BaTxFailed(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('BaTxFailed', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::BaTxOk(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('BaTxOk', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteAmpduTransfer(ns3::Mac48Address recipient, uint8_t tid) [member function] + cls.add_method('CompleteAmpduTransfer', + 'void', + [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteConfig() [member function] + cls.add_method('CompleteConfig', + 'void', + []) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteMpduTx(ns3::Ptr packet, ns3::WifiMacHeader hdr, ns3::Time tstamp) [member function] + cls.add_method('CompleteMpduTx', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader', 'hdr'), param('ns3::Time', 'tstamp')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::EndTxNoAck() [member function] + cls.add_method('EndTxNoAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::GetAmpduExist(ns3::Mac48Address dest) const [member function] + cls.add_method('GetAmpduExist', + 'bool', + [param('ns3::Mac48Address', 'dest')], + is_const=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::GetBaAgreementExists(ns3::Mac48Address address, uint8_t tid) const [member function] + cls.add_method('GetBaAgreementExists', + 'bool', + [param('ns3::Mac48Address', 'address'), param('uint8_t', 'tid')], + is_const=True) + ## qos-txop.h (module 'wifi'): uint8_t ns3::QosTxop::GetBlockAckThreshold() const [member function] + cls.add_method('GetBlockAckThreshold', + 'uint8_t', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetFragmentPacket', + 'ns3::Ptr< ns3::Packet >', + [param('ns3::WifiMacHeader *', 'hdr')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetMpduAggregator() const [member function] + cls.add_method('GetMpduAggregator', + 'ns3::Ptr< ns3::MpduAggregator >', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetMsduAggregator() const [member function] + cls.add_method('GetMsduAggregator', + 'ns3::Ptr< ns3::MsduAggregator >', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): uint16_t ns3::QosTxop::GetNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetNextSequenceNumberFor', + 'uint16_t', + [param('ns3::WifiMacHeader *', 'hdr')]) + ## qos-txop.h (module 'wifi'): static ns3::TypeId ns3::QosTxop::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## qos-txop.h (module 'wifi'): ns3::TypeOfStation ns3::QosTxop::GetTypeOfStation() const [member function] + cls.add_method('GetTypeOfStation', + 'ns3::TypeOfStation', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotAck() [member function] + cls.add_method('GotAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotAddBaResponse(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address recipient) [member function] + cls.add_method('GotAddBaResponse', + 'void', + [param('ns3::MgtAddBaResponseHeader const *', 'respHdr'), param('ns3::Mac48Address', 'recipient')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] + cls.add_method('GotBlockAck', + 'void', + [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotDelBaFrame(ns3::MgtDelBaHeader const * delBaHdr, ns3::Mac48Address recipient) [member function] + cls.add_method('GotDelBaFrame', + 'void', + [param('ns3::MgtDelBaHeader const *', 'delBaHdr'), param('ns3::Mac48Address', 'recipient')]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::IsQosTxop() const [member function] + cls.add_method('IsQosTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## qos-txop.h (module 'wifi'): ns3::Mac48Address ns3::QosTxop::MapDestAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('MapDestAddressForAggregation', + 'ns3::Mac48Address', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::Mac48Address ns3::QosTxop::MapSrcAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('MapSrcAddressForAggregation', + 'ns3::Mac48Address', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedAck() [member function] + cls.add_method('MissedAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedBlockAck(uint8_t nMpdus) [member function] + cls.add_method('MissedBlockAck', + 'void', + [param('uint8_t', 'nMpdus')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedCts() [member function] + cls.add_method('MissedCts', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::NeedBarRetransmission() [member function] + cls.add_method('NeedBarRetransmission', + 'bool', + []) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::NeedFragmentation() const [member function] + cls.add_method('NeedFragmentation', + 'bool', + [], + is_const=True, is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyAccessGranted() [member function] + cls.add_method('NotifyAccessGranted', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyCollision() [member function] + cls.add_method('NotifyCollision', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyInternalCollision() [member function] + cls.add_method('NotifyInternalCollision', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::PeekNextRetransmitPacket(ns3::WifiMacHeader & header, uint8_t tid, ns3::Time * timestamp) [member function] + cls.add_method('PeekNextRetransmitPacket', + 'ns3::Ptr< ns3::Packet const >', + [param('ns3::WifiMacHeader &', 'header'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) + ## qos-txop.h (module 'wifi'): uint16_t ns3::QosTxop::PeekNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('PeekNextSequenceNumberFor', + 'uint16_t', + [param('ns3::WifiMacHeader *', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::PushFront(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('PushFront', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::RemoveRetransmitPacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] + cls.add_method('RemoveRetransmitPacket', + 'void', + [param('uint8_t', 'tid'), param('ns3::Mac48Address', 'recipient'), param('uint16_t', 'seqnumber')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::RestartAccessIfNeeded() [member function] + cls.add_method('RestartAccessIfNeeded', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SendDelbaFrame(ns3::Mac48Address addr, uint8_t tid, bool byOriginator) [member function] + cls.add_method('SendDelbaFrame', + 'void', + [param('ns3::Mac48Address', 'addr'), param('uint8_t', 'tid'), param('bool', 'byOriginator')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetAccessCategory(ns3::AcIndex ac) [member function] + cls.add_method('SetAccessCategory', + 'void', + [param('ns3::AcIndex', 'ac')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetAmpduExist(ns3::Mac48Address dest, bool enableAmpdu) [member function] + cls.add_method('SetAmpduExist', + 'void', + [param('ns3::Mac48Address', 'dest'), param('bool', 'enableAmpdu')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetBlockAckInactivityTimeout(uint16_t timeout) [member function] + cls.add_method('SetBlockAckInactivityTimeout', + 'void', + [param('uint16_t', 'timeout')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetBlockAckThreshold(uint8_t threshold) [member function] + cls.add_method('SetBlockAckThreshold', + 'void', + [param('uint8_t', 'threshold')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetMpduAggregator(ns3::Ptr const aggr) [member function] + cls.add_method('SetMpduAggregator', + 'void', + [param('ns3::Ptr< ns3::MpduAggregator > const', 'aggr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetMsduAggregator(ns3::Ptr const aggr) [member function] + cls.add_method('SetMsduAggregator', + 'void', + [param('ns3::Ptr< ns3::MsduAggregator > const', 'aggr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetTypeOfStation(ns3::TypeOfStation type) [member function] + cls.add_method('SetTypeOfStation', + 'void', + [param('ns3::TypeOfStation', 'type')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::StartAccessIfNeeded() [member function] + cls.add_method('StartAccessIfNeeded', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::StartNextPacket() [member function] + cls.add_method('StartNextPacket', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): ns3::QosTxop::m_aMpduEnabled [variable] + cls.add_instance_attribute('m_aMpduEnabled', 'std::map< ns3::Mac48Address, bool >', is_const=False) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetFragmentOffset() const [member function] + cls.add_method('GetFragmentOffset', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetFragmentSize() const [member function] + cls.add_method('GetFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetNextFragmentSize() const [member function] + cls.add_method('GetNextFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::HasTxop() const [member function] + cls.add_method('HasTxop', + 'bool', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::IsLastFragment() const [member function] + cls.add_method('IsLastFragment', + 'bool', + [], + is_const=True, visibility='private', is_virtual=True) + return + def register_Ns3Queue__Ns3WifiMacQueueItem_methods(root_module, cls): ## queue.h (module 'network'): static ns3::TypeId ns3::Queue::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -17382,29 +17582,29 @@ def register_Ns3RegularWifiMac_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetDcaTxop() const [member function] - cls.add_method('GetDcaTxop', - 'ns3::Ptr< ns3::DcaTxop >', + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetTxop() const [member function] + cls.add_method('GetTxop', + 'ns3::Ptr< ns3::Txop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVOQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVOQueue() const [member function] cls.add_method('GetVOQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVIQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVIQueue() const [member function] cls.add_method('GetVIQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBEQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBEQueue() const [member function] cls.add_method('GetBEQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBKQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBKQueue() const [member function] cls.add_method('GetBKQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') ## regular-wifi-mac.h (module 'wifi'): void ns3::RegularWifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] @@ -17456,7 +17656,7 @@ def register_Ns3RegularWifiMac_methods(root_module, cls): cls.add_method('SetQosSupported', 'void', [param('bool', 'enable')], - visibility='protected') + visibility='protected', is_virtual=True) ## regular-wifi-mac.h (module 'wifi'): bool ns3::RegularWifiMac::GetQosSupported() const [member function] cls.add_method('GetQosSupported', 'bool', @@ -17802,9 +18002,9 @@ def register_Ns3SpectrumWifiPhy_methods(root_module, cls): 'double', [], is_const=True) - ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetCenterFrequencyForChannelWidth(ns3::WifiTxVector txVector) const [member function] + ## spectrum-wifi-phy.h (module 'wifi'): uint16_t ns3::SpectrumWifiPhy::GetCenterFrequencyForChannelWidth(ns3::WifiTxVector txVector) const [member function] cls.add_method('GetCenterFrequencyForChannelWidth', - 'uint32_t', + 'uint16_t', [param('ns3::WifiTxVector', 'txVector')], is_const=True) ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetChannel() const [member function] @@ -17966,31 +18166,6 @@ def register_Ns3SsidValue_methods(root_module, cls): [param('ns3::Ssid const &', 'value')]) return -def register_Ns3StaWifiMac_methods(root_module, cls): - ## sta-wifi-mac.h (module 'wifi'): static ns3::TypeId ns3::StaWifiMac::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## sta-wifi-mac.h (module 'wifi'): ns3::StaWifiMac::StaWifiMac() [constructor] - cls.add_constructor([]) - ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to) [member function] - cls.add_method('Enqueue', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to')], - is_virtual=True) - ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::SetWifiPhy(ns3::Ptr const phy) [member function] - cls.add_method('SetWifiPhy', - 'void', - [param('ns3::Ptr< ns3::WifiPhy > const', 'phy')], - is_virtual=True) - ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::Receive(ns3::Ptr packet, ns3::WifiMacHeader const * hdr) [member function] - cls.add_method('Receive', - 'void', - [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr')], - visibility='private', is_virtual=True) - return - def register_Ns3SupportedRates_methods(root_module, cls): cls.add_output_stream_operator() ## supported-rates.h (module 'wifi'): ns3::SupportedRates::SupportedRates() [constructor] @@ -18507,6 +18682,10 @@ def register_Ns3WifiMacQueue_methods(root_module, cls): 'ns3::Ptr< ns3::WifiMacQueueItem >', [], is_virtual=True) + ## wifi-mac-queue.h (module 'wifi'): ns3::Ptr ns3::WifiMacQueue::DequeueByAddress(ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] + cls.add_method('DequeueByAddress', + 'ns3::Ptr< ns3::WifiMacQueueItem >', + [param('ns3::WifiMacHeader::AddressType', 'type'), param('ns3::Mac48Address', 'dest')]) ## wifi-mac-queue.h (module 'wifi'): ns3::Ptr ns3::WifiMacQueue::DequeueByTidAndAddress(uint8_t tid, ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] cls.add_method('DequeueByTidAndAddress', 'ns3::Ptr< ns3::WifiMacQueueItem >', @@ -18537,6 +18716,10 @@ def register_Ns3WifiMacQueue_methods(root_module, cls): cls.add_method('Remove', 'bool', [param('ns3::Ptr< ns3::Packet const >', 'packet')]) + ## wifi-mac-queue.h (module 'wifi'): uint32_t ns3::WifiMacQueue::GetNPacketsByAddress(ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] + cls.add_method('GetNPacketsByAddress', + 'uint32_t', + [param('ns3::WifiMacHeader::AddressType', 'type'), param('ns3::Mac48Address', 'dest')]) ## wifi-mac-queue.h (module 'wifi'): uint32_t ns3::WifiMacQueue::GetNPacketsByTidAndAddress(uint8_t tid, ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] cls.add_method('GetNPacketsByTidAndAddress', 'uint32_t', @@ -19040,109 +19223,6 @@ def register_Ns3AdhocWifiMac_methods(root_module, cls): visibility='private', is_virtual=True) return -def register_Ns3ApWifiMac_methods(root_module, cls): - ## ap-wifi-mac.h (module 'wifi'): static ns3::TypeId ns3::ApWifiMac::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## ap-wifi-mac.h (module 'wifi'): ns3::ApWifiMac::ApWifiMac() [constructor] - cls.add_constructor([]) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetWifiRemoteStationManager(ns3::Ptr const stationManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'stationManager')], - is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetLinkUpCallback(ns3::Callback linkUp) [member function] - cls.add_method('SetLinkUpCallback', - 'void', - [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkUp')], - is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to) [member function] - cls.add_method('Enqueue', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to')], - is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to, ns3::Mac48Address from) [member function] - cls.add_method('Enqueue', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to'), param('ns3::Mac48Address', 'from')], - is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::SupportsSendFrom() const [member function] - cls.add_method('SupportsSendFrom', - 'bool', - [], - is_const=True, is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetAddress(ns3::Mac48Address address) [member function] - cls.add_method('SetAddress', - 'void', - [param('ns3::Mac48Address', 'address')], - is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetBeaconInterval(ns3::Time interval) [member function] - cls.add_method('SetBeaconInterval', - 'void', - [param('ns3::Time', 'interval')]) - ## ap-wifi-mac.h (module 'wifi'): ns3::Time ns3::ApWifiMac::GetBeaconInterval() const [member function] - cls.add_method('GetBeaconInterval', - 'ns3::Time', - [], - is_const=True) - ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::GetShortSlotTimeEnabled() const [member function] - cls.add_method('GetShortSlotTimeEnabled', - 'bool', - [], - is_const=True) - ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::GetShortPreambleEnabled() const [member function] - cls.add_method('GetShortPreambleEnabled', - 'bool', - [], - is_const=True) - ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::IsNonGfHtStasPresent() const [member function] - cls.add_method('IsNonGfHtStasPresent', - 'bool', - [], - is_const=True) - ## ap-wifi-mac.h (module 'wifi'): uint16_t ns3::ApWifiMac::GetVhtOperationalChannelWidth() const [member function] - cls.add_method('GetVhtOperationalChannelWidth', - 'uint16_t', - [], - is_const=True) - ## ap-wifi-mac.h (module 'wifi'): int64_t ns3::ApWifiMac::AssignStreams(int64_t stream) [member function] - cls.add_method('AssignStreams', - 'int64_t', - [param('int64_t', 'stream')]) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Receive(ns3::Ptr packet, ns3::WifiMacHeader const * hdr) [member function] - cls.add_method('Receive', - 'void', - [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr')], - visibility='private', is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::TxOk(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('TxOk', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')], - visibility='private', is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::TxFailed(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('TxFailed', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')], - visibility='private', is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::DeaggregateAmsduAndForward(ns3::Ptr aggregatedPacket, ns3::WifiMacHeader const * hdr) [member function] - cls.add_method('DeaggregateAmsduAndForward', - 'void', - [param('ns3::Ptr< ns3::Packet >', 'aggregatedPacket'), param('ns3::WifiMacHeader const *', 'hdr')], - visibility='private', is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='private', is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='private', is_virtual=True) - return - def register_Ns3CallbackImpl__Ns3ObjectBase___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): ## callback.h (module 'core'): ns3::CallbackImpl::CallbackImpl() [constructor] cls.add_constructor([]) @@ -19781,6 +19861,177 @@ def register_Ns3CallbackImpl__Void_Unsigned_long_Unsigned_long_Ns3Empty_Ns3Empty is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return +def register_Ns3InfrastructureWifiMac_methods(root_module, cls): + ## infrastructure-wifi-mac.h (module 'wifi'): static ns3::TypeId ns3::InfrastructureWifiMac::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## infrastructure-wifi-mac.h (module 'wifi'): ns3::InfrastructureWifiMac::InfrastructureWifiMac() [constructor] + cls.add_constructor([]) + ## infrastructure-wifi-mac.h (module 'wifi'): void ns3::InfrastructureWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to) [member function] + cls.add_method('Enqueue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to')], + is_pure_virtual=True, is_virtual=True) + ## infrastructure-wifi-mac.h (module 'wifi'): void ns3::InfrastructureWifiMac::SetQosSupported(bool enable) [member function] + cls.add_method('SetQosSupported', + 'void', + [param('bool', 'enable')], + is_virtual=True) + ## infrastructure-wifi-mac.h (module 'wifi'): void ns3::InfrastructureWifiMac::SetPcfSupported(bool enable) [member function] + cls.add_method('SetPcfSupported', + 'void', + [param('bool', 'enable')]) + ## infrastructure-wifi-mac.h (module 'wifi'): bool ns3::InfrastructureWifiMac::GetPcfSupported() const [member function] + cls.add_method('GetPcfSupported', + 'bool', + [], + is_const=True) + return + +def register_Ns3StaWifiMac_methods(root_module, cls): + ## sta-wifi-mac.h (module 'wifi'): static ns3::TypeId ns3::StaWifiMac::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## sta-wifi-mac.h (module 'wifi'): ns3::StaWifiMac::StaWifiMac() [constructor] + cls.add_constructor([]) + ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::SetWifiRemoteStationManager(ns3::Ptr const stationManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'stationManager')], + is_virtual=True) + ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to) [member function] + cls.add_method('Enqueue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to')], + is_virtual=True) + ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::SetWifiPhy(ns3::Ptr const phy) [member function] + cls.add_method('SetWifiPhy', + 'void', + [param('ns3::Ptr< ns3::WifiPhy > const', 'phy')], + is_virtual=True) + ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::Receive(ns3::Ptr packet, ns3::WifiMacHeader const * hdr) [member function] + cls.add_method('Receive', + 'void', + [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr')], + visibility='private', is_virtual=True) + return + +def register_Ns3ApWifiMac_methods(root_module, cls): + ## ap-wifi-mac.h (module 'wifi'): static ns3::TypeId ns3::ApWifiMac::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## ap-wifi-mac.h (module 'wifi'): ns3::ApWifiMac::ApWifiMac() [constructor] + cls.add_constructor([]) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetWifiRemoteStationManager(ns3::Ptr const stationManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'stationManager')], + is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetLinkUpCallback(ns3::Callback linkUp) [member function] + cls.add_method('SetLinkUpCallback', + 'void', + [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkUp')], + is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to) [member function] + cls.add_method('Enqueue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to')], + is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to, ns3::Mac48Address from) [member function] + cls.add_method('Enqueue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to'), param('ns3::Mac48Address', 'from')], + is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::SupportsSendFrom() const [member function] + cls.add_method('SupportsSendFrom', + 'bool', + [], + is_const=True, is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetAddress(ns3::Mac48Address address) [member function] + cls.add_method('SetAddress', + 'void', + [param('ns3::Mac48Address', 'address')], + is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetBeaconInterval(ns3::Time interval) [member function] + cls.add_method('SetBeaconInterval', + 'void', + [param('ns3::Time', 'interval')]) + ## ap-wifi-mac.h (module 'wifi'): ns3::Time ns3::ApWifiMac::GetBeaconInterval() const [member function] + cls.add_method('GetBeaconInterval', + 'ns3::Time', + [], + is_const=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetCfpMaxDuration(ns3::Time duration) [member function] + cls.add_method('SetCfpMaxDuration', + 'void', + [param('ns3::Time', 'duration')]) + ## ap-wifi-mac.h (module 'wifi'): ns3::Time ns3::ApWifiMac::GetCfpMaxDuration() const [member function] + cls.add_method('GetCfpMaxDuration', + 'ns3::Time', + [], + is_const=True) + ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::GetShortSlotTimeEnabled() const [member function] + cls.add_method('GetShortSlotTimeEnabled', + 'bool', + [], + is_const=True) + ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::GetShortPreambleEnabled() const [member function] + cls.add_method('GetShortPreambleEnabled', + 'bool', + [], + is_const=True) + ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::IsNonGfHtStasPresent() const [member function] + cls.add_method('IsNonGfHtStasPresent', + 'bool', + [], + is_const=True) + ## ap-wifi-mac.h (module 'wifi'): uint16_t ns3::ApWifiMac::GetVhtOperationalChannelWidth() const [member function] + cls.add_method('GetVhtOperationalChannelWidth', + 'uint16_t', + [], + is_const=True) + ## ap-wifi-mac.h (module 'wifi'): int64_t ns3::ApWifiMac::AssignStreams(int64_t stream) [member function] + cls.add_method('AssignStreams', + 'int64_t', + [param('int64_t', 'stream')]) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Receive(ns3::Ptr packet, ns3::WifiMacHeader const * hdr) [member function] + cls.add_method('Receive', + 'void', + [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr')], + visibility='private', is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::TxOk(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('TxOk', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')], + visibility='private', is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::TxFailed(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('TxFailed', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')], + visibility='private', is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::DeaggregateAmsduAndForward(ns3::Ptr aggregatedPacket, ns3::WifiMacHeader const * hdr) [member function] + cls.add_method('DeaggregateAmsduAndForward', + 'void', + [param('ns3::Ptr< ns3::Packet >', 'aggregatedPacket'), param('ns3::WifiMacHeader const *', 'hdr')], + visibility='private', is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='private', is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='private', is_virtual=True) + return + def register_Ns3HashImplementation_methods(root_module, cls): ## hash-function.h (module 'core'): ns3::Hash::Implementation::Implementation(ns3::Hash::Implementation const & arg0) [constructor] cls.add_constructor([param('ns3::Hash::Implementation const &', 'arg0')]) diff --git a/src/wifi/bindings/modulegen__gcc_LP64.py b/src/wifi/bindings/modulegen__gcc_LP64.py index 41760360f..fe2b27f68 100644 --- a/src/wifi/bindings/modulegen__gcc_LP64.py +++ b/src/wifi/bindings/modulegen__gcc_LP64.py @@ -32,12 +32,12 @@ def register_types(module): module.add_enum('MpduType', ['NORMAL_MPDU', 'MPDU_IN_AGGREGATE', 'LAST_MPDU_IN_AGGREGATE']) ## ht-operation.h (module 'wifi'): ns3::HtProtectionType [enumeration] module.add_enum('HtProtectionType', ['NO_PROTECTION', 'NON_MEMBER_PROTECTION', 'TWENTY_MHZ_PROTECTION', 'MIXED_MODE_PROTECTION']) - ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation [enumeration] + ## qos-txop.h (module 'wifi'): ns3::TypeOfStation [enumeration] module.add_enum('TypeOfStation', ['STA', 'AP', 'ADHOC_STA', 'MESH', 'HT_STA', 'HT_AP', 'HT_ADHOC_STA', 'OCB']) ## block-ack-type.h (module 'wifi'): ns3::BlockAckType [enumeration] module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK']) ## 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']) + 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_CTL_END', 'WIFI_MAC_CTL_END_ACK', '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']) ## 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-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration] @@ -410,6 +410,8 @@ def register_types(module): module.add_class('TriangularRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## propagation-loss-model.h (module 'propagation'): ns3::TwoRayGroundPropagationLossModel [class] module.add_class('TwoRayGroundPropagationLossModel', import_from_module='ns.propagation', parent=root_module['ns3::PropagationLossModel']) + ## txop.h (module 'wifi'): ns3::Txop [class] + module.add_class('Txop', parent=root_module['ns3::Object']) ## random-variable-stream.h (module 'core'): ns3::UniformRandomVariable [class] module.add_class('UniformRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## random-variable-stream.h (module 'core'): ns3::WeibullRandomVariable [class] @@ -504,8 +506,12 @@ def register_types(module): module.add_class('CallbackValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue']) ## cara-wifi-manager.h (module 'wifi'): ns3::CaraWifiManager [class] module.add_class('CaraWifiManager', parent=root_module['ns3::WifiRemoteStationManager']) + ## cf-parameter-set.h (module 'wifi'): ns3::CfParameterSet [class] + module.add_class('CfParameterSet', parent=root_module['ns3::WifiInformationElement']) ## channel.h (module 'network'): ns3::Channel [class] module.add_class('Channel', import_from_module='ns.network', parent=root_module['ns3::Object']) + ## channel-access-manager.h (module 'wifi'): ns3::ChannelAccessManager [class] + module.add_class('ChannelAccessManager', parent=root_module['ns3::Object']) ## random-variable-stream.h (module 'core'): ns3::ConstantRandomVariable [class] module.add_class('ConstantRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## constant-rate-wifi-manager.h (module 'wifi'): ns3::ConstantRateWifiManager [class] @@ -522,10 +528,6 @@ def register_types(module): module.add_class('DataRateChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker']) ## data-rate.h (module 'network'): ns3::DataRateValue [class] module.add_class('DataRateValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) - ## dca-txop.h (module 'wifi'): ns3::DcaTxop [class] - module.add_class('DcaTxop', parent=root_module['ns3::Object']) - ## dcf-manager.h (module 'wifi'): ns3::DcfManager [class] - module.add_class('DcfManager', parent=root_module['ns3::Object']) ## random-variable-stream.h (module 'core'): ns3::DeterministicRandomVariable [class] module.add_class('DeterministicRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## device-energy-model.h (module 'energy'): ns3::DeviceEnergyModel [class] @@ -536,8 +538,6 @@ def register_types(module): module.add_class('DsssParameterSet', parent=root_module['ns3::WifiInformationElement']) ## edca-parameter-set.h (module 'wifi'): ns3::EdcaParameterSet [class] module.add_class('EdcaParameterSet', parent=root_module['ns3::WifiInformationElement']) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN [class] - module.add_class('EdcaTxopN', parent=root_module['ns3::DcaTxop']) ## random-variable-stream.h (module 'core'): ns3::EmpiricalRandomVariable [class] module.add_class('EmpiricalRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream']) ## attribute.h (module 'core'): ns3::EmptyAttributeAccessor [class] @@ -680,6 +680,8 @@ def register_types(module): module.add_class('ParfWifiManager', parent=root_module['ns3::WifiRemoteStationManager']) ## qos-blocked-destinations.h (module 'wifi'): ns3::QosBlockedDestinations [class] module.add_class('QosBlockedDestinations', parent=root_module['ns3::SimpleRefCount< ns3::QosBlockedDestinations, ns3::empty, ns3::DefaultDeleter >']) + ## qos-txop.h (module 'wifi'): ns3::QosTxop [class] + module.add_class('QosTxop', parent=root_module['ns3::Txop']) ## wifi-mac-queue-item.h (module 'wifi'): ns3::Queue [class] module.add_class('Queue', template_parameters=['ns3::WifiMacQueueItem'], parent=root_module['ns3::QueueBase']) ## queue-size.h (module 'network'): ns3::QueueSizeChecker [class] @@ -704,8 +706,6 @@ def register_types(module): module.add_class('SsidChecker', parent=root_module['ns3::AttributeChecker']) ## ssid.h (module 'wifi'): ns3::SsidValue [class] module.add_class('SsidValue', parent=root_module['ns3::AttributeValue']) - ## sta-wifi-mac.h (module 'wifi'): ns3::StaWifiMac [class] - module.add_class('StaWifiMac', parent=root_module['ns3::RegularWifiMac']) ## supported-rates.h (module 'wifi'): ns3::SupportedRates [class] module.add_class('SupportedRates', parent=root_module['ns3::WifiInformationElement']) ## nstime.h (module 'core'): ns3::TimeValue [class] @@ -750,8 +750,6 @@ def register_types(module): module.add_class('AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue']) ## adhoc-wifi-mac.h (module 'wifi'): ns3::AdhocWifiMac [class] module.add_class('AdhocWifiMac', parent=root_module['ns3::RegularWifiMac']) - ## ap-wifi-mac.h (module 'wifi'): ns3::ApWifiMac [class] - module.add_class('ApWifiMac', parent=root_module['ns3::RegularWifiMac']) ## callback.h (module 'core'): ns3::CallbackImpl [class] module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['ns3::ObjectBase *', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl [class] @@ -810,20 +808,26 @@ def register_types(module): module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'unsigned long', 'ns3::Mac48Address', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) ## callback.h (module 'core'): ns3::CallbackImpl [class] module.add_class('CallbackImpl', import_from_module='ns.core', template_parameters=['void', 'unsigned long', 'unsigned long', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'], parent=root_module['ns3::CallbackImplBase']) + ## infrastructure-wifi-mac.h (module 'wifi'): ns3::InfrastructureWifiMac [class] + module.add_class('InfrastructureWifiMac', parent=root_module['ns3::RegularWifiMac']) + ## sta-wifi-mac.h (module 'wifi'): ns3::StaWifiMac [class] + module.add_class('StaWifiMac', parent=root_module['ns3::InfrastructureWifiMac']) + ## ap-wifi-mac.h (module 'wifi'): ns3::ApWifiMac [class] + module.add_class('ApWifiMac', parent=root_module['ns3::InfrastructureWifiMac']) module.add_container('ns3::HtMinstrelRate', 'ns3::HtRateInfo', container_type=u'vector') module.add_container('std::map< std::string, ns3::LogComponent * >', ('std::string', 'ns3::LogComponent *'), container_type=u'map') - module.add_container('ns3::TxTime', 'std::pair< ns3::Time, ns3::WifiMode >', container_type=u'vector') + module.add_container('ns3::TxTime', ('ns3::WifiMode', 'ns3::Time'), container_type=u'map') 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('ns3::SampleRate', 'std::vector< unsigned char >', 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 short >', 'short 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('ns3::MpduAggregator::DeaggregatedMpdus', '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('ns3::MsduAggregator::DeaggregatedMsdus', 'std::pair< ns3::Ptr< ns3::Packet >, ns3::AmsduSubframeHeader >', container_type=u'list') + module.add_container('std::map< ns3::Mac48Address, bool >', ('ns3::Mac48Address', 'bool'), container_type=u'map') module.add_container('std::vector< unsigned char >', 'unsigned char', container_type=u'vector') typehandlers.add_type_alias(u'void ( * ) ( std::ostream & )', u'ns3::LogTimePrinter') typehandlers.add_type_alias(u'void ( * ) ( std::ostream & )*', u'ns3::LogTimePrinter*') @@ -864,9 +868,9 @@ def register_types(module): typehandlers.add_type_alias(u'std::vector< std::pair< ns3::WifiRraaThresholds, ns3::WifiMode >, std::allocator< std::pair< ns3::WifiRraaThresholds, ns3::WifiMode > > >', u'ns3::RraaThresholdsTable') typehandlers.add_type_alias(u'std::vector< std::pair< ns3::WifiRraaThresholds, ns3::WifiMode >, std::allocator< std::pair< ns3::WifiRraaThresholds, ns3::WifiMode > > >*', u'ns3::RraaThresholdsTable*') typehandlers.add_type_alias(u'std::vector< std::pair< ns3::WifiRraaThresholds, ns3::WifiMode >, std::allocator< std::pair< ns3::WifiRraaThresholds, ns3::WifiMode > > >&', u'ns3::RraaThresholdsTable&') - typehandlers.add_type_alias(u'std::vector< std::pair< ns3::Time, ns3::WifiMode >, std::allocator< std::pair< ns3::Time, ns3::WifiMode > > >', u'ns3::TxTime') - typehandlers.add_type_alias(u'std::vector< std::pair< ns3::Time, ns3::WifiMode >, std::allocator< std::pair< ns3::Time, ns3::WifiMode > > >*', u'ns3::TxTime*') - typehandlers.add_type_alias(u'std::vector< std::pair< ns3::Time, ns3::WifiMode >, std::allocator< std::pair< ns3::Time, ns3::WifiMode > > >&', u'ns3::TxTime&') + typehandlers.add_type_alias(u'std::map< ns3::WifiMode, ns3::Time, std::less< ns3::WifiMode >, std::allocator< std::pair< ns3::WifiMode const, ns3::Time > > >', u'ns3::TxTime') + typehandlers.add_type_alias(u'std::map< ns3::WifiMode, ns3::Time, std::less< ns3::WifiMode >, std::allocator< std::pair< ns3::WifiMode const, ns3::Time > > >*', u'ns3::TxTime*') + typehandlers.add_type_alias(u'std::map< ns3::WifiMode, ns3::Time, std::less< ns3::WifiMode >, std::allocator< std::pair< ns3::WifiMode const, ns3::Time > > >&', u'ns3::TxTime&') 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&') @@ -876,15 +880,15 @@ def register_types(module): 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&') - 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::HtSampleRate') - 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::HtSampleRate*') - 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::HtSampleRate&') + typehandlers.add_type_alias(u'std::vector< std::vector< unsigned char, std::allocator< unsigned char > >, std::allocator< std::vector< unsigned char, std::allocator< unsigned char > > > >', u'ns3::HtSampleRate') + typehandlers.add_type_alias(u'std::vector< std::vector< unsigned char, std::allocator< unsigned char > >, std::allocator< std::vector< unsigned char, std::allocator< unsigned char > > > >*', u'ns3::HtSampleRate*') + typehandlers.add_type_alias(u'std::vector< std::vector< unsigned char, std::allocator< unsigned char > >, std::allocator< std::vector< unsigned char, std::allocator< unsigned char > > > >&', u'ns3::HtSampleRate&') typehandlers.add_type_alias(u'std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >', u'ns3::MinstrelRate') typehandlers.add_type_alias(u'std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >*', u'ns3::MinstrelRate*') typehandlers.add_type_alias(u'std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >&', u'ns3::MinstrelRate&') - 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'std::vector< std::vector< unsigned char, std::allocator< unsigned char > >, std::allocator< std::vector< unsigned char, std::allocator< unsigned char > > > >', u'ns3::SampleRate') + typehandlers.add_type_alias(u'std::vector< std::vector< unsigned char, std::allocator< unsigned char > >, std::allocator< std::vector< unsigned char, std::allocator< unsigned char > > > >*', u'ns3::SampleRate*') + typehandlers.add_type_alias(u'std::vector< std::vector< unsigned char, std::allocator< unsigned char > >, std::allocator< std::vector< unsigned char, std::allocator< unsigned char > > > >&', u'ns3::SampleRate&') 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&') @@ -1156,6 +1160,7 @@ def register_methods(root_module): register_Ns3Trailer_methods(root_module, root_module['ns3::Trailer']) register_Ns3TriangularRandomVariable_methods(root_module, root_module['ns3::TriangularRandomVariable']) register_Ns3TwoRayGroundPropagationLossModel_methods(root_module, root_module['ns3::TwoRayGroundPropagationLossModel']) + register_Ns3Txop_methods(root_module, root_module['ns3::Txop']) register_Ns3UniformRandomVariable_methods(root_module, root_module['ns3::UniformRandomVariable']) register_Ns3WeibullRandomVariable_methods(root_module, root_module['ns3::WeibullRandomVariable']) register_Ns3WifiActionHeader_methods(root_module, root_module['ns3::WifiActionHeader']) @@ -1194,7 +1199,9 @@ def register_methods(root_module): register_Ns3CallbackImplBase_methods(root_module, root_module['ns3::CallbackImplBase']) register_Ns3CallbackValue_methods(root_module, root_module['ns3::CallbackValue']) register_Ns3CaraWifiManager_methods(root_module, root_module['ns3::CaraWifiManager']) + register_Ns3CfParameterSet_methods(root_module, root_module['ns3::CfParameterSet']) register_Ns3Channel_methods(root_module, root_module['ns3::Channel']) + register_Ns3ChannelAccessManager_methods(root_module, root_module['ns3::ChannelAccessManager']) register_Ns3ConstantRandomVariable_methods(root_module, root_module['ns3::ConstantRandomVariable']) register_Ns3ConstantRateWifiManager_methods(root_module, root_module['ns3::ConstantRateWifiManager']) register_Ns3ConstantSpeedPropagationDelayModel_methods(root_module, root_module['ns3::ConstantSpeedPropagationDelayModel']) @@ -1203,14 +1210,11 @@ def register_methods(root_module): register_Ns3CtrlBAckResponseHeader_methods(root_module, root_module['ns3::CtrlBAckResponseHeader']) register_Ns3DataRateChecker_methods(root_module, root_module['ns3::DataRateChecker']) register_Ns3DataRateValue_methods(root_module, root_module['ns3::DataRateValue']) - register_Ns3DcaTxop_methods(root_module, root_module['ns3::DcaTxop']) - register_Ns3DcfManager_methods(root_module, root_module['ns3::DcfManager']) 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_Ns3DsssParameterSet_methods(root_module, root_module['ns3::DsssParameterSet']) register_Ns3EdcaParameterSet_methods(root_module, root_module['ns3::EdcaParameterSet']) - register_Ns3EdcaTxopN_methods(root_module, root_module['ns3::EdcaTxopN']) register_Ns3EmpiricalRandomVariable_methods(root_module, root_module['ns3::EmpiricalRandomVariable']) register_Ns3EmptyAttributeAccessor_methods(root_module, root_module['ns3::EmptyAttributeAccessor']) register_Ns3EmptyAttributeChecker_methods(root_module, root_module['ns3::EmptyAttributeChecker']) @@ -1281,6 +1285,7 @@ def register_methods(root_module): register_Ns3ParetoRandomVariable_methods(root_module, root_module['ns3::ParetoRandomVariable']) register_Ns3ParfWifiManager_methods(root_module, root_module['ns3::ParfWifiManager']) register_Ns3QosBlockedDestinations_methods(root_module, root_module['ns3::QosBlockedDestinations']) + register_Ns3QosTxop_methods(root_module, root_module['ns3::QosTxop']) register_Ns3Queue__Ns3WifiMacQueueItem_methods(root_module, root_module['ns3::Queue< ns3::WifiMacQueueItem >']) register_Ns3QueueSizeChecker_methods(root_module, root_module['ns3::QueueSizeChecker']) register_Ns3QueueSizeValue_methods(root_module, root_module['ns3::QueueSizeValue']) @@ -1293,7 +1298,6 @@ def register_methods(root_module): 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']) - register_Ns3StaWifiMac_methods(root_module, root_module['ns3::StaWifiMac']) register_Ns3SupportedRates_methods(root_module, root_module['ns3::SupportedRates']) register_Ns3TimeValue_methods(root_module, root_module['ns3::TimeValue']) register_Ns3TypeIdChecker_methods(root_module, root_module['ns3::TypeIdChecker']) @@ -1315,7 +1319,6 @@ def register_methods(root_module): register_Ns3AddressChecker_methods(root_module, root_module['ns3::AddressChecker']) register_Ns3AddressValue_methods(root_module, root_module['ns3::AddressValue']) register_Ns3AdhocWifiMac_methods(root_module, root_module['ns3::AdhocWifiMac']) - register_Ns3ApWifiMac_methods(root_module, root_module['ns3::ApWifiMac']) register_Ns3CallbackImpl__Ns3ObjectBase___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< ns3::ObjectBase *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Bool_Unsigned_int_Double_Ns3Time_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, bool, unsigned int, double, ns3::Time, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Const_ns3WifiMacHeader___amp___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, const ns3::WifiMacHeader &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) @@ -1345,6 +1348,9 @@ def register_methods(root_module): register_Ns3CallbackImpl__Void_Unsigned_int_Unsigned_int_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, unsigned int, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Unsigned_long_Ns3Mac48Address_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, unsigned long, ns3::Mac48Address, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) register_Ns3CallbackImpl__Void_Unsigned_long_Unsigned_long_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, root_module['ns3::CallbackImpl< void, unsigned long, unsigned long, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >']) + register_Ns3InfrastructureWifiMac_methods(root_module, root_module['ns3::InfrastructureWifiMac']) + register_Ns3StaWifiMac_methods(root_module, root_module['ns3::StaWifiMac']) + register_Ns3ApWifiMac_methods(root_module, root_module['ns3::ApWifiMac']) register_Ns3HashImplementation_methods(root_module, root_module['ns3::Hash::Implementation']) register_Ns3HashFunctionFnv1a_methods(root_module, root_module['ns3::Hash::Function::Fnv1a']) register_Ns3HashFunctionHash32_methods(root_module, root_module['ns3::Hash::Function::Hash32']) @@ -2152,6 +2158,11 @@ def register_Ns3CapabilityInformation_methods(root_module, cls): 'uint32_t', [], is_const=True) + ## capability-information.h (module 'wifi'): bool ns3::CapabilityInformation::IsCfPollable() const [member function] + cls.add_method('IsCfPollable', + 'bool', + [], + is_const=True) ## capability-information.h (module 'wifi'): bool ns3::CapabilityInformation::IsEss() const [member function] cls.add_method('IsEss', 'bool', @@ -2177,6 +2188,10 @@ def register_Ns3CapabilityInformation_methods(root_module, cls): 'ns3::Buffer::Iterator', [param('ns3::Buffer::Iterator', 'start')], is_const=True) + ## capability-information.h (module 'wifi'): void ns3::CapabilityInformation::SetCfPollable() [member function] + cls.add_method('SetCfPollable', + 'void', + []) ## capability-information.h (module 'wifi'): void ns3::CapabilityInformation::SetEss() [member function] cls.add_method('SetEss', 'void', @@ -2638,11 +2653,11 @@ def register_Ns3GroupInfo_methods(root_module, cls): ## minstrel-ht-wifi-manager.h (module 'wifi'): ns3::GroupInfo::m_index [variable] cls.add_instance_attribute('m_index', 'uint8_t', is_const=False) ## minstrel-ht-wifi-manager.h (module 'wifi'): ns3::GroupInfo::m_maxProbRate [variable] - cls.add_instance_attribute('m_maxProbRate', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_maxProbRate', 'uint8_t', is_const=False) ## minstrel-ht-wifi-manager.h (module 'wifi'): ns3::GroupInfo::m_maxTpRate [variable] - cls.add_instance_attribute('m_maxTpRate', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_maxTpRate', 'uint8_t', is_const=False) ## minstrel-ht-wifi-manager.h (module 'wifi'): ns3::GroupInfo::m_maxTpRate2 [variable] - cls.add_instance_attribute('m_maxTpRate2', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_maxTpRate2', 'uint8_t', is_const=False) ## minstrel-ht-wifi-manager.h (module 'wifi'): ns3::GroupInfo::m_ratesTable [variable] cls.add_instance_attribute('m_ratesTable', 'ns3::HtMinstrelRate', is_const=False) ## minstrel-ht-wifi-manager.h (module 'wifi'): ns3::GroupInfo::m_supported [variable] @@ -4882,6 +4897,7 @@ def register_Ns3WifiMacHelper_methods(root_module, cls): def register_Ns3WifiMode_methods(root_module, cls): cls.add_binary_comparison_operator('==') + cls.add_binary_comparison_operator('<') cls.add_output_stream_operator() ## wifi-mode.h (module 'wifi'): ns3::WifiMode::WifiMode(ns3::WifiMode const & arg0) [constructor] cls.add_constructor([param('ns3::WifiMode const &', 'arg0')]) @@ -6310,6 +6326,11 @@ def register_Ns3MgtProbeResponseHeader_methods(root_module, cls): 'ns3::CapabilityInformation', [], is_const=True) + ## mgt-headers.h (module 'wifi'): ns3::CfParameterSet ns3::MgtProbeResponseHeader::GetCfParameterSet() const [member function] + cls.add_method('GetCfParameterSet', + 'ns3::CfParameterSet', + [], + is_const=True) ## mgt-headers.h (module 'wifi'): ns3::DsssParameterSet ns3::MgtProbeResponseHeader::GetDsssParameterSet() const [member function] cls.add_method('GetDsssParameterSet', 'ns3::DsssParameterSet', @@ -6407,6 +6428,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::SetCfParameterSet(ns3::CfParameterSet cfparameterset) [member function] + cls.add_method('SetCfParameterSet', + 'void', + [param('ns3::CfParameterSet', 'cfparameterset')]) ## mgt-headers.h (module 'wifi'): void ns3::MgtProbeResponseHeader::SetDsssParameterSet(ns3::DsssParameterSet dsssParameterSet) [member function] cls.add_method('SetDsssParameterSet', 'void', @@ -6578,11 +6603,11 @@ def register_Ns3MinstrelWifiRemoteStation_methods(root_module, cls): ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_index [variable] cls.add_instance_attribute('m_index', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_maxTpRate [variable] - cls.add_instance_attribute('m_maxTpRate', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_maxTpRate', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_maxTpRate2 [variable] - cls.add_instance_attribute('m_maxTpRate2', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_maxTpRate2', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_maxProbRate [variable] - cls.add_instance_attribute('m_maxProbRate', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_maxProbRate', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_nModes [variable] cls.add_instance_attribute('m_nModes', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_totalPacketsCount [variable] @@ -6594,7 +6619,7 @@ def register_Ns3MinstrelWifiRemoteStation_methods(root_module, cls): ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_isSampling [variable] cls.add_instance_attribute('m_isSampling', 'bool', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_sampleRate [variable] - cls.add_instance_attribute('m_sampleRate', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_sampleRate', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_sampleDeferred [variable] cls.add_instance_attribute('m_sampleDeferred', 'bool', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_shortRetry [variable] @@ -6604,7 +6629,7 @@ def register_Ns3MinstrelWifiRemoteStation_methods(root_module, cls): ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_retry [variable] cls.add_instance_attribute('m_retry', 'uint32_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_txrate [variable] - cls.add_instance_attribute('m_txrate', 'uint32_t', is_const=False) + cls.add_instance_attribute('m_txrate', 'uint8_t', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_initialized [variable] cls.add_instance_attribute('m_initialized', 'bool', is_const=False) ## minstrel-wifi-manager.h (module 'wifi'): ns3::MinstrelWifiRemoteStation::m_minstrelTable [variable] @@ -7772,6 +7797,328 @@ def register_Ns3TwoRayGroundPropagationLossModel_methods(root_module, cls): visibility='private', is_virtual=True) return +def register_Ns3Txop_methods(root_module, cls): + ## txop.h (module 'wifi'): ns3::Txop::Txop(ns3::Txop const & arg0) [constructor] + cls.add_constructor([param('ns3::Txop const &', 'arg0')]) + ## txop.h (module 'wifi'): ns3::Txop::Txop() [constructor] + cls.add_constructor([]) + ## txop.h (module 'wifi'): int64_t ns3::Txop::AssignStreams(int64_t stream) [member function] + cls.add_method('AssignStreams', + 'int64_t', + [param('int64_t', 'stream')]) + ## txop.h (module 'wifi'): bool ns3::Txop::CanStartNextPolling() const [member function] + cls.add_method('CanStartNextPolling', + 'bool', + [], + is_const=True) + ## txop.h (module 'wifi'): void ns3::Txop::Cancel() [member function] + cls.add_method('Cancel', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::EndTxNoAck() [member function] + cls.add_method('EndTxNoAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetAifsn() const [member function] + cls.add_method('GetAifsn', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetLow() const [member function] + cls.add_method('GetLow', + 'ns3::Ptr< ns3::MacLow >', + [], + is_const=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetMaxCw() const [member function] + cls.add_method('GetMaxCw', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetMinCw() const [member function] + cls.add_method('GetMinCw', + 'uint32_t', + [], + is_const=True) + ## txop.h (module 'wifi'): ns3::Time ns3::Txop::GetTxopLimit() const [member function] + cls.add_method('GetTxopLimit', + 'ns3::Time', + [], + is_const=True) + ## txop.h (module 'wifi'): static ns3::TypeId ns3::Txop::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetWifiMacQueue() const [member function] + cls.add_method('GetWifiMacQueue', + 'ns3::Ptr< ns3::WifiMacQueue >', + [], + is_const=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotAck() [member function] + cls.add_method('GotAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] + cls.add_method('GotBlockAck', + 'void', + [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::GotCfEnd() [member function] + cls.add_method('GotCfEnd', + 'void', + []) + ## txop.h (module 'wifi'): bool ns3::Txop::HasTxop() const [member function] + cls.add_method('HasTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsAccessRequested() const [member function] + cls.add_method('IsAccessRequested', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsQosTxop() const [member function] + cls.add_method('IsQosTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedAck() [member function] + cls.add_method('MissedAck', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedBlockAck(uint8_t nMpdus) [member function] + cls.add_method('MissedBlockAck', + 'void', + [param('uint8_t', 'nMpdus')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::MissedCfPollResponse(bool expectedCfAck) [member function] + cls.add_method('MissedCfPollResponse', + 'void', + [param('bool', 'expectedCfAck')]) + ## txop.h (module 'wifi'): void ns3::Txop::MissedCts() [member function] + cls.add_method('MissedCts', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyChannelSwitching() [member function] + cls.add_method('NotifyChannelSwitching', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyOff() [member function] + cls.add_method('NotifyOff', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyOn() [member function] + cls.add_method('NotifyOn', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifySleep() [member function] + cls.add_method('NotifySleep', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyWakeUp() [member function] + cls.add_method('NotifyWakeUp', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::Queue(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('Queue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::SendCfFrame(ns3::WifiMacType frameType, ns3::Mac48Address addr) [member function] + cls.add_method('SendCfFrame', + 'void', + [param('ns3::WifiMacType', 'frameType'), param('ns3::Mac48Address', 'addr')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetAifsn(uint32_t aifsn) [member function] + cls.add_method('SetAifsn', + 'void', + [param('uint32_t', 'aifsn')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetChannelAccessManager(ns3::Ptr const manager) [member function] + cls.add_method('SetChannelAccessManager', + 'void', + [param('ns3::Ptr< ns3::ChannelAccessManager > const', 'manager')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetMacLow(ns3::Ptr const low) [member function] + cls.add_method('SetMacLow', + 'void', + [param('ns3::Ptr< ns3::MacLow > const', 'low')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetMaxCw(uint32_t maxCw) [member function] + cls.add_method('SetMaxCw', + 'void', + [param('uint32_t', 'maxCw')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetMinCw(uint32_t minCw) [member function] + cls.add_method('SetMinCw', + 'void', + [param('uint32_t', 'minCw')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxDroppedCallback(ns3::Txop::TxDropped callback) [member function] + cls.add_method('SetTxDroppedCallback', + 'void', + [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxFailedCallback(ns3::Txop::TxFailed callback) [member function] + cls.add_method('SetTxFailedCallback', + 'void', + [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxMiddle(ns3::Ptr const txMiddle) [member function] + cls.add_method('SetTxMiddle', + 'void', + [param('ns3::Ptr< ns3::MacTxMiddle > const', 'txMiddle')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxOkCallback(ns3::Txop::TxOk callback) [member function] + cls.add_method('SetTxOkCallback', + 'void', + [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetTxopLimit(ns3::Time txopLimit) [member function] + cls.add_method('SetTxopLimit', + 'void', + [param('ns3::Time', 'txopLimit')]) + ## txop.h (module 'wifi'): void ns3::Txop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartBackoffNow(uint32_t nSlots) [member function] + cls.add_method('StartBackoffNow', + 'void', + [param('uint32_t', 'nSlots')]) + ## txop.h (module 'wifi'): void ns3::Txop::StartNextFragment() [member function] + cls.add_method('StartNextFragment', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartNextPacket() [member function] + cls.add_method('StartNextPacket', + 'void', + [], + is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetBackoffSlots() const [member function] + cls.add_method('GetBackoffSlots', + 'uint32_t', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): ns3::Time ns3::Txop::GetBackoffStart() const [member function] + cls.add_method('GetBackoffStart', + 'ns3::Time', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetCw() const [member function] + cls.add_method('GetCw', + 'uint32_t', + [], + is_const=True, visibility='protected') + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetFragmentOffset() const [member function] + cls.add_method('GetFragmentOffset', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): ns3::Ptr ns3::Txop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetFragmentPacket', + 'ns3::Ptr< ns3::Packet >', + [param('ns3::WifiMacHeader *', 'hdr')], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetFragmentSize() const [member function] + cls.add_method('GetFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): uint32_t ns3::Txop::GetNextFragmentSize() const [member function] + cls.add_method('GetNextFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::IsLastFragment() const [member function] + cls.add_method('IsLastFragment', + 'bool', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::NeedDataRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('NeedDataRetransmission', + 'bool', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + visibility='protected') + ## txop.h (module 'wifi'): bool ns3::Txop::NeedFragmentation() const [member function] + cls.add_method('NeedFragmentation', + 'bool', + [], + is_const=True, visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): bool ns3::Txop::NeedRtsRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('NeedRtsRetransmission', + 'bool', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::NextFragment() [member function] + cls.add_method('NextFragment', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::NotifyAccessGranted() [member function] + cls.add_method('NotifyAccessGranted', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyAccessRequested() [member function] + cls.add_method('NotifyAccessRequested', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyCollision() [member function] + cls.add_method('NotifyCollision', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::NotifyInternalCollision() [member function] + cls.add_method('NotifyInternalCollision', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::ResetCw() [member function] + cls.add_method('ResetCw', + 'void', + [], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::RestartAccessIfNeeded() [member function] + cls.add_method('RestartAccessIfNeeded', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::StartAccessIfNeeded() [member function] + cls.add_method('StartAccessIfNeeded', + 'void', + [], + visibility='protected', is_virtual=True) + ## txop.h (module 'wifi'): void ns3::Txop::TxDroppedPacket(ns3::Ptr item) [member function] + cls.add_method('TxDroppedPacket', + 'void', + [param('ns3::Ptr< ns3::WifiMacQueueItem const >', 'item')], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::UpdateBackoffSlotsNow(uint32_t nSlots, ns3::Time backoffUpdateBound) [member function] + cls.add_method('UpdateBackoffSlotsNow', + 'void', + [param('uint32_t', 'nSlots'), param('ns3::Time', 'backoffUpdateBound')], + visibility='protected') + ## txop.h (module 'wifi'): void ns3::Txop::UpdateFailedCw() [member function] + cls.add_method('UpdateFailedCw', + 'void', + [], + visibility='protected') + return + def register_Ns3UniformRandomVariable_methods(root_module, cls): ## random-variable-stream.h (module 'core'): static ns3::TypeId ns3::UniformRandomVariable::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -8266,10 +8613,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, bool isDsss, 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::DcaTxop >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('bool', 'isDsss'), param('ns3::AcIndex', 'ac')], + [param('ns3::Ptr< ns3::Txop >', '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', @@ -8328,6 +8675,11 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'uint8_t', [], is_const=True) + ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetRawDuration() const [member function] + cls.add_method('GetRawDuration', + 'uint16_t', + [], + is_const=True) ## wifi-mac-header.h (module 'wifi'): uint16_t ns3::WifiMacHeader::GetSequenceControl() const [member function] cls.add_method('GetSequenceControl', 'uint16_t', @@ -8363,6 +8715,11 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'char const *', [], is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::HasData() const [member function] + cls.add_method('HasData', + 'bool', + [], + is_const=True) ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsAck() const [member function] cls.add_method('IsAck', 'bool', @@ -8403,8 +8760,18 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): 'bool', [], is_const=True) - ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfpoll() const [member function] - cls.add_method('IsCfpoll', + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfAck() const [member function] + cls.add_method('IsCfAck', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfEnd() const [member function] + cls.add_method('IsCfEnd', + 'bool', + [], + is_const=True) + ## wifi-mac-header.h (module 'wifi'): bool ns3::WifiMacHeader::IsCfPoll() const [member function] + cls.add_method('IsCfPoll', 'bool', [], is_const=True) @@ -8628,6 +8995,10 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): cls.add_method('SetQosTxopLimit', 'void', [param('uint8_t', 'txop')]) + ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRawDuration(uint16_t duration) [member function] + cls.add_method('SetRawDuration', + 'void', + [param('uint16_t', 'duration')]) ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetRetry() [member function] cls.add_method('SetRetry', 'void', @@ -8636,10 +9007,10 @@ def register_Ns3WifiMacHeader_methods(root_module, cls): cls.add_method('SetSequenceNumber', 'void', [param('uint16_t', 'seq')]) - ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type) [member function] + ## wifi-mac-header.h (module 'wifi'): void ns3::WifiMacHeader::SetType(ns3::WifiMacType type, bool resetToDsFromDs=true) [member function] cls.add_method('SetType', 'void', - [param('ns3::WifiMacType', 'type')]) + [param('ns3::WifiMacType', 'type'), param('bool', 'resetToDsFromDs', default_value='true')]) return def register_Ns3WifiMacQueueItem_methods(root_module, cls): @@ -10070,6 +10441,11 @@ def register_Ns3WifiRemoteStationManager_methods(root_module, cls): 'bool', [], is_const=True) + ## wifi-remote-station-manager.h (module 'wifi'): bool ns3::WifiRemoteStationManager::HasPcfSupported() const [member function] + cls.add_method('HasPcfSupported', + 'bool', + [], + is_const=True) ## wifi-remote-station-manager.h (module 'wifi'): bool ns3::WifiRemoteStationManager::HasVhtSupported() const [member function] cls.add_method('HasVhtSupported', 'bool', @@ -10200,6 +10576,11 @@ def register_Ns3WifiRemoteStationManager_methods(root_module, cls): cls.add_method('SetMaxSsrc', 'void', [param('uint32_t', 'maxSsrc')]) + ## wifi-remote-station-manager.h (module 'wifi'): void ns3::WifiRemoteStationManager::SetPcfSupported(bool enable) [member function] + cls.add_method('SetPcfSupported', + 'void', + [param('bool', 'enable')], + is_virtual=True) ## wifi-remote-station-manager.h (module 'wifi'): void ns3::WifiRemoteStationManager::SetQosSupport(ns3::Mac48Address from, bool qosSupported) [member function] cls.add_method('SetQosSupport', 'void', @@ -11501,10 +11882,10 @@ def register_Ns3BlockAckManager_methods(root_module, cls): cls.add_method('NotifyMpduTransmission', 'void', [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid'), param('uint16_t', 'nextSeqNumber'), param('ns3::WifiMacHeader::QosAckPolicy', 'policy')]) - ## block-ack-manager.h (module 'wifi'): ns3::Ptr ns3::BlockAckManager::PeekNextPacketByTidAndAddress(ns3::WifiMacHeader & hdr, ns3::Mac48Address recipient, uint8_t tid, ns3::Time * timestamp) [member function] + ## block-ack-manager.h (module 'wifi'): ns3::Ptr ns3::BlockAckManager::PeekNextPacketByTidAndAddress(ns3::WifiMacHeader & hdr, uint8_t tid, ns3::Time * timestamp) [member function] cls.add_method('PeekNextPacketByTidAndAddress', 'ns3::Ptr< ns3::Packet const >', - [param('ns3::WifiMacHeader &', 'hdr'), param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) + [param('ns3::WifiMacHeader &', 'hdr'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) ## block-ack-manager.h (module 'wifi'): bool ns3::BlockAckManager::RemovePacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] cls.add_method('RemovePacket', 'bool', @@ -11887,6 +12268,84 @@ def register_Ns3CaraWifiManager_methods(root_module, cls): is_const=True, visibility='private', is_virtual=True) return +def register_Ns3CfParameterSet_methods(root_module, cls): + cls.add_output_stream_operator() + ## cf-parameter-set.h (module 'wifi'): ns3::CfParameterSet::CfParameterSet(ns3::CfParameterSet const & arg0) [constructor] + cls.add_constructor([param('ns3::CfParameterSet const &', 'arg0')]) + ## cf-parameter-set.h (module 'wifi'): ns3::CfParameterSet::CfParameterSet() [constructor] + cls.add_constructor([]) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::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) + ## cf-parameter-set.h (module 'wifi'): ns3::WifiInformationElementId ns3::CfParameterSet::ElementId() const [member function] + cls.add_method('ElementId', + 'ns3::WifiInformationElementId', + [], + is_const=True, is_virtual=True) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::GetCFPCount() const [member function] + cls.add_method('GetCFPCount', + 'uint8_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint64_t ns3::CfParameterSet::GetCFPDurRemainingUs() const [member function] + cls.add_method('GetCFPDurRemainingUs', + 'uint64_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint64_t ns3::CfParameterSet::GetCFPMaxDurationUs() const [member function] + cls.add_method('GetCFPMaxDurationUs', + 'uint64_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::GetCFPPeriod() const [member function] + cls.add_method('GetCFPPeriod', + 'uint8_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): uint8_t ns3::CfParameterSet::GetInformationFieldSize() const [member function] + cls.add_method('GetInformationFieldSize', + 'uint8_t', + [], + is_const=True, is_virtual=True) + ## cf-parameter-set.h (module 'wifi'): uint16_t ns3::CfParameterSet::GetSerializedSize() const [member function] + cls.add_method('GetSerializedSize', + 'uint16_t', + [], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): ns3::Buffer::Iterator ns3::CfParameterSet::Serialize(ns3::Buffer::Iterator start) const [member function] + cls.add_method('Serialize', + 'ns3::Buffer::Iterator', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SerializeInformationField(ns3::Buffer::Iterator start) const [member function] + cls.add_method('SerializeInformationField', + 'void', + [param('ns3::Buffer::Iterator', 'start')], + is_const=True, is_virtual=True) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPCount(uint8_t cfpcount) [member function] + cls.add_method('SetCFPCount', + 'void', + [param('uint8_t', 'cfpcount')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPDurRemainingUs(uint64_t cfpdurremaining) [member function] + cls.add_method('SetCFPDurRemainingUs', + 'void', + [param('uint64_t', 'cfpdurremaining')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPMaxDurationUs(uint64_t cfpmaxduration) [member function] + cls.add_method('SetCFPMaxDurationUs', + 'void', + [param('uint64_t', 'cfpmaxduration')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetCFPPeriod(uint8_t cfpperiod) [member function] + cls.add_method('SetCFPPeriod', + 'void', + [param('uint8_t', 'cfpperiod')]) + ## cf-parameter-set.h (module 'wifi'): void ns3::CfParameterSet::SetPcfSupported(uint8_t pcfSupported) [member function] + cls.add_method('SetPcfSupported', + 'void', + [param('uint8_t', 'pcfSupported')]) + return + def register_Ns3Channel_methods(root_module, cls): ## channel.h (module 'network'): ns3::Channel::Channel(ns3::Channel const & arg0) [constructor] cls.add_constructor([param('ns3::Channel const &', 'arg0')]) @@ -11914,6 +12373,124 @@ def register_Ns3Channel_methods(root_module, cls): is_static=True) return +def register_Ns3ChannelAccessManager_methods(root_module, cls): + ## channel-access-manager.h (module 'wifi'): ns3::ChannelAccessManager::ChannelAccessManager(ns3::ChannelAccessManager const & arg0) [constructor] + cls.add_constructor([param('ns3::ChannelAccessManager const &', 'arg0')]) + ## channel-access-manager.h (module 'wifi'): ns3::ChannelAccessManager::ChannelAccessManager() [constructor] + cls.add_constructor([]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::Add(ns3::Ptr dcf) [member function] + cls.add_method('Add', + 'void', + [param('ns3::Ptr< ns3::Txop >', 'dcf')]) + ## channel-access-manager.h (module 'wifi'): ns3::Time ns3::ChannelAccessManager::GetEifsNoDifs() const [member function] + cls.add_method('GetEifsNoDifs', + 'ns3::Time', + [], + is_const=True) + ## channel-access-manager.h (module 'wifi'): bool ns3::ChannelAccessManager::IsBusy() const [member function] + cls.add_method('IsBusy', + 'bool', + [], + is_const=True) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyAckTimeoutResetNow() [member function] + cls.add_method('NotifyAckTimeoutResetNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyAckTimeoutStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyAckTimeoutStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyCtsTimeoutResetNow() [member function] + cls.add_method('NotifyCtsTimeoutResetNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyCtsTimeoutStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyCtsTimeoutStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyMaybeCcaBusyStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyMaybeCcaBusyStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyNavResetNow(ns3::Time duration) [member function] + cls.add_method('NotifyNavResetNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyNavStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyNavStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyOffNow() [member function] + cls.add_method('NotifyOffNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyOnNow() [member function] + cls.add_method('NotifyOnNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyRxEndErrorNow() [member function] + cls.add_method('NotifyRxEndErrorNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyRxEndOkNow() [member function] + cls.add_method('NotifyRxEndOkNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyRxStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyRxStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifySleepNow() [member function] + cls.add_method('NotifySleepNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifySwitchingStartNow(ns3::Time duration) [member function] + cls.add_method('NotifySwitchingStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyTxStartNow(ns3::Time duration) [member function] + cls.add_method('NotifyTxStartNow', + 'void', + [param('ns3::Time', 'duration')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::NotifyWakeupNow() [member function] + cls.add_method('NotifyWakeupNow', + 'void', + []) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::RemovePhyListener(ns3::Ptr phy) [member function] + cls.add_method('RemovePhyListener', + 'void', + [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::RequestAccess(ns3::Ptr state, bool isCfPeriod=false) [member function] + cls.add_method('RequestAccess', + 'void', + [param('ns3::Ptr< ns3::Txop >', 'state'), param('bool', 'isCfPeriod', default_value='false')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetEifsNoDifs(ns3::Time eifsNoDifs) [member function] + cls.add_method('SetEifsNoDifs', + 'void', + [param('ns3::Time', 'eifsNoDifs')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetSifs(ns3::Time sifs) [member function] + cls.add_method('SetSifs', + 'void', + [param('ns3::Time', 'sifs')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetSlot(ns3::Time slotTime) [member function] + cls.add_method('SetSlot', + 'void', + [param('ns3::Time', 'slotTime')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetupLow(ns3::Ptr low) [member function] + cls.add_method('SetupLow', + 'void', + [param('ns3::Ptr< ns3::MacLow >', 'low')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::SetupPhyListener(ns3::Ptr phy) [member function] + cls.add_method('SetupPhyListener', + 'void', + [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) + ## channel-access-manager.h (module 'wifi'): void ns3::ChannelAccessManager::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='protected', is_virtual=True) + return + def register_Ns3ConstantRandomVariable_methods(root_module, cls): ## random-variable-stream.h (module 'core'): static ns3::TypeId ns3::ConstantRandomVariable::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -12370,424 +12947,6 @@ def register_Ns3DataRateValue_methods(root_module, cls): [param('ns3::DataRate const &', 'value')]) return -def register_Ns3DcaTxop_methods(root_module, cls): - ## dca-txop.h (module 'wifi'): ns3::DcaTxop::DcaTxop(ns3::DcaTxop const & arg0) [constructor] - cls.add_constructor([param('ns3::DcaTxop const &', 'arg0')]) - ## dca-txop.h (module 'wifi'): ns3::DcaTxop::DcaTxop() [constructor] - cls.add_constructor([]) - ## dca-txop.h (module 'wifi'): int64_t ns3::DcaTxop::AssignStreams(int64_t stream) [member function] - cls.add_method('AssignStreams', - 'int64_t', - [param('int64_t', 'stream')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::Cancel() [member function] - cls.add_method('Cancel', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::EndTxNoAck() [member function] - cls.add_method('EndTxNoAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetAifsn() const [member function] - cls.add_method('GetAifsn', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetLow() const [member function] - cls.add_method('GetLow', - 'ns3::Ptr< ns3::MacLow >', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMaxCw() const [member function] - cls.add_method('GetMaxCw', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetMinCw() const [member function] - cls.add_method('GetMinCw', - 'uint32_t', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetTxopLimit() const [member function] - cls.add_method('GetTxopLimit', - 'ns3::Time', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): static ns3::TypeId ns3::DcaTxop::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetWifiMacQueue() const [member function] - cls.add_method('GetWifiMacQueue', - 'ns3::Ptr< ns3::WifiMacQueue >', - [], - is_const=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::GotAck() [member function] - cls.add_method('GotAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] - cls.add_method('GotBlockAck', - 'void', - [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::HasTxop() const [member function] - cls.add_method('HasTxop', - 'bool', - [], - is_const=True, is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsAccessRequested() const [member function] - cls.add_method('IsAccessRequested', - 'bool', - [], - is_const=True, is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsEdca() [member function] - cls.add_method('IsEdca', - 'bool', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedAck() [member function] - cls.add_method('MissedAck', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedBlockAck(uint8_t nMpdus) [member function] - cls.add_method('MissedBlockAck', - 'void', - [param('uint8_t', 'nMpdus')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::MissedCts() [member function] - cls.add_method('MissedCts', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyChannelSwitching() [member function] - cls.add_method('NotifyChannelSwitching', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyOff() [member function] - cls.add_method('NotifyOff', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyOn() [member function] - cls.add_method('NotifyOn', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifySleep() [member function] - cls.add_method('NotifySleep', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyWakeUp() [member function] - cls.add_method('NotifyWakeUp', - 'void', - [], - 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', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetAifsn(uint32_t aifsn) [member function] - cls.add_method('SetAifsn', - 'void', - [param('uint32_t', 'aifsn')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetDcfManager(ns3::Ptr const manager) [member function] - cls.add_method('SetDcfManager', - 'void', - [param('ns3::Ptr< ns3::DcfManager > const', 'manager')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMacLow(ns3::Ptr const low) [member function] - cls.add_method('SetMacLow', - 'void', - [param('ns3::Ptr< ns3::MacLow > const', 'low')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMaxCw(uint32_t maxCw) [member function] - cls.add_method('SetMaxCw', - 'void', - [param('uint32_t', 'maxCw')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetMinCw(uint32_t minCw) [member function] - cls.add_method('SetMinCw', - 'void', - [param('uint32_t', 'minCw')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxDroppedCallback(ns3::DcaTxop::TxDropped callback) [member function] - cls.add_method('SetTxDroppedCallback', - 'void', - [param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxFailedCallback(ns3::DcaTxop::TxFailed callback) [member function] - cls.add_method('SetTxFailedCallback', - 'void', - [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxMiddle(ns3::Ptr const txMiddle) [member function] - cls.add_method('SetTxMiddle', - 'void', - [param('ns3::Ptr< ns3::MacTxMiddle > const', 'txMiddle')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxOkCallback(ns3::DcaTxop::TxOk callback) [member function] - cls.add_method('SetTxOkCallback', - 'void', - [param('ns3::Callback< void, ns3::WifiMacHeader const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetTxopLimit(ns3::Time txopLimit) [member function] - cls.add_method('SetTxopLimit', - 'void', - [param('ns3::Time', 'txopLimit')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartBackoffNow(uint32_t nSlots) [member function] - cls.add_method('StartBackoffNow', - 'void', - [param('uint32_t', 'nSlots')]) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartNextFragment() [member function] - cls.add_method('StartNextFragment', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartNextPacket() [member function] - cls.add_method('StartNextPacket', - 'void', - [], - is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetBackoffSlots() const [member function] - cls.add_method('GetBackoffSlots', - 'uint32_t', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): ns3::Time ns3::DcaTxop::GetBackoffStart() const [member function] - cls.add_method('GetBackoffStart', - 'ns3::Time', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetCw() const [member function] - cls.add_method('GetCw', - 'uint32_t', - [], - is_const=True, visibility='protected') - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetFragmentOffset() const [member function] - cls.add_method('GetFragmentOffset', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): ns3::Ptr ns3::DcaTxop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetFragmentPacket', - 'ns3::Ptr< ns3::Packet >', - [param('ns3::WifiMacHeader *', 'hdr')], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetFragmentSize() const [member function] - cls.add_method('GetFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): uint32_t ns3::DcaTxop::GetNextFragmentSize() const [member function] - cls.add_method('GetNextFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::IsLastFragment() const [member function] - cls.add_method('IsLastFragment', - 'bool', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedDataRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('NeedDataRetransmission', - 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - visibility='protected') - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedFragmentation() const [member function] - cls.add_method('NeedFragmentation', - 'bool', - [], - is_const=True, visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): bool ns3::DcaTxop::NeedRtsRetransmission(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('NeedRtsRetransmission', - 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NextFragment() [member function] - cls.add_method('NextFragment', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyAccessGranted() [member function] - cls.add_method('NotifyAccessGranted', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyAccessRequested() [member function] - cls.add_method('NotifyAccessRequested', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyCollision() [member function] - cls.add_method('NotifyCollision', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::NotifyInternalCollision() [member function] - cls.add_method('NotifyInternalCollision', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::ResetCw() [member function] - cls.add_method('ResetCw', - 'void', - [], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::RestartAccessIfNeeded() [member function] - cls.add_method('RestartAccessIfNeeded', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::StartAccessIfNeeded() [member function] - cls.add_method('StartAccessIfNeeded', - 'void', - [], - visibility='protected', is_virtual=True) - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::TxDroppedPacket(ns3::Ptr item) [member function] - cls.add_method('TxDroppedPacket', - 'void', - [param('ns3::Ptr< ns3::WifiMacQueueItem const >', 'item')], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::UpdateBackoffSlotsNow(uint32_t nSlots, ns3::Time backoffUpdateBound) [member function] - cls.add_method('UpdateBackoffSlotsNow', - 'void', - [param('uint32_t', 'nSlots'), param('ns3::Time', 'backoffUpdateBound')], - visibility='protected') - ## dca-txop.h (module 'wifi'): void ns3::DcaTxop::UpdateFailedCw() [member function] - cls.add_method('UpdateFailedCw', - 'void', - [], - visibility='protected') - return - -def register_Ns3DcfManager_methods(root_module, cls): - ## dcf-manager.h (module 'wifi'): ns3::DcfManager::DcfManager(ns3::DcfManager const & arg0) [constructor] - cls.add_constructor([param('ns3::DcfManager const &', 'arg0')]) - ## dcf-manager.h (module 'wifi'): ns3::DcfManager::DcfManager() [constructor] - cls.add_constructor([]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::Add(ns3::Ptr dcf) [member function] - cls.add_method('Add', - 'void', - [param('ns3::Ptr< ns3::DcaTxop >', 'dcf')]) - ## dcf-manager.h (module 'wifi'): ns3::Time ns3::DcfManager::GetEifsNoDifs() const [member function] - cls.add_method('GetEifsNoDifs', - 'ns3::Time', - [], - is_const=True) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyAckTimeoutResetNow() [member function] - cls.add_method('NotifyAckTimeoutResetNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyAckTimeoutStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyAckTimeoutStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyCtsTimeoutResetNow() [member function] - cls.add_method('NotifyCtsTimeoutResetNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyCtsTimeoutStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyCtsTimeoutStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyMaybeCcaBusyStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyMaybeCcaBusyStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyNavResetNow(ns3::Time duration) [member function] - cls.add_method('NotifyNavResetNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyNavStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyNavStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyOffNow() [member function] - cls.add_method('NotifyOffNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyOnNow() [member function] - cls.add_method('NotifyOnNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyRxEndErrorNow() [member function] - cls.add_method('NotifyRxEndErrorNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyRxEndOkNow() [member function] - cls.add_method('NotifyRxEndOkNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyRxStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyRxStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifySleepNow() [member function] - cls.add_method('NotifySleepNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifySwitchingStartNow(ns3::Time duration) [member function] - cls.add_method('NotifySwitchingStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyTxStartNow(ns3::Time duration) [member function] - cls.add_method('NotifyTxStartNow', - 'void', - [param('ns3::Time', 'duration')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::NotifyWakeupNow() [member function] - cls.add_method('NotifyWakeupNow', - 'void', - []) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::RemovePhyListener(ns3::Ptr phy) [member function] - cls.add_method('RemovePhyListener', - 'void', - [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::RequestAccess(ns3::Ptr state) [member function] - cls.add_method('RequestAccess', - 'void', - [param('ns3::Ptr< ns3::DcaTxop >', 'state')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetEifsNoDifs(ns3::Time eifsNoDifs) [member function] - cls.add_method('SetEifsNoDifs', - 'void', - [param('ns3::Time', 'eifsNoDifs')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetSifs(ns3::Time sifs) [member function] - cls.add_method('SetSifs', - 'void', - [param('ns3::Time', 'sifs')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetSlot(ns3::Time slotTime) [member function] - cls.add_method('SetSlot', - 'void', - [param('ns3::Time', 'slotTime')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetupLow(ns3::Ptr low) [member function] - cls.add_method('SetupLow', - 'void', - [param('ns3::Ptr< ns3::MacLow >', 'low')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::SetupPhyListener(ns3::Ptr phy) [member function] - cls.add_method('SetupPhyListener', - 'void', - [param('ns3::Ptr< ns3::WifiPhy >', 'phy')]) - ## dcf-manager.h (module 'wifi'): void ns3::DcfManager::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='protected', is_virtual=True) - return - def register_Ns3DeterministicRandomVariable_methods(root_module, cls): ## random-variable-stream.h (module 'core'): static ns3::TypeId ns3::DeterministicRandomVariable::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -13157,257 +13316,6 @@ def register_Ns3EdcaParameterSet_methods(root_module, cls): [param('uint16_t', 'txop')]) return -def register_Ns3EdcaTxopN_methods(root_module, cls): - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::EdcaTxopN(ns3::EdcaTxopN const & arg0) [constructor] - cls.add_constructor([param('ns3::EdcaTxopN const &', 'arg0')]) - ## edca-txop-n.h (module 'wifi'): ns3::EdcaTxopN::EdcaTxopN() [constructor] - cls.add_constructor([]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::BaTxFailed(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('BaTxFailed', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::BaTxOk(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('BaTxOk', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteAmpduTransfer(ns3::Mac48Address recipient, uint8_t tid) [member function] - cls.add_method('CompleteAmpduTransfer', - 'void', - [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteConfig() [member function] - cls.add_method('CompleteConfig', - 'void', - []) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::CompleteMpduTx(ns3::Ptr packet, ns3::WifiMacHeader hdr, ns3::Time tstamp) [member function] - cls.add_method('CompleteMpduTx', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader', 'hdr'), param('ns3::Time', 'tstamp')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::EndTxNoAck() [member function] - cls.add_method('EndTxNoAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::GetAmpduExist(ns3::Mac48Address dest) const [member function] - cls.add_method('GetAmpduExist', - 'bool', - [param('ns3::Mac48Address', 'dest')], - is_const=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::GetBaAgreementExists(ns3::Mac48Address address, uint8_t tid) const [member function] - cls.add_method('GetBaAgreementExists', - 'bool', - [param('ns3::Mac48Address', 'address'), param('uint8_t', 'tid')], - is_const=True) - ## edca-txop-n.h (module 'wifi'): uint8_t ns3::EdcaTxopN::GetBlockAckThreshold() const [member function] - cls.add_method('GetBlockAckThreshold', - 'uint8_t', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetFragmentPacket', - 'ns3::Ptr< ns3::Packet >', - [param('ns3::WifiMacHeader *', 'hdr')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetMpduAggregator() const [member function] - cls.add_method('GetMpduAggregator', - 'ns3::Ptr< ns3::MpduAggregator >', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::GetMsduAggregator() const [member function] - cls.add_method('GetMsduAggregator', - 'ns3::Ptr< ns3::MsduAggregator >', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): uint16_t ns3::EdcaTxopN::GetNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('GetNextSequenceNumberFor', - 'uint16_t', - [param('ns3::WifiMacHeader *', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): static ns3::TypeId ns3::EdcaTxopN::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## edca-txop-n.h (module 'wifi'): ns3::TypeOfStation ns3::EdcaTxopN::GetTypeOfStation() const [member function] - cls.add_method('GetTypeOfStation', - 'ns3::TypeOfStation', - [], - is_const=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotAck() [member function] - cls.add_method('GotAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotAddBaResponse(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address recipient) [member function] - cls.add_method('GotAddBaResponse', - 'void', - [param('ns3::MgtAddBaResponseHeader const *', 'respHdr'), param('ns3::Mac48Address', 'recipient')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] - cls.add_method('GotBlockAck', - 'void', - [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::GotDelBaFrame(ns3::MgtDelBaHeader const * delBaHdr, ns3::Mac48Address recipient) [member function] - cls.add_method('GotDelBaFrame', - 'void', - [param('ns3::MgtDelBaHeader const *', 'delBaHdr'), param('ns3::Mac48Address', 'recipient')]) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::IsEdca() [member function] - cls.add_method('IsEdca', - 'bool', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): ns3::Mac48Address ns3::EdcaTxopN::MapDestAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('MapDestAddressForAggregation', - 'ns3::Mac48Address', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): ns3::Mac48Address ns3::EdcaTxopN::MapSrcAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('MapSrcAddressForAggregation', - 'ns3::Mac48Address', - [param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedAck() [member function] - cls.add_method('MissedAck', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedBlockAck(uint8_t nMpdus) [member function] - cls.add_method('MissedBlockAck', - 'void', - [param('uint8_t', 'nMpdus')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::MissedCts() [member function] - cls.add_method('MissedCts', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::NeedBarRetransmission() [member function] - cls.add_method('NeedBarRetransmission', - 'bool', - []) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::NeedFragmentation() const [member function] - cls.add_method('NeedFragmentation', - 'bool', - [], - is_const=True, is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyAccessGranted() [member function] - cls.add_method('NotifyAccessGranted', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyCollision() [member function] - cls.add_method('NotifyCollision', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::NotifyInternalCollision() [member function] - cls.add_method('NotifyInternalCollision', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): ns3::Ptr ns3::EdcaTxopN::PeekNextRetransmitPacket(ns3::WifiMacHeader & header, ns3::Mac48Address recipient, uint8_t tid, ns3::Time * timestamp) [member function] - cls.add_method('PeekNextRetransmitPacket', - 'ns3::Ptr< ns3::Packet const >', - [param('ns3::WifiMacHeader &', 'header'), param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) - ## edca-txop-n.h (module 'wifi'): uint16_t ns3::EdcaTxopN::PeekNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] - cls.add_method('PeekNextSequenceNumberFor', - 'uint16_t', - [param('ns3::WifiMacHeader *', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::PushFront(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('PushFront', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::RemoveRetransmitPacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] - cls.add_method('RemoveRetransmitPacket', - 'void', - [param('uint8_t', 'tid'), param('ns3::Mac48Address', 'recipient'), param('uint16_t', 'seqnumber')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::RestartAccessIfNeeded() [member function] - cls.add_method('RestartAccessIfNeeded', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SendDelbaFrame(ns3::Mac48Address addr, uint8_t tid, bool byOriginator) [member function] - cls.add_method('SendDelbaFrame', - 'void', - [param('ns3::Mac48Address', 'addr'), param('uint8_t', 'tid'), param('bool', 'byOriginator')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetAccessCategory(ns3::AcIndex ac) [member function] - cls.add_method('SetAccessCategory', - 'void', - [param('ns3::AcIndex', 'ac')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetAmpduExist(ns3::Mac48Address dest, bool enableAmpdu) [member function] - cls.add_method('SetAmpduExist', - 'void', - [param('ns3::Mac48Address', 'dest'), param('bool', 'enableAmpdu')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetBlockAckInactivityTimeout(uint16_t timeout) [member function] - cls.add_method('SetBlockAckInactivityTimeout', - 'void', - [param('uint16_t', 'timeout')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetBlockAckThreshold(uint8_t threshold) [member function] - cls.add_method('SetBlockAckThreshold', - 'void', - [param('uint8_t', 'threshold')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetMpduAggregator(ns3::Ptr const aggr) [member function] - cls.add_method('SetMpduAggregator', - 'void', - [param('ns3::Ptr< ns3::MpduAggregator > const', 'aggr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetMsduAggregator(ns3::Ptr const aggr) [member function] - cls.add_method('SetMsduAggregator', - 'void', - [param('ns3::Ptr< ns3::MsduAggregator > const', 'aggr')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetTypeOfStation(ns3::TypeOfStation type) [member function] - cls.add_method('SetTypeOfStation', - 'void', - [param('ns3::TypeOfStation', 'type')]) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartAccessIfNeeded() [member function] - cls.add_method('StartAccessIfNeeded', - 'void', - [], - is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::StartNextPacket() [member function] - cls.add_method('StartNextPacket', - 'void', - [], - is_virtual=True) - ## 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) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): void ns3::EdcaTxopN::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetFragmentOffset() const [member function] - cls.add_method('GetFragmentOffset', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetFragmentSize() const [member function] - cls.add_method('GetFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): uint32_t ns3::EdcaTxopN::GetNextFragmentSize() const [member function] - cls.add_method('GetNextFragmentSize', - 'uint32_t', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::HasTxop() const [member function] - cls.add_method('HasTxop', - 'bool', - [], - is_const=True, visibility='private', is_virtual=True) - ## edca-txop-n.h (module 'wifi'): bool ns3::EdcaTxopN::IsLastFragment() const [member function] - cls.add_method('IsLastFragment', - 'bool', - [], - is_const=True, visibility='private', is_virtual=True) - return - def register_Ns3EmpiricalRandomVariable_methods(root_module, cls): ## random-variable-stream.h (module 'core'): ns3::EmpiricalRandomVariable::EmpiricalRandomVariable() [constructor] cls.add_constructor([]) @@ -15512,6 +15420,11 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::Time', [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters const &', 'parameters')], is_const=True) + ## mac-low.h (module 'wifi'): bool ns3::MacLow::CanTransmitNextCfFrame() const [member function] + cls.add_method('CanTransmitNextCfFrame', + 'bool', + [], + is_const=True) ## mac-low.h (module 'wifi'): void ns3::MacLow::CreateBlockAckAgreement(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address originator, uint16_t startingSeq) [member function] cls.add_method('CreateBlockAckAgreement', 'void', @@ -15524,6 +15437,10 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('DestroyBlockAckAgreement', 'void', [param('ns3::Mac48Address', 'originator'), param('uint8_t', 'tid')]) + ## mac-low.h (module 'wifi'): bool ns3::MacLow::DoNavStartNow(ns3::Time duration) [member function] + cls.add_method('DoNavStartNow', + 'bool', + [param('ns3::Time', 'duration')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::FlushAggregateQueue(uint8_t tid) [member function] cls.add_method('FlushAggregateQueue', 'void', @@ -15543,11 +15460,21 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::Time', [], is_const=True) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetBeaconInterval() const [member function] + cls.add_method('GetBeaconInterval', + 'ns3::Time', + [], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Mac48Address ns3::MacLow::GetBssid() const [member function] cls.add_method('GetBssid', 'ns3::Mac48Address', [], is_const=True) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetCfpMaxDuration() const [member function] + cls.add_method('GetCfpMaxDuration', + 'ns3::Time', + [], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetCompressedBlockAckTimeout() const [member function] cls.add_method('GetCompressedBlockAckTimeout', 'ns3::Time', @@ -15578,6 +15505,11 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::Time', [], is_const=True) + ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetRemainingCfpDuration() const [member function] + cls.add_method('GetRemainingCfpDuration', + 'ns3::Time', + [], + is_const=True) ## mac-low.h (module 'wifi'): ns3::Time ns3::MacLow::GetRifs() const [member function] cls.add_method('GetRifs', 'ns3::Time', @@ -15598,6 +15530,11 @@ def register_Ns3MacLow_methods(root_module, cls): 'ns3::TypeId', [], is_static=True) + ## mac-low.h (module 'wifi'): bool ns3::MacLow::IsCfPeriod() const [member function] + cls.add_method('IsCfPeriod', + 'bool', + [], + is_const=True, is_virtual=True) ## mac-low.h (module 'wifi'): bool ns3::MacLow::IsPromisc() const [member function] cls.add_method('IsPromisc', 'bool', @@ -15623,14 +15560,14 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('ReceiveOk', 'void', [param('ns3::Ptr< ns3::Packet >', 'packet'), param('double', 'rxSnr'), param('ns3::WifiTxVector', 'txVector'), param('bool', 'ampduSubframe')]) - ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterDcf(ns3::Ptr dcf) [member function] + ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterDcf(ns3::Ptr dcf) [member function] cls.add_method('RegisterDcf', 'void', - [param('ns3::Ptr< ns3::DcfManager >', 'dcf')]) - ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterEdcaForAc(ns3::AcIndex ac, ns3::Ptr edca) [member function] + [param('ns3::Ptr< ns3::ChannelAccessManager >', 'dcf')]) + ## mac-low.h (module 'wifi'): void ns3::MacLow::RegisterEdcaForAc(ns3::AcIndex ac, ns3::Ptr edca) [member function] cls.add_method('RegisterEdcaForAc', 'void', - [param('ns3::AcIndex', 'ac'), param('ns3::Ptr< ns3::EdcaTxopN >', 'edca')]) + [param('ns3::AcIndex', 'ac'), param('ns3::Ptr< ns3::QosTxop >', 'edca')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::ResetPhy() [member function] cls.add_method('ResetPhy', 'void', @@ -15647,10 +15584,18 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('SetBasicBlockAckTimeout', 'void', [param('ns3::Time', 'blockAckTimeout')]) + ## mac-low.h (module 'wifi'): void ns3::MacLow::SetBeaconInterval(ns3::Time interval) [member function] + cls.add_method('SetBeaconInterval', + 'void', + [param('ns3::Time', 'interval')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::SetBssid(ns3::Mac48Address ad) [member function] cls.add_method('SetBssid', 'void', [param('ns3::Mac48Address', 'ad')]) + ## mac-low.h (module 'wifi'): void ns3::MacLow::SetCfpMaxDuration(ns3::Time duration) [member function] + cls.add_method('SetCfpMaxDuration', + 'void', + [param('ns3::Time', 'duration')]) ## mac-low.h (module 'wifi'): void ns3::MacLow::SetCompressedBlockAckTimeout(ns3::Time blockAckTimeout) [member function] cls.add_method('SetCompressedBlockAckTimeout', 'void', @@ -15695,15 +15640,15 @@ def register_Ns3MacLow_methods(root_module, cls): cls.add_method('SetWifiRemoteStationManager', 'void', [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'manager')]) - ## mac-low.h (module 'wifi'): void ns3::MacLow::StartTransmission(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters parameters, ns3::Ptr dca) [member function] + ## mac-low.h (module 'wifi'): void ns3::MacLow::StartTransmission(ns3::Ptr packet, ns3::WifiMacHeader const * hdr, ns3::MacLowTransmissionParameters parameters, ns3::Ptr txop) [member function] cls.add_method('StartTransmission', 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters', 'parameters'), param('ns3::Ptr< ns3::DcaTxop >', 'dca')], + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr'), param('ns3::MacLowTransmissionParameters', 'parameters'), param('ns3::Ptr< ns3::Txop >', 'txop')], is_virtual=True) - ## mac-low.h (module 'wifi'): bool ns3::MacLow::StopMpduAggregation(ns3::Ptr peekedPacket, ns3::WifiMacHeader peekedHdr, ns3::Ptr aggregatedPacket, uint16_t size) const [member function] + ## mac-low.h (module 'wifi'): bool ns3::MacLow::StopMpduAggregation(ns3::Ptr peekedPacket, ns3::WifiMacHeader peekedHdr, ns3::Ptr aggregatedPacket, uint8_t blockAckSize) const [member function] cls.add_method('StopMpduAggregation', 'bool', - [param('ns3::Ptr< ns3::Packet const >', 'peekedPacket'), param('ns3::WifiMacHeader', 'peekedHdr'), param('ns3::Ptr< ns3::Packet >', 'aggregatedPacket'), param('uint16_t', 'size')], + [param('ns3::Ptr< ns3::Packet const >', 'peekedPacket'), param('ns3::WifiMacHeader', 'peekedHdr'), param('ns3::Ptr< ns3::Packet >', 'aggregatedPacket'), param('uint8_t', 'blockAckSize')], is_const=True) ## mac-low.h (module 'wifi'): void ns3::MacLow::DoDispose() [member function] cls.add_method('DoDispose', @@ -15725,6 +15670,10 @@ def register_Ns3MacRxMiddle_methods(root_module, cls): cls.add_method('SetForwardCallback', 'void', [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::WifiMacHeader const *, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) + ## mac-rx-middle.h (module 'wifi'): void ns3::MacRxMiddle::SetPcfCallback(ns3::Callback callback) [member function] + cls.add_method('SetPcfCallback', + 'void', + [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')]) return def register_Ns3MacTxMiddle_methods(root_module, cls): @@ -15905,9 +15854,9 @@ def register_Ns3MinstrelWifiManager_methods(root_module, cls): cls.add_method('CountRetries', 'uint32_t', [param('ns3::MinstrelWifiRemoteStation *', 'station')]) - ## minstrel-wifi-manager.h (module 'wifi'): uint32_t ns3::MinstrelWifiManager::FindRate(ns3::MinstrelWifiRemoteStation * station) [member function] + ## minstrel-wifi-manager.h (module 'wifi'): uint8_t ns3::MinstrelWifiManager::FindRate(ns3::MinstrelWifiRemoteStation * station) [member function] cls.add_method('FindRate', - 'uint32_t', + 'uint8_t', [param('ns3::MinstrelWifiRemoteStation *', 'station')]) ## minstrel-wifi-manager.h (module 'wifi'): ns3::WifiTxVector ns3::MinstrelWifiManager::GetDataTxVector(ns3::MinstrelWifiRemoteStation * station) [member function] cls.add_method('GetDataTxVector', @@ -17026,6 +16975,257 @@ def register_Ns3QosBlockedDestinations_methods(root_module, cls): [param('ns3::Mac48Address', 'dest'), param('uint8_t', 'tid')]) return +def register_Ns3QosTxop_methods(root_module, cls): + ## qos-txop.h (module 'wifi'): ns3::QosTxop::QosTxop(ns3::QosTxop const & arg0) [constructor] + cls.add_constructor([param('ns3::QosTxop const &', 'arg0')]) + ## qos-txop.h (module 'wifi'): ns3::QosTxop::QosTxop() [constructor] + cls.add_constructor([]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::BaTxFailed(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('BaTxFailed', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::BaTxOk(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('BaTxOk', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteAmpduTransfer(ns3::Mac48Address recipient, uint8_t tid) [member function] + cls.add_method('CompleteAmpduTransfer', + 'void', + [param('ns3::Mac48Address', 'recipient'), param('uint8_t', 'tid')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteConfig() [member function] + cls.add_method('CompleteConfig', + 'void', + []) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::CompleteMpduTx(ns3::Ptr packet, ns3::WifiMacHeader hdr, ns3::Time tstamp) [member function] + cls.add_method('CompleteMpduTx', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader', 'hdr'), param('ns3::Time', 'tstamp')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::EndTxNoAck() [member function] + cls.add_method('EndTxNoAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::GetAmpduExist(ns3::Mac48Address dest) const [member function] + cls.add_method('GetAmpduExist', + 'bool', + [param('ns3::Mac48Address', 'dest')], + is_const=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::GetBaAgreementExists(ns3::Mac48Address address, uint8_t tid) const [member function] + cls.add_method('GetBaAgreementExists', + 'bool', + [param('ns3::Mac48Address', 'address'), param('uint8_t', 'tid')], + is_const=True) + ## qos-txop.h (module 'wifi'): uint8_t ns3::QosTxop::GetBlockAckThreshold() const [member function] + cls.add_method('GetBlockAckThreshold', + 'uint8_t', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetFragmentPacket(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetFragmentPacket', + 'ns3::Ptr< ns3::Packet >', + [param('ns3::WifiMacHeader *', 'hdr')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetMpduAggregator() const [member function] + cls.add_method('GetMpduAggregator', + 'ns3::Ptr< ns3::MpduAggregator >', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::GetMsduAggregator() const [member function] + cls.add_method('GetMsduAggregator', + 'ns3::Ptr< ns3::MsduAggregator >', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): uint16_t ns3::QosTxop::GetNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('GetNextSequenceNumberFor', + 'uint16_t', + [param('ns3::WifiMacHeader *', 'hdr')]) + ## qos-txop.h (module 'wifi'): static ns3::TypeId ns3::QosTxop::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## qos-txop.h (module 'wifi'): ns3::TypeOfStation ns3::QosTxop::GetTypeOfStation() const [member function] + cls.add_method('GetTypeOfStation', + 'ns3::TypeOfStation', + [], + is_const=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotAck() [member function] + cls.add_method('GotAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotAddBaResponse(ns3::MgtAddBaResponseHeader const * respHdr, ns3::Mac48Address recipient) [member function] + cls.add_method('GotAddBaResponse', + 'void', + [param('ns3::MgtAddBaResponseHeader const *', 'respHdr'), param('ns3::Mac48Address', 'recipient')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotBlockAck(ns3::CtrlBAckResponseHeader const * blockAck, ns3::Mac48Address recipient, double rxSnr, ns3::WifiMode txMode, double dataSnr) [member function] + cls.add_method('GotBlockAck', + 'void', + [param('ns3::CtrlBAckResponseHeader const *', 'blockAck'), param('ns3::Mac48Address', 'recipient'), param('double', 'rxSnr'), param('ns3::WifiMode', 'txMode'), param('double', 'dataSnr')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::GotDelBaFrame(ns3::MgtDelBaHeader const * delBaHdr, ns3::Mac48Address recipient) [member function] + cls.add_method('GotDelBaFrame', + 'void', + [param('ns3::MgtDelBaHeader const *', 'delBaHdr'), param('ns3::Mac48Address', 'recipient')]) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::IsQosTxop() const [member function] + cls.add_method('IsQosTxop', + 'bool', + [], + is_const=True, is_virtual=True) + ## qos-txop.h (module 'wifi'): ns3::Mac48Address ns3::QosTxop::MapDestAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('MapDestAddressForAggregation', + 'ns3::Mac48Address', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): ns3::Mac48Address ns3::QosTxop::MapSrcAddressForAggregation(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('MapSrcAddressForAggregation', + 'ns3::Mac48Address', + [param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedAck() [member function] + cls.add_method('MissedAck', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedBlockAck(uint8_t nMpdus) [member function] + cls.add_method('MissedBlockAck', + 'void', + [param('uint8_t', 'nMpdus')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::MissedCts() [member function] + cls.add_method('MissedCts', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::NeedBarRetransmission() [member function] + cls.add_method('NeedBarRetransmission', + 'bool', + []) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::NeedFragmentation() const [member function] + cls.add_method('NeedFragmentation', + 'bool', + [], + is_const=True, is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyAccessGranted() [member function] + cls.add_method('NotifyAccessGranted', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyCollision() [member function] + cls.add_method('NotifyCollision', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::NotifyInternalCollision() [member function] + cls.add_method('NotifyInternalCollision', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): ns3::Ptr ns3::QosTxop::PeekNextRetransmitPacket(ns3::WifiMacHeader & header, uint8_t tid, ns3::Time * timestamp) [member function] + cls.add_method('PeekNextRetransmitPacket', + 'ns3::Ptr< ns3::Packet const >', + [param('ns3::WifiMacHeader &', 'header'), param('uint8_t', 'tid'), param('ns3::Time *', 'timestamp')]) + ## qos-txop.h (module 'wifi'): uint16_t ns3::QosTxop::PeekNextSequenceNumberFor(ns3::WifiMacHeader * hdr) [member function] + cls.add_method('PeekNextSequenceNumberFor', + 'uint16_t', + [param('ns3::WifiMacHeader *', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::PushFront(ns3::Ptr packet, ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('PushFront', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::WifiMacHeader const &', 'hdr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::RemoveRetransmitPacket(uint8_t tid, ns3::Mac48Address recipient, uint16_t seqnumber) [member function] + cls.add_method('RemoveRetransmitPacket', + 'void', + [param('uint8_t', 'tid'), param('ns3::Mac48Address', 'recipient'), param('uint16_t', 'seqnumber')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::RestartAccessIfNeeded() [member function] + cls.add_method('RestartAccessIfNeeded', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SendDelbaFrame(ns3::Mac48Address addr, uint8_t tid, bool byOriginator) [member function] + cls.add_method('SendDelbaFrame', + 'void', + [param('ns3::Mac48Address', 'addr'), param('uint8_t', 'tid'), param('bool', 'byOriginator')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetAccessCategory(ns3::AcIndex ac) [member function] + cls.add_method('SetAccessCategory', + 'void', + [param('ns3::AcIndex', 'ac')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetAmpduExist(ns3::Mac48Address dest, bool enableAmpdu) [member function] + cls.add_method('SetAmpduExist', + 'void', + [param('ns3::Mac48Address', 'dest'), param('bool', 'enableAmpdu')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetBlockAckInactivityTimeout(uint16_t timeout) [member function] + cls.add_method('SetBlockAckInactivityTimeout', + 'void', + [param('uint16_t', 'timeout')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetBlockAckThreshold(uint8_t threshold) [member function] + cls.add_method('SetBlockAckThreshold', + 'void', + [param('uint8_t', 'threshold')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetMpduAggregator(ns3::Ptr const aggr) [member function] + cls.add_method('SetMpduAggregator', + 'void', + [param('ns3::Ptr< ns3::MpduAggregator > const', 'aggr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetMsduAggregator(ns3::Ptr const aggr) [member function] + cls.add_method('SetMsduAggregator', + 'void', + [param('ns3::Ptr< ns3::MsduAggregator > const', 'aggr')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetTypeOfStation(ns3::TypeOfStation type) [member function] + cls.add_method('SetTypeOfStation', + 'void', + [param('ns3::TypeOfStation', 'type')]) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::SetWifiRemoteStationManager(ns3::Ptr const remoteManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'remoteManager')], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::StartAccessIfNeeded() [member function] + cls.add_method('StartAccessIfNeeded', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::StartNextPacket() [member function] + cls.add_method('StartNextPacket', + 'void', + [], + is_virtual=True) + ## qos-txop.h (module 'wifi'): ns3::QosTxop::m_aMpduEnabled [variable] + cls.add_instance_attribute('m_aMpduEnabled', 'std::map< ns3::Mac48Address, bool >', is_const=False) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): void ns3::QosTxop::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetFragmentOffset() const [member function] + cls.add_method('GetFragmentOffset', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetFragmentSize() const [member function] + cls.add_method('GetFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): uint32_t ns3::QosTxop::GetNextFragmentSize() const [member function] + cls.add_method('GetNextFragmentSize', + 'uint32_t', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::HasTxop() const [member function] + cls.add_method('HasTxop', + 'bool', + [], + is_const=True, visibility='private', is_virtual=True) + ## qos-txop.h (module 'wifi'): bool ns3::QosTxop::IsLastFragment() const [member function] + cls.add_method('IsLastFragment', + 'bool', + [], + is_const=True, visibility='private', is_virtual=True) + return + def register_Ns3Queue__Ns3WifiMacQueueItem_methods(root_module, cls): ## queue.h (module 'network'): static ns3::TypeId ns3::Queue::GetTypeId() [member function] cls.add_method('GetTypeId', @@ -17382,29 +17582,29 @@ def register_Ns3RegularWifiMac_methods(root_module, cls): 'void', [], visibility='protected', is_virtual=True) - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetDcaTxop() const [member function] - cls.add_method('GetDcaTxop', - 'ns3::Ptr< ns3::DcaTxop >', + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetTxop() const [member function] + cls.add_method('GetTxop', + 'ns3::Ptr< ns3::Txop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVOQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVOQueue() const [member function] cls.add_method('GetVOQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVIQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetVIQueue() const [member function] cls.add_method('GetVIQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBEQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBEQueue() const [member function] cls.add_method('GetBEQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') - ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBKQueue() const [member function] + ## regular-wifi-mac.h (module 'wifi'): ns3::Ptr ns3::RegularWifiMac::GetBKQueue() const [member function] cls.add_method('GetBKQueue', - 'ns3::Ptr< ns3::EdcaTxopN >', + 'ns3::Ptr< ns3::QosTxop >', [], is_const=True, visibility='protected') ## regular-wifi-mac.h (module 'wifi'): void ns3::RegularWifiMac::FinishConfigureStandard(ns3::WifiPhyStandard standard) [member function] @@ -17456,7 +17656,7 @@ def register_Ns3RegularWifiMac_methods(root_module, cls): cls.add_method('SetQosSupported', 'void', [param('bool', 'enable')], - visibility='protected') + visibility='protected', is_virtual=True) ## regular-wifi-mac.h (module 'wifi'): bool ns3::RegularWifiMac::GetQosSupported() const [member function] cls.add_method('GetQosSupported', 'bool', @@ -17802,9 +18002,9 @@ def register_Ns3SpectrumWifiPhy_methods(root_module, cls): 'double', [], is_const=True) - ## spectrum-wifi-phy.h (module 'wifi'): uint32_t ns3::SpectrumWifiPhy::GetCenterFrequencyForChannelWidth(ns3::WifiTxVector txVector) const [member function] + ## spectrum-wifi-phy.h (module 'wifi'): uint16_t ns3::SpectrumWifiPhy::GetCenterFrequencyForChannelWidth(ns3::WifiTxVector txVector) const [member function] cls.add_method('GetCenterFrequencyForChannelWidth', - 'uint32_t', + 'uint16_t', [param('ns3::WifiTxVector', 'txVector')], is_const=True) ## spectrum-wifi-phy.h (module 'wifi'): ns3::Ptr ns3::SpectrumWifiPhy::GetChannel() const [member function] @@ -17966,31 +18166,6 @@ def register_Ns3SsidValue_methods(root_module, cls): [param('ns3::Ssid const &', 'value')]) return -def register_Ns3StaWifiMac_methods(root_module, cls): - ## sta-wifi-mac.h (module 'wifi'): static ns3::TypeId ns3::StaWifiMac::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## sta-wifi-mac.h (module 'wifi'): ns3::StaWifiMac::StaWifiMac() [constructor] - cls.add_constructor([]) - ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to) [member function] - cls.add_method('Enqueue', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to')], - is_virtual=True) - ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::SetWifiPhy(ns3::Ptr const phy) [member function] - cls.add_method('SetWifiPhy', - 'void', - [param('ns3::Ptr< ns3::WifiPhy > const', 'phy')], - is_virtual=True) - ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::Receive(ns3::Ptr packet, ns3::WifiMacHeader const * hdr) [member function] - cls.add_method('Receive', - 'void', - [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr')], - visibility='private', is_virtual=True) - return - def register_Ns3SupportedRates_methods(root_module, cls): cls.add_output_stream_operator() ## supported-rates.h (module 'wifi'): ns3::SupportedRates::SupportedRates() [constructor] @@ -18507,6 +18682,10 @@ def register_Ns3WifiMacQueue_methods(root_module, cls): 'ns3::Ptr< ns3::WifiMacQueueItem >', [], is_virtual=True) + ## wifi-mac-queue.h (module 'wifi'): ns3::Ptr ns3::WifiMacQueue::DequeueByAddress(ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] + cls.add_method('DequeueByAddress', + 'ns3::Ptr< ns3::WifiMacQueueItem >', + [param('ns3::WifiMacHeader::AddressType', 'type'), param('ns3::Mac48Address', 'dest')]) ## wifi-mac-queue.h (module 'wifi'): ns3::Ptr ns3::WifiMacQueue::DequeueByTidAndAddress(uint8_t tid, ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] cls.add_method('DequeueByTidAndAddress', 'ns3::Ptr< ns3::WifiMacQueueItem >', @@ -18537,6 +18716,10 @@ def register_Ns3WifiMacQueue_methods(root_module, cls): cls.add_method('Remove', 'bool', [param('ns3::Ptr< ns3::Packet const >', 'packet')]) + ## wifi-mac-queue.h (module 'wifi'): uint32_t ns3::WifiMacQueue::GetNPacketsByAddress(ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] + cls.add_method('GetNPacketsByAddress', + 'uint32_t', + [param('ns3::WifiMacHeader::AddressType', 'type'), param('ns3::Mac48Address', 'dest')]) ## wifi-mac-queue.h (module 'wifi'): uint32_t ns3::WifiMacQueue::GetNPacketsByTidAndAddress(uint8_t tid, ns3::WifiMacHeader::AddressType type, ns3::Mac48Address dest) [member function] cls.add_method('GetNPacketsByTidAndAddress', 'uint32_t', @@ -19040,109 +19223,6 @@ def register_Ns3AdhocWifiMac_methods(root_module, cls): visibility='private', is_virtual=True) return -def register_Ns3ApWifiMac_methods(root_module, cls): - ## ap-wifi-mac.h (module 'wifi'): static ns3::TypeId ns3::ApWifiMac::GetTypeId() [member function] - cls.add_method('GetTypeId', - 'ns3::TypeId', - [], - is_static=True) - ## ap-wifi-mac.h (module 'wifi'): ns3::ApWifiMac::ApWifiMac() [constructor] - cls.add_constructor([]) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetWifiRemoteStationManager(ns3::Ptr const stationManager) [member function] - cls.add_method('SetWifiRemoteStationManager', - 'void', - [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'stationManager')], - is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetLinkUpCallback(ns3::Callback linkUp) [member function] - cls.add_method('SetLinkUpCallback', - 'void', - [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkUp')], - is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to) [member function] - cls.add_method('Enqueue', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to')], - is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to, ns3::Mac48Address from) [member function] - cls.add_method('Enqueue', - 'void', - [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to'), param('ns3::Mac48Address', 'from')], - is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::SupportsSendFrom() const [member function] - cls.add_method('SupportsSendFrom', - 'bool', - [], - is_const=True, is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetAddress(ns3::Mac48Address address) [member function] - cls.add_method('SetAddress', - 'void', - [param('ns3::Mac48Address', 'address')], - is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetBeaconInterval(ns3::Time interval) [member function] - cls.add_method('SetBeaconInterval', - 'void', - [param('ns3::Time', 'interval')]) - ## ap-wifi-mac.h (module 'wifi'): ns3::Time ns3::ApWifiMac::GetBeaconInterval() const [member function] - cls.add_method('GetBeaconInterval', - 'ns3::Time', - [], - is_const=True) - ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::GetShortSlotTimeEnabled() const [member function] - cls.add_method('GetShortSlotTimeEnabled', - 'bool', - [], - is_const=True) - ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::GetShortPreambleEnabled() const [member function] - cls.add_method('GetShortPreambleEnabled', - 'bool', - [], - is_const=True) - ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::IsNonGfHtStasPresent() const [member function] - cls.add_method('IsNonGfHtStasPresent', - 'bool', - [], - is_const=True) - ## ap-wifi-mac.h (module 'wifi'): uint16_t ns3::ApWifiMac::GetVhtOperationalChannelWidth() const [member function] - cls.add_method('GetVhtOperationalChannelWidth', - 'uint16_t', - [], - is_const=True) - ## ap-wifi-mac.h (module 'wifi'): int64_t ns3::ApWifiMac::AssignStreams(int64_t stream) [member function] - cls.add_method('AssignStreams', - 'int64_t', - [param('int64_t', 'stream')]) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Receive(ns3::Ptr packet, ns3::WifiMacHeader const * hdr) [member function] - cls.add_method('Receive', - 'void', - [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr')], - visibility='private', is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::TxOk(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('TxOk', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')], - visibility='private', is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::TxFailed(ns3::WifiMacHeader const & hdr) [member function] - cls.add_method('TxFailed', - 'void', - [param('ns3::WifiMacHeader const &', 'hdr')], - visibility='private', is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::DeaggregateAmsduAndForward(ns3::Ptr aggregatedPacket, ns3::WifiMacHeader const * hdr) [member function] - cls.add_method('DeaggregateAmsduAndForward', - 'void', - [param('ns3::Ptr< ns3::Packet >', 'aggregatedPacket'), param('ns3::WifiMacHeader const *', 'hdr')], - visibility='private', is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::DoDispose() [member function] - cls.add_method('DoDispose', - 'void', - [], - visibility='private', is_virtual=True) - ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::DoInitialize() [member function] - cls.add_method('DoInitialize', - 'void', - [], - visibility='private', is_virtual=True) - return - def register_Ns3CallbackImpl__Ns3ObjectBase___star___Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_Ns3Empty_methods(root_module, cls): ## callback.h (module 'core'): ns3::CallbackImpl::CallbackImpl() [constructor] cls.add_constructor([]) @@ -19781,6 +19861,177 @@ def register_Ns3CallbackImpl__Void_Unsigned_long_Unsigned_long_Ns3Empty_Ns3Empty is_pure_virtual=True, is_virtual=True, custom_name=u'__call__') return +def register_Ns3InfrastructureWifiMac_methods(root_module, cls): + ## infrastructure-wifi-mac.h (module 'wifi'): static ns3::TypeId ns3::InfrastructureWifiMac::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## infrastructure-wifi-mac.h (module 'wifi'): ns3::InfrastructureWifiMac::InfrastructureWifiMac() [constructor] + cls.add_constructor([]) + ## infrastructure-wifi-mac.h (module 'wifi'): void ns3::InfrastructureWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to) [member function] + cls.add_method('Enqueue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to')], + is_pure_virtual=True, is_virtual=True) + ## infrastructure-wifi-mac.h (module 'wifi'): void ns3::InfrastructureWifiMac::SetQosSupported(bool enable) [member function] + cls.add_method('SetQosSupported', + 'void', + [param('bool', 'enable')], + is_virtual=True) + ## infrastructure-wifi-mac.h (module 'wifi'): void ns3::InfrastructureWifiMac::SetPcfSupported(bool enable) [member function] + cls.add_method('SetPcfSupported', + 'void', + [param('bool', 'enable')]) + ## infrastructure-wifi-mac.h (module 'wifi'): bool ns3::InfrastructureWifiMac::GetPcfSupported() const [member function] + cls.add_method('GetPcfSupported', + 'bool', + [], + is_const=True) + return + +def register_Ns3StaWifiMac_methods(root_module, cls): + ## sta-wifi-mac.h (module 'wifi'): static ns3::TypeId ns3::StaWifiMac::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## sta-wifi-mac.h (module 'wifi'): ns3::StaWifiMac::StaWifiMac() [constructor] + cls.add_constructor([]) + ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::SetWifiRemoteStationManager(ns3::Ptr const stationManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'stationManager')], + is_virtual=True) + ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to) [member function] + cls.add_method('Enqueue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to')], + is_virtual=True) + ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::SetWifiPhy(ns3::Ptr const phy) [member function] + cls.add_method('SetWifiPhy', + 'void', + [param('ns3::Ptr< ns3::WifiPhy > const', 'phy')], + is_virtual=True) + ## sta-wifi-mac.h (module 'wifi'): void ns3::StaWifiMac::Receive(ns3::Ptr packet, ns3::WifiMacHeader const * hdr) [member function] + cls.add_method('Receive', + 'void', + [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr')], + visibility='private', is_virtual=True) + return + +def register_Ns3ApWifiMac_methods(root_module, cls): + ## ap-wifi-mac.h (module 'wifi'): static ns3::TypeId ns3::ApWifiMac::GetTypeId() [member function] + cls.add_method('GetTypeId', + 'ns3::TypeId', + [], + is_static=True) + ## ap-wifi-mac.h (module 'wifi'): ns3::ApWifiMac::ApWifiMac() [constructor] + cls.add_constructor([]) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetWifiRemoteStationManager(ns3::Ptr const stationManager) [member function] + cls.add_method('SetWifiRemoteStationManager', + 'void', + [param('ns3::Ptr< ns3::WifiRemoteStationManager > const', 'stationManager')], + is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetLinkUpCallback(ns3::Callback linkUp) [member function] + cls.add_method('SetLinkUpCallback', + 'void', + [param('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'linkUp')], + is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to) [member function] + cls.add_method('Enqueue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to')], + is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Enqueue(ns3::Ptr packet, ns3::Mac48Address to, ns3::Mac48Address from) [member function] + cls.add_method('Enqueue', + 'void', + [param('ns3::Ptr< ns3::Packet const >', 'packet'), param('ns3::Mac48Address', 'to'), param('ns3::Mac48Address', 'from')], + is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::SupportsSendFrom() const [member function] + cls.add_method('SupportsSendFrom', + 'bool', + [], + is_const=True, is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetAddress(ns3::Mac48Address address) [member function] + cls.add_method('SetAddress', + 'void', + [param('ns3::Mac48Address', 'address')], + is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetBeaconInterval(ns3::Time interval) [member function] + cls.add_method('SetBeaconInterval', + 'void', + [param('ns3::Time', 'interval')]) + ## ap-wifi-mac.h (module 'wifi'): ns3::Time ns3::ApWifiMac::GetBeaconInterval() const [member function] + cls.add_method('GetBeaconInterval', + 'ns3::Time', + [], + is_const=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::SetCfpMaxDuration(ns3::Time duration) [member function] + cls.add_method('SetCfpMaxDuration', + 'void', + [param('ns3::Time', 'duration')]) + ## ap-wifi-mac.h (module 'wifi'): ns3::Time ns3::ApWifiMac::GetCfpMaxDuration() const [member function] + cls.add_method('GetCfpMaxDuration', + 'ns3::Time', + [], + is_const=True) + ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::GetShortSlotTimeEnabled() const [member function] + cls.add_method('GetShortSlotTimeEnabled', + 'bool', + [], + is_const=True) + ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::GetShortPreambleEnabled() const [member function] + cls.add_method('GetShortPreambleEnabled', + 'bool', + [], + is_const=True) + ## ap-wifi-mac.h (module 'wifi'): bool ns3::ApWifiMac::IsNonGfHtStasPresent() const [member function] + cls.add_method('IsNonGfHtStasPresent', + 'bool', + [], + is_const=True) + ## ap-wifi-mac.h (module 'wifi'): uint16_t ns3::ApWifiMac::GetVhtOperationalChannelWidth() const [member function] + cls.add_method('GetVhtOperationalChannelWidth', + 'uint16_t', + [], + is_const=True) + ## ap-wifi-mac.h (module 'wifi'): int64_t ns3::ApWifiMac::AssignStreams(int64_t stream) [member function] + cls.add_method('AssignStreams', + 'int64_t', + [param('int64_t', 'stream')]) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Receive(ns3::Ptr packet, ns3::WifiMacHeader const * hdr) [member function] + cls.add_method('Receive', + 'void', + [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::WifiMacHeader const *', 'hdr')], + visibility='private', is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::TxOk(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('TxOk', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')], + visibility='private', is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::TxFailed(ns3::WifiMacHeader const & hdr) [member function] + cls.add_method('TxFailed', + 'void', + [param('ns3::WifiMacHeader const &', 'hdr')], + visibility='private', is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::DeaggregateAmsduAndForward(ns3::Ptr aggregatedPacket, ns3::WifiMacHeader const * hdr) [member function] + cls.add_method('DeaggregateAmsduAndForward', + 'void', + [param('ns3::Ptr< ns3::Packet >', 'aggregatedPacket'), param('ns3::WifiMacHeader const *', 'hdr')], + visibility='private', is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::DoDispose() [member function] + cls.add_method('DoDispose', + 'void', + [], + visibility='private', is_virtual=True) + ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::DoInitialize() [member function] + cls.add_method('DoInitialize', + 'void', + [], + visibility='private', is_virtual=True) + return + def register_Ns3HashImplementation_methods(root_module, cls): ## hash-function.h (module 'core'): ns3::Hash::Implementation::Implementation(ns3::Hash::Implementation const & arg0) [constructor] cls.add_constructor([param('ns3::Hash::Implementation const &', 'arg0')]) diff --git a/src/wifi/doc/source/wifi-design.rst b/src/wifi/doc/source/wifi-design.rst index 8e84a13fd..8a7178afb 100644 --- a/src/wifi/doc/source/wifi-design.rst +++ b/src/wifi/doc/source/wifi-design.rst @@ -103,16 +103,17 @@ MAC low layer The **MAC low layer** is split into three main components: -#. ``ns3::MacLow`` which takes care of RTS/CTS/DATA/ACK transactions. -#. ``ns3::DcfManager`` and ``ns3::DcfState`` which implements the DCF and EDCAF +#. ``ns3::MacLow`` which takes care of RTS/CTS/DATA/ACK transactions and also + performs MPDU aggregation. +#. ``ns3::ChannelAccessManager`` and ``ns3::DcfState`` which implements the DCF and EDCAF functions. -#. ``ns3::DcaTxop`` and ``ns3::EdcaTxopN`` which handle the packet queue, +#. ``ns3::Txop`` and ``ns3::QosTxop`` which handle the packet queue, packet fragmentation, and packet retransmissions if they are needed. - The ``ns3::DcaTxop`` object is used by high MACs that are not QoS-enabled, + The ``ns3::Txop`` object is used by high MACs that are not QoS-enabled, and for transmission of frames (e.g., of type Management) that the standard says should access the medium using the DCF. - ``ns3::EdcaTxopN`` is is used by QoS-enabled high MACs and also - performs 802.11n-style MSDU aggregation. + ``ns3::QosTxop`` is is used by QoS-enabled high MACs and also + performs MSDU aggregation. PHY layer models ================ @@ -170,7 +171,8 @@ The following details pertain to the physical layer and channel models: * 802.11ax only supports SU PPDU format * 802.11ac/ax MU-MIMO is not supported, and no more than 4 antennas can be configured * 802.11n/ac/ax beamforming is not supported -* 802.11 PCF and 802.11 HCF/HCCA are not implemented +* 802.11 HCF/HCCA are not implemented +* 802.11 PCF implementation currently assumes a DTIM interval equal to the beacon interval * Authentication and encryption are missing * Processing delays are not modeled * PLCP preamble reception is not modeled @@ -631,12 +633,12 @@ Depending on your goal, the common tasks are (in no particular order): * MAC high modification. For example, handling new management frames (think beacon/probe), beacon/probe generation. Users usually make changes to ``regular-wifi-mac.*``, ``sta-wifi-mac.*``, ``ap-wifi-mac.*``, or ``adhoc-wifi-mac.*`` to accomplish this. -* Wi-Fi queue management. The files ``dca-txop.*`` and ``edca-txop-n.*`` are of interested for this task. -* Channel access management. Users should modify the files ``dcf-manager.*``, which grant access to - ``DcaTxop`` and ``EdcaTxopN``. +* Wi-Fi queue management. The files ``txop.*`` and ``qos-txop.*`` are of interested for this task. +* Channel access management. Users should modify the files ``channel-access-manager.*``, which grant access to + ``Txop`` and ``QosTxop``. * Fragmentation and RTS threholds are handled by Wi-Fi remote station manager. Note that Wi-Fi remote station manager simply indicates if fragmentation and RTS are needed. Fragmentation is handled by - ``DcaTxop`` or ``EdcaTxopN`` while RTS/CTS transaction is hanled by ``MacLow``. + ``Txop`` or ``QosTxop`` while RTS/CTS transaction is hanled by ``MacLow``. * Modifying or creating new rate control algorithms can be done by creating a new child class of Wi-Fi remote station manager or modifying the existing ones. diff --git a/src/wifi/doc/source/wifi-user.rst b/src/wifi/doc/source/wifi-user.rst index 90b0dcc71..fd971902b 100644 --- a/src/wifi/doc/source/wifi-user.rst +++ b/src/wifi/doc/source/wifi-user.rst @@ -544,6 +544,14 @@ The following code shows how to create an AP with QoS enabled:: To create ad-hoc MAC instances, simply use ``ns3::AdhocWifiMac`` instead of ``ns3::StaWifiMac`` or ``ns3::ApWifiMac``. +In infrastructure mode with QoS not enabled, it is also possible to enable PCF support. +The following code shows how to create an AP with PCF enabled:: + + WifiMacHelper wifiMacHelper; + wifiMacHelper.SetType ("ns3::ApWifiMac", + "Ssid", SsidValue (ssid), + "PcfSupported", BooleanValue (true)); + With QoS-enabled MAC models it is possible to work with traffic belonging to four different Access Categories (ACs): **AC_VO** for voice traffic, **AC_VI** for video traffic, **AC_BE** for best-effort diff --git a/src/wifi/helper/wifi-helper.cc b/src/wifi/helper/wifi-helper.cc index 60d24ce72..f8f7ff34e 100644 --- a/src/wifi/helper/wifi-helper.cc +++ b/src/wifi/helper/wifi-helper.cc @@ -790,11 +790,12 @@ WifiHelper::EnableLogComponents (void) LogComponentEnable ("BlockAckManager", LOG_LEVEL_ALL); LogComponentEnable ("CaraWifiManager", LOG_LEVEL_ALL); LogComponentEnable ("ConstantRateWifiManager", LOG_LEVEL_ALL); - LogComponentEnable ("DcaTxop", LOG_LEVEL_ALL); - LogComponentEnable ("DcfManager", LOG_LEVEL_ALL); + LogComponentEnable ("Txop", LOG_LEVEL_ALL); + LogComponentEnable ("ChannelAccessManager", LOG_LEVEL_ALL); LogComponentEnable ("DsssErrorRateModel", LOG_LEVEL_ALL); - LogComponentEnable ("EdcaTxopN", LOG_LEVEL_ALL); + LogComponentEnable ("QosTxop", LOG_LEVEL_ALL); LogComponentEnable ("IdealWifiManager", LOG_LEVEL_ALL); + LogComponentEnable ("InfrastructureWifiMac", LOG_LEVEL_ALL); LogComponentEnable ("InterferenceHelper", LOG_LEVEL_ALL); LogComponentEnable ("MacLow", LOG_LEVEL_ALL); LogComponentEnable ("MacRxMiddle", LOG_LEVEL_ALL); @@ -861,25 +862,25 @@ WifiHelper::AssignStreams (NetDeviceContainer c, int64_t stream) if (rmac) { PointerValue ptr; - rmac->GetAttribute ("DcaTxop", ptr); - Ptr dcaTxop = ptr.Get (); - currentStream += dcaTxop->AssignStreams (currentStream); + rmac->GetAttribute ("Txop", ptr); + Ptr txop = ptr.Get (); + currentStream += txop->AssignStreams (currentStream); - rmac->GetAttribute ("VO_EdcaTxopN", ptr); - Ptr vo_edcaTxopN = ptr.Get (); - currentStream += vo_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("VO_Txop", ptr); + Ptr vo_txop = ptr.Get (); + currentStream += vo_txop->AssignStreams (currentStream); - rmac->GetAttribute ("VI_EdcaTxopN", ptr); - Ptr vi_edcaTxopN = ptr.Get (); - currentStream += vi_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("VI_Txop", ptr); + Ptr vi_txop = ptr.Get (); + currentStream += vi_txop->AssignStreams (currentStream); - rmac->GetAttribute ("BE_EdcaTxopN", ptr); - Ptr be_edcaTxopN = ptr.Get (); - currentStream += be_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("BE_Txop", ptr); + Ptr be_txop = ptr.Get (); + currentStream += be_txop->AssignStreams (currentStream); - rmac->GetAttribute ("BK_EdcaTxopN", ptr); - Ptr bk_edcaTxopN = ptr.Get (); - currentStream += bk_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("BK_Txop", ptr); + Ptr bk_txop = ptr.Get (); + currentStream += bk_txop->AssignStreams (currentStream); //if an AP, handle any beacon jitter Ptr apmac = DynamicCast (rmac); diff --git a/src/wifi/helper/wifi-mac-helper.h b/src/wifi/helper/wifi-mac-helper.h index 4a0a1c17f..a96419fa7 100644 --- a/src/wifi/helper/wifi-mac-helper.h +++ b/src/wifi/helper/wifi-mac-helper.h @@ -32,7 +32,7 @@ class WifiMac; * * This class can create MACs of type ns3::ApWifiMac, ns3::StaWifiMac and ns3::AdhocWifiMac. * Its purpose is to allow a WifiHelper to configure and install WifiMac objects on a collection - * of nodes. The WifiMac objects themselves are mainly composed of TxMiddle, RxMiddle, DcfManager, + * of nodes. The WifiMac objects themselves are mainly composed of TxMiddle, RxMiddle, ChannelAccessManager, * MacLow, WifiRemoteStationManager, MpduAggregator and MsduAggregartor objects, so this helper * offers the opportunity to configure attribute values away from their default values, on a * per-NodeContainer basis. By default, it creates an Adhoc MAC layer without QoS. Typically, diff --git a/src/wifi/model/adhoc-wifi-mac.cc b/src/wifi/model/adhoc-wifi-mac.cc index d2f24a4fc..1aa2e4184 100644 --- a/src/wifi/model/adhoc-wifi-mac.cc +++ b/src/wifi/model/adhoc-wifi-mac.cc @@ -79,19 +79,19 @@ AdhocWifiMac::Enqueue (Ptr packet, Mac48Address to) { //In ad hoc mode, we assume that every destination supports all //the rates we support. - if (m_htSupported || m_vhtSupported || m_heSupported) + if (GetHtSupported () || GetVhtSupported () || GetHeSupported ()) { m_stationManager->AddAllSupportedMcs (to); } - if (m_htSupported) + if (GetHtSupported ()) { m_stationManager->AddStationHtCapabilities (to, GetHtCapabilities ()); } - if (m_vhtSupported) + if (GetVhtSupported ()) { m_stationManager->AddStationVhtCapabilities (to, GetVhtCapabilities ()); } - if (m_heSupported) + if (GetHeSupported ()) { m_stationManager->AddStationHeCapabilities (to, GetHeCapabilities ()); } @@ -111,7 +111,7 @@ AdhocWifiMac::Enqueue (Ptr packet, Mac48Address to) //back to non-QoS if talking to a peer that is also non-QoS. At //that point there will need to be per-station QoS state maintained //by the association state machine, and consulted here. - if (m_qosSupported) + if (GetQosSupported ()) { hdr.SetType (WIFI_MAC_QOSDATA); hdr.SetQosAckPolicy (WifiMacHeader::NORMAL_ACK); @@ -137,7 +137,7 @@ AdhocWifiMac::Enqueue (Ptr packet, Mac48Address to) hdr.SetType (WIFI_MAC_DATA); } - if (m_htSupported || m_vhtSupported || m_heSupported) + if (GetHtSupported () || GetVhtSupported () || GetHeSupported ()) { hdr.SetNoOrder (); } @@ -147,7 +147,7 @@ AdhocWifiMac::Enqueue (Ptr packet, Mac48Address to) hdr.SetDsNotFrom (); hdr.SetDsNotTo (); - if (m_qosSupported) + if (GetQosSupported ()) { //Sanity check that the TID is valid NS_ASSERT (tid < 8); @@ -155,7 +155,7 @@ AdhocWifiMac::Enqueue (Ptr packet, Mac48Address to) } else { - m_dca->Queue (packet, hdr); + m_txop->Queue (packet, hdr); } } @@ -182,20 +182,20 @@ AdhocWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) { //In ad hoc mode, we assume that every destination supports all //the rates we support. - if (m_htSupported || m_vhtSupported || m_heSupported) + if (GetHtSupported () || GetVhtSupported () || GetHeSupported ()) { m_stationManager->AddAllSupportedMcs (from); m_stationManager->AddStationHtCapabilities (from, GetHtCapabilities ()); } - if (m_htSupported) + if (GetHtSupported ()) { m_stationManager->AddStationHtCapabilities (from, GetHtCapabilities ()); } - if (m_vhtSupported) + if (GetVhtSupported ()) { m_stationManager->AddStationVhtCapabilities (from, GetVhtCapabilities ()); } - if (m_heSupported) + if (GetHeSupported ()) { m_stationManager->AddStationHeCapabilities (from, GetHeCapabilities ()); } diff --git a/src/wifi/model/ap-wifi-mac.cc b/src/wifi/model/ap-wifi-mac.cc index 47364ec71..7d75d869d 100644 --- a/src/wifi/model/ap-wifi-mac.cc +++ b/src/wifi/model/ap-wifi-mac.cc @@ -29,6 +29,7 @@ #include "ap-wifi-mac.h" #include "mac-low.h" #include "mac-tx-middle.h" +#include "mac-rx-middle.h" #include "mgt-headers.h" #include "msdu-aggregator.h" #include "amsdu-subframe-header.h" @@ -44,7 +45,7 @@ TypeId ApWifiMac::GetTypeId (void) { static TypeId tid = TypeId ("ns3::ApWifiMac") - .SetParent () + .SetParent () .SetGroupName ("Wifi") .AddConstructor () .AddAttribute ("BeaconInterval", @@ -53,6 +54,11 @@ ApWifiMac::GetTypeId (void) MakeTimeAccessor (&ApWifiMac::GetBeaconInterval, &ApWifiMac::SetBeaconInterval), MakeTimeChecker ()) + .AddAttribute ("CfpMaxDuration", "The maximum size of the CFP (used when AP supports PCF)", + TimeValue (MicroSeconds (51200)), + MakeTimeAccessor (&ApWifiMac::GetCfpMaxDuration, + &ApWifiMac::SetCfpMaxDuration), + MakeTimeChecker ()) .AddAttribute ("BeaconJitter", "A uniform random variable to cause the initial beacon starting time (after simulation time 0) " "to be distributed between 0 and the BeaconInterval.", @@ -87,16 +93,20 @@ ApWifiMac::ApWifiMac () : m_enableBeaconGeneration (false) { NS_LOG_FUNCTION (this); - m_beaconDca = CreateObject (); - m_beaconDca->SetAifsn (1); - m_beaconDca->SetMinCw (0); - m_beaconDca->SetMaxCw (0); - m_beaconDca->SetMacLow (m_low); - m_beaconDca->SetDcfManager (m_dcfManager); - m_beaconDca->SetTxMiddle (m_txMiddle); + m_beaconTxop = CreateObject (); + m_beaconTxop->SetAifsn (1); + m_beaconTxop->SetMinCw (0); + m_beaconTxop->SetMaxCw (0); + m_beaconTxop->SetMacLow (m_low); + m_beaconTxop->SetChannelAccessManager (m_channelAccessManager); + m_beaconTxop->SetTxMiddle (m_txMiddle); + m_beaconTxop->SetTxOkCallback (MakeCallback (&ApWifiMac::TxOk, this)); + m_rxMiddle->SetPcfCallback (MakeCallback (&ApWifiMac::SendNextCfFrame, this)); //Let the lower layers know that we are acting as an AP. SetTypeOfStation (AP); + + m_itCfPollingList = m_cfPollingList.begin (); } ApWifiMac::~ApWifiMac () @@ -105,16 +115,18 @@ ApWifiMac::~ApWifiMac () m_staList.clear (); m_nonErpStations.clear (); m_nonHtStations.clear (); + m_cfPollingList.clear (); } void ApWifiMac::DoDispose () { NS_LOG_FUNCTION (this); - m_beaconDca->Dispose (); - m_beaconDca = 0; + m_beaconTxop->Dispose (); + m_beaconTxop = 0; m_enableBeaconGeneration = false; m_beaconEvent.Cancel (); + m_cfpEvent.Cancel (); RegularWifiMac::DoDispose (); } @@ -147,15 +159,23 @@ Time ApWifiMac::GetBeaconInterval (void) const { NS_LOG_FUNCTION (this); - return m_beaconInterval; + return m_low->GetBeaconInterval (); +} + +Time +ApWifiMac::GetCfpMaxDuration (void) const +{ + NS_LOG_FUNCTION (this); + return m_low->GetCfpMaxDuration (); } void ApWifiMac::SetWifiRemoteStationManager (const Ptr stationManager) { NS_LOG_FUNCTION (this << stationManager); - m_beaconDca->SetWifiRemoteStationManager (stationManager); + m_beaconTxop->SetWifiRemoteStationManager (stationManager); RegularWifiMac::SetWifiRemoteStationManager (stationManager); + m_stationManager->SetPcfSupported (GetPcfSupported ()); } void @@ -178,7 +198,18 @@ ApWifiMac::SetBeaconInterval (Time interval) { NS_LOG_WARN ("beacon interval should be multiple of 1024us (802.11 time unit), see IEEE Std. 802.11-2012"); } - m_beaconInterval = interval; + m_low->SetBeaconInterval (interval); +} + +void +ApWifiMac::SetCfpMaxDuration (Time duration) +{ + NS_LOG_FUNCTION (this << duration); + if ((duration.GetMicroSeconds () % 1024) != 0) + { + NS_LOG_WARN ("CFP max duration should be multiple of 1024us (802.11 time unit)"); + } + m_low->SetCfpMaxDuration (duration); } int64_t @@ -196,7 +227,7 @@ ApWifiMac::GetShortSlotTimeEnabled (void) const { return false; } - if (m_erpSupported == true && GetShortSlotTimeSupported () == true) + if (GetErpSupported () == true && GetShortSlotTimeSupported () == true) { for (std::map::const_iterator i = m_staList.begin (); i != m_staList.end (); i++) { @@ -213,7 +244,7 @@ ApWifiMac::GetShortSlotTimeEnabled (void) const bool ApWifiMac::GetShortPreambleEnabled (void) const { - if (m_erpSupported || m_phy->GetShortPlcpPreambleSupported ()) + if (GetErpSupported () || m_phy->GetShortPlcpPreambleSupported ()) { for (std::list::const_iterator i = m_nonErpStations.begin (); i != m_nonErpStations.end (); i++) { @@ -271,7 +302,7 @@ ApWifiMac::ForwardDown (Ptr packet, Mac48Address from, uint8_t tid = 0; //If we are a QoS AP then we attempt to get a TID for this packet - if (m_qosSupported) + if (GetQosSupported ()) { tid = QosUtilsGetTidForPacket (packet); //Any value greater than 7 is invalid and likely indicates that @@ -298,7 +329,7 @@ ApWifiMac::ForwardDown (Ptr packet, Mac48Address from, //support simultaneously associated QoS and non-QoS STAs, at which //point there will need to be per-association QoS state maintained //by the association state machine, and consulted here. - if (m_qosSupported) + if (GetQosSupported ()) { hdr.SetType (WIFI_MAC_QOSDATA); hdr.SetQosAckPolicy (WifiMacHeader::NORMAL_ACK); @@ -314,7 +345,7 @@ ApWifiMac::ForwardDown (Ptr packet, Mac48Address from, hdr.SetType (WIFI_MAC_DATA); } - if (m_qosSupported || m_htSupported || m_vhtSupported || m_heSupported) + if (GetQosSupported () || GetHtSupported () || GetVhtSupported () || GetHeSupported ()) { hdr.SetNoOrder (); } @@ -324,7 +355,7 @@ ApWifiMac::ForwardDown (Ptr packet, Mac48Address from, hdr.SetDsFrom (); hdr.SetDsNotTo (); - if (m_qosSupported) + if (GetQosSupported ()) { //Sanity check that the TID is valid NS_ASSERT (tid < 8); @@ -332,7 +363,7 @@ ApWifiMac::ForwardDown (Ptr packet, Mac48Address from, } else { - m_dca->Queue (packet, hdr); + m_txop->Queue (packet, hdr); } } @@ -376,7 +407,7 @@ ApWifiMac::GetSupportedRates (void) const //The standard says that the BSSMembershipSelectorSet //must have its MSB set to 1 (must be treated as a Basic Rate) //Also the standard mentioned that at least 1 element should be included in the SupportedRates the rest can be in the ExtendedSupportedRates - if (m_htSupported || m_vhtSupported || m_heSupported) + if (GetHtSupported () || GetVhtSupported () || GetHeSupported ()) { for (uint8_t i = 0; i < m_phy->GetNBssMembershipSelectors (); i++) { @@ -418,7 +449,7 @@ ApWifiMac::GetDsssParameterSet (void) const { NS_LOG_FUNCTION (this); DsssParameterSet dsssParameters; - if (m_dsssSupported) + if (GetDsssSupported ()) { dsssParameters.SetDsssSupported (1); dsssParameters.SetCurrentChannel (m_phy->GetChannelNumber ()); @@ -434,6 +465,10 @@ ApWifiMac::GetCapabilities (void) const capabilities.SetShortPreamble (GetShortPreambleEnabled ()); capabilities.SetShortSlotTime (GetShortSlotTimeEnabled ()); capabilities.SetEss (); + if (GetPcfSupported ()) + { + capabilities.SetCfPollable (); + } return capabilities; } @@ -443,7 +478,7 @@ ApWifiMac::GetErpInformation (void) const NS_LOG_FUNCTION (this); ErpInformation information; information.SetErpSupported (1); - if (m_erpSupported) + if (GetErpSupported ()) { information.SetNonErpPresent (!m_nonErpStations.empty ()); information.SetUseProtection (GetUseNonErpProtection ()); @@ -464,10 +499,10 @@ ApWifiMac::GetEdcaParameterSet (void) const { NS_LOG_FUNCTION (this); EdcaParameterSet edcaParameters; - if (m_qosSupported) + if (GetQosSupported ()) { edcaParameters.SetQosSupported (1); - Ptr edca; + Ptr edca; Time txopLimit; edca = m_edca.find (AC_BE)->second; @@ -507,12 +542,27 @@ ApWifiMac::GetEdcaParameterSet (void) const return edcaParameters; } +CfParameterSet +ApWifiMac::GetCfParameterSet (void) const +{ + CfParameterSet cfParameterSet; + if (GetPcfSupported () && !m_cfPollingList.empty ()) + { + cfParameterSet.SetPcfSupported (1); + cfParameterSet.SetCFPCount (0); + cfParameterSet.SetCFPPeriod (1); + cfParameterSet.SetCFPMaxDurationUs (GetCfpMaxDuration ().GetMicroSeconds ()); + cfParameterSet.SetCFPDurRemainingUs (GetCfpMaxDuration ().GetMicroSeconds ()); + } + return cfParameterSet; +} + HtOperation ApWifiMac::GetHtOperation (void) const { NS_LOG_FUNCTION (this); HtOperation operation; - if (m_htSupported) + if (GetHtSupported ()) { operation.SetHtSupported (1); operation.SetRifsMode (GetRifsMode ()); @@ -606,7 +656,7 @@ ApWifiMac::GetVhtOperation (void) const { NS_LOG_FUNCTION (this); VhtOperation operation; - if (m_vhtSupported) + if (GetVhtSupported ()) { operation.SetVhtSupported (1); uint16_t channelWidth = GetVhtOperationalChannelWidth (); @@ -644,7 +694,7 @@ ApWifiMac::GetHeOperation (void) const { NS_LOG_FUNCTION (this); HeOperation operation; - if (m_heSupported) + if (GetHeSupported ()) { operation.SetHeSupported (1); for (uint8_t nss = 1; nss <= m_phy->GetMaxSupportedRxSpatialStreams (); nss++) @@ -671,34 +721,34 @@ ApWifiMac::SendProbeResp (Mac48Address to) MgtProbeResponseHeader probe; probe.SetSsid (GetSsid ()); probe.SetSupportedRates (GetSupportedRates ()); - probe.SetBeaconIntervalUs (m_beaconInterval.GetMicroSeconds ()); + probe.SetBeaconIntervalUs (GetBeaconInterval ().GetMicroSeconds ()); probe.SetCapabilities (GetCapabilities ()); m_stationManager->SetShortPreambleEnabled (GetShortPreambleEnabled ()); m_stationManager->SetShortSlotTimeEnabled (GetShortSlotTimeEnabled ()); - if (m_dsssSupported) + if (GetDsssSupported ()) { probe.SetDsssParameterSet (GetDsssParameterSet ()); } - if (m_erpSupported) + if (GetErpSupported ()) { probe.SetErpInformation (GetErpInformation ()); } - if (m_qosSupported) + if (GetQosSupported ()) { probe.SetEdcaParameterSet (GetEdcaParameterSet ()); } - if (m_htSupported || m_vhtSupported || m_heSupported) + if (GetHtSupported () || GetVhtSupported () || GetHeSupported ()) { probe.SetExtendedCapabilities (GetExtendedCapabilities ()); probe.SetHtCapabilities (GetHtCapabilities ()); probe.SetHtOperation (GetHtOperation ()); } - if (m_vhtSupported || m_heSupported) + if (GetVhtSupported () || GetHeSupported ()) { probe.SetVhtCapabilities (GetVhtCapabilities ()); probe.SetVhtOperation (GetVhtOperation ()); } - if (m_heSupported) + if (GetHeSupported ()) { probe.SetHeCapabilities (GetHeCapabilities ()); probe.SetHeOperation (GetHeOperation ()); @@ -709,7 +759,7 @@ ApWifiMac::SendProbeResp (Mac48Address to) //frames if we are a QoS AP. The approach taken here is to always //use the DCF for these regardless of whether we have a QoS //association or not. - m_dca->Queue (packet, hdr); + m_txop->Queue (packet, hdr); } void @@ -758,26 +808,26 @@ ApWifiMac::SendAssocResp (Mac48Address to, bool success, bool isReassoc) assoc.SetSupportedRates (GetSupportedRates ()); assoc.SetStatusCode (code); assoc.SetCapabilities (GetCapabilities ()); - if (m_erpSupported) + if (GetErpSupported ()) { assoc.SetErpInformation (GetErpInformation ()); } - if (m_qosSupported) + if (GetQosSupported ()) { assoc.SetEdcaParameterSet (GetEdcaParameterSet ()); } - if (m_htSupported || m_vhtSupported || m_heSupported) + if (GetHtSupported () || GetVhtSupported () || GetHeSupported ()) { assoc.SetExtendedCapabilities (GetExtendedCapabilities ()); assoc.SetHtCapabilities (GetHtCapabilities ()); assoc.SetHtOperation (GetHtOperation ()); } - if (m_vhtSupported || m_heSupported) + if (GetVhtSupported () || GetHeSupported ()) { assoc.SetVhtCapabilities (GetVhtCapabilities ()); assoc.SetVhtOperation (GetVhtOperation ()); } - if (m_heSupported) + if (GetHeSupported ()) { assoc.SetHeCapabilities (GetHeCapabilities ()); assoc.SetHeOperation (GetHeOperation ()); @@ -788,7 +838,7 @@ ApWifiMac::SendAssocResp (Mac48Address to, bool success, bool isReassoc) //frames if we are a QoS AP. The approach taken here is to always //use the DCF for these regardless of whether we have a QoS //association or not. - m_dca->Queue (packet, hdr); + m_txop->Queue (packet, hdr); } void @@ -807,34 +857,38 @@ ApWifiMac::SendOneBeacon (void) MgtBeaconHeader beacon; beacon.SetSsid (GetSsid ()); beacon.SetSupportedRates (GetSupportedRates ()); - beacon.SetBeaconIntervalUs (m_beaconInterval.GetMicroSeconds ()); + beacon.SetBeaconIntervalUs (GetBeaconInterval ().GetMicroSeconds ()); beacon.SetCapabilities (GetCapabilities ()); m_stationManager->SetShortPreambleEnabled (GetShortPreambleEnabled ()); m_stationManager->SetShortSlotTimeEnabled (GetShortSlotTimeEnabled ()); - if (m_dsssSupported) + if (GetPcfSupported ()) + { + beacon.SetCfParameterSet (GetCfParameterSet ()); + } + if (GetDsssSupported ()) { beacon.SetDsssParameterSet (GetDsssParameterSet ()); } - if (m_erpSupported) + if (GetErpSupported ()) { beacon.SetErpInformation (GetErpInformation ()); } - if (m_qosSupported) + if (GetQosSupported ()) { beacon.SetEdcaParameterSet (GetEdcaParameterSet ()); } - if (m_htSupported || m_vhtSupported) + if (GetHtSupported () || GetVhtSupported ()) { beacon.SetExtendedCapabilities (GetExtendedCapabilities ()); beacon.SetHtCapabilities (GetHtCapabilities ()); beacon.SetHtOperation (GetHtOperation ()); } - if (m_vhtSupported || m_heSupported) + if (GetVhtSupported () || GetHeSupported ()) { beacon.SetVhtCapabilities (GetVhtCapabilities ()); beacon.SetVhtOperation (GetVhtOperation ()); } - if (m_heSupported) + if (GetHeSupported ()) { beacon.SetHeCapabilities (GetHeCapabilities ()); beacon.SetHeOperation (GetHeOperation ()); @@ -842,13 +896,13 @@ ApWifiMac::SendOneBeacon (void) packet->AddHeader (beacon); //The beacon has it's own special queue, so we load it in there - m_beaconDca->Queue (packet, hdr); - m_beaconEvent = Simulator::Schedule (m_beaconInterval, &ApWifiMac::SendOneBeacon, this); + m_beaconTxop->Queue (packet, hdr); + m_beaconEvent = Simulator::Schedule (GetBeaconInterval (), &ApWifiMac::SendOneBeacon, this); //If a STA that does not support Short Slot Time associates, //the AP shall use long slot time beginning at the first Beacon //subsequent to the association of the long slot time STA. - if (m_erpSupported) + if (GetErpSupported ()) { if (GetShortSlotTimeEnabled () == true) { @@ -863,6 +917,39 @@ ApWifiMac::SendOneBeacon (void) } } +void +ApWifiMac::SendNextCfFrame (void) +{ + if (!GetPcfSupported ()) + { + return; + } + if (m_txop->CanStartNextPolling ()) + { + SendCfPoll (); + } + else if (m_low->IsCfPeriod ()) + { + SendCfEnd (); + } +} + +void +ApWifiMac::SendCfPoll (void) +{ + NS_LOG_FUNCTION (this); + NS_ASSERT (GetPcfSupported ()); + m_txop->SendCfFrame (WIFI_MAC_DATA_NULL_CFPOLL, *m_itCfPollingList); +} + +void +ApWifiMac::SendCfEnd (void) +{ + NS_LOG_FUNCTION (this); + NS_ASSERT (GetPcfSupported ()); + m_txop->SendCfFrame (WIFI_MAC_CTL_END, Mac48Address::GetBroadcast ()); +} + void ApWifiMac::TxOk (const WifiMacHeader &hdr) { @@ -874,6 +961,21 @@ ApWifiMac::TxOk (const WifiMacHeader &hdr) NS_LOG_DEBUG ("associated with sta=" << hdr.GetAddr1 ()); m_stationManager->RecordGotAssocTxOk (hdr.GetAddr1 ()); } + else if (hdr.IsBeacon () && GetPcfSupported ()) + { + if (!m_cfPollingList.empty ()) + { + SendCfPoll (); + } + else + { + SendCfEnd (); + } + } + else if (hdr.IsCfPoll ()) + { + IncrementPollingListIterator (); + } } void @@ -888,6 +990,11 @@ ApWifiMac::TxFailed (const WifiMacHeader &hdr) NS_LOG_DEBUG ("association failed with sta=" << hdr.GetAddr1 ()); m_stationManager->RecordGotAssocTxFailed (hdr.GetAddr1 ()); } + else if (hdr.IsCfPoll ()) + { + IncrementPollingListIterator (); + SendNextCfFrame (); + } } void @@ -920,7 +1027,7 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) ForwardUp (packet, from, bssid); } } - else + else if (hdr->HasData ()) { ForwardUp (packet, from, bssid); } @@ -1030,7 +1137,7 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } m_stationManager->AddSupportedErpSlotTime (from, capabilities.IsShortSlotTime () && isErpStation); - if (m_htSupported) + if (GetHtSupported ()) { //check whether the HT STA supports all MCSs in Basic MCS Set HtCapabilities htcapabilities = assocReq.GetHtCapabilities (); @@ -1048,7 +1155,7 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } } - if (m_vhtSupported) + if (GetVhtSupported ()) { //check whether the VHT STA supports all MCSs in Basic MCS Set VhtCapabilities vhtcapabilities = assocReq.GetVhtCapabilities (); @@ -1065,7 +1172,7 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } } - if (m_heSupported) + if (GetHeSupported ()) { //check whether the HE STA supports all MCSs in Basic MCS Set HeCapabilities hecapabilities = assocReq.GetHeCapabilities (); @@ -1099,7 +1206,15 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) m_stationManager->AddSupportedMode (from, mode); } } - if (m_htSupported) + if (GetPcfSupported () && capabilities.IsCfPollable ()) + { + m_cfPollingList.push_back (from); + if (m_itCfPollingList == m_cfPollingList.end ()) + { + IncrementPollingListIterator (); + } + } + if (GetHtSupported ()) { HtCapabilities htCapabilities = assocReq.GetHtCapabilities (); if (htCapabilities.IsSupportedMcs (0)) @@ -1107,7 +1222,7 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) m_stationManager->AddStationHtCapabilities (from, htCapabilities); } } - if (m_vhtSupported) + if (GetVhtSupported ()) { VhtCapabilities vhtCapabilities = assocReq.GetVhtCapabilities (); //we will always fill in RxHighestSupportedLgiDataRate field at TX, so this can be used to check whether it supports VHT @@ -1125,12 +1240,12 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } } - if (m_htSupported || m_vhtSupported) + if (GetHtSupported () || GetVhtSupported ()) { ExtendedCapabilities extendedCapabilities = assocReq.GetExtendedCapabilities (); //TODO: to be completed } - if (m_heSupported) + if (GetHeSupported ()) { HeCapabilities heCapabilities = assocReq.GetHeCapabilities (); //todo: once we support non constant rate managers, we should add checks here whether HE is supported by the peer @@ -1216,7 +1331,7 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } m_stationManager->AddSupportedErpSlotTime (from, capabilities.IsShortSlotTime () && isErpStation); - if (m_htSupported) + if (GetHtSupported ()) { //check whether the HT STA supports all MCSs in Basic MCS Set HtCapabilities htcapabilities = reassocReq.GetHtCapabilities (); @@ -1234,7 +1349,7 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } } - if (m_vhtSupported) + if (GetVhtSupported ()) { //check whether the VHT STA supports all MCSs in Basic MCS Set VhtCapabilities vhtcapabilities = reassocReq.GetVhtCapabilities (); @@ -1251,7 +1366,7 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } } - if (m_heSupported) + if (GetHeSupported ()) { //check whether the HE STA supports all MCSs in Basic MCS Set HeCapabilities hecapabilities = reassocReq.GetHeCapabilities (); @@ -1285,7 +1400,7 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) m_stationManager->AddSupportedMode (from, mode); } } - if (m_htSupported) + if (GetHtSupported ()) { HtCapabilities htCapabilities = reassocReq.GetHtCapabilities (); if (htCapabilities.IsSupportedMcs (0)) @@ -1293,7 +1408,7 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) m_stationManager->AddStationHtCapabilities (from, htCapabilities); } } - if (m_vhtSupported) + if (GetVhtSupported ()) { VhtCapabilities vhtCapabilities = reassocReq.GetVhtCapabilities (); //we will always fill in RxHighestSupportedLgiDataRate field at TX, so this can be used to check whether it supports VHT @@ -1311,12 +1426,12 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } } - if (m_htSupported || m_vhtSupported) + if (GetHtSupported () || GetVhtSupported ()) { ExtendedCapabilities extendedCapabilities = reassocReq.GetExtendedCapabilities (); //TODO: to be completed } - if (m_heSupported) + if (GetHeSupported ()) { HeCapabilities heCapabilities = reassocReq.GetHeCapabilities (); //todo: once we support non constant rate managers, we should add checks here whether HE is supported by the peer @@ -1375,6 +1490,14 @@ ApWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) break; } } + for (std::list::const_iterator j = m_cfPollingList.begin (); j != m_cfPollingList.end (); ++j) + { + if ((*j) == from) + { + m_cfPollingList.erase (j); + break; + } + } return; } } @@ -1413,13 +1536,13 @@ void ApWifiMac::DoInitialize (void) { NS_LOG_FUNCTION (this); - m_beaconDca->Initialize (); + m_beaconTxop->Initialize (); m_beaconEvent.Cancel (); if (m_enableBeaconGeneration) { if (m_enableBeaconJitter) { - int64_t jitter = m_beaconJitter->GetValue (0, m_beaconInterval.GetMicroSeconds ()); + int64_t jitter = m_beaconJitter->GetValue (0, GetBeaconInterval ().GetMicroSeconds ()); NS_LOG_DEBUG ("Scheduling initial beacon for access point " << GetAddress () << " at time " << jitter << " microseconds"); m_beaconEvent = Simulator::Schedule (MicroSeconds (jitter), &ApWifiMac::SendOneBeacon, this); } @@ -1444,7 +1567,7 @@ bool ApWifiMac::GetRifsMode (void) const { bool rifsMode = false; - if (m_htSupported && !m_vhtSupported) //RIFS mode is forbidden for VHT + if (GetHtSupported () && !GetVhtSupported ()) //RIFS mode is forbidden for VHT { if (m_nonHtStations.empty () || !m_disableRifs) { @@ -1477,4 +1600,15 @@ ApWifiMac::GetNextAssociationId (void) return 0; } +void +ApWifiMac::IncrementPollingListIterator (void) +{ + NS_LOG_FUNCTION (this); + m_itCfPollingList++; + if (m_itCfPollingList == m_cfPollingList.end ()) + { + m_itCfPollingList = m_cfPollingList.begin (); + } +} + } //namespace ns3 diff --git a/src/wifi/model/ap-wifi-mac.h b/src/wifi/model/ap-wifi-mac.h index a23b605e2..141a0fad2 100644 --- a/src/wifi/model/ap-wifi-mac.h +++ b/src/wifi/model/ap-wifi-mac.h @@ -23,7 +23,7 @@ #ifndef AP_WIFI_MAC_H #define AP_WIFI_MAC_H -#include "regular-wifi-mac.h" +#include "infrastructure-wifi-mac.h" namespace ns3 { @@ -35,6 +35,7 @@ class EdcaParameterSet; class HtOperation; class VhtOperation; class HeOperation; +class CfParameterSet; /** * \brief Wi-Fi AP state machine @@ -43,7 +44,7 @@ class HeOperation; * Handle association, dis-association and authentication, * of STAs within an infrastructure BSS. */ -class ApWifiMac : public RegularWifiMac +class ApWifiMac : public InfrastructureWifiMac { public: /** @@ -102,6 +103,14 @@ public: * \return the interval between two beacon transmissions. */ Time GetBeaconInterval (void) const; + /** + * \param duration the maximum duration for the CF period. + */ + void SetCfpMaxDuration (Time duration); + /** + * \return the maximum duration for the CF period. + */ + Time GetCfpMaxDuration (void) const; /** * Determine whether short slot time should be enabled or not in the BSS. * Typically, true is returned only when there is no non-erp stations associated @@ -215,6 +224,19 @@ private: * Forward a beacon packet to the beacon special DCF. */ void SendOneBeacon (void); + /** + * Determine what is the next PCF frame and trigger its transmission. + */ + void SendNextCfFrame (void); + /** + * Send a CF-Poll packet to the next polling STA. + */ + void SendCfPoll (void); + /** + * Send a CF-End packet. + */ + void SendCfEnd (void); + /** * Return the Capability information of the current AP. * @@ -233,6 +255,12 @@ private: * \return the EDCA Parameter Set that we support */ EdcaParameterSet GetEdcaParameterSet (void) const; + /** + * Return the CF parameter set of the current AP. + * + * \return the CF parameter set that we support + */ + CfParameterSet GetCfParameterSet (void) const; /** * Return the HT operation of the current AP. * @@ -284,6 +312,11 @@ private: * false otherwise */ bool GetRifsMode (void) const; + /** + * Increment the PCF polling list iterator to indicate + * that the next polling station can be polled. + */ + void IncrementPollingListIterator (void); void DoDispose (void); void DoInitialize (void); @@ -293,15 +326,17 @@ private: */ uint16_t GetNextAssociationId (void); - Ptr m_beaconDca; //!< Dedicated DcaTxop for beacons - Time m_beaconInterval; //!< Interval between beacons + Ptr m_beaconTxop; //!< Dedicated Txop for beacons bool m_enableBeaconGeneration; //!< Flag whether beacons are being generated EventId m_beaconEvent; //!< Event to generate one beacon + EventId m_cfpEvent; //!< Event to generate one PCF frame Ptr m_beaconJitter; //!< UniformRandomVariable used to randomize the time of the first beacon bool m_enableBeaconJitter; //!< Flag whether the first beacon should be generated at random time std::map m_staList; //!< Map of all stations currently associated to the AP with their association ID std::list m_nonErpStations; //!< List of all non-ERP stations currently associated to the AP std::list m_nonHtStations; //!< List of all non-HT stations currently associated to the AP + std::list m_cfPollingList; //!< List of all PCF stations currently associated to the AP + std::list::iterator m_itCfPollingList; //!< Iterator to the list of all PCF stations currently associated to the AP bool m_enableNonErpProtection; //!< Flag whether protection mechanism is used or not when non-ERP STAs are present within the BSS bool m_disableRifs; //!< Flag whether to force RIFS to be disabled within the BSS If non-HT STAs are detected }; diff --git a/src/wifi/model/block-ack-manager.h b/src/wifi/model/block-ack-manager.h index d5362dee6..daff148fd 100644 --- a/src/wifi/model/block-ack-manager.h +++ b/src/wifi/model/block-ack-manager.h @@ -187,7 +187,7 @@ public: * \param dataSnr data SNR reported by remote station * * Invoked upon receipt of a block ack frame. Typically, this function, is called - * by ns3::EdcaTxopN object. Performs a check on which MPDUs, previously sent + * by ns3::QosTxop object. Performs a check on which MPDUs, previously sent * with ack policy set to Block Ack, were correctly received by the recipient. * An acknowledged MPDU is removed from the buffer, retransmitted otherwise. */ @@ -233,10 +233,10 @@ public: /** * \param recipient Address of peer station involved in block ack mechanism. * \param tid Traffic ID of transmitted packet. - * \param nextSeqNumber Sequence number of the next packet that would be trasmitted by EdcaTxopN. + * \param nextSeqNumber Sequence number of the next packet that would be trasmitted by QosTxop. * \param policy ack policy of the transmitted packet. * - * This method is typically invoked by ns3::EdcaTxopN object every time that a MPDU + * This method is typically invoked by ns3::QosTxop object every time that a MPDU * with ack policy subfield in Qos Control field set to Block Ack is transmitted. * The nextSeqNumber parameter is used to block transmission of packets that are out of bitmap. */ diff --git a/src/wifi/model/capability-information.cc b/src/wifi/model/capability-information.cc index 686e9a1f7..cfe086898 100644 --- a/src/wifi/model/capability-information.cc +++ b/src/wifi/model/capability-information.cc @@ -59,6 +59,12 @@ CapabilityInformation::SetShortSlotTime (bool shortSlotTime) } } +void +CapabilityInformation::SetCfPollable (void) +{ + Set (2); +} + bool CapabilityInformation::IsEss (void) const { @@ -83,6 +89,12 @@ CapabilityInformation::IsShortSlotTime (void) const return Is (10); } +bool +CapabilityInformation::IsCfPollable (void) const +{ + return Is (2); +} + void CapabilityInformation::Set (uint8_t n) { diff --git a/src/wifi/model/capability-information.h b/src/wifi/model/capability-information.h index a75fbdaa3..d807fada3 100644 --- a/src/wifi/model/capability-information.h +++ b/src/wifi/model/capability-information.h @@ -61,6 +61,11 @@ public: * */ void SetShortSlotTime (bool shortSlotTime); + /** + * Set the CF-Pollable bit + * in the capability information field. + */ + void SetCfPollable (void); /** * Check if the Extended Service Set (ESS) bit @@ -94,6 +99,14 @@ public: * field is set to 1 */ bool IsShortSlotTime (void) const; + /** + * Check if the CF-Pollable bit + * in the capability information field is set to 1. + * + * \return CF-Pollable bit in the capability information + * field is set to 1 + */ + bool IsCfPollable (void) const; /** * Return the serialized size of capability diff --git a/src/wifi/model/cf-parameter-set.cc b/src/wifi/model/cf-parameter-set.cc new file mode 100644 index 000000000..dc1561a88 --- /dev/null +++ b/src/wifi/model/cf-parameter-set.cc @@ -0,0 +1,168 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2015 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * 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 "cf-parameter-set.h" + +namespace ns3 { + +CfParameterSet::CfParameterSet () + : m_CFPCount (0), + m_CFPPeriod (0), + m_CFPMaxDuration (0), + m_CFPDurRemaining (0), + m_pcfSupported (0) +{ +} + +WifiInformationElementId +CfParameterSet::ElementId () const +{ + return IE_CF_PARAMETER_SET; +} + +void +CfParameterSet::SetPcfSupported (uint8_t pcfsupported) +{ + m_pcfSupported = pcfsupported; +} + +uint8_t +CfParameterSet::GetInformationFieldSize () const +{ + //we should not be here if pcf is not supported + NS_ASSERT (m_pcfSupported > 0); + return 6; +} + +Buffer::Iterator +CfParameterSet::Serialize (Buffer::Iterator i) const +{ + if (m_pcfSupported < 1) + { + return i; + } + return WifiInformationElement::Serialize (i); +} + +uint16_t +CfParameterSet::GetSerializedSize () const +{ + if (m_pcfSupported < 1) + { + return 0; + } + return WifiInformationElement::GetSerializedSize (); +} + +void +CfParameterSet::SerializeInformationField (Buffer::Iterator start) const +{ + if (m_pcfSupported == 1) + { + start.WriteU8 (m_CFPCount); + start.WriteU8 (m_CFPPeriod); + start.WriteHtolsbU16 (m_CFPMaxDuration / 1024); + start.WriteHtolsbU16 (m_CFPDurRemaining / 1024); + } +} + +uint8_t +CfParameterSet::DeserializeInformationField (Buffer::Iterator start, + uint8_t length) +{ + NS_ASSERT (length == 6); + Buffer::Iterator i = start; + m_CFPCount = i.ReadU8 (); + m_CFPPeriod = i.ReadU8 (); + m_CFPMaxDuration = i.ReadLsbtohU16 (); + m_CFPMaxDuration *= 1024; + m_CFPDurRemaining = i.ReadLsbtohU16 (); + m_CFPDurRemaining *= 1024; + return length; +} + +uint8_t +CfParameterSet::GetCFPCount (void) const +{ + return m_CFPCount; +} + +uint8_t +CfParameterSet::GetCFPPeriod (void) const +{ + return m_CFPPeriod; +} + +uint64_t +CfParameterSet::GetCFPMaxDurationUs (void) const +{ + return m_CFPMaxDuration; +} + +uint64_t +CfParameterSet::GetCFPDurRemainingUs (void) const +{ + return m_CFPDurRemaining; +} + +void +CfParameterSet::SetCFPCount (uint8_t count) +{ + m_CFPCount = count; +} + +void +CfParameterSet::SetCFPPeriod (uint8_t period) +{ + m_CFPPeriod = period; +} + +void +CfParameterSet::SetCFPMaxDurationUs (uint64_t maxDuration) +{ + m_CFPMaxDuration = maxDuration; +} + +void +CfParameterSet::SetCFPDurRemainingUs (uint64_t durRemaining) +{ + m_CFPDurRemaining = durRemaining; +} + +/** + * output operator + * + * \param os output stream + * \param cfParameterSet + * + * \return output stream + */ +std::ostream & +operator << (std::ostream &os, const CfParameterSet &cfParameterSet) +{ + os << (uint16_t)cfParameterSet.GetCFPCount () + << "|" << (uint16_t)cfParameterSet.GetCFPPeriod () + << "|" << cfParameterSet.GetCFPMaxDurationUs () + << "|" << cfParameterSet.GetCFPDurRemainingUs (); + + return os; +} + +} //namespace ns3 diff --git a/src/wifi/model/cf-parameter-set.h b/src/wifi/model/cf-parameter-set.h new file mode 100644 index 000000000..13d6857ff --- /dev/null +++ b/src/wifi/model/cf-parameter-set.h @@ -0,0 +1,150 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2015 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * 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: Sébastien Deronne + */ + +#ifndef CF_PARAMETER_SET_H +#define CF_PARAMETER_SET_H + +#include "ns3/wifi-information-element.h" + +namespace ns3 { + +/** + * \brief The CF Parameter Set + * \ingroup wifi + * + * This class knows how to serialise and deserialise the CF Parameter Set. + */ +class CfParameterSet : public WifiInformationElement +{ +public: + CfParameterSet (); + /** + * Set PCF supported function + * \param pcfSupported the PCF supported indicator + */ + void SetPcfSupported (uint8_t pcfSupported); + + /** + * Element ID function + * \returns the wifi information element ID + */ + WifiInformationElementId ElementId () const; + /** + * Get information field size function + * \returns the information field size + */ + uint8_t GetInformationFieldSize () const; + /** + * Serialize information field function + * \param start the iterator + */ + void SerializeInformationField (Buffer::Iterator start) const; + /** + * Deserialize information field function + * \param start the iterator + * \param length the length + * \returns the size + */ + uint8_t DeserializeInformationField (Buffer::Iterator start, uint8_t length); + + /** + * Return the CFP Count in DTIM frames unit. + * + * \return the CFP Count in DTIM frames unit + */ + uint8_t GetCFPCount (void) const; + /** + * Return the CFP Period in DTIM frames unit. + * + * \return the CFP Period in DTIM frames unit + */ + uint8_t GetCFPPeriod (void) const; + /** + * Return the CFP MaxDuration in microseconds. + * + * \return the CFP MaxDuration in microseconds. + */ + uint64_t GetCFPMaxDurationUs (void) const; + /** + * Return the CFP DurRemaining in microseconds. + * + * \return the CFP DurRemaining in microseconds + */ + uint64_t GetCFPDurRemainingUs (void) const; + + /** + * Set the CFP Count in DTIM frames unit. + * + * \param cfpcount the CFP Count in DTIM frames unit + */ + void SetCFPCount (uint8_t cfpcount); + /** + * Set the CFP Period in DTIM frames unit. + * + * \param cfpperiod the CFP Period in DTIM frames unit + */ + void SetCFPPeriod (uint8_t cfpperiod); + /** + * Set the CFP MaxDuration in microseconds. + * + * \param cfpmaxduration the CFP MaxDuration in microseconds + */ + void SetCFPMaxDurationUs (uint64_t cfpmaxduration); + /** + * Set the CFP MaxDuration in microseconds. + * + * \param cfpdurremaining the CFP DurRemaining in microseconds + */ + void SetCFPDurRemainingUs (uint64_t cfpdurremaining); + + /** + * This information element is a bit special in that it is only + * included if the STA is a QoS STA. 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 EDCA Parameter Set. + * + * \return the serialized size of this EDCA Parameter Set + */ + uint16_t GetSerializedSize () const; + + +private: + uint8_t m_CFPCount; ///< CFP Count + uint8_t m_CFPPeriod; ///< CFP Period + uint64_t m_CFPMaxDuration; ///< CFP MaxDuration + uint64_t m_CFPDurRemaining; ///< CFP DurRemaining + + /// This is used to decide if this element should be added to the frame or not + uint8_t m_pcfSupported; +}; + +std::ostream &operator << (std::ostream &os, const CfParameterSet &cfParameterSet); + +} //namespace ns3 + +#endif /* CF_PARAMETER_SET_H */ diff --git a/src/wifi/model/dcf-manager.cc b/src/wifi/model/channel-access-manager.cc similarity index 79% rename from src/wifi/model/dcf-manager.cc rename to src/wifi/model/channel-access-manager.cc index e4b332b45..823aa0679 100644 --- a/src/wifi/model/dcf-manager.cc +++ b/src/wifi/model/channel-access-manager.cc @@ -20,28 +20,28 @@ #include "ns3/log.h" #include "ns3/simulator.h" -#include "dcf-manager.h" -#include "dca-txop.h" +#include "channel-access-manager.h" +#include "txop.h" #include "wifi-phy-listener.h" #include "wifi-phy.h" #include "mac-low.h" namespace ns3 { -NS_LOG_COMPONENT_DEFINE ("DcfManager"); +NS_LOG_COMPONENT_DEFINE ("ChannelAccessManager"); /** - * Listener for PHY events. Forwards to DcfManager + * Listener for PHY events. Forwards to ChannelAccessManager */ class PhyListener : public ns3::WifiPhyListener { public: /** - * Create a PhyListener for the given DcfManager. + * Create a PhyListener for the given ChannelAccessManager. * * \param dcf */ - PhyListener (ns3::DcfManager *dcf) + PhyListener (ns3::ChannelAccessManager *dcf) : m_dcf (dcf) { } @@ -90,7 +90,7 @@ public: } private: - ns3::DcfManager *m_dcf; //!< DcfManager to forward events to + ns3::ChannelAccessManager *m_dcf; //!< ChannelAccessManager to forward events to }; @@ -98,7 +98,7 @@ private: * Implement the DCF manager of all DCF state holders ****************************************************************/ -DcfManager::DcfManager () +ChannelAccessManager::ChannelAccessManager () : m_lastAckTimeoutEnd (MicroSeconds (0)), m_lastCtsTimeoutEnd (MicroSeconds (0)), m_lastNavStart (MicroSeconds (0)), @@ -123,7 +123,7 @@ DcfManager::DcfManager () NS_LOG_FUNCTION (this); } -DcfManager::~DcfManager () +ChannelAccessManager::~ChannelAccessManager () { NS_LOG_FUNCTION (this); delete m_phyListener; @@ -131,10 +131,10 @@ DcfManager::~DcfManager () } void -DcfManager::DoDispose (void) +ChannelAccessManager::DoDispose (void) { NS_LOG_FUNCTION (this); - for (Ptr i : m_states) + for (Ptr i : m_states) { i->Dispose (); i = 0; @@ -142,7 +142,7 @@ DcfManager::DoDispose (void) } void -DcfManager::SetupPhyListener (Ptr phy) +ChannelAccessManager::SetupPhyListener (Ptr phy) { NS_LOG_FUNCTION (this << phy); NS_ASSERT (m_phyListener == 0); @@ -151,7 +151,7 @@ DcfManager::SetupPhyListener (Ptr phy) } void -DcfManager::RemovePhyListener (Ptr phy) +ChannelAccessManager::RemovePhyListener (Ptr phy) { NS_LOG_FUNCTION (this << phy); if (m_phyListener != 0) @@ -163,55 +163,66 @@ DcfManager::RemovePhyListener (Ptr phy) } void -DcfManager::SetupLow (Ptr low) +ChannelAccessManager::SetupLow (Ptr low) { NS_LOG_FUNCTION (this << low); low->RegisterDcf (this); } void -DcfManager::SetSlot (Time slotTime) +ChannelAccessManager::SetSlot (Time slotTime) { NS_LOG_FUNCTION (this << slotTime); m_slot = slotTime; } void -DcfManager::SetSifs (Time sifs) +ChannelAccessManager::SetSifs (Time sifs) { NS_LOG_FUNCTION (this << sifs); m_sifs = sifs; } void -DcfManager::SetEifsNoDifs (Time eifsNoDifs) +ChannelAccessManager::SetEifsNoDifs (Time eifsNoDifs) { NS_LOG_FUNCTION (this << eifsNoDifs); m_eifsNoDifs = eifsNoDifs; } Time -DcfManager::GetEifsNoDifs () const +ChannelAccessManager::GetEifsNoDifs () const { NS_LOG_FUNCTION (this); return m_eifsNoDifs; } void -DcfManager::Add (Ptr dcf) +ChannelAccessManager::Add (Ptr dcf) { NS_LOG_FUNCTION (this << dcf); m_states.push_back (dcf); } Time -DcfManager::MostRecent (Time a, Time b) const +ChannelAccessManager::MostRecent (Time a, Time b) const { return Max (a, b); } Time -DcfManager::MostRecent (Time a, Time b, Time c, Time d, Time e, Time f, Time g) const +ChannelAccessManager::MostRecent (Time a, Time b, Time c, Time d, Time e, Time f) const +{ + Time g = MostRecent (a, b); + Time h = MostRecent (c, d); + Time i = MostRecent (e, f); + Time k = MostRecent (g, h); + Time retval = MostRecent (k, i); + return retval; +} + +Time +ChannelAccessManager::MostRecent (Time a, Time b, Time c, Time d, Time e, Time f, Time g) const { Time h = MostRecent (a, b); Time i = MostRecent (c, d); @@ -223,7 +234,7 @@ DcfManager::MostRecent (Time a, Time b, Time c, Time d, Time e, Time f, Time g) } bool -DcfManager::IsBusy (void) const +ChannelAccessManager::IsBusy (void) const { NS_LOG_FUNCTION (this); // PHY busy @@ -252,7 +263,7 @@ DcfManager::IsBusy (void) const } bool -DcfManager::IsWithinAifs (Ptr state) const +ChannelAccessManager::IsWithinAifs (Ptr state) const { NS_LOG_FUNCTION (this << state); Time ifsEnd = GetAccessGrantStart () + (state->GetAifsn () * m_slot); @@ -265,8 +276,9 @@ DcfManager::IsWithinAifs (Ptr state) const return false; } + void -DcfManager::RequestAccess (Ptr state) +ChannelAccessManager::RequestAccess (Ptr state, bool isCfPeriod) { NS_LOG_FUNCTION (this << state); //Deny access if in sleep mode or off @@ -274,6 +286,13 @@ DcfManager::RequestAccess (Ptr state) { return; } + if (isCfPeriod) + { + state->NotifyAccessRequested (); + Time delay = (MostRecent (GetAccessGrantStart (true), Simulator::Now ()) - Simulator::Now ()); + m_accessTimeout = Simulator::Schedule (delay, &ChannelAccessManager::GrantPcfAccess, this, state); + return; + } UpdateBackoff (); NS_ASSERT (!state->IsAccessRequested ()); state->NotifyAccessRequested (); @@ -314,13 +333,19 @@ DcfManager::RequestAccess (Ptr state) } void -DcfManager::DoGrantAccess (void) +ChannelAccessManager::GrantPcfAccess (Ptr state) //to be renamed +{ + state->NotifyAccessGranted (); +} + +void +ChannelAccessManager::DoGrantAccess (void) { NS_LOG_FUNCTION (this); uint32_t k = 0; for (States::iterator i = m_states.begin (); i != m_states.end (); k++) { - Ptr state = *i; + Ptr state = *i; if (state->IsAccessRequested () && GetBackoffEndFor (state) <= Simulator::Now () ) { @@ -331,10 +356,10 @@ DcfManager::DoGrantAccess (void) NS_LOG_DEBUG ("dcf " << k << " needs access. backoff expired. access granted. slots=" << state->GetBackoffSlots ()); i++; //go to the next item in the list. k++; - std::vector > internalCollisionStates; + std::vector > internalCollisionStates; for (States::iterator j = i; j != m_states.end (); j++, k++) { - Ptr otherState = *j; + Ptr otherState = *j; if (otherState->IsAccessRequested () && GetBackoffEndFor (otherState) <= Simulator::Now ()) { @@ -357,7 +382,7 @@ DcfManager::DoGrantAccess (void) * the result of the calculations. */ state->NotifyAccessGranted (); - for (std::vector >::iterator l = internalCollisionStates.begin (); + for (std::vector >::iterator l = internalCollisionStates.begin (); l != internalCollisionStates.end (); l++) { (*l)->NotifyInternalCollision (); @@ -369,7 +394,7 @@ DcfManager::DoGrantAccess (void) } void -DcfManager::AccessTimeout (void) +ChannelAccessManager::AccessTimeout (void) { NS_LOG_FUNCTION (this); UpdateBackoff (); @@ -378,7 +403,7 @@ DcfManager::AccessTimeout (void) } Time -DcfManager::GetAccessGrantStart (void) const +ChannelAccessManager::GetAccessGrantStart (bool ignoreNav) const { NS_LOG_FUNCTION (this); Time rxAccessStart; @@ -400,14 +425,28 @@ DcfManager::GetAccessGrantStart (void) const Time ackTimeoutAccessStart = m_lastAckTimeoutEnd + m_sifs; Time ctsTimeoutAccessStart = m_lastCtsTimeoutEnd + m_sifs; Time switchingAccessStart = m_lastSwitchingStart + m_lastSwitchingDuration + m_sifs; - Time accessGrantedStart = MostRecent (rxAccessStart, - busyAccessStart, - txAccessStart, - navAccessStart, - ackTimeoutAccessStart, - ctsTimeoutAccessStart, - switchingAccessStart - ); + Time accessGrantedStart; + if (ignoreNav) + { + accessGrantedStart = MostRecent (rxAccessStart, + busyAccessStart, + txAccessStart, + ackTimeoutAccessStart, + ctsTimeoutAccessStart, + switchingAccessStart + ); + } + else + { + accessGrantedStart = MostRecent (rxAccessStart, + busyAccessStart, + txAccessStart, + navAccessStart, + ackTimeoutAccessStart, + ctsTimeoutAccessStart, + switchingAccessStart + ); + } NS_LOG_INFO ("access grant start=" << accessGrantedStart << ", rx access start=" << rxAccessStart << ", busy access start=" << busyAccessStart << @@ -417,7 +456,7 @@ DcfManager::GetAccessGrantStart (void) const } Time -DcfManager::GetBackoffStartFor (Ptr state) +ChannelAccessManager::GetBackoffStartFor (Ptr state) { NS_LOG_FUNCTION (this << state); Time mostRecentEvent = MostRecent (state->GetBackoffStart (), @@ -427,7 +466,7 @@ DcfManager::GetBackoffStartFor (Ptr state) } Time -DcfManager::GetBackoffEndFor (Ptr state) +ChannelAccessManager::GetBackoffEndFor (Ptr state) { NS_LOG_FUNCTION (this << state); NS_LOG_DEBUG ("Backoff start: " << GetBackoffStartFor (state).As (Time::US) << @@ -436,13 +475,13 @@ DcfManager::GetBackoffEndFor (Ptr state) } void -DcfManager::UpdateBackoff (void) +ChannelAccessManager::UpdateBackoff (void) { NS_LOG_FUNCTION (this); uint32_t k = 0; for (States::iterator i = m_states.begin (); i != m_states.end (); i++, k++) { - Ptr state = *i; + Ptr state = *i; Time backoffStart = GetBackoffStartFor (state); if (backoffStart <= Simulator::Now ()) @@ -459,7 +498,7 @@ DcfManager::UpdateBackoff (void) * that a minimum of AIFS has elapsed since last busy * medium. */ - if (state->IsEdca ()) + if (state->IsQosTxop ()) { nIntSlots++; } @@ -472,18 +511,18 @@ DcfManager::UpdateBackoff (void) } void -DcfManager::DoRestartAccessTimeoutIfNeeded (void) +ChannelAccessManager::DoRestartAccessTimeoutIfNeeded (void) { NS_LOG_FUNCTION (this); /** - * Is there a DcaTxop which needs to access the medium, and, + * Is there a Txop which needs to access the medium, and, * if there is one, how many slots for AIFS+backoff does it require ? */ bool accessTimeoutNeeded = false; Time expectedBackoffEnd = Simulator::GetMaximumSimulationTime (); for (States::iterator i = m_states.begin (); i != m_states.end (); i++) { - Ptr state = *i; + Ptr state = *i; if (state->IsAccessRequested ()) { Time tmp = GetBackoffEndFor (state); @@ -507,13 +546,13 @@ DcfManager::DoRestartAccessTimeoutIfNeeded (void) if (m_accessTimeout.IsExpired ()) { m_accessTimeout = Simulator::Schedule (expectedBackoffDelay, - &DcfManager::AccessTimeout, this); + &ChannelAccessManager::AccessTimeout, this); } } } void -DcfManager::NotifyRxStartNow (Time duration) +ChannelAccessManager::NotifyRxStartNow (Time duration) { NS_LOG_FUNCTION (this << duration); NS_LOG_DEBUG ("rx start for=" << duration); @@ -524,7 +563,7 @@ DcfManager::NotifyRxStartNow (Time duration) } void -DcfManager::NotifyRxEndOkNow (void) +ChannelAccessManager::NotifyRxEndOkNow (void) { NS_LOG_FUNCTION (this); NS_LOG_DEBUG ("rx end ok"); @@ -534,7 +573,7 @@ DcfManager::NotifyRxEndOkNow (void) } void -DcfManager::NotifyRxEndErrorNow (void) +ChannelAccessManager::NotifyRxEndErrorNow (void) { NS_LOG_FUNCTION (this); NS_LOG_DEBUG ("rx end error"); @@ -544,7 +583,7 @@ DcfManager::NotifyRxEndErrorNow (void) } void -DcfManager::NotifyTxStartNow (Time duration) +ChannelAccessManager::NotifyTxStartNow (Time duration) { NS_LOG_FUNCTION (this << duration); if (m_rxing) @@ -564,7 +603,7 @@ DcfManager::NotifyTxStartNow (Time duration) } void -DcfManager::NotifyMaybeCcaBusyStartNow (Time duration) +ChannelAccessManager::NotifyMaybeCcaBusyStartNow (Time duration) { NS_LOG_FUNCTION (this << duration); NS_LOG_DEBUG ("busy start for " << duration); @@ -574,7 +613,7 @@ DcfManager::NotifyMaybeCcaBusyStartNow (Time duration) } void -DcfManager::NotifySwitchingStartNow (Time duration) +ChannelAccessManager::NotifySwitchingStartNow (Time duration) { NS_LOG_FUNCTION (this << duration); Time now = Simulator::Now (); @@ -615,7 +654,7 @@ DcfManager::NotifySwitchingStartNow (Time duration) //Reset backoffs for (States::iterator i = m_states.begin (); i != m_states.end (); i++) { - Ptr state = *i; + Ptr state = *i; uint32_t remainingSlots = state->GetBackoffSlots (); if (remainingSlots > 0) { @@ -634,7 +673,7 @@ DcfManager::NotifySwitchingStartNow (Time duration) } void -DcfManager::NotifySleepNow (void) +ChannelAccessManager::NotifySleepNow (void) { NS_LOG_FUNCTION (this); m_sleeping = true; @@ -647,13 +686,13 @@ DcfManager::NotifySleepNow (void) //Reset backoffs for (States::iterator i = m_states.begin (); i != m_states.end (); i++) { - Ptr state = *i; + Ptr state = *i; state->NotifySleep (); } } void -DcfManager::NotifyOffNow (void) +ChannelAccessManager::NotifyOffNow (void) { NS_LOG_FUNCTION (this); m_off = true; @@ -666,19 +705,19 @@ DcfManager::NotifyOffNow (void) //Reset backoffs for (States::iterator i = m_states.begin (); i != m_states.end (); i++) { - Ptr state = *i; + Ptr state = *i; state->NotifyOff (); } } void -DcfManager::NotifyWakeupNow (void) +ChannelAccessManager::NotifyWakeupNow (void) { NS_LOG_FUNCTION (this); m_sleeping = false; for (States::iterator i = m_states.begin (); i != m_states.end (); i++) { - Ptr state = *i; + Ptr state = *i; uint32_t remainingSlots = state->GetBackoffSlots (); if (remainingSlots > 0) { @@ -692,13 +731,13 @@ DcfManager::NotifyWakeupNow (void) } void -DcfManager::NotifyOnNow (void) +ChannelAccessManager::NotifyOnNow (void) { NS_LOG_FUNCTION (this); m_off = false; for (States::iterator i = m_states.begin (); i != m_states.end (); i++) { - Ptr state = *i; + Ptr state = *i; uint32_t remainingSlots = state->GetBackoffSlots (); if (remainingSlots > 0) { @@ -712,7 +751,7 @@ DcfManager::NotifyOnNow (void) } void -DcfManager::NotifyNavResetNow (Time duration) +ChannelAccessManager::NotifyNavResetNow (Time duration) { NS_LOG_FUNCTION (this << duration); NS_LOG_DEBUG ("nav reset for=" << duration); @@ -729,7 +768,7 @@ DcfManager::NotifyNavResetNow (Time duration) } void -DcfManager::NotifyNavStartNow (Time duration) +ChannelAccessManager::NotifyNavStartNow (Time duration) { NS_LOG_FUNCTION (this << duration); NS_ASSERT (m_lastNavStart <= Simulator::Now ()); @@ -745,7 +784,7 @@ DcfManager::NotifyNavStartNow (Time duration) } void -DcfManager::NotifyAckTimeoutStartNow (Time duration) +ChannelAccessManager::NotifyAckTimeoutStartNow (Time duration) { NS_LOG_FUNCTION (this << duration); NS_ASSERT (m_lastAckTimeoutEnd < Simulator::Now ()); @@ -753,7 +792,7 @@ DcfManager::NotifyAckTimeoutStartNow (Time duration) } void -DcfManager::NotifyAckTimeoutResetNow () +ChannelAccessManager::NotifyAckTimeoutResetNow () { NS_LOG_FUNCTION (this); m_lastAckTimeoutEnd = Simulator::Now (); @@ -761,14 +800,14 @@ DcfManager::NotifyAckTimeoutResetNow () } void -DcfManager::NotifyCtsTimeoutStartNow (Time duration) +ChannelAccessManager::NotifyCtsTimeoutStartNow (Time duration) { NS_LOG_FUNCTION (this << duration); m_lastCtsTimeoutEnd = Simulator::Now () + duration; } void -DcfManager::NotifyCtsTimeoutResetNow () +ChannelAccessManager::NotifyCtsTimeoutResetNow () { NS_LOG_FUNCTION (this); m_lastCtsTimeoutEnd = Simulator::Now (); diff --git a/src/wifi/model/dcf-manager.h b/src/wifi/model/channel-access-manager.h similarity index 77% rename from src/wifi/model/dcf-manager.h rename to src/wifi/model/channel-access-manager.h index ecc9291e3..abc2b2043 100644 --- a/src/wifi/model/dcf-manager.h +++ b/src/wifi/model/channel-access-manager.h @@ -18,8 +18,8 @@ * Author: Mathieu Lacage */ -#ifndef DCF_MANAGER_H -#define DCF_MANAGER_H +#ifndef CHANNEL_ACCESS_MANAGER_H +#define CHANNEL_ACCESS_MANAGER_H #include #include "ns3/event-id.h" @@ -29,29 +29,29 @@ namespace ns3 { class WifiPhy; class PhyListener; -class DcaTxop; +class Txop; class MacLow; /** - * \brief Manage a set of ns3::DcaTxop + * \brief Manage a set of ns3::Txop * \ingroup wifi * - * Handle a set of independent ns3::DcaTxop, each of which represents - * a single DCF within a MAC stack. Each ns3::DcaTxop has a priority + * Handle a set of independent ns3::Txop, each of which represents + * a single DCF within a MAC stack. Each ns3::Txop has a priority * implicitely associated with it (the priority is determined when the - * ns3::DcaTxop is added to the DcfManager: the first DcaTxop to be + * ns3::Txop is added to the ChannelAccessManager: the first Txop to be * added gets the highest priority, the second, the second highest * priority, and so on.) which is used to handle "internal" collisions. - * i.e., when two local DcaTxop are expected to get access to the - * medium at the same time, the highest priority local DcaTxop wins - * access to the medium and the other DcaTxop suffers a "internal" + * i.e., when two local Txop are expected to get access to the + * medium at the same time, the highest priority local Txop wins + * access to the medium and the other Txop suffers a "internal" * collision. */ -class DcfManager : public Object +class ChannelAccessManager : public Object { public: - DcfManager (); - virtual ~DcfManager (); + ChannelAccessManager (); + virtual ~ChannelAccessManager (); /** * Set up listener for Phy events. @@ -100,26 +100,27 @@ public: Time GetEifsNoDifs () const; /** - * \param dcf a new DcaTxop. + * \param dcf a new Txop. * - * The DcfManager does not take ownership of this pointer so, the callee - * must make sure that the DcaTxop pointer will stay valid as long - * as the DcfManager is valid. Note that the order in which DcaTxop - * objects are added to a DcfManager matters: the first DcaTxop added - * has the highest priority, the second DcaTxop added, has the second + * The ChannelAccessManager does not take ownership of this pointer so, the callee + * must make sure that the Txop pointer will stay valid as long + * as the ChannelAccessManager is valid. Note that the order in which Txop + * objects are added to a ChannelAccessManager matters: the first Txop added + * has the highest priority, the second Txop added, has the second * highest priority, etc. */ - void Add (Ptr dcf); + void Add (Ptr dcf); /** - * \param state a DcaTxop + * \param state a Txop + * \param isCfPeriod flag whether it is called during the CF period * - * Notify the DcfManager that a specific DcaTxop needs access to the - * medium. The DcfManager is then responsible for starting an access - * timer and, invoking DcaTxop::DoNotifyAccessGranted when the access + * Notify the ChannelAccessManager that a specific Txop needs access to the + * medium. The ChannelAccessManager is then responsible for starting an access + * timer and, invoking Txop::DoNotifyAccessGranted when the access * is granted if it ever gets granted. */ - void RequestAccess (Ptr state); + void RequestAccess (Ptr state, bool isCfPeriod = false); /** * \param duration expected duration of reception @@ -156,7 +157,7 @@ public: * \param duration expected duration of channel switching period * * Notify the DCF that a channel switching period has just started. - * During switching state, new packets can be enqueued in DcaTxop/EdcaTxop + * During switching state, new packets can be enqueued in Txop/QosTxop * but they won't access to the medium until the end of the channel switching. */ void NotifySwitchingStartNow (Time duration); @@ -209,13 +210,24 @@ public: */ void NotifyCtsTimeoutResetNow (); + /** + * Check if the device is busy sending or receiving, + * or NAV or CCA busy. + * + * \return true if the device is busy, + * false otherwise + */ + bool IsBusy (void) const; + + protected: // Inherited from ns3::Object void DoDispose (void); + private: /** - * Update backoff slots for all DcaTxops. + * Update backoff slots for all Txops. */ void UpdateBackoff (void); /** @@ -227,6 +239,19 @@ private: * \return the most recent time */ Time MostRecent (Time a, Time b) const; + /** + * Return the most recent time. + * + * \param a + * \param b + * \param c + * \param d + * \param e + * \param f + * + * \return the most recent time + */ + Time MostRecent (Time a, Time b, Time c, Time d, Time e, Time f) const; /** * Return the most recent time. * @@ -245,27 +270,29 @@ private: * Access will never be granted to the medium _before_ * the time returned by this method. * + * \param ignoreNav flag whether NAV should be ignored + * * \returns the absolute time at which access could start to be granted */ - Time GetAccessGrantStart (void) const; + Time GetAccessGrantStart (bool ignoreNav = false) const; /** * Return the time when the backoff procedure - * started for the given DcaTxop. + * started for the given Txop. * * \param state * * \return the time when the backoff procedure started */ - Time GetBackoffStartFor (Ptr state); + Time GetBackoffStartFor (Ptr state); /** * Return the time when the backoff procedure - * ended (or will ended) for the given DcaTxop. + * ended (or will ended) for the given Txop. * * \param state * * \return the time when the backoff procedure ended (or will ended) */ - Time GetBackoffEndFor (Ptr state); + Time GetBackoffEndFor (Ptr state); void DoRestartAccessTimeoutIfNeeded (void); @@ -278,14 +305,6 @@ private: * Grant access to DCF */ void DoGrantAccess (void); - /** - * Check if the device is busy sending or receiving, - * or NAV or CCA busy. - * - * \return true if the device is busy, - * false otherwise - */ - bool IsBusy (void) const; /** * Check if the device is between frames (in DIFS or AIFS interval) * @@ -293,12 +312,16 @@ private: * \return true if the device is within AIFS, * false otherwise */ - bool IsWithinAifs (Ptr state) const; + bool IsWithinAifs (Ptr state) const; + /** + * Grant access to PCF + */ + void GrantPcfAccess (Ptr state); /** - * typedef for a vector of DcaTxops + * typedef for a vector of Txops */ - typedef std::vector > States; + typedef std::vector > States; States m_states; //!< the DCF states Time m_lastAckTimeoutEnd; //!< the last ACK timeout end time @@ -327,4 +350,4 @@ private: } //namespace ns3 -#endif /* DCF_MANAGER_H */ +#endif /* CHANNEL_ACCESS_MANAGER_H */ diff --git a/src/wifi/model/infrastructure-wifi-mac.cc b/src/wifi/model/infrastructure-wifi-mac.cc new file mode 100644 index 000000000..801d1c8c7 --- /dev/null +++ b/src/wifi/model/infrastructure-wifi-mac.cc @@ -0,0 +1,83 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2017 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Sébastien Deronne + */ + +#include "infrastructure-wifi-mac.h" +#include "ns3/log.h" + +namespace ns3 { + +NS_LOG_COMPONENT_DEFINE ("InfrastructureWifiMac"); + +NS_OBJECT_ENSURE_REGISTERED (InfrastructureWifiMac); + + +TypeId +InfrastructureWifiMac::GetTypeId (void) +{ + static TypeId tid = TypeId ("ns3::InfrastructureWifiMac") + .SetParent () + .SetGroupName ("Wifi") + .AddAttribute ("PcfSupported", + "This Boolean attribute is set to enable PCF support at this STA", + BooleanValue (false), + MakeBooleanAccessor (&InfrastructureWifiMac::SetPcfSupported, + &InfrastructureWifiMac::GetPcfSupported), + MakeBooleanChecker ()) + ; + return tid; +} + +InfrastructureWifiMac::InfrastructureWifiMac () + : m_pcfSupported (0) +{ + NS_LOG_FUNCTION (this); +} + +InfrastructureWifiMac::~InfrastructureWifiMac () +{ + NS_LOG_FUNCTION (this); +} + +void +InfrastructureWifiMac::SetQosSupported (bool enable) +{ + NS_ASSERT_MSG (!(GetPcfSupported () && enable), "QoS cannot be enabled when PCF support is activated (not supported)"); + RegularWifiMac::SetQosSupported (enable); +} + +void +InfrastructureWifiMac::SetPcfSupported (bool enable) +{ + NS_LOG_FUNCTION (this << enable); + NS_ASSERT_MSG (!(GetQosSupported () && enable), "PCF cannot be enabled when QoS support is activated (not supported)"); + m_pcfSupported = enable; + if (m_stationManager != 0) + { + m_stationManager->SetPcfSupported (enable); + } +} + +bool +InfrastructureWifiMac::GetPcfSupported () const +{ + return m_pcfSupported; +} + +} //namespace ns3 diff --git a/src/wifi/model/infrastructure-wifi-mac.h b/src/wifi/model/infrastructure-wifi-mac.h new file mode 100644 index 000000000..db56fd5be --- /dev/null +++ b/src/wifi/model/infrastructure-wifi-mac.h @@ -0,0 +1,84 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ +/* + * Copyright (c) 2017 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Sébastien Deronne + */ + +#ifndef INFRASTRUCTURE_WIFI_MAC_H +#define INFRASTRUCTURE_WIFI_MAC_H + +#include "regular-wifi-mac.h" + +namespace ns3 { + +/** + * \ingroup wifi + * + * The Wifi MAC high model for a STA or AP in a BSS. + */ +class InfrastructureWifiMac : public RegularWifiMac +{ +public: + /** + * \brief Get the type ID. + * \return the object TypeId + */ + static TypeId GetTypeId (void); + + InfrastructureWifiMac (); + virtual ~InfrastructureWifiMac (); + + /** + * \param packet the packet to send. + * \param to the address to which the packet should be sent. + * + * The packet should be enqueued in a tx queue, and should be + * dequeued as soon as the channel access function determines that + * access is granted to this MAC. + */ + virtual void Enqueue (Ptr packet, Mac48Address to) = 0; + /** + * Enable or disable QoS support for the device. + * + * \param enable whether QoS is supported + */ + void SetQosSupported (bool enable); + + /** + * Enable or disable PCF support for the device. + * + * \param enable whether PCF is supported + */ + void SetPcfSupported (bool enable); + /** + * Return whether the device supports PCF. + * + * \return true if PCF is supported, false otherwise + */ + bool GetPcfSupported () const; + + +private: + /** + * This Boolean is set \c true iff this WifiMac support PCF + */ + bool m_pcfSupported; +}; + +} //namespace ns3 + +#endif /* INFRASTRUCTURE_WIFI_MAC_H */ diff --git a/src/wifi/model/mac-low.cc b/src/wifi/model/mac-low.cc index 690519fdf..183602399 100644 --- a/src/wifi/model/mac-low.cc +++ b/src/wifi/model/mac-low.cc @@ -24,7 +24,7 @@ #include "ns3/log.h" #include "ns3/socket.h" #include "mac-low.h" -#include "edca-txop-n.h" +#include "qos-txop.h" #include "snr-tag.h" #include "ampdu-tag.h" #include "wifi-mac-queue.h" @@ -38,6 +38,7 @@ #include "wifi-phy-listener.h" #include "wifi-mac-trailer.h" #include "wifi-phy.h" +#include "wifi-net-device.h" #undef NS_LOG_APPEND_CONTEXT #define NS_LOG_APPEND_CONTEXT std::clog << "[mac=" << m_self << "] " @@ -113,13 +114,17 @@ MacLow::MacLow () m_waitIfsEvent (), m_endTxNoAckEvent (), m_currentPacket (0), - m_currentDca (0), + m_currentTxop (0), m_lastNavStart (Seconds (0)), m_lastNavDuration (Seconds (0)), + m_cfpStart (Seconds (0)), + m_lastBeacon (Seconds (0)), + m_cfpForeshortening (Seconds (0)), m_promisc (false), m_ampdu (false), m_phyMacLowListener (0), - m_ctsToSelfSupported (false) + m_ctsToSelfSupported (false), + m_cfAckInfo () { NS_LOG_FUNCTION (this); for (uint8_t i = 0; i < 8; i++) @@ -234,10 +239,10 @@ MacLow::CancelAllEvents (void) m_endTxNoAckEvent.Cancel (); oneRunning = true; } - if (oneRunning && m_currentDca != 0) + if (oneRunning && m_currentTxop != 0) { - m_currentDca->Cancel (); - m_currentDca = 0; + m_currentTxop->Cancel (); + m_currentTxop = 0; } } @@ -337,6 +342,18 @@ MacLow::SetRifs (Time rifs) m_rifs = rifs; } +void +MacLow::SetBeaconInterval (Time interval) +{ + m_beaconInterval = interval; +} + +void +MacLow::SetCfpMaxDuration (Time cfpMaxDuration) +{ + m_cfpMaxDuration = cfpMaxDuration; +} + void MacLow::SetBssid (Mac48Address bssid) { @@ -411,6 +428,18 @@ MacLow::GetBssid (void) const return m_bssid; } +Time +MacLow::GetBeaconInterval (void) const +{ + return m_beaconInterval; +} + +Time +MacLow::GetCfpMaxDuration (void) const +{ + return m_cfpMaxDuration; +} + bool MacLow::IsPromisc (void) const { @@ -424,9 +453,9 @@ MacLow::SetRxCallback (Callback, const WifiMacHeader *> callba } void -MacLow::RegisterDcf (Ptr dcf) +MacLow::RegisterDcf (Ptr dcf) { - m_dcfManagers.push_back (dcf); + m_channelAccessManagers.push_back (dcf); } bool @@ -449,15 +478,15 @@ void MacLow::StartTransmission (Ptr packet, const WifiMacHeader* hdr, MacLowTransmissionParameters params, - Ptr dca) + Ptr txop) { + NS_LOG_FUNCTION (this << packet << hdr << params << txop); + NS_ASSERT (!m_cfAckInfo.expectCfAck); if (m_phy->IsStateOff ()) { NS_LOG_DEBUG ("Cannot start TX because device is OFF"); return; } - - NS_LOG_FUNCTION (this << packet << hdr << params << dca); /* m_currentPacket is not NULL because someone started * a transmission and was interrupted before one of: * - ctsTimeout @@ -478,11 +507,11 @@ MacLow::StartTransmission (Ptr packet, m_currentPacket->RemovePacketTag (priorityTag); m_currentHdr = *hdr; CancelAllEvents (); - m_currentDca = dca; + m_currentTxop = txop; m_txParams = params; m_currentTxVector = GetDataTxVector (m_currentPacket, &m_currentHdr); - if (NeedRts ()) + if (NeedRts () && !IsCfPeriod ()) { m_txParams.EnableRts (); } @@ -517,7 +546,7 @@ MacLow::StartTransmission (Ptr packet, m_txParams.EnableAck (); } AcIndex ac = QosUtilsMapTidToAc (GetTid (packet, *hdr)); - std::map >::const_iterator edcaIt = m_edca.find (ac); + std::map >::const_iterator edcaIt = m_edca.find (ac); Ptr aggregatedPacket = Create (); for (uint8_t i = 0; i < sentMpdus; i++) { @@ -551,7 +580,7 @@ MacLow::StartTransmission (Ptr packet, } NS_LOG_DEBUG ("startTx size=" << GetSize (m_currentPacket, &m_currentHdr, m_ampdu) << - ", to=" << m_currentHdr.GetAddr1 () << ", dca=" << m_currentDca); + ", to=" << m_currentHdr.GetAddr1 () << ", txop=" << m_currentTxop); if (m_txParams.MustSendRts ()) { @@ -593,6 +622,19 @@ MacLow::ReceiveError (Ptr packet, double rxSnr) { NS_LOG_FUNCTION (this << packet << rxSnr); NS_LOG_DEBUG ("rx failed"); + if (IsCfPeriod () && m_currentHdr.IsCfPoll ()) + { + NS_ASSERT (m_currentTxop != 0); + m_currentTxop->MissedCfPollResponse (m_cfAckInfo.expectCfAck); + } + else if (m_cfAckInfo.expectCfAck) + { + NS_ASSERT (m_currentTxop != 0); + Ptr txop = m_currentTxop; + m_currentTxop = 0; + txop->MissedAck (); + } + m_cfAckInfo.expectCfAck = false; return; } @@ -609,7 +651,7 @@ MacLow::NotifySwitchingStartNow (Time duration) m_lastNavStart = Simulator::Now (); m_lastNavDuration = Seconds (0); m_currentPacket = 0; - m_currentDca = 0; + m_currentTxop = 0; } void @@ -624,7 +666,7 @@ MacLow::NotifySleepNow (void) m_lastNavStart = Simulator::Now (); m_lastNavDuration = Seconds (0); m_currentPacket = 0; - m_currentDca = 0; + m_currentTxop = 0; } void @@ -639,7 +681,7 @@ MacLow::NotifyOffNow (void) m_lastNavStart = Simulator::Now (); m_lastNavDuration = Seconds (0); m_currentPacket = 0; - m_currentDca = 0; + m_currentTxop = 0; } void @@ -744,9 +786,9 @@ MacLow::ReceiveOk (Ptr packet, double rxSnr, WifiTxVector txVector, bool } if (gotAck) { - m_currentDca->GotAck (); + m_currentTxop->GotAck (); } - if (m_txParams.HasNextPacket () && (!m_currentHdr.IsQosData () || m_currentDca->GetTxopLimit ().IsZero () || m_currentDca->HasTxop ())) + if (m_txParams.HasNextPacket () && (!m_currentHdr.IsQosData () || m_currentTxop->GetTxopLimit ().IsZero () || m_currentTxop->HasTxop ())) { if (m_stationManager->GetRifsPermitted ()) { @@ -757,7 +799,7 @@ MacLow::ReceiveOk (Ptr packet, double rxSnr, WifiTxVector txVector, bool m_waitIfsEvent = Simulator::Schedule (GetSifs (), &MacLow::WaitIfsAfterEndTxFragment, this); } } - else if (m_currentHdr.IsQosData () && m_currentDca->HasTxop ()) + else if (m_currentHdr.IsQosData () && m_currentTxop->HasTxop ()) { if (m_stationManager->GetRifsPermitted ()) { @@ -786,9 +828,9 @@ MacLow::ReceiveOk (Ptr packet, double rxSnr, WifiTxVector txVector, bool packet->RemoveHeader (blockAck); m_blockAckTimeoutEvent.Cancel (); NotifyAckTimeoutResetNow (); - m_currentDca->GotBlockAck (&blockAck, hdr.GetAddr2 (), rxSnr, txVector.GetMode (), tag.Get ()); + m_currentTxop->GotBlockAck (&blockAck, hdr.GetAddr2 (), rxSnr, txVector.GetMode (), tag.Get ()); m_ampdu = false; - if (m_currentHdr.IsQosData () && m_currentDca->HasTxop ()) + if (m_currentHdr.IsQosData () && m_currentTxop->HasTxop ()) { if (m_stationManager->GetRifsPermitted ()) { @@ -847,10 +889,47 @@ MacLow::ReceiveOk (Ptr packet, double rxSnr, WifiTxVector txVector, bool } else if (hdr.IsCtl ()) { - NS_LOG_DEBUG ("rx drop " << hdr.GetTypeString ()); + if (hdr.IsCfEnd ()) + { + NS_LOG_DEBUG ("rx CF-END "); + m_cfpStart = NanoSeconds (0); + if (m_cfAckInfo.expectCfAck) + { + NS_ASSERT (m_currentTxop != 0); + if (hdr.IsCfAck ()) + { + m_currentTxop->GotAck (); + } + else + { + m_currentTxop->MissedAck (); + } + } + if (m_currentTxop != 0) + { + m_currentTxop->GotCfEnd (); + } + m_cfAckInfo.expectCfAck = false; + } + else + { + NS_LOG_DEBUG ("rx drop " << hdr.GetTypeString ()); + } } else if (hdr.GetAddr1 () == m_self) { + if (hdr.IsCfPoll ()) + { + m_cfpStart = Simulator::Now (); + if (m_cfAckInfo.expectCfAck && !hdr.IsCfAck ()) + { + NS_ASSERT (m_currentTxop != 0); + Ptr txop = m_currentTxop; + m_currentTxop = 0; + txop->MissedAck (); + m_cfAckInfo.expectCfAck = false; + } + } m_stationManager->ReportRxOk (hdr.GetAddr2 (), &hdr, rxSnr, txVector.GetMode ()); if (hdr.IsQosData () && ReceiveMpdu (packet, hdr)) @@ -924,14 +1003,25 @@ MacLow::ReceiveOk (Ptr packet, double rxSnr, WifiTxVector txVector, bool } else { - NS_LOG_DEBUG ("rx unicast/sendAck from=" << hdr.GetAddr2 ()); - NS_ASSERT (m_sendAckEvent.IsExpired ()); - m_sendAckEvent = Simulator::Schedule (GetSifs (), - &MacLow::SendAckAfterData, this, - hdr.GetAddr2 (), - hdr.GetDuration (), - txVector.GetMode (), - rxSnr); + if (IsCfPeriod ()) + { + if (hdr.HasData ()) + { + m_cfAckInfo.appendCfAck = true; + m_cfAckInfo.address = hdr.GetAddr2 (); + } + } + else + { + NS_LOG_DEBUG ("rx unicast/sendAck from=" << hdr.GetAddr2 ()); + NS_ASSERT (m_sendAckEvent.IsExpired ()); + m_sendAckEvent = Simulator::Schedule (GetSifs (), + &MacLow::SendAckAfterData, this, + hdr.GetAddr2 (), + hdr.GetDuration (), + txVector.GetMode (), + rxSnr); + } } } goto rxPacket; @@ -968,16 +1058,43 @@ MacLow::ReceiveOk (Ptr packet, double rxSnr, WifiTxVector txVector, bool } else { + if (m_cfAckInfo.expectCfAck && hdr.IsCfAck ()) + { + m_cfAckInfo.expectCfAck = false; + NS_ASSERT (m_currentTxop != 0); + m_currentTxop->GotAck (); + } NS_LOG_DEBUG ("rx not for me from=" << hdr.GetAddr2 ()); } return; rxPacket: + if (m_cfAckInfo.expectCfAck && hdr.IsCfAck ()) + { + m_cfAckInfo.expectCfAck = false; + NS_ASSERT (m_currentTxop != 0); + m_currentTxop->GotAck (); + } WifiMacTrailer fcs; packet->RemoveTrailer (fcs); m_rxCallback (packet, &hdr); return; } +uint32_t +MacLow::GetCfEndSize (void) const +{ + WifiMacHeader cfEnd; + if (m_cfAckInfo.expectCfAck || m_cfAckInfo.appendCfAck) + { + cfEnd.SetType (WIFI_MAC_CTL_END_ACK); + } + else + { + cfEnd.SetType (WIFI_MAC_CTL_END); + } + return cfEnd.GetSize () + 4; +} + Time MacLow::GetAckDuration (Mac48Address to, WifiTxVector dataTxVector) const { @@ -1113,20 +1230,22 @@ void MacLow::NotifyNav (Ptr packet, const WifiMacHeader &hdr) { NS_ASSERT (m_lastNavStart <= Simulator::Now ()); - Time duration = hdr.GetDuration (); - - if (hdr.IsCfpoll () - && hdr.GetAddr2 () == m_bssid) + if (hdr.GetRawDuration () > 32767) { - //see section 9.3.2.2 802.11-1999 - DoNavResetNow (duration); + //All stations process Duration field values less than or equal to 32 767 from valid data frames + //to update their NAV settings as appropriate under the coordination function rules. + return; + } + if (hdr.IsCfEnd () && hdr.GetAddr2 () == m_bssid) + { + //see section 9.3.2.2 802.11-1999 + DoNavResetNow (Seconds (0)); return; } - /// \todo We should also handle CF_END specially here - /// but we don't for now because we do not generate them. else if (hdr.GetAddr1 () != m_self) { // see section 9.2.5.4 802.11-1999 + Time duration = hdr.GetDuration (); bool navUpdated = DoNavStartNow (duration); if (hdr.IsRts () && navUpdated) { @@ -1156,14 +1275,15 @@ MacLow::NavCounterResetCtsMissed (Time rtsEndRxTime) { if (m_phy->GetLastRxStartTime () < rtsEndRxTime) { - DoNavResetNow (Seconds (0.0)); + DoNavResetNow (Seconds (0)); } } void MacLow::DoNavResetNow (Time duration) { - for (DcfManagersCI i = m_dcfManagers.begin (); i != m_dcfManagers.end (); i++) + NS_LOG_FUNCTION (this << duration); + for (ChannelAccessManagersCI i = m_channelAccessManagers.begin (); i != m_channelAccessManagers.end (); i++) { (*i)->NotifyNavResetNow (duration); } @@ -1174,7 +1294,7 @@ MacLow::DoNavResetNow (Time duration) bool MacLow::DoNavStartNow (Time duration) { - for (DcfManagersCI i = m_dcfManagers.begin (); i != m_dcfManagers.end (); i++) + for (ChannelAccessManagersCI i = m_channelAccessManagers.begin (); i != m_channelAccessManagers.end (); i++) { (*i)->NotifyNavStartNow (duration); } @@ -1192,7 +1312,7 @@ MacLow::DoNavStartNow (Time duration) void MacLow::NotifyAckTimeoutStartNow (Time duration) { - for (DcfManagersCI i = m_dcfManagers.begin (); i != m_dcfManagers.end (); i++) + for (ChannelAccessManagersCI i = m_channelAccessManagers.begin (); i != m_channelAccessManagers.end (); i++) { (*i)->NotifyAckTimeoutStartNow (duration); } @@ -1201,7 +1321,7 @@ MacLow::NotifyAckTimeoutStartNow (Time duration) void MacLow::NotifyAckTimeoutResetNow () { - for (DcfManagersCI i = m_dcfManagers.begin (); i != m_dcfManagers.end (); i++) + for (ChannelAccessManagersCI i = m_channelAccessManagers.begin (); i != m_channelAccessManagers.end (); i++) { (*i)->NotifyAckTimeoutResetNow (); } @@ -1210,7 +1330,7 @@ MacLow::NotifyAckTimeoutResetNow () void MacLow::NotifyCtsTimeoutStartNow (Time duration) { - for (DcfManagersCI i = m_dcfManagers.begin (); i != m_dcfManagers.end (); i++) + for (ChannelAccessManagersCI i = m_channelAccessManagers.begin (); i != m_channelAccessManagers.end (); i++) { (*i)->NotifyCtsTimeoutStartNow (duration); } @@ -1219,7 +1339,7 @@ MacLow::NotifyCtsTimeoutStartNow (Time duration) void MacLow::NotifyCtsTimeoutResetNow () { - for (DcfManagersCI i = m_dcfManagers.begin (); i != m_dcfManagers.end (); i++) + for (ChannelAccessManagersCI i = m_channelAccessManagers.begin (); i != m_channelAccessManagers.end (); i++) { (*i)->NotifyCtsTimeoutResetNow (); } @@ -1238,6 +1358,29 @@ MacLow::ForwardDown (Ptr packet, const WifiMacHeader* hdr, WifiTxV ", seq=0x" << std::hex << m_currentHdr.GetSequenceControl () << std::dec); if (!m_ampdu || hdr->IsAck () || hdr->IsRts () || hdr->IsCts () || hdr->IsBlockAck () || hdr->IsMgt ()) { + if (hdr->IsCfPoll () && m_stationManager->HasPcfSupported ()) + { + Simulator::Schedule (GetPifs () + m_phy->CalculateTxDuration (packet->GetSize (), txVector, m_phy->GetFrequency ()), &MacLow::CfPollTimeout, this); + } + if (hdr->IsBeacon () && m_stationManager->HasPcfSupported ()) + { + if (Simulator::Now () > m_lastBeacon + m_beaconInterval) + { + m_cfpForeshortening = (Simulator::Now () - m_lastBeacon - m_beaconInterval); + } + m_lastBeacon = Simulator::Now (); + } + else if (hdr->IsCfEnd () && m_stationManager->HasPcfSupported ()) + { + m_cfpStart = NanoSeconds (0); + m_cfpForeshortening = NanoSeconds (0); + m_cfAckInfo.appendCfAck = false; + m_cfAckInfo.expectCfAck = false; + } + else if (IsCfPeriod () && hdr->HasData ()) + { + m_cfAckInfo.expectCfAck = true; + } m_phy->SendPacket (packet, txVector); } else @@ -1252,7 +1395,7 @@ MacLow::ForwardDown (Ptr packet, const WifiMacHeader* hdr, WifiTxV uint8_t tid = GetTid (packet, *hdr); AcIndex ac = QosUtilsMapTidToAc (tid); - std::map >::const_iterator edcaIt = m_edca.find (ac); + std::map >::const_iterator edcaIt = m_edca.find (ac); if (queueSize == 1) { @@ -1337,6 +1480,24 @@ MacLow::SendMpdu (Ptr packet, WifiTxVector txVector, MpduType mpdu m_phy->SendPacket (packet, txVector, mpdutype); } +void +MacLow::CfPollTimeout (void) +{ + NS_LOG_FUNCTION (this); + //to be reworked + bool busy = false; + for (ChannelAccessManagersCI i = m_channelAccessManagers.begin (); i != m_channelAccessManagers.end (); i++) + { + busy = (*i)->IsBusy (); + } + if (!busy) + { + NS_ASSERT (m_currentTxop != 0); + m_currentTxop->MissedCfPollResponse (m_cfAckInfo.expectCfAck); + m_cfAckInfo.expectCfAck = false; + } +} + void MacLow::CtsTimeout (void) { @@ -1346,10 +1507,10 @@ MacLow::CtsTimeout (void) /// we should restart a new cts timeout now until the expected /// end of rx if there was a rx start before now. m_stationManager->ReportRtsFailed (m_currentHdr.GetAddr1 (), &m_currentHdr); - Ptr dca = m_currentDca; - m_currentDca = 0; + Ptr txop = m_currentTxop; + m_currentTxop = 0; m_ampdu = false; - dca->MissedCts (); + txop->MissedCts (); } void @@ -1361,14 +1522,14 @@ MacLow::NormalAckTimeout (void) /// we should restart a new ack timeout now until the expected /// end of rx if there was a rx start before now. m_stationManager->ReportDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr); - Ptr dca = m_currentDca; - m_currentDca = 0; + Ptr txop = m_currentTxop; + m_currentTxop = 0; m_ampdu = false; if (m_currentHdr.IsQosData ()) { FlushAggregateQueue (GetTid (m_currentPacket, m_currentHdr)); } - dca->MissedAck (); + txop->MissedAck (); } void @@ -1376,13 +1537,13 @@ MacLow::BlockAckTimeout (void) { NS_LOG_FUNCTION (this); NS_LOG_DEBUG ("block ack timeout"); - Ptr dca = m_currentDca; - m_currentDca = 0; + Ptr txop = m_currentTxop; + m_currentTxop = 0; m_ampdu = false; uint8_t tid = GetTid (m_currentPacket, m_currentHdr); uint8_t nTxMpdus = m_aggregateQueue[tid]->GetNPackets (); FlushAggregateQueue (tid); - dca->MissedBlockAck (nTxMpdus); + txop->MissedBlockAck (nTxMpdus); } void @@ -1451,7 +1612,7 @@ void MacLow::StartDataTxTimers (WifiTxVector dataTxVector) { Time txDuration = m_phy->CalculateTxDuration (GetSize (m_currentPacket, &m_currentHdr, m_ampdu), dataTxVector, m_phy->GetFrequency ()); - if (m_txParams.MustWaitNormalAck ()) + if (m_txParams.MustWaitNormalAck () && !IsCfPeriod ()) { Time timerDelay = txDuration + GetAckTimeout (); NS_ASSERT (m_normalAckTimeoutEvent.IsExpired ()); @@ -1486,7 +1647,7 @@ MacLow::StartDataTxTimers (WifiTxVector dataTxVector) } m_waitIfsEvent = Simulator::Schedule (delay, &MacLow::WaitIfsAfterEndTxFragment, this); } - else if (m_currentHdr.IsQosData () && m_currentHdr.IsQosBlockAck () && m_currentDca->HasTxop ()) + else if (m_currentHdr.IsQosData () && m_currentHdr.IsQosBlockAck () && m_currentTxop->HasTxop ()) { Time delay = txDuration; if (m_stationManager->GetRifsPermitted ()) @@ -1513,43 +1674,58 @@ MacLow::SendDataPacket (void) /* send this packet directly. No RTS is needed. */ StartDataTxTimers (m_currentTxVector); - Time duration = Seconds (0.0); - if (m_txParams.MustWaitBasicBlockAck ()) + if (!IsCfPeriod ()) { - duration += GetSifs (); - WifiTxVector blockAckReqTxVector = GetBlockAckTxVector (m_currentHdr.GetAddr2 (), m_currentTxVector.GetMode ()); - duration += GetBlockAckDuration (blockAckReqTxVector, BASIC_BLOCK_ACK); - } - else if (m_txParams.MustWaitCompressedBlockAck ()) - { - duration += GetSifs (); - WifiTxVector blockAckReqTxVector = GetBlockAckTxVector (m_currentHdr.GetAddr2 (), m_currentTxVector.GetMode ()); - duration += GetBlockAckDuration (blockAckReqTxVector, COMPRESSED_BLOCK_ACK); - } - else if (m_txParams.MustWaitNormalAck ()) - { - duration += GetSifs (); - duration += GetAckDuration (m_currentHdr.GetAddr1 (), m_currentTxVector); - } - if (m_txParams.HasNextPacket ()) - { - if (m_stationManager->GetRifsPermitted ()) - { - duration += GetRifs (); - } - else + Time duration = Seconds (0); + if (m_txParams.MustWaitBasicBlockAck ()) { duration += GetSifs (); + WifiTxVector blockAckReqTxVector = GetBlockAckTxVector (m_currentHdr.GetAddr2 (), m_currentTxVector.GetMode ()); + duration += GetBlockAckDuration (blockAckReqTxVector, BASIC_BLOCK_ACK); } - duration += m_phy->CalculateTxDuration (m_txParams.GetNextPacketSize (), - m_currentTxVector, m_phy->GetFrequency ()); - if (m_txParams.MustWaitNormalAck ()) + else if (m_txParams.MustWaitCompressedBlockAck ()) + { + duration += GetSifs (); + WifiTxVector blockAckReqTxVector = GetBlockAckTxVector (m_currentHdr.GetAddr2 (), m_currentTxVector.GetMode ()); + duration += GetBlockAckDuration (blockAckReqTxVector, COMPRESSED_BLOCK_ACK); + } + else if (m_txParams.MustWaitNormalAck ()) { duration += GetSifs (); duration += GetAckDuration (m_currentHdr.GetAddr1 (), m_currentTxVector); } + if (m_txParams.HasNextPacket ()) + { + if (m_stationManager->GetRifsPermitted ()) + { + duration += GetRifs (); + } + else + { + duration += GetSifs (); + } + duration += m_phy->CalculateTxDuration (m_txParams.GetNextPacketSize (), + m_currentTxVector, m_phy->GetFrequency ()); + if (m_txParams.MustWaitNormalAck ()) + { + duration += GetSifs (); + duration += GetAckDuration (m_currentHdr.GetAddr1 (), m_currentTxVector); + } + } + m_currentHdr.SetDuration (duration); } - m_currentHdr.SetDuration (duration); + else + { + if (m_currentHdr.IsCfEnd ()) + { + m_currentHdr.SetRawDuration (0); + } + else + { + m_currentHdr.SetRawDuration (32768); + } + } + Ptr packet = m_currentPacket->Copy (); if (m_ampdu) { @@ -1557,6 +1733,45 @@ MacLow::SendDataPacket (void) } else { + if (m_cfAckInfo.appendCfAck) + { + switch (m_currentHdr.GetType ()) + { + case WIFI_MAC_DATA: + m_currentHdr.SetType (WIFI_MAC_DATA_CFACK, false); + break; + case WIFI_MAC_DATA_CFPOLL: + m_currentHdr.SetType (WIFI_MAC_DATA_CFACK_CFPOLL, false); + break; + case WIFI_MAC_DATA_NULL: + m_currentHdr.SetType (WIFI_MAC_DATA_NULL_CFACK, false); + break; + case WIFI_MAC_DATA_NULL_CFPOLL: + m_currentHdr.SetType (WIFI_MAC_DATA_NULL_CFACK_CFPOLL, false); + break; + case WIFI_MAC_CTL_END: + m_currentHdr.SetType (WIFI_MAC_CTL_END_ACK, false); + break; + default: + NS_ASSERT (false); + break; + } + NS_ASSERT (m_cfAckInfo.address != Mac48Address ()); + //Standard says that, for frames of type Data+CF-ACK, Data+CF-Poll+CF-ACK, and CF-Poll+CF-ACK, + //the rate chosen to transmit the frame must be supported by both the addressed recipient STA and the STA to which the ACK is intended. + //This ideally requires the rate manager to handle this case, but this requires to update all rate manager classes. + //Instead, we simply fetch two TxVector and we select the one with the lowest datarate. + //This should be later changed, at the latest once HCCA is implemented for HT/VHT stations. + WifiMacHeader tmpHdr = m_currentHdr; + tmpHdr.SetAddr1 (m_cfAckInfo.address); + WifiTxVector tmpTxVector = GetDataTxVector (packet, &tmpHdr); + if (tmpTxVector.GetMode ().GetDataRate (tmpTxVector) < m_currentTxVector.GetMode ().GetDataRate (m_currentTxVector)) + { + m_currentTxVector = tmpTxVector; + } + m_cfAckInfo.appendCfAck = false; + m_cfAckInfo.address = Mac48Address (); + } packet->AddHeader (m_currentHdr); AddWifiMacTrailer (packet); } @@ -1687,7 +1902,7 @@ MacLow::SendDataAfterCts (Time duration) for (std::vector::size_type i = 0; i != m_txPackets[tid].size (); i++) { AcIndex ac = QosUtilsMapTidToAc (tid); - std::map >::const_iterator edcaIt = m_edca.find (ac); + std::map >::const_iterator edcaIt = m_edca.find (ac); edcaIt->second->CompleteMpduTx (m_txPackets[tid].at (i).packet, m_txPackets[tid].at (i).hdr, m_txPackets[tid].at (i).timestamp); } } @@ -1760,23 +1975,33 @@ void MacLow::WaitIfsAfterEndTxFragment (void) { NS_LOG_FUNCTION (this); - m_currentDca->StartNextFragment (); + m_currentTxop->StartNextFragment (); } void MacLow::WaitIfsAfterEndTxPacket (void) { NS_LOG_FUNCTION (this); - m_currentDca->StartNextPacket (); + m_currentTxop->StartNextPacket (); } void MacLow::EndTxNoAck (void) { NS_LOG_FUNCTION (this); - Ptr dca = m_currentDca; - m_currentDca = 0; - dca->EndTxNoAck (); + if (m_currentHdr.IsBeacon () && m_stationManager->HasPcfSupported ()) + { + m_cfpStart = Simulator::Now (); + } + if (!m_cfAckInfo.expectCfAck) + { + Ptr txop = m_currentTxop; + txop->EndTxNoAck (); + } + if (!IsCfPeriod ()) + { + m_currentTxop = 0; + } } void @@ -1921,7 +2146,7 @@ MacLow::CreateBlockAckAgreement (const MgtAddBaResponseHeader *respHdr, Mac48Add AcIndex ac = QosUtilsMapTidToAc (agreement.GetTid ()); it->second.first.m_inactivityEvent = Simulator::Schedule (timeout, - &EdcaTxopN::SendDelbaFrame, + &QosTxop::SendDelbaFrame, m_edca[ac], originator, tid, false); } } @@ -2199,14 +2424,14 @@ MacLow::ResetBlockAckInactivityTimerIfNeeded (BlockAckAgreement &agreement) Time timeout = MicroSeconds (1024 * agreement.GetTimeout ()); AcIndex ac = QosUtilsMapTidToAc (agreement.GetTid ()); agreement.m_inactivityEvent = Simulator::Schedule (timeout, - &EdcaTxopN::SendDelbaFrame, + &QosTxop::SendDelbaFrame, m_edca[ac], agreement.GetPeer (), agreement.GetTid (), false); } } void -MacLow::RegisterEdcaForAc (AcIndex ac, Ptr edca) +MacLow::RegisterEdcaForAc (AcIndex ac, Ptr edca) { m_edca.insert (std::make_pair (ac, edca)); } @@ -2312,7 +2537,7 @@ MacLow::StopMpduAggregation (Ptr peekedPacket, WifiMacHeader peeke Time aPPDUMaxTime = MicroSeconds (5484); uint8_t tid = GetTid (peekedPacket, peekedHdr); AcIndex ac = QosUtilsMapTidToAc (tid); - std::map >::const_iterator edcaIt = m_edca.find (ac); + std::map >::const_iterator edcaIt = m_edca.find (ac); if (m_phy->GetGreenfield ()) { @@ -2363,7 +2588,7 @@ MacLow::AggregateToAmpdu (Ptr packet, const WifiMacHeader hdr) Ptr queue; Ptr aggPacket; AcIndex ac = QosUtilsMapTidToAc (tid); - std::map >::const_iterator edcaIt = m_edca.find (ac); + std::map >::const_iterator edcaIt = m_edca.find (ac); NS_ASSERT (edcaIt != m_edca.end ()); queue = edcaIt->second->GetWifiMacQueue (); @@ -2678,7 +2903,7 @@ MacLow::PerformMsduAggregation (Ptr packet, WifiMacHeader *hdr, Ti Ptr queue; AcIndex ac = QosUtilsMapTidToAc (GetTid (packet, *hdr)); - std::map >::const_iterator edcaIt = m_edca.find (ac); + std::map >::const_iterator edcaIt = m_edca.find (ac); NS_ASSERT (edcaIt != m_edca.end ()); queue = edcaIt->second->GetWifiMacQueue (); @@ -2732,4 +2957,35 @@ MacLow::PerformMsduAggregation (Ptr packet, WifiMacHeader *hdr, Ti } } +Time +MacLow::GetRemainingCfpDuration (void) const +{ + NS_LOG_FUNCTION (this); + Time remainingCfpDuration = std::min (m_cfpStart, m_cfpStart + m_cfpMaxDuration - Simulator::Now () - m_cfpForeshortening); + NS_ASSERT (remainingCfpDuration.IsPositive ()); + return remainingCfpDuration; +} + +bool +MacLow::IsCfPeriod (void) const +{ + return (m_stationManager->HasPcfSupported () && m_cfpStart.IsStrictlyPositive ()); +} + +bool +MacLow::CanTransmitNextCfFrame (void) const +{ + NS_LOG_FUNCTION (this); + if (!IsCfPeriod ()) + { + return false; + } + NS_ASSERT (GetRemainingCfpDuration ().IsPositive ()); + WifiMacHeader hdr; + WifiMacTrailer fcs; + uint32_t maxMacFrameSize = MAX_MSDU_SIZE + hdr.GetSerializedSize () + fcs.GetSerializedSize (); + Time nextTransmission = 2 * m_phy->CalculateTxDuration (maxMacFrameSize, m_currentTxVector, m_phy->GetFrequency ()) + 3 * GetSifs () + m_phy->CalculateTxDuration (GetCfEndSize (), m_currentTxVector, m_phy->GetFrequency ()); + return ((GetRemainingCfpDuration () - nextTransmission).IsPositive ()); +} + } //namespace ns3 diff --git a/src/wifi/model/mac-low.h b/src/wifi/model/mac-low.h index eb5045ac6..e0f3922b5 100644 --- a/src/wifi/model/mac-low.h +++ b/src/wifi/model/mac-low.h @@ -23,9 +23,10 @@ #ifndef MAC_LOW_H #define MAC_LOW_H +#include #include "ns3/object.h" #include "ns3/nstime.h" -#include "dcf-manager.h" +#include "channel-access-manager.h" #include "block-ack-cache.h" #include "mac-low-transmission-parameters.h" #include "qos-utils.h" @@ -40,8 +41,8 @@ class AmpduAggregationTest; namespace ns3 { class WifiPhy; -class DcaTxop; -class EdcaTxopN; +class Txop; +class QosTxop; class WifiMacQueueItem; class WifiMacQueue; class BlockAckAgreement; @@ -155,6 +156,14 @@ public: * \param pifs PIFS of this MacLow */ void SetPifs (Time pifs); + /** + * \param interval the expected interval between two beacon transmissions. + */ + void SetBeaconInterval (Time interval); + /** + * \param duration the maximum duration for the CF period. + */ + void SetCfpMaxDuration (Time duration); /** * Set the Basic Service Set Identification. * @@ -225,6 +234,18 @@ public: * \return RIFS */ Time GetRifs (void) const; + /** + * \return the expected interval between two beacon transmissions. + */ + Time GetBeaconInterval (void) const; + /** + * \return the maximum duration for the CF period. + */ + Time GetCfpMaxDuration (void) const; + /** + * \return the remaining duration for the CF period. + */ + Time GetRemainingCfpDuration (void) const; /** * Return the Basic Service Set Identification. * @@ -249,7 +270,7 @@ public: /** * \param dcf listen to NAV events for every incoming and outgoing packet. */ - void RegisterDcf (Ptr dcf); + void RegisterDcf (Ptr dcf); /** * \param packet to send (does not include the 802.11 MAC header and checksum) @@ -283,7 +304,7 @@ public: * \param packet packet to send * \param hdr 802.11 header for packet to send * \param parameters the transmission parameters to use for this packet. - * \param dca pointer to the calling DcaTxop. + * \param txop pointer to the calling Txop. * * Start the transmission of the input packet and notify the listener * of transmission events. @@ -291,7 +312,7 @@ public: virtual void StartTransmission (Ptr packet, const WifiMacHeader* hdr, MacLowTransmissionParameters parameters, - Ptr dca); + Ptr txop); /** * \param packet packet received @@ -360,12 +381,12 @@ public: void DestroyBlockAckAgreement (Mac48Address originator, uint8_t tid); /** * \param ac Access class managed by the queue. - * \param edca the EdcaTxopN for the queue. + * \param edca the QosTxop for the queue. * - * The lifetime of the registered EdcaTxopN is typically equal to the lifetime of the queue + * The lifetime of the registered QosTxop is typically equal to the lifetime of the queue * associated to this AC. */ - void RegisterEdcaForAc (AcIndex ac, Ptr edca); + void RegisterEdcaForAc (AcIndex ac, Ptr edca); /** * \param packet the packet to be aggregated. If the aggregation is succesfull, it corresponds either to the first data packet that will be aggregated or to the BAR that will be piggybacked at the end of the A-MPDU. * \param hdr the WifiMacHeader for the packet. @@ -413,6 +434,21 @@ public: * \return TXVECTOR for the given packet */ virtual WifiTxVector GetDataTxVector (Ptr packet, const WifiMacHeader *hdr) const; + /** + * Start NAV with the given duration. + * + * \param duration the duration + * \return true if NAV is resetted + */ + bool DoNavStartNow (Time duration); + /** + * This function indicates whether it is the CF period. + */ + virtual bool IsCfPeriod (void) const; + /** + * This function decides if a CF frame can be transmitted in the current CFP. + */ + bool CanTransmitNextCfFrame (void) const; private: @@ -421,6 +457,12 @@ private: * or switching channel. */ void CancelAllEvents (void); + /** + * Return the total CF-END size (including FCS trailer). + * + * \return the total CF-END size + */ + uint32_t GetCfEndSize (void) const; /** * Forward the packet down to WifiPhy for transmission. This is called for the entire A-MPDu when MPDU aggregation is used. * @@ -571,13 +613,6 @@ private: * \param duration */ void DoNavResetNow (Time duration); - /** - * Start NAV with the given duration. - * - * \param duration the duration - * \return true if NAV is resetted - */ - bool DoNavStartNow (Time duration); /** * Check if NAV is zero. * @@ -586,23 +621,23 @@ private: */ bool IsNavZero (void) const; /** - * Notify DcfManager that ACK timer should be started for the given duration. + * Notify ChannelAccessManager that ACK timer should be started for the given duration. * * \param duration the duration */ void NotifyAckTimeoutStartNow (Time duration); /** - * Notify DcfManager that ACK timer should be resetted. + * Notify ChannelAccessManager that ACK timer should be resetted. */ void NotifyAckTimeoutResetNow (); /** - * Notify DcfManagerthat CTS timer should be started for the given duration. + * Notify ChannelAccessManager that CTS timer should be started for the given duration. * * \param duration */ void NotifyCtsTimeoutStartNow (Time duration); /** - * Notify DcfManager that CTS timer should be resetted. + * Notify ChannelAccessManager that CTS timer should be resetted. */ void NotifyCtsTimeoutResetNow (); /** @@ -625,6 +660,10 @@ private: * Event handler when CTS timeout occurs. */ void CtsTimeout (void); + /** + * Event handler when CF-POLL timeout occurs. + */ + void CfPollTimeout (void); /** * Send CTS for a CTS-to-self mechanism. */ @@ -835,14 +874,24 @@ private: }; //!< item structure /** - * typedef for an iterator for a list of DcfManager. + * A struct that holds information about ACK piggybacking (CF-ACK). */ - typedef std::vector >::const_iterator DcfManagersCI; + struct CfAckInfo + { + bool appendCfAck; //!< Flag used for PCF to indicate whether a CF-ACK should be appended + bool expectCfAck; //!< Flag used for PCF to indicate whether a CF-ACK should be expected + Mac48Address address; //!< Address of the station to be acknowledged + }; + /** - * typedef for a list of DcfManager. + * typedef for an iterator for a list of ChannelAccessManager. */ - typedef std::vector > DcfManagers; - DcfManagers m_dcfManagers; //!< List of DcfManager + typedef std::vector >::const_iterator ChannelAccessManagersCI; + /** + * typedef for a list of ChannelAccessManager. + */ + typedef std::vector > ChannelAccessManagers; + ChannelAccessManagers m_channelAccessManagers; //!< List of ChannelAccessManager EventId m_normalAckTimeoutEvent; //!< Normal ACK timeout event EventId m_blockAckTimeoutEvent; //!< Block ACK timeout event @@ -856,7 +905,7 @@ private: Ptr m_currentPacket; //!< Current packet transmitted/to be transmitted WifiMacHeader m_currentHdr; //!< Header of the current transmitted packet - Ptr m_currentDca; //!< Current DCA + Ptr m_currentTxop; //!< Current TXOP WifiMacHeader m_lastReceivedHdr; //!< Header of the last received packet MacLowTransmissionParameters m_txParams; //!< Transmission parameters of the current packet Mac48Address m_self; //!< Address of this MacLow (Mac48Address) @@ -870,9 +919,16 @@ private: Time m_pifs; //!< PCF Interframe Space (PIFS) duration Time m_rifs; //!< Reduced Interframe Space (RIFS) duration + Time m_beaconInterval; //!< Expected interval between two beacon transmissions + Time m_cfpMaxDuration; //!< CFP max duration + Time m_lastNavStart; //!< The time when the latest NAV started Time m_lastNavDuration; //!< The duration of the latest NAV + Time m_cfpStart; //!< The time when the latest CF period started + Time m_lastBeacon; //!< The time when the last beacon frame transmission started + Time m_cfpForeshortening; //!< The delay the current CF period should be foreshortened + bool m_promisc; //!< Flag if the device is operating in promiscuous mode bool m_ampdu; //!< Flag if the current transmission involves an A-MPDU @@ -896,13 +952,15 @@ private: Agreements m_bAckAgreements; //!< block ack agreements BlockAckCaches m_bAckCaches; //!< block ack caches - typedef std::map > QueueEdcas; //!< EDCA queues typedef + typedef std::map > QueueEdcas; //!< EDCA queues typedef QueueEdcas m_edca; //!< EDCA queues bool m_ctsToSelfSupported; //!< Flag whether CTS-to-self is supported Ptr m_aggregateQueue[8]; //!< Queues per TID used for MPDU aggregation std::vector m_txPackets[8]; //!< Contain temporary items to be sent with the next A-MPDU transmission for a given TID, once RTS/CTS exchange has succeeded. WifiTxVector m_currentTxVector; //!< TXVECTOR used for the current packet transmission + + CfAckInfo m_cfAckInfo; //!< Info about piggyback ACKs used in PCF }; } //namespace ns3 diff --git a/src/wifi/model/mac-rx-middle.cc b/src/wifi/model/mac-rx-middle.cc index fe09f7c5b..a32b716cb 100644 --- a/src/wifi/model/mac-rx-middle.cc +++ b/src/wifi/model/mac-rx-middle.cc @@ -300,6 +300,10 @@ MacRxMiddle::Receive (Ptr packet, const WifiMacHeader *hdr) { NS_LOG_FUNCTION (packet << hdr); NS_ASSERT (hdr->IsData () || hdr->IsMgt ()); + if (!m_pcfCallback.IsNull ()) + { + m_pcfCallback (); + } OriginatorRxStatus *originator = Lookup (hdr); /** * The check below is really uneeded because it can fail in a lot of @@ -338,4 +342,10 @@ MacRxMiddle::Receive (Ptr packet, const WifiMacHeader *hdr) m_callback (agregate, hdr); } +void +MacRxMiddle::SetPcfCallback (Callback callback) +{ + m_pcfCallback = callback; +} + } //namespace ns3 diff --git a/src/wifi/model/mac-rx-middle.h b/src/wifi/model/mac-rx-middle.h index 0d8ec68c2..e9db130aa 100644 --- a/src/wifi/model/mac-rx-middle.h +++ b/src/wifi/model/mac-rx-middle.h @@ -55,6 +55,13 @@ public: */ void SetForwardCallback (ForwardUpCallback callback); + /** + * Set a callback to trigger the next PCF frame. + * + * \param callback + */ + void SetPcfCallback (Callback callback); + /** * Receive a packet. * @@ -126,6 +133,8 @@ private: Originators m_originatorStatus; ///< originator status QosOriginators m_qosOriginatorStatus; ///< QOS originator status ForwardUpCallback m_callback; ///< forward up callback + + Callback m_pcfCallback; //!< PCF callback }; } //namespace ns3 diff --git a/src/wifi/model/mgt-headers.cc b/src/wifi/model/mgt-headers.cc index 7387780a5..7f2b8129f 100644 --- a/src/wifi/model/mgt-headers.cc +++ b/src/wifi/model/mgt-headers.cc @@ -318,6 +318,18 @@ MgtProbeResponseHeader::GetHeOperation (void) const return m_heOperation; } +void +MgtProbeResponseHeader::SetCfParameterSet (CfParameterSet cfparameterset) +{ + m_cfParameterSet = cfparameterset; +} + +CfParameterSet +MgtProbeResponseHeader::GetCfParameterSet (void) const +{ + return m_cfParameterSet; +} + void MgtProbeResponseHeader::SetSsid (Ssid ssid) { @@ -398,6 +410,7 @@ MgtProbeResponseHeader::GetSerializedSize (void) const size += m_capability.GetSerializedSize (); size += m_ssid.GetSerializedSize (); size += m_rates.GetSerializedSize (); + size += m_cfParameterSet.GetSerializedSize (); size += m_dsssParameterSet.GetSerializedSize (); size += m_erpInformation.GetSerializedSize (); size += m_rates.extended.GetSerializedSize (); @@ -445,6 +458,7 @@ MgtProbeResponseHeader::Serialize (Buffer::Iterator start) const i = m_capability.Serialize (i); i = m_ssid.Serialize (i); i = m_rates.Serialize (i); + i = m_cfParameterSet.Serialize (i); i = m_dsssParameterSet.Serialize (i); i = m_erpInformation.Serialize (i); i = m_rates.extended.Serialize (i); @@ -468,6 +482,7 @@ MgtProbeResponseHeader::Deserialize (Buffer::Iterator start) i = m_capability.Deserialize (i); i = m_ssid.Deserialize (i); i = m_rates.Deserialize (i); + i = m_cfParameterSet.DeserializeIfPresent (i); i = m_dsssParameterSet.DeserializeIfPresent (i); i = m_erpInformation.DeserializeIfPresent (i); i = m_rates.extended.DeserializeIfPresent (i); diff --git a/src/wifi/model/mgt-headers.h b/src/wifi/model/mgt-headers.h index 0a5032fbf..893ed8ca3 100644 --- a/src/wifi/model/mgt-headers.h +++ b/src/wifi/model/mgt-headers.h @@ -38,6 +38,7 @@ #include "edca-parameter-set.h" #include "he-capabilities.h" #include "he-operation.h" +#include "cf-parameter-set.h" namespace ns3 { @@ -698,6 +699,12 @@ public: * \return the EDCA Parameter Set */ EdcaParameterSet GetEdcaParameterSet (void) const; + /** + * Return the CF parameter set. + * + * \return CF parameter set + */ + CfParameterSet GetCfParameterSet (void) const; /** * Set the Capability information. * @@ -782,6 +789,12 @@ public: * \param edcaParameterSet the EDCA Parameter Set */ void SetEdcaParameterSet (EdcaParameterSet edcaParameterSet); + /** + * Set the CF parameter set. + * + * \param cfparameterset CF parameter set + */ + void SetCfParameterSet (CfParameterSet cfparameterset); /** * Return the time stamp. * @@ -817,6 +830,7 @@ private: HeOperation m_heOperation; //!< HE operation ErpInformation m_erpInformation; //!< ERP information EdcaParameterSet m_edcaParameterSet; //!< EDCA Parameter Set + CfParameterSet m_cfParameterSet; //!< CF parameter set }; diff --git a/src/wifi/model/edca-txop-n.cc b/src/wifi/model/qos-txop.cc similarity index 91% rename from src/wifi/model/edca-txop-n.cc rename to src/wifi/model/qos-txop.cc index eda634d0c..9c233c8d6 100644 --- a/src/wifi/model/edca-txop-n.cc +++ b/src/wifi/model/qos-txop.cc @@ -23,8 +23,8 @@ #include "ns3/log.h" #include "ns3/simulator.h" #include "ns3/random-variable-stream.h" -#include "edca-txop-n.h" -#include "dcf-manager.h" +#include "qos-txop.h" +#include "channel-access-manager.h" #include "mac-tx-middle.h" #include "mgt-headers.h" #include "wifi-mac-trailer.h" @@ -41,34 +41,34 @@ namespace ns3 { -NS_LOG_COMPONENT_DEFINE ("EdcaTxopN"); +NS_LOG_COMPONENT_DEFINE ("QosTxop"); -NS_OBJECT_ENSURE_REGISTERED (EdcaTxopN); +NS_OBJECT_ENSURE_REGISTERED (QosTxop); TypeId -EdcaTxopN::GetTypeId (void) +QosTxop::GetTypeId (void) { - static TypeId tid = TypeId ("ns3::EdcaTxopN") - .SetParent () + static TypeId tid = TypeId ("ns3::QosTxop") + .SetParent () .SetGroupName ("Wifi") - .AddConstructor () + .AddConstructor () .AddTraceSource ("BackoffTrace", "Trace source for backoff values", - MakeTraceSourceAccessor (&EdcaTxopN::m_backoffTrace), + MakeTraceSourceAccessor (&QosTxop::m_backoffTrace), "ns3::TracedValueCallback::Uint32") .AddTraceSource ("CwTrace", "Trace source for contention window values", - MakeTraceSourceAccessor (&EdcaTxopN::m_cwTrace), + MakeTraceSourceAccessor (&QosTxop::m_cwTrace), "ns3::TracedValueCallback::Uint32") .AddTraceSource ("TxopTrace", "Trace source for txop start and duration times", - MakeTraceSourceAccessor (&EdcaTxopN::m_txopTrace), + MakeTraceSourceAccessor (&QosTxop::m_txopTrace), "ns3::TracedValueCallback::Time") ; return tid; } -EdcaTxopN::EdcaTxopN () +QosTxop::QosTxop () : m_msduAggregator (0), m_mpduAggregator (0), m_typeOfStation (STA), @@ -85,83 +85,85 @@ EdcaTxopN::EdcaTxopN () m_baManager->SetBlockDestinationCallback (MakeCallback (&QosBlockedDestinations::Block, m_qosBlockedDestinations)); m_baManager->SetUnblockDestinationCallback (MakeCallback (&QosBlockedDestinations::Unblock, m_qosBlockedDestinations)); m_baManager->SetMaxPacketDelay (m_queue->GetMaxDelay ()); - m_baManager->SetTxOkCallback (MakeCallback (&EdcaTxopN::BaTxOk, this)); - m_baManager->SetTxFailedCallback (MakeCallback (&EdcaTxopN::BaTxFailed, this)); + m_baManager->SetTxOkCallback (MakeCallback (&QosTxop::BaTxOk, this)); + m_baManager->SetTxFailedCallback (MakeCallback (&QosTxop::BaTxFailed, this)); } -EdcaTxopN::~EdcaTxopN () +QosTxop::~QosTxop () { NS_LOG_FUNCTION (this); } void -EdcaTxopN::DoDispose (void) +QosTxop::DoDispose (void) { NS_LOG_FUNCTION (this); m_baManager = 0; m_qosBlockedDestinations = 0; m_msduAggregator = 0; m_mpduAggregator = 0; - DcaTxop::DoDispose (); + Txop::DoDispose (); } bool -EdcaTxopN::GetBaAgreementExists (Mac48Address address, uint8_t tid) const +QosTxop::GetBaAgreementExists (Mac48Address address, uint8_t tid) const { return m_baManager->ExistsAgreement (address, tid); } void -EdcaTxopN::CompleteAmpduTransfer (Mac48Address recipient, uint8_t tid) +QosTxop::CompleteAmpduTransfer (Mac48Address recipient, uint8_t tid) { m_baManager->CompleteAmpduExchange (recipient, tid); } void -EdcaTxopN::SetWifiRemoteStationManager (const Ptr remoteManager) +QosTxop::SetWifiRemoteStationManager (const Ptr remoteManager) { - DcaTxop::SetWifiRemoteStationManager (remoteManager); + Txop::SetWifiRemoteStationManager (remoteManager); NS_LOG_FUNCTION (this << remoteManager); m_baManager->SetWifiRemoteStationManager (m_stationManager); } void -EdcaTxopN::SetTypeOfStation (TypeOfStation type) +QosTxop::SetTypeOfStation (TypeOfStation type) { NS_LOG_FUNCTION (this << +type); m_typeOfStation = type; } TypeOfStation -EdcaTxopN::GetTypeOfStation (void) const +QosTxop::GetTypeOfStation (void) const { return m_typeOfStation; } -uint16_t EdcaTxopN::GetNextSequenceNumberFor (WifiMacHeader *hdr) +uint16_t +QosTxop::GetNextSequenceNumberFor (WifiMacHeader *hdr) { return m_txMiddle->GetNextSequenceNumberFor (hdr); } -uint16_t EdcaTxopN::PeekNextSequenceNumberFor (WifiMacHeader *hdr) +uint16_t +QosTxop::PeekNextSequenceNumberFor (WifiMacHeader *hdr) { return m_txMiddle->PeekNextSequenceNumberFor (hdr); } Ptr -EdcaTxopN::PeekNextRetransmitPacket (WifiMacHeader &header, uint8_t tid, Time *timestamp) +QosTxop::PeekNextRetransmitPacket (WifiMacHeader &header, uint8_t tid, Time *timestamp) { return m_baManager->PeekNextPacketByTidAndAddress (header, tid, timestamp); } void -EdcaTxopN::RemoveRetransmitPacket (uint8_t tid, Mac48Address recipient, uint16_t seqnumber) +QosTxop::RemoveRetransmitPacket (uint8_t tid, Mac48Address recipient, uint16_t seqnumber) { m_baManager->RemovePacket (tid, recipient, seqnumber); } void -EdcaTxopN::NotifyAccessGranted (void) +QosTxop::NotifyAccessGranted (void) { NS_LOG_FUNCTION (this); NS_ASSERT (m_accessRequested); @@ -324,7 +326,7 @@ EdcaTxopN::NotifyAccessGranted (void) } } -void EdcaTxopN::NotifyInternalCollision (void) +void QosTxop::NotifyInternalCollision (void) { NS_LOG_FUNCTION (this); bool resetDcf = false; @@ -414,7 +416,7 @@ void EdcaTxopN::NotifyInternalCollision (void) } void -EdcaTxopN::NotifyCollision (void) +QosTxop::NotifyCollision (void) { NS_LOG_FUNCTION (this); m_backoffTrace = m_rng->GetInteger (0, GetCw ()); @@ -423,7 +425,7 @@ EdcaTxopN::NotifyCollision (void) } void -EdcaTxopN::MissedCts (void) +QosTxop::MissedCts (void) { NS_LOG_FUNCTION (this); NS_LOG_DEBUG ("missed cts"); @@ -486,7 +488,7 @@ EdcaTxopN::MissedCts (void) } void -EdcaTxopN::GotAck (void) +QosTxop::GotAck (void) { NS_LOG_FUNCTION (this); if (!m_currentIsFragmented @@ -552,7 +554,7 @@ EdcaTxopN::GotAck (void) } void -EdcaTxopN::MissedAck (void) +QosTxop::MissedAck (void) { NS_LOG_FUNCTION (this); NS_LOG_DEBUG ("missed ack"); @@ -617,7 +619,7 @@ EdcaTxopN::MissedAck (void) } void -EdcaTxopN::MissedBlockAck (uint8_t nMpdus) +QosTxop::MissedBlockAck (uint8_t nMpdus) { NS_LOG_FUNCTION (this << +nMpdus); uint8_t tid = GetTid (m_currentPacket, m_currentHdr); @@ -691,19 +693,19 @@ EdcaTxopN::MissedBlockAck (uint8_t nMpdus) } Ptr -EdcaTxopN::GetMsduAggregator (void) const +QosTxop::GetMsduAggregator (void) const { return m_msduAggregator; } Ptr -EdcaTxopN::GetMpduAggregator (void) const +QosTxop::GetMpduAggregator (void) const { return m_mpduAggregator; } void -EdcaTxopN::RestartAccessIfNeeded (void) +QosTxop::RestartAccessIfNeeded (void) { NS_LOG_FUNCTION (this); if ((m_currentPacket != 0 @@ -739,12 +741,12 @@ EdcaTxopN::RestartAccessIfNeeded (void) { m_isAccessRequestedForRts = false; } - m_dcfManager->RequestAccess (this); + m_channelAccessManager->RequestAccess (this); } } void -EdcaTxopN::StartAccessIfNeeded (void) +QosTxop::StartAccessIfNeeded (void) { //NS_LOG_FUNCTION (this); if (m_currentPacket == 0 @@ -775,12 +777,12 @@ EdcaTxopN::StartAccessIfNeeded (void) { m_isAccessRequestedForRts = false; } - m_dcfManager->RequestAccess (this); + m_channelAccessManager->RequestAccess (this); } } bool -EdcaTxopN::NeedBarRetransmission (void) +QosTxop::NeedBarRetransmission (void) { uint8_t tid = 0; uint16_t seqNumber = 0; @@ -807,7 +809,7 @@ EdcaTxopN::NeedBarRetransmission (void) } void -EdcaTxopN::StartNextPacket (void) +QosTxop::StartNextPacket (void) { NS_LOG_FUNCTION (this); Time txopLimit = GetTxopLimit (); @@ -879,7 +881,7 @@ EdcaTxopN::StartNextPacket (void) } Time -EdcaTxopN::GetTxopRemaining (void) const +QosTxop::GetTxopRemaining (void) const { Time remainingTxop = GetTxopLimit (); remainingTxop -= (Simulator::Now () - m_startTxop); @@ -892,7 +894,7 @@ EdcaTxopN::GetTxopRemaining (void) const } bool -EdcaTxopN::HasTxop (void) const +QosTxop::HasTxop (void) const { NS_LOG_FUNCTION (this); WifiMacHeader hdr; @@ -931,7 +933,7 @@ EdcaTxopN::HasTxop (void) const } void -EdcaTxopN::EndTxNoAck (void) +QosTxop::EndTxNoAck (void) { NS_LOG_FUNCTION (this); NS_LOG_DEBUG ("a transmission that did not require an ACK just finished"); @@ -948,7 +950,7 @@ EdcaTxopN::EndTxNoAck (void) } bool -EdcaTxopN::NeedFragmentation (void) const +QosTxop::NeedFragmentation (void) const { NS_LOG_FUNCTION (this); if (m_stationManager->HasVhtSupported () @@ -972,7 +974,7 @@ EdcaTxopN::NeedFragmentation (void) const } bool -EdcaTxopN::IsTxopFragmentation () const +QosTxop::IsTxopFragmentation () const { if (GetTxopLimit ().IsZero ()) { @@ -987,7 +989,7 @@ EdcaTxopN::IsTxopFragmentation () const } uint32_t -EdcaTxopN::GetTxopFragmentSize () const +QosTxop::GetTxopFragmentSize () const { Time txopDuration = GetTxopLimit (); if (txopDuration.IsZero ()) @@ -1020,7 +1022,7 @@ EdcaTxopN::GetTxopFragmentSize () const } uint32_t -EdcaTxopN::GetNTxopFragment () const +QosTxop::GetNTxopFragment () const { uint32_t fragmentSize = GetTxopFragmentSize (); uint32_t nFragments = (m_currentPacket->GetSize () / fragmentSize); @@ -1033,7 +1035,7 @@ EdcaTxopN::GetNTxopFragment () const } uint32_t -EdcaTxopN::GetTxopFragmentOffset (uint32_t fragmentNumber) const +QosTxop::GetTxopFragmentOffset (uint32_t fragmentNumber) const { if (fragmentNumber == 0) { @@ -1059,7 +1061,7 @@ EdcaTxopN::GetTxopFragmentOffset (uint32_t fragmentNumber) const } uint32_t -EdcaTxopN::GetNextTxopFragmentSize (uint32_t fragmentNumber) const +QosTxop::GetNextTxopFragmentSize (uint32_t fragmentNumber) const { NS_LOG_FUNCTION (this << fragmentNumber); uint32_t fragmentSize = GetTxopFragmentSize (); @@ -1078,7 +1080,7 @@ EdcaTxopN::GetNextTxopFragmentSize (uint32_t fragmentNumber) const } uint32_t -EdcaTxopN::GetFragmentSize (void) const +QosTxop::GetFragmentSize (void) const { uint32_t size; if (IsTxopFragmentation ()) @@ -1093,7 +1095,7 @@ EdcaTxopN::GetFragmentSize (void) const } uint32_t -EdcaTxopN::GetNextFragmentSize (void) const +QosTxop::GetNextFragmentSize (void) const { uint32_t size; if (IsTxopFragmentation ()) @@ -1108,7 +1110,7 @@ EdcaTxopN::GetNextFragmentSize (void) const } uint32_t -EdcaTxopN::GetFragmentOffset (void) const +QosTxop::GetFragmentOffset (void) const { uint32_t offset; if (IsTxopFragmentation ()) @@ -1124,7 +1126,7 @@ EdcaTxopN::GetFragmentOffset (void) const } bool -EdcaTxopN::IsLastFragment (void) const +QosTxop::IsLastFragment (void) const { bool isLastFragment; if (IsTxopFragmentation ()) @@ -1140,7 +1142,7 @@ EdcaTxopN::IsLastFragment (void) const } Ptr -EdcaTxopN::GetFragmentPacket (WifiMacHeader *hdr) +QosTxop::GetFragmentPacket (WifiMacHeader *hdr) { NS_LOG_FUNCTION (this << hdr); *hdr = m_currentHdr; @@ -1161,14 +1163,14 @@ EdcaTxopN::GetFragmentPacket (WifiMacHeader *hdr) } void -EdcaTxopN::SetAccessCategory (AcIndex ac) +QosTxop::SetAccessCategory (AcIndex ac) { NS_LOG_FUNCTION (this << +ac); m_ac = ac; } Mac48Address -EdcaTxopN::MapSrcAddressForAggregation (const WifiMacHeader &hdr) +QosTxop::MapSrcAddressForAggregation (const WifiMacHeader &hdr) { NS_LOG_FUNCTION (this << &hdr); Mac48Address retval; @@ -1184,7 +1186,7 @@ EdcaTxopN::MapSrcAddressForAggregation (const WifiMacHeader &hdr) } Mac48Address -EdcaTxopN::MapDestAddressForAggregation (const WifiMacHeader &hdr) +QosTxop::MapDestAddressForAggregation (const WifiMacHeader &hdr) { NS_LOG_FUNCTION (this << &hdr); Mac48Address retval; @@ -1200,21 +1202,21 @@ EdcaTxopN::MapDestAddressForAggregation (const WifiMacHeader &hdr) } void -EdcaTxopN::SetMsduAggregator (const Ptr aggr) +QosTxop::SetMsduAggregator (const Ptr aggr) { NS_LOG_FUNCTION (this << aggr); m_msduAggregator = aggr; } void -EdcaTxopN::SetMpduAggregator (const Ptr aggr) +QosTxop::SetMpduAggregator (const Ptr aggr) { NS_LOG_FUNCTION (this << aggr); m_mpduAggregator = aggr; } void -EdcaTxopN::PushFront (Ptr packet, const WifiMacHeader &hdr) +QosTxop::PushFront (Ptr packet, const WifiMacHeader &hdr) { NS_LOG_FUNCTION (this << packet << &hdr); WifiMacTrailer fcs; @@ -1224,7 +1226,7 @@ EdcaTxopN::PushFront (Ptr packet, const WifiMacHeader &hdr) } void -EdcaTxopN::GotAddBaResponse (const MgtAddBaResponseHeader *respHdr, Mac48Address recipient) +QosTxop::GotAddBaResponse (const MgtAddBaResponseHeader *respHdr, Mac48Address recipient) { NS_LOG_FUNCTION (this << respHdr << recipient); NS_LOG_DEBUG ("received ADDBA response from " << recipient); @@ -1246,7 +1248,7 @@ EdcaTxopN::GotAddBaResponse (const MgtAddBaResponseHeader *respHdr, Mac48Address } void -EdcaTxopN::GotDelBaFrame (const MgtDelBaHeader *delBaHdr, Mac48Address recipient) +QosTxop::GotDelBaFrame (const MgtDelBaHeader *delBaHdr, Mac48Address recipient) { NS_LOG_FUNCTION (this << delBaHdr << recipient); NS_LOG_DEBUG ("received DELBA frame from=" << recipient); @@ -1254,7 +1256,7 @@ EdcaTxopN::GotDelBaFrame (const MgtDelBaHeader *delBaHdr, Mac48Address recipient } void -EdcaTxopN::GotBlockAck (const CtrlBAckResponseHeader *blockAck, Mac48Address recipient, double rxSnr, WifiMode txMode, double dataSnr) +QosTxop::GotBlockAck (const CtrlBAckResponseHeader *blockAck, Mac48Address recipient, double rxSnr, WifiMode txMode, double dataSnr) { NS_LOG_FUNCTION (this << blockAck << recipient << rxSnr << txMode.GetUniqueName () << dataSnr); NS_LOG_DEBUG ("got block ack from=" << recipient); @@ -1279,7 +1281,7 @@ EdcaTxopN::GotBlockAck (const CtrlBAckResponseHeader *blockAck, Mac48Address rec } void -EdcaTxopN::VerifyBlockAck (void) +QosTxop::VerifyBlockAck (void) { NS_LOG_FUNCTION (this); uint8_t tid = m_currentHdr.GetQosTid (); @@ -1296,7 +1298,7 @@ EdcaTxopN::VerifyBlockAck (void) } } -bool EdcaTxopN::GetAmpduExist (Mac48Address dest) const +bool QosTxop::GetAmpduExist (Mac48Address dest) const { NS_LOG_FUNCTION (this << dest); if (m_aMpduEnabled.find (dest) != m_aMpduEnabled.end ()) @@ -1306,7 +1308,7 @@ bool EdcaTxopN::GetAmpduExist (Mac48Address dest) const return false; } -void EdcaTxopN::SetAmpduExist (Mac48Address dest, bool enableAmpdu) +void QosTxop::SetAmpduExist (Mac48Address dest, bool enableAmpdu) { NS_LOG_FUNCTION (this << dest << enableAmpdu); if (m_aMpduEnabled.find (dest) != m_aMpduEnabled.end () && m_aMpduEnabled.find (dest)->second != enableAmpdu) @@ -1320,7 +1322,7 @@ void EdcaTxopN::SetAmpduExist (Mac48Address dest, bool enableAmpdu) } void -EdcaTxopN::CompleteTx (void) +QosTxop::CompleteTx (void) { NS_LOG_FUNCTION (this); if (m_currentHdr.IsQosData () && m_currentHdr.IsQosBlockAck ()) @@ -1336,7 +1338,7 @@ EdcaTxopN::CompleteTx (void) } void -EdcaTxopN::CompleteMpduTx (Ptr packet, WifiMacHeader hdr, Time tstamp) +QosTxop::CompleteMpduTx (Ptr packet, WifiMacHeader hdr, Time tstamp) { NS_ASSERT (hdr.IsQosData ()); m_baManager->StorePacket (packet, hdr, tstamp); @@ -1346,7 +1348,7 @@ EdcaTxopN::CompleteMpduTx (Ptr packet, WifiMacHeader hdr, Time tst } bool -EdcaTxopN::SetupBlockAckIfNeeded () +QosTxop::SetupBlockAckIfNeeded () { NS_LOG_FUNCTION (this); uint8_t tid = m_currentHdr.GetQosTid (); @@ -1366,7 +1368,7 @@ EdcaTxopN::SetupBlockAckIfNeeded () } void -EdcaTxopN::SendBlockAckRequest (const Bar &bar) +QosTxop::SendBlockAckRequest (const Bar &bar) { NS_LOG_FUNCTION (this << &bar); WifiMacHeader hdr; @@ -1408,16 +1410,16 @@ EdcaTxopN::SendBlockAckRequest (const Bar &bar) } void -EdcaTxopN::CompleteConfig (void) +QosTxop::CompleteConfig (void) { NS_LOG_FUNCTION (this); m_baManager->SetTxMiddle (m_txMiddle); m_low->RegisterEdcaForAc (m_ac, this); - m_baManager->SetBlockAckInactivityCallback (MakeCallback (&EdcaTxopN::SendDelbaFrame, this)); + m_baManager->SetBlockAckInactivityCallback (MakeCallback (&QosTxop::SendDelbaFrame, this)); } void -EdcaTxopN::SetBlockAckThreshold (uint8_t threshold) +QosTxop::SetBlockAckThreshold (uint8_t threshold) { NS_LOG_FUNCTION (this << +threshold); m_blockAckThreshold = threshold; @@ -1425,22 +1427,22 @@ EdcaTxopN::SetBlockAckThreshold (uint8_t threshold) } void -EdcaTxopN::SetBlockAckInactivityTimeout (uint16_t timeout) +QosTxop::SetBlockAckInactivityTimeout (uint16_t timeout) { NS_LOG_FUNCTION (this << timeout); m_blockAckInactivityTimeout = timeout; } uint8_t -EdcaTxopN::GetBlockAckThreshold (void) const +QosTxop::GetBlockAckThreshold (void) const { NS_LOG_FUNCTION (this); return m_blockAckThreshold; } void -EdcaTxopN::SendAddBaRequest (Mac48Address dest, uint8_t tid, uint16_t startSeq, - uint16_t timeout, bool immediateBAck) +QosTxop::SendAddBaRequest (Mac48Address dest, uint8_t tid, uint16_t startSeq, + uint16_t timeout, bool immediateBAck) { NS_LOG_FUNCTION (this << dest << +tid << startSeq << timeout << immediateBAck); NS_LOG_DEBUG ("sent ADDBA request to " << dest); @@ -1500,7 +1502,7 @@ EdcaTxopN::SendAddBaRequest (Mac48Address dest, uint8_t tid, uint16_t startSeq, } void -EdcaTxopN::SendDelbaFrame (Mac48Address addr, uint8_t tid, bool byOriginator) +QosTxop::SendDelbaFrame (Mac48Address addr, uint8_t tid, bool byOriginator) { NS_LOG_FUNCTION (this << addr << +tid << byOriginator); WifiMacHeader hdr; @@ -1537,7 +1539,7 @@ EdcaTxopN::SendDelbaFrame (Mac48Address addr, uint8_t tid, bool byOriginator) } void -EdcaTxopN::DoInitialize () +QosTxop::DoInitialize () { NS_LOG_FUNCTION (this); ResetCw (); @@ -1547,7 +1549,7 @@ EdcaTxopN::DoInitialize () } void -EdcaTxopN::BaTxOk (const WifiMacHeader &hdr) +QosTxop::BaTxOk (const WifiMacHeader &hdr) { NS_LOG_FUNCTION (this << hdr); if (!m_txOkCallback.IsNull ()) @@ -1557,7 +1559,7 @@ EdcaTxopN::BaTxOk (const WifiMacHeader &hdr) } void -EdcaTxopN::BaTxFailed (const WifiMacHeader &hdr) +QosTxop::BaTxFailed (const WifiMacHeader &hdr) { NS_LOG_FUNCTION (this << hdr); if (!m_txFailedCallback.IsNull ()) @@ -1567,9 +1569,10 @@ EdcaTxopN::BaTxFailed (const WifiMacHeader &hdr) } bool -EdcaTxopN::IsEdca () +QosTxop::IsQosTxop () const { return true; } } //namespace ns3 + diff --git a/src/wifi/model/edca-txop-n.h b/src/wifi/model/qos-txop.h similarity index 97% rename from src/wifi/model/edca-txop-n.h rename to src/wifi/model/qos-txop.h index 00a2f5e0e..bb8b7eb29 100644 --- a/src/wifi/model/edca-txop-n.h +++ b/src/wifi/model/qos-txop.h @@ -20,12 +20,12 @@ * Mirko Banchi */ -#ifndef EDCA_TXOP_N_H -#define EDCA_TXOP_N_H +#ifndef QOS_TXOP_H +#define QOS_TXOP_H #include "ns3/traced-value.h" #include "block-ack-manager.h" -#include "dca-txop.h" +#include "txop.h" #include "qos-utils.h" class AmpduAggregationTest; @@ -60,7 +60,7 @@ enum TypeOfStation * \ingroup wifi * * This class implements the packet fragmentation and retransmission policy for - * QoS data frames. It uses the ns3::MacLow and ns3::DcfManager helper classes + * QoS data frames. It uses the ns3::MacLow and ns3::ChannelAccessManager helper classes * to respectively send packets and decide when to send them. Packets are stored * in a ns3::WifiMacQueue until they can be sent. * @@ -87,7 +87,7 @@ enum TypeOfStation * a packet is bigger than a threshold, the rts/cts protocol is used. */ -class EdcaTxopN : public DcaTxop +class QosTxop : public Txop { public: /// Allow test cases to access private members @@ -101,18 +101,18 @@ public: */ static TypeId GetTypeId (void); - EdcaTxopN (); - virtual ~EdcaTxopN (); + QosTxop (); + virtual ~QosTxop (); /** - * Check for EDCA. + * Check for QoS TXOP. * - * \returns true if EDCA. + * \returns true if QoS TXOP. */ - bool IsEdca (); + bool IsQosTxop () const; /** - * Set WifiRemoteStationsManager this EdcaTxopN is associated to. + * Set WifiRemoteStationsManager this QosTxop is associated to. * * \param remoteManager WifiRemoteStationManager. */ @@ -559,4 +559,4 @@ private: } //namespace ns3 -#endif /* EDCA_TXOP_N_H */ +#endif /* QOS_TXOP_H */ diff --git a/src/wifi/model/regular-wifi-mac.cc b/src/wifi/model/regular-wifi-mac.cc index 3a679b1ec..ca512eec9 100644 --- a/src/wifi/model/regular-wifi-mac.cc +++ b/src/wifi/model/regular-wifi-mac.cc @@ -26,7 +26,6 @@ #include "mac-rx-middle.h" #include "mac-tx-middle.h" #include "mac-low.h" -#include "dcf-manager.h" #include "msdu-aggregator.h" #include "mpdu-aggregator.h" #include "wifi-utils.h" @@ -40,7 +39,8 @@ NS_LOG_COMPONENT_DEFINE ("RegularWifiMac"); NS_OBJECT_ENSURE_REGISTERED (RegularWifiMac); RegularWifiMac::RegularWifiMac () - : m_htSupported (0), + : m_qosSupported (0), + m_htSupported (0), m_vhtSupported (0), m_erpSupported (0), m_dsssSupported (0), @@ -55,16 +55,16 @@ RegularWifiMac::RegularWifiMac () m_low = CreateObject (); m_low->SetRxCallback (MakeCallback (&MacRxMiddle::Receive, m_rxMiddle)); - m_dcfManager = CreateObject (); - m_dcfManager->SetupLow (m_low); + m_channelAccessManager = CreateObject (); + m_channelAccessManager->SetupLow (m_low); - m_dca = CreateObject (); - m_dca->SetMacLow (m_low); - m_dca->SetDcfManager (m_dcfManager); - m_dca->SetTxMiddle (m_txMiddle); - m_dca->SetTxOkCallback (MakeCallback (&RegularWifiMac::TxOk, this)); - m_dca->SetTxFailedCallback (MakeCallback (&RegularWifiMac::TxFailed, this)); - m_dca->SetTxDroppedCallback (MakeCallback (&RegularWifiMac::NotifyTxDrop, this)); + m_txop = CreateObject (); + m_txop->SetMacLow (m_low); + m_txop->SetChannelAccessManager (m_channelAccessManager); + m_txop->SetTxMiddle (m_txMiddle); + m_txop->SetTxOkCallback (MakeCallback (&RegularWifiMac::TxOk, this)); + m_txop->SetTxFailedCallback (MakeCallback (&RegularWifiMac::TxFailed, this)); + m_txop->SetTxDroppedCallback (MakeCallback (&RegularWifiMac::NotifyTxDrop, this)); //Construct the EDCAFs. The ordering is important - highest //priority (Table 9-1 UP-to-AC mapping; IEEE 802.11-2012) must be created @@ -84,7 +84,7 @@ void RegularWifiMac::DoInitialize () { NS_LOG_FUNCTION (this); - m_dca->Initialize (); + m_txop->Initialize (); for (EdcaQueues::const_iterator i = m_edca.begin (); i != m_edca.end (); ++i) { @@ -106,8 +106,8 @@ RegularWifiMac::DoDispose () m_phy = 0; m_stationManager = 0; - m_dca->Dispose (); - m_dca = 0; + m_txop->Dispose (); + m_txop = 0; for (EdcaQueues::iterator i = m_edca.begin (); i != m_edca.end (); ++i) { @@ -115,8 +115,8 @@ RegularWifiMac::DoDispose () i->second = 0; } - m_dcfManager->Dispose (); - m_dcfManager = 0; + m_channelAccessManager->Dispose (); + m_channelAccessManager = 0; } void @@ -129,7 +129,7 @@ RegularWifiMac::SetWifiRemoteStationManager (const Ptr m_stationManager->SetHeSupported (GetHeSupported ()); m_low->SetWifiRemoteStationManager (stationManager); - m_dca->SetWifiRemoteStationManager (stationManager); + m_txop->SetWifiRemoteStationManager (stationManager); for (EdcaQueues::const_iterator i = m_edca.begin (); i != m_edca.end (); ++i) { @@ -465,9 +465,9 @@ RegularWifiMac::SetupEdcaQueue (AcIndex ac) //already configured. NS_ASSERT (m_edca.find (ac) == m_edca.end ()); - Ptr edca = CreateObject (); + Ptr edca = CreateObject (); edca->SetMacLow (m_low); - edca->SetDcfManager (m_dcfManager); + edca->SetChannelAccessManager (m_channelAccessManager); edca->SetTxMiddle (m_txMiddle); edca->SetTxOkCallback (MakeCallback (&RegularWifiMac::TxOk, this)); edca->SetTxFailedCallback (MakeCallback (&RegularWifiMac::TxFailed, this)); @@ -488,31 +488,31 @@ RegularWifiMac::SetTypeOfStation (TypeOfStation type) } } -Ptr -RegularWifiMac::GetDcaTxop () const +Ptr +RegularWifiMac::GetTxop () const { - return m_dca; + return m_txop; } -Ptr +Ptr RegularWifiMac::GetVOQueue () const { return m_edca.find (AC_VO)->second; } -Ptr +Ptr RegularWifiMac::GetVIQueue () const { return m_edca.find (AC_VI)->second; } -Ptr +Ptr RegularWifiMac::GetBEQueue () const { return m_edca.find (AC_BE)->second; } -Ptr +Ptr RegularWifiMac::GetBKQueue () const { return m_edca.find (AC_BK)->second; @@ -523,7 +523,7 @@ RegularWifiMac::SetWifiPhy (const Ptr phy) { NS_LOG_FUNCTION (this << phy); m_phy = phy; - m_dcfManager->SetupPhyListener (phy); + m_channelAccessManager->SetupPhyListener (phy); m_low->SetPhy (phy); } @@ -539,7 +539,7 @@ RegularWifiMac::ResetWifiPhy (void) { NS_LOG_FUNCTION (this); m_low->ResetPhy (); - m_dcfManager->RemovePhyListener (m_phy); + m_channelAccessManager->RemovePhyListener (m_phy); m_phy = 0; } @@ -693,7 +693,7 @@ void RegularWifiMac::SetSlot (Time slotTime) { NS_LOG_FUNCTION (this << slotTime); - m_dcfManager->SetSlot (slotTime); + m_channelAccessManager->SetSlot (slotTime); m_low->SetSlotTime (slotTime); } @@ -707,7 +707,7 @@ void RegularWifiMac::SetSifs (Time sifs) { NS_LOG_FUNCTION (this << sifs); - m_dcfManager->SetSifs (sifs); + m_channelAccessManager->SetSifs (sifs); m_low->SetSifs (sifs); } @@ -721,13 +721,13 @@ void RegularWifiMac::SetEifsNoDifs (Time eifsNoDifs) { NS_LOG_FUNCTION (this << eifsNoDifs); - m_dcfManager->SetEifsNoDifs (eifsNoDifs); + m_channelAccessManager->SetEifsNoDifs (eifsNoDifs); } Time RegularWifiMac::GetEifsNoDifs (void) const { - return m_dcfManager->GetEifsNoDifs (); + return m_channelAccessManager->GetEifsNoDifs (); } void @@ -1219,40 +1219,40 @@ RegularWifiMac::GetTypeId (void) .AddAttribute ("ShortSlotTimeSupported", "Whether or not short slot time is supported (only used by ERP APs or STAs).", BooleanValue (true), - MakeBooleanAccessor (&RegularWifiMac::GetShortSlotTimeSupported, - &RegularWifiMac::SetShortSlotTimeSupported), + MakeBooleanAccessor (&RegularWifiMac::SetShortSlotTimeSupported, + &RegularWifiMac::GetShortSlotTimeSupported), MakeBooleanChecker ()) .AddAttribute ("RifsSupported", "Whether or not RIFS is supported (only used by HT APs or STAs).", BooleanValue (false), - MakeBooleanAccessor (&RegularWifiMac::GetRifsSupported, - &RegularWifiMac::SetRifsSupported), + MakeBooleanAccessor (&RegularWifiMac::SetRifsSupported, + &RegularWifiMac::GetRifsSupported), MakeBooleanChecker ()) - .AddAttribute ("DcaTxop", - "The DcaTxop object.", + .AddAttribute ("Txop", + "The Txop object.", PointerValue (), - MakePointerAccessor (&RegularWifiMac::GetDcaTxop), - MakePointerChecker ()) - .AddAttribute ("VO_EdcaTxopN", + MakePointerAccessor (&RegularWifiMac::GetTxop), + MakePointerChecker ()) + .AddAttribute ("VO_Txop", "Queue that manages packets belonging to AC_VO access class.", PointerValue (), MakePointerAccessor (&RegularWifiMac::GetVOQueue), - MakePointerChecker ()) - .AddAttribute ("VI_EdcaTxopN", + MakePointerChecker ()) + .AddAttribute ("VI_Txop", "Queue that manages packets belonging to AC_VI access class.", PointerValue (), MakePointerAccessor (&RegularWifiMac::GetVIQueue), - MakePointerChecker ()) - .AddAttribute ("BE_EdcaTxopN", + MakePointerChecker ()) + .AddAttribute ("BE_Txop", "Queue that manages packets belonging to AC_BE access class.", PointerValue (), MakePointerAccessor (&RegularWifiMac::GetBEQueue), - MakePointerChecker ()) - .AddAttribute ("BK_EdcaTxopN", + MakePointerChecker ()) + .AddAttribute ("BK_Txop", "Queue that manages packets belonging to AC_BK access class.", PointerValue (), MakePointerAccessor (&RegularWifiMac::GetBKQueue), - MakePointerChecker ()) + MakePointerChecker ()) .AddTraceSource ("TxOkHeader", "The header of successfully transmitted packet.", MakeTraceSourceAccessor (&RegularWifiMac::m_txOkCallback), @@ -1313,7 +1313,7 @@ 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, isDsssOnly, AC_BE_NQOS); + ConfigureDcf (m_txop, cwMin, cwMax, isDsssOnly, AC_BE_NQOS); //Now we configure the EDCA functions for (EdcaQueues::const_iterator i = m_edca.begin (); i != m_edca.end (); ++i) diff --git a/src/wifi/model/regular-wifi-mac.h b/src/wifi/model/regular-wifi-mac.h index bdc0db9d2..91e00eb24 100644 --- a/src/wifi/model/regular-wifi-mac.h +++ b/src/wifi/model/regular-wifi-mac.h @@ -22,7 +22,7 @@ #define REGULAR_WIFI_MAC_H #include "wifi-mac.h" -#include "edca-txop-n.h" +#include "qos-txop.h" #include "ssid.h" namespace ns3 { @@ -30,16 +30,15 @@ namespace ns3 { class MacLow; class MacRxMiddle; class MacTxMiddle; -class DcfManager; +class ChannelAccessManager; class ExtendedCapabilities; /** * \brief base class for all MAC-level wifi objects. * \ingroup wifi * - * This class encapsulates all the low-level MAC functionality - * DCA, EDCA, etc) and all the high-level MAC functionality - * (association/disassociation state machines). + * This class encapsulates all the low-level MAC functionality and all the + * high-level MAC functionality (association/disassociation state machines). * */ class RegularWifiMac : public WifiMac @@ -205,7 +204,7 @@ public: * dequeued as soon as the channel access function determines that * access is granted to this MAC. */ - void Enqueue (Ptr packet, Mac48Address to) = 0; + virtual void Enqueue (Ptr packet, Mac48Address to) = 0; /** * \param phy the physical layer attached to this MAC. */ @@ -290,7 +289,7 @@ protected: Ptr m_rxMiddle; //!< RX middle (de-fragmentation etc.) Ptr m_txMiddle; //!< TX middle (aggregation etc.) Ptr m_low; //!< MacLow (RTS, CTS, DATA, ACK etc.) - Ptr m_dcfManager; //!< DCF manager (access to channel) + Ptr m_channelAccessManager; //!< channel access manager Ptr m_phy; //!< Wifi PHY Ptr m_stationManager; //!< Remote station manager (rate control, RTS/CTS/fragmentation thresholds etc.) @@ -301,13 +300,13 @@ protected: Ssid m_ssid; //!< Service Set ID (SSID) - /** This holds a pointer to the DCF instance for this WifiMac - used + /** This holds a pointer to the TXOP instance for this WifiMac - used for transmission of frames to non-QoS peers. */ - Ptr m_dca; + Ptr m_txop; /** This type defines a mapping between an Access Category index, and a pointer to the corresponding channel access function */ - typedef std::map > EdcaQueues; + typedef std::map > EdcaQueues; /** This is a map from Access Category index to the corresponding channel access function */ @@ -316,34 +315,34 @@ protected: /** * Accessor for the DCF object * - * \return a smart pointer to DcaTxop + * \return a smart pointer to Txop */ - Ptr GetDcaTxop (void) const; + Ptr GetTxop (void) const; /** * Accessor for the AC_VO channel access function * - * \return a smart pointer to EdcaTxopN + * \return a smart pointer to QosTxop */ - Ptr GetVOQueue (void) const; + Ptr GetVOQueue (void) const; /** * Accessor for the AC_VI channel access function * - * \return a smart pointer to EdcaTxopN + * \return a smart pointer to QosTxop */ - Ptr GetVIQueue (void) const; + Ptr GetVIQueue (void) const; /** * Accessor for the AC_BE channel access function * - * \return a smart pointer to EdcaTxopN + * \return a smart pointer to QosTxop */ - Ptr GetBEQueue (void) const; + Ptr GetBEQueue (void) const; /** * Accessor for the AC_BK channel access function * - * \return a smart pointer to EdcaTxopN + * \return a smart pointer to QosTxop */ - Ptr GetBKQueue (void) const; + Ptr GetBKQueue (void) const; /** * \param standard the phy standard to be used @@ -371,7 +370,7 @@ protected: /** * This method is invoked by a subclass to specify what type of * station it is implementing. This is something that the channel - * access functions (instantiated within this class as EdcaTxopN's) + * access functions (instantiated within this class as QosTxop's) * need to know. * * \param type the type of station. @@ -437,27 +436,12 @@ protected: void SendAddBaResponse (const MgtAddBaRequestHeader *reqHdr, Mac48Address originator); - /** - * This Boolean is set \c true iff this WifiMac is to model - * 802.11e/WMM style Quality of Service. It is exposed through the - * attribute system. - * - * At the moment, this flag is the sole selection between QoS and - * non-QoS operation for the STA (whether IBSS, AP, or - * non-AP). Ultimately, we will want a QoS-enabled STA to be able to - * fall back to non-QoS operation with a non-QoS peer. This'll - * require further intelligence - i.e., per-association QoS - * state. Having a big switch seems like a good intermediate stage, - * however. - */ - bool m_qosSupported; - /** * Enable or disable QoS support for the device. * * \param enable whether QoS is supported */ - void SetQosSupported (bool enable); + virtual void SetQosSupported (bool enable); /** * Return whether the device supports QoS. * @@ -465,20 +449,6 @@ protected: */ bool GetQosSupported () const; - /** - * This Boolean is set \c true iff this WifiMac is to model - * 802.11n. It is exposed through the attribute system. - * - * At the moment, this flag is the sole selection between HT and - * non-HT operation for the STA (whether IBSS, AP, or - * non-AP). Ultimately, we will want a HT-enabled STA to be able to - * fall back to non-HT operation with a non-HT peer. This'll - * require further intelligence - i.e., per-association HT - * state. Having a big switch seems like a good intermediate stage, - * however. - */ - bool m_htSupported; - /** * Enable or disable HT support for the device. * @@ -492,11 +462,6 @@ protected: */ bool GetHtSupported () const; - /** - * This Boolean is set \c true iff this WifiMac is to model - * 802.11ac. It is exposed through the attribute system. - */ - bool m_vhtSupported; /** * Enable or disable VHT support for the device. * @@ -510,11 +475,6 @@ protected: */ bool GetVhtSupported () const; - /** - * This Boolean is set \c true iff this WifiMac is to model - * 802.11g. It is exposed through the attribute system. - */ - bool m_erpSupported; /** * Enable or disable ERP support for the device. * @@ -528,11 +488,6 @@ protected: */ 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. * @@ -546,11 +501,6 @@ protected: */ bool GetDsssSupported () const; - /** - * This Boolean is set \c true iff this WifiMac is to model - * 802.11ax. It is exposed through the attribute system. - */ - bool m_heSupported; /** * Enable or disable HE support for the device. * @@ -684,6 +634,54 @@ private: */ void SetBkBlockAckInactivityTimeout (uint16_t timeout); + /** + * This Boolean is set \c true iff this WifiMac is to model + * 802.11e/WMM style Quality of Service. It is exposed through the + * attribute system. + * + * At the moment, this flag is the sole selection between QoS and + * non-QoS operation for the STA (whether IBSS, AP, or + * non-AP). Ultimately, we will want a QoS-enabled STA to be able to + * fall back to non-QoS operation with a non-QoS peer. This'll + * require further intelligence - i.e., per-association QoS + * state. Having a big switch seems like a good intermediate stage, + * however. + */ + bool m_qosSupported; + /** + * This Boolean is set \c true iff this WifiMac is to model + * 802.11n. It is exposed through the attribute system. + * + * At the moment, this flag is the sole selection between HT and + * non-HT operation for the STA (whether IBSS, AP, or + * non-AP). Ultimately, we will want a HT-enabled STA to be able to + * fall back to non-HT operation with a non-HT peer. This'll + * require further intelligence - i.e., per-association HT + * state. Having a big switch seems like a good intermediate stage, + * however. + */ + bool m_htSupported; + /** + * This Boolean is set \c true iff this WifiMac is to model + * 802.11ac. It is exposed through the attribute system. + */ + bool m_vhtSupported; + /** + * This Boolean is set \c true iff this WifiMac is to model + * 802.11g. It is exposed through the attribute system. + */ + bool m_erpSupported; + /** + * This Boolean is set \c true iff this WifiMac is to model + * 802.11b. It is exposed through the attribute system. + */ + bool m_dsssSupported; + /** + * This Boolean is set \c true iff this WifiMac is to model + * 802.11ax. It is exposed through the attribute system. + */ + bool m_heSupported; + /// Configure aggregation function void ConfigureAggregation (void); /// Enable aggregation function diff --git a/src/wifi/model/sta-wifi-mac.cc b/src/wifi/model/sta-wifi-mac.cc index 654b1c515..7e39472c8 100644 --- a/src/wifi/model/sta-wifi-mac.cc +++ b/src/wifi/model/sta-wifi-mac.cc @@ -54,7 +54,7 @@ TypeId StaWifiMac::GetTypeId (void) { static TypeId tid = TypeId ("ns3::StaWifiMac") - .SetParent () + .SetParent () .SetGroupName ("Wifi") .AddConstructor () .AddAttribute ("ProbeRequestTimeout", "The interval between two consecutive probe request attempts.", @@ -137,6 +137,14 @@ StaWifiMac::SetWifiPhy (const Ptr phy) m_phy->SetCapabilitiesChangedCallback (MakeCallback (&StaWifiMac::PhyCapabilitiesChanged, this)); } +void +StaWifiMac::SetWifiRemoteStationManager (const Ptr stationManager) +{ + NS_LOG_FUNCTION (this << stationManager); + RegularWifiMac::SetWifiRemoteStationManager (stationManager); + m_stationManager->SetPcfSupported (GetPcfSupported ()); +} + void StaWifiMac::SendProbeRequest (void) { @@ -153,16 +161,16 @@ StaWifiMac::SendProbeRequest (void) MgtProbeRequestHeader probe; probe.SetSsid (GetSsid ()); probe.SetSupportedRates (GetSupportedRates ()); - if (m_htSupported || m_vhtSupported || m_heSupported) + if (GetHtSupported () || GetVhtSupported () || GetHeSupported ()) { probe.SetExtendedCapabilities (GetExtendedCapabilities ()); probe.SetHtCapabilities (GetHtCapabilities ()); } - if (m_vhtSupported || m_heSupported) + if (GetVhtSupported () || GetHeSupported ()) { probe.SetVhtCapabilities (GetVhtCapabilities ()); } - if (m_heSupported) + if (GetHeSupported ()) { probe.SetHeCapabilities (GetHeCapabilities ()); } @@ -170,9 +178,9 @@ StaWifiMac::SendProbeRequest (void) //The standard is not clear on the correct queue for management //frames if we are a QoS AP. The approach taken here is to always - //use the DCF for these regardless of whether we have a QoS + //use the non-QoS for these regardless of whether we have a QoS //association or not. - m_dca->Queue (packet, hdr); + m_txop->Queue (packet, hdr); if (m_probeRequestEvent.IsRunning ()) { @@ -202,16 +210,16 @@ StaWifiMac::SendAssociationRequest (bool isReassoc) assoc.SetSupportedRates (GetSupportedRates ()); assoc.SetCapabilities (GetCapabilities ()); assoc.SetListenInterval (0); - if (m_htSupported || m_vhtSupported || m_heSupported) + if (GetHtSupported () || GetVhtSupported () || GetHeSupported ()) { assoc.SetExtendedCapabilities (GetExtendedCapabilities ()); assoc.SetHtCapabilities (GetHtCapabilities ()); } - if (m_vhtSupported || m_heSupported) + if (GetVhtSupported () || GetHeSupported ()) { assoc.SetVhtCapabilities (GetVhtCapabilities ()); } - if (m_heSupported) + if (GetHeSupported ()) { assoc.SetHeCapabilities (GetHeCapabilities ()); } @@ -225,16 +233,16 @@ StaWifiMac::SendAssociationRequest (bool isReassoc) reassoc.SetSupportedRates (GetSupportedRates ()); reassoc.SetCapabilities (GetCapabilities ()); reassoc.SetListenInterval (0); - if (m_htSupported || m_vhtSupported || m_heSupported) + if (GetHtSupported () || GetVhtSupported () || GetHeSupported ()) { reassoc.SetExtendedCapabilities (GetExtendedCapabilities ()); reassoc.SetHtCapabilities (GetHtCapabilities ()); } - if (m_vhtSupported || m_heSupported) + if (GetVhtSupported () || GetHeSupported ()) { reassoc.SetVhtCapabilities (GetVhtCapabilities ()); } - if (m_heSupported) + if (GetHeSupported ()) { reassoc.SetHeCapabilities (GetHeCapabilities ()); } @@ -243,9 +251,9 @@ StaWifiMac::SendAssociationRequest (bool isReassoc) //The standard is not clear on the correct queue for management //frames if we are a QoS AP. The approach taken here is to always - //use the DCF for these regardless of whether we have a QoS + //use the non-QoS for these regardless of whether we have a QoS //association or not. - m_dca->Queue (packet, hdr); + m_txop->Queue (packet, hdr); if (m_assocRequestEvent.IsRunning ()) { @@ -255,6 +263,14 @@ StaWifiMac::SendAssociationRequest (bool isReassoc) &StaWifiMac::AssocRequestTimeout, this); } +void +StaWifiMac::SendCfPollResponse (void) +{ + NS_LOG_FUNCTION (this); + NS_ASSERT (GetPcfSupported ()); + m_txop->SendCfFrame (WIFI_MAC_DATA_NULL, GetBssid ()); +} + void StaWifiMac::TryToEnsureAssociated (void) { @@ -381,7 +397,7 @@ StaWifiMac::Enqueue (Ptr packet, Mac48Address to) //support simultaneously associated QoS and non-QoS STAs, at which //point there will need to be per-association QoS state maintained //by the association state machine, and consulted here. - if (m_qosSupported) + if (GetQosSupported ()) { hdr.SetType (WIFI_MAC_QOSDATA); hdr.SetQosAckPolicy (WifiMacHeader::NORMAL_ACK); @@ -406,7 +422,7 @@ StaWifiMac::Enqueue (Ptr packet, Mac48Address to) { hdr.SetType (WIFI_MAC_DATA); } - if (m_qosSupported || m_htSupported || m_vhtSupported || m_heSupported) + if (GetQosSupported () || GetHtSupported () || GetVhtSupported () || GetHeSupported ()) { hdr.SetNoOrder (); } @@ -417,7 +433,7 @@ StaWifiMac::Enqueue (Ptr packet, Mac48Address to) hdr.SetDsNotFrom (); hdr.SetDsTo (); - if (m_qosSupported) + if (GetQosSupported ()) { //Sanity check that the TID is valid NS_ASSERT (tid < 8); @@ -425,7 +441,7 @@ StaWifiMac::Enqueue (Ptr packet, Mac48Address to) } else { - m_dca->Queue (packet, hdr); + m_txop->Queue (packet, hdr); } } @@ -446,7 +462,11 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) NotifyRxDrop (packet); return; } - else if (hdr->IsData ()) + else if ((hdr->GetAddr1 () == GetAddress ()) && (hdr->GetAddr2 () == GetBssid ()) && hdr->IsCfPoll ()) + { + SendCfPollResponse (); + } + if (hdr->IsData ()) { if (!IsAssociated ()) { @@ -479,7 +499,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) ForwardUp (packet, hdr->GetAddr3 (), hdr->GetAddr1 ()); } } - else + else if (hdr->HasData ()) { ForwardUp (packet, hdr->GetAddr3 (), hdr->GetAddr1 ()); } @@ -507,6 +527,19 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) NS_LOG_LOGIC ("Beacon is for our SSID"); goodBeacon = true; } + CfParameterSet cfParameterSet = beacon.GetCfParameterSet (); + if (cfParameterSet.GetCFPCount () == 0) + { + //see section 9.3.2.2 802.11-1999 + if (GetPcfSupported ()) + { + m_low->DoNavStartNow (MicroSeconds (cfParameterSet.GetCFPMaxDurationUs ())); + } + else + { + m_low->DoNavStartNow (MicroSeconds (cfParameterSet.GetCFPDurRemainingUs ())); + } + } SupportedRates rates = beacon.GetSupportedRates (); bool bssMembershipSelectorMatch = false; for (uint8_t i = 0; i < m_phy->GetNBssMembershipSelectors (); i++) @@ -543,7 +576,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } bool isShortPreambleEnabled = capabilities.IsShortPreamble (); - if (m_erpSupported) + if (GetErpSupported ()) { ErpInformation erpInformation = beacon.GetErpInformation (); isShortPreambleEnabled &= !erpInformation.GetBarkerPreambleMode (); @@ -566,7 +599,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) SetSlot (MicroSeconds (20)); } } - if (m_qosSupported) + if (GetQosSupported ()) { bool qosSupported = false; EdcaParameterSet edcaParameters = beacon.GetEdcaParameterSet (); @@ -581,7 +614,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } m_stationManager->SetQosSupport (hdr->GetAddr2 (), qosSupported); } - if (m_htSupported) + if (GetHtSupported ()) { HtCapabilities htCapabilities = beacon.GetHtCapabilities (); if (!htCapabilities.IsSupportedMcs (0)) @@ -600,7 +633,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) { m_stationManager->SetUseGreenfieldProtection (false); } - if (!m_vhtSupported && GetRifsSupported () && htOperation.GetRifsMode ()) + if (!GetVhtSupported () && GetRifsSupported () && htOperation.GetRifsMode ()) { m_stationManager->SetRifsPermitted (true); } @@ -610,7 +643,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } } - if (m_vhtSupported) + if (GetVhtSupported ()) { VhtCapabilities vhtCapabilities = beacon.GetVhtCapabilities (); //we will always fill in RxHighestSupportedLgiDataRate field at TX, so this can be used to check whether it supports VHT @@ -628,12 +661,12 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } } - if (m_htSupported || m_vhtSupported) + if (GetHtSupported () || GetVhtSupported ()) { ExtendedCapabilities extendedCapabilities = beacon.GetExtendedCapabilities (); //TODO: to be completed } - if (m_heSupported) + if (GetHeSupported ()) { HeCapabilities heCapabilities = beacon.GetHeCapabilities (); //todo: once we support non constant rate managers, we should add checks here whether HE is supported by the peer @@ -696,7 +729,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } bool isShortPreambleEnabled = capabilities.IsShortPreamble (); - if (m_erpSupported) + if (GetErpSupported ()) { bool isErpAllowed = false; for (uint8_t i = 0; i < m_phy->GetNModes (); i++) @@ -769,7 +802,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) CapabilityInformation capabilities = assocResp.GetCapabilities (); SupportedRates rates = assocResp.GetSupportedRates (); bool isShortPreambleEnabled = capabilities.IsShortPreamble (); - if (m_erpSupported) + if (GetErpSupported ()) { bool isErpAllowed = false; for (uint8_t i = 0; i < m_phy->GetNModes (); i++) @@ -806,7 +839,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } m_stationManager->SetShortPreambleEnabled (isShortPreambleEnabled); m_stationManager->SetShortSlotTimeEnabled (capabilities.IsShortSlotTime ()); - if (m_qosSupported) + if (GetQosSupported ()) { bool qosSupported = false; EdcaParameterSet edcaParameters = assocResp.GetEdcaParameterSet (); @@ -821,7 +854,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } m_stationManager->SetQosSupport (hdr->GetAddr2 (), qosSupported); } - if (m_htSupported) + if (GetHtSupported ()) { HtCapabilities htCapabilities = assocResp.GetHtCapabilities (); if (!htCapabilities.IsSupportedMcs (0)) @@ -840,7 +873,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) { m_stationManager->SetUseGreenfieldProtection (false); } - if (!m_vhtSupported && GetRifsSupported () && htOperation.GetRifsMode ()) + if (!GetVhtSupported () && GetRifsSupported () && htOperation.GetRifsMode ()) { m_stationManager->SetRifsPermitted (true); } @@ -850,7 +883,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } } - if (m_vhtSupported) + if (GetVhtSupported ()) { VhtCapabilities vhtCapabilities = assocResp.GetVhtCapabilities (); //we will always fill in RxHighestSupportedLgiDataRate field at TX, so this can be used to check whether it supports VHT @@ -860,7 +893,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) VhtOperation vhtOperation = assocResp.GetVhtOperation (); } } - if (m_heSupported) + if (GetHeSupported ()) { HeCapabilities hecapabilities = assocResp.GetHeCapabilities (); //todo: once we support non constant rate managers, we should add checks here whether HE is supported by the peer @@ -879,7 +912,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } } - if (m_htSupported) + if (GetHtSupported ()) { HtCapabilities htCapabilities = assocResp.GetHtCapabilities (); for (uint8_t i = 0; i < m_phy->GetNMcs (); i++) @@ -892,7 +925,7 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } } - if (m_vhtSupported) + if (GetVhtSupported ()) { VhtCapabilities vhtcapabilities = assocResp.GetVhtCapabilities (); for (uint8_t i = 0; i < m_phy->GetNMcs (); i++) @@ -905,12 +938,12 @@ StaWifiMac::Receive (Ptr packet, const WifiMacHeader *hdr) } } } - if (m_htSupported || m_vhtSupported) + if (GetHtSupported () || GetVhtSupported ()) { ExtendedCapabilities extendedCapabilities = assocResp.GetExtendedCapabilities (); //TODO: to be completed } - if (m_heSupported) + if (GetHeSupported ()) { HeCapabilities heCapabilities = assocResp.GetHeCapabilities (); for (uint8_t i = 0; i < m_phy->GetNMcs (); i++) @@ -947,7 +980,7 @@ SupportedRates StaWifiMac::GetSupportedRates (void) const { SupportedRates rates; - if (m_htSupported || m_vhtSupported || m_heSupported) + if (GetHtSupported () || GetVhtSupported () || GetHeSupported ()) { for (uint8_t i = 0; i < m_phy->GetNBssMembershipSelectors (); i++) { @@ -968,8 +1001,12 @@ CapabilityInformation StaWifiMac::GetCapabilities (void) const { CapabilityInformation capabilities; - capabilities.SetShortPreamble (m_phy->GetShortPlcpPreambleSupported () || m_erpSupported); - capabilities.SetShortSlotTime (GetShortSlotTimeSupported () && m_erpSupported); + capabilities.SetShortPreamble (m_phy->GetShortPlcpPreambleSupported () || GetErpSupported ()); + capabilities.SetShortSlotTime (GetShortSlotTimeSupported () && GetErpSupported ()); + if (GetPcfSupported ()) + { + capabilities.SetCfPollable (); + } return capabilities; } @@ -992,7 +1029,7 @@ StaWifiMac::SetState (MacState value) void StaWifiMac::SetEdcaParameters (AcIndex ac, uint32_t cwMin, uint32_t cwMax, uint8_t aifsn, Time txopLimit) { - Ptr edca = m_edca.find (ac)->second; + Ptr edca = m_edca.find (ac)->second; edca->SetMinCw (cwMin); edca->SetMaxCw (cwMax); edca->SetAifsn (aifsn); diff --git a/src/wifi/model/sta-wifi-mac.h b/src/wifi/model/sta-wifi-mac.h index 926316d4f..5f2316dfd 100644 --- a/src/wifi/model/sta-wifi-mac.h +++ b/src/wifi/model/sta-wifi-mac.h @@ -23,7 +23,7 @@ #ifndef STA_WIFI_MAC_H #define STA_WIFI_MAC_H -#include "regular-wifi-mac.h" +#include "infrastructure-wifi-mac.h" namespace ns3 { @@ -36,7 +36,7 @@ class CapabilityInformation; * * The Wifi MAC high model for a non-AP STA in a BSS. */ -class StaWifiMac : public RegularWifiMac +class StaWifiMac : public InfrastructureWifiMac { public: /** @@ -48,6 +48,13 @@ public: StaWifiMac (); virtual ~StaWifiMac (); + /** + * Set up WifiRemoteStationManager associated with this StaWifiMac. + * + * \param stationManager the station manager attached to this MAC. + */ + void SetWifiRemoteStationManager (const Ptr stationManager); + /** * \param packet the packet to send. * \param to the address to which the packet should be sent. @@ -106,6 +113,10 @@ private: * */ void SendAssociationRequest (bool isReassoc); + /** + * Forward a CF-Poll response packet to the CFP queue. + */ + void SendCfPollResponse (void); /** * Try to ensure that we are associated with an AP by taking an appropriate action * depending on the current association status. diff --git a/src/wifi/model/dca-txop.cc b/src/wifi/model/txop.cc similarity index 66% rename from src/wifi/model/dca-txop.cc rename to src/wifi/model/txop.cc index 258832601..924562de3 100644 --- a/src/wifi/model/dca-txop.cc +++ b/src/wifi/model/txop.cc @@ -22,8 +22,8 @@ #include "ns3/pointer.h" #include "ns3/simulator.h" #include "ns3/random-variable-stream.h" -#include "dca-txop.h" -#include "dcf-manager.h" +#include "txop.h" +#include "channel-access-manager.h" #include "wifi-mac-queue.h" #include "mac-tx-middle.h" #include "mac-low.h" @@ -34,47 +34,47 @@ namespace ns3 { -NS_LOG_COMPONENT_DEFINE ("DcaTxop"); +NS_LOG_COMPONENT_DEFINE ("Txop"); -NS_OBJECT_ENSURE_REGISTERED (DcaTxop); +NS_OBJECT_ENSURE_REGISTERED (Txop); TypeId -DcaTxop::GetTypeId (void) +Txop::GetTypeId (void) { - static TypeId tid = TypeId ("ns3::DcaTxop") + static TypeId tid = TypeId ("ns3::Txop") .SetParent () .SetGroupName ("Wifi") - .AddConstructor () + .AddConstructor () .AddAttribute ("MinCw", "The minimum value of the contention window.", UintegerValue (15), - MakeUintegerAccessor (&DcaTxop::SetMinCw, - &DcaTxop::GetMinCw), + MakeUintegerAccessor (&Txop::SetMinCw, + &Txop::GetMinCw), MakeUintegerChecker ()) .AddAttribute ("MaxCw", "The maximum value of the contention window.", UintegerValue (1023), - MakeUintegerAccessor (&DcaTxop::SetMaxCw, - &DcaTxop::GetMaxCw), + MakeUintegerAccessor (&Txop::SetMaxCw, + &Txop::GetMaxCw), MakeUintegerChecker ()) - .AddAttribute ("Aifsn", "The AIFSN: the default value conforms to simple DCA.", + .AddAttribute ("Aifsn", "The AIFSN: the default value conforms to non-QOS.", UintegerValue (2), - MakeUintegerAccessor (&DcaTxop::SetAifsn, - &DcaTxop::GetAifsn), + MakeUintegerAccessor (&Txop::SetAifsn, + &Txop::GetAifsn), MakeUintegerChecker ()) - .AddAttribute ("TxopLimit", "The TXOP limit: the default value conforms to simple DCA.", + .AddAttribute ("TxopLimit", "The TXOP limit: the default value conforms to non-QoS.", TimeValue (MilliSeconds (0)), - MakeTimeAccessor (&DcaTxop::SetTxopLimit, - &DcaTxop::GetTxopLimit), + MakeTimeAccessor (&Txop::SetTxopLimit, + &Txop::GetTxopLimit), MakeTimeChecker ()) .AddAttribute ("Queue", "The WifiMacQueue object", PointerValue (), - MakePointerAccessor (&DcaTxop::GetWifiMacQueue), + MakePointerAccessor (&Txop::GetWifiMacQueue), MakePointerChecker ()) ; return tid; } -DcaTxop::DcaTxop () - : m_dcfManager (0), +Txop::Txop () + : m_channelAccessManager (0), m_cwMin (0), m_cwMax (0), m_cw (0), @@ -88,13 +88,13 @@ DcaTxop::DcaTxop () m_rng = CreateObject (); } -DcaTxop::~DcaTxop () +Txop::~Txop () { NS_LOG_FUNCTION (this); } void -DcaTxop::DoDispose (void) +Txop::DoDispose (void) { NS_LOG_FUNCTION (this); m_queue = 0; @@ -105,57 +105,57 @@ DcaTxop::DoDispose (void) } void -DcaTxop::SetDcfManager (const Ptr manager) +Txop::SetChannelAccessManager (const Ptr manager) { NS_LOG_FUNCTION (this << manager); - m_dcfManager = manager; - m_dcfManager->Add (this); + m_channelAccessManager = manager; + m_channelAccessManager->Add (this); } -void DcaTxop::SetTxMiddle (const Ptr txMiddle) +void Txop::SetTxMiddle (const Ptr txMiddle) { NS_LOG_FUNCTION (this); m_txMiddle = txMiddle; } void -DcaTxop::SetMacLow (const Ptr low) +Txop::SetMacLow (const Ptr low) { NS_LOG_FUNCTION (this << low); m_low = low; } void -DcaTxop::SetWifiRemoteStationManager (const Ptr remoteManager) +Txop::SetWifiRemoteStationManager (const Ptr remoteManager) { NS_LOG_FUNCTION (this << remoteManager); m_stationManager = remoteManager; } void -DcaTxop::SetTxOkCallback (TxOk callback) +Txop::SetTxOkCallback (TxOk callback) { NS_LOG_FUNCTION (this << &callback); m_txOkCallback = callback; } void -DcaTxop::SetTxFailedCallback (TxFailed callback) +Txop::SetTxFailedCallback (TxFailed callback) { NS_LOG_FUNCTION (this << &callback); m_txFailedCallback = callback; } void -DcaTxop::SetTxDroppedCallback (TxDropped callback) +Txop::SetTxDroppedCallback (TxDropped callback) { NS_LOG_FUNCTION (this << &callback); m_txDroppedCallback = callback; - m_queue->TraceConnectWithoutContext ("Drop", MakeCallback (&DcaTxop::TxDroppedPacket, this)); + m_queue->TraceConnectWithoutContext ("Drop", MakeCallback (&Txop::TxDroppedPacket, this)); } void -DcaTxop::TxDroppedPacket (Ptr item) +Txop::TxDroppedPacket (Ptr item) { if (!m_txDroppedCallback.IsNull ()) { @@ -164,14 +164,14 @@ DcaTxop::TxDroppedPacket (Ptr item) } Ptr -DcaTxop::GetWifiMacQueue () const +Txop::GetWifiMacQueue () const { NS_LOG_FUNCTION (this); return m_queue; } void -DcaTxop::SetMinCw (uint32_t minCw) +Txop::SetMinCw (uint32_t minCw) { NS_LOG_FUNCTION (this << minCw); bool changed = (m_cwMin != minCw); @@ -183,7 +183,7 @@ DcaTxop::SetMinCw (uint32_t minCw) } void -DcaTxop::SetMaxCw (uint32_t maxCw) +Txop::SetMaxCw (uint32_t maxCw) { NS_LOG_FUNCTION (this << maxCw); bool changed = (m_cwMax != maxCw); @@ -195,20 +195,20 @@ DcaTxop::SetMaxCw (uint32_t maxCw) } uint32_t -DcaTxop::GetCw (void) const +Txop::GetCw (void) const { return m_cw; } void -DcaTxop::ResetCw (void) +Txop::ResetCw (void) { NS_LOG_FUNCTION (this); m_cw = m_cwMin; } void -DcaTxop::UpdateFailedCw (void) +Txop::UpdateFailedCw (void) { NS_LOG_FUNCTION (this); //see 802.11-2012, section 9.19.2.5 @@ -216,19 +216,19 @@ DcaTxop::UpdateFailedCw (void) } uint32_t -DcaTxop::GetBackoffSlots (void) const +Txop::GetBackoffSlots (void) const { return m_backoffSlots; } Time -DcaTxop::GetBackoffStart (void) const +Txop::GetBackoffStart (void) const { return m_backoffStart; } void -DcaTxop::UpdateBackoffSlotsNow (uint32_t nSlots, Time backoffUpdateBound) +Txop::UpdateBackoffSlotsNow (uint32_t nSlots, Time backoffUpdateBound) { NS_LOG_FUNCTION (this << nSlots << backoffUpdateBound); m_backoffSlots -= nSlots; @@ -237,7 +237,7 @@ DcaTxop::UpdateBackoffSlotsNow (uint32_t nSlots, Time backoffUpdateBound) } void -DcaTxop::StartBackoffNow (uint32_t nSlots) +Txop::StartBackoffNow (uint32_t nSlots) { NS_LOG_FUNCTION (this << nSlots); if (m_backoffSlots != 0) @@ -253,14 +253,14 @@ DcaTxop::StartBackoffNow (uint32_t nSlots) } void -DcaTxop::SetAifsn (uint32_t aifsn) +Txop::SetAifsn (uint32_t aifsn) { NS_LOG_FUNCTION (this << aifsn); m_aifsn = aifsn; } void -DcaTxop::SetTxopLimit (Time txopLimit) +Txop::SetTxopLimit (Time txopLimit) { NS_LOG_FUNCTION (this << txopLimit); NS_ASSERT_MSG ((txopLimit.GetMicroSeconds () % 32 == 0), "The TXOP limit must be expressed in multiple of 32 microseconds!"); @@ -268,31 +268,31 @@ DcaTxop::SetTxopLimit (Time txopLimit) } uint32_t -DcaTxop::GetMinCw (void) const +Txop::GetMinCw (void) const { return m_cwMin; } uint32_t -DcaTxop::GetMaxCw (void) const +Txop::GetMaxCw (void) const { return m_cwMax; } uint32_t -DcaTxop::GetAifsn (void) const +Txop::GetAifsn (void) const { return m_aifsn; } Time -DcaTxop::GetTxopLimit (void) const +Txop::GetTxopLimit (void) const { return m_txopLimit; } void -DcaTxop::Queue (Ptr packet, const WifiMacHeader &hdr) +Txop::Queue (Ptr packet, const WifiMacHeader &hdr) { NS_LOG_FUNCTION (this << packet << &hdr); m_stationManager->PrepareForQueue (hdr.GetAddr1 (), &hdr, packet); @@ -301,7 +301,7 @@ DcaTxop::Queue (Ptr packet, const WifiMacHeader &hdr) } int64_t -DcaTxop::AssignStreams (int64_t stream) +Txop::AssignStreams (int64_t stream) { NS_LOG_FUNCTION (this << stream); m_rng->SetStream (stream); @@ -309,38 +309,39 @@ DcaTxop::AssignStreams (int64_t stream) } void -DcaTxop::RestartAccessIfNeeded (void) +Txop::RestartAccessIfNeeded (void) { NS_LOG_FUNCTION (this); if ((m_currentPacket != 0 || !m_queue->IsEmpty ()) - && !IsAccessRequested ()) + && !IsAccessRequested () + && !m_low->IsCfPeriod ()) { - m_dcfManager->RequestAccess (this); + m_channelAccessManager->RequestAccess (this); } } void -DcaTxop::StartAccessIfNeeded (void) +Txop::StartAccessIfNeeded (void) { NS_LOG_FUNCTION (this); if (m_currentPacket == 0 && !m_queue->IsEmpty () - && !IsAccessRequested ()) + && !IsAccessRequested () + && !m_low->IsCfPeriod ()) { - m_dcfManager->RequestAccess (this); + m_channelAccessManager->RequestAccess (this); } } Ptr -DcaTxop::GetLow (void) const +Txop::GetLow (void) const { - NS_LOG_FUNCTION (this); return m_low; } void -DcaTxop::DoInitialize () +Txop::DoInitialize () { NS_LOG_FUNCTION (this); ResetCw (); @@ -348,21 +349,21 @@ DcaTxop::DoInitialize () } bool -DcaTxop::NeedRtsRetransmission (Ptr packet, const WifiMacHeader &hdr) +Txop::NeedRtsRetransmission (Ptr packet, const WifiMacHeader &hdr) { NS_LOG_FUNCTION (this); return m_stationManager->NeedRtsRetransmission (hdr.GetAddr1 (), &hdr, packet); } bool -DcaTxop::NeedDataRetransmission (Ptr packet, const WifiMacHeader &hdr) +Txop::NeedDataRetransmission (Ptr packet, const WifiMacHeader &hdr) { NS_LOG_FUNCTION (this); return m_stationManager->NeedDataRetransmission (hdr.GetAddr1 (), &hdr, packet); } bool -DcaTxop::NeedFragmentation (void) const +Txop::NeedFragmentation (void) const { NS_LOG_FUNCTION (this); return m_stationManager->NeedFragmentation (m_currentHdr.GetAddr1 (), &m_currentHdr, @@ -370,14 +371,14 @@ DcaTxop::NeedFragmentation (void) const } void -DcaTxop::NextFragment (void) +Txop::NextFragment (void) { NS_LOG_FUNCTION (this); m_fragmentNumber++; } uint32_t -DcaTxop::GetFragmentSize (void) const +Txop::GetFragmentSize (void) const { NS_LOG_FUNCTION (this); return m_stationManager->GetFragmentSize (m_currentHdr.GetAddr1 (), &m_currentHdr, @@ -385,7 +386,7 @@ DcaTxop::GetFragmentSize (void) const } bool -DcaTxop::IsLastFragment (void) const +Txop::IsLastFragment (void) const { NS_LOG_FUNCTION (this); return m_stationManager->IsLastFragment (m_currentHdr.GetAddr1 (), &m_currentHdr, @@ -393,7 +394,7 @@ DcaTxop::IsLastFragment (void) const } uint32_t -DcaTxop::GetNextFragmentSize (void) const +Txop::GetNextFragmentSize (void) const { NS_LOG_FUNCTION (this); return m_stationManager->GetFragmentSize (m_currentHdr.GetAddr1 (), &m_currentHdr, @@ -401,7 +402,7 @@ DcaTxop::GetNextFragmentSize (void) const } uint32_t -DcaTxop::GetFragmentOffset (void) const +Txop::GetFragmentOffset (void) const { NS_LOG_FUNCTION (this); return m_stationManager->GetFragmentOffset (m_currentHdr.GetAddr1 (), &m_currentHdr, @@ -409,7 +410,7 @@ DcaTxop::GetFragmentOffset (void) const } Ptr -DcaTxop::GetFragmentPacket (WifiMacHeader *hdr) +Txop::GetFragmentPacket (WifiMacHeader *hdr) { NS_LOG_FUNCTION (this << hdr); *hdr = m_currentHdr; @@ -430,20 +431,20 @@ DcaTxop::GetFragmentPacket (WifiMacHeader *hdr) } bool -DcaTxop::IsAccessRequested (void) const +Txop::IsAccessRequested (void) const { return m_accessRequested; } void -DcaTxop::NotifyAccessRequested (void) +Txop::NotifyAccessRequested (void) { NS_LOG_FUNCTION (this); m_accessRequested = true; } void -DcaTxop::NotifyAccessGranted (void) +Txop::NotifyAccessGranted (void) { NS_LOG_FUNCTION (this); NS_ASSERT (m_accessRequested); @@ -482,7 +483,6 @@ DcaTxop::NotifyAccessGranted (void) else { m_currentParams.EnableAck (); - if (NeedFragmentation ()) { WifiMacHeader hdr; @@ -508,14 +508,14 @@ DcaTxop::NotifyAccessGranted (void) } void -DcaTxop::NotifyInternalCollision (void) +Txop::NotifyInternalCollision (void) { NS_LOG_FUNCTION (this); NotifyCollision (); } void -DcaTxop::NotifyCollision (void) +Txop::NotifyCollision (void) { NS_LOG_FUNCTION (this); StartBackoffNow (m_rng->GetInteger (0, GetCw ())); @@ -523,7 +523,7 @@ DcaTxop::NotifyCollision (void) } void -DcaTxop::NotifyChannelSwitching (void) +Txop::NotifyChannelSwitching (void) { NS_LOG_FUNCTION (this); m_queue->Flush (); @@ -531,7 +531,7 @@ DcaTxop::NotifyChannelSwitching (void) } void -DcaTxop::NotifySleep (void) +Txop::NotifySleep (void) { NS_LOG_FUNCTION (this); if (m_currentPacket != 0) @@ -542,7 +542,7 @@ DcaTxop::NotifySleep (void) } void -DcaTxop::NotifyOff (void) +Txop::NotifyOff (void) { NS_LOG_FUNCTION (this); m_queue->Flush (); @@ -550,21 +550,21 @@ DcaTxop::NotifyOff (void) } void -DcaTxop::NotifyWakeUp (void) +Txop::NotifyWakeUp (void) { NS_LOG_FUNCTION (this); RestartAccessIfNeeded (); } void -DcaTxop::NotifyOn (void) +Txop::NotifyOn (void) { NS_LOG_FUNCTION (this); StartAccessIfNeeded (); } void -DcaTxop::MissedCts (void) +Txop::MissedCts (void) { NS_LOG_FUNCTION (this); NS_LOG_DEBUG ("missed cts"); @@ -589,7 +589,7 @@ DcaTxop::MissedCts (void) } void -DcaTxop::GotAck (void) +Txop::GotAck (void) { NS_LOG_FUNCTION (this); if (!NeedFragmentation () @@ -616,7 +616,7 @@ DcaTxop::GotAck (void) } void -DcaTxop::MissedAck (void) +Txop::MissedAck (void) { NS_LOG_FUNCTION (this); NS_LOG_DEBUG ("missed ack"); @@ -643,7 +643,46 @@ DcaTxop::MissedAck (void) } void -DcaTxop::StartNextFragment (void) +Txop::GotCfEnd (void) +{ + NS_LOG_FUNCTION (this); + if (m_currentPacket != 0) + { + RestartAccessIfNeeded (); + } + else + { + StartAccessIfNeeded (); + } +} + +void +Txop::MissedCfPollResponse (bool expectedCfAck) +{ + NS_LOG_FUNCTION (this); + NS_LOG_DEBUG ("missed response to CF-POLL"); + if (expectedCfAck) + { + if (!NeedDataRetransmission (m_currentPacket, m_currentHdr)) + { + NS_LOG_DEBUG ("Ack Fail"); + m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr); + m_currentPacket = 0; + } + else + { + NS_LOG_DEBUG ("Retransmit"); + m_currentHdr.SetRetry (); + } + } + if (!m_txFailedCallback.IsNull ()) + { + m_txFailedCallback (m_currentHdr); + } +} + +void +Txop::StartNextFragment (void) { NS_LOG_FUNCTION (this); NS_LOG_DEBUG ("start next packet fragment"); @@ -665,49 +704,130 @@ DcaTxop::StartNextFragment (void) } void -DcaTxop::Cancel (void) +Txop::Cancel (void) { NS_LOG_FUNCTION (this); NS_LOG_DEBUG ("transmission cancelled"); } void -DcaTxop::EndTxNoAck (void) +Txop::EndTxNoAck (void) { NS_LOG_FUNCTION (this); NS_LOG_DEBUG ("a transmission that did not require an ACK just finished"); m_currentPacket = 0; ResetCw (); StartBackoffNow (m_rng->GetInteger (0, GetCw ())); + if (!m_txOkCallback.IsNull ()) + { + m_txOkCallback (m_currentHdr); + } StartAccessIfNeeded (); } +void +Txop::SendCfFrame (WifiMacType frameType, Mac48Address addr) +{ + NS_LOG_FUNCTION (this << frameType << addr); + NS_ASSERT (m_low->IsCfPeriod ()); + if (m_currentPacket != 0 && frameType != WIFI_MAC_CTL_END) + { + if (!NeedDataRetransmission (m_currentPacket, m_currentHdr)) + { + m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr); + m_currentPacket = 0; + } + else + { + m_currentHdr.SetRetry (); + } + } + else if ((m_queue->GetNPacketsByAddress (WifiMacHeader::ADDR1, addr) > 0) && (frameType != WIFI_MAC_CTL_END)) //if no packet for that dest, send to another dest? + { + Ptr item = m_queue->DequeueByAddress (WifiMacHeader::ADDR1, addr); + NS_ASSERT (item != 0); + m_currentPacket = item->GetPacket (); + m_currentHdr = item->GetHeader (); + uint16_t sequence = m_txMiddle->GetNextSequenceNumberFor (&m_currentHdr); + m_currentHdr.SetSequenceNumber (sequence); + m_currentHdr.SetFragmentNumber (0); + m_currentHdr.SetNoMoreFragments (); + m_currentHdr.SetNoRetry (); + } + else + { + m_currentPacket = Create (); + m_currentHdr.SetNoRetry (); + } + + if (m_currentPacket->GetSize () > 0) + { + switch (frameType) + { + case WIFI_MAC_DATA_NULL_CFPOLL: + m_currentHdr.SetType (WIFI_MAC_DATA_CFPOLL); + break; + case WIFI_MAC_DATA_NULL: + m_currentHdr.SetType (WIFI_MAC_DATA); + break; + default: + NS_ASSERT (false); + break; + } + } + else + { + m_currentHdr.SetType (frameType); + } + m_currentHdr.SetAddr1 (addr); + m_currentHdr.SetAddr2 (m_low->GetAddress ()); + if (frameType == WIFI_MAC_DATA_NULL) + { + m_currentHdr.SetAddr3 (m_low->GetBssid ()); + m_currentHdr.SetDsTo (); + m_currentHdr.SetDsNotFrom (); + } + else + { + m_currentHdr.SetAddr3 (m_low->GetAddress ()); + m_currentHdr.SetDsNotTo (); + m_currentHdr.SetDsFrom (); + } + m_channelAccessManager->RequestAccess (this, true); +} + bool -DcaTxop::IsEdca () +Txop::CanStartNextPolling () const +{ + return (!m_channelAccessManager->IsBusy () && GetLow ()->CanTransmitNextCfFrame ()); +} + +bool +Txop::IsQosTxop () const { return false; } void -DcaTxop::StartNextPacket (void) +Txop::StartNextPacket (void) { NS_LOG_WARN ("StartNext should not be called for non QoS!"); } void -DcaTxop::GotBlockAck (const CtrlBAckResponseHeader *blockAck, Mac48Address recipient, double rxSnr, WifiMode txMode, double dataSnr) +Txop::GotBlockAck (const CtrlBAckResponseHeader *blockAck, Mac48Address recipient, double rxSnr, WifiMode txMode, double dataSnr) { NS_LOG_WARN ("GotBlockAck should not be called for non QoS!"); } void -DcaTxop::MissedBlockAck (uint8_t nMpdus) +Txop::MissedBlockAck (uint8_t nMpdus) { NS_LOG_WARN ("MissedBlockAck should not be called for non QoS!"); } bool -DcaTxop::HasTxop (void) const +Txop::HasTxop (void) const { return false; } diff --git a/src/wifi/model/dca-txop.h b/src/wifi/model/txop.h similarity index 89% rename from src/wifi/model/dca-txop.h rename to src/wifi/model/txop.h index 0d1f56532..b21db2f34 100644 --- a/src/wifi/model/dca-txop.h +++ b/src/wifi/model/txop.h @@ -18,8 +18,8 @@ * Author: Mathieu Lacage */ -#ifndef DCA_TXOP_H -#define DCA_TXOP_H +#ifndef TXOP_H +#define TXOP_H #include "mac-low-transmission-parameters.h" #include "wifi-mac-header.h" @@ -27,7 +27,7 @@ namespace ns3 { class Packet; -class DcfManager; +class ChannelAccessManager; class MacTxMiddle; class MacLow; class WifiMode; @@ -44,7 +44,7 @@ class WifiRemoteStationManager; * * This class implements the packet fragmentation and * retransmission policy for data and management frames. - * It uses the ns3::MacLow and ns3::DcfManager helper + * It uses the ns3::MacLow and ns3::ChannelAccessManager helper * classes to respectively send packets and decide when * to send them. Packets are stored in a ns3::WifiMacQueue * until they can be sent. @@ -61,7 +61,7 @@ class WifiRemoteStationManager; * a packet is bigger than a threshold, the rts/cts protocol is used. */ -class DcaTxop : public Object +class Txop : public Object { public: /// allow DcfListener class access @@ -69,8 +69,8 @@ public: /// allow MacLowTransmissionListener class access friend class MacLowTransmissionListener; - DcaTxop (); - virtual ~DcaTxop (); + Txop (); + virtual ~Txop (); /** * \brief Get the type ID. @@ -95,32 +95,32 @@ public: typedef Callback > TxDropped; /** - * Check for EDCA. + * Check for QoS TXOP. * - * \returns true if EDCA. + * \returns true if QoS TXOP. */ - virtual bool IsEdca (); + virtual bool IsQosTxop () const; /** - * Set MacLow associated with this DcaTxop. + * Set MacLow associated with this Txop. * * \param low MacLow. */ void SetMacLow (const Ptr low); /** - * Set DcfManager this DcaTxop is associated to. + * Set ChannelAccessManager this Txop is associated to. * - * \param manager DcfManager. + * \param manager ChannelAccessManager. */ - void SetDcfManager (const Ptr manager); + void SetChannelAccessManager (const Ptr manager); /** - * Set WifiRemoteStationsManager this DcaTxop is associated to. + * Set WifiRemoteStationsManager this Txop is associated to. * * \param remoteManager WifiRemoteStationManager. */ virtual void SetWifiRemoteStationManager (const Ptr remoteManager); /** - * Set MacTxMiddle this DcaTxop is associated to. + * Set MacTxMiddle this Txop is associated to. * * \param txMiddle MacTxMiddle. */ @@ -143,14 +143,14 @@ public: void SetTxDroppedCallback (TxDropped callback); /** - * Return the MacLow associated with this DcaTxop. + * Return the MacLow associated with this Txop. * * \return MacLow */ Ptr GetLow (void) const; /** - * Return the packet queue associated with this DcaTxop. + * Return the packet queue associated with this Txop. * * \return WifiMacQueue */ @@ -238,6 +238,14 @@ public: */ virtual void Queue (Ptr packet, const WifiMacHeader &hdr); + /** + * Sends CF frame to sta with address addr. + * + * \param frameType the type of frame to be transmitted. + * \param addr address of the recipient. + */ + void SendCfFrame (WifiMacType frameType, Mac48Address addr); + /* Event handlers */ /** * Event handler when a CTS timeout has occurred. @@ -251,6 +259,16 @@ public: * Event handler when an ACK is missed. */ virtual void MissedAck (void); + /** + * Event handler when a CF-END frame is received. + */ + void GotCfEnd (void); + /** + * Event handler when a response to a CF-POLL frame is missed. + * + * \param expectedCfAck flag to indicate whether a CF-ACK was expected in the response. + */ + void MissedCfPollResponse (bool expectedCfAck); /** * Event handler when a Block ACK is received. * @@ -294,6 +312,15 @@ public: */ virtual bool HasTxop (void) const; + /** + * Check if the next PCF transmission can fit in the remaining CFP duration. + * + * \return true if the next PCF transmission can fit in the remaining CFP duration, + * false otherwise + */ + bool CanStartNextPolling (void) const; + + /** * Assign a fixed random variable stream number to the random variables * used by this model. Return the number of streams (possibly zero) that @@ -320,8 +347,8 @@ public: void StartBackoffNow (uint32_t nSlots); protected: - ///< DcfManager associated class - friend class DcfManager; + ///< ChannelAccessManager associated class + friend class ChannelAccessManager; virtual void DoDispose (void); virtual void DoInitialize (void); @@ -466,7 +493,7 @@ protected: */ void TxDroppedPacket (Ptr item); - Ptr m_dcfManager; //!< the DCF manager + Ptr m_channelAccessManager; //!< the channel access manager TxOk m_txOkCallback; //!< the transmit OK callback TxFailed m_txFailedCallback; //!< the transmit failed callback TxDropped m_txDroppedCallback; //!< the packet dropped callback @@ -499,4 +526,4 @@ protected: } //namespace ns3 -#endif /* DCA_TXOP_H */ +#endif /* TXOP_H */ diff --git a/src/wifi/model/wifi-mac-header.cc b/src/wifi/model/wifi-mac-header.cc index f7a1ca4a6..927a8e5bb 100644 --- a/src/wifi/model/wifi-mac-header.cc +++ b/src/wifi/model/wifi-mac-header.cc @@ -45,7 +45,9 @@ enum SUBTYPE_CTL_BACKRESP = 9, SUBTYPE_CTL_RTS = 11, SUBTYPE_CTL_CTS = 12, - SUBTYPE_CTL_ACK = 13 + SUBTYPE_CTL_ACK = 13, + SUBTYPE_CTL_END = 14, + SUBTYPE_CTL_END_ACK = 15 }; WifiMacHeader::WifiMacHeader () @@ -109,7 +111,7 @@ WifiMacHeader::SetAddr4 (Mac48Address address) } void -WifiMacHeader::SetType (WifiMacType type) +WifiMacHeader::SetType (WifiMacType type, bool resetToDsFromDs) { switch (type) { @@ -137,6 +139,14 @@ WifiMacHeader::SetType (WifiMacType type) m_ctrlType = TYPE_CTL; m_ctrlSubtype = SUBTYPE_CTL_ACK; break; + case WIFI_MAC_CTL_END: + m_ctrlType = TYPE_CTL; + m_ctrlSubtype = SUBTYPE_CTL_END; + break; + case WIFI_MAC_CTL_END_ACK: + m_ctrlType = TYPE_CTL; + m_ctrlSubtype = SUBTYPE_CTL_END_ACK; + break; case WIFI_MAC_MGT_ASSOCIATION_REQUEST: m_ctrlType = TYPE_MGT; m_ctrlSubtype = 0; @@ -250,8 +260,18 @@ WifiMacHeader::SetType (WifiMacType type) m_ctrlSubtype = 15; break; } - m_ctrlToDs = 0; - m_ctrlFromDs = 0; + if (resetToDsFromDs) + { + m_ctrlToDs = 0; + m_ctrlFromDs = 0; + } +} + +void +WifiMacHeader::SetRawDuration (uint16_t duration) +{ + NS_ASSERT (duration <= 32768); + m_duration = duration; } void @@ -444,6 +464,10 @@ WifiMacHeader::GetType (void) const return WIFI_MAC_CTL_CTS; case SUBTYPE_CTL_ACK: return WIFI_MAC_CTL_ACK; + case SUBTYPE_CTL_END: + return WIFI_MAC_CTL_END; + case SUBTYPE_CTL_END_ACK: + return WIFI_MAC_CTL_END_ACK; } break; case TYPE_DATA: @@ -525,7 +549,7 @@ WifiMacHeader::IsMgt (void) const } bool -WifiMacHeader::IsCfpoll (void) const +WifiMacHeader::IsCfPoll (void) const { switch (GetType ()) { @@ -543,6 +567,55 @@ WifiMacHeader::IsCfpoll (void) const } } +bool +WifiMacHeader::IsCfEnd (void) const +{ + switch (GetType ()) + { + case WIFI_MAC_CTL_END: + case WIFI_MAC_CTL_END_ACK: + return true; + default: + return false; + } +} + +bool +WifiMacHeader::IsCfAck (void) const +{ + switch (GetType ()) + { + case WIFI_MAC_DATA_CFACK: + case WIFI_MAC_DATA_CFACK_CFPOLL: + case WIFI_MAC_DATA_NULL_CFACK: + case WIFI_MAC_DATA_NULL_CFACK_CFPOLL: + case WIFI_MAC_CTL_END_ACK: + return true; + default: + return false; + break; + } +} + +bool +WifiMacHeader::HasData (void) const +{ + switch (GetType ()) + { + case WIFI_MAC_DATA: + case WIFI_MAC_DATA_CFACK: + case WIFI_MAC_DATA_CFPOLL: + case WIFI_MAC_DATA_CFACK_CFPOLL: + case WIFI_MAC_QOSDATA: + case WIFI_MAC_QOSDATA_CFACK: + case WIFI_MAC_QOSDATA_CFPOLL: + case WIFI_MAC_QOSDATA_CFACK_CFPOLL: + return true; + default: + return false; + } +} + bool WifiMacHeader::IsRts (void) const { @@ -645,6 +718,12 @@ WifiMacHeader::IsBlockAck (void) const return (GetType () == WIFI_MAC_CTL_BACKRESP) ? true : false; } +uint16_t +WifiMacHeader::GetRawDuration (void) const +{ + return m_duration; +} + Time WifiMacHeader::GetDuration (void) const { @@ -793,16 +872,16 @@ WifiMacHeader::GetSize (void) const switch (m_ctrlSubtype) { case SUBTYPE_CTL_RTS: + case SUBTYPE_CTL_BACKREQ: + case SUBTYPE_CTL_BACKRESP: + case SUBTYPE_CTL_END: + case SUBTYPE_CTL_END_ACK: size = 2 + 2 + 6 + 6; break; case SUBTYPE_CTL_CTS: case SUBTYPE_CTL_ACK: size = 2 + 2 + 6; break; - case SUBTYPE_CTL_BACKREQ: - case SUBTYPE_CTL_BACKRESP: - size = 2 + 2 + 6 + 6; - break; case SUBTYPE_CTL_CTLWRAPPER: size = 2 + 2 + 6 + 2 + 4; break; @@ -838,6 +917,8 @@ case WIFI_MAC_ ## x: \ FOO (CTL_ACK); FOO (CTL_BACKREQ); FOO (CTL_BACKRESP); + FOO (CTL_END); + FOO (CTL_END_ACK); FOO (MGT_BEACON); FOO (MGT_ASSOCIATION_REQUEST); @@ -917,10 +998,6 @@ WifiMacHeader::Print (std::ostream &os) const os << "Duration/ID=" << m_duration << "us" << ", RA=" << m_addr1; break; - case WIFI_MAC_CTL_BACKREQ: - case WIFI_MAC_CTL_BACKRESP: - case WIFI_MAC_CTL_CTLWRAPPER: - break; case WIFI_MAC_MGT_BEACON: case WIFI_MAC_MGT_ASSOCIATION_REQUEST: case WIFI_MAC_MGT_ASSOCIATION_RESPONSE: @@ -975,6 +1052,11 @@ WifiMacHeader::Print (std::ostream &os) const os << ", FragNumber=" << std::hex << (int) m_seqFrag << std::dec << ", SeqNumber=" << m_seqSeq; break; + case WIFI_MAC_CTL_BACKREQ: + case WIFI_MAC_CTL_BACKRESP: + case WIFI_MAC_CTL_CTLWRAPPER: + case WIFI_MAC_CTL_END: + case WIFI_MAC_CTL_END_ACK: case WIFI_MAC_DATA_CFACK: case WIFI_MAC_DATA_CFPOLL: case WIFI_MAC_DATA_CFACK_CFPOLL: @@ -989,6 +1071,7 @@ WifiMacHeader::Print (std::ostream &os) const case WIFI_MAC_QOSDATA_NULL: case WIFI_MAC_QOSDATA_NULL_CFPOLL: case WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL: + default: break; } } @@ -1016,15 +1099,15 @@ WifiMacHeader::Serialize (Buffer::Iterator i) const switch (m_ctrlSubtype) { case SUBTYPE_CTL_RTS: + case SUBTYPE_CTL_BACKREQ: + case SUBTYPE_CTL_BACKRESP: + case SUBTYPE_CTL_END: + case SUBTYPE_CTL_END_ACK: WriteTo (i, m_addr2); break; case SUBTYPE_CTL_CTS: case SUBTYPE_CTL_ACK: break; - case SUBTYPE_CTL_BACKREQ: - case SUBTYPE_CTL_BACKRESP: - WriteTo (i, m_addr2); - break; default: //NOTREACHED NS_ASSERT (false); @@ -1071,15 +1154,15 @@ WifiMacHeader::Deserialize (Buffer::Iterator start) switch (m_ctrlSubtype) { case SUBTYPE_CTL_RTS: + case SUBTYPE_CTL_BACKREQ: + case SUBTYPE_CTL_BACKRESP: + case SUBTYPE_CTL_END: + case SUBTYPE_CTL_END_ACK: ReadFrom (i, m_addr2); break; case SUBTYPE_CTL_CTS: case SUBTYPE_CTL_ACK: break; - case SUBTYPE_CTL_BACKREQ: - case SUBTYPE_CTL_BACKRESP: - ReadFrom (i, m_addr2); - break; } break; case TYPE_DATA: diff --git a/src/wifi/model/wifi-mac-header.h b/src/wifi/model/wifi-mac-header.h index 677269ace..8ff7269a3 100644 --- a/src/wifi/model/wifi-mac-header.h +++ b/src/wifi/model/wifi-mac-header.h @@ -41,6 +41,8 @@ enum WifiMacType WIFI_MAC_CTL_ACK, WIFI_MAC_CTL_BACKREQ, WIFI_MAC_CTL_BACKRESP, + WIFI_MAC_CTL_END, + WIFI_MAC_CTL_END_ACK, WIFI_MAC_MGT_BEACON, WIFI_MAC_MGT_ASSOCIATION_REQUEST, @@ -162,8 +164,16 @@ public: * on the given type. * * \param type the WifiMacType for the header + * \param resetToDsFromDs whether the ToDs and FromDs flags + * should be reset. */ - void SetType (WifiMacType type); + void SetType (WifiMacType type, bool resetToDsFromDs = true); + /** + * Set the Duration/ID field with the given raw uint16_t value. + * + * \param duration the raw duration in uint16_t + */ + void SetRawDuration (uint16_t duration); /** * Set the Duration/ID field with the given duration (Time object). * The method converts the given time to microseconds. @@ -309,6 +319,13 @@ public: * \return true if Type is QoS DATA, false otherwise */ bool IsQosData (void) const; + /** + * Return true if the header type is DATA and is not DATA_NULL. + * + * \return true if the header type is DATA and is not DATA_NULL, + * false otherwise + */ + bool HasData (void) const; /** * Return true if the Type is Control. * @@ -326,7 +343,19 @@ public: * * \return true if the Type/Subtype is one of the possible CF-Poll headers, false otherwise */ - bool IsCfpoll (void) const; + bool IsCfPoll (void) const; + /** + * Return true if the header is a CF-ACK header. + * + * \return true if the header is a CF_ACK header, false otherwise + */ + bool IsCfAck (void) const; + /** + * Return true if the header is a CF-END header. + * + * \return true if the header is a CF_END header, false otherwise + */ + bool IsCfEnd (void) const; /** * Return true if the header is a RTS header. * @@ -430,6 +459,12 @@ public: * false otherwise */ bool IsMultihopAction () const; + /** + * Return the raw duration from the Duration/ID field. + * + * \return the raw duration from the Duration/ID field + */ + uint16_t GetRawDuration (void) const; /** * Return the duration from the Duration/ID field (Time object). * diff --git a/src/wifi/model/wifi-mac-queue.cc b/src/wifi/model/wifi-mac-queue.cc index f301e7ae5..399d7a562 100644 --- a/src/wifi/model/wifi-mac-queue.cc +++ b/src/wifi/model/wifi-mac-queue.cc @@ -157,6 +157,27 @@ WifiMacQueue::Dequeue (void) return 0; } +Ptr +WifiMacQueue::DequeueByAddress (WifiMacHeader::AddressType type, Mac48Address dest) +{ + NS_LOG_FUNCTION (this << dest); + + for (auto it = Head (); it != Tail (); ) + { + if (!TtlExceeded (it)) + { + if ((*it)->GetHeader ().IsData () && (*it)->GetDestinationAddress () == dest) + { + return DoDequeue (it); + } + + it++; + } + } + NS_LOG_DEBUG ("The queue is empty"); + return 0; +} + Ptr WifiMacQueue::DequeueByTidAndAddress (uint8_t tid, WifiMacHeader::AddressType type, Mac48Address dest) @@ -297,6 +318,30 @@ WifiMacQueue::Remove (Ptr packet) return false; } +uint32_t +WifiMacQueue::GetNPacketsByAddress (WifiMacHeader::AddressType type, + Mac48Address dest) +{ + NS_LOG_FUNCTION (this << dest); + + uint32_t nPackets = 0; + + for (auto it = Head (); it != Tail (); ) + { + if (!TtlExceeded (it)) + { + if ((*it)->GetHeader ().IsData () && (*it)->GetDestinationAddress () == dest) + { + nPackets++; + } + + it++; + } + } + NS_LOG_DEBUG ("returns " << nPackets); + return nPackets; +} + uint32_t WifiMacQueue::GetNPacketsByTidAndAddress (uint8_t tid, WifiMacHeader::AddressType type, Mac48Address dest) diff --git a/src/wifi/model/wifi-mac-queue.h b/src/wifi/model/wifi-mac-queue.h index 4ecc8519a..9c0ef92c6 100644 --- a/src/wifi/model/wifi-mac-queue.h +++ b/src/wifi/model/wifi-mac-queue.h @@ -96,11 +96,24 @@ public: * \return the packet */ Ptr Dequeue (void); + /** + * Search and return, if present in the queue, the first packet having the + * address indicated by type equal to addr. + * This method removes the packet from the queue. + * It is typically used by ns3::Txop during the CF period. + * + * \param type the given address type + * \param dest the given destination + * + * \return the packet + */ + Ptr DequeueByAddress (WifiMacHeader::AddressType type, + Mac48Address dest); /** * Search and return, if present in the queue, the first packet having the * address indicated by type equal to addr, and tid * equal to tid. This method removes the packet from the queue. - * It is typically used by ns3::EdcaTxopN in order to perform correct MSDU + * It is typically used by ns3::QosTxop in order to perform correct MSDU * aggregation (A-MSDU). * * \param tid the given TID @@ -134,7 +147,7 @@ public: * Search and return, if present in the queue, the first packet having the * address indicated by type equal to addr, and tid * equal to tid. This method does not remove the packet from the queue. - * It is typically used by ns3::EdcaTxopN in order to perform correct MSDU + * It is typically used by ns3::QosTxop in order to perform correct MSDU * aggregation (A-MSDU). * * \param tid the given TID @@ -170,6 +183,17 @@ public: * \return true if the packet was removed, false otherwise */ bool Remove (Ptr packet); + /** + * Return the number of packets having address specified by + * type equal to addr. + * + * \param type the given address type + * \param dest the given destination + * + * \return the number of packets + */ + uint32_t GetNPacketsByAddress (WifiMacHeader::AddressType type, + Mac48Address dest); /** * Return the number of QoS packets having tid equal to tid and address * specified by type equal to addr. diff --git a/src/wifi/model/wifi-mac.cc b/src/wifi/model/wifi-mac.cc index 7a0e1eaec..6c3414c88 100644 --- a/src/wifi/model/wifi-mac.cc +++ b/src/wifi/model/wifi-mac.cc @@ -21,7 +21,7 @@ #include "ns3/log.h" #include "ns3/packet.h" #include "wifi-mac.h" -#include "dca-txop.h" +#include "txop.h" #include "ssid.h" namespace ns3 { @@ -396,7 +396,7 @@ WifiMac::Configure80211ax_5Ghz (void) } void -WifiMac::ConfigureDcf (Ptr dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, AcIndex ac) +WifiMac::ConfigureDcf (Ptr dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, AcIndex ac) { NS_LOG_FUNCTION (this << dcf << cwmin << cwmax << isDsss << ac); /* see IEE802.11 section 7.3.2.29 */ diff --git a/src/wifi/model/wifi-mac.h b/src/wifi/model/wifi-mac.h index f0a4037bf..d880bf64c 100644 --- a/src/wifi/model/wifi-mac.h +++ b/src/wifi/model/wifi-mac.h @@ -28,7 +28,7 @@ namespace ns3 { class Ssid; -class DcaTxop; +class Txop; /** * \brief base class for all MAC-level wifi objects. @@ -309,7 +309,7 @@ protected: * * Configure the DCF with appropriate values depending on the given access category. */ - void ConfigureDcf (Ptr dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, AcIndex ac); + void ConfigureDcf (Ptr dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, AcIndex ac); private: diff --git a/src/wifi/model/wifi-net-device.cc b/src/wifi/model/wifi-net-device.cc index 579d6238f..f451c6aa5 100644 --- a/src/wifi/model/wifi-net-device.cc +++ b/src/wifi/model/wifi-net-device.cc @@ -173,28 +173,28 @@ WifiNetDevice::FlowControlConfig (void) m_queueInterface->SetTxQueuesN (4); m_queueInterface->CreateTxQueues (); - mac->GetAttributeFailSafe ("BE_EdcaTxopN", ptr); - wmq = ptr.Get ()->GetWifiMacQueue (); + mac->GetAttributeFailSafe ("BE_Txop", ptr); + wmq = ptr.Get ()->GetWifiMacQueue (); m_queueInterface->ConnectQueueTraces (wmq, 0); - mac->GetAttributeFailSafe ("BK_EdcaTxopN", ptr); - wmq = ptr.Get ()->GetWifiMacQueue (); + mac->GetAttributeFailSafe ("BK_Txop", ptr); + wmq = ptr.Get ()->GetWifiMacQueue (); m_queueInterface->ConnectQueueTraces (wmq, 1); - mac->GetAttributeFailSafe ("VI_EdcaTxopN", ptr); - wmq = ptr.Get ()->GetWifiMacQueue (); + mac->GetAttributeFailSafe ("VI_Txop", ptr); + wmq = ptr.Get ()->GetWifiMacQueue (); m_queueInterface->ConnectQueueTraces (wmq, 2); - mac->GetAttributeFailSafe ("VO_EdcaTxopN", ptr); - wmq = ptr.Get ()->GetWifiMacQueue (); + mac->GetAttributeFailSafe ("VO_Txop", ptr); + wmq = ptr.Get ()->GetWifiMacQueue (); m_queueInterface->ConnectQueueTraces (wmq, 3); } else { m_queueInterface->CreateTxQueues (); - mac->GetAttributeFailSafe ("DcaTxop", ptr); - wmq = ptr.Get ()->GetWifiMacQueue (); + mac->GetAttributeFailSafe ("Txop", ptr); + wmq = ptr.Get ()->GetWifiMacQueue (); m_queueInterface->ConnectQueueTraces (wmq, 0); } } diff --git a/src/wifi/model/wifi-net-device.h b/src/wifi/model/wifi-net-device.h index 97ea274d6..6e74bad8a 100644 --- a/src/wifi/model/wifi-net-device.h +++ b/src/wifi/model/wifi-net-device.h @@ -32,6 +32,9 @@ class WifiMac; class NetDeviceQueueInterface; class QueueItem; +/// This value conforms to the 802.11 specification +static const uint16_t MAX_MSDU_SIZE = 2304; + /** * \defgroup wifi Wifi Models * @@ -144,9 +147,6 @@ private: */ WifiNetDevice &operator = (const WifiNetDevice &o); - /// This value conforms to the 802.11 specification - static const uint16_t MAX_MSDU_SIZE = 2304; - /** * Set that the link is up. A link is always up in ad-hoc mode. * For a STA, a link is up when the STA is associated with an AP. diff --git a/src/wifi/model/wifi-remote-station-manager.cc b/src/wifi/model/wifi-remote-station-manager.cc index 6eb9e7c25..02a4dab60 100644 --- a/src/wifi/model/wifi-remote-station-manager.cc +++ b/src/wifi/model/wifi-remote-station-manager.cc @@ -406,6 +406,7 @@ WifiRemoteStationManager::WifiRemoteStationManager () : m_htSupported (false), m_vhtSupported (false), m_heSupported (false), + m_pcfSupported (false), m_useNonErpProtection (false), m_useNonHtProtection (false), m_useGreenfieldProtection (false), @@ -561,6 +562,18 @@ WifiRemoteStationManager::HasHeSupported (void) const return m_heSupported; } +void +WifiRemoteStationManager::SetPcfSupported (bool enable) +{ + m_pcfSupported = enable; +} + +bool +WifiRemoteStationManager::HasPcfSupported (void) const +{ + return m_pcfSupported; +} + uint32_t WifiRemoteStationManager::GetFragmentationThreshold (void) const { diff --git a/src/wifi/model/wifi-remote-station-manager.h b/src/wifi/model/wifi-remote-station-manager.h index 01f82333f..8cf4cd5e0 100644 --- a/src/wifi/model/wifi-remote-station-manager.h +++ b/src/wifi/model/wifi-remote-station-manager.h @@ -226,6 +226,18 @@ public: * \return true if HE capability support is enabled, false otherwise */ bool HasHeSupported (void) const; + /** + * Enable or disable PCF capability support. + * + * \param enable enable or disable PCF capability support + */ + virtual void SetPcfSupported (bool enable); + /** + * Return whether the device has PCF capability support enabled. + * + * \return true if PCF capability support is enabled, false otherwise + */ + bool HasPcfSupported (void) const; /** * Enable or disable protection for non-ERP stations. * @@ -1439,6 +1451,7 @@ private: bool m_htSupported; //!< Flag if HT capability is supported bool m_vhtSupported; //!< Flag if VHT capability is supported bool m_heSupported; //!< Flag if HE capability is supported + bool m_pcfSupported; //!< Flag if PCF capability is supported uint32_t m_maxSsrc; //!< Maximum STA short retry count (SSRC) uint32_t m_maxSlrc; //!< Maximum STA long retry count (SLRC) uint32_t m_rtsCtsThreshold; //!< Threshold for RTS/CTS diff --git a/src/wifi/test/dcf-manager-test.cc b/src/wifi/test/channel-access-manager-test.cc similarity index 76% rename from src/wifi/test/dcf-manager-test.cc rename to src/wifi/test/channel-access-manager-test.cc index 1b5265da7..2918a0057 100644 --- a/src/wifi/test/dcf-manager-test.cc +++ b/src/wifi/test/channel-access-manager-test.cc @@ -20,20 +20,21 @@ #include "ns3/test.h" #include "ns3/simulator.h" -#include "ns3/dcf-manager.h" -#include "ns3/dca-txop.h" +#include "ns3/channel-access-manager.h" +#include "ns3/txop.h" +#include "ns3/mac-low.h" using namespace ns3; -class DcfManagerTest; +class ChannelAccessManagerTest; /** * \ingroup wifi-test * \ingroup tests * - * \brief Dca Txop Test + * \brief TxopTest Txop Test */ -class DcaTxopTest : public DcaTxop +class TxopTest : public Txop { public: /** @@ -42,7 +43,7 @@ public: * \param test the test DCF manager * \param i the DCF state */ - DcaTxopTest (DcfManagerTest *test, uint32_t i); + TxopTest (ChannelAccessManagerTest *test, uint32_t i); /** * Queue transmit function @@ -52,8 +53,8 @@ public: void QueueTx (uint64_t txTime, uint64_t expectedGrantTime); private: - /// allow DcfManagerTest class access - friend class DcfManagerTest; + /// allow ChannelAccessManagerTest class access + friend class ChannelAccessManagerTest; typedef std::pair ExpectedGrant; //!< the expected grant typedef typedef std::list ExpectedGrants; //!< the collection of expected grants typedef @@ -79,11 +80,31 @@ private: void NotifyWakeUp (void); void DoDispose (void); - DcfManagerTest *m_test; //!< the test DCF manager + ChannelAccessManagerTest *m_test; //!< the test DCF manager uint32_t m_i; //!< the DCF state bool m_accessRequested; //!< true if access requested }; +/** + * \ingroup wifi-test + * \ingroup tests + * + * \brief Mac Low Stub + */ +class MacLowStub : public MacLow +{ +public: + MacLowStub () + { + } + /** + * This function indicates whether it is the CF period. + */ + bool IsCfPeriod (void) const + { + return false; + } +}; /** * \ingroup wifi-test @@ -91,10 +112,10 @@ private: * * \brief Dcf Manager Test */ -class DcfManagerTest : public TestCase +class ChannelAccessManagerTest : public TestCase { public: - DcfManagerTest (); + ChannelAccessManagerTest (); virtual void DoRun (void); /** @@ -204,7 +225,7 @@ private: * \param at time to schedule DoAccessRequest event * \param txTime DoAccessRequest txTime * \param expectedGrantTime DoAccessRequest expectedGrantTime - * \param from DoAccessRequest DcaTxopTest + * \param from DoAccessRequest TxopTest */ void AddAccessRequestWithAckTimeout (uint64_t at, uint64_t txTime, uint64_t expectedGrantTime, uint32_t from); @@ -214,7 +235,7 @@ private: * \param txTime DoAccessRequest txTime * \param expectedGrantTime DoAccessRequest expectedGrantTime * \param ackDelay is delay of the ack after txEnd - * \param from DoAccessRequest DcaTxopTest + * \param from DoAccessRequest TxopTest */ void AddAccessRequestWithSuccessfullAck (uint64_t at, uint64_t txTime, uint64_t expectedGrantTime, uint32_t ackDelay, uint32_t from); @@ -222,9 +243,9 @@ private: * Add access request with successful ack * \param txTime DoAccessRequest txTime * \param expectedGrantTime DoAccessRequest expectedGrantTime - * \param state DcaTxopTest + * \param state TxopTest */ - void DoAccessRequest (uint64_t txTime, uint64_t expectedGrantTime, Ptr state); + void DoAccessRequest (uint64_t txTime, uint64_t expectedGrantTime, Ptr state); /** * Add CCA busy event function * \param at the event time @@ -244,20 +265,21 @@ private: */ void AddRxStartEvt (uint64_t at, uint64_t duration); - typedef std::vector > Dca; //!< the DCA TXOP tests typedef + typedef std::vector > TxopTests; //!< the TXOP tests typedef - Ptr m_dcfManager; //!< the DCF manager - Dca m_dca; //!< the DCA + Ptr m_low; //!< the MAC low stubbed + Ptr m_ChannelAccessManager; //!< the DCF manager + TxopTests m_txop; //!< the TXOP uint32_t m_ackTimeoutValue; //!< the ack timeout value }; void -DcaTxopTest::QueueTx (uint64_t txTime, uint64_t expectedGrantTime) +TxopTest::QueueTx (uint64_t txTime, uint64_t expectedGrantTime) { m_expectedGrants.push_back (std::make_pair (txTime, expectedGrantTime)); } -DcaTxopTest::DcaTxopTest (DcfManagerTest *test, uint32_t i) +TxopTest::TxopTest (ChannelAccessManagerTest *test, uint32_t i) : m_test (test), m_i (i), m_accessRequested (false) @@ -265,95 +287,95 @@ DcaTxopTest::DcaTxopTest (DcfManagerTest *test, uint32_t i) } void -DcaTxopTest::DoDispose (void) +TxopTest::DoDispose (void) { m_test = 0; - DcaTxop::DoDispose (); + Txop::DoDispose (); } bool -DcaTxopTest::IsAccessRequested (void) const +TxopTest::IsAccessRequested (void) const { return m_accessRequested; } void -DcaTxopTest::NotifyAccessRequested (void) +TxopTest::NotifyAccessRequested (void) { m_accessRequested = true; } void -DcaTxopTest::NotifyAccessGranted (void) +TxopTest::NotifyAccessGranted (void) { m_accessRequested = false; m_test->NotifyAccessGranted (m_i); } void -DcaTxopTest::NotifyInternalCollision (void) +TxopTest::NotifyInternalCollision (void) { m_test->NotifyInternalCollision (m_i); } void -DcaTxopTest::NotifyCollision (void) +TxopTest::NotifyCollision (void) { m_test->NotifyCollision (m_i); } void -DcaTxopTest::NotifyChannelSwitching (void) +TxopTest::NotifyChannelSwitching (void) { m_test->NotifyChannelSwitching (m_i); } void -DcaTxopTest::NotifySleep (void) +TxopTest::NotifySleep (void) { } void -DcaTxopTest::NotifyWakeUp (void) +TxopTest::NotifyWakeUp (void) { } -DcfManagerTest::DcfManagerTest () - : TestCase ("DcfManager") +ChannelAccessManagerTest::ChannelAccessManagerTest () + : TestCase ("ChannelAccessManager") { } void -DcfManagerTest::NotifyAccessGranted (uint32_t i) +ChannelAccessManagerTest::NotifyAccessGranted (uint32_t i) { - Ptr state = m_dca[i]; + Ptr state = m_txop[i]; NS_TEST_EXPECT_MSG_EQ (state->m_expectedGrants.empty (), false, "Have expected grants"); if (!state->m_expectedGrants.empty ()) { std::pair expected = state->m_expectedGrants.front (); state->m_expectedGrants.pop_front (); NS_TEST_EXPECT_MSG_EQ (Simulator::Now (), MicroSeconds (expected.second), "Expected access grant is now"); - m_dcfManager->NotifyTxStartNow (MicroSeconds (expected.first)); - m_dcfManager->NotifyAckTimeoutStartNow (MicroSeconds (m_ackTimeoutValue + expected.first)); + m_ChannelAccessManager->NotifyTxStartNow (MicroSeconds (expected.first)); + m_ChannelAccessManager->NotifyAckTimeoutStartNow (MicroSeconds (m_ackTimeoutValue + expected.first)); } } void -DcfManagerTest::AddTxEvt (uint64_t at, uint64_t duration) +ChannelAccessManagerTest::AddTxEvt (uint64_t at, uint64_t duration) { Simulator::Schedule (MicroSeconds (at) - Now (), - &DcfManager::NotifyTxStartNow, m_dcfManager, + &ChannelAccessManager::NotifyTxStartNow, m_ChannelAccessManager, MicroSeconds (duration)); } void -DcfManagerTest::NotifyInternalCollision (uint32_t i) +ChannelAccessManagerTest::NotifyInternalCollision (uint32_t i) { - Ptr state = m_dca[i]; + Ptr state = m_txop[i]; NS_TEST_EXPECT_MSG_EQ (state->m_expectedInternalCollision.empty (), false, "Have expected internal collisions"); if (!state->m_expectedInternalCollision.empty ()) { - struct DcaTxopTest::ExpectedCollision expected = state->m_expectedInternalCollision.front (); + struct TxopTest::ExpectedCollision expected = state->m_expectedInternalCollision.front (); state->m_expectedInternalCollision.pop_front (); NS_TEST_EXPECT_MSG_EQ (Simulator::Now (), MicroSeconds (expected.at), "Expected internal collision time is now"); state->StartBackoffNow (expected.nSlots); @@ -361,13 +383,13 @@ DcfManagerTest::NotifyInternalCollision (uint32_t i) } void -DcfManagerTest::NotifyCollision (uint32_t i) +ChannelAccessManagerTest::NotifyCollision (uint32_t i) { - Ptr state = m_dca[i]; + Ptr state = m_txop[i]; NS_TEST_EXPECT_MSG_EQ (state->m_expectedCollision.empty (), false, "Have expected collisions"); if (!state->m_expectedCollision.empty ()) { - struct DcaTxopTest::ExpectedCollision expected = state->m_expectedCollision.front (); + struct TxopTest::ExpectedCollision expected = state->m_expectedCollision.front (); state->m_expectedCollision.pop_front (); NS_TEST_EXPECT_MSG_EQ (Simulator::Now (), MicroSeconds (expected.at), "Expected collision is now"); state->StartBackoffNow (expected.nSlots); @@ -375,9 +397,9 @@ DcfManagerTest::NotifyCollision (uint32_t i) } void -DcfManagerTest::NotifyChannelSwitching (uint32_t i) +ChannelAccessManagerTest::NotifyChannelSwitching (uint32_t i) { - Ptr state = m_dca[i]; + Ptr state = m_txop[i]; if (!state->m_expectedGrants.empty ()) { std::pair expected = state->m_expectedGrants.front (); @@ -388,182 +410,185 @@ DcfManagerTest::NotifyChannelSwitching (uint32_t i) } void -DcfManagerTest::ExpectInternalCollision (uint64_t time, uint32_t nSlots, uint32_t from) +ChannelAccessManagerTest::ExpectInternalCollision (uint64_t time, uint32_t nSlots, uint32_t from) { - Ptr state = m_dca[from]; - struct DcaTxopTest::ExpectedCollision col; + Ptr state = m_txop[from]; + struct TxopTest::ExpectedCollision col; col.at = time; col.nSlots = nSlots; state->m_expectedInternalCollision.push_back (col); } void -DcfManagerTest::ExpectCollision (uint64_t time, uint32_t nSlots, uint32_t from) +ChannelAccessManagerTest::ExpectCollision (uint64_t time, uint32_t nSlots, uint32_t from) { - Ptr state = m_dca[from]; - struct DcaTxopTest::ExpectedCollision col; + Ptr state = m_txop[from]; + struct TxopTest::ExpectedCollision col; col.at = time; col.nSlots = nSlots; state->m_expectedCollision.push_back (col); } void -DcfManagerTest::StartTest (uint64_t slotTime, uint64_t sifs, uint64_t eifsNoDifsNoSifs, uint32_t ackTimeoutValue) +ChannelAccessManagerTest::StartTest (uint64_t slotTime, uint64_t sifs, uint64_t eifsNoDifsNoSifs, uint32_t ackTimeoutValue) { - m_dcfManager = CreateObject (); - m_dcfManager->SetSlot (MicroSeconds (slotTime)); - m_dcfManager->SetSifs (MicroSeconds (sifs)); - m_dcfManager->SetEifsNoDifs (MicroSeconds (eifsNoDifsNoSifs + sifs)); + m_ChannelAccessManager = CreateObject (); + m_low = CreateObject (); + m_ChannelAccessManager->SetupLow (m_low); + m_ChannelAccessManager->SetSlot (MicroSeconds (slotTime)); + m_ChannelAccessManager->SetSifs (MicroSeconds (sifs)); + m_ChannelAccessManager->SetEifsNoDifs (MicroSeconds (eifsNoDifsNoSifs + sifs)); m_ackTimeoutValue = ackTimeoutValue; } void -DcfManagerTest::AddDcfState (uint32_t aifsn) +ChannelAccessManagerTest::AddDcfState (uint32_t aifsn) { - Ptr dca = CreateObject (this, m_dca.size ()); - dca->SetAifsn (aifsn); - m_dca.push_back (dca); - m_dcfManager->Add (dca); + Ptr txop = CreateObject (this, m_txop.size ()); + txop->SetAifsn (aifsn); + m_txop.push_back (txop); + m_ChannelAccessManager->Add (txop); } void -DcfManagerTest::EndTest (void) +ChannelAccessManagerTest::EndTest (void) { Simulator::Run (); Simulator::Destroy (); - for (Dca::const_iterator i = m_dca.begin (); i != m_dca.end (); i++) + for (TxopTests::const_iterator i = m_txop.begin (); i != m_txop.end (); i++) { - Ptr state = *i; + Ptr state = *i; NS_TEST_EXPECT_MSG_EQ (state->m_expectedGrants.empty (), true, "Have no expected grants"); NS_TEST_EXPECT_MSG_EQ (state->m_expectedInternalCollision.empty (), true, "Have no internal collisions"); NS_TEST_EXPECT_MSG_EQ (state->m_expectedCollision.empty (), true, "Have no expected collisions"); state = 0; } - m_dca.clear (); + m_txop.clear (); - for (Dca::const_iterator i = m_dca.begin (); i != m_dca.end (); i++) + for (TxopTests::const_iterator i = m_txop.begin (); i != m_txop.end (); i++) { - Ptr dca = *i; - dca->Dispose (); - dca = 0; + Ptr txop = *i; + txop->Dispose (); + txop = 0; } - m_dca.clear (); + m_txop.clear (); - m_dcfManager = 0; + m_ChannelAccessManager = 0; + m_low = 0; } void -DcfManagerTest::AddRxOkEvt (uint64_t at, uint64_t duration) +ChannelAccessManagerTest::AddRxOkEvt (uint64_t at, uint64_t duration) { Simulator::Schedule (MicroSeconds (at) - Now (), - &DcfManager::NotifyRxStartNow, m_dcfManager, + &ChannelAccessManager::NotifyRxStartNow, m_ChannelAccessManager, MicroSeconds (duration)); Simulator::Schedule (MicroSeconds (at + duration) - Now (), - &DcfManager::NotifyRxEndOkNow, m_dcfManager); + &ChannelAccessManager::NotifyRxEndOkNow, m_ChannelAccessManager); } void -DcfManagerTest::AddRxInsideSifsEvt (uint64_t at, uint64_t duration) +ChannelAccessManagerTest::AddRxInsideSifsEvt (uint64_t at, uint64_t duration) { Simulator::Schedule (MicroSeconds (at) - Now (), - &DcfManager::NotifyRxStartNow, m_dcfManager, + &ChannelAccessManager::NotifyRxStartNow, m_ChannelAccessManager, MicroSeconds (duration)); } void -DcfManagerTest::AddRxErrorEvt (uint64_t at, uint64_t duration) +ChannelAccessManagerTest::AddRxErrorEvt (uint64_t at, uint64_t duration) { Simulator::Schedule (MicroSeconds (at) - Now (), - &DcfManager::NotifyRxStartNow, m_dcfManager, + &ChannelAccessManager::NotifyRxStartNow, m_ChannelAccessManager, MicroSeconds (duration)); Simulator::Schedule (MicroSeconds (at + duration) - Now (), - &DcfManager::NotifyRxEndErrorNow, m_dcfManager); + &ChannelAccessManager::NotifyRxEndErrorNow, m_ChannelAccessManager); } void -DcfManagerTest::AddNavReset (uint64_t at, uint64_t duration) +ChannelAccessManagerTest::AddNavReset (uint64_t at, uint64_t duration) { Simulator::Schedule (MicroSeconds (at) - Now (), - &DcfManager::NotifyNavResetNow, m_dcfManager, + &ChannelAccessManager::NotifyNavResetNow, m_ChannelAccessManager, MicroSeconds (duration)); } void -DcfManagerTest::AddNavStart (uint64_t at, uint64_t duration) +ChannelAccessManagerTest::AddNavStart (uint64_t at, uint64_t duration) { Simulator::Schedule (MicroSeconds (at) - Now (), - &DcfManager::NotifyNavStartNow, m_dcfManager, + &ChannelAccessManager::NotifyNavStartNow, m_ChannelAccessManager, MicroSeconds (duration)); } void -DcfManagerTest::AddAckTimeoutReset (uint64_t at) +ChannelAccessManagerTest::AddAckTimeoutReset (uint64_t at) { Simulator::Schedule (MicroSeconds (at) - Now (), - &DcfManager::NotifyAckTimeoutResetNow, m_dcfManager); + &ChannelAccessManager::NotifyAckTimeoutResetNow, m_ChannelAccessManager); } void -DcfManagerTest::AddAccessRequest (uint64_t at, uint64_t txTime, - uint64_t expectedGrantTime, uint32_t from) +ChannelAccessManagerTest::AddAccessRequest (uint64_t at, uint64_t txTime, + uint64_t expectedGrantTime, uint32_t from) { AddAccessRequestWithSuccessfullAck (at, txTime, expectedGrantTime, 0, from); } void -DcfManagerTest::AddAccessRequestWithAckTimeout (uint64_t at, uint64_t txTime, - uint64_t expectedGrantTime, uint32_t from) +ChannelAccessManagerTest::AddAccessRequestWithAckTimeout (uint64_t at, uint64_t txTime, + uint64_t expectedGrantTime, uint32_t from) { Simulator::Schedule (MicroSeconds (at) - Now (), - &DcfManagerTest::DoAccessRequest, this, - txTime, expectedGrantTime, m_dca[from]); + &ChannelAccessManagerTest::DoAccessRequest, this, + txTime, expectedGrantTime, m_txop[from]); } void -DcfManagerTest::AddAccessRequestWithSuccessfullAck (uint64_t at, uint64_t txTime, - uint64_t expectedGrantTime, uint32_t ackDelay, uint32_t from) +ChannelAccessManagerTest::AddAccessRequestWithSuccessfullAck (uint64_t at, uint64_t txTime, + uint64_t expectedGrantTime, uint32_t ackDelay, uint32_t from) { NS_ASSERT (ackDelay < m_ackTimeoutValue); Simulator::Schedule (MicroSeconds (at) - Now (), - &DcfManagerTest::DoAccessRequest, this, - txTime, expectedGrantTime, m_dca[from]); + &ChannelAccessManagerTest::DoAccessRequest, this, + txTime, expectedGrantTime, m_txop[from]); AddAckTimeoutReset (expectedGrantTime + txTime + ackDelay); } void -DcfManagerTest::DoAccessRequest (uint64_t txTime, uint64_t expectedGrantTime, Ptr state) +ChannelAccessManagerTest::DoAccessRequest (uint64_t txTime, uint64_t expectedGrantTime, Ptr state) { state->QueueTx (txTime, expectedGrantTime); - m_dcfManager->RequestAccess (state); + m_ChannelAccessManager->RequestAccess (state); } void -DcfManagerTest::AddCcaBusyEvt (uint64_t at, uint64_t duration) +ChannelAccessManagerTest::AddCcaBusyEvt (uint64_t at, uint64_t duration) { Simulator::Schedule (MicroSeconds (at) - Now (), - &DcfManager::NotifyMaybeCcaBusyStartNow, m_dcfManager, + &ChannelAccessManager::NotifyMaybeCcaBusyStartNow, m_ChannelAccessManager, MicroSeconds (duration)); } void -DcfManagerTest::AddSwitchingEvt (uint64_t at, uint64_t duration) +ChannelAccessManagerTest::AddSwitchingEvt (uint64_t at, uint64_t duration) { Simulator::Schedule (MicroSeconds (at) - Now (), - &DcfManager::NotifySwitchingStartNow, m_dcfManager, + &ChannelAccessManager::NotifySwitchingStartNow, m_ChannelAccessManager, MicroSeconds (duration)); } void -DcfManagerTest::AddRxStartEvt (uint64_t at, uint64_t duration) +ChannelAccessManagerTest::AddRxStartEvt (uint64_t at, uint64_t duration) { Simulator::Schedule (MicroSeconds (at) - Now (), - &DcfManager::NotifyRxStartNow, m_dcfManager, + &ChannelAccessManager::NotifyRxStartNow, m_ChannelAccessManager, MicroSeconds (duration)); } void -DcfManagerTest::DoRun (void) +ChannelAccessManagerTest::DoRun (void) { // Bug 2369 addresses this case // 0 3 4 5 8 9 10 12 @@ -915,7 +940,7 @@ public: DcfTestSuite::DcfTestSuite () : TestSuite ("devices-wifi-dcf", UNIT) { - AddTestCase (new DcfManagerTest, TestCase::QUICK); + AddTestCase (new ChannelAccessManagerTest, TestCase::QUICK); } static DcfTestSuite g_dcfTestSuite; diff --git a/src/wifi/test/wifi-aggregation-test.cc b/src/wifi/test/wifi-aggregation-test.cc index 7e01f7dbb..912624c20 100644 --- a/src/wifi/test/wifi-aggregation-test.cc +++ b/src/wifi/test/wifi-aggregation-test.cc @@ -23,7 +23,7 @@ #include "ns3/simulator.h" #include "ns3/wifi-mac-queue.h" #include "ns3/mac-low.h" -#include "ns3/edca-txop-n.h" +#include "ns3/qos-txop.h" #include "ns3/yans-wifi-phy.h" #include "ns3/mac-tx-middle.h" #include "ns3/msdu-aggregator.h" @@ -48,12 +48,12 @@ private: virtual void DoRun (void); Ptr m_low; ///< MacLow Ptr m_phy; ///< Phy - Ptr m_edca; ///< EDCA + Ptr m_txop; ///< QosTxop Ptr m_txMiddle; ///< MacTxMiddle Ptr m_manager; ///< remote station manager ObjectFactory m_factory; ///< factory Ptr m_mpduAggregator; ///< A-MPDU aggregrator - Ptr m_dcfManager; ///< DCF manager + Ptr m_channelAccessManager; ///< channel access manager }; AmpduAggregationTest::AmpduAggregationTest () @@ -88,20 +88,20 @@ AmpduAggregationTest::DoRun (void) m_low->SetWifiRemoteStationManager (m_manager); m_low->SetAddress (Mac48Address ("00:00:00:00:00:01")); - m_dcfManager = CreateObject (); - m_dcfManager->SetupLow (m_low); - m_dcfManager->SetupPhyListener (m_phy); - m_dcfManager->SetSlot (MicroSeconds (9)); + m_channelAccessManager = CreateObject (); + m_channelAccessManager->SetupLow (m_low); + m_channelAccessManager->SetupPhyListener (m_phy); + m_channelAccessManager->SetSlot (MicroSeconds (9)); - m_edca = CreateObject (); - m_edca->SetMacLow (m_low); - m_edca->SetAccessCategory (AC_BE); - m_edca->SetWifiRemoteStationManager (m_manager); - m_edca->SetDcfManager (m_dcfManager); + m_txop = CreateObject (); + m_txop->SetMacLow (m_low); + m_txop->SetAccessCategory (AC_BE); + m_txop->SetWifiRemoteStationManager (m_manager); + m_txop->SetChannelAccessManager (m_channelAccessManager); m_txMiddle = Create (); - m_edca->SetTxMiddle (m_txMiddle); - m_edca->CompleteConfig (); + m_txop->SetTxMiddle (m_txMiddle); + m_txop->CompleteConfig (); /* * Configure MPDU aggregation. @@ -110,7 +110,7 @@ AmpduAggregationTest::DoRun (void) m_factory.SetTypeId ("ns3::MpduAggregator"); m_mpduAggregator = m_factory.Create (); m_mpduAggregator->SetMaxAmpduSize (65535); - m_edca->SetMpduAggregator (m_mpduAggregator); + m_txop->SetMpduAggregator (m_mpduAggregator); /* * Create a dummy packet of 1500 bytes and fill mac header fields. @@ -137,7 +137,7 @@ AmpduAggregationTest::DoRun (void) reqHdr.SetBufferSize (0); reqHdr.SetTimeout (0); reqHdr.SetStartingSequence (0); - m_edca->m_baManager->CreateAgreement (&reqHdr, hdr.GetAddr1 ()); + m_txop->m_baManager->CreateAgreement (&reqHdr, hdr.GetAddr1 ()); //----------------------------------------------------------------------------------------------------- @@ -171,15 +171,15 @@ AmpduAggregationTest::DoRun (void) hdr2.SetType (WIFI_MAC_QOSDATA); hdr2.SetQosTid (0); - m_edca->GetWifiMacQueue ()->Enqueue (Create (pkt1, hdr1)); - m_edca->GetWifiMacQueue ()->Enqueue (Create (pkt2, hdr2)); + m_txop->GetWifiMacQueue ()->Enqueue (Create (pkt1, hdr1)); + m_txop->GetWifiMacQueue ()->Enqueue (Create (pkt2, hdr2)); isAmpdu = m_low->IsAmpdu (pkt, hdr); uint32_t aggregationQueueSize = m_low->m_aggregateQueue[0]->GetNPackets (); NS_TEST_EXPECT_MSG_EQ (isAmpdu, true, "MPDU aggregation failed"); NS_TEST_EXPECT_MSG_EQ (m_low->m_currentPacket->GetSize (), 4606, "A-MPDU size is not correct"); NS_TEST_EXPECT_MSG_EQ (aggregationQueueSize, 3, "aggregation queue should not be empty"); - NS_TEST_EXPECT_MSG_EQ (m_edca->GetWifiMacQueue ()->GetNPackets (), 0, "queue should be empty"); + NS_TEST_EXPECT_MSG_EQ (m_txop->GetWifiMacQueue ()->GetNPackets (), 0, "queue should be empty"); Ptr dequeuedItem; WifiMacHeader dequeuedHdr; @@ -219,23 +219,23 @@ AmpduAggregationTest::DoRun (void) hdr3.SetType (WIFI_MAC_DATA); hdr3.SetQosTid (0); - m_edca->GetWifiMacQueue ()->Enqueue (Create (pkt3, hdr3)); + m_txop->GetWifiMacQueue ()->Enqueue (Create (pkt3, hdr3)); isAmpdu = m_low->IsAmpdu (pkt1, hdr1); NS_TEST_EXPECT_MSG_EQ (isAmpdu, false, "a single packet for this destination should not result in an A-MPDU"); NS_TEST_EXPECT_MSG_EQ (m_low->m_aggregateQueue[0]->GetNPackets (), 0, "aggregation queue is not flushed"); - m_edca->m_currentHdr = hdr2; - m_edca->m_currentPacket = pkt2->Copy (); + m_txop->m_currentHdr = hdr2; + m_txop->m_currentPacket = pkt2->Copy (); isAmpdu = m_low->IsAmpdu (pkt2, hdr2); NS_TEST_EXPECT_MSG_EQ (isAmpdu, false, "no MPDU aggregation should be performed if there is no agreement"); NS_TEST_EXPECT_MSG_EQ (m_low->m_aggregateQueue[0]->GetNPackets (), 0, "aggregation queue is not flushed"); m_manager->SetMaxSlrc (0); //set to 0 in order to fake that the maximum number of retries has been reached - m_edca->MissedAck (); + m_txop->MissedAck (); - NS_TEST_EXPECT_MSG_EQ (m_edca->m_currentPacket, 0, "packet should be discarded"); - m_edca->GetWifiMacQueue ()->Remove (pkt3); + NS_TEST_EXPECT_MSG_EQ (m_txop->m_currentPacket, 0, "packet should be discarded"); + m_txop->GetWifiMacQueue ()->Remove (pkt3); Simulator::Destroy (); @@ -244,11 +244,11 @@ AmpduAggregationTest::DoRun (void) m_low->Dispose (); m_low = 0; - m_edca->Dispose (); - m_edca = 0; + m_txop->Dispose (); + m_txop = 0; - m_dcfManager->Dispose (); - m_dcfManager = 0; + m_channelAccessManager->Dispose (); + m_channelAccessManager = 0; } /** @@ -266,7 +266,7 @@ private: virtual void DoRun (void); Ptr m_low; ///< MacLow Ptr m_phy; ///< Phy - Ptr m_edca; ///< EDCA + Ptr m_txop; ///< QosTxop Ptr m_manager; ///< remote station manager ObjectFactory m_factory; ///< factory Ptr m_msduAggregator; ///< A-MSDU aggregator @@ -303,11 +303,11 @@ TwoLevelAggregationTest::DoRun (void) m_low->SetPhy (m_phy); m_low->SetWifiRemoteStationManager (m_manager); - m_edca = CreateObject (); - m_edca->SetMacLow (m_low); - m_edca->SetAccessCategory (AC_BE); - m_edca->SetWifiRemoteStationManager (m_manager); - m_edca->CompleteConfig (); + m_txop = CreateObject (); + m_txop->SetMacLow (m_low); + m_txop->SetAccessCategory (AC_BE); + m_txop->SetWifiRemoteStationManager (m_manager); + m_txop->CompleteConfig (); /* * Configure aggregation. @@ -318,8 +318,8 @@ TwoLevelAggregationTest::DoRun (void) m_msduAggregator->SetMaxAmsduSize (4095); m_mpduAggregator->SetMaxAmpduSize (65535); - m_edca->SetMsduAggregator (m_msduAggregator); - m_edca->SetMpduAggregator (m_mpduAggregator); + m_txop->SetMsduAggregator (m_msduAggregator); + m_txop->SetMpduAggregator (m_mpduAggregator); /* * Create dummy packets of 1500 bytes and fill mac header fields that will be used for the tests. @@ -342,10 +342,10 @@ TwoLevelAggregationTest::DoRun (void) * - A-MSDU frame size should be 3030 bytes (= 2 packets + headers + padding); * - one packet should be removed from the queue (the other packet is removed later in MacLow::AggregateToAmpdu) . */ - m_edca->GetWifiMacQueue ()->Enqueue (Create (pkt, hdr)); - m_edca->GetWifiMacQueue ()->Enqueue (Create (pkt, hdr)); + m_txop->GetWifiMacQueue ()->Enqueue (Create (pkt, hdr)); + m_txop->GetWifiMacQueue ()->Enqueue (Create (pkt, hdr)); - Ptr peekedItem = m_edca->GetWifiMacQueue ()->PeekByTidAndAddress (0, WifiMacHeader::ADDR1, + Ptr peekedItem = m_txop->GetWifiMacQueue ()->PeekByTidAndAddress (0, WifiMacHeader::ADDR1, hdr.GetAddr1 ()); Ptr peekedPacket = peekedItem->GetPacket (); peekedHdr = peekedItem->GetHeader (); @@ -359,7 +359,7 @@ TwoLevelAggregationTest::DoRun (void) bool result = (packet != 0); NS_TEST_EXPECT_MSG_EQ (result, true, "aggregation failed"); NS_TEST_EXPECT_MSG_EQ (packet->GetSize (), 3030, "wrong packet size"); - NS_TEST_EXPECT_MSG_EQ (m_edca->GetWifiMacQueue ()->GetNPackets (), 0, "aggregated packets not removed from the queue"); + NS_TEST_EXPECT_MSG_EQ (m_txop->GetWifiMacQueue ()->GetNPackets (), 0, "aggregated packets not removed from the queue"); //----------------------------------------------------------------------------------------------------- @@ -372,9 +372,9 @@ TwoLevelAggregationTest::DoRun (void) m_factory.SetTypeId ("ns3::MpduAggregator"); m_mpduAggregator = m_factory.Create (); m_mpduAggregator->SetMaxAmpduSize (65535); - m_edca->SetMpduAggregator (m_mpduAggregator); + m_txop->SetMpduAggregator (m_mpduAggregator); - m_edca->GetWifiMacQueue ()->Enqueue (Create (pkt, hdr)); + m_txop->GetWifiMacQueue ()->Enqueue (Create (pkt, hdr)); packet = m_low->PerformMsduAggregation (peekedPacket, &peekedHdr, &tstamp, currentAggregatedPacket, 0); result = (packet != 0); @@ -389,8 +389,8 @@ TwoLevelAggregationTest::DoRun (void) */ m_mpduAggregator->SetMaxAmpduSize (4095); - m_edca->GetWifiMacQueue ()->Remove (pkt); - m_edca->GetWifiMacQueue ()->Remove (pkt); + m_txop->GetWifiMacQueue ()->Remove (pkt); + m_txop->GetWifiMacQueue ()->Remove (pkt); packet = m_low->PerformMsduAggregation (peekedPacket, &peekedHdr, &tstamp, currentAggregatedPacket, 0); result = (packet != 0); @@ -401,8 +401,8 @@ TwoLevelAggregationTest::DoRun (void) m_low->Dispose (); m_low = 0; - m_edca->Dispose (); - m_edca = 0; + m_txop->Dispose (); + m_txop = 0; } diff --git a/src/wifi/test/wifi-test.cc b/src/wifi/test/wifi-test.cc index 53612460c..b6d545c11 100644 --- a/src/wifi/test/wifi-test.cc +++ b/src/wifi/test/wifi-test.cc @@ -55,25 +55,25 @@ AssignWifiRandomStreams (Ptr mac, int64_t stream) if (rmac) { PointerValue ptr; - rmac->GetAttribute ("DcaTxop", ptr); - Ptr dcaTxop = ptr.Get (); - currentStream += dcaTxop->AssignStreams (currentStream); + rmac->GetAttribute ("Txop", ptr); + Ptr txop = ptr.Get (); + currentStream += txop->AssignStreams (currentStream); - rmac->GetAttribute ("VO_EdcaTxopN", ptr); - Ptr vo_edcaTxopN = ptr.Get (); - currentStream += vo_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("VO_Txop", ptr); + Ptr vo_txop = ptr.Get (); + currentStream += vo_txop->AssignStreams (currentStream); - rmac->GetAttribute ("VI_EdcaTxopN", ptr); - Ptr vi_edcaTxopN = ptr.Get (); - currentStream += vi_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("VI_Txop", ptr); + Ptr vi_txop = ptr.Get (); + currentStream += vi_txop->AssignStreams (currentStream); - rmac->GetAttribute ("BE_EdcaTxopN", ptr); - Ptr be_edcaTxopN = ptr.Get (); - currentStream += be_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("BE_Txop", ptr); + Ptr be_txop = ptr.Get (); + currentStream += be_txop->AssignStreams (currentStream); - rmac->GetAttribute ("BK_EdcaTxopN", ptr); - Ptr bk_edcaTxopN = ptr.Get (); - bk_edcaTxopN->AssignStreams (currentStream); + rmac->GetAttribute ("BK_Txop", ptr); + Ptr bk_txop = ptr.Get (); + bk_txop->AssignStreams (currentStream); } } @@ -493,9 +493,9 @@ DcfImmediateAccessBroadcastTestCase::DoRun (void) Ptr txMac = m_mac.Create (); txMac->ConfigureStandard (WIFI_PHY_STANDARD_80211a); //Fix the stream assignment to the Dcf Txop objects (backoffs) - //The below stream assignment will result in the DcaTxop object + //The below stream assignment will result in the Txop object //using a backoff value of zero for this test when the - //DcaTxop::EndTxNoAck() calls to StartBackoffNow() + //Txop::EndTxNoAck() calls to StartBackoffNow() AssignWifiRandomStreams (txMac, 23); Ptr txMobility = CreateObject (); diff --git a/src/wifi/wscript b/src/wifi/wscript index 019573079..392828952 100644 --- a/src/wifi/wscript +++ b/src/wifi/wscript @@ -28,14 +28,15 @@ def build(bld): 'model/wifi-mac-queue.cc', 'model/mac-tx-middle.cc', 'model/mac-rx-middle.cc', - 'model/dca-txop.cc', + 'model/txop.cc', 'model/supported-rates.cc', 'model/capability-information.cc', 'model/status-code.cc', 'model/mgt-headers.cc', - 'model/dcf-manager.cc', + 'model/channel-access-manager.cc', 'model/wifi-mac.cc', 'model/regular-wifi-mac.cc', + 'model/infrastructure-wifi-mac.cc', 'model/wifi-remote-station-manager.cc', 'model/ap-wifi-mac.cc', 'model/sta-wifi-mac.cc', @@ -53,7 +54,7 @@ def build(bld): 'model/minstrel-wifi-manager.cc', 'model/minstrel-ht-wifi-manager.cc', 'model/qos-utils.cc', - 'model/edca-txop-n.cc', + 'model/qos-txop.cc', 'model/msdu-aggregator.cc', 'model/amsdu-subframe-header.cc', 'model/originator-block-ack-agreement.cc', @@ -84,6 +85,7 @@ def build(bld): 'model/simple-frame-capture-model.cc', 'model/he-operation.cc', 'model/extended-capabilities.cc', + 'model/cf-parameter-set.cc', 'model/wifi-mac-queue-item.cc', 'helper/wifi-radio-energy-model-helper.cc', 'helper/athstats-helper.cc', @@ -96,7 +98,7 @@ def build(bld): obj_test = bld.create_ns3_module_test_library('wifi') obj_test.source = [ 'test/block-ack-test-suite.cc', - 'test/dcf-manager-test.cc', + 'test/channel-access-manager-test.cc', 'test/tx-duration-test.cc', 'test/power-rate-adaptation-test.cc', 'test/wifi-test.cc', @@ -142,24 +144,25 @@ def build(bld): 'model/minstrel-ht-wifi-manager.h', 'model/wifi-mac.h', 'model/regular-wifi-mac.h', + 'model/infrastructure-wifi-mac.h', 'model/supported-rates.h', 'model/error-rate-model.h', 'model/yans-error-rate-model.h', 'model/nist-error-rate-model.h', 'model/dsss-error-rate-model.h', 'model/wifi-mac-queue.h', - 'model/dca-txop.h', + 'model/txop.h', 'model/wifi-mac-header.h', 'model/wifi-mac-trailer.h', 'model/wifi-phy-state-helper.h', 'model/qos-utils.h', - 'model/edca-txop-n.h', + 'model/qos-txop.h', 'model/msdu-aggregator.h', 'model/amsdu-subframe-header.h', 'model/mgt-headers.h', 'model/status-code.h', 'model/capability-information.h', - 'model/dcf-manager.h', + 'model/channel-access-manager.h', 'model/mac-tx-middle.h', 'model/mac-rx-middle.h', 'model/mac-low.h', @@ -192,6 +195,7 @@ def build(bld): 'model/qos-blocked-destinations.h', 'model/he-operation.h', 'model/extended-capabilities.h', + 'model/cf-parameter-set.h', 'model/wifi-mac-queue-item.h', 'model/wifi-phy-state.h', 'model/wifi-phy-listener.h',