25 #include "ns3/callback.h"
26 #include "ns3/packet.h"
27 #include "ns3/object.h"
28 #include "ns3/nstime.h"
30 #include "wifi-mode.h"
31 #include "wifi-preamble.h"
32 #include "wifi-phy-standard.h"
33 #include "ns3/traced-callback.h"
171 static TypeId GetTypeId (
void);
176 virtual double GetTxPowerStart (
void)
const = 0;
177 virtual double GetTxPowerEnd (
void)
const = 0;
261 virtual Time GetLastRxStartTime (
void)
const = 0;
321 virtual uint32_t
GetNModes (
void)
const = 0;
374 static WifiMode GetDsssRate2Mbps ();
376 static WifiMode GetDsssRate11Mbps ();
378 static WifiMode GetErpOfdmRate9Mbps ();
379 static WifiMode GetErpOfdmRate12Mbps ();
380 static WifiMode GetErpOfdmRate18Mbps ();
381 static WifiMode GetErpOfdmRate24Mbps ();
382 static WifiMode GetErpOfdmRate36Mbps ();
383 static WifiMode GetErpOfdmRate48Mbps ();
384 static WifiMode GetErpOfdmRate54Mbps ();
386 static WifiMode GetOfdmRate9Mbps ();
387 static WifiMode GetOfdmRate12Mbps ();
388 static WifiMode GetOfdmRate18Mbps ();
389 static WifiMode GetOfdmRate24Mbps ();
390 static WifiMode GetOfdmRate36Mbps ();
391 static WifiMode GetOfdmRate48Mbps ();
392 static WifiMode GetOfdmRate54Mbps ();
393 static WifiMode GetOfdmRate3MbpsBW10MHz ();
394 static WifiMode GetOfdmRate4_5MbpsBW10MHz ();
395 static WifiMode GetOfdmRate6MbpsBW10MHz ();
396 static WifiMode GetOfdmRate9MbpsBW10MHz ();
397 static WifiMode GetOfdmRate12MbpsBW10MHz ();
398 static WifiMode GetOfdmRate18MbpsBW10MHz ();
399 static WifiMode GetOfdmRate24MbpsBW10MHz ();
400 static WifiMode GetOfdmRate27MbpsBW10MHz ();
401 static WifiMode GetOfdmRate1_5MbpsBW5MHz ();
402 static WifiMode GetOfdmRate2_25MbpsBW5MHz ();
403 static WifiMode GetOfdmRate3MbpsBW5MHz ();
404 static WifiMode GetOfdmRate4_5MbpsBW5MHz ();
405 static WifiMode GetOfdmRate6MbpsBW5MHz ();
406 static WifiMode GetOfdmRate9MbpsBW5MHz ();
407 static WifiMode GetOfdmRate12MbpsBW5MHz ();
408 static WifiMode GetOfdmRate13_5MbpsBW5MHz ();
468 double signalDbm,
double noiseDbm);
TracedCallback< Ptr< const Packet > > m_phyRxBeginTrace
static uint32_t GetPlcpHeaderDurationMicroSeconds(WifiMode payloadMode, WifiPreamble preamble)
virtual void SendPacket(Ptr< const Packet > packet, WifiMode mode, enum WifiPreamble preamble, uint8_t txPowerLevel)=0
virtual bool IsStateSensing(void)=0
static WifiMode GetDsssRate1Mbps()
virtual uint32_t GetNModes(void) const =0
forward calls to a chain of CallbackAn ns3::TracedCallback has almost exactly the same API as a norma...
TracedCallback< Ptr< const Packet > > m_phyRxEndTrace
Callback< void, Ptr< Packet >, double, WifiMode, enum WifiPreamble > RxOkCallback
virtual double CalculateSnr(WifiMode txMode, double ber) const =0
void NotifyTxDrop(Ptr< const Packet > packet)
void NotifyTxBegin(Ptr< const Packet > packet)
virtual void NotifyTxStart(Time duration)=0
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
virtual bool IsStateCcaBusy(void)=0
virtual void RegisterListener(WifiPhyListener *listener)=0
virtual void StartSensing(Time duration)=0
Start sensing on current channel.
virtual void SetHandoffEndedCallback(HandoffEndedCallback callback)=0
virtual bool IsStateIdle(void)=0
virtual void NotifySwitchingStart(Time duration, uint16_t toChannel)=0
void NotifyRxDrop(Ptr< const Packet > packet)
virtual uint16_t GetChannelNumber() const =0
Return current channel number, see SetChannelNumber()
TracedCallback< Ptr< const Packet >, uint16_t, uint16_t, uint32_t, bool > m_phyMonitorSniffTxTrace
Callback< void, Ptr< const Packet >, double > RxErrorCallback
virtual void NotifyRxEndOk(void)=0
virtual void SetReceiveErrorCallback(RxErrorCallback callback)=0
receive notifications about phy events.
TracedCallback< Ptr< const Packet > > m_phyTxDropTrace
static WifiMode GetPlcpHeaderMode(WifiMode payloadMode, WifiPreamble preamble)
virtual Time GetDelayUntilIdle(void)=0
virtual void SetSenseEndedCallback(SnsEndedCallback callback)=0
TracedCallback< Ptr< const Packet > > m_phyRxDropTrace
void NotifyRxBegin(Ptr< const Packet > packet)
TracedCallback< Ptr< const Packet >, uint16_t, uint16_t, uint32_t, bool, double, double > m_phyMonitorSniffRxTrace
static Time CalculateTxDuration(uint32_t size, WifiMode payloadMode, enum WifiPreamble preamble)
TracedCallback< Ptr< const Packet > > m_phyTxBeginTrace
virtual bool IsStateSwitching(void)=0
static uint32_t GetPayloadDurationMicroSeconds(uint32_t size, WifiMode payloadMode)
virtual bool IsStateBusy(void)=0
std::ostream & operator<<(std::ostream &os, const Angles &a)
void NotifyMonitorSniffRx(Ptr< const Packet > packet, uint16_t channelFreqMhz, uint16_t channelNumber, uint32_t rate, bool isShortPreamble, double signalDbm, double noiseDbm)
virtual bool IsStateRx(void)=0
virtual Time GetStateDuration(void)=0
virtual WifiMode GetMode(uint32_t mode) const =0
static WifiMode GetDsssRate5_5Mbps()
void NotifyTxEnd(Ptr< const Packet > packet)
virtual void SetChannelNumber(uint16_t id)=0
Set channel number.
virtual bool IsStateTx(void)=0
virtual void NotifyRxStart(Time duration)=0
virtual void NotifyRxEndError(void)=0
static WifiMode GetErpOfdmRate6Mbps()
void NotifyRxEnd(Ptr< const Packet > packet)
virtual uint32_t GetNTxPower(void) const =0
virtual void SetReceiveOkCallback(RxOkCallback callback)=0
virtual int64_t AssignStreams(int64_t stream)=0
a base class which provides memory management and object aggregation
a unique identifier for an interface.
void NotifyMonitorSniffTx(Ptr< const Packet > packet, uint16_t channelFreqMhz, uint16_t channelNumber, uint32_t rate, bool isShortPreamble)
static uint32_t GetPlcpPreambleDurationMicroSeconds(WifiMode payloadMode, WifiPreamble preamble)
virtual void NotifySensingStart(Time duration)=0
static WifiMode GetOfdmRate6Mbps()
TracedCallback< Ptr< const Packet > > m_phyTxEndTrace
virtual void NotifyMaybeCcaBusyStart(Time duration)=0