wifi: Add possibility to set InterferenceHelper from PHY helpers
This commit is contained in:
committed by
Stefano Avallone
parent
c62c648459
commit
021696a5e9
@@ -60,6 +60,7 @@
|
||||
#include "ns3/spectrum-wifi-phy.h"
|
||||
#include "ns3/propagation-loss-model.h"
|
||||
#include "ns3/propagation-delay-model.h"
|
||||
#include "ns3/interference-helper.h"
|
||||
#include "ns3/nist-error-rate-model.h"
|
||||
#include "ns3/constant-position-mobility-model.h"
|
||||
#include "ns3/simple-frame-capture-model.h"
|
||||
@@ -252,10 +253,18 @@ InterferenceExperiment::Run (struct InterferenceExperiment::Input input)
|
||||
rx->CreateWifiSpectrumPhyInterface (devRx);
|
||||
rx->SetDevice (devRx);
|
||||
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
m_txA->SetErrorRateModel (error);
|
||||
m_txB->SetErrorRateModel (error);
|
||||
rx->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> interferenceTxA = CreateObject<InterferenceHelper> ();
|
||||
m_txA->SetInterferenceHelper (interferenceTxA);
|
||||
Ptr<ErrorRateModel> errorTxA = CreateObject<NistErrorRateModel> ();
|
||||
m_txA->SetErrorRateModel (errorTxA);
|
||||
Ptr<InterferenceHelper> interferenceTxB = CreateObject<InterferenceHelper> ();
|
||||
m_txB->SetInterferenceHelper (interferenceTxB);
|
||||
Ptr<ErrorRateModel> errorTxB = CreateObject<NistErrorRateModel> ();
|
||||
m_txB->SetErrorRateModel (errorTxB);
|
||||
Ptr<InterferenceHelper> interferenceRx = CreateObject<InterferenceHelper> ();
|
||||
rx->SetInterferenceHelper (interferenceRx);
|
||||
Ptr<ErrorRateModel> errorRx = CreateObject<NistErrorRateModel> ();
|
||||
rx->SetErrorRateModel (errorRx);
|
||||
m_txA->SetChannel (channel);
|
||||
m_txB->SetChannel (channel);
|
||||
rx->SetChannel (channel);
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "ns3/log.h"
|
||||
#include "ns3/names.h"
|
||||
#include "ns3/spectrum-wifi-phy.h"
|
||||
#include "ns3/interference-helper.h"
|
||||
#include "ns3/error-rate-model.h"
|
||||
#include "ns3/frame-capture-model.h"
|
||||
#include "ns3/preamble-detection-model.h"
|
||||
@@ -37,6 +38,7 @@ SpectrumWifiPhyHelper::SpectrumWifiPhyHelper ()
|
||||
: m_channel (0)
|
||||
{
|
||||
m_phy.SetTypeId ("ns3::SpectrumWifiPhy");
|
||||
SetInterferenceHelper ("ns3::InterferenceHelper");
|
||||
SetErrorRateModel ("ns3::TableBasedErrorRateModel");
|
||||
}
|
||||
|
||||
@@ -58,6 +60,8 @@ SpectrumWifiPhyHelper::Create (Ptr<Node> node, Ptr<WifiNetDevice> device) const
|
||||
{
|
||||
Ptr<SpectrumWifiPhy> phy = m_phy.Create<SpectrumWifiPhy> ();
|
||||
phy->CreateWifiSpectrumPhyInterface (device);
|
||||
Ptr<InterferenceHelper> interference = m_interferenceHelper.Create<InterferenceHelper> ();
|
||||
phy->SetInterferenceHelper (interference);
|
||||
Ptr<ErrorRateModel> error = m_errorRateModel.Create<ErrorRateModel> ();
|
||||
phy->SetErrorRateModel (error);
|
||||
if (m_frameCaptureModel.IsTypeIdSet ())
|
||||
|
||||
@@ -69,6 +69,16 @@ public:
|
||||
*/
|
||||
void Set (std::string name, const AttributeValue &v);
|
||||
|
||||
/**
|
||||
* Helper function used to set the interference helper.
|
||||
*
|
||||
* \tparam Args \deduced Template type parameter pack for the sequence of name-value pairs.
|
||||
* \param type the type of interference helper
|
||||
* \param args A sequence of name-value pairs of the attributes to set.
|
||||
*/
|
||||
template <typename... Args>
|
||||
void SetInterferenceHelper (std::string type, Args&&... args);
|
||||
|
||||
/**
|
||||
* Helper function used to set the error rate model.
|
||||
*
|
||||
@@ -174,6 +184,7 @@ protected:
|
||||
uint16_t staId = SU_STA_ID);
|
||||
|
||||
ObjectFactory m_phy; ///< PHY object
|
||||
ObjectFactory m_interferenceHelper; ///< interference helper
|
||||
ObjectFactory m_errorRateModel; ///< error rate model
|
||||
ObjectFactory m_frameCaptureModel; ///< frame capture model
|
||||
ObjectFactory m_preambleDetectionModel; ///< preamble detection model
|
||||
@@ -416,6 +427,14 @@ protected:
|
||||
|
||||
namespace ns3 {
|
||||
|
||||
template <typename... Args>
|
||||
void
|
||||
WifiPhyHelper::SetInterferenceHelper (std::string type, Args&&... args)
|
||||
{
|
||||
m_interferenceHelper.SetTypeId (type);
|
||||
m_interferenceHelper.Set (args...);
|
||||
}
|
||||
|
||||
template <typename... Args>
|
||||
void
|
||||
WifiPhyHelper::SetErrorRateModel (std::string type, Args&&... args)
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "ns3/names.h"
|
||||
#include "ns3/propagation-loss-model.h"
|
||||
#include "ns3/propagation-delay-model.h"
|
||||
#include "ns3/interference-helper.h"
|
||||
#include "ns3/error-rate-model.h"
|
||||
#include "ns3/frame-capture-model.h"
|
||||
#include "ns3/preamble-detection-model.h"
|
||||
@@ -128,6 +129,7 @@ YansWifiPhyHelper::YansWifiPhyHelper ()
|
||||
: m_channel (0)
|
||||
{
|
||||
m_phy.SetTypeId ("ns3::YansWifiPhy");
|
||||
SetInterferenceHelper ("ns3::InterferenceHelper");
|
||||
SetErrorRateModel ("ns3::TableBasedErrorRateModel");
|
||||
}
|
||||
|
||||
@@ -148,6 +150,8 @@ Ptr<WifiPhy>
|
||||
YansWifiPhyHelper::Create (Ptr<Node> node, Ptr<WifiNetDevice> device) const
|
||||
{
|
||||
Ptr<YansWifiPhy> phy = m_phy.Create<YansWifiPhy> ();
|
||||
Ptr<InterferenceHelper> interference = m_interferenceHelper.Create<InterferenceHelper> ();
|
||||
phy->SetInterferenceHelper (interference);
|
||||
Ptr<ErrorRateModel> error = m_errorRateModel.Create<ErrorRateModel> ();
|
||||
phy->SetErrorRateModel (error);
|
||||
if (m_frameCaptureModel.IsTypeIdSet ())
|
||||
|
||||
@@ -326,7 +326,6 @@ WifiPhy::WifiPhy ()
|
||||
m_timeLastPreambleDetected (Seconds (0))
|
||||
{
|
||||
NS_LOG_FUNCTION (this);
|
||||
m_interference = CreateObject<InterferenceHelper> ();
|
||||
m_random = CreateObject<UniformRandomVariable> ();
|
||||
m_state = CreateObject<WifiPhyStateHelper> ();
|
||||
}
|
||||
@@ -353,6 +352,11 @@ WifiPhy::DoDispose (void)
|
||||
m_wifiRadioEnergyModel = 0;
|
||||
m_postReceptionErrorModel = 0;
|
||||
m_supportedChannelWidthSet.clear ();
|
||||
if (m_interference != nullptr)
|
||||
{
|
||||
m_interference->Dispose ();
|
||||
}
|
||||
m_interference = 0;
|
||||
m_random = 0;
|
||||
m_state = 0;
|
||||
m_currentEvent = 0;
|
||||
@@ -442,8 +446,11 @@ void
|
||||
WifiPhy::SetRxNoiseFigure (double noiseFigureDb)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << noiseFigureDb);
|
||||
m_interference->SetNoiseFigure (DbToRatio (noiseFigureDb));
|
||||
m_interference->SetNumberOfReceiveAntennas (GetNumberOfAntennas ());
|
||||
if (m_interference)
|
||||
{
|
||||
m_interference->SetNoiseFigure (DbToRatio (noiseFigureDb));
|
||||
}
|
||||
m_noiseFigureDb = noiseFigureDb;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -556,10 +563,18 @@ WifiPhy::GetMobility (void) const
|
||||
}
|
||||
|
||||
void
|
||||
WifiPhy::SetErrorRateModel (const Ptr<ErrorRateModel> rate)
|
||||
WifiPhy::SetInterferenceHelper (const Ptr<InterferenceHelper> helper)
|
||||
{
|
||||
m_interference->SetErrorRateModel (rate);
|
||||
m_interference->SetNumberOfReceiveAntennas (GetNumberOfAntennas ());
|
||||
m_interference = helper;
|
||||
m_interference->SetNoiseFigure (DbToRatio (m_noiseFigureDb));
|
||||
m_interference->SetNumberOfReceiveAntennas (m_numberOfAntennas);
|
||||
}
|
||||
|
||||
void
|
||||
WifiPhy::SetErrorRateModel (const Ptr<ErrorRateModel> model)
|
||||
{
|
||||
NS_ASSERT (m_interference != nullptr);
|
||||
m_interference->SetErrorRateModel (model);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -1061,9 +1076,13 @@ WifiPhy::DoChannelSwitch (void)
|
||||
void
|
||||
WifiPhy::SetNumberOfAntennas (uint8_t antennas)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << +antennas);
|
||||
NS_ASSERT_MSG (antennas > 0 && antennas <= 4, "unsupported number of antennas");
|
||||
m_numberOfAntennas = antennas;
|
||||
m_interference->SetNumberOfReceiveAntennas (antennas);
|
||||
if (m_interference)
|
||||
{
|
||||
m_interference->SetNumberOfReceiveAntennas (antennas);
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t
|
||||
|
||||
@@ -887,12 +887,19 @@ public:
|
||||
*/
|
||||
bool GetShortPhyPreambleSupported (void) const;
|
||||
|
||||
/**
|
||||
* Sets the interference helper.
|
||||
*
|
||||
* \param helper the interference helper
|
||||
*/
|
||||
virtual void SetInterferenceHelper (const Ptr<InterferenceHelper> helper);
|
||||
|
||||
/**
|
||||
* Sets the error rate model.
|
||||
*
|
||||
* \param rate the error rate model
|
||||
* \param model the error rate model
|
||||
*/
|
||||
void SetErrorRateModel (const Ptr<ErrorRateModel> rate);
|
||||
void SetErrorRateModel (const Ptr<ErrorRateModel> model);
|
||||
/**
|
||||
* Attach a receive ErrorModel to the WifiPhy.
|
||||
*
|
||||
@@ -1373,6 +1380,8 @@ private:
|
||||
uint8_t m_txSpatialStreams; //!< Number of supported TX spatial streams
|
||||
uint8_t m_rxSpatialStreams; //!< Number of supported RX spatial streams
|
||||
|
||||
double m_noiseFigureDb; //!< The noise figure in dB
|
||||
|
||||
Time m_channelSwitchDelay; //!< Time required to switch between channel
|
||||
|
||||
Ptr<WifiNetDevice> m_device; //!< Pointer to the device
|
||||
|
||||
@@ -45,6 +45,12 @@ YansWifiPhy::GetTypeId (void)
|
||||
YansWifiPhy::YansWifiPhy ()
|
||||
{
|
||||
NS_LOG_FUNCTION (this);
|
||||
}
|
||||
|
||||
void
|
||||
YansWifiPhy::SetInterferenceHelper (const Ptr<InterferenceHelper> helper)
|
||||
{
|
||||
WifiPhy::SetInterferenceHelper (helper);
|
||||
//add dummy band for Yans
|
||||
WifiSpectrumBand band;
|
||||
band.first = 0;
|
||||
|
||||
@@ -56,7 +56,7 @@ public:
|
||||
YansWifiPhy ();
|
||||
virtual ~YansWifiPhy ();
|
||||
|
||||
// Implementation of pure virtual method.
|
||||
void SetInterferenceHelper (const Ptr<InterferenceHelper> helper) override;
|
||||
void StartTx (Ptr<WifiPpdu> ppdu) override;
|
||||
Ptr<Channel> GetChannel (void) const override;
|
||||
uint16_t GetGuardBandwidth (uint16_t currentChannelWidth) const override;
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include "ns3/simulator.h"
|
||||
#include "ns3/test.h"
|
||||
#include "ns3/frame-exchange-manager.h"
|
||||
#include "ns3/interference-helper.h"
|
||||
#include "ns3/wifi-default-protection-manager.h"
|
||||
#include "ns3/wifi-default-ack-manager.h"
|
||||
|
||||
@@ -99,6 +100,8 @@ PowerRateAdaptationTest::ConfigureNode ()
|
||||
* Create and configure phy layer.
|
||||
*/
|
||||
Ptr<YansWifiPhy> phy = CreateObject<YansWifiPhy> ();
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
phy->SetInterferenceHelper (interferenceHelper);
|
||||
phy->SetChannel (channel);
|
||||
phy->SetDevice (dev);
|
||||
phy->SetMobility (mobility);
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "ns3/wifi-spectrum-value-helper.h"
|
||||
#include "ns3/multi-model-spectrum-channel.h"
|
||||
#include "ns3/spectrum-wifi-phy.h"
|
||||
#include "ns3/interference-helper.h"
|
||||
#include "ns3/nist-error-rate-model.h"
|
||||
#include "ns3/wifi-mac-header.h"
|
||||
#include "ns3/wifi-spectrum-signal-parameters.h"
|
||||
@@ -177,6 +178,8 @@ SpectrumWifiPhyBasicTest::DoSetup (void)
|
||||
m_phy = CreateObject<SpectrumWifiPhy> ();
|
||||
m_phy->SetOperatingChannel (WifiPhy::ChannelTuple {CHANNEL_NUMBER, 0, WIFI_PHY_BAND_5GHZ, 0});
|
||||
m_phy->ConfigureStandard (WIFI_STANDARD_80211n);
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phy->SetInterferenceHelper (interferenceHelper);
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
m_phy->SetErrorRateModel (error);
|
||||
m_phy->SetReceiveOkCallback (MakeCallback (&SpectrumWifiPhyBasicTest::SpectrumWifiPhyRxSuccess, this));
|
||||
@@ -471,8 +474,10 @@ SpectrumWifiPhyFilterTest::DoSetup (void)
|
||||
m_txPhy = CreateObject<ExtSpectrumWifiPhy> ();
|
||||
m_txPhy->CreateWifiSpectrumPhyInterface (txDev);
|
||||
m_txPhy->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
m_txPhy->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> txInterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_txPhy->SetInterferenceHelper (txInterferenceHelper);
|
||||
Ptr<ErrorRateModel> txErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_txPhy->SetErrorRateModel (txErrorModel);
|
||||
m_txPhy->SetDevice (txDev);
|
||||
m_txPhy->SetChannel (spectrumChannel);
|
||||
Ptr<ConstantPositionMobilityModel> apMobility = CreateObject<ConstantPositionMobilityModel> ();
|
||||
@@ -486,7 +491,10 @@ SpectrumWifiPhyFilterTest::DoSetup (void)
|
||||
m_rxPhy = CreateObject<ExtSpectrumWifiPhy> ();
|
||||
m_rxPhy->CreateWifiSpectrumPhyInterface (rxDev);
|
||||
m_rxPhy->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
m_rxPhy->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> rxInterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_rxPhy->SetInterferenceHelper (rxInterferenceHelper);
|
||||
Ptr<ErrorRateModel> rxErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_rxPhy->SetErrorRateModel (rxErrorModel);
|
||||
m_rxPhy->SetChannel (spectrumChannel);
|
||||
Ptr<ConstantPositionMobilityModel> sta1Mobility = CreateObject<ConstantPositionMobilityModel> ();
|
||||
m_rxPhy->SetMobility (sta1Mobility);
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "ns3/wifi-psdu.h"
|
||||
#include "ns3/sta-wifi-mac.h"
|
||||
#include "ns3/yans-wifi-phy.h"
|
||||
#include "ns3/interference-helper.h"
|
||||
#include "ns3/mac-tx-middle.h"
|
||||
#include "ns3/ht-frame-exchange-manager.h"
|
||||
#include "ns3/msdu-aggregator.h"
|
||||
@@ -102,6 +103,8 @@ AmpduAggregationTest::DoRun (void)
|
||||
* Create and configure phy layer.
|
||||
*/
|
||||
m_phy = CreateObject<YansWifiPhy> ();
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phy->SetInterferenceHelper (interferenceHelper);
|
||||
m_phy->SetDevice (m_device);
|
||||
m_phy->ConfigureStandard (WIFI_STANDARD_80211n);
|
||||
m_device->SetPhy (m_phy);
|
||||
@@ -351,6 +354,8 @@ TwoLevelAggregationTest::DoRun (void)
|
||||
* Create and configure phy layer.
|
||||
*/
|
||||
m_phy = CreateObject<YansWifiPhy> ();
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phy->SetInterferenceHelper (interferenceHelper);
|
||||
m_phy->SetDevice (m_device);
|
||||
m_phy->ConfigureStandard (WIFI_STANDARD_80211n);
|
||||
m_device->SetPhy (m_phy);
|
||||
@@ -585,6 +590,8 @@ HeAggregationTest::DoRunSubTest (uint16_t bufferSize)
|
||||
* Create and configure phy layer.
|
||||
*/
|
||||
m_phy = CreateObject<YansWifiPhy> ();
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phy->SetInterferenceHelper (interferenceHelper);
|
||||
m_phy->SetDevice (m_device);
|
||||
m_phy->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
m_device->SetPhy (m_phy);
|
||||
|
||||
@@ -659,8 +659,10 @@ TestDlOfdmaPhyTransmission::DoSetup (void)
|
||||
m_phyAp = CreateObject<SpectrumWifiPhy> ();
|
||||
m_phyAp->CreateWifiSpectrumPhyInterface (apDev);
|
||||
m_phyAp->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
m_phyAp->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> apInterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phyAp->SetInterferenceHelper (apInterferenceHelper);
|
||||
Ptr<ErrorRateModel> apErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phyAp->SetErrorRateModel (apErrorModel);
|
||||
m_phyAp->SetDevice (apDev);
|
||||
m_phyAp->SetChannel (spectrumChannel);
|
||||
Ptr<ConstantPositionMobilityModel> apMobility = CreateObject<ConstantPositionMobilityModel> ();
|
||||
@@ -674,7 +676,10 @@ TestDlOfdmaPhyTransmission::DoSetup (void)
|
||||
m_phySta1 = CreateObject<OfdmaSpectrumWifiPhy> (1);
|
||||
m_phySta1->CreateWifiSpectrumPhyInterface (sta1Dev);
|
||||
m_phySta1->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
m_phySta1->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> sta1InterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phySta1->SetInterferenceHelper (sta1InterferenceHelper);
|
||||
Ptr<ErrorRateModel> sta1ErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phySta1->SetErrorRateModel (sta1ErrorModel);
|
||||
m_phySta1->SetDevice (sta1Dev);
|
||||
m_phySta1->SetChannel (spectrumChannel);
|
||||
m_phySta1->SetReceiveOkCallback (MakeCallback (&TestDlOfdmaPhyTransmission::RxSuccessSta1, this));
|
||||
@@ -690,7 +695,10 @@ TestDlOfdmaPhyTransmission::DoSetup (void)
|
||||
m_phySta2 = CreateObject<OfdmaSpectrumWifiPhy> (2);
|
||||
m_phySta2->CreateWifiSpectrumPhyInterface (sta2Dev);
|
||||
m_phySta2->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
m_phySta2->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> sta2InterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phySta2->SetInterferenceHelper (sta2InterferenceHelper);
|
||||
Ptr<ErrorRateModel> sta2ErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phySta2->SetErrorRateModel (sta2ErrorModel);
|
||||
m_phySta2->SetDevice (sta2Dev);
|
||||
m_phySta2->SetChannel (spectrumChannel);
|
||||
m_phySta2->SetReceiveOkCallback (MakeCallback (&TestDlOfdmaPhyTransmission::RxSuccessSta2, this));
|
||||
@@ -706,7 +714,10 @@ TestDlOfdmaPhyTransmission::DoSetup (void)
|
||||
m_phySta3 = CreateObject<OfdmaSpectrumWifiPhy> (3);
|
||||
m_phySta3->CreateWifiSpectrumPhyInterface (sta3Dev);
|
||||
m_phySta3->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
m_phySta3->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> sta3InterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phySta3->SetInterferenceHelper (sta3InterferenceHelper);
|
||||
Ptr<ErrorRateModel> sta3ErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phySta3->SetErrorRateModel (sta3ErrorModel);
|
||||
m_phySta3->SetDevice (sta3Dev);
|
||||
m_phySta3->SetChannel (spectrumChannel);
|
||||
m_phySta3->SetReceiveOkCallback (MakeCallback (&TestDlOfdmaPhyTransmission::RxSuccessSta3, this));
|
||||
@@ -1045,8 +1056,10 @@ TestUlOfdmaPpduUid::DoSetup (void)
|
||||
m_phyAp = CreateObject<OfdmaSpectrumWifiPhy> (0);
|
||||
m_phyAp->CreateWifiSpectrumPhyInterface (apDev);
|
||||
m_phyAp->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
m_phyAp->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> apInterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phyAp->SetInterferenceHelper (apInterferenceHelper);
|
||||
Ptr<ErrorRateModel> apErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phyAp->SetErrorRateModel (apErrorModel);
|
||||
auto channelNum = std::get<0> (*WifiPhyOperatingChannel::FindFirst (0, DEFAULT_FREQUENCY,
|
||||
DEFAULT_CHANNEL_WIDTH,
|
||||
WIFI_STANDARD_80211ax,
|
||||
@@ -1067,7 +1080,10 @@ TestUlOfdmaPpduUid::DoSetup (void)
|
||||
m_phySta1 = CreateObject<OfdmaSpectrumWifiPhy> (1);
|
||||
m_phySta1->CreateWifiSpectrumPhyInterface (sta1Dev);
|
||||
m_phySta1->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
m_phySta1->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> sta1InterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phySta1->SetInterferenceHelper (sta1InterferenceHelper);
|
||||
Ptr<ErrorRateModel> sta1ErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phySta1->SetErrorRateModel (sta1ErrorModel);
|
||||
m_phySta1->SetOperatingChannel (WifiPhy::ChannelTuple {channelNum, DEFAULT_CHANNEL_WIDTH,
|
||||
(int)(WIFI_PHY_BAND_5GHZ), 0});
|
||||
m_phySta1->SetDevice (sta1Dev);
|
||||
@@ -1084,7 +1100,10 @@ TestUlOfdmaPpduUid::DoSetup (void)
|
||||
m_phySta2 = CreateObject<OfdmaSpectrumWifiPhy> (2);
|
||||
m_phySta2->CreateWifiSpectrumPhyInterface (sta2Dev);
|
||||
m_phySta2->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
m_phySta2->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> sta2InterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phySta2->SetInterferenceHelper (sta2InterferenceHelper);
|
||||
Ptr<ErrorRateModel> sta2ErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phySta2->SetErrorRateModel (sta2ErrorModel);
|
||||
m_phySta2->SetOperatingChannel (WifiPhy::ChannelTuple {channelNum, DEFAULT_CHANNEL_WIDTH,
|
||||
(int)(WIFI_PHY_BAND_5GHZ), 0});
|
||||
m_phySta2->SetDevice (sta2Dev);
|
||||
@@ -1524,10 +1543,12 @@ TestMultipleHeTbPreambles::DoSetup (void)
|
||||
Ptr<WifiNetDevice> dev = CreateObject<WifiNetDevice> ();
|
||||
m_phy = CreateObject<OfdmaSpectrumWifiPhy> (0);
|
||||
m_phy->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
Ptr<ApWifiMac> mac = CreateObject<ApWifiMac> ();
|
||||
mac->SetAttribute ("BeaconGeneration", BooleanValue (false));
|
||||
dev->SetMac (mac);
|
||||
m_phy->SetInterferenceHelper (interferenceHelper);
|
||||
m_phy->SetErrorRateModel (error);
|
||||
m_phy->SetOperatingChannel (WifiPhy::ChannelTuple {DEFAULT_CHANNEL_NUMBER, DEFAULT_CHANNEL_WIDTH,
|
||||
(int)(WIFI_PHY_BAND_5GHZ), 0});
|
||||
@@ -2242,8 +2263,10 @@ TestUlOfdmaPhyTransmission::DoSetup (void)
|
||||
m_phyAp->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
Ptr<HeConfiguration> heConfiguration = CreateObject<HeConfiguration> ();
|
||||
apDev->SetHeConfiguration (heConfiguration);
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
m_phyAp->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> apInterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phyAp->SetInterferenceHelper (apInterferenceHelper);
|
||||
Ptr<ErrorRateModel> apErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phyAp->SetErrorRateModel (apErrorModel);
|
||||
m_phyAp->SetDevice (apDev);
|
||||
m_phyAp->SetChannel (spectrumChannel);
|
||||
m_phyAp->SetReceiveOkCallback (MakeCallback (&TestUlOfdmaPhyTransmission::RxSuccess, this));
|
||||
@@ -2260,7 +2283,10 @@ TestUlOfdmaPhyTransmission::DoSetup (void)
|
||||
m_phySta1 = CreateObject<OfdmaSpectrumWifiPhy> (1);
|
||||
m_phySta1->CreateWifiSpectrumPhyInterface (sta1Dev);
|
||||
m_phySta1->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
m_phySta1->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> sta1InterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phySta1->SetInterferenceHelper (sta1InterferenceHelper);
|
||||
Ptr<ErrorRateModel> sta1ErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phySta1->SetErrorRateModel (sta1ErrorModel);
|
||||
m_phySta1->SetDevice (sta1Dev);
|
||||
m_phySta1->SetChannel (spectrumChannel);
|
||||
m_phySta1->SetPreambleDetectionModel (preambleDetectionModel);
|
||||
@@ -2275,7 +2301,10 @@ TestUlOfdmaPhyTransmission::DoSetup (void)
|
||||
m_phySta2 = CreateObject<OfdmaSpectrumWifiPhy> (2);
|
||||
m_phySta2->CreateWifiSpectrumPhyInterface (sta2Dev);
|
||||
m_phySta2->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
m_phySta2->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> sta2InterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phySta2->SetInterferenceHelper (sta2InterferenceHelper);
|
||||
Ptr<ErrorRateModel> sta2ErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phySta2->SetErrorRateModel (sta2ErrorModel);
|
||||
m_phySta2->SetDevice (sta2Dev);
|
||||
m_phySta2->SetChannel (spectrumChannel);
|
||||
m_phySta2->SetPreambleDetectionModel (preambleDetectionModel);
|
||||
@@ -2290,7 +2319,10 @@ TestUlOfdmaPhyTransmission::DoSetup (void)
|
||||
m_phySta3 = CreateObject<OfdmaSpectrumWifiPhy> (3);
|
||||
m_phySta3->CreateWifiSpectrumPhyInterface (sta3Dev);
|
||||
m_phySta3->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
m_phySta3->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> sta3InterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phySta3->SetInterferenceHelper (sta3InterferenceHelper);
|
||||
Ptr<ErrorRateModel> sta3ErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phySta3->SetErrorRateModel (sta3ErrorModel);
|
||||
m_phySta3->SetDevice (sta3Dev);
|
||||
m_phySta3->SetChannel (spectrumChannel);
|
||||
m_phySta3->SetPreambleDetectionModel (preambleDetectionModel);
|
||||
@@ -3127,8 +3159,10 @@ TestPhyPaddingExclusion::DoSetup (void)
|
||||
m_phyAp->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
Ptr<HeConfiguration> heConfiguration = CreateObject<HeConfiguration> ();
|
||||
apDev->SetHeConfiguration (heConfiguration);
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
m_phyAp->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> apInterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phyAp->SetInterferenceHelper (apInterferenceHelper);
|
||||
Ptr<ErrorRateModel> apErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phyAp->SetErrorRateModel (apErrorModel);
|
||||
m_phyAp->SetDevice (apDev);
|
||||
m_phyAp->SetChannel (spectrumChannel);
|
||||
m_phyAp->AssignStreams (streamNumber);
|
||||
@@ -3152,7 +3186,10 @@ TestPhyPaddingExclusion::DoSetup (void)
|
||||
m_phySta1 = CreateObject<OfdmaSpectrumWifiPhy> (1);
|
||||
m_phySta1->CreateWifiSpectrumPhyInterface (sta1Dev);
|
||||
m_phySta1->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
m_phySta1->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> sta1InterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phySta1->SetInterferenceHelper (sta1InterferenceHelper);
|
||||
Ptr<ErrorRateModel> sta1ErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phySta1->SetErrorRateModel (sta1ErrorModel);
|
||||
m_phySta1->SetDevice (sta1Dev);
|
||||
m_phySta1->SetChannel (spectrumChannel);
|
||||
m_phySta1->AssignStreams (streamNumber);
|
||||
@@ -3169,7 +3206,10 @@ TestPhyPaddingExclusion::DoSetup (void)
|
||||
m_phySta2 = CreateObject<OfdmaSpectrumWifiPhy> (2);
|
||||
m_phySta2->CreateWifiSpectrumPhyInterface (sta2Dev);
|
||||
m_phySta2->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
m_phySta2->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> sta2InterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phySta2->SetInterferenceHelper (sta2InterferenceHelper);
|
||||
Ptr<ErrorRateModel> sta2ErrorModel = CreateObject<NistErrorRateModel> ();
|
||||
m_phySta2->SetErrorRateModel (sta2ErrorModel);
|
||||
m_phySta2->SetDevice (sta2Dev);
|
||||
m_phySta2->SetChannel (spectrumChannel);
|
||||
m_phySta2->AssignStreams (streamNumber);
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "ns3/wifi-net-device.h"
|
||||
#include "ns3/wifi-spectrum-value-helper.h"
|
||||
#include "ns3/spectrum-wifi-phy.h"
|
||||
#include "ns3/interference-helper.h"
|
||||
#include "ns3/nist-error-rate-model.h"
|
||||
#include "ns3/wifi-mac-header.h"
|
||||
#include "ns3/ampdu-tag.h"
|
||||
@@ -205,6 +206,8 @@ TestThresholdPreambleDetectionWithoutFrameCapture::DoSetup (void)
|
||||
{
|
||||
m_phy = CreateObject<SpectrumWifiPhy> ();
|
||||
m_phy->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phy->SetInterferenceHelper (interferenceHelper);
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
m_phy->SetErrorRateModel (error);
|
||||
m_phy->SetOperatingChannel (WifiPhy::ChannelTuple {CHANNEL_NUMBER, 0, WIFI_PHY_BAND_5GHZ, 0});
|
||||
@@ -569,6 +572,8 @@ TestThresholdPreambleDetectionWithFrameCapture::DoSetup (void)
|
||||
{
|
||||
m_phy = CreateObject<SpectrumWifiPhy> ();
|
||||
m_phy->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phy->SetInterferenceHelper (interferenceHelper);
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
m_phy->SetErrorRateModel (error);
|
||||
m_phy->SetOperatingChannel (WifiPhy::ChannelTuple {CHANNEL_NUMBER, 0, WIFI_PHY_BAND_5GHZ, 0});
|
||||
@@ -1107,6 +1112,8 @@ TestSimpleFrameCaptureModel::DoSetup (void)
|
||||
{
|
||||
m_phy = CreateObject<SpectrumWifiPhy> ();
|
||||
m_phy->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phy->SetInterferenceHelper (interferenceHelper);
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
m_phy->SetErrorRateModel (error);
|
||||
m_phy->SetOperatingChannel (WifiPhy::ChannelTuple {CHANNEL_NUMBER, 0, WIFI_PHY_BAND_5GHZ, 0});
|
||||
@@ -1280,6 +1287,8 @@ TestPhyHeadersReception::DoSetup (void)
|
||||
{
|
||||
m_phy = CreateObject<SpectrumWifiPhy> ();
|
||||
m_phy->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phy->SetInterferenceHelper (interferenceHelper);
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
m_phy->SetErrorRateModel (error);
|
||||
m_phy->SetOperatingChannel (WifiPhy::ChannelTuple {CHANNEL_NUMBER, 0, WIFI_PHY_BAND_5GHZ, 0});
|
||||
@@ -1777,6 +1786,8 @@ TestAmpduReception::DoSetup (void)
|
||||
{
|
||||
m_phy = CreateObject<SpectrumWifiPhy> ();
|
||||
m_phy->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phy->SetInterferenceHelper (interferenceHelper);
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
m_phy->SetErrorRateModel (error);
|
||||
m_phy->SetOperatingChannel (WifiPhy::ChannelTuple {CHANNEL_NUMBER, 0, WIFI_PHY_BAND_5GHZ, 0});
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "ns3/spectrum-wifi-helper.h"
|
||||
#include "ns3/wifi-spectrum-value-helper.h"
|
||||
#include "ns3/spectrum-wifi-phy.h"
|
||||
#include "ns3/interference-helper.h"
|
||||
#include "ns3/nist-error-rate-model.h"
|
||||
#include "ns3/wifi-mac-header.h"
|
||||
#include "ns3/wifi-spectrum-signal-parameters.h"
|
||||
@@ -231,6 +232,8 @@ WifiPhyThresholdsTest::DoSetup (void)
|
||||
{
|
||||
m_phy = CreateObject<SpectrumWifiPhy> ();
|
||||
m_phy->ConfigureStandard (WIFI_STANDARD_80211ax);
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_phy->SetInterferenceHelper (interferenceHelper);
|
||||
Ptr<ErrorRateModel> error = CreateObject<NistErrorRateModel> ();
|
||||
m_phy->SetErrorRateModel (error);
|
||||
m_phy->SetOperatingChannel (WifiPhy::ChannelTuple {CHANNEL_NUMBER, 0, WIFI_PHY_BAND_5GHZ, 0});
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "ns3/adhoc-wifi-mac.h"
|
||||
#include "ns3/ap-wifi-mac.h"
|
||||
#include "ns3/propagation-loss-model.h"
|
||||
#include "ns3/interference-helper.h"
|
||||
#include "ns3/yans-error-rate-model.h"
|
||||
#include "ns3/constant-position-mobility-model.h"
|
||||
#include "ns3/test.h"
|
||||
@@ -154,6 +155,8 @@ WifiTest::CreateOne (Vector pos, Ptr<YansWifiChannel> channel)
|
||||
|
||||
Ptr<ConstantPositionMobilityModel> mobility = CreateObject<ConstantPositionMobilityModel> ();
|
||||
Ptr<YansWifiPhy> phy = CreateObject<YansWifiPhy> ();
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
phy->SetInterferenceHelper (interferenceHelper);
|
||||
Ptr<ErrorRateModel> error = CreateObject<YansErrorRateModel> ();
|
||||
phy->SetErrorRateModel (error);
|
||||
phy->SetChannel (channel);
|
||||
@@ -330,6 +333,8 @@ InterferenceHelperSequenceTest::CreateOne (Vector pos, Ptr<YansWifiChannel> chan
|
||||
|
||||
Ptr<ConstantPositionMobilityModel> mobility = CreateObject<ConstantPositionMobilityModel> ();
|
||||
Ptr<YansWifiPhy> phy = CreateObject<YansWifiPhy> ();
|
||||
Ptr<InterferenceHelper> interferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
phy->SetInterferenceHelper (interferenceHelper);
|
||||
Ptr<ErrorRateModel> error = CreateObject<YansErrorRateModel> ();
|
||||
phy->SetErrorRateModel (error);
|
||||
phy->SetChannel (channel);
|
||||
@@ -538,6 +543,8 @@ DcfImmediateAccessBroadcastTestCase::DoRun (void)
|
||||
|
||||
Ptr<ConstantPositionMobilityModel> txMobility = CreateObject<ConstantPositionMobilityModel> ();
|
||||
Ptr<YansWifiPhy> txPhy = CreateObject<YansWifiPhy> ();
|
||||
Ptr<InterferenceHelper> txInterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
txPhy->SetInterferenceHelper (txInterferenceHelper);
|
||||
Ptr<ErrorRateModel> txError = CreateObject<YansErrorRateModel> ();
|
||||
txPhy->SetErrorRateModel (txError);
|
||||
txPhy->SetChannel (channel);
|
||||
@@ -1765,9 +1772,11 @@ Bug2831TestCase::DoRun (void)
|
||||
apMobility->SetPosition (Vector (0.0, 0.0, 0.0));
|
||||
apNode->AggregateObject (apMobility);
|
||||
|
||||
Ptr<ErrorRateModel> error = CreateObject<YansErrorRateModel> ();
|
||||
m_apPhy = CreateObject<YansWifiPhy> ();
|
||||
m_apPhy->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> apInterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_apPhy->SetInterferenceHelper (apInterferenceHelper);
|
||||
Ptr<ErrorRateModel> apErrorModel = CreateObject<YansErrorRateModel> ();
|
||||
m_apPhy->SetErrorRateModel (apErrorModel);
|
||||
m_apPhy->SetChannel (channel);
|
||||
m_apPhy->SetMobility (apMobility);
|
||||
m_apPhy->SetDevice (apDev);
|
||||
@@ -1779,7 +1788,10 @@ Bug2831TestCase::DoRun (void)
|
||||
staNode->AggregateObject (staMobility);
|
||||
|
||||
m_staPhy = CreateObject<YansWifiPhy> ();
|
||||
m_staPhy->SetErrorRateModel (error);
|
||||
Ptr<InterferenceHelper> staInterferenceHelper = CreateObject<InterferenceHelper> ();
|
||||
m_staPhy->SetInterferenceHelper (staInterferenceHelper);
|
||||
Ptr<ErrorRateModel> staErrorModel = CreateObject<YansErrorRateModel> ();
|
||||
m_staPhy->SetErrorRateModel (staErrorModel);
|
||||
m_staPhy->SetChannel (channel);
|
||||
m_staPhy->SetMobility (staMobility);
|
||||
m_staPhy->SetDevice (apDev);
|
||||
|
||||
Reference in New Issue
Block a user