22 #ifndef YANS_WIFI_PHY_H
23 #define YANS_WIFI_PHY_H
26 #include "ns3/callback.h"
27 #include "ns3/event-id.h"
28 #include "ns3/packet.h"
29 #include "ns3/object.h"
30 #include "ns3/traced-callback.h"
31 #include "ns3/nstime.h"
33 #include "ns3/random-variable-stream.h"
45 class YansWifiChannel;
46 class WifiPhyStateHelper;
184 virtual void SetLdpc (
bool Ldpc);
188 virtual bool GetLdpc (
void)
const;
192 virtual void SetStbc (
bool stbc);
196 virtual bool GetStbc (
void)
const;
220 virtual uint8_t
GetNMcs (
void)
const;
221 virtual uint8_t
GetMcs (uint8_t mcs)
const;
250 double DbmToW (
double dbm)
const;
252 double WToDbm (
double w)
const;
virtual bool IsStateBusy(void)
keep track of time values and allow control of global simulation resolution
smart pointer class similar to boost::intrusive_ptr
void Configure80211b(void)
virtual uint32_t GetFrequency(void) const
virtual WifiModeList GetMembershipSelectorModes(uint32_t selector)
double DbmToW(double dbm) const
double DbToRatio(double db) const
void SetErrorRateModel(Ptr< ErrorRateModel > rate)
virtual bool IsStateSwitching(void)
virtual bool IsStateTx(void)
void Configure80211n(void)
Ptr< YansWifiChannel > m_channel
void SetTxGain(double gain)
handles interference calculations
virtual void RegisterListener(WifiPhyListener *listener)
uint16_t GetChannelNumber() const
Return current channel number, see SetChannelNumber()
void SetChannelNumber(uint16_t id)
Set channel number.
virtual void SendPacket(Ptr< const Packet > packet, WifiMode mode, enum WifiPreamble preamble, WifiTxVector txvector)
Ptr< Object > GetDevice(void) const
void Configure80211_5Mhz()
virtual Time GetDelayUntilIdle(void)
void Configure80211a(void)
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
void Configure80211g(void)
virtual Time GetStateDuration(void)
virtual uint32_t GetNBssMembershipSelectors(void) const
double GetTxGain(void) const
virtual bool GetChannelBonding(void) const
std::vector< uint32_t > m_bssMembershipSelectorSet
virtual void SetReceiveErrorCallback(WifiPhy::RxErrorCallback callback)
virtual uint32_t GetNModes(void) const
virtual bool IsStateRx(void)
virtual uint8_t GetNMcs(void) const
virtual double GetTxPowerStart(void) const
virtual WifiMode GetMode(uint32_t mode) const
double m_channelStartingFrequency
Standard-dependent center frequency of 0-th channel, MHz.
void SetEdThreshold(double threshold)
virtual uint8_t GetMcs(uint8_t mcs) const
virtual void SetGuardInterval(bool GuardInterval)
receive notifications about phy events.
virtual bool GetStbc(void) const
WifiModeList m_deviceRateSet
double m_ccaMode1ThresholdW
virtual void DoDispose(void)
virtual void SetStbc(bool stbc)
virtual uint32_t GetBssMembershipSelector(uint32_t selector) const
double GetRxGain(void) const
double GetChannelFrequencyMhz() const
Return current center channel frequency in MHz, see SetChannelNumber()
double WToDbm(double w) const
void SetChannel(Ptr< YansWifiChannel > channel)
void SetNTxPower(uint32_t n)
virtual bool IsStateCcaBusy(void)
void SetDevice(Ptr< Object > device)
virtual void SetReceiveOkCallback(WifiPhy::RxOkCallback callback)
int64_t AssignStreams(int64_t stream)
double GetCcaMode1Threshold(void) const
802.11 PHY layer modelThis PHY implements a model of 802.11a. The model implemented here is based on ...
double GetEdThreshold(void) const
static TypeId GetTypeId(void)
virtual uint32_t GetNumberOfTransmitAntennas(void) const
virtual uint32_t WifiModeToMcs(WifiMode mode)
virtual uint32_t GetNumberOfReceiveAntennas(void) const
void SetRxGain(double gain)
std::vector< WifiMode > WifiModeList
virtual WifiMode McsToWifiMode(uint8_t mcs)
void SetTxPowerStart(double start)
double RatioToDb(double ratio) const
virtual void SetNumberOfTransmitAntennas(uint32_t tx)
virtual bool IsStateIdle(void)
void StartReceivePacket(Ptr< Packet > packet, double rxPowerDbm, WifiTxVector txVector, WifiPreamble preamble)
virtual Time GetLastRxStartTime(void) const
virtual double CalculateSnr(WifiMode txMode, double ber) const
virtual bool GetGreenfield(void) const
Ptr< UniformRandomVariable > m_random
Provides uniform random variables.
InterferenceHelper m_interference
virtual bool GetGuardInterval(void) const
void SetMobility(Ptr< Object > mobility)
an identifier for simulation events.
Time m_channelSwitchDelay
virtual void ConfigureStandard(enum WifiPhyStandard standard)
virtual bool GetLdpc(void) const
std::vector< uint8_t > m_deviceMcsSet
double GetPowerDbm(uint8_t power) const
void EndReceive(Ptr< Packet > packet, Ptr< InterferenceHelper::Event > event)
virtual void SetNumberOfReceiveAntennas(uint32_t rx)
uint32_t m_numberOfTransmitters
double GetEdThresholdW(void) const
virtual Ptr< WifiChannel > GetChannel(void) const
void SetCcaMode1Threshold(double threshold)
void ConfigureHolland(void)
virtual void SetLdpc(bool Ldpc)
void SetTxPowerEnd(double end)
double GetRxNoiseFigure(void) const
virtual double GetTxPowerEnd(void) const
a unique identifier for an interface.
uint32_t m_numberOfReceivers
virtual void SetChannelBonding(bool channelbonding)
virtual void SetFrequency(uint32_t freq)
void Configure80211_10Mhz(void)
virtual uint32_t GetNTxPower(void) const
void SetRxNoiseFigure(double noiseFigureDb)
Ptr< ErrorRateModel > GetErrorRateModel(void) const
Ptr< Object > GetMobility(void)
Ptr< WifiPhyStateHelper > m_state
virtual void SetGreenfield(bool greenfield)