802.11 PHY layer model More...
#include "spectrum-wifi-phy.h"
Public Types | |
typedef void(* | SignalArrivalCallback) (Ptr< const SpectrumSignalParameters > signal, uint32_t senderNodeId, double rxPower, Time duration) |
Callback invoked when the PHY model starts to process a signal. | |
Public Types inherited from ns3::WifiPhy | |
using | ChannelSegments |
segments identifying an operating channel | |
using | ChannelTuple |
Tuple identifying a segment of an operating channel. | |
typedef void(* | MonitorSnifferRxCallback) (Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise, uint16_t staId) |
TracedCallback signature for monitor mode receive events. | |
typedef void(* | MonitorSnifferTxCallback) (const Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, uint16_t staId) |
TracedCallback signature for monitor mode transmit events. | |
typedef void(* | PhyRxBeginTracedCallback) (Ptr< const Packet > packet, RxPowerWattPerChannelBand rxPowersW) |
TracedCallback signature for PhyRxBegin trace source. | |
typedef void(* | PhyRxMacHeaderEndTracedCallback) (const WifiMacHeader &macHdr, const WifiTxVector &txVector, Time psduDuration) |
TracedCallback signature for end of MAC header reception events. | |
typedef void(* | PhyRxPayloadBeginTracedCallback) (WifiTxVector txVector, Time psduDuration) |
TracedCallback signature for start of PSDU reception events. | |
typedef void(* | PhyRxPpduDropTracedCallback) (Ptr< const WifiPpdu > ppdu, WifiPhyRxfailureReason reason) |
TracedCallback signature for start of PSDU reception events. | |
typedef void(* | PhyTxBeginTracedCallback) (Ptr< const Packet > packet, double txPowerW) |
TracedCallback signature for Phy transmit events. | |
typedef void(* | PsduTxBeginCallback) (WifiConstPsduMap psduMap, const WifiTxVector &txVector, double txPowerW) |
TracedCallback signature for PSDU transmit events. | |
typedef void(* | SignalTransmissionCallback) (Ptr< const WifiPpdu > ppdu, const WifiTxVector &txVector) |
Callback invoked when the PHY model starts to transmit a signal. | |
Public Member Functions | |
SpectrumWifiPhy () | |
~SpectrumWifiPhy () override | |
void | AddChannel (const Ptr< SpectrumChannel > channel, const FrequencyRange &freqRange=WHOLE_WIFI_SPECTRUM) |
Attach a SpectrumChannel to use for a given frequency range. | |
void | ConfigureInterface (const std::vector< MHz_u > &frequencies, MHz_u width) |
Configure a non-active spectrum PHY interface to operate on a given frequency (or several frequencies for non-contiguous) with a given total width. | |
WifiSpectrumBandFrequencies | ConvertIndicesToFrequencies (const WifiSpectrumBandIndices &indices) const override |
This is a helper function to convert start and stop indices to start and stop frequencies. | |
Ptr< AntennaModel > | GetAntenna () const |
Get the antenna model used for reception. | |
WifiSpectrumBandInfo | GetBand (MHz_u bandWidth, uint8_t bandIndex=0) override |
Get the info of a given band. | |
Ptr< Channel > | GetChannel () const override |
Return the Channel this WifiPhy is connected to. | |
FrequencyRange | GetCurrentFrequencyRange () const override |
Get the frequency range of the current RF interface. | |
Ptr< WifiSpectrumPhyInterface > | GetCurrentInterface () const |
Get the currently active spectrum PHY interface. | |
MHz_u | GetGuardBandwidth (MHz_u currentChannelWidth) const override |
Ptr< const WifiPpdu > | GetRxPpduFromTxPpdu (Ptr< const WifiPpdu > ppdu) |
Determine the WifiPpdu to be used by the RX PHY based on the WifiPpdu sent by the TX PHY. | |
const std::map< FrequencyRange, Ptr< WifiSpectrumPhyInterface > > & | GetSpectrumPhyInterfaces () const |
Get the map of interfaces attached to this spectrum PHY. | |
std::tuple< dBr_u, dBr_u, dBr_u > | GetTxMaskRejectionParams () const override |
void | SetAntenna (const Ptr< AntennaModel > antenna) |
void | SetChannelSwitchedCallback (Callback< void > callback) |
void | SetDevice (const Ptr< WifiNetDevice > device) override |
Sets the device this PHY is associated with. | |
void | StartRx (Ptr< SpectrumSignalParameters > rxParams, Ptr< const WifiSpectrumPhyInterface > interface) |
Input method for delivering a signal from the spectrum channel and low-level PHY interface to this SpectrumWifiPhy instance. | |
void | StartTx (Ptr< const WifiPpdu > ppdu) override |
void | Transmit (Ptr< WifiSpectrumSignalParameters > txParams) |
This function is sending the signal to the Spectrum channel after finishing the configuration of the transmit parameters. | |
Public Member Functions inherited from ns3::WifiPhy | |
WifiPhy () | |
~WifiPhy () override | |
virtual int64_t | AssignStreams (int64_t stream) |
Assign a fixed random variable stream number to the random variables used by this model. | |
double | CalculateSnr (const WifiTxVector &txVector, double ber) const |
virtual void | ConfigureStandard (WifiStandard standard) |
Configure the PHY-level parameters for different Wi-Fi standard. | |
void | EndReceiveInterBss () |
For HE receptions only, check and possibly modify the transmit power restriction state at the end of PPDU reception. | |
Time | GetAckTxTime () const |
Return the estimated Ack TX time for this PHY. | |
Time | GetBlockAckTxTime () const |
Return the estimated BlockAck TX time for this PHY. | |
std::list< uint8_t > | GetBssMembershipSelectorList () const |
The WifiPhy::BssMembershipSelector() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception modes that this WifiPhy(-derived class) can support - a set of WifiMode objects which we call the BssMembershipSelectorSet, and which is stored inside HT PHY (and above) instances. | |
dBm_u | GetCcaEdThreshold () const |
Return the CCA energy detection threshold. | |
dBm_u | GetCcaSensitivityThreshold () const |
Return the CCA sensitivity threshold. | |
uint8_t | GetChannelNumber () const |
Return current channel number. | |
Time | GetChannelSwitchDelay () const |
MHz_u | GetChannelWidth () const |
WifiMode | GetDefaultMode () const |
Get the default WifiMode supported by the PHY. | |
Time | GetDelayUntilIdle () |
Ptr< WifiNetDevice > | GetDevice () const |
Return the device this PHY is associated with. | |
MHz_u | GetFrequency () const |
Time | GetLastRxEndTime () const |
Return the end time of the last received packet. | |
Time | GetLastRxStartTime () const |
Return the start time of the last received packet. | |
Ptr< PhyEntity > | GetLatestPhyEntity () const |
Get the latest PHY entity supported by this PHY instance. | |
WifiModulationClass | GetMaxModulationClassSupported () const |
uint8_t | GetMaxSupportedRxSpatialStreams () const |
uint8_t | GetMaxSupportedTxSpatialStreams () const |
WifiMode | GetMcs (WifiModulationClass modulation, uint8_t mcs) const |
Get the WifiMode object corresponding to the given MCS of the given modulation class. | |
std::list< WifiMode > | GetMcsList () const |
The WifiPhy::GetMcsList() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception MCS indices that this WifiPhy(-derived class) can support - a set of MCS indices which is stored by each HT PHY (and above). | |
std::list< WifiMode > | GetMcsList (WifiModulationClass modulation) const |
Get the list of supported MCSs for the given modulation class (i.e. | |
Ptr< MobilityModel > | GetMobility () const |
Return the mobility model this PHY is associated with. | |
std::list< WifiMode > | GetModeList () const |
The WifiPhy::GetModeList() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception (non-MCS) modes that this WifiPhy(-derived class) can support - a set of modes which is stored by each non-HT PHY. | |
std::list< WifiMode > | GetModeList (WifiModulationClass modulation) const |
Get the list of supported (non-MCS) modes for the given modulation class (i.e. | |
uint16_t | GetNMcs () const |
uint8_t | GetNTxPower () const |
Return the number of available transmission power levels. | |
uint8_t | GetNumberOfAntennas () const |
const WifiPhyOperatingChannel & | GetOperatingChannel () const |
Get a const reference to the operating channel. | |
WifiPhyBand | GetPhyBand () const |
Get the configured Wi-Fi band. | |
Ptr< PhyEntity > | GetPhyEntity (WifiModulationClass modulation) const |
Get the supported PHY entity corresponding to the modulation class. | |
Ptr< PhyEntity > | GetPhyEntity (WifiStandard standard) const |
Get the supported PHY entity corresponding to the wifi standard. | |
Ptr< PhyEntity > | GetPhyEntityForPpdu (const Ptr< const WifiPpdu > ppdu) const |
Get the supported PHY entity to use for a received PPDU. | |
uint8_t | GetPhyId () const |
Get the index allocated to this PHY. | |
Time | GetPifs () const |
Return the PCF Interframe Space (PIFS) for this PHY. | |
dBm_u | GetPower (uint8_t powerLevel) const |
Get the power of the given power level. | |
uint64_t | GetPreviouslyRxPpduUid () const |
uint8_t | GetPrimary20Index () const |
uint8_t | GetPrimaryChannelNumber (MHz_u primaryChannelWidth) const |
Get channel number of the primary channel. | |
dB_u | GetRxGain () const |
Return the reception gain. | |
dBm_u | GetRxSensitivity () const |
Return the receive sensitivity threshold. | |
bool | GetShortPhyPreambleSupported () const |
Return whether short PHY preamble is supported. | |
Time | GetSifs () const |
Return the Short Interframe Space (SIFS) for this PHY. | |
Time | GetSlot () const |
Return the slot duration for this PHY. | |
WifiStandard | GetStandard () const |
Get the configured Wi-Fi standard. | |
Ptr< WifiPhyStateHelper > | GetState () const |
Return the WifiPhyStateHelper of this PHY. | |
Hz_u | GetSubcarrierSpacing () const |
MHz_u | GetTxBandwidth (WifiMode mode, MHz_u maxAllowedBandWidth=std::numeric_limits< MHz_u >::max()) const |
Get the bandwidth for a transmission occurring on the current operating channel and using the given WifiMode, subject to the constraint that the TX bandwidth cannot exceed the given maximum allowed value. | |
dB_u | GetTxGain () const |
Return the transmission gain. | |
dBm_u | GetTxPowerEnd () const |
Return the maximum available transmission power level. | |
dBm_u | GetTxPowerForTransmission (Ptr< const WifiPpdu > ppdu) const |
Compute the transmit power for the next transmission. | |
dBm_u | GetTxPowerStart () const |
Return the minimum available transmission power level. | |
bool | HasFixedPhyBand () const |
bool | IsMcsSupported (WifiModulationClass modulation, uint8_t mcs) const |
Check if the given MCS of the given modulation class is supported by the PHY. | |
bool | IsModeSupported (WifiMode mode) const |
Check if the given WifiMode is supported by the PHY. | |
bool | IsReceivingPhyHeader () const |
bool | IsStateCcaBusy () const |
bool | IsStateIdle () const |
bool | IsStateOff () const |
bool | IsStateRx () const |
bool | IsStateSleep () const |
bool | IsStateSwitching () const |
bool | IsStateTx () const |
void | NotifyChannelAccessRequested () |
Notify the PHY that an access to the channel was requested. | |
void | NotifyMonitorSniffRx (Ptr< const WifiPsdu > psdu, MHz_u channelFreq, const WifiTxVector &txVector, SignalNoiseDbm signalNoise, const std::vector< bool > &statusPerMpdu, uint16_t staId=SU_STA_ID) |
Public method used to fire a MonitorSniffer trace for a wifi PSDU being received. | |
void | NotifyMonitorSniffTx (Ptr< const WifiPsdu > psdu, MHz_u channelFreq, const WifiTxVector &txVector, uint16_t staId=SU_STA_ID) |
Public method used to fire a MonitorSniffer trace for a wifi PSDU being transmitted. | |
void | NotifyRxBegin (Ptr< const WifiPsdu > psdu, const RxPowerWattPerChannelBand &rxPowersW) |
Public method used to fire a PhyRxBegin trace. | |
void | NotifyRxDrop (Ptr< const WifiPsdu > psdu, WifiPhyRxfailureReason reason) |
Public method used to fire a PhyRxDrop trace. | |
void | NotifyRxEnd (Ptr< const WifiPsdu > psdu) |
Public method used to fire a PhyRxEnd trace. | |
void | NotifyRxPpduDrop (Ptr< const WifiPpdu > ppdu, WifiPhyRxfailureReason reason) |
Public method used to fire a PhyRxPpduDrop trace. | |
void | NotifyTxBegin (const WifiConstPsduMap &psdus, Watt_u txPower) |
Public method used to fire a PhyTxBegin trace. | |
void | NotifyTxDrop (Ptr< const WifiPsdu > psdu) |
Public method used to fire a PhyTxDrop trace. | |
void | NotifyTxEnd (const WifiConstPsduMap &psdus) |
Public method used to fire a PhyTxEnd trace. | |
void | RegisterListener (const std::shared_ptr< WifiPhyListener > &listener) |
void | ResetCca (bool powerRestricted, dBm_u txPowerMaxSiso=0, dBm_u txPowerMaxMimo=0) |
Reset PHY to IDLE, with some potential TX power restrictions for the next transmission. | |
void | ResumeFromOff () |
Resume from off mode. | |
void | ResumeFromSleep () |
Resume from sleep mode. | |
void | Send (const WifiConstPsduMap &psdus, const WifiTxVector &txVector) |
void | Send (Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector) |
This function is a wrapper for the Send variant that accepts a WifiConstPsduMap as first argument. | |
void | SetCapabilitiesChangedCallback (Callback< void > callback) |
void | SetCcaEdThreshold (dBm_u threshold) |
Sets the CCA energy detection threshold. | |
void | SetCcaSensitivityThreshold (dBm_u threshold) |
Sets the CCA sensitivity threshold. | |
void | SetErrorRateModel (const Ptr< ErrorRateModel > model) |
Sets the error rate model. | |
void | SetFixedPhyBand (bool enable) |
Configure whether it is prohibited to change PHY band after initialization. | |
void | SetFrameCaptureModel (const Ptr< FrameCaptureModel > frameCaptureModel) |
Sets the frame capture model. | |
virtual void | SetInterferenceHelper (const Ptr< InterferenceHelper > helper) |
Sets the interference helper. | |
void | SetMaxModulationClassSupported (WifiModulationClass modClass) |
Set the maximum modulation class that has to be supported by this PHY object. | |
void | SetMaxSupportedRxSpatialStreams (uint8_t streams) |
void | SetMaxSupportedTxSpatialStreams (uint8_t streams) |
void | SetMobility (const Ptr< MobilityModel > mobility) |
assign a mobility model to this device | |
void | SetNTxPower (uint8_t n) |
Sets the number of transmission power levels available between the minimum level and the maximum level. | |
void | SetNumberOfAntennas (uint8_t antennas) |
void | SetOffMode () |
Put in off mode. | |
void | SetOperatingChannel (const ChannelSegments &channelSegments) |
This overloaded function is used to pass a list of segments from which the operating channel can be deduced. | |
void | SetOperatingChannel (const ChannelTuple &tuple) |
This overloaded function is used when the operating channel consists of a single segment, identified by a tuple. | |
void | SetOperatingChannel (const WifiPhyOperatingChannel &channel) |
If the standard for this object has not been set yet, store the channel settings corresponding to the given operating channel. | |
void | SetPhyId (uint8_t phyId) |
Set the index allocated to this PHY. | |
void | SetPifs (Time pifs) |
Set the PCF Interframe Space (PIFS) for this PHY. | |
void | SetPostReceptionErrorModel (const Ptr< ErrorModel > em) |
Attach a receive ErrorModel to the WifiPhy. | |
void | SetPreambleDetectionModel (const Ptr< PreambleDetectionModel > preambleDetectionModel) |
Sets the preamble detection model. | |
void | SetPreviouslyRxPpduUid (uint64_t uid) |
Set the UID of the previously received PPDU. | |
void | SetReceiveErrorCallback (RxErrorCallback callback) |
void | SetReceiveOkCallback (RxOkCallback callback) |
void | SetRxGain (dB_u gain) |
Sets the reception gain. | |
void | SetRxNoiseFigure (dB_u noiseFigure) |
Sets the RX loss in the Signal-to-Noise-Ratio due to non-idealities in the receiver. | |
void | SetRxSensitivity (dBm_u threshold) |
Sets the receive sensitivity threshold. | |
void | SetShortPhyPreambleSupported (bool preamble) |
Enable or disable short PHY preamble. | |
void | SetSifs (Time sifs) |
Set the Short Interframe Space (SIFS) for this PHY. | |
void | SetSleepMode (bool forceSleepWhileInRx=false) |
Put in sleep mode. | |
void | SetSlot (Time slot) |
Set the slot duration for this PHY. | |
void | SetTxGain (dB_u gain) |
Sets the transmission gain. | |
void | SetTxPowerEnd (dBm_u end) |
Sets the maximum available transmission power level. | |
void | SetTxPowerStart (dBm_u start) |
Sets the minimum available transmission power level. | |
void | SetWifiRadioEnergyModel (const Ptr< WifiRadioEnergyModel > wifiRadioEnergyModel) |
Sets the wifi radio energy model. | |
void | StartReceivePreamble (Ptr< const WifiPpdu > ppdu, RxPowerWattPerChannelBand &rxPowersW, Time rxDuration) |
Start receiving the PHY preamble of a PPDU (i.e. | |
void | UnregisterListener (const std::shared_ptr< WifiPhyListener > &listener) |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. | |
~Object () override | |
Destructor. | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. | |
void | Dispose () |
Dispose of this Object. | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. | |
bool | IsInitialized () const |
Check if the object has been initialized. | |
void | UnidirectionalAggregateObject (Ptr< Object > other) |
Aggregate an Object to another Object. | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. | |
void | Ref () const |
Increment the reference count. | |
void | Unref () const |
Decrement the reference count. | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const |
Get the value of an attribute, raising fatal errors if unsuccessful. | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
static uint32_t | GetNumBandsBetweenSegments (const std::vector< MHz_u > ¢erFrequencies, MHz_u totalWidth, uint32_t subcarrierSpacing) |
Determine the number of bands between the two segments if the operating channel is made of non-contiguous segments, otherwise the function returns zero. | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::WifiPhy | |
static void | AddStaticPhyEntity (WifiModulationClass modulation, Ptr< PhyEntity > phyEntity) |
Add the PHY entity to the map of implemented PHY entities for the given modulation class. | |
static Time | CalculatePhyPreambleAndHeaderDuration (const WifiTxVector &txVector) |
static Time | CalculateTxDuration (const WifiConstPsduMap &psduMap, const WifiTxVector &txVector, WifiPhyBand band) |
static Time | CalculateTxDuration (Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector, WifiPhyBand band) |
This function is a wrapper for the CalculateTxDuration variant that accepts a WifiConstPsduMap as first argument. | |
static Time | CalculateTxDuration (uint32_t size, const WifiTxVector &txVector, WifiPhyBand band, uint16_t staId=SU_STA_ID) |
static uint32_t | GetMaxPsduSize (WifiModulationClass modulation) |
Get the maximum PSDU size in bytes for the given modulation class. | |
static Time | GetPayloadDuration (uint32_t size, const WifiTxVector &txVector, WifiPhyBand band, MpduType mpdutype, bool incFlag, uint32_t &totalAmpduSize, double &totalAmpduNumSymbols, uint16_t staId) |
static Time | GetPayloadDuration (uint32_t size, const WifiTxVector &txVector, WifiPhyBand band, MpduType mpdutype=NORMAL_MPDU, uint16_t staId=SU_STA_ID) |
static Time | GetPreambleDetectionDuration () |
static Time | GetStartOfPacketDuration (const WifiTxVector &txVector) |
static const Ptr< const PhyEntity > | GetStaticPhyEntity (WifiModulationClass modulation) |
Get the implemented PHY entity corresponding to the modulation class. | |
static TypeId | GetTypeId () |
Get the type ID. | |
static WifiConstPsduMap | GetWifiConstPsduMap (Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector) |
Get a WifiConstPsduMap from a PSDU and the TXVECTOR to use to send the PSDU. | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. | |
Protected Member Functions | |
void | DoChannelSwitch () override |
Actually switch channel based on the stored channel settings. | |
void | DoDispose () override |
Destructor implementation. | |
void | DoInitialize () override |
Initialize() implementation. | |
Protected Member Functions inherited from ns3::WifiPhy | |
void | AddPhyEntity (WifiModulationClass modulation, Ptr< PhyEntity > phyEntity) |
Add the PHY entity to the map of supported PHY entities for the given modulation class for the WifiPhy instance. | |
void | DoDispose () override |
Destructor implementation. | |
void | DoInitialize () override |
Initialize() implementation. | |
std::optional< Time > | GetDelayUntilChannelSwitch () |
Perform any actions necessary when user changes operating channel after initialization. | |
void | NotifyCcaBusy (const Ptr< const WifiPpdu > ppdu, Time duration) |
Notify PHY state helper to switch to CCA busy state,. | |
void | Reset () |
Reset data upon end of TX or RX. | |
void | SwitchMaybeToCcaBusy (const Ptr< const WifiPpdu > ppdu=nullptr) |
Check if PHY state should move to CCA busy state based on current state of interference tracker. | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
Protected Attributes | |
Ptr< WifiSpectrumPhyInterface > | m_currentSpectrumPhyInterface |
The current Spectrum PHY interface (held for performance reasons) | |
std::map< FrequencyRange, Ptr< WifiSpectrumPhyInterface > > | m_spectrumPhyInterfaces |
Spectrum PHY interfaces. | |
Protected Attributes inherited from ns3::WifiPhy | |
Ptr< Event > | m_currentEvent |
Hold the current event. | |
std::map< std::pair< uint64_t, WifiPreamble >, Ptr< Event > > | m_currentPreambleEvents |
store event associated to a PPDU (that has a unique ID and preamble combination) whose preamble is being received | |
EventId | m_endPhyRxEvent |
the end of PHY receive event | |
EventId | m_endTxEvent |
the end of transmit event | |
Ptr< InterferenceHelper > | m_interference |
Pointer to a helper responsible for interference computations. | |
std::map< WifiModulationClass, Ptr< PhyEntity > > | m_phyEntities |
This map holds the supported PHY entities. | |
uint8_t | m_phyId |
the index of the PHY in the vector of PHYs held by the WifiNetDevice | |
uint64_t | m_previouslyRxPpduUid |
UID of the previously received PPDU, reset to UINT64_MAX upon transmission. | |
Ptr< UniformRandomVariable > | m_random |
Provides uniform random variables. | |
uint32_t | m_rxMpduReferenceNumber |
A-MPDU reference number to identify all received subframes belonging to the same received A-MPDU. | |
TracedCallback< Ptr< const WifiPpdu >, const WifiTxVector & > | m_signalTransmissionCb |
Signal Transmission callback. | |
Ptr< WifiPhyStateHelper > | m_state |
Pointer to WifiPhyStateHelper. | |
uint32_t | m_txMpduReferenceNumber |
A-MPDU reference number to identify all transmitted subframes belonging to the same received A-MPDU. | |
Private Member Functions | |
bool | CanStartRx (Ptr< const WifiPpdu > ppdu) const |
Determine whether the PHY shall issue a PHY-RXSTART.indication primitive in response to a given PPDU. | |
WifiSpectrumBands | ComputeBands (Ptr< WifiSpectrumPhyInterface > spectrumPhyInterface) |
This function computes the bands that belong to a given spectrum PHY interface. | |
WifiSpectrumBandFrequencies | ConvertIndicesToFrequenciesForInterface (Ptr< WifiSpectrumPhyInterface > spectrumPhyInterface, const WifiSpectrumBandIndices &indices) const |
This is a helper function to convert start and stop indices to start and stop frequencies. | |
void | FinalizeChannelSwitch () override |
Method that can be overridden by subclasses to perform operations after the channel is actually switched but before the MAC is notified of the channel switch. | |
WifiSpectrumBandInfo | GetBandForInterface (Ptr< WifiSpectrumPhyInterface > spectrumPhyInterface, MHz_u bandWidth, uint8_t bandIndex=0) |
Get the info of a given band that belongs to a given spectrum PHY interface. | |
HeRuBands | GetHeRuBands (Ptr< WifiSpectrumPhyInterface > spectrumPhyInterface, MHz_u guardBandwidth) |
This function computes the RU bands that belong to a given spectrum PHY interface. | |
Ptr< WifiSpectrumPhyInterface > | GetInterfaceCoveringChannelBand (MHz_u frequency, MHz_u width) const |
Get the spectrum PHY interface that covers a band portion of the RF channel. | |
void | NotifyChannelSwitched () |
Notify the spectrum channel has switched. | |
void | ResetSpectrumModel (Ptr< WifiSpectrumPhyInterface > spectrumPhyInterface, const std::vector< MHz_u > ¢erFrequencies, MHz_u channelWidth) |
Perform run-time spectrum model change. | |
void | UpdateInterferenceHelperBands (Ptr< WifiSpectrumPhyInterface > spectrumPhyInterface) |
This function is called to update the bands handled by the InterferenceHelper. | |
Private Attributes | |
Ptr< AntennaModel > | m_antenna |
antenna model | |
Callback< void > | m_channelSwitchedCallback |
Callback when channel switched. | |
bool | m_disableWifiReception |
forces this PHY to fail to sync on any signal | |
std::vector< MHz_u > | m_frequenciesBeforeSwitch |
center frequency before channel switch | |
TracedCallback< Ptr< const SpectrumSignalParameters >, uint32_t, double, Time > | m_signalCb |
Signal callback. | |
bool | m_trackSignalsInactiveInterfaces |
flag whether signals coming from inactive spectrum PHY interfaces are tracked | |
dBr_u | m_txMaskInnerBandMinimumRejection |
The minimum rejection for the inner band of the transmit spectrum mask. | |
dBr_u | m_txMaskOuterBandMaximumRejection |
The maximum rejection for the outer band of the transmit spectrum mask. | |
dBr_u | m_txMaskOuterBandMinimumRejection |
The minimum rejection for the outer band of the transmit spectrum mask. | |
std::vector< MHz_u > | m_widthsBeforeSwitch |
channel width before channel switch | |
Friends | |
class | ::SpectrumWifiPhyFilterTest |
allow SpectrumWifiPhyFilterTest class access | |
Additional Inherited Members | |
Related Symbols inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
802.11 PHY layer model
This PHY implements a spectrum-aware enhancement of the 802.11 SpectrumWifiPhy model.
This PHY model depends on a channel loss and delay model as provided by the ns3::SpectrumPropagationLossModel and ns3::PropagationDelayModel classes.
ns3::SpectrumWifiPhy is accessible through the following paths with Config::Set and Config::Connect:
ns3::Ptr<N3ns310TupleValueIJNS_13UintegerValueES1_NS_9EnumValueINS_11WifiPhyBandEEES1_EEE>
Time
+0ns:+9.22337e+18ns Time
-9.22337e+18ns:+9.22337e+18ns Time
-9.22337e+18ns:+9.22337e+18ns Time
-9.22337e+18ns:+9.22337e+18ns Group: Wifi
Size of this type is 1080 bytes (on a 64-bit architecture).
Definition at line 50 of file spectrum-wifi-phy.h.
typedef void(* ns3::SpectrumWifiPhy::SignalArrivalCallback) (Ptr< const SpectrumSignalParameters > signal, uint32_t senderNodeId, double rxPower, Time duration) |
Callback invoked when the PHY model starts to process a signal.
senderNodeId | Node Id of the sender of the signal |
rxPower | received signal power (dBm) |
duration | Signal duration |
Definition at line 121 of file spectrum-wifi-phy.h.
ns3::SpectrumWifiPhy::SpectrumWifiPhy | ( | ) |
Definition at line 89 of file spectrum-wifi-phy.cc.
References NS_LOG_FUNCTION.
|
override |
Definition at line 98 of file spectrum-wifi-phy.cc.
References NS_LOG_FUNCTION.
void ns3::SpectrumWifiPhy::AddChannel | ( | const Ptr< SpectrumChannel > | channel, |
const FrequencyRange & | freqRange = WHOLE_WIFI_SPECTRUM ) |
Attach a SpectrumChannel to use for a given frequency range.
channel | the SpectrumChannel to attach |
freqRange | the frequency range, bounded by a minFrequency and a maxFrequency in MHz |
Definition at line 237 of file spectrum-wifi-phy.cc.
References ns3::CreateObject(), ns3::WifiPhy::GetDevice(), m_spectrumPhyInterfaces, NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.
Referenced by SpectrumWifiPhyFilterTest::DoSetup(), SpectrumWifiPhyTrackedBandsTest::DoSetup(), TestDlMuMimoPhyTransmission::DoSetup(), TestDlOfdmaPhyPuncturing::DoSetup(), TestDlOfdmaPhyTransmission::DoSetup(), TestMultipleCtsResponsesFromMuRts::DoSetup(), TestMultipleHeTbPreambles::DoSetup(), TestPhyPaddingExclusion::DoSetup(), TestUlMuMimoPhyTransmission::DoSetup(), TestUlOfdmaPhyTransmission::DoSetup(), and TestUlOfdmaPpduUid::DoSetup().
Determine whether the PHY shall issue a PHY-RXSTART.indication primitive in response to a given PPDU.
ppdu | the PPDU |
Definition at line 457 of file spectrum-wifi-phy.cc.
References ns3::WifiPhy::GetLatestPhyEntity().
Referenced by StartRx().
|
private |
This function computes the bands that belong to a given spectrum PHY interface.
spectrumPhyInterface | the spectrum PHY interface to consider to compute the bands |
Definition at line 122 of file spectrum-wifi-phy.cc.
References GetBandForInterface(), and NS_LOG_FUNCTION.
Referenced by UpdateInterferenceHelperBands().
void ns3::SpectrumWifiPhy::ConfigureInterface | ( | const std::vector< MHz_u > & | frequencies, |
MHz_u | width ) |
Configure a non-active spectrum PHY interface to operate on a given frequency (or several frequencies for non-contiguous) with a given total width.
The function searches for the non-active PHY interface that operates on the frequency range corresponding to the spectrum portion specified by the caller. It takes care to configure the RX spectrum model of the PHY interface and to update the bands tracked in interference helper.
frequencies | the center frequency of each segment the PHY interface should use |
width | the total channel width the PHY interface should use |
Definition at line 406 of file spectrum-wifi-phy.cc.
References GetInterfaceCoveringChannelBand(), m_currentSpectrumPhyInterface, m_trackSignalsInactiveInterfaces, NS_ABORT_MSG_IF, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ResetSpectrumModel().
|
overridevirtual |
This is a helper function to convert start and stop indices to start and stop frequencies.
indices | the start/stop indices to convert |
Implements ns3::WifiPhy.
Definition at line 776 of file spectrum-wifi-phy.cc.
References ConvertIndicesToFrequenciesForInterface(), m_currentSpectrumPhyInterface, and NS_ABORT_IF.
|
private |
This is a helper function to convert start and stop indices to start and stop frequencies.
spectrumPhyInterface | the spectrum PHY interface to consider for the calculations |
indices | the start/stop indices to convert |
Definition at line 783 of file spectrum-wifi-phy.cc.
References NS_ABORT_IF.
Referenced by ConvertIndicesToFrequencies(), GetBandForInterface(), and GetHeRuBands().
|
overrideprotectedvirtual |
Actually switch channel based on the stored channel settings.
Reimplemented from ns3::WifiPhy.
Definition at line 297 of file spectrum-wifi-phy.cc.
References ns3::WifiPhy::DoChannelSwitch(), ns3::WifiPhyOperatingChannel::GetFrequencies(), ns3::WifiPhy::GetOperatingChannel(), ns3::WifiPhyOperatingChannel::GetWidths(), ns3::WifiPhyOperatingChannel::IsSet(), m_frequenciesBeforeSwitch, m_widthsBeforeSwitch, and NS_LOG_FUNCTION.
|
overrideprotectedvirtual |
Destructor implementation.
This method is called by Dispose() or by the Object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overridden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.
It is safe to call GetObject() from within this method.
Reimplemented from ns3::Object.
Definition at line 104 of file spectrum-wifi-phy.cc.
References ns3::WifiPhy::DoDispose(), m_antenna, m_channelSwitchedCallback, m_currentSpectrumPhyInterface, m_spectrumPhyInterfaces, NS_LOG_FUNCTION, and ns3::Callback< R, UArgs >::Nullify().
Referenced by MuMimoSpectrumWifiPhy::DoDispose(), MuRtsCtsSpectrumWifiPhy::DoDispose(), and OfdmaSpectrumWifiPhy::DoDispose().
|
overrideprotectedvirtual |
Initialize() implementation.
This method is called only once by Initialize(). If the user calls Initialize() multiple times, DoInitialize() is called only the first time.
Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject() and AggregateObject() from within this method.
Reimplemented from ns3::Object.
Definition at line 115 of file spectrum-wifi-phy.cc.
References ns3::WifiPhy::DoInitialize(), and NS_LOG_FUNCTION.
Referenced by MuMimoSpectrumWifiPhy::DoInitialize(), MuRtsCtsSpectrumWifiPhy::DoInitialize(), and OfdmaSpectrumWifiPhy::DoInitialize().
|
overrideprivatevirtual |
Method that can be overridden by subclasses to perform operations after the channel is actually switched but before the MAC is notified of the channel switch.
Implements ns3::WifiPhy.
Definition at line 309 of file spectrum-wifi-phy.cc.
References ns3::WifiPhyOperatingChannel::GetFrequencies(), GetInterfaceCoveringChannelBand(), ns3::WifiPhyOperatingChannel::GetNSegments(), ns3::WifiPhy::GetOperatingChannel(), ns3::WifiPhyOperatingChannel::GetWidths(), ns3::Object::IsInitialized(), m_currentSpectrumPhyInterface, m_frequenciesBeforeSwitch, m_trackSignalsInactiveInterfaces, m_widthsBeforeSwitch, NotifyChannelSwitched(), NS_ABORT_MSG_IF, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ResetSpectrumModel(), ns3::Simulator::ScheduleNow(), and ns3::WifiPhy::SwitchMaybeToCcaBusy().
Ptr< AntennaModel > ns3::SpectrumWifiPhy::GetAntenna | ( | ) | const |
Get the antenna model used for reception.
Definition at line 623 of file spectrum-wifi-phy.cc.
References m_antenna.
|
overridevirtual |
Get the info of a given band.
bandWidth | the width of the band to be returned |
bandIndex | the index of the band to be returned |
Implements ns3::WifiPhy.
Definition at line 769 of file spectrum-wifi-phy.cc.
References GetBandForInterface(), m_currentSpectrumPhyInterface, and NS_ABORT_IF.
|
private |
Get the info of a given band that belongs to a given spectrum PHY interface.
spectrumPhyInterface | the spectrum PHY interface |
bandWidth | the width of the band to be returned |
bandIndex | the index of the band to be returned |
Definition at line 705 of file spectrum-wifi-phy.cc.
References ConvertIndicesToFrequenciesForInterface(), ns3::WifiSpectrumBandInfo::frequencies, GetNumBandsBetweenSegments(), ns3::WifiPhy::GetSubcarrierSpacing(), ns3::WifiSpectrumBandInfo::indices, NS_ASSERT, and NS_ASSERT_MSG.
Referenced by ComputeBands(), and GetBand().
Return the Channel this WifiPhy is connected to.
Implements ns3::WifiPhy.
Definition at line 230 of file spectrum-wifi-phy.cc.
References m_currentSpectrumPhyInterface, and NS_ABORT_IF.
|
overridevirtual |
Get the frequency range of the current RF interface.
Implements ns3::WifiPhy.
Definition at line 804 of file spectrum-wifi-phy.cc.
References m_currentSpectrumPhyInterface, and NS_ABORT_IF.
Referenced by StartRx().
Ptr< WifiSpectrumPhyInterface > ns3::SpectrumWifiPhy::GetCurrentInterface | ( | ) | const |
Get the currently active spectrum PHY interface.
Definition at line 835 of file spectrum-wifi-phy.cc.
References m_currentSpectrumPhyInterface.
Referenced by SpectrumWifiPhyFilterTest::RxCallback().
currentChannelWidth | channel width of the current transmission |
Note: in order to properly model out of band transmissions for OFDM, the guard band has been configured so as to expand the modeled spectrum up to the outermost referenced point in "Transmit spectrum mask" sections' PSDs of each PHY specification of 802.11-2016 standard. It thus ultimately corresponds to the current channel bandwidth (which can be different from devices max channel width).
This method is only relevant for SpectrumWifiPhy.
Implements ns3::WifiPhy.
Definition at line 663 of file spectrum-wifi-phy.cc.
Referenced by ResetSpectrumModel(), SpectrumWifiPhyFilterTest::RxCallback(), TestMultipleHeTbPreambles::RxHeTbPpdu(), and UpdateInterferenceHelperBands().
|
private |
This function computes the RU bands that belong to a given spectrum PHY interface.
spectrumPhyInterface | the spectrum PHY interface to consider to compute the RU bands |
guardBandwidth | width of the guard band |
Definition at line 145 of file spectrum-wifi-phy.cc.
References ns3::HePhy::ConvertHeRuSubcarriers(), ConvertIndicesToFrequenciesForInterface(), ns3::HeRu::GetNRus(), ns3::WifiPhy::GetOperatingChannel(), ns3::HeRu::RuSpec::GetPhyIndex(), ns3::WifiPhyOperatingChannel::GetPrimaryChannelIndex(), ns3::HeRu::GetSubcarrierGroup(), ns3::WifiPhy::GetSubcarrierSpacing(), ns3::WifiSpectrumBandInfo::indices, NS_ABORT_IF, and ns3::HeRu::RU_2x996_TONE.
Referenced by SpectrumWifiPhyFilterTest::RxCallback(), StartRx(), and UpdateInterferenceHelperBands().
|
private |
Get the spectrum PHY interface that covers a band portion of the RF channel.
frequency | the center frequency of the RF channel band |
width | the width of the RF channel band |
Definition at line 817 of file spectrum-wifi-phy.cc.
References m_spectrumPhyInterfaces.
Referenced by ConfigureInterface(), and FinalizeChannelSwitch().
|
static |
Determine the number of bands between the two segments if the operating channel is made of non-contiguous segments, otherwise the function returns zero.
centerFrequencies | the center frequency of each segment |
totalWidth | the width of the operating channel |
subcarrierSpacing | the subcarrier spacing |
Definition at line 685 of file spectrum-wifi-phy.cc.
References NS_ABORT_MSG_IF, and NS_ASSERT.
Referenced by ns3::HePhy::ConvertHeRuSubcarriers(), and GetBandForInterface().
Determine the WifiPpdu to be used by the RX PHY based on the WifiPpdu sent by the TX PHY.
ppdu | the WifiPpdu transmitted by the TX PHY |
Definition at line 617 of file spectrum-wifi-phy.cc.
References ns3::WifiPhy::GetPhyEntityForPpdu().
Referenced by StartRx().
const std::map< FrequencyRange, Ptr< WifiSpectrumPhyInterface > > & ns3::SpectrumWifiPhy::GetSpectrumPhyInterfaces | ( | ) | const |
Get the map of interfaces attached to this spectrum PHY.
Definition at line 811 of file spectrum-wifi-phy.cc.
References m_spectrumPhyInterfaces.
|
overridevirtual |
This method is only relevant for SpectrumWifiPhy.
Implements ns3::WifiPhy.
Definition at line 796 of file spectrum-wifi-phy.cc.
References m_txMaskInnerBandMinimumRejection, m_txMaskOuterBandMaximumRejection, and m_txMaskOuterBandMinimumRejection.
|
static |
Get the type ID.
Definition at line 45 of file spectrum-wifi-phy.cc.
References m_disableWifiReception, m_signalCb, m_trackSignalsInactiveInterfaces, m_txMaskInnerBandMinimumRejection, m_txMaskOuterBandMaximumRejection, m_txMaskOuterBandMinimumRejection, ns3::MakeBooleanAccessor(), ns3::MakeBooleanChecker(), ns3::MakeDoubleAccessor(), ns3::MakeDoubleChecker(), ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().
|
private |
Notify the spectrum channel has switched.
Definition at line 397 of file spectrum-wifi-phy.cc.
References ns3::Callback< R, UArgs >::IsNull(), and m_channelSwitchedCallback.
Referenced by FinalizeChannelSwitch().
|
private |
Perform run-time spectrum model change.
spectrumPhyInterface | the spectrum PHY interface for which the spectrum model should be changed |
centerFrequencies | the center frequency of each segment the PHY interface should use |
channelWidth | the total channel width the PHY interface should use |
Definition at line 266 of file spectrum-wifi-phy.cc.
References GetGuardBandwidth(), ns3::WifiPhy::GetSubcarrierSpacing(), NS_LOG_FUNCTION, and UpdateInterferenceHelperBands().
Referenced by ConfigureInterface(), and FinalizeChannelSwitch().
void ns3::SpectrumWifiPhy::SetAntenna | ( | const Ptr< AntennaModel > | antenna | ) |
antenna | an AntennaModel to include in the transmitted SpectrumSignalParameters (in case any objects downstream of the SpectrumWifiPhy wish to adjust signal properties based on the transmitted antenna model. This antenna is also used when the underlying WifiSpectrumPhyInterface::GetAntenna() method is called. |
Note: this method may be split into separate SetTx and SetRx methods in the future if the modeling need for this arises
Definition at line 629 of file spectrum-wifi-phy.cc.
References m_antenna, and NS_LOG_FUNCTION.
void ns3::SpectrumWifiPhy::SetChannelSwitchedCallback | ( | Callback< void > | callback | ) |
callback | the callback to invoke when operating channel has switched. |
Definition at line 841 of file spectrum-wifi-phy.cc.
References m_channelSwitchedCallback.
|
overridevirtual |
Sets the device this PHY is associated with.
device | the device this PHY is associated with |
Reimplemented from ns3::WifiPhy.
Definition at line 636 of file spectrum-wifi-phy.cc.
References m_spectrumPhyInterfaces, NS_LOG_FUNCTION, and ns3::WifiPhy::SetDevice().
Referenced by SpectrumWifiPhyFilterTest::DoSetup(), SpectrumWifiPhyTrackedBandsTest::DoSetup(), TestDlMuMimoPhyTransmission::DoSetup(), TestDlOfdmaPhyPuncturing::DoSetup(), TestDlOfdmaPhyTransmission::DoSetup(), TestMultipleCtsResponsesFromMuRts::DoSetup(), TestMultipleHeTbPreambles::DoSetup(), TestPhyPaddingExclusion::DoSetup(), TestUlMuMimoPhyTransmission::DoSetup(), TestUlOfdmaPhyTransmission::DoSetup(), and TestUlOfdmaPpduUid::DoSetup().
void ns3::SpectrumWifiPhy::StartRx | ( | Ptr< SpectrumSignalParameters > | rxParams, |
Ptr< const WifiSpectrumPhyInterface > | interface ) |
Input method for delivering a signal from the spectrum channel and low-level PHY interface to this SpectrumWifiPhy instance.
rxParams | Input signal parameters |
interface | the Spectrum PHY interface for which the signal has been detected |
Definition at line 463 of file spectrum-wifi-phy.cc.
References ns3::Time::As(), CanStartRx(), ns3::DbmToW(), ns3::DbToRatio(), ns3::DynamicCast(), ns3::WifiPhy::GetChannelWidth(), GetCurrentFrequencyRange(), GetHeRuBands(), GetRxPpduFromTxPpdu(), ns3::WifiPhy::GetRxSensitivity(), ns3::WifiPhy::GetStandard(), ns3::Integral(), m_currentSpectrumPhyInterface, m_disableWifiReception, ns3::WifiPhy::m_interference, m_signalCb, m_trackSignalsInactiveInterfaces, ns3::Time::NS, NS_ASSERT, NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::WifiPhy::StartReceivePreamble(), ns3::WifiPhy::SwitchMaybeToCcaBusy(), ns3::WIFI_STANDARD_80211ax, and ns3::WToDbm().
Referenced by TestMultipleHeTbPreambles::DoRxHeTbPpduOfdmaPart(), and TestMultipleHeTbPreambles::RxHeTbPpdu().
ppdu | the PPDU to send |
Implements ns3::WifiPhy.
Definition at line 647 of file spectrum-wifi-phy.cc.
References ns3::WifiPhy::GetPhyEntity(), ns3::WifiPhy::m_signalTransmissionCb, and NS_LOG_FUNCTION.
Referenced by OfdmaSpectrumWifiPhy::StartTx().
void ns3::SpectrumWifiPhy::Transmit | ( | Ptr< WifiSpectrumSignalParameters > | txParams | ) |
This function is sending the signal to the Spectrum channel after finishing the configuration of the transmit parameters.
txParams | the parameters to be provided to the Spectrum channel |
Definition at line 655 of file spectrum-wifi-phy.cc.
References m_currentSpectrumPhyInterface, NS_ABORT_IF, and NS_LOG_FUNCTION.
|
private |
This function is called to update the bands handled by the InterferenceHelper.
spectrumPhyInterface | the spectrum PHY interface for which the bands should be updated |
Definition at line 198 of file spectrum-wifi-phy.cc.
References ComputeBands(), GetGuardBandwidth(), GetHeRuBands(), ns3::WifiPhy::GetStandard(), ns3::WifiPhy::m_interference, NS_LOG_FUNCTION, and ns3::WIFI_STANDARD_80211ax.
Referenced by ResetSpectrumModel().
|
friend |
allow SpectrumWifiPhyFilterTest class access
Definition at line 54 of file spectrum-wifi-phy.h.
|
private |
antenna model
Definition at line 289 of file spectrum-wifi-phy.h.
Referenced by DoDispose(), GetAntenna(), and SetAntenna().
|
private |
Callback when channel switched.
Definition at line 307 of file spectrum-wifi-phy.h.
Referenced by DoDispose(), NotifyChannelSwitched(), and SetChannelSwitchedCallback().
|
protected |
The current Spectrum PHY interface (held for performance reasons)
Definition at line 199 of file spectrum-wifi-phy.h.
Referenced by ConfigureInterface(), ConvertIndicesToFrequencies(), DoDispose(), FinalizeChannelSwitch(), GetBand(), GetChannel(), GetCurrentFrequencyRange(), GetCurrentInterface(), StartRx(), and Transmit().
|
private |
forces this PHY to fail to sync on any signal
Definition at line 291 of file spectrum-wifi-phy.h.
Referenced by GetTypeId(), and StartRx().
|
private |
center frequency before channel switch
Definition at line 294 of file spectrum-wifi-phy.h.
Referenced by DoChannelSwitch(), and FinalizeChannelSwitch().
|
private |
Signal callback.
Definition at line 298 of file spectrum-wifi-phy.h.
Referenced by GetTypeId(), and StartRx().
|
protected |
Spectrum PHY interfaces.
Definition at line 196 of file spectrum-wifi-phy.h.
Referenced by AddChannel(), DoDispose(), GetInterfaceCoveringChannelBand(), GetSpectrumPhyInterfaces(), and SetDevice().
|
private |
flag whether signals coming from inactive spectrum PHY interfaces are tracked
Definition at line 292 of file spectrum-wifi-phy.h.
Referenced by ConfigureInterface(), FinalizeChannelSwitch(), GetTypeId(), and StartRx().
|
private |
The minimum rejection for the inner band of the transmit spectrum mask.
Definition at line 300 of file spectrum-wifi-phy.h.
Referenced by GetTxMaskRejectionParams(), and GetTypeId().
|
private |
The maximum rejection for the outer band of the transmit spectrum mask.
Definition at line 304 of file spectrum-wifi-phy.h.
Referenced by GetTxMaskRejectionParams(), and GetTypeId().
|
private |
The minimum rejection for the outer band of the transmit spectrum mask.
Definition at line 302 of file spectrum-wifi-phy.h.
Referenced by GetTxMaskRejectionParams(), and GetTypeId().
|
private |
channel width before channel switch
Definition at line 295 of file spectrum-wifi-phy.h.
Referenced by DoChannelSwitch(), and FinalizeChannelSwitch().