24 #include "ns3/uinteger.h"    25 #include "ns3/double.h"    26 #include "ns3/string.h"    27 #include "ns3/pointer.h"    28 #include "ns3/config.h"    30 #include "ns3/rng-seed-manager.h"    31 #include "ns3/mobility-helper.h"    32 #include "ns3/wifi-net-device.h"    33 #include "ns3/spectrum-wifi-helper.h"    34 #include "ns3/multi-model-spectrum-channel.h"    35 #include "ns3/constant-obss-pd-algorithm.h"    36 #include "ns3/he-configuration.h"    37 #include "ns3/wifi-utils.h"    46   std::string sub = context.substr (10);
    47   uint32_t pos = sub.find (
"/Device");
    48   uint32_t nodeId = atoi (sub.substr (0, pos).c_str ());
    83   virtual void DoRun (
void);
   104   void SetExpectedTxPower (
double txPowerDbm);
   109   void SetupSimulation ();
   114   void CheckResults ();
   119   void ResetResults ();
   137   void NotifyPhyTxBegin (std::string context, 
Ptr<const Packet> p, 
double txPowerW);
   174   : 
TestCase (
"InterBssConstantObssPd"),
   175     m_numSta1PacketsSent (0),
   176     m_numSta2PacketsSent (0),
   177     m_numAp1PacketsSent (0),
   178     m_numAp2PacketsSent (0),
   179     m_numSta1PacketsReceived (0),
   180     m_numSta2PacketsReceived (0),
   181     m_numAp1PacketsReceived (0),
   182     m_numAp2PacketsReceived (0),
   183     m_payloadSize1 (1000),
   184     m_payloadSize2 (1500),
   185     m_payloadSize3 (2000),
   187     m_obssPdLevelDbm (-72),
   188     m_obssRxPowerDbm (-82),
   189     m_expectedTxPowerDbm (15),
   200   positionAlloc->
Add (Vector (0.0, 0.0, 0.0));  
   201   positionAlloc->
Add (Vector (d1 + d2, 0.0, 0.0));  
   202   positionAlloc->
Add (Vector (d1 + d2 + d3 + d4, 0.0, 0.0));  
   203   positionAlloc->
Add (Vector (d1, 0.0, 0.0));  
   204   positionAlloc->
Add (Vector (d1 + d2 + d3, 0.0, 0.0));  
   205   positionAlloc->
Add (Vector (d1 + d2 + d3 + d4 + d5, 0.0, 0.0));  
   206   return positionAlloc;
   293   Simulator::Stop (
Seconds (2.5));
   327   uint32_t pktSize = p->
GetSize () - 38;
   354   uint32_t pktSize = p->
GetSize () - 38;
   392   phy->GetAttribute (
"State", ptr);
   401   RngSeedManager::SetSeed (1);
   402   RngSeedManager::SetRun (1);
   403   int64_t streamNumber = 2;
   419   phy.DisablePreambleDetectionModel ();
   421   channel->SetPropagationDelayModel (CreateObject<ConstantSpeedPropagationDelayModel> ());
   422   channel->AddPropagationLossModel (lossModel);
   429   wifi.SetRemoteStationManager (
"ns3::ConstantRateWifiManager",
   433   wifi.SetObssPdAlgorithm (
"ns3::ConstantObssPdAlgorithm",
   438   mac.SetType (
"ns3::StaWifiMac",
   445   mac.SetType (
"ns3::ApWifiMac",
   472   mobility.SetPositionAllocator (positionAlloc);
   473   mobility.SetMobilityModel (
"ns3::ConstantPositionMobilityModel");
   487   Simulator::Destroy ();
 Ptr< NetDevice > Get(uint32_t i) const
Get the Ptr<NetDevice> stored in this container at a given index. 
static InterBssTestSuite interBssTestSuite
unsigned int m_payloadSize1
size in bytes of packet payload in BSS 1 
Ptr< HeConfiguration > GetHeConfiguration(void) const
void SetDefaultLoss(double defaultLoss)
Set the default propagation loss (in dB, positive) to be used, infinity if not set. 
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload). 
Hold variables of type string. 
void Set(std::string path, const AttributeValue &value)
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not. 
NetDeviceContainer m_staDevices
void SetupSimulation()
Setup the simulation. 
helps to create WifiNetDevice objects 
unsigned int m_numSta2PacketsReceived
number of received packets from STA2 
void SetExpectedTxPower(double txPowerDbm)
unsigned int m_numAp1PacketsSent
number of sent packets from AP1 
Address GetAddress(void) const
Keep track of the current position and velocity of an object. 
NetDeviceContainer m_apDevices
unsigned int m_numAp2PacketsReceived
number of received packets from AP2 
HE PHY for the 5 GHz band (clause 26) 
void ResetResults()
Reset the results. 
Ptr< ListPositionAllocator > AllocatePositions(double d1, double d2, double d3, double d4, double d5)
Allocate the node positions. 
unsigned int m_numSta1PacketsReceived
number of received packets from STA1 
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite. 
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. 
holds a vector of ns3::NetDevice pointers 
virtual void DoRun(void)
Implementation to actually run this TestCase. 
TestInterBssConstantObssPdAlgo()
bool TestDoubleIsEqual(const double x1, const double x2, const double epsilon)
Compare two double precision floating point numbers and declare them equal if they are within some ep...
Callback< R > MakeCallback(R(T::*memPtr)(void), OBJ objPtr)
void CheckPhyState(Ptr< WifiNetDevice > device, WifiPhyState expectedState)
Check if the Phy State for a device is an expected value. 
void Connect(std::string path, const CallbackBase &cb)
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object. 
Ptr< WifiPhy > GetPhy(void) const
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
keep track of a set of node pointers. 
Hold objects of type Ptr<T>. 
bool Send(Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber)
WifiPhyState
The state of the PHY layer. 
double WToDbm(double w)
Convert from Watts to dBm. 
create MAC layers for a ns3::WifiNetDevice. 
void SendOnePacket(Ptr< LrWpanPhy > sender, Ptr< LrWpanPhy > receiver)
The IEEE 802.11 SSID Information Element. 
unsigned int m_numSta2PacketsSent
number of sent packets from STA2 
unsigned int m_numAp1PacketsReceived
number of received packets from AP1 
Helper class used to assign positions and mobility models to nodes. 
This objects implements the PHY state machine of the Wifi device. 
uint32_t ConvertContextToNodeId(std::string context)
WifiPhyState GetState(void) const
Return the current state of WifiPhy. 
The PHY layer is sending a packet. 
unsigned int m_payloadSize3
size in bytes of packet payload in BSS 3 
Time Seconds(double value)
Construct a Time in the indicated unit. 
uint32_t GetN(void) const
Get the number of Ptr<NetDevice> stored in this container. 
  AttributeValue implementation for Ssid. 
The PHY layer is receiving a packet. 
void NotifyPhyRxEnd(std::string context, Ptr< const Packet > p)
Notify Phy receive endsn. 
double m_expectedTxPowerDbm
void Add(Vector v)
Add a position to the list of positions. 
void SetLoss(Ptr< MobilityModel > a, Ptr< MobilityModel > b, double loss, bool symmetric=true)
Set loss (in dB, positive) between pair of ns-3 objects (typically, nodes). 
Ptr< Node > Get(uint32_t i) const
Get the Ptr<Node> stored in this container at a given index. 
void NotifyPhyTxBegin(std::string context, Ptr< const Packet > p, double txPowerW)
Notify Phy transmit begin. 
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit. 
Time Now(void)
create an ns3::Time instance which contains the current simulation time. 
unsigned int m_numAp2PacketsSent
number of sent packets from AP2 
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer. 
This class can be used to hold variables of floating point type such as 'double' or 'float'...
unsigned int m_numSta1PacketsSent
number of sent packets from STA1 
void RunOne()
Run one function. 
void SendOnePacket(Ptr< WifiNetDevice > tx_dev, Ptr< WifiNetDevice > rx_dev, uint32_t payloadSize)
Send one packet function. 
unsigned int m_payloadSize2
size in bytes of packet payload in BSS 2 
void CheckResults()
Check the results. 
Make it easy to create and manage PHY objects for the spectrum model.