802.11 PHY layer modelThis PHY implements a model of 802.11a. More...
#include "yans-wifi-phy.h"
Public Member Functions | |
YansWifiPhy () | |
virtual | ~YansWifiPhy () |
virtual void | AddSupportedChannelWidth (uint32_t width) |
int64_t | AssignStreams (int64_t stream) |
Assign a fixed random variable stream number to the random variables used by this model. More... | |
virtual double | CalculateSnr (WifiTxVector txVector, double ber) const |
virtual void | ConfigureStandard (enum WifiPhyStandard standard) |
Configure the PHY-level parameters for different Wi-Fi standard. More... | |
virtual uint32_t | GetBssMembershipSelector (uint32_t selector) 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 as WifiPhy::m_bssMembershipSelectorSet. More... | |
double | GetCcaMode1Threshold (void) const |
Return the CCA threshold (dBm). More... | |
virtual Ptr< WifiChannel > | GetChannel (void) const |
Return the WifiChannel this WifiPhy is connected to. More... | |
double | GetChannelFrequencyMhz () const |
Return current center channel frequency in MHz. More... | |
uint16_t | GetChannelNumber (void) const |
Return the current channel number. More... | |
Time | GetChannelSwitchDelay (void) const |
virtual uint32_t | GetChannelWidth (void) const |
Return channel width. More... | |
virtual Time | GetDelayUntilIdle (void) |
Ptr< NetDevice > | GetDevice (void) const |
Return the device this PHY is associated with. More... | |
double | GetEdThreshold (void) const |
Return the energy detection threshold (dBm). More... | |
Ptr< ErrorRateModel > | GetErrorRateModel (void) const |
Return the error rate model this PHY is using. More... | |
virtual uint32_t | GetFrequency (void) const |
virtual bool | GetGreenfield (void) const |
Return whether Greenfield is supported. More... | |
virtual bool | GetGuardInterval (void) const |
Return whether guard interval is being used. More... | |
virtual Time | GetLastRxStartTime (void) const |
Return the start time of the last received packet. More... | |
virtual bool | GetLdpc (void) const |
Return if LDPC is supported. More... | |
virtual WifiMode | GetMcs (uint8_t mcs) const |
The WifiPhy::GetMcs() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception MCS indexes that this WifiPhy(-derived class) can support - a set of MCS indexes which we call the DeviceMcsSet, and which is stored as WifiPhy::m_deviceMcsSet. More... | |
virtual WifiModeList | GetMembershipSelectorModes (uint32_t selector) |
The WifiPhy::GetMembershipSelectorModes() 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 as WifiPhy::m_bssMembershipSelectorSet. More... | |
Ptr< MobilityModel > | GetMobility (void) |
Return the mobility model this PHY is associated with. More... | |
virtual WifiMode | GetMode (uint32_t mode) const |
The WifiPhy::GetNModes() and WifiPhy::GetMode() methods are 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 DeviceRateSet, and which is stored as WifiPhy::m_deviceRateSet. More... | |
virtual uint32_t | GetNBssMembershipSelectors (void) const |
The WifiPhy::NBssMembershipSelectors() 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 as WifiPhy::m_bssMembershipSelectorSet. More... | |
virtual uint8_t | GetNMcs (void) const |
virtual uint32_t | GetNModes (void) const |
The WifiPhy::GetNModes() and WifiPhy::GetMode() methods are 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 DeviceRateSet, and which is stored as WifiPhy::m_deviceRateSet. More... | |
virtual uint32_t | GetNTxPower (void) const |
Return the number of available transmission power levels. More... | |
virtual uint32_t | GetNumberOfReceiveAntennas (void) const |
virtual uint32_t | GetNumberOfTransmitAntennas (void) const |
double | GetRxGain (void) const |
Return the reception gain (dB). More... | |
double | GetRxNoiseFigure (void) const |
Return the RX noise figure (dBm). More... | |
virtual bool | GetShortPlcpPreambleSupported (void) const |
Return whether short PLCP preamble is supported. More... | |
virtual Time | GetStateDuration (void) |
virtual bool | GetStbc (void) const |
Return whether STBC is supported. More... | |
virtual std::vector< uint32_t > | GetSupportedChannelWidthSet (void) const |
virtual uint8_t | GetSupportedRxSpatialStreams (void) const |
virtual uint8_t | GetSupportedTxSpatialStreams (void) const |
double | GetTxGain (void) const |
Return the transmission gain (dB). More... | |
virtual double | GetTxPowerEnd (void) const |
Return the maximum available transmission power level (dBm). More... | |
virtual double | GetTxPowerStart (void) const |
Return the minimum available transmission power level (dBm). More... | |
virtual bool | IsMcsSupported (WifiMode mcs) |
virtual bool | IsModeSupported (WifiMode mode) const |
Check if the given WifiMode is supported by the PHY. More... | |
virtual bool | IsStateBusy (void) |
virtual bool | IsStateCcaBusy (void) |
virtual bool | IsStateIdle (void) |
virtual bool | IsStateRx (void) |
virtual bool | IsStateSleep (void) |
virtual bool | IsStateSwitching (void) |
virtual bool | IsStateTx (void) |
virtual void | RegisterListener (WifiPhyListener *listener) |
virtual void | ResumeFromSleep (void) |
Resume from sleep mode. More... | |
virtual void | SendPacket (Ptr< const Packet > packet, WifiTxVector txVector, enum WifiPreamble preamble) |
virtual void | SendPacket (Ptr< const Packet > packet, WifiTxVector txVector, enum WifiPreamble preamble, enum mpduType mpdutype) |
void | SetCcaMode1Threshold (double threshold) |
Sets the CCA threshold (dBm). More... | |
void | SetChannel (Ptr< YansWifiChannel > channel) |
Set the YansWifiChannel this YansWifiPhy is to be connected to. More... | |
void | SetChannelNumber (uint16_t id) |
Set the current channel number. More... | |
virtual void | SetChannelWidth (uint32_t channelwidth) |
Set channel width. More... | |
void | SetDevice (Ptr< NetDevice > device) |
Sets the device this PHY is associated with. More... | |
void | SetEdThreshold (double threshold) |
Sets the energy detection threshold (dBm). More... | |
void | SetErrorRateModel (Ptr< ErrorRateModel > rate) |
Sets the error rate model. More... | |
virtual void | SetFrequency (uint32_t freq) |
virtual void | SetGreenfield (bool greenfield) |
Enable or disable Greenfield support. More... | |
virtual void | SetGuardInterval (bool guardInterval) |
Enable or disable short/long guard interval. More... | |
virtual void | SetLdpc (bool ldpc) |
Enable or disable LDPC. More... | |
void | SetMobility (Ptr< MobilityModel > mobility) |
assign a mobility model to this device More... | |
void | SetNTxPower (uint32_t n) |
Sets the number of transmission power levels available between the minimum level and the maximum level. More... | |
virtual void | SetNumberOfReceiveAntennas (uint32_t rx) |
virtual void | SetNumberOfTransmitAntennas (uint32_t tx) |
virtual void | SetReceiveErrorCallback (WifiPhy::RxErrorCallback callback) |
virtual void | SetReceiveOkCallback (WifiPhy::RxOkCallback callback) |
void | SetRxGain (double gain) |
Sets the reception gain (dB). More... | |
void | SetRxNoiseFigure (double noiseFigureDb) |
Sets the RX loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver. More... | |
virtual void | SetShortPlcpPreambleSupported (bool preamble) |
Enable or disable short PLCP preamble. More... | |
virtual void | SetSleepMode (void) |
Put in sleep mode. More... | |
virtual void | SetStbc (bool stbc) |
Enable or disable STBC. More... | |
void | SetTxGain (double gain) |
Sets the transmission gain (dB). More... | |
void | SetTxPowerEnd (double end) |
Sets the maximum available transmission power level (dBm). More... | |
void | SetTxPowerStart (double start) |
Sets the minimum available transmission power level (dBm). More... | |
void | StartReceivePacket (Ptr< Packet > packet, WifiTxVector txVector, WifiPreamble preamble, enum mpduType mpdutype, Ptr< InterferenceHelper::Event > event) |
Starting receiving the payload of a packet (i.e. More... | |
void | StartReceivePreambleAndHeader (Ptr< Packet > packet, double rxPowerDbm, WifiTxVector txVector, WifiPreamble preamble, enum mpduType mpdutype, Time rxDuration) |
Starting receiving the plcp of a packet (i.e. More... | |
virtual void | UnregisterListener (WifiPhyListener *listener) |
![]() | |
WifiPhy () | |
virtual | ~WifiPhy () |
Time | CalculatePlcpPreambleAndHeaderDuration (WifiTxVector txVector, enum WifiPreamble preamble) |
Time | CalculateTxDuration (uint32_t size, WifiTxVector txVector, enum WifiPreamble preamble, double frequency) |
Time | CalculateTxDuration (uint32_t size, WifiTxVector txVector, enum WifiPreamble preamble, double frequency, enum mpduType mpdutype, uint8_t incFlag) |
Time | GetPayloadDuration (uint32_t size, WifiTxVector txVector, WifiPreamble preamble, double frequency) |
Time | GetPayloadDuration (uint32_t size, WifiTxVector txVector, WifiPreamble preamble, double frequency, enum mpduType mpdutype, uint8_t incFlag) |
void | NotifyMonitorSniffRx (Ptr< const Packet > packet, uint16_t channelFreqMhz, uint16_t channelNumber, uint32_t rate, WifiPreamble preamble, WifiTxVector txVector, struct mpduInfo aMpdu, struct signalNoiseDbm signalNoise) |
Public method used to fire a MonitorSniffer trace for a wifi packet being received. More... | |
void | NotifyMonitorSniffTx (Ptr< const Packet > packet, uint16_t channelFreqMhz, uint16_t channelNumber, uint32_t rate, WifiPreamble preamble, WifiTxVector txVector, struct mpduInfo aMpdu) |
Public method used to fire a MonitorSniffer trace for a wifi packet being transmitted. More... | |
void | NotifyRxBegin (Ptr< const Packet > packet) |
Public method used to fire a PhyRxBegin trace. More... | |
void | NotifyRxDrop (Ptr< const Packet > packet) |
Public method used to fire a PhyRxDrop trace. More... | |
void | NotifyRxEnd (Ptr< const Packet > packet) |
Public method used to fire a PhyRxEnd trace. More... | |
void | NotifyTxBegin (Ptr< const Packet > packet) |
Public method used to fire a PhyTxBegin trace. More... | |
void | NotifyTxDrop (Ptr< const Packet > packet) |
Public method used to fire a PhyTxDrop trace. More... | |
void | NotifyTxEnd (Ptr< const Packet > packet) |
Public method used to fire a PhyTxEnd trace. More... | |
![]() | |
Object () | |
Constructor. More... | |
virtual | ~Object () |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose (void) |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator (void) const |
Get an iterator to the Objects aggregated to this one. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Implement the GetInstanceTypeId method defined in ObjectBase. More... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
![]() | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising erros. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static WifiMode | GetDsssRate11Mbps () |
Return a WifiMode for DSSS at 11Mbps. More... | |
static WifiMode | GetDsssRate1Mbps () |
Return a WifiMode for DSSS at 1Mbps. More... | |
static WifiMode | GetDsssRate2Mbps () |
Return a WifiMode for DSSS at 2Mbps. More... | |
static WifiMode | GetDsssRate5_5Mbps () |
Return a WifiMode for DSSS at 5.5Mbps. More... | |
static WifiMode | GetErpOfdmRate12Mbps () |
Return a WifiMode for ERP-OFDM at 12Mbps. More... | |
static WifiMode | GetErpOfdmRate18Mbps () |
Return a WifiMode for ERP-OFDM at 18Mbps. More... | |
static WifiMode | GetErpOfdmRate24Mbps () |
Return a WifiMode for ERP-OFDM at 24Mbps. More... | |
static WifiMode | GetErpOfdmRate36Mbps () |
Return a WifiMode for ERP-OFDM at 36Mbps. More... | |
static WifiMode | GetErpOfdmRate48Mbps () |
Return a WifiMode for ERP-OFDM at 48Mbps. More... | |
static WifiMode | GetErpOfdmRate54Mbps () |
Return a WifiMode for ERP-OFDM at 54Mbps. More... | |
static WifiMode | GetErpOfdmRate6Mbps () |
Return a WifiMode for ERP-OFDM at 6Mbps. More... | |
static WifiMode | GetErpOfdmRate9Mbps () |
Return a WifiMode for ERP-OFDM at 9Mbps. More... | |
static WifiMode | GetHtMcs0 () |
Return MCS 0 from HT MCS values. More... | |
static WifiMode | GetHtMcs1 () |
Return MCS 1 from HT MCS values. More... | |
static WifiMode | GetHtMcs10 () |
Return MCS 10 from HT MCS values. More... | |
static WifiMode | GetHtMcs11 () |
Return MCS 11 from HT MCS values. More... | |
static WifiMode | GetHtMcs12 () |
Return MCS 12 from HT MCS values. More... | |
static WifiMode | GetHtMcs13 () |
Return MCS 13 from HT MCS values. More... | |
static WifiMode | GetHtMcs14 () |
Return MCS 14 from HT MCS values. More... | |
static WifiMode | GetHtMcs15 () |
Return MCS 15 from HT MCS values. More... | |
static WifiMode | GetHtMcs16 () |
Return MCS 16 from HT MCS values. More... | |
static WifiMode | GetHtMcs17 () |
Return MCS 17 from HT MCS values. More... | |
static WifiMode | GetHtMcs18 () |
Return MCS 18 from HT MCS values. More... | |
static WifiMode | GetHtMcs19 () |
Return MCS 19 from HT MCS values. More... | |
static WifiMode | GetHtMcs2 () |
Return MCS 2 from HT MCS values. More... | |
static WifiMode | GetHtMcs20 () |
Return MCS 20 from HT MCS values. More... | |
static WifiMode | GetHtMcs21 () |
Return MCS 21 from HT MCS values. More... | |
static WifiMode | GetHtMcs22 () |
Return MCS 22 from HT MCS values. More... | |
static WifiMode | GetHtMcs23 () |
Return MCS 23 from HT MCS values. More... | |
static WifiMode | GetHtMcs24 () |
Return MCS 24 from HT MCS values. More... | |
static WifiMode | GetHtMcs25 () |
Return MCS 25 from HT MCS values. More... | |
static WifiMode | GetHtMcs26 () |
Return MCS 26 from HT MCS values. More... | |
static WifiMode | GetHtMcs27 () |
Return MCS 27 from HT MCS values. More... | |
static WifiMode | GetHtMcs28 () |
Return MCS 28 from HT MCS values. More... | |
static WifiMode | GetHtMcs29 () |
Return MCS 29 from HT MCS values. More... | |
static WifiMode | GetHtMcs3 () |
Return MCS 3 from HT MCS values. More... | |
static WifiMode | GetHtMcs30 () |
Return MCS 30 from HT MCS values. More... | |
static WifiMode | GetHtMcs31 () |
Return MCS 31 from HT MCS values. More... | |
static WifiMode | GetHtMcs4 () |
Return MCS 4 from HT MCS values. More... | |
static WifiMode | GetHtMcs5 () |
Return MCS 5 from HT MCS values. More... | |
static WifiMode | GetHtMcs6 () |
Return MCS 6 from HT MCS values. More... | |
static WifiMode | GetHtMcs7 () |
Return MCS 7 from HT MCS values. More... | |
static WifiMode | GetHtMcs8 () |
Return MCS 8 from HT MCS values. More... | |
static WifiMode | GetHtMcs9 () |
Return MCS 9 from HT MCS values. More... | |
static WifiMode | GetHtPlcpHeaderMode (WifiMode payloadMode) |
static WifiMode | GetOfdmRate12Mbps () |
Return a WifiMode for OFDM at 12Mbps. More... | |
static WifiMode | GetOfdmRate12MbpsBW10MHz () |
Return a WifiMode for OFDM at 12Mbps with 10MHz channel spacing. More... | |
static WifiMode | GetOfdmRate12MbpsBW5MHz () |
Return a WifiMode for OFDM at 12Mbps with 5MHz channel spacing. More... | |
static WifiMode | GetOfdmRate13_5MbpsBW5MHz () |
Return a WifiMode for OFDM at 13.5Mbps with 5MHz channel spacing. More... | |
static WifiMode | GetOfdmRate18Mbps () |
Return a WifiMode for OFDM at 18Mbps. More... | |
static WifiMode | GetOfdmRate18MbpsBW10MHz () |
Return a WifiMode for OFDM at 18Mbps with 10MHz channel spacing. More... | |
static WifiMode | GetOfdmRate1_5MbpsBW5MHz () |
Return a WifiMode for OFDM at 1.5Mbps with 5MHz channel spacing. More... | |
static WifiMode | GetOfdmRate24Mbps () |
Return a WifiMode for OFDM at 24Mbps. More... | |
static WifiMode | GetOfdmRate24MbpsBW10MHz () |
Return a WifiMode for OFDM at 24Mbps with 10MHz channel spacing. More... | |
static WifiMode | GetOfdmRate27MbpsBW10MHz () |
Return a WifiMode for OFDM at 27Mbps with 10MHz channel spacing. More... | |
static WifiMode | GetOfdmRate2_25MbpsBW5MHz () |
Return a WifiMode for OFDM at 2.25Mbps with 5MHz channel spacing. More... | |
static WifiMode | GetOfdmRate36Mbps () |
Return a WifiMode for OFDM at 36Mbps. More... | |
static WifiMode | GetOfdmRate3MbpsBW10MHz () |
Return a WifiMode for OFDM at 3Mbps with 10MHz channel spacing. More... | |
static WifiMode | GetOfdmRate3MbpsBW5MHz () |
Return a WifiMode for OFDM at 3Mbps with 5MHz channel spacing. More... | |
static WifiMode | GetOfdmRate48Mbps () |
Return a WifiMode for OFDM at 48Mbps. More... | |
static WifiMode | GetOfdmRate4_5MbpsBW10MHz () |
Return a WifiMode for OFDM at 4.5Mbps with 10MHz channel spacing. More... | |
static WifiMode | GetOfdmRate4_5MbpsBW5MHz () |
Return a WifiMode for OFDM at 4.5Mbps with 5MHz channel spacing. More... | |
static WifiMode | GetOfdmRate54Mbps () |
Return a WifiMode for OFDM at 54Mbps. More... | |
static WifiMode | GetOfdmRate6Mbps () |
Return a WifiMode for OFDM at 6Mbps. More... | |
static WifiMode | GetOfdmRate6MbpsBW10MHz () |
Return a WifiMode for OFDM at 6Mbps with 10MHz channel spacing. More... | |
static WifiMode | GetOfdmRate6MbpsBW5MHz () |
Return a WifiMode for OFDM at 6Mbps with 5MHz channel spacing. More... | |
static WifiMode | GetOfdmRate9Mbps () |
Return a WifiMode for OFDM at 9Mbps. More... | |
static WifiMode | GetOfdmRate9MbpsBW10MHz () |
Return a WifiMode for OFDM at 9Mbps with 10MHz channel spacing. More... | |
static WifiMode | GetOfdmRate9MbpsBW5MHz () |
Return a WifiMode for OFDM at 9Mbps with 5MHz channel spacing. More... | |
static Time | GetPlcpHeaderDuration (WifiTxVector txVector, WifiPreamble preamble) |
static WifiMode | GetPlcpHeaderMode (WifiMode payloadMode, WifiPreamble preamble, WifiTxVector txVector) |
static Time | GetPlcpHtSigHeaderDuration (WifiPreamble preamble) |
static Time | GetPlcpHtTrainingSymbolDuration (WifiPreamble preamble, WifiTxVector txVector) |
static Time | GetPlcpPreambleDuration (WifiTxVector txVector, WifiPreamble preamble) |
static Time | GetPlcpVhtSigA1Duration (WifiPreamble preamble) |
static Time | GetPlcpVhtSigA2Duration (WifiPreamble preamble) |
static Time | GetPlcpVhtSigBDuration (WifiPreamble preamble) |
static TypeId | GetTypeId (void) |
static WifiMode | GetVhtMcs0 () |
Return MCS 0 from VHT MCS values. More... | |
static WifiMode | GetVhtMcs1 () |
Return MCS 1 from VHT MCS values. More... | |
static WifiMode | GetVhtMcs2 () |
Return MCS 2 from VHT MCS values. More... | |
static WifiMode | GetVhtMcs3 () |
Return MCS 3 from VHT MCS values. More... | |
static WifiMode | GetVhtMcs4 () |
Return MCS 4 from VHT MCS values. More... | |
static WifiMode | GetVhtMcs5 () |
Return MCS 5 from VHT MCS values. More... | |
static WifiMode | GetVhtMcs6 () |
Return MCS 6 from VHT MCS values. More... | |
static WifiMode | GetVhtMcs7 () |
Return MCS 7 from VHT MCS values. More... | |
static WifiMode | GetVhtMcs8 () |
Return MCS 8 from VHT MCS values. More... | |
static WifiMode | GetVhtMcs9 () |
Return MCS 9 from VHT MCS values. More... | |
static WifiMode | GetVhtPlcpHeaderMode (WifiMode payloadMode) |
static bool | IsValidTxVector (WifiTxVector txVector) |
The standard disallows certain combinations of WifiMode, number of spatial streams, and channel widths. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Member Functions | |
void | Configure80211_10Mhz (void) |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11a standard with 10MHz channel spacing. More... | |
void | Configure80211_5Mhz () |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11a standard with 5MHz channel spacing. More... | |
void | Configure80211a (void) |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11a standard. More... | |
void | Configure80211ac (void) |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11ac standard. More... | |
void | Configure80211b (void) |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11b standard. More... | |
void | Configure80211g (void) |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11g standard. More... | |
void | Configure80211n (void) |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11n standard. More... | |
void | ConfigureHolland (void) |
void | ConfigureHtDeviceMcsSet (void) |
Configure the device Mcs set with the appropriate HtMcs modes for the number of available transmit spatial streams. More... | |
double | DbmToW (double dbm) const |
Convert from dBm to Watts. More... | |
double | DbToRatio (double db) const |
Convert from dB to ratio. More... | |
virtual void | DoDispose (void) |
Destructor implementation. More... | |
virtual void | DoInitialize (void) |
Initialize() implementation. More... | |
void | EndReceive (Ptr< Packet > packet, enum WifiPreamble preamble, enum mpduType mpdutype, Ptr< InterferenceHelper::Event > event) |
The last bit of the packet has arrived. More... | |
double | GetEdThresholdW (void) const |
Return the energy detection threshold. More... | |
double | GetPowerDbm (uint8_t power) const |
Get the power of the given power level in dBm. More... | |
double | RatioToDb (double ratio) const |
Convert from ratio to dB. More... | |
double | WToDbm (double w) const |
Convert from Watts to dBm. More... | |
Private Attributes | |
std::vector< uint32_t > | m_bssMembershipSelectorSet |
double | m_ccaMode1ThresholdW |
Clear channel assessment (CCA) threshold in watts. More... | |
Ptr< YansWifiChannel > | m_channel |
YansWifiChannel that this YansWifiPhy is connected to. More... | |
uint16_t | m_channelNumber |
Operating channel number. More... | |
double | m_channelStartingFrequency |
Standard-dependent center frequency of 0-th channel in MHz. More... | |
Time | m_channelSwitchDelay |
Time required to switch between channel. More... | |
uint32_t | m_channelWidth |
Channel width. More... | |
Ptr< NetDevice > | m_device |
Pointer to the device. More... | |
WifiModeList | m_deviceMcsSet |
WifiModeList | m_deviceRateSet |
This vector holds the set of transmission modes that this WifiPhy(-derived class) can support. More... | |
double | m_edThresholdW |
Energy detection threshold in watts. More... | |
EventId | m_endPlcpRxEvent |
EventId | m_endRxEvent |
bool | m_greenfield |
Flag if GreenField format is supported. More... | |
bool | m_guardInterval |
Flag if short guard interval is used. More... | |
bool | m_initialized |
Flag for runtime initialization. More... | |
InterferenceHelper | m_interference |
Pointer to InterferenceHelper. More... | |
bool | m_ldpc |
Flag if LDPC is used. More... | |
Ptr< MobilityModel > | m_mobility |
Pointer to the mobility model. More... | |
uint16_t | m_mpdusNum |
carries the number of expected mpdus that are part of an A-MPDU More... | |
uint32_t | m_nTxPower |
Number of available transmission power levels. More... | |
uint32_t | m_numberOfReceivers |
Number of receivers. More... | |
uint32_t | m_numberOfTransmitters |
Number of transmitters. More... | |
bool | m_plcpSuccess |
Flag if the PLCP of the packet or the first MPDU in an A-MPDU has been received. More... | |
Ptr< UniformRandomVariable > | m_random |
Provides uniform random variables. More... | |
double | m_rxGainDb |
Reception gain (dB) More... | |
uint32_t | m_rxMpduReferenceNumber |
A-MPDU reference number to identify all received subframes belonging to the same received A-MPDU. More... | |
bool | m_shortPreamble |
Flag if short PLCP preamble is supported. More... | |
Ptr< WifiPhyStateHelper > | m_state |
Pointer to WifiPhyStateHelper. More... | |
bool | m_stbc |
Flag if STBC is used. More... | |
std::vector< uint32_t > | m_supportedChannelWidthSet |
Supported channel width. More... | |
double | m_txGainDb |
Transmission gain (dB) More... | |
uint32_t | m_txMpduReferenceNumber |
A-MPDU reference number to identify all transmitted subframes belonging to the same received A-MPDU. More... | |
double | m_txPowerBaseDbm |
Minimum transmission power (dBm) More... | |
double | m_txPowerEndDbm |
Maximum transmission power (dBm) More... | |
Additional Inherited Members | |
![]() | |
typedef void(* | MonitorSnifferRxCallback) (Ptr< const Packet > packet, uint16_t channelFreqMhz, uint16_t channelNumber, uint32_t rate, WifiPreamble preamble, WifiTxVector txVector, struct mpduInfo aMpdu, struct signalNoiseDbm signalNoise) |
TracedCallback signature for monitor mode receive events. More... | |
typedef void(* | MonitorSnifferTxCallback) (const Ptr< const Packet > packet, uint16_t channelFreqMhz, uint16_t channelNumber, uint32_t rate, WifiPreamble preamble, WifiTxVector txVector, struct mpduInfo aMpdu) |
TracedCallback signature for monitor mode transmit events. More... | |
typedef Callback< void, Ptr< Packet >, double, bool > | RxErrorCallback |
arg1: packet received unsuccessfully arg2: snr of packet arg3: PHY-RXEND flag More... | |
typedef Callback< void, Ptr< Packet >, double, WifiTxVector, enum WifiPreamble > | RxOkCallback |
arg1: packet received successfully arg2: snr of packet arg3: TXVECTOR of packet arg4: type of preamble used for packet. More... | |
enum | State { IDLE, CCA_BUSY, TX, RX, SWITCHING, SLEEP } |
The state of the PHY layer. More... | |
![]() | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | NotifyNewAggregate (void) |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted (void) |
Notifier called once the ObjectBase is fully constructed. More... | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
802.11 PHY layer model
This PHY implements a model of 802.11a.
The model implemented here is based on the model described in "Yet Another Network Simulator", (http://cutebugs.net/files/wns2-yans.pdf).
This PHY model depends on a channel loss and delay model as provided by the ns3::PropagationLossModel and ns3::PropagationDelayModel classes, both of which are members of the ns3::YansWifiChannel class.
ns3::YansWifiPhy is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Size of this type is 536 bytes (on a 64-bit architecture).
Definition at line 66 of file yans-wifi-phy.h.
ns3::YansWifiPhy::YansWifiPhy | ( | ) |
Definition at line 190 of file yans-wifi-phy.cc.
References m_random, m_state, and NS_LOG_FUNCTION.
|
virtual |
Definition at line 206 of file yans-wifi-phy.cc.
References NS_LOG_FUNCTION.
|
virtual |
width | channel width (in MHz) to support |
Implements ns3::WifiPhy.
Definition at line 1390 of file yans-wifi-phy.cc.
References m_supportedChannelWidthSet, and NS_LOG_FUNCTION.
Referenced by SetChannelWidth().
|
virtual |
Assign a fixed random variable stream number to the random variables used by this model.
Return the number of streams (possibly zero) that have been assigned.
stream | first stream index to use |
Implements ns3::WifiPhy.
Definition at line 1259 of file yans-wifi-phy.cc.
References m_random, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().
|
virtual |
txVector | the transmission vector |
ber | the probability of bit error rate |
Implements ns3::WifiPhy.
Definition at line 413 of file yans-wifi-phy.cc.
References ns3::InterferenceHelper::GetErrorRateModel(), and m_interference.
|
private |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11a standard with 10MHz channel spacing.
Definition at line 923 of file yans-wifi-phy.cc.
References ns3::WifiPhy::GetOfdmRate12MbpsBW10MHz(), ns3::WifiPhy::GetOfdmRate18MbpsBW10MHz(), ns3::WifiPhy::GetOfdmRate24MbpsBW10MHz(), ns3::WifiPhy::GetOfdmRate27MbpsBW10MHz(), ns3::WifiPhy::GetOfdmRate3MbpsBW10MHz(), ns3::WifiPhy::GetOfdmRate4_5MbpsBW10MHz(), ns3::WifiPhy::GetOfdmRate6MbpsBW10MHz(), ns3::WifiPhy::GetOfdmRate9MbpsBW10MHz(), m_channelStartingFrequency, m_deviceRateSet, NS_LOG_FUNCTION, and SetChannelWidth().
Referenced by ConfigureStandard().
|
private |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11a standard with 5MHz channel spacing.
Definition at line 940 of file yans-wifi-phy.cc.
References ns3::WifiPhy::GetOfdmRate12MbpsBW5MHz(), ns3::WifiPhy::GetOfdmRate13_5MbpsBW5MHz(), ns3::WifiPhy::GetOfdmRate1_5MbpsBW5MHz(), ns3::WifiPhy::GetOfdmRate2_25MbpsBW5MHz(), ns3::WifiPhy::GetOfdmRate3MbpsBW5MHz(), ns3::WifiPhy::GetOfdmRate4_5MbpsBW5MHz(), ns3::WifiPhy::GetOfdmRate6MbpsBW5MHz(), ns3::WifiPhy::GetOfdmRate9MbpsBW5MHz(), m_channelStartingFrequency, m_deviceRateSet, NS_LOG_FUNCTION, and SetChannelWidth().
Referenced by ConfigureStandard().
|
private |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11a standard.
Definition at line 876 of file yans-wifi-phy.cc.
References ns3::WifiPhy::GetOfdmRate12Mbps(), ns3::WifiPhy::GetOfdmRate18Mbps(), ns3::WifiPhy::GetOfdmRate24Mbps(), ns3::WifiPhy::GetOfdmRate36Mbps(), ns3::WifiPhy::GetOfdmRate48Mbps(), ns3::WifiPhy::GetOfdmRate54Mbps(), ns3::WifiPhy::GetOfdmRate6Mbps(), ns3::WifiPhy::GetOfdmRate9Mbps(), m_channelStartingFrequency, m_deviceRateSet, NS_LOG_FUNCTION, and SetChannelWidth().
Referenced by Configure80211n(), and ConfigureStandard().
|
private |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11ac standard.
Definition at line 1058 of file yans-wifi-phy.cc.
References Configure80211n(), ns3::WifiPhy::GetVhtMcs0(), ns3::WifiPhy::GetVhtMcs1(), ns3::WifiPhy::GetVhtMcs2(), ns3::WifiPhy::GetVhtMcs3(), ns3::WifiPhy::GetVhtMcs4(), ns3::WifiPhy::GetVhtMcs5(), ns3::WifiPhy::GetVhtMcs6(), ns3::WifiPhy::GetVhtMcs7(), ns3::WifiPhy::GetVhtMcs8(), ns3::WifiPhy::GetVhtMcs9(), m_bssMembershipSelectorSet, m_channelStartingFrequency, m_deviceMcsSet, NS_LOG_FUNCTION, SetChannelWidth(), and VHT_PHY.
Referenced by ConfigureStandard().
|
private |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11b standard.
Definition at line 893 of file yans-wifi-phy.cc.
References ns3::WifiPhy::GetDsssRate11Mbps(), ns3::WifiPhy::GetDsssRate1Mbps(), ns3::WifiPhy::GetDsssRate2Mbps(), ns3::WifiPhy::GetDsssRate5_5Mbps(), m_channelStartingFrequency, m_deviceRateSet, NS_LOG_FUNCTION, and SetChannelWidth().
Referenced by Configure80211g(), Configure80211n(), and ConfigureStandard().
|
private |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11g standard.
Definition at line 906 of file yans-wifi-phy.cc.
References Configure80211b(), ns3::WifiPhy::GetErpOfdmRate12Mbps(), ns3::WifiPhy::GetErpOfdmRate18Mbps(), ns3::WifiPhy::GetErpOfdmRate24Mbps(), ns3::WifiPhy::GetErpOfdmRate36Mbps(), ns3::WifiPhy::GetErpOfdmRate48Mbps(), ns3::WifiPhy::GetErpOfdmRate54Mbps(), ns3::WifiPhy::GetErpOfdmRate6Mbps(), ns3::WifiPhy::GetErpOfdmRate9Mbps(), m_deviceRateSet, NS_LOG_FUNCTION, and SetChannelWidth().
Referenced by Configure80211n(), and ConfigureStandard().
|
private |
Configure YansWifiPhy with appropriate channel frequency and supported rates for 802.11n standard.
Definition at line 1040 of file yans-wifi-phy.cc.
References Configure80211a(), Configure80211b(), Configure80211g(), ConfigureHtDeviceMcsSet(), HT_PHY, m_bssMembershipSelectorSet, m_channelStartingFrequency, NS_LOG_FUNCTION, and SetChannelWidth().
Referenced by Configure80211ac(), and ConfigureStandard().
|
private |
Definition at line 957 of file yans-wifi-phy.cc.
References ns3::WifiPhy::GetOfdmRate12Mbps(), ns3::WifiPhy::GetOfdmRate18Mbps(), ns3::WifiPhy::GetOfdmRate36Mbps(), ns3::WifiPhy::GetOfdmRate54Mbps(), ns3::WifiPhy::GetOfdmRate6Mbps(), m_channelStartingFrequency, m_deviceRateSet, NS_LOG_FUNCTION, and SetChannelWidth().
Referenced by ConfigureStandard().
|
private |
Configure the device Mcs set with the appropriate HtMcs modes for the number of available transmit spatial streams.
Definition at line 971 of file yans-wifi-phy.cc.
References ns3::WifiPhy::GetHtMcs0(), ns3::WifiPhy::GetHtMcs1(), ns3::WifiPhy::GetHtMcs10(), ns3::WifiPhy::GetHtMcs11(), ns3::WifiPhy::GetHtMcs12(), ns3::WifiPhy::GetHtMcs13(), ns3::WifiPhy::GetHtMcs14(), ns3::WifiPhy::GetHtMcs15(), ns3::WifiPhy::GetHtMcs16(), ns3::WifiPhy::GetHtMcs17(), ns3::WifiPhy::GetHtMcs18(), ns3::WifiPhy::GetHtMcs19(), ns3::WifiPhy::GetHtMcs2(), ns3::WifiPhy::GetHtMcs20(), ns3::WifiPhy::GetHtMcs21(), ns3::WifiPhy::GetHtMcs22(), ns3::WifiPhy::GetHtMcs23(), ns3::WifiPhy::GetHtMcs24(), ns3::WifiPhy::GetHtMcs25(), ns3::WifiPhy::GetHtMcs26(), ns3::WifiPhy::GetHtMcs27(), ns3::WifiPhy::GetHtMcs28(), ns3::WifiPhy::GetHtMcs29(), ns3::WifiPhy::GetHtMcs3(), ns3::WifiPhy::GetHtMcs30(), ns3::WifiPhy::GetHtMcs31(), ns3::WifiPhy::GetHtMcs4(), ns3::WifiPhy::GetHtMcs5(), ns3::WifiPhy::GetHtMcs6(), ns3::WifiPhy::GetHtMcs7(), ns3::WifiPhy::GetHtMcs8(), ns3::WifiPhy::GetHtMcs9(), GetSupportedTxSpatialStreams(), HT_PHY, m_bssMembershipSelectorSet, m_deviceMcsSet, NS_LOG_FUNCTION, and ns3::WIFI_MOD_CLASS_HT.
Referenced by Configure80211n(), and SetNumberOfTransmitAntennas().
|
virtual |
Configure the PHY-level parameters for different Wi-Fi standard.
standard | the Wi-Fi standard |
Implements ns3::WifiPhy.
Definition at line 231 of file yans-wifi-phy.cc.
References Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211ac(), Configure80211b(), Configure80211g(), Configure80211n(), ConfigureHolland(), m_channelStartingFrequency, NS_ASSERT, NS_LOG_FUNCTION, ns3::WIFI_PHY_STANDARD_80211_10MHZ, ns3::WIFI_PHY_STANDARD_80211_5MHZ, ns3::WIFI_PHY_STANDARD_80211a, ns3::WIFI_PHY_STANDARD_80211ac, ns3::WIFI_PHY_STANDARD_80211b, ns3::WIFI_PHY_STANDARD_80211g, ns3::WIFI_PHY_STANDARD_80211n_2_4GHZ, ns3::WIFI_PHY_STANDARD_80211n_5GHZ, and ns3::WIFI_PHY_STANDARD_holland.
Referenced by AmpduAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), PsrExperiment::Run(), InterferenceExperiment::Run(), and CollisionExperiment::Run().
|
private |
Convert from dBm to Watts.
dbm | the power in dBm |
Definition at line 1159 of file yans-wifi-phy.cc.
Referenced by SetCcaMode1Threshold(), SetEdThreshold(), and StartReceivePreambleAndHeader().
|
private |
Convert from dB to ratio.
db |
Definition at line 1152 of file yans-wifi-phy.cc.
Referenced by SetRxNoiseFigure().
|
privatevirtual |
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 overriden 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 212 of file yans-wifi-phy.cc.
References m_channel, m_device, m_deviceMcsSet, m_deviceRateSet, m_mobility, m_state, and NS_LOG_FUNCTION.
|
privatevirtual |
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 224 of file yans-wifi-phy.cc.
References m_initialized, and NS_LOG_FUNCTION.
|
private |
The last bit of the packet has arrived.
packet | the packet that the last bit has arrived |
preamble | the preamble of the arriving packet |
mpdutype | the type of the MPDU as defined in WifiPhy::mpduType. |
event | the corresponding event of the first time the packet arrives |
Definition at line 1202 of file yans-wifi-phy.cc.
References ns3::InterferenceHelper::CalculatePlcpPayloadSnrPer(), GetChannelFrequencyMhz(), GetChannelNumber(), GetRxNoiseFigure(), ns3::Packet::GetSize(), ns3::UniformRandomVariable::GetValue(), IsStateRx(), ns3::LAST_MPDU_IN_AGGREGATE, m_interference, m_plcpSuccess, m_random, m_rxMpduReferenceNumber, m_state, ns3::mpduInfo::mpduRefNumber, ns3::signalNoiseDbm::noise, ns3::NORMAL_MPDU, ns3::WifiPhy::NotifyMonitorSniffRx(), ns3::WifiPhy::NotifyRxDrop(), ns3::InterferenceHelper::NotifyRxEnd(), ns3::WifiPhy::NotifyRxEnd(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, RatioToDb(), ns3::signalNoiseDbm::signal, ns3::mpduInfo::type, ns3::WIFI_MOD_CLASS_HT, ns3::WIFI_MOD_CLASS_VHT, and ns3::WIFI_PREAMBLE_NONE.
Referenced by StartReceivePreambleAndHeader().
|
virtual |
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 as WifiPhy::m_bssMembershipSelectorSet.
selector | index in array of supported memberships |
Implements ns3::WifiPhy.
Definition at line 1416 of file yans-wifi-phy.cc.
References m_bssMembershipSelectorSet.
Referenced by GetMembershipSelectorModes().
double ns3::YansWifiPhy::GetCcaMode1Threshold | ( | void | ) | const |
Return the CCA threshold (dBm).
Definition at line 382 of file yans-wifi-phy.cc.
References m_ccaMode1ThresholdW, and WToDbm().
Referenced by GetTypeId().
|
virtual |
Return the WifiChannel this WifiPhy is connected to.
Implements ns3::WifiPhy.
Definition at line 419 of file yans-wifi-phy.cc.
References m_channel.
double ns3::YansWifiPhy::GetChannelFrequencyMhz | ( | ) | const |
Return current center channel frequency in MHz.
Definition at line 497 of file yans-wifi-phy.cc.
References GetChannelNumber(), and m_channelStartingFrequency.
Referenced by EndReceive(), and SendPacket().
|
virtual |
Return the current channel number.
Implements ns3::WifiPhy.
Definition at line 485 of file yans-wifi-phy.cc.
References m_channelNumber.
Referenced by EndReceive(), GetChannelFrequencyMhz(), ns3::MeshWifiInterfaceMac::GetFrequencyChannel(), GetTypeId(), ns3::YansWifiChannel::Send(), and SendPacket().
|
virtual |
Implements ns3::WifiPhy.
Definition at line 491 of file yans-wifi-phy.cc.
References m_channelSwitchDelay.
|
virtual |
Return channel width.
Implements ns3::WifiPhy.
Definition at line 1372 of file yans-wifi-phy.cc.
References m_channelWidth.
Referenced by GetTypeId().
|
virtual |
The PHY will never become WifiPhy::IDLE before the delay returned by this method but it could become really idle later.
Implements ns3::WifiPhy.
Definition at line 1140 of file yans-wifi-phy.cc.
References m_state.
Referenced by SetChannelNumber(), and SetSleepMode().
Return the device this PHY is associated with.
Definition at line 394 of file yans-wifi-phy.cc.
References m_device.
double ns3::YansWifiPhy::GetEdThreshold | ( | void | ) | const |
Return the energy detection threshold (dBm).
Definition at line 376 of file yans-wifi-phy.cc.
References m_edThresholdW, and WToDbm().
Referenced by GetTypeId().
|
private |
Return the energy detection threshold.
Definition at line 1178 of file yans-wifi-phy.cc.
References m_edThresholdW.
Ptr< ErrorRateModel > ns3::YansWifiPhy::GetErrorRateModel | ( | void | ) | const |
Return the error rate model this PHY is using.
Definition at line 388 of file yans-wifi-phy.cc.
References ns3::InterferenceHelper::GetErrorRateModel(), and m_interference.
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1316 of file yans-wifi-phy.cc.
References m_channelStartingFrequency.
Referenced by GetTypeId(), and SendPacket().
|
virtual |
Return whether Greenfield is supported.
Implements ns3::WifiPhy.
Definition at line 1346 of file yans-wifi-phy.cc.
References m_greenfield.
Referenced by GetTypeId().
|
virtual |
Return whether guard interval is being used.
Implements ns3::WifiPhy.
Definition at line 1304 of file yans-wifi-phy.cc.
References m_guardInterval.
Referenced by GetTypeId().
|
virtual |
Return the start time of the last received packet.
Implements ns3::WifiPhy.
Definition at line 1146 of file yans-wifi-phy.cc.
References m_state.
|
virtual |
Return if LDPC is supported.
Implements ns3::WifiPhy.
Definition at line 1334 of file yans-wifi-phy.cc.
References m_ldpc.
Referenced by GetTypeId().
|
virtual |
The WifiPhy::GetMcs() method is used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception MCS indexes that this WifiPhy(-derived class) can support - a set of MCS indexes which we call the DeviceMcsSet, and which is stored as WifiPhy::m_deviceMcsSet.
mcs | index in array of supported MCS |
Implements ns3::WifiPhy.
Definition at line 1462 of file yans-wifi-phy.cc.
References m_deviceMcsSet.
Referenced by IsMcsSupported().
|
virtual |
The WifiPhy::GetMembershipSelectorModes() 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 as WifiPhy::m_bssMembershipSelectorSet.
selector | index in array of supported memberships |
Implements ns3::WifiPhy.
Definition at line 1422 of file yans-wifi-phy.cc.
References GetBssMembershipSelector(), ns3::WifiPhy::GetHtMcs0(), ns3::WifiPhy::GetHtMcs1(), ns3::WifiPhy::GetHtMcs2(), ns3::WifiPhy::GetHtMcs3(), ns3::WifiPhy::GetHtMcs4(), ns3::WifiPhy::GetHtMcs5(), ns3::WifiPhy::GetHtMcs6(), ns3::WifiPhy::GetHtMcs7(), ns3::WifiPhy::GetVhtMcs0(), ns3::WifiPhy::GetVhtMcs1(), ns3::WifiPhy::GetVhtMcs2(), ns3::WifiPhy::GetVhtMcs3(), ns3::WifiPhy::GetVhtMcs4(), ns3::WifiPhy::GetVhtMcs5(), ns3::WifiPhy::GetVhtMcs6(), ns3::WifiPhy::GetVhtMcs7(), ns3::WifiPhy::GetVhtMcs8(), ns3::WifiPhy::GetVhtMcs9(), HT_PHY, and VHT_PHY.
Ptr< MobilityModel > ns3::YansWifiPhy::GetMobility | ( | void | ) |
Return the mobility model this PHY is associated with.
This method will return either the mobility model that has been explicitly set by a call to YansWifiPhy::SetMobility(), or else will return the mobility model (if any) that has been aggregated to the node.
Definition at line 400 of file yans-wifi-phy.cc.
References m_device, and m_mobility.
Referenced by ns3::YansWifiChannel::Send().
|
virtual |
The WifiPhy::GetNModes() and WifiPhy::GetMode() methods are 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 DeviceRateSet, and which is stored as WifiPhy::m_deviceRateSet.
It is important to note that the DeviceRateSet is a superset (not necessarily proper) of the OperationalRateSet (which is logically, if not actually, a property of the associated WifiRemoteStationManager), which itself is a superset (again, not necessarily proper) of the BSSBasicRateSet.
mode | index in array of supported modes |
Implements ns3::WifiPhy.
Definition at line 839 of file yans-wifi-phy.cc.
References m_deviceRateSet.
Referenced by IsModeSupported().
|
virtual |
The WifiPhy::NBssMembershipSelectors() 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 as WifiPhy::m_bssMembershipSelectorSet.
Implements ns3::WifiPhy.
Definition at line 1410 of file yans-wifi-phy.cc.
References m_bssMembershipSelectorSet.
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1456 of file yans-wifi-phy.cc.
References m_deviceMcsSet.
Referenced by IsMcsSupported().
|
virtual |
The WifiPhy::GetNModes() and WifiPhy::GetMode() methods are 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 DeviceRateSet, and which is stored as WifiPhy::m_deviceRateSet.
It is important to note that the DeviceRateSet is a superset (not necessarily proper) of the OperationalRateSet (which is logically, if not actually, a property of the associated WifiRemoteStationManager), which itself is a superset (again, not necessarily proper) of the BSSBasicRateSet.
Implements ns3::WifiPhy.
Definition at line 833 of file yans-wifi-phy.cc.
References m_deviceRateSet.
Referenced by IsModeSupported().
|
virtual |
Return the number of available transmission power levels.
Implements ns3::WifiPhy.
Definition at line 870 of file yans-wifi-phy.cc.
References m_nTxPower.
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1328 of file yans-wifi-phy.cc.
References m_numberOfReceivers.
Referenced by GetSupportedRxSpatialStreams(), and GetTypeId().
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1322 of file yans-wifi-phy.cc.
References m_numberOfTransmitters.
Referenced by GetSupportedTxSpatialStreams(), and GetTypeId().
|
private |
Get the power of the given power level in dBm.
In YansWifiPhy implementation, the power levels are equally spaced (in dBm).
power | the power level |
Definition at line 1184 of file yans-wifi-phy.cc.
References m_nTxPower, m_txPowerBaseDbm, m_txPowerEndDbm, NS_ASSERT, and NS_ASSERT_MSG.
Referenced by SendPacket().
double ns3::YansWifiPhy::GetRxGain | ( | void | ) | const |
Return the reception gain (dB).
Definition at line 370 of file yans-wifi-phy.cc.
References m_rxGainDb.
Referenced by GetTypeId().
double ns3::YansWifiPhy::GetRxNoiseFigure | ( | void | ) | const |
Return the RX noise figure (dBm).
Definition at line 346 of file yans-wifi-phy.cc.
References ns3::InterferenceHelper::GetNoiseFigure(), m_interference, and RatioToDb().
Referenced by EndReceive(), and GetTypeId().
|
virtual |
Return whether short PLCP preamble is supported.
Implements ns3::WifiPhy.
Definition at line 1352 of file yans-wifi-phy.cc.
References m_shortPreamble.
Referenced by GetTypeId().
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1134 of file yans-wifi-phy.cc.
References m_state.
|
virtual |
Return whether STBC is supported.
Implements ns3::WifiPhy.
Definition at line 1340 of file yans-wifi-phy.cc.
References m_stbc.
Referenced by GetTypeId().
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1404 of file yans-wifi-phy.cc.
References m_supportedChannelWidthSet.
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1378 of file yans-wifi-phy.cc.
References GetNumberOfReceiveAntennas().
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1384 of file yans-wifi-phy.cc.
References GetNumberOfTransmitAntennas().
Referenced by ConfigureHtDeviceMcsSet().
double ns3::YansWifiPhy::GetTxGain | ( | void | ) | const |
Return the transmission gain (dB).
Definition at line 364 of file yans-wifi-phy.cc.
References m_txGainDb.
Referenced by GetTypeId().
|
virtual |
Return the maximum available transmission power level (dBm).
Implements ns3::WifiPhy.
Definition at line 358 of file yans-wifi-phy.cc.
References m_txPowerEndDbm.
Referenced by GetTypeId().
|
virtual |
Return the minimum available transmission power level (dBm).
Implements ns3::WifiPhy.
Definition at line 352 of file yans-wifi-phy.cc.
References m_txPowerBaseDbm.
Referenced by GetTypeId().
|
static |
Definition at line 51 of file yans-wifi-phy.cc.
References GetCcaMode1Threshold(), GetChannelNumber(), GetChannelWidth(), GetEdThreshold(), GetFrequency(), GetGreenfield(), GetGuardInterval(), GetLdpc(), GetNumberOfReceiveAntennas(), GetNumberOfTransmitAntennas(), GetRxGain(), GetRxNoiseFigure(), GetShortPlcpPreambleSupported(), GetStbc(), GetTxGain(), GetTxPowerEnd(), GetTxPowerStart(), m_channelSwitchDelay, m_nTxPower, m_state, ns3::MakeBooleanAccessor(), ns3::MakeBooleanChecker(), ns3::MakeDoubleAccessor(), ns3::MakePointerAccessor(), ns3::MakeTimeAccessor(), ns3::MakeTimeChecker(), ns3::MakeUintegerAccessor(), ns3::MicroSeconds(), SetCcaMode1Threshold(), SetChannelNumber(), SetChannelWidth(), SetEdThreshold(), SetFrequency(), SetGreenfield(), SetGuardInterval(), SetLdpc(), SetNumberOfReceiveAntennas(), SetNumberOfTransmitAntennas(), ns3::TypeId::SetParent(), SetRxGain(), SetRxNoiseFigure(), SetShortPlcpPreambleSupported(), SetStbc(), SetTxGain(), SetTxPowerEnd(), and SetTxPowerStart().
|
virtual |
Definition at line 857 of file yans-wifi-phy.cc.
References GetMcs(), and GetNMcs().
Referenced by StartReceivePacket().
|
virtual |
Check if the given WifiMode is supported by the PHY.
mode | the wifi mode to check |
Implements ns3::WifiPhy.
Definition at line 845 of file yans-wifi-phy.cc.
References GetMode(), and GetNModes().
Referenced by StartReceivePacket().
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1104 of file yans-wifi-phy.cc.
References m_state.
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1092 of file yans-wifi-phy.cc.
References m_state.
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1098 of file yans-wifi-phy.cc.
References m_state.
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1110 of file yans-wifi-phy.cc.
References m_state.
Referenced by EndReceive(), and StartReceivePacket().
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1128 of file yans-wifi-phy.cc.
References m_state.
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1122 of file yans-wifi-phy.cc.
References m_state.
Referenced by SetChannelNumber().
|
virtual |
Implements ns3::WifiPhy.
Definition at line 1116 of file yans-wifi-phy.cc.
References m_state.
|
private |
Convert from ratio to dB.
ratio |
Definition at line 1172 of file yans-wifi-phy.cc.
Referenced by EndReceive(), GetRxNoiseFigure(), and StartReceivePacket().
|
virtual |
listener | the new listener |
Add the input listener to the list of objects to be notified of PHY-level events.
Implements ns3::WifiPhy.
Definition at line 1080 of file yans-wifi-phy.cc.
References m_state.
|
virtual |
Resume from sleep mode.
Implements ns3::WifiPhy.
Definition at line 535 of file yans-wifi-phy.cc.
References ns3::WifiPhy::CCA_BUSY, ns3::InterferenceHelper::GetEnergyDuration(), ns3::WifiPhy::IDLE, m_ccaMode1ThresholdW, m_interference, m_state, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiPhy::RX, ns3::WifiPhy::SLEEP, ns3::WifiPhy::SWITCHING, and ns3::WifiPhy::TX.
|
virtual |
packet | the packet to send |
txVector | the TXVECTOR that has tx parameters such as mode, the transmission mode to use to send this packet, and txPowerLevel, a power level to use to send this packet. The real transmission power is calculated as txPowerMin + txPowerLevel * (txPowerMax - txPowerMin) / nTxLevels |
preamble | the type of preamble to use to send this packet. |
Implements ns3::WifiPhy.
Definition at line 774 of file yans-wifi-phy.cc.
References ns3::NORMAL_MPDU.
|
virtual |
packet | the packet to send |
txVector | the TXVECTOR that has tx parameters such as mode, the transmission mode to use to send this packet, and txPowerLevel, a power level to use to send this packet. The real transmission power is calculated as txPowerMin + txPowerLevel * (txPowerMax - txPowerMin) / nTxLevels |
preamble | the type of preamble to use to send this packet. |
mpdutype | the type of the MPDU as defined in WifiPhy::mpduType. |
Implements ns3::WifiPhy.
Definition at line 780 of file yans-wifi-phy.cc.
References ns3::WifiPhy::CalculateTxDuration(), ns3::EventId::Cancel(), GetChannelFrequencyMhz(), GetChannelNumber(), ns3::WifiTxVector::GetChannelWidth(), ns3::WifiMode::GetDataRate(), GetFrequency(), ns3::WifiMode::GetMcsValue(), ns3::WifiTxVector::GetMode(), ns3::WifiMode::GetModulationClass(), ns3::WifiTxVector::GetNss(), GetPowerDbm(), ns3::Packet::GetSize(), ns3::WifiTxVector::GetTxPowerLevel(), ns3::WifiTxVector::IsShortGuardInterval(), m_channel, m_endPlcpRxEvent, m_endRxEvent, m_interference, m_state, m_txGainDb, m_txMpduReferenceNumber, ns3::MPDU_IN_AGGREGATE, ns3::mpduInfo::mpduRefNumber, ns3::NanoSeconds(), ns3::WifiPhy::NotifyMonitorSniffTx(), ns3::InterferenceHelper::NotifyRxEnd(), ns3::WifiPhy::NotifyTxBegin(), ns3::WifiPhy::NotifyTxDrop(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::mpduInfo::type, ns3::WIFI_MOD_CLASS_HT, ns3::WIFI_MOD_CLASS_VHT, and ns3::WIFI_PREAMBLE_NONE.
void ns3::YansWifiPhy::SetCcaMode1Threshold | ( | double | threshold | ) |
Sets the CCA threshold (dBm).
The energy of a received signal should be higher than this threshold to allow the PHY layer to declare CCA BUSY state.
threshold | the CCA threshold in dBm |
Definition at line 321 of file yans-wifi-phy.cc.
References DbmToW(), m_ccaMode1ThresholdW, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::YansWifiPhy::SetChannel | ( | Ptr< YansWifiChannel > | channel | ) |
Set the YansWifiChannel this YansWifiPhy is to be connected to.
channel | the YansWifiChannel this YansWifiPhy is to be connected to |
Definition at line 425 of file yans-wifi-phy.cc.
References third::channel, and m_channel.
Referenced by ns3::YansWifiPhyHelper::Create(), PsrExperiment::Run(), InterferenceExperiment::Run(), and CollisionExperiment::Run().
|
virtual |
Set the current channel number.
id | the channel number |
Implements ns3::WifiPhy.
Definition at line 432 of file yans-wifi-phy.cc.
References ns3::EventId::Cancel(), ns3::WifiPhy::CCA_BUSY, ns3::InterferenceHelper::EraseEvents(), GetDelayUntilIdle(), ns3::WifiPhy::IDLE, IsStateSwitching(), m_channelNumber, m_channelSwitchDelay, m_endPlcpRxEvent, m_endRxEvent, m_initialized, m_interference, m_state, NS_ASSERT, NS_LOG_DEBUG, ns3::WifiPhy::RX, ns3::Simulator::Schedule(), ns3::WifiPhy::SLEEP, and ns3::WifiPhy::TX.
Referenced by GetTypeId(), and ns3::MeshWifiInterfaceMac::SwitchFrequencyChannel().
|
virtual |
Set channel width.
channel | width |
Implements ns3::WifiPhy.
Definition at line 1364 of file yans-wifi-phy.cc.
References AddSupportedChannelWidth(), m_channelWidth, and NS_ASSERT_MSG.
Referenced by Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211ac(), Configure80211b(), Configure80211g(), Configure80211n(), ConfigureHolland(), and GetTypeId().
Sets the device this PHY is associated with.
device | the device this PHY is associated with |
Definition at line 334 of file yans-wifi-phy.cc.
References m_device.
Referenced by ns3::YansWifiPhyHelper::Create().
void ns3::YansWifiPhy::SetEdThreshold | ( | double | threshold | ) |
Sets the energy detection threshold (dBm).
The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to detect the signal.
threshold | the energy detction threshold in dBm |
Definition at line 314 of file yans-wifi-phy.cc.
References DbmToW(), m_edThresholdW, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::YansWifiPhy::SetErrorRateModel | ( | Ptr< ErrorRateModel > | rate | ) |
Sets the error rate model.
rate | the error rate model |
Definition at line 328 of file yans-wifi-phy.cc.
References m_interference, and ns3::InterferenceHelper::SetErrorRateModel().
Referenced by ns3::YansWifiPhyHelper::Create(), PsrExperiment::Run(), InterferenceExperiment::Run(), and CollisionExperiment::Run().
|
virtual |
freq | the operating frequency on this node (2.4 GHz or 5GHz). |
Implements ns3::WifiPhy.
Definition at line 1267 of file yans-wifi-phy.cc.
References m_channelStartingFrequency.
Referenced by GetTypeId().
|
virtual |
Enable or disable Greenfield support.
greenfield | Enable or disable Greenfield |
Implements ns3::WifiPhy.
Definition at line 1298 of file yans-wifi-phy.cc.
References m_greenfield.
Referenced by GetTypeId().
|
virtual |
Enable or disable short/long guard interval.
guardInterval | Enable or disable guard interval |
Implements ns3::WifiPhy.
Definition at line 1310 of file yans-wifi-phy.cc.
References m_guardInterval.
Referenced by GetTypeId().
|
virtual |
Enable or disable LDPC.
ldpc | Enable or disable LDPC |
Implements ns3::WifiPhy.
Definition at line 1286 of file yans-wifi-phy.cc.
References m_ldpc.
Referenced by GetTypeId().
void ns3::YansWifiPhy::SetMobility | ( | Ptr< MobilityModel > | mobility | ) |
assign a mobility model to this device
This method allows a user to specify a mobility model that should be associated with this physical layer. Calling this method is optional and only necessary if the user wants to override the mobility model that is aggregated to the node.
mobility | the mobility model this PHY is associated with |
Definition at line 340 of file yans-wifi-phy.cc.
References m_mobility, and third::mobility.
Referenced by PsrExperiment::Run(), InterferenceExperiment::Run(), and CollisionExperiment::Run().
void ns3::YansWifiPhy::SetNTxPower | ( | uint32_t | n | ) |
Sets the number of transmission power levels available between the minimum level and the maximum level.
Transmission power levels are equally separated (in dBm) with the minimum and the maximum included.
n | the number of available levels |
Definition at line 293 of file yans-wifi-phy.cc.
References m_nTxPower, and NS_LOG_FUNCTION.
|
virtual |
rx | the number of receivers on this node. |
Implements ns3::WifiPhy.
Definition at line 1280 of file yans-wifi-phy.cc.
References m_numberOfReceivers.
Referenced by GetTypeId().
|
virtual |
tx | the number of transmitters on this node. |
Implements ns3::WifiPhy.
Definition at line 1273 of file yans-wifi-phy.cc.
References ConfigureHtDeviceMcsSet(), and m_numberOfTransmitters.
Referenced by GetTypeId().
|
virtual |
callback | the callback to invoke upon erroneous packet reception. |
Implements ns3::WifiPhy.
Definition at line 571 of file yans-wifi-phy.cc.
References m_state.
|
virtual |
callback | the callback to invoke upon successful packet reception. |
Implements ns3::WifiPhy.
Definition at line 565 of file yans-wifi-phy.cc.
References m_state.
void ns3::YansWifiPhy::SetRxGain | ( | double | gain | ) |
Sets the reception gain (dB).
gain | the reception gain in dB |
Definition at line 307 of file yans-wifi-phy.cc.
References m_rxGainDb, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::YansWifiPhy::SetRxNoiseFigure | ( | double | noiseFigureDb | ) |
Sets the RX loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver.
noiseFigureDb | noise figure in dB |
Definition at line 272 of file yans-wifi-phy.cc.
References DbToRatio(), m_interference, NS_LOG_FUNCTION, and ns3::InterferenceHelper::SetNoiseFigure().
Referenced by GetTypeId().
|
virtual |
Enable or disable short PLCP preamble.
preamble | sets whether short PLCP preamble is supported or not |
Implements ns3::WifiPhy.
Definition at line 1358 of file yans-wifi-phy.cc.
References m_shortPreamble.
Referenced by GetTypeId().
|
virtual |
Put in sleep mode.
Implements ns3::WifiPhy.
Definition at line 503 of file yans-wifi-phy.cc.
References ns3::WifiPhy::CCA_BUSY, GetDelayUntilIdle(), ns3::WifiPhy::IDLE, m_state, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::WifiPhy::RX, ns3::Simulator::Schedule(), ns3::WifiPhy::SLEEP, ns3::WifiPhy::SWITCHING, and ns3::WifiPhy::TX.
|
virtual |
Enable or disable STBC.
stbc | Enable or disable STBC |
Implements ns3::WifiPhy.
Definition at line 1292 of file yans-wifi-phy.cc.
References m_stbc.
Referenced by GetTypeId().
void ns3::YansWifiPhy::SetTxGain | ( | double | gain | ) |
Sets the transmission gain (dB).
gain | the transmission gain in dB |
Definition at line 300 of file yans-wifi-phy.cc.
References m_txGainDb, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::YansWifiPhy::SetTxPowerEnd | ( | double | end | ) |
Sets the maximum available transmission power level (dBm).
end | the maximum transmission power level (dBm) |
Definition at line 286 of file yans-wifi-phy.cc.
References m_txPowerEndDbm, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
void ns3::YansWifiPhy::SetTxPowerStart | ( | double | start | ) |
Sets the minimum available transmission power level (dBm).
start | the minimum transmission power level (dBm) |
Definition at line 279 of file yans-wifi-phy.cc.
References m_txPowerBaseDbm, NS_LOG_FUNCTION, and visualizer.core::start().
Referenced by GetTypeId().
void ns3::YansWifiPhy::StartReceivePacket | ( | Ptr< Packet > | packet, |
WifiTxVector | txVector, | ||
WifiPreamble | preamble, | ||
enum mpduType | mpdutype, | ||
Ptr< InterferenceHelper::Event > | event | ||
) |
Starting receiving the payload of a packet (i.e.
the first bit of the packet has arrived).
packet | the arriving packet |
txVector | the TXVECTOR of the arriving packet |
preamble | the preamble of the arriving packet |
mpdutype | the type of the MPDU as defined in WifiPhy::mpduType. |
event | the corresponding event of the first time the packet arrives |
Definition at line 734 of file yans-wifi-phy.cc.
References ns3::InterferenceHelper::CalculatePlcpHeaderSnrPer(), ns3::WifiTxVector::GetMode(), ns3::UniformRandomVariable::GetValue(), ns3::EventId::IsExpired(), IsMcsSupported(), IsModeSupported(), IsStateRx(), m_endPlcpRxEvent, m_interference, m_plcpSuccess, m_random, ns3::WifiPhy::NotifyRxDrop(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, and RatioToDb().
Referenced by StartReceivePreambleAndHeader().
void ns3::YansWifiPhy::StartReceivePreambleAndHeader | ( | Ptr< Packet > | packet, |
double | rxPowerDbm, | ||
WifiTxVector | txVector, | ||
WifiPreamble | preamble, | ||
enum mpduType | mpdutype, | ||
Time | rxDuration | ||
) |
Starting receiving the plcp of a packet (i.e.
the first bit of the preamble has arrived).
packet | the arriving packet |
rxPowerDbm | the receive power in dBm |
txVector | the TXVECTOR of the arriving packet |
preamble | the preamble of the arriving packet |
mpdutype | the type of the MPDU as defined in WifiPhy::mpduType. |
rxDuration | the duration needed for the reception of the packet |
Definition at line 577 of file yans-wifi-phy.cc.
References ns3::InterferenceHelper::Add(), ns3::WifiPhy::CalculatePlcpPreambleAndHeaderDuration(), ns3::WifiPhy::CCA_BUSY, DbmToW(), EndReceive(), ns3::InterferenceHelper::GetEnergyDuration(), ns3::WifiTxVector::GetMode(), ns3::AmpduTag::GetNoOfMpdus(), ns3::Packet::GetSize(), ns3::WifiPhy::IDLE, ns3::EventId::IsExpired(), ns3::Time::IsZero(), m_ccaMode1ThresholdW, m_edThresholdW, m_endPlcpRxEvent, m_endRxEvent, m_interference, m_mpdusNum, m_plcpSuccess, m_rxGainDb, m_rxMpduReferenceNumber, m_state, ns3::WifiPhy::NotifyRxBegin(), ns3::WifiPhy::NotifyRxDrop(), ns3::InterferenceHelper::NotifyRxStart(), ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Packet::PeekPacketTag(), ns3::WifiPhy::RX, ns3::Simulator::Schedule(), ns3::WifiPhy::SLEEP, StartReceivePacket(), ns3::WifiPhy::SWITCHING, ns3::WifiPhy::TX, and ns3::WIFI_PREAMBLE_NONE.
|
virtual |
listener | the listener to be unregistered |
Remove the input listener from the list of objects to be notified of PHY-level events.
Implements ns3::WifiPhy.
Definition at line 1086 of file yans-wifi-phy.cc.
References m_state.
|
private |
Convert from Watts to dBm.
w | the power in Watts |
Definition at line 1166 of file yans-wifi-phy.cc.
Referenced by GetCcaMode1Threshold(), and GetEdThreshold().
|
private |
Definition at line 592 of file yans-wifi-phy.h.
Referenced by Configure80211ac(), Configure80211n(), ConfigureHtDeviceMcsSet(), GetBssMembershipSelector(), and GetNBssMembershipSelectors().
|
private |
Clear channel assessment (CCA) threshold in watts.
Definition at line 531 of file yans-wifi-phy.h.
Referenced by GetCcaMode1Threshold(), ResumeFromSleep(), SetCcaMode1Threshold(), and StartReceivePreambleAndHeader().
|
private |
YansWifiChannel that this YansWifiPhy is connected to.
Definition at line 538 of file yans-wifi-phy.h.
Referenced by DoDispose(), GetChannel(), SendPacket(), and SetChannel().
|
private |
Operating channel number.
Definition at line 539 of file yans-wifi-phy.h.
Referenced by GetChannelNumber(), and SetChannelNumber().
|
private |
Standard-dependent center frequency of 0-th channel in MHz.
Definition at line 597 of file yans-wifi-phy.h.
Referenced by Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211ac(), Configure80211b(), Configure80211n(), ConfigureHolland(), ConfigureStandard(), GetChannelFrequencyMhz(), GetFrequency(), and SetFrequency().
|
private |
Time required to switch between channel.
Definition at line 600 of file yans-wifi-phy.h.
Referenced by GetChannelSwitchDelay(), GetTypeId(), and SetChannelNumber().
|
private |
Channel width.
Definition at line 549 of file yans-wifi-phy.h.
Referenced by GetChannelWidth(), and SetChannelWidth().
Pointer to the device.
Definition at line 540 of file yans-wifi-phy.h.
Referenced by DoDispose(), GetDevice(), GetMobility(), and SetDevice().
|
private |
Definition at line 590 of file yans-wifi-phy.h.
Referenced by Configure80211ac(), ConfigureHtDeviceMcsSet(), DoDispose(), GetMcs(), and GetNMcs().
|
private |
This vector holds the set of transmission modes that this WifiPhy(-derived class) can support.
In conversation we call this the DeviceRateSet (not a term you'll find in the standard), and it is a superset of standard-defined parameters such as the OperationalRateSet, and the BSSBasicRateSet (which, themselves, have a superset/subset relationship).
Mandatory rates relevant to this WifiPhy can be found by iterating over this vector looking for WifiMode objects for which WifiMode::IsMandatory() is true.
A quick note is appropriate here (well, here is as good a place as any I can find)...
In the standard there is no text that explicitly precludes production of a device that does not support some rates that are mandatory (according to the standard) for PHYs that the device happens to fully or partially support.
This approach is taken by some devices which choose to only support, for example, 6 and 9 Mbps ERP-OFDM rates for cost and power consumption reasons (i.e., these devices don't need to be designed for and waste current on the increased linearity requirement of higher-order constellations when 6 and 9 Mbps more than meet their data requirements). The wording of the standard allows such devices to have an OperationalRateSet which includes 6 and 9 Mbps ERP-OFDM rates, despite 12 and 24 Mbps being "mandatory" rates for the ERP-OFDM PHY.
Now this doesn't actually have any impact on code, yet. It is, however, something that we need to keep in mind for the future. Basically, the key point is that we can't be making assumptions like "the Operational Rate Set will contain all the mandatory rates".
Definition at line 589 of file yans-wifi-phy.h.
Referenced by Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211b(), Configure80211g(), ConfigureHolland(), DoDispose(), GetMode(), and GetNModes().
|
private |
Energy detection threshold in watts.
Definition at line 530 of file yans-wifi-phy.h.
Referenced by GetEdThreshold(), GetEdThresholdW(), SetEdThreshold(), and StartReceivePreambleAndHeader().
|
private |
Definition at line 594 of file yans-wifi-phy.h.
Referenced by SendPacket(), SetChannelNumber(), StartReceivePacket(), and StartReceivePreambleAndHeader().
|
private |
Definition at line 593 of file yans-wifi-phy.h.
Referenced by SendPacket(), SetChannelNumber(), and StartReceivePreambleAndHeader().
|
private |
Flag if GreenField format is supported.
Definition at line 547 of file yans-wifi-phy.h.
Referenced by GetGreenfield(), and SetGreenfield().
|
private |
Flag if short guard interval is used.
Definition at line 548 of file yans-wifi-phy.h.
Referenced by GetGuardInterval(), and SetGuardInterval().
|
private |
Flag for runtime initialization.
Definition at line 529 of file yans-wifi-phy.h.
Referenced by DoInitialize(), and SetChannelNumber().
|
private |
Pointer to InterferenceHelper.
Definition at line 599 of file yans-wifi-phy.h.
Referenced by CalculateSnr(), EndReceive(), GetErrorRateModel(), GetRxNoiseFigure(), ResumeFromSleep(), SendPacket(), SetChannelNumber(), SetErrorRateModel(), SetRxNoiseFigure(), StartReceivePacket(), and StartReceivePreambleAndHeader().
|
private |
Flag if LDPC is used.
Definition at line 545 of file yans-wifi-phy.h.
|
private |
Pointer to the mobility model.
Definition at line 541 of file yans-wifi-phy.h.
Referenced by DoDispose(), GetMobility(), and SetMobility().
|
private |
carries the number of expected mpdus that are part of an A-MPDU
Definition at line 601 of file yans-wifi-phy.h.
Referenced by StartReceivePreambleAndHeader().
|
private |
Number of available transmission power levels.
Definition at line 536 of file yans-wifi-phy.h.
Referenced by GetNTxPower(), GetPowerDbm(), GetTypeId(), and SetNTxPower().
|
private |
Number of receivers.
Definition at line 544 of file yans-wifi-phy.h.
Referenced by GetNumberOfReceiveAntennas(), and SetNumberOfReceiveAntennas().
|
private |
Number of transmitters.
Definition at line 543 of file yans-wifi-phy.h.
Referenced by GetNumberOfTransmitAntennas(), and SetNumberOfTransmitAntennas().
|
private |
Flag if the PLCP of the packet or the first MPDU in an A-MPDU has been received.
Definition at line 602 of file yans-wifi-phy.h.
Referenced by EndReceive(), StartReceivePacket(), and StartReceivePreambleAndHeader().
|
private |
Provides uniform random variables.
Definition at line 596 of file yans-wifi-phy.h.
Referenced by AssignStreams(), EndReceive(), StartReceivePacket(), and YansWifiPhy().
|
private |
Reception gain (dB)
Definition at line 533 of file yans-wifi-phy.h.
Referenced by GetRxGain(), SetRxGain(), and StartReceivePreambleAndHeader().
|
private |
A-MPDU reference number to identify all received subframes belonging to the same received A-MPDU.
Definition at line 604 of file yans-wifi-phy.h.
Referenced by EndReceive(), and StartReceivePreambleAndHeader().
|
private |
Flag if short PLCP preamble is supported.
Definition at line 551 of file yans-wifi-phy.h.
Referenced by GetShortPlcpPreambleSupported(), and SetShortPlcpPreambleSupported().
|
private |
Pointer to WifiPhyStateHelper.
Definition at line 598 of file yans-wifi-phy.h.
Referenced by DoDispose(), EndReceive(), GetDelayUntilIdle(), GetLastRxStartTime(), GetStateDuration(), GetTypeId(), IsStateBusy(), IsStateCcaBusy(), IsStateIdle(), IsStateRx(), IsStateSleep(), IsStateSwitching(), IsStateTx(), RegisterListener(), ResumeFromSleep(), SendPacket(), SetChannelNumber(), SetReceiveErrorCallback(), SetReceiveOkCallback(), SetSleepMode(), StartReceivePreambleAndHeader(), UnregisterListener(), and YansWifiPhy().
|
private |
Flag if STBC is used.
Definition at line 546 of file yans-wifi-phy.h.
|
private |
Supported channel width.
Definition at line 550 of file yans-wifi-phy.h.
Referenced by AddSupportedChannelWidth(), and GetSupportedChannelWidthSet().
|
private |
Transmission gain (dB)
Definition at line 532 of file yans-wifi-phy.h.
Referenced by GetTxGain(), SendPacket(), and SetTxGain().
|
private |
A-MPDU reference number to identify all transmitted subframes belonging to the same received A-MPDU.
Definition at line 603 of file yans-wifi-phy.h.
Referenced by SendPacket().
|
private |
Minimum transmission power (dBm)
Definition at line 534 of file yans-wifi-phy.h.
Referenced by GetPowerDbm(), GetTxPowerStart(), and SetTxPowerStart().
|
private |
Maximum transmission power (dBm)
Definition at line 535 of file yans-wifi-phy.h.
Referenced by GetPowerDbm(), GetTxPowerEnd(), and SetTxPowerEnd().