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/event-id.h"
26 #include "wifi-mpdu-type.h"
27 #include "wifi-phy-standard.h"
28 #include "interference-helper.h"
29 #include "wifi-phy-state-helper.h"
30 
31 namespace ns3 {
32 
33 #define HE_PHY 125
34 #define VHT_PHY 126
35 #define HT_PHY 127
36 
37 class Channel;
38 class NetDevice;
39 class MobilityModel;
40 class WifiPhyStateHelper;
41 class FrameCaptureModel;
42 class WifiRadioEnergyModel;
43 class UniformRandomVariable;
44 
47 {
48  double signal;
49  double noise;
50 };
51 
53 struct MpduInfo
54 {
56  uint32_t mpduRefNumber;
57 };
58 
64 class WifiPhy : public Object
65 {
66 public:
71  static TypeId GetTypeId (void);
72 
73  WifiPhy ();
74  virtual ~WifiPhy ();
75 
80  void SetReceiveOkCallback (RxOkCallback callback);
86 
93  void RegisterListener (WifiPhyListener *listener);
100  void UnregisterListener (WifiPhyListener *listener);
101 
106 
115  double rxPowerW,
116  Time rxDuration);
117 
126  void StartReceivePacket (Ptr<Packet> packet,
127  WifiTxVector txVector,
128  MpduType mpdutype,
129  Ptr<Event> event);
130 
139  void EndReceive (Ptr<Packet> packet, WifiPreamble preamble, MpduType mpdutype, Ptr<Event> event);
140 
148  void SendPacket (Ptr<const Packet> packet, WifiTxVector txVector, MpduType mpdutype = NORMAL_MPDU);
149 
157  virtual void StartTx (Ptr<Packet> packet, WifiTxVector txVector, Time txDuration) = 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;
219 
227  Time CalculateTxDuration (uint32_t size, WifiTxVector txVector, uint16_t frequency);
237  Time CalculateTxDuration (uint32_t size, WifiTxVector txVector, uint16_t frequency, MpduType mpdutype, uint8_t incFlag);
238 
245 
256  static WifiMode GetHtPlcpHeaderMode ();
260  static WifiMode GetVhtPlcpHeaderMode ();
264  static WifiMode GetHePlcpHeaderMode ();
270  static Time GetPlcpHtSigHeaderDuration (WifiPreamble preamble);
276  static Time GetPlcpSigA1Duration (WifiPreamble preamble);
282  static Time GetPlcpSigA2Duration (WifiPreamble preamble);
288  static Time GetPlcpSigBDuration (WifiPreamble preamble);
294  static WifiMode GetPlcpHeaderMode (WifiTxVector txVector);
300  static Time GetPlcpHeaderDuration (WifiTxVector txVector);
306  static Time GetPlcpPreambleDuration (WifiTxVector txVector);
314  Time GetPayloadDuration (uint32_t size, WifiTxVector txVector, uint16_t frequency);
324  Time GetPayloadDuration (uint32_t size, WifiTxVector txVector, uint16_t frequency, MpduType mpdutype, uint8_t incFlag);
325 
343  uint8_t GetNModes (void) const;
363  WifiMode GetMode (uint8_t mode) const;
372  bool IsModeSupported (WifiMode mode) const;
381  bool IsMcsSupported (WifiMode mcs) const;
382 
390  double CalculateSnr (WifiTxVector txVector, double ber) const;
391 
401  uint8_t GetNBssMembershipSelectors (void) const;
413  uint8_t GetBssMembershipSelector (uint8_t selector) const;
423  uint8_t GetNMcs (void) const;
435  WifiMode GetMcs (uint8_t mcs) const;
436 
449  virtual void SetChannelNumber (uint8_t id);
455  uint8_t GetChannelNumber (void) const;
459  Time GetChannelSwitchDelay (void) const;
460 
466  virtual void ConfigureStandard (WifiPhyStandard standard);
467 
473  WifiPhyStandard GetStandard (void) const;
474 
490  bool DefineChannelNumber (uint8_t channelNumber, WifiPhyStandard standard, uint16_t frequency, uint16_t channelWidth);
491 
495  typedef std::pair<uint8_t, WifiPhyStandard> ChannelNumberStandardPair;
499  typedef std::pair<uint16_t, uint16_t> FrequencyWidthPair;
500 
506  virtual Ptr<Channel> GetChannel (void) const = 0;
507 
513  static WifiMode GetDsssRate1Mbps ();
519  static WifiMode GetDsssRate2Mbps ();
525  static WifiMode GetDsssRate5_5Mbps ();
531  static WifiMode GetDsssRate11Mbps ();
537  static WifiMode GetErpOfdmRate6Mbps ();
543  static WifiMode GetErpOfdmRate9Mbps ();
549  static WifiMode GetErpOfdmRate12Mbps ();
555  static WifiMode GetErpOfdmRate18Mbps ();
561  static WifiMode GetErpOfdmRate24Mbps ();
567  static WifiMode GetErpOfdmRate36Mbps ();
573  static WifiMode GetErpOfdmRate48Mbps ();
579  static WifiMode GetErpOfdmRate54Mbps ();
585  static WifiMode GetOfdmRate6Mbps ();
591  static WifiMode GetOfdmRate9Mbps ();
597  static WifiMode GetOfdmRate12Mbps ();
603  static WifiMode GetOfdmRate18Mbps ();
609  static WifiMode GetOfdmRate24Mbps ();
615  static WifiMode GetOfdmRate36Mbps ();
621  static WifiMode GetOfdmRate48Mbps ();
627  static WifiMode GetOfdmRate54Mbps ();
724 
730  static WifiMode GetHtMcs0 ();
736  static WifiMode GetHtMcs1 ();
742  static WifiMode GetHtMcs2 ();
748  static WifiMode GetHtMcs3 ();
754  static WifiMode GetHtMcs4 ();
760  static WifiMode GetHtMcs5 ();
766  static WifiMode GetHtMcs6 ();
772  static WifiMode GetHtMcs7 ();
778  static WifiMode GetHtMcs8 ();
784  static WifiMode GetHtMcs9 ();
790  static WifiMode GetHtMcs10 ();
796  static WifiMode GetHtMcs11 ();
802  static WifiMode GetHtMcs12 ();
808  static WifiMode GetHtMcs13 ();
814  static WifiMode GetHtMcs14 ();
820  static WifiMode GetHtMcs15 ();
826  static WifiMode GetHtMcs16 ();
832  static WifiMode GetHtMcs17 ();
838  static WifiMode GetHtMcs18 ();
844  static WifiMode GetHtMcs19 ();
850  static WifiMode GetHtMcs20 ();
856  static WifiMode GetHtMcs21 ();
862  static WifiMode GetHtMcs22 ();
868  static WifiMode GetHtMcs23 ();
874  static WifiMode GetHtMcs24 ();
880  static WifiMode GetHtMcs25 ();
886  static WifiMode GetHtMcs26 ();
892  static WifiMode GetHtMcs27 ();
898  static WifiMode GetHtMcs28 ();
904  static WifiMode GetHtMcs29 ();
910  static WifiMode GetHtMcs30 ();
916  static WifiMode GetHtMcs31 ();
917 
923  static WifiMode GetVhtMcs0 ();
929  static WifiMode GetVhtMcs1 ();
935  static WifiMode GetVhtMcs2 ();
941  static WifiMode GetVhtMcs3 ();
947  static WifiMode GetVhtMcs4 ();
953  static WifiMode GetVhtMcs5 ();
959  static WifiMode GetVhtMcs6 ();
965  static WifiMode GetVhtMcs7 ();
971  static WifiMode GetVhtMcs8 ();
977  static WifiMode GetVhtMcs9 ();
978 
984  static WifiMode GetHeMcs0 ();
990  static WifiMode GetHeMcs1 ();
996  static WifiMode GetHeMcs2 ();
1002  static WifiMode GetHeMcs3 ();
1008  static WifiMode GetHeMcs4 ();
1014  static WifiMode GetHeMcs5 ();
1020  static WifiMode GetHeMcs6 ();
1026  static WifiMode GetHeMcs7 ();
1032  static WifiMode GetHeMcs8 ();
1038  static WifiMode GetHeMcs9 ();
1044  static WifiMode GetHeMcs10 ();
1050  static WifiMode GetHeMcs11 ();
1051 
1058  void NotifyTxBegin (Ptr<const Packet> packet);
1065  void NotifyTxEnd (Ptr<const Packet> packet);
1072  void NotifyTxDrop (Ptr<const Packet> packet);
1079  void NotifyRxBegin (Ptr<const Packet> packet);
1086  void NotifyRxEnd (Ptr<const Packet> packet);
1093  void NotifyRxDrop (Ptr<const Packet> packet);
1094 
1113  uint16_t channelFreqMhz,
1114  WifiTxVector txVector,
1115  MpduInfo aMpdu,
1116  SignalNoiseDbm signalNoise);
1117 
1138  uint16_t channelFreqMhz,
1139  WifiTxVector txVector,
1140  MpduInfo aMpdu,
1141  SignalNoiseDbm signalNoise);
1142 
1155  uint16_t channelFreqMhz,
1156  WifiTxVector txVector,
1157  MpduInfo aMpdu);
1158 
1171  typedef void (* MonitorSnifferTxCallback)(const Ptr<const Packet> packet,
1172  uint16_t channelFreqMhz,
1173  WifiTxVector txVector,
1174  MpduInfo aMpdu);
1175 
1184  virtual int64_t AssignStreams (int64_t stream);
1185 
1193  void SetEdThreshold (double threshold);
1199  double GetEdThreshold (void) const;
1207  void SetCcaMode1Threshold (double threshold);
1213  double GetCcaMode1Threshold (void) const;
1219  void SetRxNoiseFigure (double noiseFigureDb);
1225  void SetTxPowerStart (double start);
1231  double GetTxPowerStart (void) const;
1237  void SetTxPowerEnd (double end);
1243  double GetTxPowerEnd (void) const;
1251  void SetNTxPower (uint8_t n);
1257  uint8_t GetNTxPower (void) const;
1263  void SetTxGain (double gain);
1269  double GetTxGain (void) const;
1275  void SetRxGain (double gain);
1281  double GetRxGain (void) const;
1282 
1288  void SetDevice (const Ptr<NetDevice> device);
1294  Ptr<NetDevice> GetDevice (void) const;
1315  Ptr<MobilityModel> GetMobility (void) const;
1316 
1320  virtual void SetFrequency (uint16_t freq);
1324  uint16_t GetFrequency (void) const;
1328  void SetNumberOfAntennas (uint8_t antennas);
1332  uint8_t GetNumberOfAntennas (void) const;
1336  void SetMaxSupportedTxSpatialStreams (uint8_t streams);
1340  uint8_t GetMaxSupportedTxSpatialStreams (void) const;
1344  void SetMaxSupportedRxSpatialStreams (uint8_t streams);
1348  uint8_t GetMaxSupportedRxSpatialStreams (void) const;
1354  void SetShortGuardInterval (bool shortGuardInterval);
1360  bool GetShortGuardInterval (void) const;
1364  void SetGuardInterval (Time guardInterval);
1368  Time GetGuardInterval (void) const;
1373  void SetLdpc (bool ldpc);
1379  bool GetLdpc (void) const;
1385  void SetStbc (bool stbc);
1391  bool GetStbc (void) const;
1397  void SetGreenfield (bool greenfield);
1403  bool GetGreenfield (void) const;
1409  void SetShortPlcpPreambleSupported (bool preamble);
1415  bool GetShortPlcpPreambleSupported (void) const;
1416 
1422  void SetErrorRateModel (const Ptr<ErrorRateModel> rate);
1428  void SetFrameCaptureModel (const Ptr<FrameCaptureModel> frameCaptureModel);
1434  void SetWifiRadioEnergyModel (const Ptr<WifiRadioEnergyModel> wifiRadioEnergyModel);
1435 
1439  uint16_t GetChannelWidth (void) const;
1443  virtual void SetChannelWidth (uint16_t channelwidth);
1447  void AddSupportedChannelWidth (uint16_t channelwidth);
1451  std::vector<uint16_t> GetSupportedChannelWidthSet (void) const;
1452 
1461  double GetPowerDbm (uint8_t power) const;
1462 
1463 
1464 protected:
1465  // Inherited
1466  virtual void DoInitialize (void);
1467  virtual void DoDispose (void);
1468 
1478  bool DoChannelSwitch (uint8_t id);
1488  bool DoFrequencySwitch (uint16_t frequency);
1489 
1496  void SwitchMaybeToCcaBusy (void);
1497 
1501 
1502  uint16_t m_mpdusNum;
1506 
1509 
1510 private:
1526  void Configure80211a (void);
1531  void Configure80211b (void);
1536  void Configure80211g (void);
1541  void Configure80211_10Mhz (void);
1546  void Configure80211_5Mhz ();
1551  void ConfigureHolland (void);
1556  void Configure80211n (void);
1561  void Configure80211ac (void);
1566  void Configure80211ax (void);
1571  void ConfigureHtDeviceMcsSet (void);
1589 
1596  uint8_t FindChannelNumberForFrequencyWidth (uint16_t frequency, uint16_t width) const;
1603  FrequencyWidthPair GetFrequencyWidthForChannelNumberStandard (uint8_t channelNumber, WifiPhyStandard standard) const;
1604 
1609  void AbortCurrentReception (void);
1610 
1614  void MaybeCcaBusyDuration (void);
1615 
1626  void StartRx (Ptr<Packet> packet,
1627  WifiTxVector txVector,
1628  MpduType mpdutype,
1629  double rxPowerW,
1630  Time rxDuration,
1631  Ptr<Event> event);
1632 
1640 
1648 
1656 
1664 
1672 
1679 
1693 
1707 
1746 
1747  std::vector<uint8_t> m_bssMembershipSelectorSet;
1748 
1754  uint16_t m_channelWidth;
1755 
1758  double m_txGainDb;
1759  double m_rxGainDb;
1762  uint8_t m_nTxPower;
1763 
1764  bool m_ldpc;
1765  bool m_stbc;
1769 
1771 
1775 
1776  typedef std::map<ChannelNumberStandardPair,FrequencyWidthPair> ChannelToFrequencyWidthMap;
1778 
1779  std::vector<uint16_t> m_supportedChannelWidthSet;
1782 
1784  uint32_t m_totalAmpduSize;
1786 
1789 
1793 
1795 };
1796 
1802 std::ostream& operator<< (std::ostream& os, WifiPhyState state);
1803 
1804 } //namespace ns3
1805 
1806 #endif /* WIFI_PHY_H */
MpduInfo structure.
Definition: wifi-phy.h:53
static WifiMode GetVhtMcs6()
Return MCS 6 from VHT MCS values.
Definition: wifi-phy.cc:3349
static WifiMode GetOfdmRate9MbpsBW5MHz()
Return a WifiMode for OFDM at 9Mbps with 5MHz channel spacing.
Definition: wifi-phy.cc:3003
TracedCallback< Ptr< const Packet > > m_phyRxBeginTrace
The trace source fired when a packet begins the reception process from the medium.
Definition: wifi-phy.h:1663
Ptr< NetDevice > m_device
Pointer to the device.
Definition: wifi-phy.h:1787
static WifiMode GetErpOfdmRate24Mbps()
Return a WifiMode for ERP-OFDM at 24Mbps.
Definition: wifi-phy.cc:2694
uint8_t GetNTxPower(void) const
Return the number of available transmission power levels.
Definition: wifi-phy.cc:539
uint32_t m_txMpduReferenceNumber
A-MPDU reference number to identify all transmitted subframes belonging to the same received A-MPDU...
Definition: wifi-phy.h:1504
static WifiMode GetDsssRate11Mbps()
Return a WifiMode for DSSS at 11Mbps.
Definition: wifi-phy.cc:2631
bool IsStateSwitching(void) const
Definition: wifi-phy.cc:3553
bool IsStateOff(void) const
Definition: wifi-phy.cc:3565
double signal
in dBm
Definition: wifi-phy.h:48
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:102
static WifiMode GetHeMcs7()
Return MCS 7 from HE MCS values.
Definition: wifi-phy.cc:3439
std::pair< uint8_t, WifiPhyStandard > ChannelNumberStandardPair
A pair of a ChannelNumber and WifiPhyStandard.
Definition: wifi-phy.h:495
static WifiMode GetErpOfdmRate36Mbps()
Return a WifiMode for ERP-OFDM at 36Mbps.
Definition: wifi-phy.cc:2706
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:532
uint8_t m_channelNumber
Operating channel number.
Definition: wifi-phy.h:1780
double m_rxGainDb
Reception gain (dB)
Definition: wifi-phy.h:1759
bool DefineChannelNumber(uint8_t channelNumber, WifiPhyStandard standard, uint16_t frequency, uint16_t channelWidth)
Add a channel definition to the WifiPhy.
Definition: wifi-phy.cc:1024
static WifiMode GetVhtMcs8()
Return MCS 8 from VHT MCS values.
Definition: wifi-phy.cc:3365
void SetShortPlcpPreambleSupported(bool preamble)
Enable or disable short PLCP preamble.
Definition: wifi-phy.cc:637
double GetRxGain(void) const
Return the reception gain (dB).
Definition: wifi-phy.cc:565
bool IsModeSupported(WifiMode mode) const
Check if the given WifiMode is supported by the PHY.
Definition: wifi-phy.cc:3479
static WifiMode GetOfdmRate9Mbps()
Return a WifiMode for OFDM at 9Mbps.
Definition: wifi-phy.cc:2757
static WifiMode GetOfdmRate18MbpsBW10MHz()
Return a WifiMode for OFDM at 18Mbps with 10MHz channel spacing.
Definition: wifi-phy.cc:2904
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
static WifiMode GetOfdmRate27MbpsBW10MHz()
Return a WifiMode for OFDM at 27Mbps with 10MHz channel spacing.
Definition: wifi-phy.cc:2928
TracedCallback< Ptr< const Packet >, uint16_t, WifiTxVector, MpduInfo, SignalNoiseDbm > m_phyMonitorSniffRxTrace
A trace source that emulates a wifi device in monitor mode sniffing a packet being received...
Definition: wifi-phy.h:1692
double m_txGainDb
Transmission gain (dB)
Definition: wifi-phy.h:1758
WifiMode GetMcs(uint8_t mcs) const
The WifiPhy::GetMcs() method is used (e.g., by a WifiRemoteStationManager) to determine the set of tr...
Definition: wifi-phy.cc:3523
static WifiMode GetOfdmRate3MbpsBW5MHz()
Return a WifiMode for OFDM at 3Mbps with 5MHz channel spacing.
Definition: wifi-phy.cc:2967
static WifiMode GetVhtMcs0()
Return MCS 0 from VHT MCS values.
Definition: wifi-phy.cc:3301
void MaybeCcaBusyDuration(void)
Eventually switch to CCA busy.
Definition: wifi-phy.cc:2488
WifiPhyStandard GetStandard(void) const
Get the configured Wi-Fi standard.
Definition: wifi-phy.cc:1180
virtual ~WifiPhy()
Definition: wifi-phy.cc:383
void SetLdpc(bool ldpc)
Enable or disable LDPC.
Definition: wifi-phy.cc:571
static WifiMode GetDsssRate1Mbps()
Return a WifiMode for DSSS at 1Mbps.
Definition: wifi-phy.cc:2592
bool m_ldpc
Flag if LDPC is used.
Definition: wifi-phy.h:1764
void ResumeFromOff(void)
Resume from off mode.
Definition: wifi-phy.cc:1609
void ResumeFromSleep(void)
Resume from sleep mode.
Definition: wifi-phy.cc:1579
bool GetShortGuardInterval(void) const
Return whether short guard interval is supported.
Definition: wifi-phy.cc:617
bool GetGreenfield(void) const
Return whether Greenfield is supported.
Definition: wifi-phy.cc:604
static WifiMode GetHeMcs5()
Return MCS 5 from HE MCS values.
Definition: wifi-phy.cc:3423
802.11 PHY layer model
Definition: wifi-phy.h:64
static WifiMode GetErpOfdmRate18Mbps()
Return a WifiMode for ERP-OFDM at 18Mbps.
Definition: wifi-phy.cc:2682
void SetTxGain(double gain)
Sets the transmission gain (dB).
Definition: wifi-phy.cc:545
void Configure80211ax(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11ax standard...
Definition: wifi-phy.cc:999
handles interference calculations
static WifiMode GetHtMcs7()
Return MCS 7 from HT MCS values.
Definition: wifi-phy.cc:3098
virtual void DoDispose(void)
Destructor implementation.
Definition: wifi-phy.cc:389
def start()
Definition: core.py:1844
Forward calls to a chain of Callback.
void SetStbc(bool stbc)
Enable or disable STBC.
Definition: wifi-phy.cc:584
static Time GetPlcpHtSigHeaderDuration(WifiPreamble preamble)
Definition: wifi-phy.cc:1705
static WifiMode GetVhtMcs5()
Return MCS 5 from VHT MCS values.
Definition: wifi-phy.cc:3341
uint8_t GetNBssMembershipSelectors(void) const
The WifiPhy::NBssMembershipSelectors() method is used (e.g., by a WifiRemoteStationManager) to determ...
Definition: wifi-phy.cc:1320
static WifiMode GetHtMcs22()
Return MCS 22 from HT MCS values.
Definition: wifi-phy.cc:3218
static WifiMode GetHtMcs14()
Return MCS 14 from HT MCS values.
Definition: wifi-phy.cc:3154
static WifiMode GetOfdmRate12Mbps()
Return a WifiMode for OFDM at 12Mbps.
Definition: wifi-phy.cc:2769
TracedCallback< Ptr< const Packet > > m_phyRxEndTrace
The trace source fired when a packet ends the reception process from the medium.
Definition: wifi-phy.h:1671
bool IsStateCcaBusy(void) const
Definition: wifi-phy.cc:3529
void SetReceiveErrorCallback(RxErrorCallback callback)
Definition: wifi-phy.cc:420
static WifiMode GetHtMcs31()
Return MCS 31 from HT MCS values.
Definition: wifi-phy.cc:3290
void StartRx(Ptr< Packet > packet, WifiTxVector txVector, MpduType mpdutype, double rxPowerW, Time rxDuration, Ptr< Event > event)
Starting receiving the packet after having detected the medium is idle or after a reception switch...
Definition: wifi-phy.cc:3618
static WifiMode GetHtMcs21()
Return MCS 21 from HT MCS values.
Definition: wifi-phy.cc:3210
static WifiMode GetHtMcs30()
Return MCS 30 from HT MCS values.
Definition: wifi-phy.cc:3282
std::vector< uint8_t > m_bssMembershipSelectorSet
the BSS membership selector set
Definition: wifi-phy.h:1747
static WifiMode GetHtMcs10()
Return MCS 10 from HT MCS values.
Definition: wifi-phy.cc:3122
void StartReceivePreambleAndHeader(Ptr< Packet > packet, double rxPowerW, Time rxDuration)
Starting receiving the plcp of a packet (i.e.
Definition: wifi-phy.cc:2358
static WifiMode GetHtMcs26()
Return MCS 26 from HT MCS values.
Definition: wifi-phy.cc:3250
static WifiMode GetOfdmRate1_5MbpsBW5MHz()
Return a WifiMode for OFDM at 1.5Mbps with 5MHz channel spacing.
Definition: wifi-phy.cc:2943
static WifiMode GetHtMcs17()
Return MCS 17 from HT MCS values.
Definition: wifi-phy.cc:3178
static WifiMode GetHtMcs24()
Return MCS 24 from HT MCS values.
Definition: wifi-phy.cc:3234
static WifiMode GetOfdmRate4_5MbpsBW10MHz()
Return a WifiMode for OFDM at 4.5Mbps with 10MHz channel spacing.
Definition: wifi-phy.cc:2856
static WifiMode GetOfdmRate54Mbps()
Return a WifiMode for OFDM at 54Mbps.
Definition: wifi-phy.cc:2829
void SetMobility(const Ptr< MobilityModel > mobility)
assign a mobility model to this device
Definition: wifi-phy.cc:662
void UnregisterListener(WifiPhyListener *listener)
Definition: wifi-phy.cc:432
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:498
static WifiMode GetHeMcs4()
Return MCS 4 from HE MCS values.
Definition: wifi-phy.cc:3415
void SendPacket(Ptr< const Packet > packet, WifiTxVector txVector, MpduType mpdutype=NORMAL_MPDU)
Definition: wifi-phy.cc:2290
void ConfigureHolland(void)
Configure WifiPhy with appropriate channel frequency and supported rates for holland.
Definition: wifi-phy.cc:881
bool IsStateIdle(void) const
Definition: wifi-phy.cc:3535
void NotifyTxDrop(Ptr< const Packet > packet)
Public method used to fire a PhyTxDrop trace.
Definition: wifi-phy.cc:2254
void SetGreenfield(bool greenfield)
Enable or disable Greenfield support.
Definition: wifi-phy.cc:597
void Configure80211_10Mhz(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11a standard with 10...
Definition: wifi-phy.cc:851
std::pair< uint16_t, uint16_t > FrequencyWidthPair
A pair of a center Frequency and a ChannelWidth.
Definition: wifi-phy.h:499
uint8_t m_nTxPower
Number of available transmission power levels.
Definition: wifi-phy.h:1762
static WifiMode GetHtMcs8()
Return MCS 8 from HT MCS values.
Definition: wifi-phy.cc:3106
static WifiMode GetHtMcs18()
Return MCS 18 from HT MCS values.
Definition: wifi-phy.cc:3186
void NotifyTxBegin(Ptr< const Packet > packet)
Public method used to fire a PhyTxBegin trace.
Definition: wifi-phy.cc:2242
virtual void SetFrequency(uint16_t freq)
Definition: wifi-phy.cc:1186
static WifiMode GetVhtMcs4()
Return MCS 4 from VHT MCS values.
Definition: wifi-phy.cc:3333
static WifiMode GetHtMcs27()
Return MCS 27 from HT MCS values.
Definition: wifi-phy.cc:3258
void SetFrameCaptureModel(const Ptr< FrameCaptureModel > frameCaptureModel)
Sets the frame capture model.
Definition: wifi-phy.cc:688
TracedCallback< Ptr< const Packet >, uint16_t, WifiTxVector, MpduInfo > m_phyMonitorSniffTxTrace
A trace source that emulates a wifi device in monitor mode sniffing a packet being transmitted...
Definition: wifi-phy.h:1706
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
Definition: wifi-mode.h:97
double GetEdThreshold(void) const
Return the energy detection threshold (dBm).
Definition: wifi-phy.cc:479
static WifiMode GetOfdmRate36Mbps()
Return a WifiMode for OFDM at 36Mbps.
Definition: wifi-phy.cc:2805
uint8_t m_initialChannelNumber
Initial channel number.
Definition: wifi-phy.h:1781
static WifiMode GetVhtMcs7()
Return MCS 7 from VHT MCS values.
Definition: wifi-phy.cc:3357
static WifiMode GetOfdmRate6MbpsBW5MHz()
Return a WifiMode for OFDM at 6Mbps with 5MHz channel spacing.
Definition: wifi-phy.cc:2991
bool IsStateSleep(void) const
Definition: wifi-phy.cc:3559
bool GetStbc(void) const
Return whether STBC is supported.
Definition: wifi-phy.cc:591
static WifiMode GetVhtMcs3()
Return MCS 3 from VHT MCS values.
Definition: wifi-phy.cc:3325
void ConfigureDefaultsForStandard(WifiPhyStandard standard)
Configure the PHY-level parameters for different Wi-Fi standard.
Definition: wifi-phy.cc:730
static Time GetPlcpSigA1Duration(WifiPreamble preamble)
Definition: wifi-phy.cc:1720
MpduType
The type of an MPDU.
WifiModeList m_deviceMcsSet
the device MCS set
Definition: wifi-phy.h:1745
mobility
Definition: third.py:101
virtual Ptr< Channel > GetChannel(void) const =0
Return the Channel this WifiPhy is connected to.
uint16_t m_channelCenterFrequency
Center frequency in MHz.
Definition: wifi-phy.h:1751
void SetDevice(const Ptr< NetDevice > device)
Sets the device this PHY is associated with.
Definition: wifi-phy.cc:650
bool GetShortPlcpPreambleSupported(void) const
Return whether short PLCP preamble is supported.
Definition: wifi-phy.cc:644
static WifiMode GetHtMcs16()
Return MCS 16 from HT MCS values.
Definition: wifi-phy.cc:3170
uint16_t GetChannelWidth(void) const
Definition: wifi-phy.cc:1263
static WifiMode GetErpOfdmRate54Mbps()
Return a WifiMode for ERP-OFDM at 54Mbps.
Definition: wifi-phy.cc:2730
uint16_t m_mpdusNum
carries the number of expected mpdus that are part of an A-MPDU
Definition: wifi-phy.h:1502
void AddSupportedChannelWidth(uint16_t channelwidth)
Definition: wifi-phy.cc:1332
static WifiMode GetHtMcs29()
Return MCS 29 from HT MCS values.
Definition: wifi-phy.cc:3274
static WifiMode GetHtMcs11()
Return MCS 11 from HT MCS values.
Definition: wifi-phy.cc:3130
uint8_t GetNMcs(void) const
The WifiPhy::GetNMcs() method is used (e.g., by a WifiRemoteStationManager) to determine the set of t...
Definition: wifi-phy.cc:3517
void NotifyRxDrop(Ptr< const Packet > packet)
Public method used to fire a PhyRxDrop trace.
Definition: wifi-phy.cc:2272
Time CalculateTxDuration(uint32_t size, WifiTxVector txVector, uint16_t frequency)
Definition: wifi-phy.cc:2236
WifiPreamble
The type of preamble to be used by an IEEE 802.11 transmission.
Definition: wifi-preamble.h:30
static ChannelToFrequencyWidthMap m_channelToFrequencyWidth
the channel to frequency width map
Definition: wifi-phy.h:1777
WifiPhyStandard
Identifies the PHY specification that a Wifi device is configured to use.
The MPDU is not part of an A-MPDU.
static Time GetPlcpSigA2Duration(WifiPreamble preamble)
Definition: wifi-phy.cc:1735
bool DoFrequencySwitch(uint16_t frequency)
The default implementation does nothing and returns true.
Definition: wifi-phy.cc:1473
static WifiMode GetHtMcs2()
Return MCS 2 from HT MCS values.
Definition: wifi-phy.cc:3058
Ptr< MobilityModel > m_mobility
Pointer to the mobility model.
Definition: wifi-phy.h:1788
virtual void StartTx(Ptr< Packet > packet, WifiTxVector txVector, Time txDuration)=0
bool GetLdpc(void) const
Return if LDPC is supported.
Definition: wifi-phy.cc:578
static Time GetPlcpPreambleDuration(WifiTxVector txVector)
Definition: wifi-phy.cc:1882
receive notifications about phy events.
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:1655
void NotifyMonitorSniffRx(Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise)
Public method used to fire a MonitorSniffer trace for a wifi packet being received.
Definition: wifi-phy.cc:2278
bool m_shortPreamble
Flag if short PLCP preamble is supported.
Definition: wifi-phy.h:1768
static WifiMode GetHeMcs3()
Return MCS 3 from HE MCS values.
Definition: wifi-phy.cc:3407
void(* MonitorSnifferTxCallback)(const Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu)
TracedCallback signature for monitor mode transmit events.
Definition: wifi-phy.h:1171
static Time GetPlcpSigBDuration(WifiPreamble preamble)
Definition: wifi-phy.cc:1750
EventId m_endPlcpRxEvent
the end PLCP receive event
Definition: wifi-phy.h:1508
static WifiMode GetHtMcs12()
Return MCS 12 from HT MCS values.
Definition: wifi-phy.cc:3138
Ptr< WifiRadioEnergyModel > m_wifiRadioEnergyModel
Wifi radio energy model.
Definition: wifi-phy.h:1792
static WifiMode GetErpOfdmRate48Mbps()
Return a WifiMode for ERP-OFDM at 48Mbps.
Definition: wifi-phy.cc:2718
static Time CalculatePlcpPreambleAndHeaderDuration(WifiTxVector txVector)
Definition: wifi-phy.cc:2214
void SetTxPowerEnd(double end)
Sets the maximum available transmission power level (dBm).
Definition: wifi-phy.cc:519
static WifiMode GetOfdmRate12MbpsBW10MHz()
Return a WifiMode for OFDM at 12Mbps with 10MHz channel spacing.
Definition: wifi-phy.cc:2892
static WifiMode GetHeMcs11()
Return MCS 11 from HE MCS values.
Definition: wifi-phy.cc:3471
Time GetDelayUntilIdle(void)
Definition: wifi-phy.cc:3571
uint32_t m_rxMpduReferenceNumber
A-MPDU reference number to identify all received subframes belonging to the same received A-MPDU...
Definition: wifi-phy.h:1505
TracedCallback< Ptr< const Packet > > m_phyRxDropTrace
The trace source fired when the phy layer drops a packet it has received.
Definition: wifi-phy.h:1678
double m_edThresholdW
Energy detection threshold in watts.
Definition: wifi-phy.h:1756
void Configure80211_5Mhz()
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11a standard with 5M...
Definition: wifi-phy.cc:866
FrequencyWidthPair GetFrequencyWidthForChannelNumberStandard(uint8_t channelNumber, WifiPhyStandard standard) const
Lookup frequency/width pair for channelNumber/standard pair.
Definition: wifi-phy.cc:1353
double CalculateSnr(WifiTxVector txVector, double ber) const
Definition: wifi-phy.cc:724
void NotifyRxBegin(Ptr< const Packet > packet)
Public method used to fire a PhyRxBegin trace.
Definition: wifi-phy.cc:2260
static WifiMode GetOfdmRate18Mbps()
Return a WifiMode for OFDM at 18Mbps.
Definition: wifi-phy.cc:2781
void SetCapabilitiesChangedCallback(Callback< void > callback)
Definition: wifi-phy.cc:438
void SetOffMode(void)
Put in off mode.
Definition: wifi-phy.cc:1557
static WifiMode GetOfdmRate9MbpsBW10MHz()
Return a WifiMode for OFDM at 9Mbps with 10MHz channel spacing.
Definition: wifi-phy.cc:2880
static WifiMode GetOfdmRate12MbpsBW5MHz()
Return a WifiMode for OFDM at 12Mbps with 5MHz channel spacing.
Definition: wifi-phy.cc:3015
void(* MonitorSnifferRxCallback)(Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu, SignalNoiseDbm signalNoise)
TracedCallback signature for monitor mode receive events.
Definition: wifi-phy.h:1137
void AbortCurrentReception(void)
Due to newly arrived signal, the current reception cannot be continued and has to be aborted...
Definition: wifi-phy.cc:3600
TracedCallback< Ptr< const Packet > > m_phyTxBeginTrace
The trace source fired when a packet begins the transmission process on the medium.
Definition: wifi-phy.h:1639
double GetPowerDbm(uint8_t power) const
Get the power of the given power level in dBm.
Definition: wifi-phy.cc:700
static WifiMode GetVhtMcs1()
Return MCS 1 from VHT MCS values.
Definition: wifi-phy.cc:3309
static WifiMode GetOfdmRate48Mbps()
Return a WifiMode for OFDM at 48Mbps.
Definition: wifi-phy.cc:2817
void SetErrorRateModel(const Ptr< ErrorRateModel > rate)
Sets the error rate model.
Definition: wifi-phy.cc:681
std::ostream & operator<<(std::ostream &os, const Angles &a)
print a struct Angles to output
Definition: angles.cc:42
static WifiMode GetHeMcs9()
Return MCS 9 from HE MCS values.
Definition: wifi-phy.cc:3455
static WifiMode GetHtMcs0()
Return MCS 0 from HT MCS values.
Definition: wifi-phy.cc:3042
Ptr< MobilityModel > GetMobility(void) const
Return the mobility model this PHY is associated with.
Definition: wifi-phy.cc:668
static TypeId GetTypeId(void)
Get the type ID.
Definition: wifi-phy.cc:155
Time GetChannelSwitchDelay(void) const
Definition: wifi-phy.cc:718
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void SetWifiRadioEnergyModel(const Ptr< WifiRadioEnergyModel > wifiRadioEnergyModel)
Sets the wifi radio energy model.
Definition: wifi-phy.cc:694
Time m_guardInterval
Supported HE guard interval.
Definition: wifi-phy.h:1770
uint16_t GetFrequency(void) const
Definition: wifi-phy.cc:1243
uint8_t GetNumberOfAntennas(void) const
Definition: wifi-phy.cc:1277
static WifiMode GetOfdmRate24Mbps()
Return a WifiMode for OFDM at 24Mbps.
Definition: wifi-phy.cc:2793
virtual void SetChannelWidth(uint16_t channelwidth)
Definition: wifi-phy.cc:1249
WifiPhyState
The state of the PHY layer.
static WifiMode GetHeMcs1()
Return MCS 1 from HE MCS values.
Definition: wifi-phy.cc:3391
void SetShortGuardInterval(bool shortGuardInterval)
Enable or disable support for HT/VHT short guard interval.
Definition: wifi-phy.cc:610
static WifiMode GetHtMcs13()
Return MCS 13 from HT MCS values.
Definition: wifi-phy.cc:3146
static WifiMode GetHeMcs0()
Return MCS 0 from HE MCS values.
Definition: wifi-phy.cc:3383
static WifiMode GetHeMcs10()
Return MCS 10 from HE MCS values.
Definition: wifi-phy.cc:3463
static WifiMode GetHtMcs20()
Return MCS 20 from HT MCS values.
Definition: wifi-phy.cc:3202
static WifiMode GetHeMcs2()
Return MCS 2 from HE MCS values.
Definition: wifi-phy.cc:3399
static WifiMode GetHtMcs5()
Return MCS 5 from HT MCS values.
Definition: wifi-phy.cc:3082
void SetMaxSupportedRxSpatialStreams(uint8_t streams)
Definition: wifi-phy.cc:1302
void SetCcaMode1Threshold(double threshold)
Sets the CCA threshold (dBm).
Definition: wifi-phy.cc:485
static WifiMode GetVhtMcs2()
Return MCS 2 from VHT MCS values.
Definition: wifi-phy.cc:3317
virtual void SetChannelNumber(uint8_t id)
Set channel number.
Definition: wifi-phy.cc:1361
static WifiMode GetDsssRate5_5Mbps()
Return a WifiMode for DSSS at 5.5Mbps.
Definition: wifi-phy.cc:2619
void Configure80211ac(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11ac standard...
Definition: wifi-phy.cc:979
virtual void DoInitialize(void)
Initialize() implementation.
Definition: wifi-phy.cc:401
static WifiMode GetOfdmRate2_25MbpsBW5MHz()
Return a WifiMode for OFDM at 2.25Mbps with 5MHz channel spacing.
Definition: wifi-phy.cc:2955
uint8_t GetChannelNumber(void) const
Return current channel number.
Definition: wifi-phy.cc:1415
std::vector< WifiMode > WifiModeList
In various parts of the code, folk are interested in maintaining a list of transmission modes...
Definition: wifi-mode.h:252
WifiPhyStandard m_standard
WifiPhyStandard.
Definition: wifi-phy.h:1749
void SetGuardInterval(Time guardInterval)
Definition: wifi-phy.cc:623
uint8_t FindChannelNumberForFrequencyWidth(uint16_t frequency, uint16_t width) const
Look for channel number matching the frequency and width.
Definition: wifi-phy.cc:1041
static WifiMode GetErpOfdmRate9Mbps()
Return a WifiMode for ERP-OFDM at 9Mbps.
Definition: wifi-phy.cc:2658
void NotifyTxEnd(Ptr< const Packet > packet)
Public method used to fire a PhyTxEnd trace.
Definition: wifi-phy.cc:2248
Ptr< UniformRandomVariable > m_random
Provides uniform random variables.
Definition: wifi-phy.h:1499
uint8_t m_txSpatialStreams
Number of supported TX spatial streams.
Definition: wifi-phy.h:1773
double GetTxPowerStart(void) const
Return the minimum available transmission power level (dBm).
Definition: wifi-phy.cc:513
void InitializeFrequencyChannelNumber(void)
post-construction setting of frequency and/or channel number
Definition: wifi-phy.cc:444
std::vector< uint16_t > GetSupportedChannelWidthSet(void) const
Definition: wifi-phy.cc:1347
uint8_t GetNModes(void) const
The WifiPhy::GetNModes() and WifiPhy::GetMode() methods are used (e.g., by a WifiRemoteStationManager...
Definition: wifi-phy.cc:3505
Ptr< FrameCaptureModel > m_frameCaptureModel
Frame capture model.
Definition: wifi-phy.h:1791
void SetRxGain(double gain)
Sets the reception gain (dB).
Definition: wifi-phy.cc:558
void Configure80211b(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11b standard...
Definition: wifi-phy.cc:824
void EndReceive(Ptr< Packet > packet, WifiPreamble preamble, MpduType mpdutype, Ptr< Event > event)
The last bit of the packet has arrived.
Definition: wifi-phy.cc:2541
void SetReceiveOkCallback(RxOkCallback callback)
Definition: wifi-phy.cc:414
WifiMode GetMode(uint8_t mode) const
The WifiPhy::GetNModes() and WifiPhy::GetMode() methods are used (e.g., by a WifiRemoteStationManager...
Definition: wifi-phy.cc:3511
uint16_t m_channelWidth
Channel width.
Definition: wifi-phy.h:1754
static WifiMode GetErpOfdmRate6Mbps()
Return a WifiMode for ERP-OFDM at 6Mbps.
Definition: wifi-phy.cc:2646
uint8_t GetBssMembershipSelector(uint8_t selector) const
The WifiPhy::BssMembershipSelector() method is used (e.g., by a WifiRemoteStationManager) to determin...
Definition: wifi-phy.cc:1326
void RegisterListener(WifiPhyListener *listener)
Definition: wifi-phy.cc:426
bool IsStateTx(void) const
Definition: wifi-phy.cc:3547
void ConfigureChannelForStandard(WifiPhyStandard standard)
Configure the PHY-level parameters for different Wi-Fi standard.
Definition: wifi-phy.cc:1069
void SetMaxSupportedTxSpatialStreams(uint8_t streams)
Definition: wifi-phy.cc:1283
static WifiMode GetErpOfdmRate12Mbps()
Return a WifiMode for ERP-OFDM at 12Mbps.
Definition: wifi-phy.cc:2670
bool m_plcpSuccess
Flag if the PLCP of the packet or the first MPDU in an A-MPDU has been received.
Definition: wifi-phy.h:1503
bool m_greenfield
Flag if GreenField format is supported.
Definition: wifi-phy.h:1766
EventId m_endRxEvent
the end reeive event
Definition: wifi-phy.h:1507
Ptr< WifiPhyStateHelper > m_state
Pointer to WifiPhyStateHelper.
Definition: wifi-phy.h:1500
void SetEdThreshold(double threshold)
Sets the energy detection threshold (dBm).
Definition: wifi-phy.cc:472
void NotifyRxEnd(Ptr< const Packet > packet)
Public method used to fire a PhyRxEnd trace.
Definition: wifi-phy.cc:2266
void Configure80211n(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11n standard...
Definition: wifi-phy.cc:962
void SetTxPowerStart(double start)
Sets the minimum available transmission power level (dBm).
Definition: wifi-phy.cc:506
double m_txPowerBaseDbm
Minimum transmission power (dBm)
Definition: wifi-phy.h:1760
bool IsMcsSupported(WifiMode mcs) const
Check if the given WifiMode is supported by the PHY.
Definition: wifi-phy.cc:3492
An identifier for simulation events.
Definition: event-id.h:53
SignalNoiseDbm structure.
Definition: wifi-phy.h:46
uint32_t mpduRefNumber
MPDU ref number.
Definition: wifi-phy.h:56
bool m_frequencyChannelNumberInitialized
Store initialization state.
Definition: wifi-phy.h:1753
static WifiMode GetHtMcs19()
Return MCS 19 from HT MCS values.
Definition: wifi-phy.cc:3194
InterferenceHelper m_interference
Pointer to InterferenceHelper.
Definition: wifi-phy.h:1498
bool m_isConstructed
true when ready to set frequency
Definition: wifi-phy.h:1750
static WifiMode GetHtMcs6()
Return MCS 6 from HT MCS values.
Definition: wifi-phy.cc:3090
double GetCcaMode1Threshold(void) const
Return the CCA threshold (dBm).
Definition: wifi-phy.cc:492
void StartReceivePacket(Ptr< Packet > packet, WifiTxVector txVector, MpduType mpdutype, Ptr< Event > event)
Starting receiving the payload of a packet (i.e.
Definition: wifi-phy.cc:2503
void ConfigureHtDeviceMcsSet(void)
Configure the device Mcs set with the appropriate HtMcs modes for the number of available transmit sp...
Definition: wifi-phy.cc:893
static WifiMode GetVhtPlcpHeaderMode()
Definition: wifi-phy.cc:1646
double m_totalAmpduNumSymbols
Number of symbols previously transmitted for the MPDUs in an A-MPDU, used for the computation of the ...
Definition: wifi-phy.h:1785
static WifiMode GetHtMcs28()
Return MCS 28 from HT MCS values.
Definition: wifi-phy.cc:3266
double GetTxPowerEnd(void) const
Return the maximum available transmission power level (dBm).
Definition: wifi-phy.cc:526
static WifiMode GetHtMcs9()
Return MCS 9 from HT MCS values.
Definition: wifi-phy.cc:3114
static WifiMode GetHtMcs4()
Return MCS 4 from HT MCS values.
Definition: wifi-phy.cc:3074
static WifiMode GetHtMcs25()
Return MCS 25 from HT MCS values.
Definition: wifi-phy.cc:3242
static WifiMode GetHeMcs8()
Return MCS 8 from HE MCS values.
Definition: wifi-phy.cc:3447
void Configure80211g(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11g standard...
Definition: wifi-phy.cc:835
static WifiMode GetHePlcpHeaderMode()
Definition: wifi-phy.cc:1652
Ptr< NetDevice > GetDevice(void) const
Return the device this PHY is associated with.
Definition: wifi-phy.cc:656
double GetTxGain(void) const
Return the transmission gain (dB).
Definition: wifi-phy.cc:552
void SetSleepMode(void)
Put in sleep mode.
Definition: wifi-phy.cc:1525
uint32_t m_totalAmpduSize
Total size of the previously transmitted MPDUs in an A-MPDU, used for the computation of the number o...
Definition: wifi-phy.h:1784
double noise
in dBm
Definition: wifi-phy.h:49
WifiModeList m_deviceRateSet
This vector holds the set of transmission modes that this WifiPhy(-derived class) can support...
Definition: wifi-phy.h:1744
void NotifyMonitorSniffTx(Ptr< const Packet > packet, uint16_t channelFreqMhz, WifiTxVector txVector, MpduInfo aMpdu)
Public method used to fire a MonitorSniffer trace for a wifi packet being transmitted.
Definition: wifi-phy.cc:2284
Time GetPayloadDuration(uint32_t size, WifiTxVector txVector, uint16_t frequency)
Definition: wifi-phy.cc:1936
void SetNumberOfAntennas(uint8_t antennas)
Definition: wifi-phy.cc:1269
static WifiMode GetHtMcs1()
Return MCS 1 from HT MCS values.
Definition: wifi-phy.cc:3050
static WifiMode GetHtMcs23()
Return MCS 23 from HT MCS values.
Definition: wifi-phy.cc:3226
A base class which provides memory management and object aggregation.
Definition: object.h:87
static WifiMode GetDsssRate2Mbps()
Return a WifiMode for DSSS at 2Mbps.
Definition: wifi-phy.cc:2604
static WifiMode GetVhtMcs9()
Return MCS 9 from VHT MCS values.
Definition: wifi-phy.cc:3373
virtual void ConfigureStandard(WifiPhyStandard standard)
Configure the PHY-level parameters for different Wi-Fi standard.
Definition: wifi-phy.cc:1119
static WifiMode GetOfdmRate6MbpsBW10MHz()
Return a WifiMode for OFDM at 6Mbps with 10MHz channel spacing.
Definition: wifi-phy.cc:2868
double m_txPowerEndDbm
Maximum transmission power (dBm)
Definition: wifi-phy.h:1761
static WifiMode GetPlcpHeaderMode(WifiTxVector txVector)
Definition: wifi-phy.cc:1767
static Time GetPlcpTrainingSymbolDuration(WifiTxVector txVector)
Definition: wifi-phy.cc:1658
static WifiMode GetOfdmRate24MbpsBW10MHz()
Return a WifiMode for OFDM at 24Mbps with 10MHz channel spacing.
Definition: wifi-phy.cc:2916
MpduType type
type
Definition: wifi-phy.h:55
Time m_channelSwitchDelay
Time required to switch between channel.
Definition: wifi-phy.h:1783
static WifiMode GetOfdmRate13_5MbpsBW5MHz()
Return a WifiMode for OFDM at 13.5Mbps with 5MHz channel spacing.
Definition: wifi-phy.cc:3027
double m_ccaMode1ThresholdW
Clear channel assessment (CCA) threshold in watts.
Definition: wifi-phy.h:1757
uint8_t m_numberOfAntennas
Number of transmitters.
Definition: wifi-phy.h:1772
static Time GetPlcpHeaderDuration(WifiTxVector txVector)
Definition: wifi-phy.cc:1813
uint8_t GetMaxSupportedTxSpatialStreams(void) const
Definition: wifi-phy.cc:1296
a unique identifier for an interface.
Definition: type-id.h:58
static WifiMode GetHtMcs15()
Return MCS 15 from HT MCS values.
Definition: wifi-phy.cc:3162
Ptr< Event > m_currentEvent
Hold the current event.
Definition: wifi-phy.h:1790
Time GetLastRxStartTime(void) const
Return the start time of the last received packet.
Definition: wifi-phy.cc:3577
bool IsStateRx(void) const
Definition: wifi-phy.cc:3541
static WifiMode GetHtMcs3()
Return MCS 3 from HT MCS values.
Definition: wifi-phy.cc:3066
uint8_t m_rxSpatialStreams
Number of supported RX spatial streams.
Definition: wifi-phy.h:1774
std::vector< uint16_t > m_supportedChannelWidthSet
Supported channel width.
Definition: wifi-phy.h:1779
static WifiMode GetOfdmRate6Mbps()
Return a WifiMode for OFDM at 6Mbps.
Definition: wifi-phy.cc:2745
void SwitchMaybeToCcaBusy(void)
Check if Phy state should move to CCA busy state based on current state of interference tracker...
Definition: wifi-phy.cc:3583
bool m_shortGuardInterval
Flag if HT/VHT short guard interval is supported.
Definition: wifi-phy.h:1767
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:3694
static WifiMode GetHeMcs6()
Return MCS 6 from HE MCS values.
Definition: wifi-phy.cc:3431
static WifiMode GetHtPlcpHeaderMode()
Definition: wifi-phy.cc:1640
static WifiMode GetOfdmRate4_5MbpsBW5MHz()
Return a WifiMode for OFDM at 4.5Mbps with 5MHz channel spacing.
Definition: wifi-phy.cc:2979
bool m_stbc
Flag if STBC is used.
Definition: wifi-phy.h:1765
Callback< void > m_capabilitiesChangedCallback
Callback when PHY capabilities changed.
Definition: wifi-phy.h:1794
void Configure80211a(void)
Configure WifiPhy with appropriate channel frequency and supported rates for 802.11a standard...
Definition: wifi-phy.cc:809
uint8_t GetMaxSupportedRxSpatialStreams(void) const
Definition: wifi-phy.cc:1314
std::map< ChannelNumberStandardPair, FrequencyWidthPair > ChannelToFrequencyWidthMap
channel to frequency width map typedef
Definition: wifi-phy.h:1776
static WifiMode GetOfdmRate3MbpsBW10MHz()
Return a WifiMode for OFDM at 3Mbps with 10MHz channel spacing.
Definition: wifi-phy.cc:2844
TracedCallback< Ptr< const Packet > > m_phyTxEndTrace
The trace source fired when a packet ends the transmission process on the medium. ...
Definition: wifi-phy.h:1647
uint16_t m_initialFrequency
Store frequency until initialization.
Definition: wifi-phy.h:1752
bool DoChannelSwitch(uint8_t id)
The default implementation does nothing and returns true.
Definition: wifi-phy.cc:1421
Time GetGuardInterval(void) const
Definition: wifi-phy.cc:631