21 #include "ns3/wifi-net-device.h" 
   22 #include "ns3/yans-wifi-channel.h" 
   23 #include "ns3/adhoc-wifi-mac.h" 
   24 #include "ns3/yans-wifi-phy.h" 
   25 #include "ns3/parf-wifi-manager.h" 
   26 #include "ns3/propagation-delay-model.h" 
   27 #include "ns3/propagation-loss-model.h" 
   28 #include "ns3/error-rate-model.h" 
   29 #include "ns3/yans-error-rate-model.h" 
   30 #include "ns3/constant-position-mobility-model.h" 
   32 #include "ns3/simulator.h" 
   34 #include "ns3/object-factory.h" 
   35 #include "ns3/dca-txop.h" 
   36 #include "ns3/mac-rx-middle.h" 
   37 #include "ns3/pointer.h" 
   38 #include "ns3/rng-seed-manager.h" 
   39 #include "ns3/edca-txop-n.h" 
   40 #include "ns3/config.h" 
   41 #include "ns3/boolean.h" 
   50   virtual void DoRun (
void);
 
   88   phy->SetChannel (channel);
 
   90   phy->SetMobility (mobility);
 
   96   phy->SetNTxPower (18);
 
   97   phy->SetTxPowerStart (0);
 
   98   phy->SetTxPowerEnd (17);
 
  109   mac->SetAddress (Mac48Address::Allocate ());
 
  112   dev->SetRemoteStationManager (manager);
 
  130   manager->SetAttribute (
"SuccessThreshold",
UintegerValue (10));
 
  146   dev->
Send (p, remoteAddress, 1);
 
  153   WifiTxVector txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  166   for (
int i = 0; i < 10; i++)
 
  168       manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  171   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  184   manager->ReportDataFailed (remoteAddress,&packetHeader);
 
  186   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  199   for (
int i = 0; i < 7; i++)
 
  201       manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  202       manager->ReportDataFailed (remoteAddress,&packetHeader);
 
  204   manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  206   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  219   manager->ReportDataFailed (remoteAddress,&packetHeader);
 
  221   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  234   manager->ReportDataFailed (remoteAddress,&packetHeader);
 
  235   manager->ReportDataFailed (remoteAddress,&packetHeader);
 
  237   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  250   for (
int i = 0; i < 10; i++)
 
  252       manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  255   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  268   manager->ReportDataFailed (remoteAddress,&packetHeader);
 
  270   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  283   for (
int i = 0; i < 10; i++)
 
  285       manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  288   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  301   for (
int i = 0; i < 10; i++)
 
  303       manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  306   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  319   manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  321   for (
int i = 0; i < 2; i++)
 
  323       manager->ReportDataFailed (remoteAddress,&packetHeader);
 
  326   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  333   Simulator::Stop (
Seconds (10.0));
 
  336   Simulator::Destroy ();
 
  352   manager->SetAttribute (
"SuccessThreshold 2",
UintegerValue (10));
 
  370   dev->
Send (p, remoteAddress, 1);
 
  377   WifiTxVector txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  391   for (
int i = 0; i < 3; i++)
 
  393       manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  396   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  409   manager->ReportDataFailed (remoteAddress,&packetHeader);
 
  411   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  425   for (
int i = 0; i < 10; i++)
 
  427       manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  430   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  444   for (
int i = 0; i < 3; i++)
 
  446       manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  449   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  462   for (
int i = 0; i < 16 * 3; i++)
 
  464       manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  467   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  480   manager->ReportDataFailed (remoteAddress,&packetHeader);
 
  482   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  495   for (
int i = 0; i < 16; i++)
 
  497       manager->ReportDataFailed (remoteAddress,&packetHeader);
 
  500   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  514   manager->ReportDataFailed (remoteAddress,&packetHeader);
 
  516   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  529   for (
int i = 0; i < 3; i++)
 
  531       manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  534   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  549   for (
int i = 0; i < 9 * 3; i++)
 
  551       manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  554   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  561   for (
int i = 0; i < 3; i++)
 
  563       manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0);
 
  566   txVector = manager->GetDataTxVector (remoteAddress,&packetHeader,packet,packet->
GetSize ());
 
  573   Simulator::Stop (
Seconds (10.0));
 
  576   Simulator::Destroy ();
 
  596   : 
TestSuite (
"power-rate-adaptation-wifi", UNIT)
 
PowerRateAdaptationTest()
 
PowerRateAdaptationTestSuite()
 
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
 
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory. 
 
bool IsShortGuardInterval(void) const 
 
uint32_t GetSize(void) const 
Returns the the size in bytes of the packet (including the zero-filled initial payload). 
 
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
 
uint8_t GetTxPowerLevel(void) const 
 
Ptr< WifiRemoteStationManager > GetRemoteStationManager(void) const 
 
void AddTestCase(TestCase *testCase, enum TestDuration duration)
Add an individual child TestCase to this test suite. 
 
static PowerRateAdaptationTestSuite g_powerRateAdaptationTestSuite
 
Ptr< Object > Create(void) const 
Create an Object instance of the configured TypeId. 
 
Hold an unsigned integer type. 
 
#define NS_TEST_ASSERT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report and abort if not. 
 
uint32_t GetChannelWidth(void) const 
 
Ptr< NetDevice > GetDevice(uint32_t index) const 
Retrieve the index-th NetDevice associated to this node. 
 
hold a list of per-remote-station state. 
 
OFDM PHY for the 5 GHz band (Clause 17) 
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
virtual bool Send(Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber)
 
uint64_t GetDataRate(uint32_t channelWidth, bool isShortGuardInterval, uint8_t nss) const 
 
Ptr< Node > ConfigureNode()
 
Instantiate subclasses of ns3::Object. 
 
uint32_t AddDevice(Ptr< NetDevice > device)
Associate a NetDevice to this node. 
 
Time Seconds(double value)
Construct a Time in the indicated unit. 
 
virtual void DoRun(void)
Implementation to actually run this TestCase. 
 
WifiMode GetMode(void) const 
 
void SetAttribute(std::string name, const AttributeValue &value)
Set a single attribute, raising fatal errors if unsuccessful.