21 #include "ns3/string.h" 23 #include "ns3/uinteger.h" 24 #include "ns3/boolean.h" 25 #include "ns3/double.h" 27 #include "ns3/packet-sink.h" 28 #include "ns3/yans-wifi-helper.h" 29 #include "ns3/mobility-helper.h" 30 #include "ns3/internet-stack-helper.h" 31 #include "ns3/ipv4-address-helper.h" 32 #include "ns3/packet-sink-helper.h" 33 #include "ns3/on-off-helper.h" 41 virtual void DoRun (
void);
48 :
TestCase (
"MsduAggregator throughput test"),
49 m_writeResults (false)
67 std::string phyMode (
"DsssRate1Mbps");
69 wifi.SetRemoteStationManager (
"ns3::ConstantRateWifiManager",
77 wifiMac.
SetType (
"ns3::ApWifiMac",
89 wifiMac.
SetType (
"ns3::StaWifiMac",
97 mobility.SetMobilityModel (
"ns3::ConstantPositionMobilityModel");
98 mobility.SetPositionAllocator (
"ns3::GridPositionAllocator",
114 address.SetBase (
"192.168.0.0",
"255.255.255.0");
116 staNodeInterface =
address.Assign (staDev);
117 apNodeInterface =
address.Assign (apDev);
122 uint16_t udpPort = 50000;
156 Simulator::Stop (
Seconds (10.0));
158 Simulator::Destroy ();
163 uint32_t totalOctetsThrough =
164 DynamicCast<PacketSink>(sinkApp.
Get (0))->GetTotalRx ();
179 "A-MSDU test fails for low throughput of " 180 << totalOctetsThrough <<
" octets");
194 :
TestSuite (
"ns3-wifi-msdu-aggregator", SYSTEM)
holds a vector of ns3::Application pointers.
AttributeValue implementation for Boolean.
uint32_t GetId(void) const
holds a vector of std::pair of Ptr<Ipv4> and interface index.
WifiMsduAggregatorThroughputTest()
Hold variables of type string.
Make it easy to create and manage PHY objects for the yans model.
ApplicationContainer Install(NodeContainer c) const
Install an ns3::PacketSinkApplication on each node of the input container configured with all the att...
aggregate IP/TCP/UDP functionality to existing Nodes.
A helper to make it easier to instantiate an ns3::PacketSinkApplication on a set of nodes...
helps to create WifiNetDevice objects
A helper to make it easier to instantiate an ns3::OnOffApplication on a set of nodes.
Ptr< YansWifiChannel > Create(void) const
Class for representing data rates.
void SetChannel(Ptr< YansWifiChannel > channel)
virtual void DoRun(void)
Implementation to actually run this TestCase.
ApplicationContainer Install(NodeContainer c) const
Install an ns3::OnOffApplication on each node of the input container configured with all the attribut...
AttributeValue implementation for Time.
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
Ipv4Address GetAddress(uint32_t i, uint32_t j=0) const
Hold an unsigned integer type.
holds a vector of ns3::NetDevice pointers
void Start(Time start)
Arrange for all of the Applications in this container to Start() at the Time given as a parameter...
WifiMsduAggregatorTestSuite()
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void SetConstantRate(DataRate dataRate, uint32_t packetSize=512)
Helper function to set a constant rate source.
keep track of a set of node pointers.
DSSS PHY (Clause 15) and HR/DSSS PHY (Clause 18)
manage and create wifi channel objects for the yans model.
create MAC layers for a ns3::WifiNetDevice.
The IEEE 802.11 SSID Information Element.
virtual void SetType(std::string type, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue(), std::string n8="", const AttributeValue &v8=EmptyAttributeValue(), std::string n9="", const AttributeValue &v9=EmptyAttributeValue(), std::string n10="", const AttributeValue &v10=EmptyAttributeValue())
Helper class used to assign positions and mobility models to nodes.
void Stop(Time stop)
Arrange for all of the Applications in this container to Stop() at the Time given as a parameter...
Time Seconds(double value)
Construct a Time in the indicated unit.
AttributeValue implementation for Ssid.
Ptr< Node > Get(uint32_t i) const
Get the Ptr<Node> stored in this container at a given index.
A helper class to make life easier while doing simple IPv4 address assignment in scripts.
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit.
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.
void EnablePcap(std::string prefix, Ptr< NetDevice > nd, bool promiscuous=false, bool explicitFilename=false)
Enable pcap output the indicated net device.
#define NS_TEST_ASSERT_MSG_GT(actual, limit, msg)
Test that an actual value is greater than a limit and report and abort if not.
This class can be used to hold variables of floating point type such as 'double' or 'float'...
static WifiMsduAggregatorTestSuite wifiMsduAggregatorTestSuite
Ptr< Application > Get(uint32_t i) const
Get the Ptr<Application> stored in this container at a given index.
void SetAttribute(std::string name, const AttributeValue &value)
Helper function used to set the underlying application attributes.