802.11 PHY layer model More...
#include <wifi-phy.h>
Public Types | |
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 } |
Public Member Functions | |
WifiPhy () | |
virtual | ~WifiPhy () |
virtual int64_t | AssignStreams (int64_t stream)=0 |
virtual double | CalculateSnr (WifiMode txMode, double ber) const =0 |
virtual void | ConfigureStandard (enum WifiPhyStandard standard)=0 |
virtual Ptr< WifiChannel > | GetChannel (void) const =0 |
virtual uint16_t | GetChannelNumber () const =0 |
Return current channel number, see SetChannelNumber() | |
virtual Time | GetDelayUntilIdle (void)=0 |
virtual Time | GetLastRxStartTime (void) const =0 |
virtual WifiMode | GetMode (uint32_t mode) const =0 |
virtual uint32_t | GetNModes (void) const =0 |
virtual uint32_t | GetNTxPower (void) const =0 |
virtual Time | GetStateDuration (void)=0 |
virtual double | GetTxPowerEnd (void) const =0 |
virtual double | GetTxPowerStart (void) const =0 |
virtual bool | IsStateBusy (void)=0 |
virtual bool | IsStateCcaBusy (void)=0 |
virtual bool | IsStateIdle (void)=0 |
virtual bool | IsStateRx (void)=0 |
virtual bool | IsStateSwitching (void)=0 |
virtual bool | IsStateTx (void)=0 |
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) |
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) |
virtual void | RegisterListener (WifiPhyListener *listener)=0 |
virtual void | SendPacket (Ptr< const Packet > packet, WifiMode mode, enum WifiPreamble preamble, uint8_t txPowerLevel)=0 |
virtual void | SetChannelNumber (uint16_t id)=0 |
Set channel number. | |
virtual void | SetReceiveErrorCallback (RxErrorCallback callback)=0 |
virtual void | SetReceiveOkCallback (RxOkCallback callback)=0 |
![]() | |
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) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
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) |
Private Attributes | |
TracedCallback< Ptr< const Packet >, uint16_t, uint16_t, uint32_t, bool, double, double > | m_phyMonitorSniffRxTrace |
TracedCallback< Ptr< const Packet >, uint16_t, uint16_t, uint32_t, bool > | m_phyMonitorSniffTxTrace |
TracedCallback< Ptr< const Packet > > | m_phyRxBeginTrace |
TracedCallback< Ptr< const Packet > > | m_phyRxDropTrace |
TracedCallback< Ptr< const Packet > > | m_phyRxEndTrace |
TracedCallback< Ptr< const Packet > > | m_phyTxBeginTrace |
TracedCallback< Ptr< const Packet > > | m_phyTxDropTrace |
TracedCallback< Ptr< const Packet > > | m_phyTxEndTrace |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
802.11 PHY layer model
ns3::WifiPhy is accessible through the following paths with Config::Set and Config::Connect:
No Attributes are defined for this type.
Definition at line 117 of file wifi-phy.h.
typedef Callback<void,Ptr<const Packet>, double> ns3::WifiPhy::RxErrorCallback |
arg1: packet received unsuccessfully arg2: snr of packet
Definition at line 158 of file wifi-phy.h.
typedef Callback<void,Ptr<Packet>, double, WifiMode, enum WifiPreamble> ns3::WifiPhy::RxOkCallback |
arg1: packet received successfully arg2: snr of packet arg3: mode of packet arg4: type of preamble used for packet.
Definition at line 153 of file wifi-phy.h.
enum ns3::WifiPhy::State |
The state of the PHY layer.
Definition at line 123 of file wifi-phy.h.
ns3::WifiPhy::WifiPhy | ( | ) |
Definition at line 86 of file wifi-phy.cc.
References NS_LOG_FUNCTION.
|
virtual |
Definition at line 91 of file wifi-phy.cc.
References NS_LOG_FUNCTION.
|
pure virtual |
Assign a fixed random variable stream number to the random variables used by this model. Return the number of streams (possibly zero) that have been assigned.
stream | first stream index to use |
Implemented in ns3::YansWifiPhy.
|
pure virtual |
txMode | the transmission mode |
ber | the probability of bit error rate |
Implemented in ns3::YansWifiPhy.
Referenced by ns3::IdealWifiManager::SetupPhy().
|
static |
size | the number of bytes in the packet to send |
payloadMode | the transmission mode to use for this packet |
preamble | the type of preamble to use for this packet. |
Definition at line 294 of file wifi-phy.cc.
References GetPayloadDurationMicroSeconds(), GetPlcpHeaderDurationMicroSeconds(), GetPlcpPreambleDurationMicroSeconds(), and ns3::MicroSeconds().
Referenced by ns3::dot11s::AirtimeLinkMetricCalculator::CalculateMetric(), ns3::MacLow::CalculateOverallTxTime(), ns3::MacLow::CalculateTransmissionTime(), ns3::TxDurationTest::CheckTxDuration(), ns3::MacLow::GetAckDuration(), ns3::MacLow::GetBlockAckDuration(), ns3::MacLow::GetCtsDuration(), ns3::MacLow::NotifyNav(), ns3::MacLow::SendDataAfterCts(), ns3::MacLow::SendDataPacket(), ns3::YansWifiPhy::SendPacket(), ns3::MacLow::SendRtsForPacket(), ns3::MinstrelWifiManager::SetupPhy(), ns3::MacLow::StartDataTxTimers(), and ns3::YansWifiPhy::StartReceivePacket().
|
pure virtual |
Implemented in ns3::YansWifiPhy.
Referenced by ns3::MeshHelper::CreateInterface(), and ns3::WifiHelper::Install().
|
pure virtual |
Implemented in ns3::YansWifiPhy.
Referenced by ns3::WifiNetDevice::DoGetChannel(), and ns3::WifiNetDevice::GetChannel().
|
pure virtual |
Return current channel number, see SetChannelNumber()
Implemented in ns3::YansWifiPhy.
|
pure virtual |
The PHY will never become WifiPhy::IDLE before the delay returned by this method but it could become really idle later.
Implemented in ns3::YansWifiPhy.
|
static |
Definition at line 400 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_UNDEFINED, and ns3::WIFI_MOD_CLASS_DSSS.
Referenced by ns3::YansWifiPhy::Configure80211b(), ns3::YansWifiPhy::Configure80211g(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::TxDurationTest::DoRun().
|
static |
Clause 15 rates (DSSS)
Definition at line 357 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_UNDEFINED, and ns3::WIFI_MOD_CLASS_DSSS.
Referenced by ns3::YansWifiPhy::Configure80211b(), ns3::YansWifiPhy::Configure80211g(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), ns3::TxDurationTest::DoRun(), and GetPlcpHeaderMode().
|
static |
Definition at line 370 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_UNDEFINED, and ns3::WIFI_MOD_CLASS_DSSS.
Referenced by ns3::YansWifiPhy::Configure80211b(), ns3::YansWifiPhy::Configure80211g(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), ns3::TxDurationTest::DoRun(), and GetPlcpHeaderMode().
|
static |
Clause 18 rates (HR/DSSS)
Definition at line 387 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_UNDEFINED, and ns3::WIFI_MOD_CLASS_DSSS.
Referenced by ns3::YansWifiPhy::Configure80211b(), ns3::YansWifiPhy::Configure80211g(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::TxDurationTest::DoRun().
|
static |
Definition at line 443 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_ERP_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211g(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 456 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_ERP_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211g(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 469 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_ERP_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211g(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 482 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_ERP_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211g(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 495 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_2_3, and ns3::WIFI_MOD_CLASS_ERP_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211g(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 508 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_ERP_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211g(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::TxDurationTest::DoRun().
|
static |
Clause 19.5 rates (ERP-OFDM)
Definition at line 417 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_ERP_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211g(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetPlcpHeaderMode().
|
static |
Definition at line 430 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_ERP_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211g(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
pure virtual |
Implemented in ns3::YansWifiPhy.
Referenced by ns3::MacLow::NavCounterResetCtsMissed().
|
pure virtual |
The WifiPhy::GetNModes() and WifiPhy::GetMode() methods are used (e.g., by a WifiRemoteStationManager) to determine the set of transmission/reception modes that this WifiPhy(-derived class) can support - a set of WifiMode objects which we call the DeviceRateSet, and which is stored as WifiPhy::m_deviceRateSet.
It is important to note that the DeviceRateSet is a superset (not necessarily proper) of the OperationalRateSet (which is logically, if not actually, a property of the associated WifiRemoteStationManager), which itself is a superset (again, not necessarily proper) of the BSSBasicRateSet.
mode | index in array of supported modes |
Implemented in ns3::YansWifiPhy.
Referenced by ns3::AdhocWifiMac::Enqueue(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::WifiRemoteStationManager::GetControlAnswerMode(), ns3::StaWifiMac::GetSupportedRates(), ns3::ApWifiMac::GetSupportedRates(), ns3::MeshWifiInterfaceMac::GetSupportedRates(), ns3::StaWifiMac::Receive(), ns3::ApWifiMac::Receive(), ns3::MeshWifiInterfaceMac::Receive(), ns3::IdealWifiManager::SetupPhy(), ns3::WifiRemoteStationManager::SetupPhy(), and ns3::MinstrelWifiManager::SetupPhy().
|
pure 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.
Implemented in ns3::YansWifiPhy.
Referenced by ns3::AdhocWifiMac::Enqueue(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::WifiRemoteStationManager::GetControlAnswerMode(), ns3::StaWifiMac::GetSupportedRates(), ns3::ApWifiMac::GetSupportedRates(), ns3::MeshWifiInterfaceMac::GetSupportedRates(), ns3::StaWifiMac::Receive(), ns3::ApWifiMac::Receive(), ns3::MeshWifiInterfaceMac::Receive(), ns3::IdealWifiManager::SetupPhy(), and ns3::MinstrelWifiManager::SetupPhy().
|
pure virtual |
Implemented in ns3::YansWifiPhy.
|
static |
Definition at line 551 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211a(), ns3::YansWifiPhy::ConfigureHolland(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 682 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_10Mhz(), ns3::YansWifiPhy::Configure80211p_CCH(), ns3::YansWifiPhy::Configure80211p_SCH(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 813 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_2_3, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 826 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 564 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211a(), ns3::YansWifiPhy::ConfigureHolland(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 695 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_10Mhz(), ns3::YansWifiPhy::Configure80211p_CCH(), ns3::YansWifiPhy::Configure80211p_SCH(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 735 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_5Mhz(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetPlcpHeaderMode().
|
static |
Definition at line 577 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211a(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 708 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_2_3, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_10Mhz(), ns3::YansWifiPhy::Configure80211p_CCH(), ns3::YansWifiPhy::Configure80211p_SCH(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 721 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_10Mhz(), ns3::YansWifiPhy::Configure80211p_CCH(), ns3::YansWifiPhy::Configure80211p_SCH(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 748 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 590 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211a(), ns3::YansWifiPhy::ConfigureHolland(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 630 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_10Mhz(), ns3::YansWifiPhy::Configure80211p_CCH(), ns3::YansWifiPhy::Configure80211p_SCH(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetPlcpHeaderMode().
|
static |
Definition at line 761 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 603 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_2_3, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211a(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 643 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_10Mhz(), ns3::YansWifiPhy::Configure80211p_CCH(), ns3::YansWifiPhy::Configure80211p_SCH(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 774 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 616 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211a(), ns3::YansWifiPhy::ConfigureHolland(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and ns3::TxDurationTest::DoRun().
|
static |
Clause 17 rates (OFDM)
Definition at line 525 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211a(), ns3::YansWifiPhy::ConfigureHolland(), anonymous_namespace{wifi-phy.cc}::Constructor::Constructor(), and GetPlcpHeaderMode().
|
static |
Definition at line 656 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_10Mhz(), ns3::YansWifiPhy::Configure80211p_CCH(), ns3::YansWifiPhy::Configure80211p_SCH(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 787 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_1_2, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 538 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211a(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 669 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_10Mhz(), ns3::YansWifiPhy::Configure80211p_CCH(), ns3::YansWifiPhy::Configure80211p_SCH(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
Definition at line 800 of file wifi-phy.cc.
References ns3::WifiModeFactory::CreateWifiMode(), ns3::WIFI_CODE_RATE_3_4, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by ns3::YansWifiPhy::Configure80211_5Mhz(), and anonymous_namespace{wifi-phy.cc}::Constructor::Constructor().
|
static |
size | the number of bytes in the packet to send |
payloadMode | the WifiMode use for the transmission of the payload |
Definition at line 235 of file wifi-phy.cc.
References ns3::WifiMode::GetBandwidth(), ns3::WifiMode::GetDataRate(), ns3::WifiMode::GetModulationClass(), NS_FATAL_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::WIFI_MOD_CLASS_DSSS, ns3::WIFI_MOD_CLASS_ERP_OFDM, and ns3::WIFI_MOD_CLASS_OFDM.
Referenced by CalculateTxDuration(), and ns3::TxDurationTest::CheckPayloadDuration().
|
static |
payloadMode | the WifiMode use for the transmission of the payload |
preamble | the type of preamble |
Definition at line 141 of file wifi-phy.cc.
References ns3::WifiMode::GetBandwidth(), ns3::WifiMode::GetModulationClass(), NS_FATAL_ERROR, ns3::WIFI_MOD_CLASS_DSSS, ns3::WIFI_MOD_CLASS_ERP_OFDM, ns3::WIFI_MOD_CLASS_OFDM, and ns3::WIFI_PREAMBLE_SHORT.
Referenced by ns3::InterferenceHelper::CalculatePer(), and CalculateTxDuration().
|
static |
payloadMode | the WifiMode use for the transmission of the payload |
preamble | the type of preamble |
Definition at line 98 of file wifi-phy.cc.
References ns3::WifiMode::GetBandwidth(), GetDsssRate1Mbps(), GetDsssRate2Mbps(), GetErpOfdmRate6Mbps(), ns3::WifiMode::GetModulationClass(), GetOfdmRate1_5MbpsBW5MHz(), GetOfdmRate3MbpsBW10MHz(), GetOfdmRate6Mbps(), NS_FATAL_ERROR, ns3::WIFI_MOD_CLASS_DSSS, ns3::WIFI_MOD_CLASS_ERP_OFDM, ns3::WIFI_MOD_CLASS_OFDM, and ns3::WIFI_PREAMBLE_LONG.
Referenced by ns3::InterferenceHelper::CalculatePer().
|
static |
payloadMode | the WifiMode use for the transmission of the payload |
preamble | the type of preamble |
Definition at line 189 of file wifi-phy.cc.
References ns3::WifiMode::GetBandwidth(), ns3::WifiMode::GetModulationClass(), NS_FATAL_ERROR, ns3::WIFI_MOD_CLASS_DSSS, ns3::WIFI_MOD_CLASS_ERP_OFDM, ns3::WIFI_MOD_CLASS_OFDM, and ns3::WIFI_PREAMBLE_SHORT.
Referenced by ns3::InterferenceHelper::CalculatePer(), and CalculateTxDuration().
|
pure virtual |
Implemented in ns3::YansWifiPhy.
|
pure virtual |
Implemented in ns3::YansWifiPhy.
|
pure virtual |
Implemented in ns3::YansWifiPhy.
|
static |
Reimplemented from ns3::Object.
Reimplemented in ns3::YansWifiPhy.
Definition at line 54 of file wifi-phy.cc.
References m_phyMonitorSniffRxTrace, m_phyMonitorSniffTxTrace, m_phyRxBeginTrace, m_phyRxDropTrace, m_phyRxEndTrace, m_phyTxBeginTrace, m_phyTxDropTrace, m_phyTxEndTrace, ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().
|
pure virtual |
Implemented in ns3::YansWifiPhy.
|
pure virtual |
Implemented in ns3::YansWifiPhy.
|
pure virtual |
Implemented in ns3::YansWifiPhy.
Referenced by ns3::MacLow::FastAckTimeout(), and ns3::MacLow::SuperFastAckTimeout().
|
pure virtual |
Implemented in ns3::YansWifiPhy.
|
pure virtual |
Implemented in ns3::YansWifiPhy.
|
pure virtual |
Implemented in ns3::YansWifiPhy.
Referenced by ns3::MacLow::StartTransmission().
void ns3::WifiPhy::NotifyMonitorSniffRx | ( | Ptr< const Packet > | packet, |
uint16_t | channelFreqMhz, | ||
uint16_t | channelNumber, | ||
uint32_t | rate, | ||
bool | isShortPreamble, | ||
double | signalDbm, | ||
double | noiseDbm | ||
) |
Public method used to fire a MonitorSniffer trace for a wifi packet being received. Implemented for encapsulation purposes.
packet | the packet being received |
channelFreqMhz | the frequency in MHz at which the packet is received. Note that in real devices this is normally the frequency to which the receiver is tuned, and this can be different than the frequency at which the packet was originally transmitted. This is because it is possible to have the receiver tuned on a given channel and still to be able to receive packets on a nearby channel. |
channelNumber | the channel on which the packet is received |
rate | the PHY data rate in units of 500kbps (i.e., the same units used both for the radiotap and for the prism header) |
isShortPreamble | true if short preamble is used, false otherwise |
signalDbm | signal power in dBm |
noiseDbm | noise power in dBm |
Definition at line 340 of file wifi-phy.cc.
References m_phyMonitorSniffRxTrace.
Referenced by ns3::YansWifiPhy::EndReceive().
void ns3::WifiPhy::NotifyMonitorSniffTx | ( | Ptr< const Packet > | packet, |
uint16_t | channelFreqMhz, | ||
uint16_t | channelNumber, | ||
uint32_t | rate, | ||
bool | isShortPreamble | ||
) |
Public method used to fire a MonitorSniffer trace for a wifi packet being transmitted. Implemented for encapsulation purposes.
packet | the packet being transmitted |
channelFreqMhz | the frequency in MHz at which the packet is transmitted. |
channelNumber | the channel on which the packet is transmitted |
rate | the PHY data rate in units of 500kbps (i.e., the same units used both for the radiotap and for the prism header) |
isShortPreamble | true if short preamble is used, false otherwise |
Definition at line 346 of file wifi-phy.cc.
References m_phyMonitorSniffTxTrace.
Referenced by ns3::YansWifiPhy::SendPacket().
Public method used to fire a PhyRxBegin trace. Implemented for encapsulation purposes.
Definition at line 322 of file wifi-phy.cc.
References m_phyRxBeginTrace.
Referenced by ns3::YansWifiPhy::StartReceivePacket().
Public method used to fire a PhyRxDrop trace. Implemented for encapsulation purposes.
Definition at line 334 of file wifi-phy.cc.
References m_phyRxDropTrace.
Referenced by ns3::YansWifiPhy::EndReceive(), and ns3::YansWifiPhy::StartReceivePacket().
Public method used to fire a PhyRxEnd trace. Implemented for encapsulation purposes.
Definition at line 328 of file wifi-phy.cc.
References m_phyRxEndTrace.
Referenced by ns3::YansWifiPhy::EndReceive().
Public method used to fire a PhyTxBegin trace. Implemented for encapsulation purposes.
Definition at line 304 of file wifi-phy.cc.
References m_phyTxBeginTrace.
Referenced by ns3::YansWifiPhy::SendPacket().
Public method used to fire a PhyTxDrop trace. Implemented for encapsulation purposes.
Definition at line 316 of file wifi-phy.cc.
References m_phyTxDropTrace.
Public method used to fire a PhyTxEnd trace. Implemented for encapsulation purposes.
Definition at line 310 of file wifi-phy.cc.
References m_phyTxEndTrace.
|
pure virtual |
listener | the new listener |
Add the input listener to the list of objects to be notified of PHY-level events.
Implemented in ns3::YansWifiPhy.
Referenced by ns3::DcfManager::SetupPhyListener(), and ns3::MacLow::SetupPhyMacLowListener().
|
pure virtual |
packet | the packet to send |
mode | the transmission mode to use to send this packet |
preamble | the type of preamble to use to send this packet. |
txPowerLevel | a power level to use to send this packet. The real transmission power is calculated as txPowerMin + txPowerLevel * (txPowerMax - txPowerMin) / nTxLevels |
Implemented in ns3::YansWifiPhy.
Referenced by ns3::MacLow::ForwardDown().
|
pure virtual |
Set channel number.
Channel center frequency = Channel starting frequency + 5 MHz * (nch - 1)
where Starting channel frequency is standard-dependent, see SetStandard() as defined in IEEE 802.11-2007 17.3.8.3.2.
Implemented in ns3::YansWifiPhy.
Referenced by ns3::InterferenceHelperSequenceTest::SwitchCh().
|
pure virtual |
callback | the callback to invoke upon erroneous packet reception. |
Implemented in ns3::YansWifiPhy.
Referenced by ns3::MacLow::SetPhy().
|
pure virtual |
callback | the callback to invoke upon successful packet reception. |
Implemented in ns3::YansWifiPhy.
Referenced by ns3::MacLow::SetPhy().
|
private |
A trace source that emulates a wifi device in monitor mode sniffing a packet being received.
As a reference with the real world, firing this trace corresponds in the madwifi driver to calling the function ieee80211_input_monitor()
Definition at line 521 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyMonitorSniffRx().
|
private |
A trace source that emulates a wifi device in monitor mode sniffing a packet being transmitted.
As a reference with the real world, firing this trace corresponds in the madwifi driver to calling the function ieee80211_input_monitor()
Definition at line 533 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyMonitorSniffTx().
|
private |
The trace source fired when a packet begins the reception process from the medium.
Definition at line 494 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyRxBegin().
|
private |
The trace source fired when the phy layer drops a packet it has received.
Definition at line 509 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyRxDrop().
|
private |
The trace source fired when a packet ends the reception process from the medium.
Definition at line 502 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyRxEnd().
|
private |
The trace source fired when a packet begins the transmission process on the medium.
Definition at line 470 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyTxBegin().
|
private |
The trace source fired when the phy layer drops a packet as it tries to transmit it.
Definition at line 486 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyTxDrop().
|
private |
The trace source fired when a packet ends the transmission process on the medium.
Definition at line 478 of file wifi-phy.h.
Referenced by GetTypeId(), and NotifyTxEnd().