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()
uint16_t GetChannelNumber () const
 Return current channel number, see SetChannelNumber()
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.
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)

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 Configure80211p_CCH (void)
void Configure80211p_SCH (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.
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.
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 DoDispose (void)
virtual void DoInitialize (void)
virtual void NotifyNewAggregate (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
  • 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 856 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 362 of file yans-wifi-phy.cc.

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

+ Here is the call graph for this function:

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

Definition at line 612 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 782 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 775 of file yans-wifi-phy.cc.

Referenced by SetRxNoiseFigure().

+ Here is the caller graph for this function:

void ns3::YansWifiPhy::DoDispose ( void  )
privatevirtual
uint32_t ns3::YansWifiPhy::GetBssMembershipSelector ( uint32_t  selector) const
virtual

Implements ns3::WifiPhy.

Definition at line 978 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 340 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 368 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 943 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 435 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 429 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 763 of file yans-wifi-phy.cc.

References ns3::WifiPhyStateHelper::GetDelayUntilIdle(), and m_state.

Referenced by SetChannelNumber().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

References m_device.

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

Definition at line 334 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 801 of file yans-wifi-phy.cc.

References m_edThresholdW.

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

Definition at line 346 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 909 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 937 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 898 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 769 of file yans-wifi-phy.cc.

References ns3::WifiPhyStateHelper::GetLastRxStartTime(), and m_state.

+ Here is the call graph for this function:

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

Implements ns3::WifiPhy.

Definition at line 926 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 1007 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 983 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 356 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 584 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 973 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 1002 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 579 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 589 of file yans-wifi-phy.cc.

References m_nTxPower.

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

Implements ns3::WifiPhy.

Definition at line 920 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 915 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 807 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 328 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 308 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 758 of file yans-wifi-phy.cc.

References ns3::WifiPhyStateHelper::GetStateDuration(), and m_state.

+ Here is the call graph for this function:

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

Implements ns3::WifiPhy.

Definition at line 931 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 323 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 318 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 313 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 737 of file yans-wifi-phy.cc.

References ns3::WifiPhyStateHelper::IsStateBusy(), and m_state.

+ Here is the call graph for this function:

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

References ns3::WifiPhyStateHelper::IsStateCcaBusy(), and m_state.

+ Here is the call graph for this function:

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

References ns3::WifiPhyStateHelper::IsStateIdle(), and m_state.

+ Here is the call graph for this function:

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

References ns3::WifiPhyStateHelper::IsStateRx(), and m_state.

Referenced by EndReceive().

+ Here is the call graph for this function:

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

References ns3::WifiPhyStateHelper::IsStateSwitching(), and m_state.

Referenced by SetChannelNumber().

+ Here is the call graph for this function:

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

References ns3::WifiPhyStateHelper::IsStateTx(), and m_state.

+ Here is the call graph for this function:

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 1074 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 795 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 720 of file yans-wifi-phy.cc.

References m_state, and ns3::WifiPhyStateHelper::RegisterListener().

+ Here is the call graph for this function:

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 553 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(), ns3::WifiPhyStateHelper::IsStateRx(), ns3::WifiPhyStateHelper::IsStateSwitching(), ns3::WifiPhyStateHelper::IsStateTx(), m_channel, m_endRxEvent, m_interference, m_state, m_txGainDb, ns3::WifiPhy::NotifyMonitorSniffTx(), ns3::InterferenceHelper::NotifyRxEnd(), ns3::WifiPhy::NotifyTxBegin(), NS_ASSERT, NS_LOG_FUNCTION, ns3::YansWifiChannel::Send(), ns3::WifiPhyStateHelper::SwitchToTx(), and ns3::WIFI_PREAMBLE_SHORT.

+ Here is the call graph for this function:

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

Definition at line 286 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 373 of file yans-wifi-phy.cc.

References ns3::YansWifiChannel::Add(), and m_channel.

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

+ Here is the call graph for this function:

+ 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 949 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 380 of file yans-wifi-phy.cc.

References ns3::EventId::Cancel(), ns3::WifiPhy::CCA_BUSY, ns3::InterferenceHelper::EraseEvents(), GetDelayUntilIdle(), ns3::WifiPhyStateHelper::GetState(), 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(), ns3::WifiPhyStateHelper::SwitchToChannelSwitching(), 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 297 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 280 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 292 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 864 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 893 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 903 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 881 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 302 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 262 of file yans-wifi-phy.cc.

References m_nTxPower, and NS_LOG_FUNCTION.

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

Implements ns3::WifiPhy.

Definition at line 875 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 870 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 446 of file yans-wifi-phy.cc.

References m_state, and ns3::WifiPhyStateHelper::SetReceiveErrorCallback().

+ Here is the call graph for this function:

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

Implements ns3::WifiPhy.

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

References m_state, and ns3::WifiPhyStateHelper::SetReceiveOkCallback().

+ Here is the call graph for this function:

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

Definition at line 274 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 244 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 887 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 268 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 256 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 250 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 1012 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 789 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 261 of file yans-wifi-phy.h.

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

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

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

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

bool ns3::YansWifiPhy::m_channelBonding
private

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

Referenced by GetChannelBonding(), and SetChannelBonding().

uint16_t ns3::YansWifiPhy::m_channelNumber
private

Definition at line 269 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 336 of file yans-wifi-phy.h.

Referenced by GetTypeId(), and SetChannelNumber().

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

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

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

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

Definition at line 328 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 325 of file yans-wifi-phy.h.

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

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

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

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

bool ns3::YansWifiPhy::m_greenfield
private

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

Referenced by GetGreenfield(), and SetGreenfield().

bool ns3::YansWifiPhy::m_guardInterval
private

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

Referenced by GetGuardInterval(), and SetGuardInterval().

bool ns3::YansWifiPhy::m_ldpc
private

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

Referenced by GetLdpc(), and SetLdpc().

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

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

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

uint32_t ns3::YansWifiPhy::m_nTxPower
private

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

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

uint32_t ns3::YansWifiPhy::m_numberOfReceivers
private

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

Referenced by GetNumberOfReceiveAntennas(), and SetNumberOfReceiveAntennas().

uint32_t ns3::YansWifiPhy::m_numberOfTransmitters
private

Definition at line 274 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 331 of file yans-wifi-phy.h.

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

double ns3::YansWifiPhy::m_rxGainDb
private

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

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

bool ns3::YansWifiPhy::m_stbc
private

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

Referenced by GetStbc(), and SetStbc().

double ns3::YansWifiPhy::m_txGainDb
private

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

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

double ns3::YansWifiPhy::m_txPowerBaseDbm
private

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

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

double ns3::YansWifiPhy::m_txPowerEndDbm
private

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

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


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