A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::YansWifiPhy Class Reference

802.11 PHY layer modelThis 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). More...

#include <yans-wifi-phy.h>

+ Inheritance diagram for ns3::YansWifiPhy:
+ Collaboration diagram for ns3::YansWifiPhy:

Public Member Functions

 YansWifiPhy ()
 
virtual ~YansWifiPhy ()
 
int64_t AssignStreams (int64_t stream)
 
virtual double CalculateSnr (WifiMode txMode, double ber) const
 
virtual void ConfigureStandard (enum WifiPhyStandard standard)
 
virtual uint32_t GetBssMembershipSelector (uint32_t selector) const
 
double GetCcaMode1Threshold (void) const
 
virtual Ptr< WifiChannelGetChannel (void) const
 
virtual bool GetChannelBonding (void) const
 
double GetChannelFrequencyMhz () const
 Return current center channel frequency in MHz, see SetChannelNumber() More...
 
uint16_t GetChannelNumber () const
 Return current channel number, see SetChannelNumber() More...
 
virtual Time GetDelayUntilIdle (void)
 
Ptr< ObjectGetDevice (void) const
 
double GetEdThreshold (void) const
 
Ptr< ErrorRateModelGetErrorRateModel (void) const
 
virtual uint32_t GetFrequency (void) const
 
virtual bool GetGreenfield (void) const
 
virtual bool GetGuardInterval (void) const
 
virtual Time GetLastRxStartTime (void) const
 
virtual bool GetLdpc (void) const
 
virtual uint8_t GetMcs (uint8_t mcs) const
 
virtual WifiModeList GetMembershipSelectorModes (uint32_t selector)
 
Ptr< ObjectGetMobility (void)
 
virtual WifiMode GetMode (uint32_t mode) const
 
virtual uint32_t GetNBssMembershipSelectors (void) const
 
virtual uint8_t GetNMcs (void) const
 
virtual uint32_t GetNModes (void) const
 
virtual uint32_t GetNTxPower (void) const
 
virtual uint32_t GetNumberOfReceiveAntennas (void) const
 
virtual uint32_t GetNumberOfTransmitAntennas (void) const
 
double GetRxGain (void) const
 
double GetRxNoiseFigure (void) const
 
virtual Time GetStateDuration (void)
 
virtual bool GetStbc (void) const
 
double GetTxGain (void) const
 
virtual double GetTxPowerEnd (void) const
 
virtual double GetTxPowerStart (void) const
 
virtual bool IsStateBusy (void)
 
virtual bool IsStateCcaBusy (void)
 
virtual bool IsStateIdle (void)
 
virtual bool IsStateRx (void)
 
virtual bool IsStateSwitching (void)
 
virtual bool IsStateTx (void)
 
virtual WifiMode McsToWifiMode (uint8_t mcs)
 
virtual void RegisterListener (WifiPhyListener *listener)
 
virtual void SendPacket (Ptr< const Packet > packet, WifiMode mode, enum WifiPreamble preamble, WifiTxVector txvector)
 
void SetCcaMode1Threshold (double threshold)
 
void SetChannel (Ptr< YansWifiChannel > channel)
 
virtual void SetChannelBonding (bool channelbonding)
 
void SetChannelNumber (uint16_t id)
 Set channel number. More...
 
void SetDevice (Ptr< Object > device)
 
void SetEdThreshold (double threshold)
 
void SetErrorRateModel (Ptr< ErrorRateModel > rate)
 
virtual void SetFrequency (uint32_t freq)
 
virtual void SetGreenfield (bool greenfield)
 
virtual void SetGuardInterval (bool GuardInterval)
 
virtual void SetLdpc (bool Ldpc)
 
void SetMobility (Ptr< Object > mobility)
 
void SetNTxPower (uint32_t n)
 
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)
 
void SetRxNoiseFigure (double noiseFigureDb)
 
virtual void SetStbc (bool stbc)
 
void SetTxGain (double gain)
 
void SetTxPowerEnd (double end)
 
void SetTxPowerStart (double start)
 
void StartReceivePacket (Ptr< Packet > packet, double rxPowerDbm, WifiTxVector txVector, WifiPreamble preamble)
 
virtual uint32_t WifiModeToMcs (WifiMode mode)
 
- Public Member Functions inherited from ns3::WifiPhy
 WifiPhy ()
 
virtual ~WifiPhy ()
 
void NotifyMonitorSniffRx (Ptr< const Packet > packet, uint16_t channelFreqMhz, uint16_t channelNumber, uint32_t rate, bool isShortPreamble, double signalDbm, double noiseDbm)
 
void NotifyMonitorSniffTx (Ptr< const Packet > packet, uint16_t channelFreqMhz, uint16_t channelNumber, uint32_t rate, bool isShortPreamble, uint8_t txPower)
 
void NotifyRxBegin (Ptr< const Packet > packet)
 
void NotifyRxDrop (Ptr< const Packet > packet)
 
void NotifyRxEnd (Ptr< const Packet > packet)
 
void NotifyTxBegin (Ptr< const Packet > packet)
 
void NotifyTxDrop (Ptr< const Packet > packet)
 
void NotifyTxEnd (Ptr< const Packet > packet)
 
- Public Member Functions inherited from ns3::Object
 Object ()
 
virtual ~Object ()
 
void AggregateObject (Ptr< Object > other)
 
void Dispose (void)
 
AggregateIterator GetAggregateIterator (void) const
 
virtual TypeId GetInstanceTypeId (void) const
 
template<typename T >
Ptr< T > GetObject (void) const
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 
void Initialize (void)
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 
 SimpleRefCount (const SimpleRefCount &o)
 
uint32_t GetReferenceCount (void) const
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 
void Ref (void) const
 
void Unref (void) const
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 
void GetAttribute (std::string name, AttributeValue &value) const
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 

Static Public Member Functions

static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::WifiPhy
static Time CalculateTxDuration (uint32_t size, WifiTxVector txvector, enum WifiPreamble preamble)
 
static WifiMode GetDsssRate11Mbps ()
 
static WifiMode GetDsssRate1Mbps ()
 
static WifiMode GetDsssRate2Mbps ()
 
static WifiMode GetDsssRate5_5Mbps ()
 
static WifiMode GetErpOfdmRate12Mbps ()
 
static WifiMode GetErpOfdmRate18Mbps ()
 
static WifiMode GetErpOfdmRate24Mbps ()
 
static WifiMode GetErpOfdmRate36Mbps ()
 
static WifiMode GetErpOfdmRate48Mbps ()
 
static WifiMode GetErpOfdmRate54Mbps ()
 
static WifiMode GetErpOfdmRate6Mbps ()
 
static WifiMode GetErpOfdmRate9Mbps ()
 
static WifiMode GetMFPlcpHeaderMode (WifiMode payloadMode, WifiPreamble preamble)
 
static WifiMode GetOfdmRate108MbpsBW40MHz ()
 
static WifiMode GetOfdmRate120MbpsBW40MHz ()
 
static WifiMode GetOfdmRate121_5MbpsBW40MHz ()
 
static WifiMode GetOfdmRate12Mbps ()
 
static WifiMode GetOfdmRate12MbpsBW10MHz ()
 
static WifiMode GetOfdmRate12MbpsBW5MHz ()
 
static WifiMode GetOfdmRate135MbpsBW40MHz ()
 
static WifiMode GetOfdmRate135MbpsBW40MHzShGi ()
 
static WifiMode GetOfdmRate13_5MbpsBW40MHz ()
 
static WifiMode GetOfdmRate13_5MbpsBW5MHz ()
 
static WifiMode GetOfdmRate13MbpsBW20MHz ()
 
static WifiMode GetOfdmRate14_4MbpsBW20MHz ()
 
static WifiMode GetOfdmRate150MbpsBW40MHz ()
 
static WifiMode GetOfdmRate15MbpsBW40MHz ()
 
static WifiMode GetOfdmRate18Mbps ()
 
static WifiMode GetOfdmRate18MbpsBW10MHz ()
 
static WifiMode GetOfdmRate19_5MbpsBW20MHz ()
 
static WifiMode GetOfdmRate1_5MbpsBW5MHz ()
 
static WifiMode GetOfdmRate21_7MbpsBW20MHz ()
 
static WifiMode GetOfdmRate24Mbps ()
 
static WifiMode GetOfdmRate24MbpsBW10MHz ()
 
static WifiMode GetOfdmRate26MbpsBW20MHz ()
 
static WifiMode GetOfdmRate27MbpsBW10MHz ()
 
static WifiMode GetOfdmRate27MbpsBW40MHz ()
 
static WifiMode GetOfdmRate28_9MbpsBW20MHz ()
 
static WifiMode GetOfdmRate2_25MbpsBW5MHz ()
 
static WifiMode GetOfdmRate30MbpsBW40MHz ()
 
static WifiMode GetOfdmRate36Mbps ()
 
static WifiMode GetOfdmRate39MbpsBW20MHz ()
 
static WifiMode GetOfdmRate3MbpsBW10MHz ()
 
static WifiMode GetOfdmRate3MbpsBW5MHz ()
 
static WifiMode GetOfdmRate40_5MbpsBW40MHz ()
 
static WifiMode GetOfdmRate43_3MbpsBW20MHz ()
 
static WifiMode GetOfdmRate45MbpsBW40MHz ()
 
static WifiMode GetOfdmRate48Mbps ()
 
static WifiMode GetOfdmRate4_5MbpsBW10MHz ()
 
static WifiMode GetOfdmRate4_5MbpsBW5MHz ()
 
static WifiMode GetOfdmRate52MbpsBW20MHz ()
 
static WifiMode GetOfdmRate54Mbps ()
 
static WifiMode GetOfdmRate54MbpsBW40MHz ()
 
static WifiMode GetOfdmRate57_8MbpsBW20MHz ()
 
static WifiMode GetOfdmRate58_5MbpsBW20MHz ()
 
static WifiMode GetOfdmRate60MbpsBW40MHz ()
 
static WifiMode GetOfdmRate65MbpsBW20MHz ()
 
static WifiMode GetOfdmRate65MbpsBW20MHzShGi ()
 
static WifiMode GetOfdmRate6_5MbpsBW20MHz ()
 
static WifiMode GetOfdmRate6Mbps ()
 
static WifiMode GetOfdmRate6MbpsBW10MHz ()
 
static WifiMode GetOfdmRate6MbpsBW5MHz ()
 
static WifiMode GetOfdmRate72_2MbpsBW20MHz ()
 
static WifiMode GetOfdmRate7_2MbpsBW20MHz ()
 
static WifiMode GetOfdmRate81MbpsBW40MHz ()
 
static WifiMode GetOfdmRate90MbpsBW40MHz ()
 
static WifiMode GetOfdmRate9Mbps ()
 
static WifiMode GetOfdmRate9MbpsBW10MHz ()
 
static WifiMode GetOfdmRate9MbpsBW5MHz ()
 
static double GetPayloadDurationMicroSeconds (uint32_t size, WifiTxVector txvector)
 
static uint32_t GetPlcpHeaderDurationMicroSeconds (WifiMode payloadMode, WifiPreamble preamble)
 
static WifiMode GetPlcpHeaderMode (WifiMode payloadMode, WifiPreamble preamble)
 
static uint32_t GetPlcpHtSigHeaderDurationMicroSeconds (WifiMode payloadMode, WifiPreamble preamble)
 
static uint32_t GetPlcpHtTrainingSymbolDurationMicroSeconds (WifiMode payloadMode, WifiPreamble preamble, WifiTxVector txvector)
 
static uint32_t GetPlcpPreambleDurationMicroSeconds (WifiMode payloadMode, WifiPreamble preamble)
 
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 

Private Member Functions

 YansWifiPhy (const YansWifiPhy &o)
 
void Configure80211_10Mhz (void)
 
void Configure80211_5Mhz ()
 
void Configure80211a (void)
 
void Configure80211b (void)
 
void Configure80211g (void)
 
void Configure80211n (void)
 
void ConfigureHolland (void)
 
double DbmToW (double dbm) const
 
double DbToRatio (double db) const
 
virtual void DoDispose (void)
 
void EndReceive (Ptr< Packet > packet, Ptr< InterferenceHelper::Event > event)
 
double GetEdThresholdW (void) const
 
double GetPowerDbm (uint8_t power) const
 
double RatioToDb (double ratio) const
 
double WToDbm (double w) const
 

Private Attributes

std::vector< uint32_t > m_bssMembershipSelectorSet
 
double m_ccaMode1ThresholdW
 
Ptr< YansWifiChannelm_channel
 
bool m_channelBonding
 
uint16_t m_channelNumber
 
double m_channelStartingFrequency
 Standard-dependent center frequency of 0-th channel, MHz. More...
 
Time m_channelSwitchDelay
 
Ptr< Objectm_device
 
std::vector< uint8_t > m_deviceMcsSet
 
WifiModeList m_deviceRateSet
 
double m_edThresholdW
 
EventId m_endRxEvent
 
bool m_greenfield
 
bool m_guardInterval
 
InterferenceHelper m_interference
 
bool m_ldpc
 
Ptr< Objectm_mobility
 
uint32_t m_nTxPower
 
uint32_t m_numberOfReceivers
 
uint32_t m_numberOfTransmitters
 
Ptr< UniformRandomVariablem_random
 Provides uniform random variables. More...
 
double m_rxGainDb
 
Ptr< WifiPhyStateHelperm_state
 
bool m_stbc
 
double m_txGainDb
 
double m_txPowerBaseDbm
 
double m_txPowerEndDbm
 

Additional Inherited Members

- Public Types inherited from ns3::WifiPhy
typedef Callback< void, Ptr
< const Packet >, double > 
RxErrorCallback
 
typedef Callback< void, Ptr
< Packet >, double, WifiMode,
enum WifiPreamble
RxOkCallback
 
enum  State {
  IDLE, CCA_BUSY, TX, RX,
  SWITCHING
}
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 
virtual void DoInitialize (void)
 
virtual void NotifyNewAggregate (void)
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 

Detailed Description

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.

Config Paths

ns3::YansWifiPhy is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::WifiNetDevice/Phy/$ns3::YansWifiPhy

Attributes

  • EnergyDetectionThreshold: The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to detect the signal.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: -96
    • Flags: construct write read
  • CcaMode1Threshold: The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to declare CCA BUSY state
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: -99
    • Flags: construct write read
  • TxGain: Transmission gain (dB).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1
    • Flags: construct write read
  • RxGain: Reception gain (dB).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1
    • Flags: construct write read
  • TxPowerLevels: Number of transmission power levels available between TxPowerStart and TxPowerEnd included.
  • TxPowerEnd: Maximum available transmission level (dbm).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 16.0206
    • Flags: construct write read
  • TxPowerStart: Minimum available transmission level (dbm).
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 16.0206
    • Flags: construct write read
  • RxNoiseFigure: Loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver. According to Wikipedia (http://en.wikipedia.org/wiki/Noise_figure), this is "the difference in decibels (dB) between the noise output of the actual receiver to the noise output of an ideal receiver with the same overall gain and bandwidth when the receivers are connected to sources at the standard noise temperature T0 (usually 290 K)". For
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 7
    • Flags: construct write read
  • State: The state of the PHY layer
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::WifiPhyStateHelper >
    • Initial value: 0
    • Flags: construct write read
  • ChannelSwitchDelay: Delay between two short frames transmitted on different frequencies.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +250000.0ns
    • Flags: construct write read
  • ChannelNumber: Channel center frequency = Channel starting frequency + 5 MHz * nch
  • Frequency: The operating frequency.
  • Transmitters: The number of transmitters.
  • Recievers: The number of recievers.
  • ShortGuardEnabled: Whether or not short guard interval is enabled.
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read
  • LdpcEnabled: Whether or not LDPC is enabled.
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read
  • STBCEnabled: Whether or not STBC is enabled.
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read
  • GreenfieldEnabled: Whether or not STBC is enabled.
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read
  • ChannelBonding: Whether 20MHz or 40MHz.
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read

No TraceSources are defined for this type.

TraceSources defined in parent class ns3::WifiPhy

  • PhyTxBegin: Trace source indicating a packet has begun transmitting over the channel medium
  • PhyTxEnd: Trace source indicating a packet has been completely transmitted over the channel. NOTE: the only official WifiPhy implementation available to this date (YansWifiPhy) never fires this trace source.
  • PhyTxDrop: Trace source indicating a packet has been dropped by the device during transmission
  • PhyRxBegin: Trace source indicating a packet has begun being received from the channel medium by the device
  • PhyRxEnd: Trace source indicating a packet has been completely received from the channel medium by the device
  • PhyRxDrop: Trace source indicating a packet has been dropped by the device during reception
  • MonitorSnifferRx: Trace source simulating a wifi device in monitor mode sniffing all received frames
  • MonitorSnifferTx: Trace source simulating the capability of a wifi device in monitor mode to sniff all frames being transmitted

Definition at line 64 of file yans-wifi-phy.h.

Constructor & Destructor Documentation

ns3::YansWifiPhy::YansWifiPhy ( )

Definition at line 170 of file yans-wifi-phy.cc.

References m_random, m_state, and NS_LOG_FUNCTION.

ns3::YansWifiPhy::~YansWifiPhy ( )
virtual

Definition at line 180 of file yans-wifi-phy.cc.

References NS_LOG_FUNCTION.

ns3::YansWifiPhy::YansWifiPhy ( const YansWifiPhy o)
private

Member Function Documentation

int64_t ns3::YansWifiPhy::AssignStreams ( int64_t  stream)
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.

Parameters
streamfirst stream index to use
Returns
the number of stream indices assigned by this model

Implements ns3::WifiPhy.

Definition at line 818 of file yans-wifi-phy.cc.

References m_random, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().

+ Here is the call graph for this function:

double ns3::YansWifiPhy::CalculateSnr ( WifiMode  txMode,
double  ber 
) const
virtual
Parameters
txModethe transmission mode
berthe probability of bit error rate
Returns
the minimum snr which is required to achieve the requested ber for the specified transmission mode. (W/W)

Implements ns3::WifiPhy.

Definition at line 356 of file yans-wifi-phy.cc.

References ns3::InterferenceHelper::GetErrorRateModel(), and m_interference.

+ Here is the call graph for this function:

void ns3::YansWifiPhy::Configure80211b ( void  )
private

Definition at line 606 of file yans-wifi-phy.cc.

References ns3::WifiPhy::GetDsssRate11Mbps(), ns3::WifiPhy::GetDsssRate1Mbps(), ns3::WifiPhy::GetDsssRate2Mbps(), ns3::WifiPhy::GetDsssRate5_5Mbps(), m_channelStartingFrequency, m_deviceRateSet, and NS_LOG_FUNCTION.

Referenced by ConfigureStandard().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::ConfigureHolland ( void  )
private
double ns3::YansWifiPhy::DbmToW ( double  dbm) const
private

Definition at line 744 of file yans-wifi-phy.cc.

Referenced by SetCcaMode1Threshold(), SetEdThreshold(), and StartReceivePacket().

+ Here is the caller graph for this function:

double ns3::YansWifiPhy::DbToRatio ( double  db) const
private

Definition at line 737 of file yans-wifi-phy.cc.

Referenced by SetRxNoiseFigure().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::DoDispose ( void  )
privatevirtual

This method is called by Object::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 186 of file yans-wifi-phy.cc.

References m_channel, m_device, m_deviceMcsSet, m_deviceRateSet, m_mobility, m_state, and NS_LOG_FUNCTION.

uint32_t ns3::YansWifiPhy::GetBssMembershipSelector ( uint32_t  selector) const
virtual

Implements ns3::WifiPhy.

Definition at line 940 of file yans-wifi-phy.cc.

References m_bssMembershipSelectorSet.

Referenced by GetMembershipSelectorModes().

+ Here is the caller graph for this function:

double ns3::YansWifiPhy::GetCcaMode1Threshold ( void  ) const

Definition at line 334 of file yans-wifi-phy.cc.

References m_ccaMode1ThresholdW, and WToDbm().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Ptr< WifiChannel > ns3::YansWifiPhy::GetChannel ( void  ) const
virtual

Implements ns3::WifiPhy.

Definition at line 362 of file yans-wifi-phy.cc.

References m_channel.

bool ns3::YansWifiPhy::GetChannelBonding ( void  ) const
virtual
Parameters
setschannel bonding is supported or not

Implements ns3::WifiPhy.

Definition at line 905 of file yans-wifi-phy.cc.

References m_channelBonding.

Referenced by GetTypeId(), and McsToWifiMode().

+ Here is the caller graph for this function:

double ns3::YansWifiPhy::GetChannelFrequencyMhz ( ) const

Return current center channel frequency in MHz, see SetChannelNumber()

Definition at line 429 of file yans-wifi-phy.cc.

References GetChannelNumber(), and m_channelStartingFrequency.

Referenced by EndReceive(), and SendPacket().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint16_t ns3::YansWifiPhy::GetChannelNumber ( ) const
virtual

Return current channel number, see SetChannelNumber()

Implements ns3::WifiPhy.

Definition at line 423 of file yans-wifi-phy.cc.

References m_channelNumber.

Referenced by EndReceive(), GetChannelFrequencyMhz(), ns3::MeshWifiInterfaceMac::GetFrequencyChannel(), GetTypeId(), ns3::YansWifiChannel::Send(), and SendPacket().

+ Here is the caller graph for this function:

Time ns3::YansWifiPhy::GetDelayUntilIdle ( void  )
virtual
Returns
the predicted delay until this PHY can become WifiPhy::IDLE.

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 725 of file yans-wifi-phy.cc.

References m_state.

Referenced by SetChannelNumber().

+ Here is the caller graph for this function:

Ptr< Object > ns3::YansWifiPhy::GetDevice ( void  ) const

Definition at line 345 of file yans-wifi-phy.cc.

References m_device.

double ns3::YansWifiPhy::GetEdThreshold ( void  ) const

Definition at line 328 of file yans-wifi-phy.cc.

References m_edThresholdW, and WToDbm().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double ns3::YansWifiPhy::GetEdThresholdW ( void  ) const
private

Definition at line 763 of file yans-wifi-phy.cc.

References m_edThresholdW.

Ptr< ErrorRateModel > ns3::YansWifiPhy::GetErrorRateModel ( void  ) const

Definition at line 340 of file yans-wifi-phy.cc.

References ns3::InterferenceHelper::GetErrorRateModel(), and m_interference.

+ Here is the call graph for this function:

uint32_t ns3::YansWifiPhy::GetFrequency ( void  ) const
virtual
Returns
the operating frequency on this node

Implements ns3::WifiPhy.

Definition at line 871 of file yans-wifi-phy.cc.

References m_channelStartingFrequency.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

bool ns3::YansWifiPhy::GetGreenfield ( void  ) const
virtual
Returns
if Greenfield is supported or not

Implements ns3::WifiPhy.

Definition at line 899 of file yans-wifi-phy.cc.

References m_greenfield.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

bool ns3::YansWifiPhy::GetGuardInterval ( void  ) const
virtual
Returns
if short guard interval is supported or not

Implements ns3::WifiPhy.

Definition at line 860 of file yans-wifi-phy.cc.

References m_guardInterval.

Referenced by GetTypeId(), and McsToWifiMode().

+ Here is the caller graph for this function:

Time ns3::YansWifiPhy::GetLastRxStartTime ( void  ) const
virtual

Implements ns3::WifiPhy.

Definition at line 731 of file yans-wifi-phy.cc.

References m_state.

bool ns3::YansWifiPhy::GetLdpc ( void  ) const
virtual
Returns
if LDPC is supported or not

Implements ns3::WifiPhy.

Definition at line 888 of file yans-wifi-phy.cc.

References m_ldpc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

uint8_t ns3::YansWifiPhy::GetMcs ( uint8_t  mcs) const
virtual

Implements ns3::WifiPhy.

Definition at line 969 of file yans-wifi-phy.cc.

References m_deviceMcsSet.

WifiModeList ns3::YansWifiPhy::GetMembershipSelectorModes ( uint32_t  selector)
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 BssMemebershipSelectorSet, and which is stored as WifiPhy::m_bssMembershipSelectorSet.

This was introduced with 11n

Parameters
selectorindex in array of supported memeberships
Returns
a WifiModeList that contains the WifiModes associrated with the selected index.
See Also
WifiPhy::GetMembershipSelectorModes()

Implements ns3::WifiPhy.

Definition at line 945 of file yans-wifi-phy.cc.

References GetBssMembershipSelector(), ns3::WifiPhy::GetOfdmRate13MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate19_5MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate26MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate39MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate52MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate58_5MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate65MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate6_5MbpsBW20MHz(), and HT_PHY.

+ Here is the call graph for this function:

Ptr< Object > ns3::YansWifiPhy::GetMobility ( void  )

Definition at line 350 of file yans-wifi-phy.cc.

References m_mobility.

Referenced by ns3::YansWifiChannel::Send().

+ Here is the caller graph for this function:

WifiMode ns3::YansWifiPhy::GetMode ( uint32_t  mode) const
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.

Parameters
modeindex in array of supported modes
Returns
the mode whose index is specified.
See Also
WifiPhy::GetNModes()

Implements ns3::WifiPhy.

Definition at line 578 of file yans-wifi-phy.cc.

References m_deviceRateSet.

uint32_t ns3::YansWifiPhy::GetNBssMembershipSelectors ( void  ) const
virtual

The WifiPhy::NBssMembershipSelectors() and WifiPhy::BssMembershipSelector() 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 BssMemebershipSelectorSet, and which is stored as WifiPhy::m_bssMembershipSelectorSet.

This was introduced with 11n

Parameters
selectorindex in array of supported memeberships
Returns
the memebership selector whose index is specified.
See Also
WifiPhy::NBssMembershipSelectors()

Implements ns3::WifiPhy.

Definition at line 935 of file yans-wifi-phy.cc.

References m_bssMembershipSelectorSet.

uint8_t ns3::YansWifiPhy::GetNMcs ( void  ) const
virtual
Returns
the number of MCS supported by this phy

Implements ns3::WifiPhy.

Definition at line 964 of file yans-wifi-phy.cc.

References m_deviceMcsSet.

uint32_t ns3::YansWifiPhy::GetNModes ( void  ) const
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.

Returns
the number of transmission modes supported by this PHY.
See Also
WifiPhy::GetMode()

Implements ns3::WifiPhy.

Definition at line 573 of file yans-wifi-phy.cc.

References m_deviceRateSet.

uint32_t ns3::YansWifiPhy::GetNTxPower ( void  ) const
virtual
Returns
the number of tx power levels available for this PHY.

Implements ns3::WifiPhy.

Definition at line 583 of file yans-wifi-phy.cc.

References m_nTxPower.

uint32_t ns3::YansWifiPhy::GetNumberOfReceiveAntennas ( void  ) const
virtual
Returns
the number of receivers on this node.

Implements ns3::WifiPhy.

Definition at line 882 of file yans-wifi-phy.cc.

References m_numberOfReceivers.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

uint32_t ns3::YansWifiPhy::GetNumberOfTransmitAntennas ( void  ) const
virtual

Implements ns3::WifiPhy.

Definition at line 877 of file yans-wifi-phy.cc.

References m_numberOfTransmitters.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

double ns3::YansWifiPhy::GetPowerDbm ( uint8_t  power) const
private

Definition at line 769 of file yans-wifi-phy.cc.

References m_nTxPower, m_txPowerBaseDbm, m_txPowerEndDbm, NS_ASSERT, and NS_ASSERT_MSG.

Referenced by SendPacket().

+ Here is the caller graph for this function:

double ns3::YansWifiPhy::GetRxGain ( void  ) const

Definition at line 322 of file yans-wifi-phy.cc.

References m_rxGainDb.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

double ns3::YansWifiPhy::GetRxNoiseFigure ( void  ) const

Definition at line 302 of file yans-wifi-phy.cc.

References ns3::InterferenceHelper::GetNoiseFigure(), m_interference, and RatioToDb().

Referenced by EndReceive(), and GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::YansWifiPhy::GetStateDuration ( void  )
virtual
Returns
the amount of time since the current state has started.

Implements ns3::WifiPhy.

Definition at line 720 of file yans-wifi-phy.cc.

References m_state.

bool ns3::YansWifiPhy::GetStbc ( void  ) const
virtual
Returns
if STBC is supported or not

Implements ns3::WifiPhy.

Definition at line 893 of file yans-wifi-phy.cc.

References m_stbc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

double ns3::YansWifiPhy::GetTxGain ( void  ) const

Definition at line 317 of file yans-wifi-phy.cc.

References m_txGainDb.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

double ns3::YansWifiPhy::GetTxPowerEnd ( void  ) const
virtual

Implements ns3::WifiPhy.

Definition at line 312 of file yans-wifi-phy.cc.

References m_txPowerEndDbm.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

double ns3::YansWifiPhy::GetTxPowerStart ( void  ) const
virtual

Implements ns3::WifiPhy.

Definition at line 307 of file yans-wifi-phy.cc.

References m_txPowerBaseDbm.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

bool ns3::YansWifiPhy::IsStateBusy ( void  )
virtual
Returns
true of the current state of the PHY layer is not WifiPhy::IDLE, false otherwise.

Implements ns3::WifiPhy.

Definition at line 699 of file yans-wifi-phy.cc.

References m_state.

bool ns3::YansWifiPhy::IsStateCcaBusy ( void  )
virtual
Returns
true of the current state of the PHY layer is WifiPhy::CCA_BUSY, false otherwise.

Implements ns3::WifiPhy.

Definition at line 688 of file yans-wifi-phy.cc.

References m_state.

bool ns3::YansWifiPhy::IsStateIdle ( void  )
virtual
Returns
true of the current state of the PHY layer is WifiPhy::IDLE, false otherwise.

Implements ns3::WifiPhy.

Definition at line 694 of file yans-wifi-phy.cc.

References m_state.

bool ns3::YansWifiPhy::IsStateRx ( void  )
virtual
Returns
true of the current state of the PHY layer is WifiPhy::RX, false otherwise.

Implements ns3::WifiPhy.

Definition at line 704 of file yans-wifi-phy.cc.

References m_state.

Referenced by EndReceive().

+ Here is the caller graph for this function:

bool ns3::YansWifiPhy::IsStateSwitching ( void  )
virtual
Returns
true of the current state of the PHY layer is WifiPhy::SWITCHING, false otherwise.

Implements ns3::WifiPhy.

Definition at line 714 of file yans-wifi-phy.cc.

References m_state.

Referenced by SetChannelNumber().

+ Here is the caller graph for this function:

bool ns3::YansWifiPhy::IsStateTx ( void  )
virtual
Returns
true of the current state of the PHY layer is WifiPhy::TX, false otherwise.

Implements ns3::WifiPhy.

Definition at line 709 of file yans-wifi-phy.cc.

References m_state.

WifiMode ns3::YansWifiPhy::McsToWifiMode ( uint8_t  mcs)
virtual

For a given MCS finds the corresponding WifiMode and returns it as defined in the IEEE 802.11n standard.

Parameters
mcsthe MCS number
Returns
the WifiMode that corresponds to the given mcs number

Implements ns3::WifiPhy.

Definition at line 1036 of file yans-wifi-phy.cc.

References GetChannelBonding(), GetGuardInterval(), ns3::WifiPhy::GetOfdmRate108MbpsBW40MHz(), ns3::WifiPhy::GetOfdmRate120MbpsBW40MHz(), ns3::WifiPhy::GetOfdmRate121_5MbpsBW40MHz(), ns3::WifiPhy::GetOfdmRate135MbpsBW40MHz(), ns3::WifiPhy::GetOfdmRate135MbpsBW40MHzShGi(), ns3::WifiPhy::GetOfdmRate13_5MbpsBW40MHz(), ns3::WifiPhy::GetOfdmRate13MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate14_4MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate150MbpsBW40MHz(), ns3::WifiPhy::GetOfdmRate15MbpsBW40MHz(), ns3::WifiPhy::GetOfdmRate19_5MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate21_7MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate26MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate27MbpsBW40MHz(), ns3::WifiPhy::GetOfdmRate28_9MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate30MbpsBW40MHz(), ns3::WifiPhy::GetOfdmRate39MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate40_5MbpsBW40MHz(), ns3::WifiPhy::GetOfdmRate43_3MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate45MbpsBW40MHz(), ns3::WifiPhy::GetOfdmRate52MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate54MbpsBW40MHz(), ns3::WifiPhy::GetOfdmRate57_8MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate58_5MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate60MbpsBW40MHz(), ns3::WifiPhy::GetOfdmRate65MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate65MbpsBW20MHzShGi(), ns3::WifiPhy::GetOfdmRate6_5MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate72_2MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate7_2MbpsBW20MHz(), ns3::WifiPhy::GetOfdmRate81MbpsBW40MHz(), and ns3::WifiPhy::GetOfdmRate90MbpsBW40MHz().

+ Here is the call graph for this function:

double ns3::YansWifiPhy::RatioToDb ( double  ratio) const
private

Definition at line 757 of file yans-wifi-phy.cc.

Referenced by EndReceive(), and GetRxNoiseFigure().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::RegisterListener ( WifiPhyListener listener)
virtual
Parameters
listenerthe new listener

Add the input listener to the list of objects to be notified of PHY-level events.

Implements ns3::WifiPhy.

Definition at line 682 of file yans-wifi-phy.cc.

References m_state.

void ns3::YansWifiPhy::SendPacket ( Ptr< const Packet packet,
WifiMode  mode,
enum WifiPreamble  preamble,
WifiTxVector  txvector 
)
virtual
Parameters
packetthe packet to send
modethe transmission mode to use to send this packet
preamblethe type of preamble to use to send this packet.
txvectorthe txvector that has tx parameters as txPowerLevel a power level to use to send this packet. The real transmission power is calculated as txPowerMin + txPowerLevel * (txPowerMax - txPowerMin) / nTxLevels

Implements ns3::WifiPhy.

Definition at line 547 of file yans-wifi-phy.cc.

References ns3::WifiPhy::CalculateTxDuration(), ns3::EventId::Cancel(), GetChannelFrequencyMhz(), GetChannelNumber(), ns3::WifiMode::GetDataRate(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetNss(), GetPowerDbm(), ns3::Packet::GetSize(), ns3::WifiTxVector::GetTxPowerLevel(), m_channel, m_endRxEvent, m_interference, m_state, m_txGainDb, ns3::WifiPhy::NotifyMonitorSniffTx(), ns3::InterferenceHelper::NotifyRxEnd(), ns3::WifiPhy::NotifyTxBegin(), NS_ASSERT, NS_LOG_FUNCTION, and ns3::WIFI_PREAMBLE_SHORT.

+ Here is the call graph for this function:

void ns3::YansWifiPhy::SetCcaMode1Threshold ( double  threshold)

Definition at line 280 of file yans-wifi-phy.cc.

References DbmToW(), m_ccaMode1ThresholdW, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetChannel ( Ptr< YansWifiChannel channel)

Definition at line 367 of file yans-wifi-phy.cc.

References m_channel.

Referenced by ns3::YansWifiPhyHelper::Create().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetChannelBonding ( bool  channelbonding)
virtual
Returns
if channel bonding is supported or not

Implements ns3::WifiPhy.

Definition at line 911 of file yans-wifi-phy.cc.

References m_channelBonding.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetChannelNumber ( uint16_t  id)
virtual

Set channel number.

Channel center frequency = Channel starting frequency + 5 MHz * nch

where Starting channel frequency is standard-dependent, see SetStandard() as defined in IEEE 802.11-2007 17.3.8.3.2.

YansWifiPhy can switch among different channels. Basically, YansWifiPhy has a private attribute m_channelNumber that identifies the channel the PHY operates on. Channel switching cannot interrupt an ongoing transmission. When PHY is in TX state, the channel switching is postponed until the end of the current transmission. When the PHY is in RX state, the channel switching causes the drop of the synchronized packet.

Implements ns3::WifiPhy.

Definition at line 374 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_endRxEvent, m_interference, m_state, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, ns3::WifiPhy::RX, ns3::Simulator::Schedule(), and ns3::WifiPhy::TX.

Referenced by GetTypeId(), and ns3::MeshWifiInterfaceMac::SwitchFrequencyChannel().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetDevice ( Ptr< Object device)

Definition at line 291 of file yans-wifi-phy.cc.

References m_device.

Referenced by ns3::YansWifiPhyHelper::Create().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetEdThreshold ( double  threshold)

Definition at line 274 of file yans-wifi-phy.cc.

References DbmToW(), m_edThresholdW, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetErrorRateModel ( Ptr< ErrorRateModel rate)

Definition at line 286 of file yans-wifi-phy.cc.

References m_interference, and ns3::InterferenceHelper::SetErrorRateModel().

Referenced by ns3::YansWifiPhyHelper::Create().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetFrequency ( uint32_t  freq)
virtual
Parameters
theoperating frequency on this node (2.4 GHz or 5GHz).

Implements ns3::WifiPhy.

Definition at line 826 of file yans-wifi-phy.cc.

References m_channelStartingFrequency.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetGreenfield ( bool  greenfield)
virtual
Parameters
setsGreenfield is supported or not

Implements ns3::WifiPhy.

Definition at line 855 of file yans-wifi-phy.cc.

References m_greenfield.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetGuardInterval ( bool  GuardInterval)
virtual
Parameters
setshort/long guard interval.

Implements ns3::WifiPhy.

Definition at line 865 of file yans-wifi-phy.cc.

References m_guardInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetLdpc ( bool  Ldpc)
virtual
Parameters
setsLDPC is supported or not

Implements ns3::WifiPhy.

Definition at line 843 of file yans-wifi-phy.cc.

References m_ldpc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetMobility ( Ptr< Object mobility)

Definition at line 296 of file yans-wifi-phy.cc.

References m_mobility.

Referenced by ns3::YansWifiPhyHelper::Create().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetNTxPower ( uint32_t  n)

Definition at line 256 of file yans-wifi-phy.cc.

References m_nTxPower, and NS_LOG_FUNCTION.

void ns3::YansWifiPhy::SetNumberOfReceiveAntennas ( uint32_t  rx)
virtual
Parameters
thenumber of receivers on this node.

Implements ns3::WifiPhy.

Definition at line 837 of file yans-wifi-phy.cc.

References m_numberOfReceivers.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetNumberOfTransmitAntennas ( uint32_t  tx)
virtual
Parameters
thenumber of transmitters on this node.

Implements ns3::WifiPhy.

Definition at line 832 of file yans-wifi-phy.cc.

References m_numberOfTransmitters.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetReceiveErrorCallback ( WifiPhy::RxErrorCallback  callback)
virtual
Parameters
callbackthe callback to invoke upon erroneous packet reception.

Implements ns3::WifiPhy.

Definition at line 440 of file yans-wifi-phy.cc.

References m_state.

void ns3::YansWifiPhy::SetReceiveOkCallback ( WifiPhy::RxOkCallback  callback)
virtual
Parameters
callbackthe callback to invoke upon successful packet reception.

Implements ns3::WifiPhy.

Definition at line 435 of file yans-wifi-phy.cc.

References m_state.

void ns3::YansWifiPhy::SetRxGain ( double  gain)

Definition at line 268 of file yans-wifi-phy.cc.

References m_rxGainDb, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetRxNoiseFigure ( double  noiseFigureDb)

Definition at line 238 of file yans-wifi-phy.cc.

References DbToRatio(), m_interference, NS_LOG_FUNCTION, and ns3::InterferenceHelper::SetNoiseFigure().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetStbc ( bool  stbc)
virtual
Parameters
setsSTBC is supported or not

Implements ns3::WifiPhy.

Definition at line 849 of file yans-wifi-phy.cc.

References m_stbc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetTxGain ( double  gain)

Definition at line 262 of file yans-wifi-phy.cc.

References m_txGainDb, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetTxPowerEnd ( double  end)

Definition at line 250 of file yans-wifi-phy.cc.

References m_txPowerEndDbm, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::SetTxPowerStart ( double  start)

Definition at line 244 of file yans-wifi-phy.cc.

References m_txPowerBaseDbm, NS_LOG_FUNCTION, and visualizer.core::start().

Referenced by GetTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint32_t ns3::YansWifiPhy::WifiModeToMcs ( WifiMode  mode)
virtual

For a given WifiMode finds the corresponding MCS value and returns it as defined in the IEEE 802.11n standard

Parameters
modethe WifiMode
Returns
the MCS number that corresponds to the given WifiMode

Implements ns3::WifiPhy.

Definition at line 974 of file yans-wifi-phy.cc.

References ns3::WifiMode::GetDataRate(), and ns3::WifiMode::GetUniqueName().

+ Here is the call graph for this function:

double ns3::YansWifiPhy::WToDbm ( double  w) const
private

Definition at line 751 of file yans-wifi-phy.cc.

Referenced by GetCcaMode1Threshold(), and GetEdThreshold().

+ Here is the caller graph for this function:

Member Data Documentation

std::vector<uint32_t> ns3::YansWifiPhy::m_bssMembershipSelectorSet
private
double ns3::YansWifiPhy::m_ccaMode1ThresholdW
private

Definition at line 259 of file yans-wifi-phy.h.

Referenced by GetCcaMode1Threshold(), SetCcaMode1Threshold(), and StartReceivePacket().

Ptr<YansWifiChannel> ns3::YansWifiPhy::m_channel
private

Definition at line 266 of file yans-wifi-phy.h.

Referenced by DoDispose(), GetChannel(), SendPacket(), and SetChannel().

bool ns3::YansWifiPhy::m_channelBonding
private

Definition at line 284 of file yans-wifi-phy.h.

Referenced by GetChannelBonding(), and SetChannelBonding().

uint16_t ns3::YansWifiPhy::m_channelNumber
private

Definition at line 267 of file yans-wifi-phy.h.

Referenced by GetChannelNumber(), and SetChannelNumber().

double ns3::YansWifiPhy::m_channelStartingFrequency
private
Time ns3::YansWifiPhy::m_channelSwitchDelay
private

Definition at line 334 of file yans-wifi-phy.h.

Referenced by GetTypeId(), and SetChannelNumber().

Ptr<Object> ns3::YansWifiPhy::m_device
private

Definition at line 268 of file yans-wifi-phy.h.

Referenced by DoDispose(), GetDevice(), and SetDevice().

std::vector<uint8_t> ns3::YansWifiPhy::m_deviceMcsSet
private

Definition at line 326 of file yans-wifi-phy.h.

Referenced by Configure80211n(), DoDispose(), GetMcs(), and GetNMcs().

WifiModeList ns3::YansWifiPhy::m_deviceRateSet
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 323 of file yans-wifi-phy.h.

Referenced by Configure80211_10Mhz(), Configure80211_5Mhz(), Configure80211a(), Configure80211b(), Configure80211g(), Configure80211n(), ConfigureHolland(), DoDispose(), GetMode(), and GetNModes().

double ns3::YansWifiPhy::m_edThresholdW
private
EventId ns3::YansWifiPhy::m_endRxEvent
private

Definition at line 327 of file yans-wifi-phy.h.

Referenced by SendPacket(), SetChannelNumber(), and StartReceivePacket().

bool ns3::YansWifiPhy::m_greenfield
private

Definition at line 280 of file yans-wifi-phy.h.

Referenced by GetGreenfield(), and SetGreenfield().

bool ns3::YansWifiPhy::m_guardInterval
private

Definition at line 282 of file yans-wifi-phy.h.

Referenced by GetGuardInterval(), and SetGuardInterval().

bool ns3::YansWifiPhy::m_ldpc
private

Definition at line 276 of file yans-wifi-phy.h.

Referenced by GetLdpc(), and SetLdpc().

Ptr<Object> ns3::YansWifiPhy::m_mobility
private

Definition at line 269 of file yans-wifi-phy.h.

Referenced by DoDispose(), GetMobility(), and SetMobility().

uint32_t ns3::YansWifiPhy::m_nTxPower
private

Definition at line 264 of file yans-wifi-phy.h.

Referenced by GetNTxPower(), GetPowerDbm(), GetTypeId(), and SetNTxPower().

uint32_t ns3::YansWifiPhy::m_numberOfReceivers
private

Definition at line 274 of file yans-wifi-phy.h.

Referenced by GetNumberOfReceiveAntennas(), and SetNumberOfReceiveAntennas().

uint32_t ns3::YansWifiPhy::m_numberOfTransmitters
private

Definition at line 272 of file yans-wifi-phy.h.

Referenced by GetNumberOfTransmitAntennas(), and SetNumberOfTransmitAntennas().

Ptr<UniformRandomVariable> ns3::YansWifiPhy::m_random
private

Provides uniform random variables.

Definition at line 329 of file yans-wifi-phy.h.

Referenced by AssignStreams(), EndReceive(), and YansWifiPhy().

double ns3::YansWifiPhy::m_rxGainDb
private

Definition at line 261 of file yans-wifi-phy.h.

Referenced by GetRxGain(), SetRxGain(), and StartReceivePacket().

bool ns3::YansWifiPhy::m_stbc
private

Definition at line 278 of file yans-wifi-phy.h.

Referenced by GetStbc(), and SetStbc().

double ns3::YansWifiPhy::m_txGainDb
private

Definition at line 260 of file yans-wifi-phy.h.

Referenced by GetTxGain(), SendPacket(), and SetTxGain().

double ns3::YansWifiPhy::m_txPowerBaseDbm
private

Definition at line 262 of file yans-wifi-phy.h.

Referenced by GetPowerDbm(), GetTxPowerStart(), and SetTxPowerStart().

double ns3::YansWifiPhy::m_txPowerEndDbm
private

Definition at line 263 of file yans-wifi-phy.h.

Referenced by GetPowerDbm(), GetTxPowerEnd(), and SetTxPowerEnd().


The documentation for this class was generated from the following files: