A Discrete-Event Network Simulator
API
wifi-phy.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2005,2006 INRIA
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19  * S├ębastien Deronne <sebastien.deronne@gmail.com>
20  */
21 
22 #ifndef WIFI_PHY_H
23 #define WIFI_PHY_H
24 
25 #include "ns3/error-model.h"
26 #include "wifi-standards.h"
27 #include "interference-helper.h"
28 #include "wifi-phy-state-helper.h"
29 #include "phy-entity.h"
31 
32 namespace ns3 {
33 
34 class Channel;
35 class NetDevice;
36 class MobilityModel;
37 class WifiPhyStateHelper;
38 class FrameCaptureModel;
39 class PreambleDetectionModel;
40 class WifiRadioEnergyModel;
41 class UniformRandomVariable;
42 
48 class WifiPhy : public Object
49 {
50 public:
51  friend class PhyEntity;
56  static TypeId GetTypeId (void);
57 
58  WifiPhy ();
59  virtual ~WifiPhy ();
60 
61  static const std::set<FrequencyChannelInfo> m_frequencyChannels;
62 
68  Ptr<WifiPhyStateHelper> GetState (void) const;
69 
74  void SetReceiveOkCallback (RxOkCallback callback);
80 
87  void RegisterListener (WifiPhyListener *listener);
94  void UnregisterListener (WifiPhyListener *listener);
95 
100 
108  void StartReceivePreamble (Ptr<WifiPpdu> ppdu, RxPowerWattPerChannelBand& rxPowersW, Time rxDuration);
109 
115  void ResetReceive (Ptr<Event> event);
116 
121  void EndReceiveInterBss (void);
122 
133 
145  void Send (Ptr<const WifiPsdu> psdu, const WifiTxVector& txVector);
152  void Send (WifiConstPsduMap psdus, WifiTxVector txVector);
153 
157  virtual void StartTx (Ptr<WifiPpdu> ppdu) = 0;
158 
162  void SetSleepMode (void);
166  void ResumeFromSleep (void);
170  void SetOffMode (void);
174  void ResumeFromOff (void);
175 
179  bool IsStateIdle (void) const;
183  bool IsStateCcaBusy (void) const;
187  bool IsStateRx (void) const;
191  bool IsStateTx (void) const;
195  bool IsStateSwitching (void) const;
199  bool IsStateSleep (void) const;
203  bool IsStateOff (void) const;
204 
211  Time GetDelayUntilIdle (void);
212 
218  Time GetLastRxStartTime (void) const;
224  Time GetLastRxEndTime (void) const;
225 
234  static Time CalculateTxDuration (uint32_t size, const WifiTxVector& txVector, WifiPhyBand band,
235  uint16_t staId = SU_STA_ID);
250  static Time CalculateTxDuration (Ptr<const WifiPsdu> psdu, const WifiTxVector& txVector, WifiPhyBand band);
258  static Time CalculateTxDuration (WifiConstPsduMap psduMap, const WifiTxVector& txVector, WifiPhyBand band);
259 
269  static Time GetPreambleDetectionDuration (void);
279  static Time GetPayloadDuration (uint32_t size, const WifiTxVector& txVector, WifiPhyBand band, MpduType mpdutype = NORMAL_MPDU,
280  uint16_t staId = SU_STA_ID);
297  static Time GetPayloadDuration (uint32_t size, const WifiTxVector& txVector, WifiPhyBand band, MpduType mpdutype,
298  bool incFlag, uint32_t &totalAmpduSize, double &totalAmpduNumSymbols,
299  uint16_t staId);
305  static Time GetStartOfPacketDuration (const WifiTxVector& txVector);
306 
321  std::list<WifiMode> GetModeList (void) const;
331  std::list<WifiMode> GetModeList (WifiModulationClass modulation) const;
340  bool IsModeSupported (WifiMode mode) const;
348  WifiMode GetDefaultMode (void) const;
358  bool IsMcsSupported (WifiModulationClass modulation, uint8_t mcs) const;
359 
367  double CalculateSnr (const WifiTxVector& txVector, double ber) const;
368 
374  void SetSifs (Time sifs);
380  Time GetSifs (void) const;
386  void SetSlot (Time slot);
392  Time GetSlot (void) const;
398  void SetPifs (Time pifs);
404  Time GetPifs (void) const;
410  Time GetAckTxTime (void) const;
416  Time GetBlockAckTxTime (void) const;
417 
424  static uint32_t GetMaxPsduSize (WifiModulationClass modulation);
425 
436  std::list<uint8_t> GetBssMembershipSelectorList (void) const;
442  uint16_t GetNMcs (void) const;
451  std::list<WifiMode> GetMcsList (void) const;
461  std::list<WifiMode> GetMcsList (WifiModulationClass modulation) const;
472  WifiMode GetMcs (WifiModulationClass modulation, uint8_t mcs) const;
473 
496  virtual void SetChannelNumber (uint8_t id);
502  uint8_t GetChannelNumber (void) const;
506  Time GetChannelSwitchDelay (void) const;
507 
514  virtual void ConfigureStandardAndBand (WifiPhyStandard standard, WifiPhyBand band);
515 
521  WifiPhyStandard GetPhyStandard (void) const;
522 
528  WifiPhyBand GetPhyBand (void) const;
529 
535  const WifiPhyOperatingChannel& GetOperatingChannel (void) const;
536 
542  virtual Ptr<Channel> GetChannel (void) const = 0;
543 
551  void NotifyTxBegin (WifiConstPsduMap psdus, double txPowerW);
558  void NotifyTxEnd (WifiConstPsduMap psdus);
565  void NotifyTxDrop (Ptr<const WifiPsdu> psdu);
573  void NotifyRxBegin (Ptr<const WifiPsdu> psdu, const RxPowerWattPerChannelBand& rxPowersW);
580  void NotifyRxEnd (Ptr<const WifiPsdu> psdu);
589 
611  uint16_t channelFreqMhz,
612  WifiTxVector txVector,
613  SignalNoiseDbm signalNoise,
614  std::vector<bool> statusPerMpdu,
615  uint16_t staId = SU_STA_ID);
616 
638  uint16_t channelFreqMhz,
639  WifiTxVector txVector,
640  MpduInfo aMpdu,
641  SignalNoiseDbm signalNoise,
642  uint16_t staId);
643 
658  uint16_t channelFreqMhz,
659  WifiTxVector txVector,
660  uint16_t staId = SU_STA_ID);
661 
675  typedef void (* MonitorSnifferTxCallback)(const Ptr<const Packet> packet,
676  uint16_t channelFreqMhz,
677  WifiTxVector txVector,
678  MpduInfo aMpdu,
679  uint16_t staId);
680 
687  typedef void (* PhyTxBeginTracedCallback)(Ptr<const Packet> packet, double txPowerW);
688 
696  typedef void (* PsduTxBeginCallback)(WifiConstPsduMap psduMap, WifiTxVector txVector, double txPowerW);
697 
705 
712  typedef void (* PhyRxPayloadBeginTracedCallback)(WifiTxVector txVector, Time psduDuration);
713 
722  virtual int64_t AssignStreams (int64_t stream);
723 
731  void SetRxSensitivity (double threshold);
737  double GetRxSensitivity (void) const;
745  void SetCcaEdThreshold (double threshold);
751  double GetCcaEdThreshold (void) const;
757  void SetRxNoiseFigure (double noiseFigureDb);
763  void SetTxPowerStart (double start);
769  double GetTxPowerStart (void) const;
775  void SetTxPowerEnd (double end);
781  double GetTxPowerEnd (void) const;
789  void SetNTxPower (uint8_t n);
795  uint8_t GetNTxPower (void) const;
801  void SetTxGain (double gain);
807  double GetTxGain (void) const;
813  void SetRxGain (double gain);
819  double GetRxGain (void) const;
820 
826  void SetDevice (const Ptr<NetDevice> device);
832  Ptr<NetDevice> GetDevice (void) const;
853  Ptr<MobilityModel> GetMobility (void) const;
854 
865  void SetOperatingChannel (uint8_t number, uint16_t frequency, uint16_t width);
881  virtual void SetFrequency (uint16_t freq);
885  uint16_t GetFrequency (void) const;
892  void SetPrimary20Index (uint8_t index);
896  void SetNumberOfAntennas (uint8_t antennas);
900  uint8_t GetNumberOfAntennas (void) const;
904  void SetMaxSupportedTxSpatialStreams (uint8_t streams);
908  uint8_t GetMaxSupportedTxSpatialStreams (void) const;
912  void SetMaxSupportedRxSpatialStreams (uint8_t streams);
916  uint8_t GetMaxSupportedRxSpatialStreams (void) const;
922  void SetShortPhyPreambleSupported (bool preamble);
928  bool GetShortPhyPreambleSupported (void) const;
929 
935  void SetErrorRateModel (const Ptr<ErrorRateModel> rate);
953  void SetFrameCaptureModel (const Ptr<FrameCaptureModel> frameCaptureModel);
959  void SetPreambleDetectionModel (const Ptr<PreambleDetectionModel> preambleDetectionModel);
965  void SetWifiRadioEnergyModel (const Ptr<WifiRadioEnergyModel> wifiRadioEnergyModel);
966 
970  uint16_t GetChannelWidth (void) const;
985  virtual void SetChannelWidth (uint16_t channelWidth);
989  void AddSupportedChannelWidth (uint16_t width);
993  std::vector<uint16_t> GetSupportedChannelWidthSet (void) const;
994 
1003  double GetPowerDbm (uint8_t power) const;
1004 
1012  void ResetCca (bool powerRestricted, double txPowerMaxSiso = 0, double txPowerMaxMimo = 0);
1021  double GetTxPowerForTransmission (Ptr<const WifiPpdu> ppdu) const;
1029  void NotifyChannelAccessRequested (void);
1030 
1031 
1042  virtual WifiSpectrumBand ConvertHeRuSubcarriers (uint16_t bandWidth, uint16_t guardBandwidth,
1043  HeRu::SubcarrierRange range, uint8_t bandIndex = 0) const;
1044 
1054  static void AddStaticPhyEntity (WifiModulationClass modulation, Ptr<PhyEntity> phyEntity);
1055 
1065 
1073  Ptr<PhyEntity> GetPhyEntity (WifiModulationClass modulation) const;
1074 
1078  uint64_t GetPreviouslyRxPpduUid (void) const;
1079 
1093  virtual uint16_t GetGuardBandwidth (uint16_t currentChannelWidth) const = 0;
1102  virtual std::tuple<double, double, double> GetTxMaskRejectionParams (void) const = 0;
1103 
1104 protected:
1105  virtual void DoDispose (void);
1106 
1110  void Reset (void);
1111 
1121  Time DoChannelSwitch (void);
1122 
1131  void SwitchMaybeToCcaBusy (uint16_t channelWidth);
1132 
1141  uint16_t GetMeasurementChannelWidth (const Ptr<const WifiPpdu> ppdu) const;
1142 
1151  virtual WifiSpectrumBand GetBand (uint16_t bandWidth, uint8_t bandIndex = 0);
1152 
1164  WifiSpectrumBand GetPrimaryBand (uint16_t bandWidth);
1165 
1176  void AddPhyEntity (WifiModulationClass modulation, Ptr<PhyEntity> phyEntity);
1177 
1181 
1184 
1187 
1189  std::map <std::pair<uint64_t /* UID*/, WifiPreamble>, Ptr<Event> > m_currentPreambleEvents;
1190 
1192 
1210  std::map<WifiModulationClass, Ptr<PhyEntity> > m_phyEntities;
1211 
1212 
1213 private:
1218  void Configure80211a (void);
1223  void Configure80211b (void);
1228  void Configure80211g (void);
1233  void Configure80211p (void);
1238  void Configure80211n (void);
1243  void Configure80211ac (void);
1248  void Configure80211ax (void);
1259  void PushMcs (WifiMode mode);
1263  void RebuildMcsMap (void);
1264 
1271 
1279 
1294 
1302 
1310 
1318 
1334 
1342 
1349 
1362  TracedCallback<Ptr<const Packet>, uint16_t /* frequency (MHz) */, WifiTxVector, MpduInfo, SignalNoiseDbm, uint16_t /* STA-ID*/> m_phyMonitorSniffRxTrace;
1363 
1376  TracedCallback<Ptr<const Packet>, uint16_t /* frequency (MHz) */, WifiTxVector, MpduInfo, uint16_t /* STA-ID*/> m_phyMonitorSniffTxTrace;
1377 
1384  static std::map<WifiModulationClass, Ptr<PhyEntity> > m_staticPhyEntities;
1385 
1392 
1394  std::vector<uint16_t> m_supportedChannelWidthSet;
1395 
1401 
1404  double m_txGainDb;
1405  double m_rxGainDb;
1408  uint8_t m_nTxPower;
1410 
1415 
1420 
1422 
1425 
1431 
1433 };
1434 
1440 std::ostream& operator<< (std::ostream& os, RxSignalInfo rxSignalInfo);
1441 
1442 } //namespace ns3
1443 
1444 #endif /* WIFI_PHY_H */
ns3::WifiPhy::m_ackTxTime
Time m_ackTxTime
estimated Ack TX time
Definition: wifi-phy.h:1399
ns3::WifiPhy::GetMaxPsduSize
static uint32_t GetMaxPsduSize(WifiModulationClass modulation)
Get the maximum PSDU size in bytes for the given modulation class.
Definition: wifi-phy.cc:1631
ns3::WifiPhy::PsduTxBeginCallback
void(* PsduTxBeginCallback)(WifiConstPsduMap psduMap, WifiTxVector txVector, double txPowerW)
TracedCallback signature for PSDU transmit events.
Definition: wifi-phy.h:696
ns3::TypeId
a unique identifier for an interface.
Definition: type-id.h:59
ns3::WifiPhy::PhyTxBeginTracedCallback
void(* PhyTxBeginTracedCallback)(Ptr< const Packet > packet, double txPowerW)
TracedCallback signature for Phy transmit events.
Definition: wifi-phy.h:687
ns3::WifiPhy::m_random
Ptr< UniformRandomVariable > m_random
Provides uniform random variables.
Definition: wifi-phy.h:1179
ns3::WifiPhy::Configure80211ac
void Configure80211ac(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11ac standard.
Definition: wifi-phy.cc:1046
ns3::WifiPhy::m_phyTxDropTrace
TracedCallback< Ptr< const Packet > > m_phyTxDropTrace
The trace source fired when the PHY layer drops a packet as it tries to transmit it.
Definition: wifi-phy.h:1309
ns3::WifiPhy::m_txSpatialStreams
uint8_t m_txSpatialStreams
Number of supported TX spatial streams.
Definition: wifi-phy.h:1418
ns3::WifiPhy::WifiPhy
WifiPhy()
Definition: wifi-phy.cc:560
ns3::WifiPhy::m_initialChannelNumber
uint8_t m_initialChannelNumber
Store channel number until initialization.
Definition: wifi-phy.h:1389
ns3::WifiPhy::m_postReceptionErrorModel
Ptr< ErrorModel > m_postReceptionErrorModel
Error model for receive packet events.
Definition: wifi-phy.h:1429
wifi-phy-operating-channel.h
ns3::WifiPhy::Configure80211n
void Configure80211n(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11n standard.
Definition: wifi-phy.cc:1027
ns3::WifiPhy::SetPrimary20Index
void SetPrimary20Index(uint8_t index)
Set the index of the primary 20 MHz channel (0 indicates the 20 MHz subchannel with the lowest center...
Definition: wifi-phy.cc:1239
ns3::WifiPhy::GetPreambleDetectionDuration
static Time GetPreambleDetectionDuration(void)
Definition: wifi-phy.cc:1574
ns3::WifiPhy::m_frameCaptureModel
Ptr< FrameCaptureModel > m_frameCaptureModel
Frame capture model.
Definition: wifi-phy.h:1426
ns3::WifiPhy::SetSifs
void SetSifs(Time sifs)
Set the Short Interframe Space (SIFS) for this PHY.
Definition: wifi-phy.cc:904
ns3::WifiPhy::m_phyTxPsduBeginTrace
TracedCallback< WifiConstPsduMap, WifiTxVector, double > m_phyTxPsduBeginTrace
The trace source fired when a PSDU map begins the transmission process on the medium.
Definition: wifi-phy.h:1293
ns3::WifiSpectrumBand
std::pair< uint32_t, uint32_t > WifiSpectrumBand
typedef for a pair of start and stop sub-band indexes
Definition: wifi-spectrum-value-helper.h:34
ns3::EventId
An identifier for simulation events.
Definition: event-id.h:54
ns3::WifiPhy::GetSlot
Time GetSlot(void) const
Return the slot duration for this PHY.
Definition: wifi-phy.cc:922
ns3::Callback< void, Ptr< WifiPsdu >, RxSignalInfo, WifiTxVector, std::vector< bool > >
ns3::WifiPhy::SetDevice
void SetDevice(const Ptr< NetDevice > device)
Sets the device this PHY is associated with.
Definition: wifi-phy.cc:777
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::WifiPhy::IsStateRx
bool IsStateRx(void) const
Definition: wifi-phy.cc:2118
ns3::WifiPhy::EndReceiveInterBss
void EndReceiveInterBss(void)
For HE receptions only, check and possibly modify the transmit power restriction state at the end of ...
Definition: wifi-phy.cc:1948
ns3::WifiPhy::m_wifiRadioEnergyModel
Ptr< WifiRadioEnergyModel > m_wifiRadioEnergyModel
Wifi radio energy model.
Definition: wifi-phy.h:1428
ns3::WifiPhy::CalculateTxDuration
static Time CalculateTxDuration(uint32_t size, const WifiTxVector &txVector, WifiPhyBand band, uint16_t staId=SU_STA_ID)
Definition: wifi-phy.cc:1610
ns3::WifiPhy::m_phyRxBeginTrace
TracedCallback< Ptr< const Packet >, RxPowerWattPerChannelBand > m_phyRxBeginTrace
The trace source fired when a packet begins the reception process from the medium.
Definition: wifi-phy.h:1317
ns3::WifiPhy::GetChannel
virtual Ptr< Channel > GetChannel(void) const =0
Return the Channel this WifiPhy is connected to.
ns3::WifiPhy::m_capabilitiesChangedCallback
Callback< void > m_capabilitiesChangedCallback
Callback when PHY capabilities changed.
Definition: wifi-phy.h:1432
ns3::WifiPhy::m_supportedChannelWidthSet
std::vector< uint16_t > m_supportedChannelWidthSet
Supported channel width set (MHz)
Definition: wifi-phy.h:1394
ns3::WifiPhy::m_txMpduReferenceNumber
uint32_t m_txMpduReferenceNumber
A-MPDU reference number to identify all transmitted subframes belonging to the same received A-MPDU.
Definition: wifi-phy.h:1182
ns3::WifiPhy::SetPifs
void SetPifs(Time pifs)
Set the PCF Interframe Space (PIFS) for this PHY.
Definition: wifi-phy.cc:928
ns3::WifiPhy::NotifyMonitorSniffRx
void NotifyMonitorSniffRx(Ptr< const WifiPsdu > psdu, uint16_t channelFreqMhz, WifiTxVector txVector, SignalNoiseDbm signalNoise, std::vector< bool > statusPerMpdu, uint16_t staId=SU_STA_ID)
Public method used to fire a MonitorSniffer trace for a wifi PSDU being received.
Definition: wifi-phy.cc:1715
ns3::WifiPhy::GetDelayUntilIdle
Time GetDelayUntilIdle(void)
Definition: wifi-phy.cc:2148
ns3::WifiPhyListener
receive notifications about PHY events.
Definition: wifi-phy-listener.h:33
ns3::WifiPhy::SetTxPowerStart
void SetTxPowerStart(double start)
Sets the minimum available transmission power level (dBm).
Definition: wifi-phy.cc:699
ns3::WifiPhy::AddPhyEntity
void AddPhyEntity(WifiModulationClass modulation, Ptr< PhyEntity > phyEntity)
Add the PHY entity to the map of supported PHY entities for the given modulation class for the WifiPh...
Definition: wifi-phy.cc:894
ns3::WifiPhy::GetPifs
Time GetPifs(void) const
Return the PCF Interframe Space (PIFS) for this PHY.
Definition: wifi-phy.cc:934
ns3::WifiPhy::GetTxMaskRejectionParams
virtual std::tuple< double, double, double > GetTxMaskRejectionParams(void) const =0
ns3::WifiPhy::GetLastRxStartTime
Time GetLastRxStartTime(void) const
Return the start time of the last received packet.
Definition: wifi-phy.cc:2154
ns3::WifiPhy::MonitorSnifferRxCallback
void(* MonitorSnifferRxCallback)(Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise, uint16_t staId)
TracedCallback signature for monitor mode receive events.
Definition: wifi-phy.h:637
ns3::WifiPhy::m_initialFrequency
uint16_t m_initialFrequency
Store frequency until initialization (MHz)
Definition: wifi-phy.h:1388
ns3::WifiPhy::m_txPowerEndDbm
double m_txPowerEndDbm
Maximum transmission power (dBm)
Definition: wifi-phy.h:1407
ns3::WifiPhy::GetTxGain
double GetTxGain(void) const
Return the transmission gain (dB).
Definition: wifi-phy.cc:745
ns3::WifiPhy::ResetReceive
void ResetReceive(Ptr< Event > event)
Reset PHY at the end of the packet under reception after it has failed the PHY header.
Definition: wifi-phy.cc:1958
ns3::WifiPhy::CalculatePhyPreambleAndHeaderDuration
static Time CalculatePhyPreambleAndHeaderDuration(const WifiTxVector &txVector)
Definition: wifi-phy.cc:1604
ns3::WifiPhy::GetChannelNumber
uint8_t GetChannelNumber(void) const
Return current channel number.
Definition: wifi-phy.cc:1199
ns3::WifiPhy::MonitorSnifferTxCallback
void(* MonitorSnifferTxCallback)(const Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, uint16_t staId)
TracedCallback signature for monitor mode transmit events.
Definition: wifi-phy.h:675
ns3::WifiPhy::GetFrequency
uint16_t GetFrequency(void) const
Definition: wifi-phy.cc:1168
ns3::WifiPhy::NotifyChannelAccessRequested
void NotifyChannelAccessRequested(void)
Notify the PHY that an access to the channel was requested.
Definition: wifi-phy.cc:1969
ns3::WifiPhy::SetTxPowerEnd
void SetTxPowerEnd(double end)
Sets the maximum available transmission power level (dBm).
Definition: wifi-phy.cc:712
ns3::WifiPhy::Configure80211g
void Configure80211g(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11g standard.
Definition: wifi-phy.cc:984
ns3::WifiPhy::m_sifs
Time m_sifs
Short Interframe Space (SIFS) duration.
Definition: wifi-phy.h:1396
ns3::WifiPhy::GetTxPowerStart
double GetTxPowerStart(void) const
Return the minimum available transmission power level (dBm).
Definition: wifi-phy.cc:706
ns3::WifiPhy::IsStateOff
bool IsStateOff(void) const
Definition: wifi-phy.cc:2142
ns3::WifiTxVector
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
Definition: wifi-tx-vector.h:71
ns3::WifiPhy::StartTx
virtual void StartTx(Ptr< WifiPpdu > ppdu)=0
ns3::WifiPhy::SetReceiveOkCallback
void SetReceiveOkCallback(RxOkCallback callback)
Definition: wifi-phy.cc:635
ns3::WifiConstPsduMap
std::unordered_map< uint16_t, Ptr< const WifiPsdu > > WifiConstPsduMap
Map of const PSDUs indexed by STA-ID.
Definition: he-frame-exchange-manager.h:43
ns3::WifiPhy::SetMaxSupportedTxSpatialStreams
void SetMaxSupportedTxSpatialStreams(uint8_t streams)
Definition: wifi-phy.cc:1378
ns3::WifiPhy::SetShortPhyPreambleSupported
void SetShortPhyPreambleSupported(bool preamble)
Enable or disable short PHY preamble.
Definition: wifi-phy.cc:764
ns3::WifiPhy::m_channelAccessRequested
bool m_channelAccessRequested
Flag if channels access has been requested (used for OBSS_PD SR)
Definition: wifi-phy.h:1414
ns3::WifiPhyStandard
WifiPhyStandard
Identifies the PHY specification that a Wifi device is configured to use.
Definition: wifi-standards.h:35
ns3::WifiPhy
802.11 PHY layer model
Definition: wifi-phy.h:49
ns3::WifiPhy::GetAckTxTime
Time GetAckTxTime(void) const
Return the estimated Ack TX time for this PHY.
Definition: wifi-phy.cc:940
ns3::WifiPhy::SetChannelWidth
virtual void SetChannelWidth(uint16_t channelWidth)
If the operating channel for this object has not been set yet, the given channel width is saved and w...
Definition: wifi-phy.cc:1205
ns3::WifiPhy::GetPowerDbm
double GetPowerDbm(uint8_t power) const
Get the power of the given power level in dBm.
Definition: wifi-phy.cc:840
ns3::WifiPhy::AddStaticPhyEntity
static void AddStaticPhyEntity(WifiModulationClass modulation, Ptr< PhyEntity > phyEntity)
Add the PHY entity to the map of implemented PHY entities for the given modulation class.
Definition: wifi-phy.cc:886
ns3::WifiPhy::GetPhyEntity
Ptr< PhyEntity > GetPhyEntity(WifiModulationClass modulation) const
Get the supported PHY entity corresponding to the modulation class, for the WifiPhy instance.
Definition: wifi-phy.cc:878
ns3::WifiPhy::m_rxGainDb
double m_rxGainDb
Reception gain (dB)
Definition: wifi-phy.h:1405
ns3::WifiPhy::m_operatingChannel
WifiPhyOperatingChannel m_operatingChannel
Operating channel.
Definition: wifi-phy.h:1393
ns3::WifiPhy::GetNMcs
uint16_t GetNMcs(void) const
Definition: wifi-phy.cc:2050
ns3::WifiPhy::GetPayloadDuration
static Time GetPayloadDuration(uint32_t size, const WifiTxVector &txVector, WifiPhyBand band, MpduType mpdutype=NORMAL_MPDU, uint16_t staId=SU_STA_ID)
Definition: wifi-phy.cc:1586
ns3::SignalNoiseDbm
SignalNoiseDbm structure.
Definition: phy-entity.h:53
ns3::WifiPhy::IsStateSwitching
bool IsStateSwitching(void) const
Definition: wifi-phy.cc:2130
ns3::WifiPhy::m_band
WifiPhyBand m_band
WifiPhyBand.
Definition: wifi-phy.h:1387
ns3::WifiPhy::GetBlockAckTxTime
Time GetBlockAckTxTime(void) const
Return the estimated BlockAck TX time for this PHY.
Definition: wifi-phy.cc:946
ns3::WifiPhy::m_txGainDb
double m_txGainDb
Transmission gain (dB)
Definition: wifi-phy.h:1404
ns3::WifiPhy::Configure80211p
void Configure80211p(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11p standard.
Definition: wifi-phy.cc:997
ns3::WifiPhy::m_channelSwitchDelay
Time m_channelSwitchDelay
Time required to switch between channel.
Definition: wifi-phy.h:1421
ns3::WifiPhy::AddSupportedChannelWidth
void AddSupportedChannelWidth(uint16_t width)
Definition: wifi-phy.cc:1442
ns3::WifiPhy::IsStateTx
bool IsStateTx(void) const
Definition: wifi-phy.cc:2124
ns3::WifiPhy::GetGuardBandwidth
virtual uint16_t GetGuardBandwidth(uint16_t currentChannelWidth) const =0
phy-entity.h
Declaration of:
ns3::WifiPhy::m_interference
InterferenceHelper m_interference
the class handling interference computations
Definition: wifi-phy.h:1178
ns3::WifiPhy::DoChannelSwitch
Time DoChannelSwitch(void)
Perform any actions necessary when user changes operating channel after initialization.
Definition: wifi-phy.cc:1299
wifi-standards.h
ns3::WifiPhy::GetState
Ptr< WifiPhyStateHelper > GetState(void) const
Return the WifiPhyStateHelper of this PHY.
Definition: wifi-phy.cc:629
ns3::WifiPhy::RegisterListener
void RegisterListener(WifiPhyListener *listener)
Definition: wifi-phy.cc:647
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:74
ns3::WifiPhy::m_phyTxBeginTrace
TracedCallback< Ptr< const Packet >, double > m_phyTxBeginTrace
The trace source fired when a packet begins the transmission process on the medium.
Definition: wifi-phy.h:1286
ns3::WifiPhy::GetMaxSupportedTxSpatialStreams
uint8_t GetMaxSupportedTxSpatialStreams(void) const
Definition: wifi-phy.cc:1403
ns3::WifiPhy::SetCapabilitiesChangedCallback
void SetCapabilitiesChangedCallback(Callback< void > callback)
Definition: wifi-phy.cc:659
ns3::WifiPhy::GetDefaultMode
WifiMode GetDefaultMode(void) const
Get the default WifiMode supported by the PHY.
Definition: wifi-phy.cc:1989
ns3::NORMAL_MPDU
@ NORMAL_MPDU
The MPDU is not part of an A-MPDU.
Definition: wifi-mpdu-type.h:33
visualizer.core.start
def start()
Definition: core.py:1855
ns3::WifiPhy::GetStartOfPacketDuration
static Time GetStartOfPacketDuration(const WifiTxVector &txVector)
Definition: wifi-phy.cc:1580
ns3::WifiPhy::SetRxSensitivity
void SetRxSensitivity(double threshold)
Sets the receive sensitivity threshold (dBm).
Definition: wifi-phy.cc:665
ns3::WifiPhyOperatingChannel
Class that keeps track of all information about the current PHY operating channel.
Definition: wifi-phy-operating-channel.h:44
ns3::WifiPhy::m_powerDensityLimit
double m_powerDensityLimit
the power density limit (dBm/MHz)
Definition: wifi-phy.h:1409
ns3::WifiPhy::SetRxGain
void SetRxGain(double gain)
Sets the reception gain (dB).
Definition: wifi-phy.cc:751
ns3::WifiPhy::PhyRxPayloadBeginTracedCallback
void(* PhyRxPayloadBeginTracedCallback)(WifiTxVector txVector, Time psduDuration)
TracedCallback signature for start of PSDU reception events.
Definition: wifi-phy.h:712
ns3::WifiPhy::m_phyTxEndTrace
TracedCallback< Ptr< const Packet > > m_phyTxEndTrace
The trace source fired when a packet ends the transmission process on the medium.
Definition: wifi-phy.h:1301
ns3::WifiPhyRxfailureReason
WifiPhyRxfailureReason
Enumeration of the possible reception failure reasons.
Definition: wifi-phy-common.h:258
ns3::WifiPhy::GetNTxPower
uint8_t GetNTxPower(void) const
Return the number of available transmission power levels.
Definition: wifi-phy.cc:732
ns3::MpduInfo
MpduInfo structure.
Definition: phy-entity.h:60
ns3::WifiPhy::m_timeLastPreambleDetected
Time m_timeLastPreambleDetected
Record the time the last preamble was detected.
Definition: wifi-phy.h:1430
ns3::WifiPhy::m_state
Ptr< WifiPhyStateHelper > m_state
Pointer to WifiPhyStateHelper.
Definition: wifi-phy.h:1180
ns3::WifiPhy::UnregisterListener
void UnregisterListener(WifiPhyListener *listener)
Definition: wifi-phy.cc:653
ns3::WifiMode
represent a single transmission mode
Definition: wifi-mode.h:48
ns3::WifiPhy::m_staticPhyEntities
static std::map< WifiModulationClass, Ptr< PhyEntity > > m_staticPhyEntities
Map of implemented PHY entities.
Definition: wifi-phy.h:1384
ns3::WifiPhy::m_slot
Time m_slot
Slot duration.
Definition: wifi-phy.h:1397
ns3::WifiPhy::ConvertHeRuSubcarriers
virtual WifiSpectrumBand ConvertHeRuSubcarriers(uint16_t bandWidth, uint16_t guardBandwidth, HeRu::SubcarrierRange range, uint8_t bandIndex=0) const
Definition: wifi-phy.cc:1939
ns3::WifiPhy::GetTxPowerForTransmission
double GetTxPowerForTransmission(Ptr< const WifiPpdu > ppdu) const
Compute the transmit power for the next transmission.
Definition: wifi-phy.cc:2237
ns3::WifiPhy::SetReceiveErrorCallback
void SetReceiveErrorCallback(RxErrorCallback callback)
Definition: wifi-phy.cc:641
ns3::WifiPhy::GetShortPhyPreambleSupported
bool GetShortPhyPreambleSupported(void) const
Return whether short PHY preamble is supported.
Definition: wifi-phy.cc:771
ns3::WifiPhy::GetPhyStandard
WifiPhyStandard GetPhyStandard(void) const
Get the configured Wi-Fi standard.
Definition: wifi-phy.cc:1131
ns3::WifiPhy::NotifyRxDrop
void NotifyRxDrop(Ptr< const WifiPsdu > psdu, WifiPhyRxfailureReason reason)
Public method used to fire a PhyRxDrop trace.
Definition: wifi-phy.cc:1703
ns3::Object
A base class which provides memory management and object aggregation.
Definition: object.h:88
ns3::WifiPhy::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: wifi-phy.cc:297
ns3::WifiPhy::Configure80211a
void Configure80211a(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11a standard.
Definition: wifi-phy.cc:952
ns3::WifiPhy::SetNTxPower
void SetNTxPower(uint8_t n)
Sets the number of transmission power levels available between the minimum level and the maximum leve...
Definition: wifi-phy.cc:725
ns3::WifiPhy::GetLastRxEndTime
Time GetLastRxEndTime(void) const
Return the end time of the last received packet.
Definition: wifi-phy.cc:2160
ns3::WifiPhy::m_phyMonitorSniffRxTrace
TracedCallback< Ptr< const Packet >, uint16_t, WifiTxVector, MpduInfo, SignalNoiseDbm, uint16_t > m_phyMonitorSniffRxTrace
A trace source that emulates a Wi-Fi device in monitor mode sniffing a packet being received.
Definition: wifi-phy.h:1362
ns3::WifiPhy::GetPreviouslyRxPpduUid
uint64_t GetPreviouslyRxPpduUid(void) const
Definition: wifi-phy.cc:1900
ns3::WifiPhy::ResumeFromOff
void ResumeFromOff(void)
Resume from off mode.
Definition: wifi-phy.cc:1543
ns3::WifiPhy::m_rxSpatialStreams
uint8_t m_rxSpatialStreams
Number of supported RX spatial streams.
Definition: wifi-phy.h:1419
ns3::WifiPhy::GetCcaEdThreshold
double GetCcaEdThreshold(void) const
Return the CCA threshold (dBm).
Definition: wifi-phy.cc:685
ns3::WifiPhy::Configure80211b
void Configure80211b(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11b standard.
Definition: wifi-phy.cc:967
ns3::WifiPhy::SetNumberOfAntennas
void SetNumberOfAntennas(uint8_t antennas)
Definition: wifi-phy.cc:1364
SU_STA_ID
#define SU_STA_ID
Definition: wifi-mode.h:32
ns3::WifiPhy::GetPhyBand
WifiPhyBand GetPhyBand(void) const
Get the configured Wi-Fi band.
Definition: wifi-phy.cc:1124
ns3::WifiPhy::SetFrequency
virtual void SetFrequency(uint16_t freq)
If the operating channel for this object has not been set yet, the given center frequency is saved an...
Definition: wifi-phy.cc:1143
ns3::WifiPhy::AbortCurrentReception
void AbortCurrentReception(WifiPhyRxfailureReason reason)
Due to newly arrived signal, the current reception cannot be continued and has to be aborted.
Definition: wifi-phy.cc:2182
ns3::WifiPhy::SetMaxSupportedRxSpatialStreams
void SetMaxSupportedRxSpatialStreams(uint8_t streams)
Definition: wifi-phy.cc:1409
ns3::WifiPhy::Reset
void Reset(void)
Reset data upon end of TX or RX.
Definition: wifi-phy.cc:1906
ns3::WifiPhy::GetOperatingChannel
const WifiPhyOperatingChannel & GetOperatingChannel(void) const
Get a const reference to the operating channel.
Definition: wifi-phy.cc:1137
ns3::Time
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:104
ns3::WifiPhy::ResumeFromSleep
void ResumeFromSleep(void)
Resume from sleep mode.
Definition: wifi-phy.cc:1512
ns3::WifiPhy::PushMcs
void PushMcs(WifiMode mode)
Add the given MCS to the device MCS set.
ns3::WifiPhy::m_initialChannelWidth
uint16_t m_initialChannelWidth
Store channel width (MHz) until initialization.
Definition: wifi-phy.h:1390
ns3::WifiPhy::m_phyRxDropTrace
TracedCallback< Ptr< const Packet >, WifiPhyRxfailureReason > m_phyRxDropTrace
The trace source fired when the PHY layer drops a packet it has received.
Definition: wifi-phy.h:1348
ns3::WifiPhy::m_phyEntities
std::map< WifiModulationClass, Ptr< PhyEntity > > m_phyEntities
This map holds the supported PHY entities.
Definition: wifi-phy.h:1210
ns3::WifiPhy::m_phyMonitorSniffTxTrace
TracedCallback< Ptr< const Packet >, uint16_t, WifiTxVector, MpduInfo, uint16_t > m_phyMonitorSniffTxTrace
A trace source that emulates a Wi-Fi device in monitor mode sniffing a packet being transmitted.
Definition: wifi-phy.h:1376
ns3::WifiPhy::SetMobility
void SetMobility(const Ptr< MobilityModel > mobility)
assign a mobility model to this device
Definition: wifi-phy.cc:789
ns3::WifiPhy::m_phyRxEndTrace
TracedCallback< Ptr< const Packet > > m_phyRxEndTrace
The trace source fired when a packet ends the reception process from the medium.
Definition: wifi-phy.h:1341
ns3::WifiPhy::SetSlot
void SetSlot(Time slot)
Set the slot duration for this PHY.
Definition: wifi-phy.cc:916
ns3::WifiPhy::GetDevice
Ptr< NetDevice > GetDevice(void) const
Return the device this PHY is associated with.
Definition: wifi-phy.cc:783
ns3::WifiPhy::NotifyMonitorSniffTx
void NotifyMonitorSniffTx(Ptr< const WifiPsdu > psdu, uint16_t channelFreqMhz, WifiTxVector txVector, uint16_t staId=SU_STA_ID)
Public method used to fire a MonitorSniffer trace for a wifi PSDU being transmitted.
Definition: wifi-phy.cc:1752
ns3::WifiPhy::m_mobility
Ptr< MobilityModel > m_mobility
Pointer to the mobility model.
Definition: wifi-phy.h:1424
ns3::WifiPreamble
WifiPreamble
The type of preamble to be used by an IEEE 802.11 transmission.
Definition: wifi-phy-common.h:63
ns3::WifiPhy::SetRxNoiseFigure
void SetRxNoiseFigure(double noiseFigureDb)
Sets the RX loss (dB) in the Signal-to-Noise-Ratio due to non-idealities in the receiver.
Definition: wifi-phy.cc:691
ns3::WifiPhy::SetOffMode
void SetOffMode(void)
Put in off mode.
Definition: wifi-phy.cc:1497
ns3::WifiPhy::IsMcsSupported
bool IsMcsSupported(WifiModulationClass modulation, uint8_t mcs) const
Check if the given MCS of the given modulation class is supported by the PHY.
Definition: wifi-phy.cc:2004
ns3::WifiPhy::StartReceivePreamble
void StartReceivePreamble(Ptr< WifiPpdu > ppdu, RxPowerWattPerChannelBand &rxPowersW, Time rxDuration)
Start receiving the PHY preamble of a PPDU (i.e.
Definition: wifi-phy.cc:1918
ns3::WifiPhy::GetBand
virtual WifiSpectrumBand GetBand(uint16_t bandWidth, uint8_t bandIndex=0)
Get the start band index and the stop band index for a given band.
Definition: wifi-phy.cc:2289
ns3::WifiPhy::NotifyRxBegin
void NotifyRxBegin(Ptr< const WifiPsdu > psdu, const RxPowerWattPerChannelBand &rxPowersW)
Public method used to fire a PhyRxBegin trace.
Definition: wifi-phy.cc:1679
ns3::WifiPhy::IsStateSleep
bool IsStateSleep(void) const
Definition: wifi-phy.cc:2136
ns3::WifiPhy::GetMcs
WifiMode GetMcs(WifiModulationClass modulation, uint8_t mcs) const
Get the WifiMode object corresponding to the given MCS of the given modulation class.
Definition: wifi-phy.cc:2099
ns3::WifiPhy::IsStateCcaBusy
bool IsStateCcaBusy(void) const
Definition: wifi-phy.cc:2106
ns3::WifiPhy::SetFrameCaptureModel
void SetFrameCaptureModel(const Ptr< FrameCaptureModel > frameCaptureModel)
Sets the frame capture model.
Definition: wifi-phy.cc:822
ns3::WifiPhy::m_device
Ptr< NetDevice > m_device
Pointer to the device.
Definition: wifi-phy.h:1423
ns3::WifiPhy::m_currentEvent
Ptr< Event > m_currentEvent
Hold the current event.
Definition: wifi-phy.h:1188
ns3::WifiPhy::IsModeSupported
bool IsModeSupported(WifiMode mode) const
Check if the given WifiMode is supported by the PHY.
Definition: wifi-phy.cc:1976
ns3::WifiPhy::SwitchMaybeToCcaBusy
void SwitchMaybeToCcaBusy(uint16_t channelWidth)
Check if PHY state should move to CCA busy state based on current state of interference tracker.
Definition: wifi-phy.cc:2166
ns3::WifiPhy::Configure80211ax
void Configure80211ax(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11ax standard.
Definition: wifi-phy.cc:1054
ns3::WifiPhy::AssignStreams
virtual int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model.
Definition: wifi-phy.cc:2309
ns3::WifiPhy::GetWifiConstPsduMap
static WifiConstPsduMap GetWifiConstPsduMap(Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector)
Get a WifiConstPsduMap from a PSDU and the TXVECTOR to use to send the PSDU.
Definition: wifi-phy.cc:1783
ns3::WifiPhy::m_txPowerMaxSiso
double m_txPowerMaxSiso
SISO maximum transmit power due to OBSS PD SR power restriction (dBm)
Definition: wifi-phy.h:1412
ns3::WifiPhy::SetTxGain
void SetTxGain(double gain)
Sets the transmission gain (dB).
Definition: wifi-phy.cc:738
ns3::WifiPhy::GetMeasurementChannelWidth
uint16_t GetMeasurementChannelWidth(const Ptr< const WifiPpdu > ppdu) const
Return the channel width used to measure the RSSI.
Definition: wifi-phy.cc:2277
ns3::WifiPhy::GetRxGain
double GetRxGain(void) const
Return the reception gain (dB).
Definition: wifi-phy.cc:758
ns3::WifiPhy::GetPrimaryBand
WifiSpectrumBand GetPrimaryBand(uint16_t bandWidth)
If the operating channel width is a multiple of 20 MHz, return the start band index and the stop band...
Definition: wifi-phy.cc:2298
ns3::RxSignalInfo
RxSignalInfo structure containing info on the received signal.
Definition: phy-entity.h:67
ns3::WifiPhy::SetCcaEdThreshold
void SetCcaEdThreshold(double threshold)
Sets the CCA threshold (dBm).
Definition: wifi-phy.cc:678
ns3::WifiPhy::GetRxSensitivity
double GetRxSensitivity(void) const
Return the receive sensitivity threshold (dBm).
Definition: wifi-phy.cc:672
ns3::WifiPhy::GetMobility
Ptr< MobilityModel > GetMobility(void) const
Return the mobility model this PHY is associated with.
Definition: wifi-phy.cc:795
ns3::WifiPhy::ConfigureStandardAndBand
virtual void ConfigureStandardAndBand(WifiPhyStandard standard, WifiPhyBand band)
Configure the PHY-level parameters for different Wi-Fi standard.
Definition: wifi-phy.cc:1069
ns3::WifiPhy::GetNumberOfAntennas
uint8_t GetNumberOfAntennas(void) const
Definition: wifi-phy.cc:1372
ns3::WifiPhy::~WifiPhy
virtual ~WifiPhy()
Definition: wifi-phy.cc:590
ns3::WifiPhy::NotifyTxEnd
void NotifyTxEnd(WifiConstPsduMap psdus)
Public method used to fire a PhyTxEnd trace.
Definition: wifi-phy.cc:1652
ns3::WifiPhy::m_numberOfAntennas
uint8_t m_numberOfAntennas
Number of transmitters.
Definition: wifi-phy.h:1417
ns3::WifiPhy::DoDispose
virtual void DoDispose(void)
Destructor implementation.
Definition: wifi-phy.cc:596
ns3::WifiPhy::m_powerRestricted
bool m_powerRestricted
Flag whether transmit power is restricted by OBSS PD SR.
Definition: wifi-phy.h:1411
ns3::WifiPhy::m_pifs
Time m_pifs
PCF Interframe Space (PIFS) duration.
Definition: wifi-phy.h:1398
ns3::WifiPhy::GetChannelWidth
uint16_t GetChannelWidth(void) const
Definition: wifi-phy.cc:1233
ns3::WifiPhy::GetChannelSwitchDelay
Time GetChannelSwitchDelay(void) const
Definition: wifi-phy.cc:858
ns3::WifiPhy::GetMaxSupportedRxSpatialStreams
uint8_t GetMaxSupportedRxSpatialStreams(void) const
Definition: wifi-phy.cc:1421
ns3::WifiPhy::m_currentPreambleEvents
std::map< std::pair< uint64_t, WifiPreamble >, Ptr< Event > > m_currentPreambleEvents
store event associated to a PPDU (that has a unique ID and preamble combination) whose preamble is be...
Definition: wifi-phy.h:1189
wifi-phy-state-helper.h
ns3::WifiPhy::GetModeList
std::list< WifiMode > GetModeList(void) const
The WifiPhy::GetModeList() method is used (e.g., by a WifiRemoteStationManager) to determine the set ...
Definition: wifi-phy.cc:2015
ns3::WifiPhy::m_initialPrimary20Index
uint8_t m_initialPrimary20Index
Store the index of primary20 until initialization.
Definition: wifi-phy.h:1391
ns3::WifiPhy::m_shortPreamble
bool m_shortPreamble
Flag if short PHY preamble is supported.
Definition: wifi-phy.h:1416
ns3::RxPowerWattPerChannelBand
std::map< WifiSpectrumBand, double > RxPowerWattPerChannelBand
A map of the received power (Watts) for each band.
Definition: phy-entity.h:75
ns3::WifiPhy::m_rxMpduReferenceNumber
uint32_t m_rxMpduReferenceNumber
A-MPDU reference number to identify all received subframes belonging to the same received A-MPDU.
Definition: wifi-phy.h:1183
ns3::WifiPhy::GetBssMembershipSelectorList
std::list< uint8_t > GetBssMembershipSelectorList(void) const
The WifiPhy::BssMembershipSelector() method is used (e.g., by a WifiRemoteStationManager) to determin...
Definition: wifi-phy.cc:1427
ns3::WifiPhy::GetAddressedPsduInPpdu
Ptr< const WifiPsdu > GetAddressedPsduInPpdu(Ptr< const WifiPpdu > ppdu) const
Get the PSDU addressed to that PHY in a PPDU (useful for MU PPDU).
Definition: wifi-phy.cc:2270
ns3::WifiPhy::m_standard
WifiPhyStandard m_standard
WifiPhyStandard.
Definition: wifi-phy.h:1386
ns3::WifiPhy::m_phyRxPayloadBeginTrace
TracedCallback< WifiTxVector, Time > m_phyRxPayloadBeginTrace
The trace source fired when the reception of the PHY payload (PSDU) begins.
Definition: wifi-phy.h:1333
ns3::WifiPhy::NotifyTxBegin
void NotifyTxBegin(WifiConstPsduMap psdus, double txPowerW)
Public method used to fire a PhyTxBegin trace.
Definition: wifi-phy.cc:1637
ns3::WifiPhy::CalculateSnr
double CalculateSnr(const WifiTxVector &txVector, double ber) const
Definition: wifi-phy.cc:864
ns3::TracedCallback
Forward calls to a chain of Callback.
Definition: traced-callback.h:53
ns3::WifiPhy::m_txPowerMaxMimo
double m_txPowerMaxMimo
MIMO maximum transmit power due to OBSS PD SR power restriction (dBm)
Definition: wifi-phy.h:1413
interference-helper.h
ns3::WifiPhyBand
WifiPhyBand
Identifies the PHY band.
Definition: wifi-phy-band.h:33
ns3::HeRu::SubcarrierRange
std::pair< int16_t, int16_t > SubcarrierRange
(lowest index, highest index) pair defining a subcarrier range
Definition: he-ru.h:53
ns3::WifiPhy::m_endPhyRxEvent
EventId m_endPhyRxEvent
the end of PHY receive event
Definition: wifi-phy.h:1185
ns3::WifiPhy::NotifyRxEnd
void NotifyRxEnd(Ptr< const WifiPsdu > psdu)
Public method used to fire a PhyRxEnd trace.
Definition: wifi-phy.cc:1691
ns3::WifiPhy::NotifyTxDrop
void NotifyTxDrop(Ptr< const WifiPsdu > psdu)
Public method used to fire a PhyTxDrop trace.
Definition: wifi-phy.cc:1667
ns3::WifiPhy::SetChannelNumber
virtual void SetChannelNumber(uint8_t id)
Set channel number.
Definition: wifi-phy.cc:1174
ns3::WifiPhy::m_endTxEvent
EventId m_endTxEvent
the end of transmit event
Definition: wifi-phy.h:1186
ns3::operator<<
std::ostream & operator<<(std::ostream &os, const Angles &a)
Definition: angles.cc:137
ns3::WifiPhy::PhyRxBeginTracedCallback
void(* PhyRxBeginTracedCallback)(Ptr< const Packet > packet, RxPowerWattPerChannelBand rxPowersW)
TracedCallback signature for PhyRxBegin trace source.
Definition: wifi-phy.h:704
ns3::PhyEntity
Abstract class for PHY entities.
Definition: phy-entity.h:94
ns3::WifiPhy::m_rxSensitivityW
double m_rxSensitivityW
Receive sensitivity threshold in watts.
Definition: wifi-phy.h:1402
ns3::WifiPhy::m_preambleDetectionModel
Ptr< PreambleDetectionModel > m_preambleDetectionModel
Preamble detection model.
Definition: wifi-phy.h:1427
ns3::WifiPhy::m_txPowerBaseDbm
double m_txPowerBaseDbm
Minimum transmission power (dBm)
Definition: wifi-phy.h:1406
ns3::WifiPhy::GetSupportedChannelWidthSet
std::vector< uint16_t > GetSupportedChannelWidthSet(void) const
Definition: wifi-phy.cc:1457
ns3::WifiPhy::GetMcsList
std::list< WifiMode > GetMcsList(void) const
The WifiPhy::GetMcsList() method is used (e.g., by a WifiRemoteStationManager) to determine the set o...
Definition: wifi-phy.cc:2064
ns3::WifiPhy::RebuildMcsMap
void RebuildMcsMap(void)
Rebuild the mapping of MCS values to indices in the device MCS set.
ns3::WifiPhy::SetPostReceptionErrorModel
void SetPostReceptionErrorModel(const Ptr< ErrorModel > em)
Attach a receive ErrorModel to the WifiPhy.
Definition: wifi-phy.cc:815
ns3::WifiPhy::GetSifs
Time GetSifs(void) const
Return the Short Interframe Space (SIFS) for this PHY.
Definition: wifi-phy.cc:910
ns3::WifiPhy::m_ccaEdThresholdW
double m_ccaEdThresholdW
Clear channel assessment (CCA) threshold in watts.
Definition: wifi-phy.h:1403
ns3::WifiPhy::SetOperatingChannel
void SetOperatingChannel(uint8_t number, uint16_t frequency, uint16_t width)
Set the operating channel according to the specified parameters.
Definition: wifi-phy.cc:1256
ns3::WifiPhy::GetStaticPhyEntity
static const Ptr< const PhyEntity > GetStaticPhyEntity(WifiModulationClass modulation)
Get the implemented PHY entity corresponding to the modulation class.
Definition: wifi-phy.cc:870
ns3::WifiPhy::SetErrorRateModel
void SetErrorRateModel(const Ptr< ErrorRateModel > rate)
Sets the error rate model.
Definition: wifi-phy.cc:808
ns3::WifiPhy::IsStateIdle
bool IsStateIdle(void) const
Definition: wifi-phy.cc:2112
ns3::WifiPhy::m_frequencyChannels
static const std::set< FrequencyChannelInfo > m_frequencyChannels
Available frequency channels.
Definition: wifi-phy.h:61
ns3::WifiPhy::Send
void Send(Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector)
This function is a wrapper for the Send variant that accepts a WifiConstPsduMap as first argument.
Definition: wifi-phy.cc:1789
sample-rng-plot.n
n
Definition: sample-rng-plot.py:37
ns3::WifiPhy::SetWifiRadioEnergyModel
void SetWifiRadioEnergyModel(const Ptr< WifiRadioEnergyModel > wifiRadioEnergyModel)
Sets the wifi radio energy model.
Definition: wifi-phy.cc:834
third.mobility
mobility
Definition: third.py:108
ns3::InterferenceHelper
handles interference calculations
Definition: interference-helper.h:133
ns3::WifiModulationClass
WifiModulationClass
This enumeration defines the modulation classes per (Table 10-6 "Modulation classes"; IEEE 802....
Definition: wifi-phy-common.h:117
ns3::WifiPhy::SetPreambleDetectionModel
void SetPreambleDetectionModel(const Ptr< PreambleDetectionModel > preambleDetectionModel)
Sets the preamble detection model.
Definition: wifi-phy.cc:828
ns3::WifiPhy::m_previouslyRxPpduUid
uint64_t m_previouslyRxPpduUid
UID of the previously received PPDU, reset to UINT64_MAX upon transmission.
Definition: wifi-phy.h:1191
ns3::WifiPhy::GetTxPowerEnd
double GetTxPowerEnd(void) const
Return the maximum available transmission power level (dBm).
Definition: wifi-phy.cc:719
ns3::WifiPhy::ResetCca
void ResetCca(bool powerRestricted, double txPowerMaxSiso=0, double txPowerMaxMimo=0)
Reset PHY to IDLE, with some potential TX power restrictions for the next transmission.
Definition: wifi-phy.cc:2218
ns3::MpduType
MpduType
The type of an MPDU.
Definition: wifi-mpdu-type.h:31
ns3::WifiPhy::m_nTxPower
uint8_t m_nTxPower
Number of available transmission power levels.
Definition: wifi-phy.h:1408
ns3::WifiPhy::ConfigureHtDeviceMcsSet
void ConfigureHtDeviceMcsSet(void)
Configure the device MCS set with the appropriate HtMcs modes for the number of available transmit sp...
ns3::WifiPhy::SetSleepMode
void SetSleepMode(void)
Put in sleep mode.
Definition: wifi-phy.cc:1463
ns3::WifiPhy::m_blockAckTxTime
Time m_blockAckTxTime
estimated BlockAck TX time
Definition: wifi-phy.h:1400