A Discrete-Event Network Simulator
API
wifi-remote-station-manager.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,2007 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  * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19  */
20 
21 #ifndef WIFI_REMOTE_STATION_MANAGER_H
22 #define WIFI_REMOTE_STATION_MANAGER_H
23 
24 #include <array>
25 #include <unordered_map>
26 #include "ns3/traced-callback.h"
27 #include "ns3/object.h"
28 #include "ns3/data-rate.h"
29 #include "ns3/mac48-address.h"
30 #include "wifi-mode.h"
31 #include "wifi-utils.h"
32 #include "qos-utils.h"
34 #include "ns3/ht-capabilities.h"
35 #include "ns3/vht-capabilities.h"
36 #include "ns3/he-capabilities.h"
37 
38 namespace ns3 {
39 
40 class WifiPhy;
41 class WifiMac;
42 class WifiMacHeader;
43 class Packet;
44 class WifiMacQueueItem;
45 class WifiTxVector;
46 
47 struct WifiRemoteStationState;
48 struct RxSignalInfo;
49 
62 {
63  virtual ~WifiRemoteStation () {};
65  std::pair<double, Time> m_rssiAndUpdateTimePair;
66 };
67 
72 {
76  enum
77  {
83 
96  uint16_t m_aid;
105  uint16_t m_channelWidth;
106  uint16_t m_guardInterval;
107  uint8_t m_ness;
112 };
113 
121 {
122 public:
127  static TypeId GetTypeId (void);
128 
130  virtual ~WifiRemoteStationManager ();
131 
134  {
137  };
138 
142  using Stations = std::unordered_map <Mac48Address, WifiRemoteStation *, WifiAddressHash>;
146  using StationStates = std::unordered_map <Mac48Address, WifiRemoteStationState *, WifiAddressHash>;
147 
154  virtual void SetupPhy (const Ptr<WifiPhy> phy);
161  virtual void SetupMac (const Ptr<WifiMac> mac);
162 
171  virtual int64_t AssignStreams (int64_t stream);
172 
178  void SetMaxSsrc (uint32_t maxSsrc);
184  void SetMaxSlrc (uint32_t maxSlrc);
190  void SetRtsCtsThreshold (uint32_t threshold);
191 
197  uint32_t GetFragmentationThreshold (void) const;
204  void SetFragmentationThreshold (uint32_t threshold);
205 
212  void SetAssociationId (Mac48Address remoteAddress, uint16_t aid);
219  void SetQosSupport (Mac48Address from, bool qosSupported);
226  void AddStationHtCapabilities (Mac48Address from, HtCapabilities htCapabilities);
233  void AddStationVhtCapabilities (Mac48Address from, VhtCapabilities vhtCapabilities);
240  void AddStationHeCapabilities (Mac48Address from, HeCapabilities heCapabilities);
267  bool GetHtSupported (void) const;
273  bool GetVhtSupported (void) const;
279  bool GetHeSupported (void) const;
285  bool GetLdpcSupported (void) const;
291  bool GetShortGuardIntervalSupported (void) const;
297  uint16_t GetGuardInterval (void) const;
303  void SetUseNonErpProtection (bool enable);
310  bool GetUseNonErpProtection (void) const;
316  void SetUseNonHtProtection (bool enable);
323  bool GetUseNonHtProtection (void) const;
329  void SetShortPreambleEnabled (bool enable);
336  bool GetShortPreambleEnabled (void) const;
342  void SetShortSlotTimeEnabled (bool enable);
349  bool GetShortSlotTimeEnabled (void) const;
350 
354  void Reset (void);
355 
363  void AddBasicMode (WifiMode mode);
369  WifiMode GetDefaultMode (void) const;
375  uint8_t GetNBasicModes (void) const;
383  WifiMode GetBasicMode (uint8_t i) const;
389  uint32_t GetNNonErpBasicModes (void) const;
397  WifiMode GetNonErpBasicMode (uint8_t i) const;
433  bool GetQosSupported (Mac48Address address) const;
440  uint16_t GetAssociationId (Mac48Address remoteAddress) const;
447  void AddBasicMcs (WifiMode mcs);
453  WifiMode GetDefaultMcs (void) const;
459  uint8_t GetNBasicMcs (void) const;
467  WifiMode GetBasicMcs (uint8_t i) const;
507  uint8_t GetNMcsSupported (Mac48Address address) const;
516  bool GetDsssSupported (const Mac48Address& address) const;
525  bool GetErpOfdmSupported (const Mac48Address& address) const;
534  bool GetOfdmSupported (const Mac48Address& address) const;
543  bool GetHtSupported (Mac48Address address) const;
552  bool GetVhtSupported (Mac48Address address) const;
561  bool GetHeSupported (Mac48Address address) const;
562 
568  WifiMode GetNonUnicastMode (void) const;
569 
608  void AddSupportedPhyPreamble (Mac48Address address, bool isShortPreambleSupported);
615  void AddSupportedErpSlotTime (Mac48Address address, bool isShortSlotTimeSupported);
624  bool IsBrandNew (Mac48Address address) const;
633  bool IsAssociated (Mac48Address address) const;
643  bool IsWaitAssocTxOk (Mac48Address address) const;
671 
693  WifiTxVector GetCtsTxVector (Mac48Address to, WifiMode rtsTxMode) const;
710  WifiTxVector GetAckTxVector (Mac48Address to, const WifiTxVector& dataTxVector) const;
719  WifiTxVector GetBlockAckTxVector (Mac48Address to, const WifiTxVector& dataTxVector) const;
726  WifiMode GetControlAnswerMode (WifiMode reqMode) const;
727 
734  void ReportRtsFailed (const WifiMacHeader& header);
752  void ReportRtsOk (const WifiMacHeader& header,
753  double ctsSnr, WifiMode ctsMode, double rtsSnr);
764  void ReportDataOk (Ptr<const WifiMacQueueItem> mpdu, double ackSnr,
765  WifiMode ackMode, double dataSnr, WifiTxVector dataTxVector);
772  void ReportFinalRtsFailed (const WifiMacHeader& header);
792  void ReportAmpduTxStatus (Mac48Address address, uint16_t nSuccessfulMpdus, uint16_t nFailedMpdus,
793  double rxSnr, double dataSnr, WifiTxVector dataTxVector);
794 
802  void ReportRxOk (Mac48Address address, RxSignalInfo rxSignalInfo, WifiTxVector txVector);
803 
811  bool NeedRts (const WifiMacHeader &header, uint32_t size);
820  bool NeedCtsToSelf (WifiTxVector txVector);
821 
842  uint32_t GetFragmentSize (Ptr<const WifiMacQueueItem> mpdu, uint32_t fragmentNumber);
849  uint32_t GetFragmentOffset (Ptr<const WifiMacQueueItem> mpdu, uint32_t fragmentNumber);
856  bool IsLastFragment (Ptr<const WifiMacQueueItem> mpdu, uint32_t fragmentNumber);
857 
861  uint8_t GetDefaultTxPowerLevel (void) const;
877  double GetMostRecentRssi (Mac48Address address) const;
883  void SetDefaultTxPowerLevel (uint8_t txPower);
887  uint8_t GetNumberOfAntennas (void) const;
891  uint8_t GetMaxNumberOfTransmitStreams (void) const;
899  bool UseLdpcForDestination (Mac48Address dest) const;
900 
908  typedef void (*PowerChangeTracedCallback)(double oldPower, double newPower, Mac48Address remoteAddress);
909 
917  typedef void (*RateChangeTracedCallback)(DataRate oldRate, DataRate newRate, Mac48Address remoteAddress);
918 
924  Ptr<WifiPhy> GetPhy (void) const;
930  Ptr<WifiMac> GetMac (void) const;
931 
932 
933 protected:
934  virtual void DoDispose (void);
943  WifiMode GetSupported (const WifiRemoteStation *station, uint8_t i) const;
951  uint8_t GetNSupported (const WifiRemoteStation *station) const;
960  bool GetQosSupported (const WifiRemoteStation *station) const;
969  bool GetHtSupported (const WifiRemoteStation *station) const;
978  bool GetVhtSupported (const WifiRemoteStation *station) const;
987  bool GetHeSupported (const WifiRemoteStation *station) const;
997  WifiMode GetMcsSupported (const WifiRemoteStation *station, uint8_t i) const;
1005  uint8_t GetNMcsSupported (const WifiRemoteStation *station) const;
1014  WifiMode GetNonErpSupported (const WifiRemoteStation *station, uint8_t i) const;
1022  uint32_t GetNNonErpSupported (const WifiRemoteStation *station) const;
1030  Mac48Address GetAddress (const WifiRemoteStation *station) const;
1038  uint16_t GetChannelWidth (const WifiRemoteStation *station) const;
1047  bool GetShortGuardIntervalSupported (const WifiRemoteStation *station) const;
1055  uint16_t GetGuardInterval (const WifiRemoteStation *station) const;
1064  bool GetAggregation (const WifiRemoteStation *station) const;
1065 
1073  uint8_t GetNumberOfSupportedStreams (const WifiRemoteStation *station) const;
1081  uint8_t GetNess (const WifiRemoteStation *station) const;
1082 
1083 
1084 private:
1094  uint16_t GetStaId (Mac48Address address, const WifiTxVector& txVector) const;
1095 
1107  virtual bool DoNeedRts (WifiRemoteStation *station,
1108  uint32_t size, bool normally);
1120  virtual bool DoNeedRetransmission (WifiRemoteStation *station,
1121  Ptr<const Packet> packet, bool normally);
1133  virtual bool DoNeedFragmentation (WifiRemoteStation *station,
1134  Ptr<const Packet> packet, bool normally);
1138  virtual WifiRemoteStation* DoCreateStation (void) const = 0;
1157 
1164  virtual void DoReportRtsFailed (WifiRemoteStation *station) = 0;
1171  virtual void DoReportDataFailed (WifiRemoteStation *station) = 0;
1181  virtual void DoReportRtsOk (WifiRemoteStation *station,
1182  double ctsSnr, WifiMode ctsMode, double rtsSnr) = 0;
1194  virtual void DoReportDataOk (WifiRemoteStation *station, double ackSnr, WifiMode ackMode,
1195  double dataSnr, uint16_t dataChannelWidth, uint8_t dataNss) = 0;
1202  virtual void DoReportFinalRtsFailed (WifiRemoteStation *station) = 0;
1209  virtual void DoReportFinalDataFailed (WifiRemoteStation *station) = 0;
1218  virtual void DoReportRxOk (WifiRemoteStation *station,
1219  double rxSnr, WifiMode txMode) = 0;
1235  virtual void DoReportAmpduTxStatus (WifiRemoteStation *station, uint16_t nSuccessfulMpdus, uint16_t nFailedMpdus,
1236  double rxSnr, double dataSnr, uint16_t dataChannelWidth, uint8_t dataNss);
1237 
1253 
1260  void DoSetFragmentationThreshold (uint32_t threshold);
1266  uint32_t DoGetFragmentationThreshold (void) const;
1275 
1293 
1304 
1307 
1310 
1311  uint32_t m_maxSsrc;
1312  uint32_t m_maxSlrc;
1323 
1324  std::array<uint32_t, AC_BE_NQOS> m_ssrc;
1325  std::array<uint32_t, AC_BE_NQOS> m_slrc;
1326 
1345 };
1346 
1347 } //namespace ns3
1348 
1349 #endif /* WIFI_REMOTE_STATION_MANAGER_H */
ns3::WifiRemoteStationManager::IsAssociated
bool IsAssociated(Mac48Address address) const
Return whether the station associated.
Definition: wifi-remote-station-manager.cc:448
ns3::TypeId
a unique identifier for an interface.
Definition: type-id.h:59
ns3::WifiRemoteStationManager::GetDefaultTxPowerLevel
uint8_t GetDefaultTxPowerLevel(void) const
Definition: wifi-remote-station-manager.cc:1206
ns3::VhtCapabilities
The IEEE 802.11ac VHT Capabilities.
Definition: vht-capabilities.h:35
ns3::WifiRemoteStationManager::GetNBasicMcs
uint8_t GetNBasicMcs(void) const
Return the number of basic MCS index.
Definition: wifi-remote-station-manager.cc:1575
ns3::WifiRemoteStationManager::m_bssBasicRateSet
WifiModeList m_bssBasicRateSet
This member is the list of WifiMode objects that comprise the BSSBasicRateSet parameter.
Definition: wifi-remote-station-manager.h:1302
ns3::WifiRemoteStationManager::m_shortPreambleEnabled
bool m_shortPreambleEnabled
flag if short PHY preamble is enabled
Definition: wifi-remote-station-manager.h:1319
ns3::WifiRemoteStationManager::SetMaxSsrc
void SetMaxSsrc(uint32_t maxSsrc)
Sets the maximum STA short retry count (SSRC).
Definition: wifi-remote-station-manager.cc:178
ns3::WifiModeList
std::vector< WifiMode > WifiModeList
In various parts of the code, folk are interested in maintaining a list of transmission modes.
Definition: wifi-mode.h:254
ns3::WifiRemoteStationManager::AddStationHeCapabilities
void AddStationHeCapabilities(Mac48Address from, HeCapabilities heCapabilities)
Records HE capabilities of the remote station.
Definition: wifi-remote-station-manager.cc:1361
ns3::WifiRemoteStationManager::GetDefaultMcs
WifiMode GetDefaultMcs(void) const
Return the default Modulation and Coding Scheme (MCS) index.
Definition: wifi-remote-station-manager.cc:1464
ns3::WifiRemoteStationManager::GetMac
Ptr< WifiMac > GetMac(void) const
Return the WifiMac.
Definition: wifi-remote-station-manager.cc:1737
ns3::WifiRemoteStationManager::GetUseNonErpProtection
bool GetUseNonErpProtection(void) const
Return whether the device supports protection of non-ERP stations.
Definition: wifi-remote-station-manager.cc:1051
ns3::WifiRemoteStationState::m_aid
uint16_t m_aid
AID of the remote station (unused if this object is installed on a non-AP station)
Definition: wifi-remote-station-manager.h:96
ns3::WifiRemoteStationManager::ReportAmpduTxStatus
void ReportAmpduTxStatus(Mac48Address address, uint16_t nSuccessfulMpdus, uint16_t nFailedMpdus, double rxSnr, double dataSnr, WifiTxVector dataTxVector)
Typically called per A-MPDU, either when a Block ACK was successfully received or when a BlockAckTime...
Definition: wifi-remote-station-manager.cc:943
ns3::WifiRemoteStationState::m_vhtCapabilities
Ptr< const VhtCapabilities > m_vhtCapabilities
remote station VHT capabilities
Definition: wifi-remote-station-manager.h:103
ns3::WifiRemoteStationManager::CTS_TO_SELF
@ CTS_TO_SELF
Definition: wifi-remote-station-manager.h:136
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::WifiRemoteStationState::WAIT_ASSOC_TX_OK
@ WAIT_ASSOC_TX_OK
Definition: wifi-remote-station-manager.h:80
ns3::WifiRemoteStationManager::SetShortSlotTimeEnabled
void SetShortSlotTimeEnabled(bool enable)
Enable or disable short slot time.
Definition: wifi-remote-station-manager.cc:213
ns3::WifiRemoteStationManager::RTS_CTS
@ RTS_CTS
Definition: wifi-remote-station-manager.h:135
ns3::WifiRemoteStationManager::GetShortGuardIntervalSupported
bool GetShortGuardIntervalSupported(void) const
Return whether the device has SGI support enabled.
Definition: wifi-remote-station-manager.cc:281
qos-utils.h
ns3::WifiRemoteStationManager::GetSupported
WifiMode GetSupported(const WifiRemoteStation *station, uint8_t i) const
Return whether mode associated with the specified station at the specified index.
Definition: wifi-remote-station-manager.cc:1635
ns3::WifiRemoteStationManager::Lookup
WifiRemoteStation * Lookup(Mac48Address address) const
Return the station associated with the given address.
Definition: wifi-remote-station-manager.cc:1265
ns3::WifiRemoteStationManager::SetRtsCtsThreshold
void SetRtsCtsThreshold(uint32_t threshold)
Sets the RTS threshold.
Definition: wifi-remote-station-manager.cc:192
ns3::WifiRemoteStationManager::UseLdpcForDestination
bool UseLdpcForDestination(Mac48Address dest) const
Definition: wifi-remote-station-manager.cc:1884
ns3::WifiRemoteStationManager::GetBlockAckTxVector
WifiTxVector GetBlockAckTxVector(Mac48Address to, const WifiTxVector &dataTxVector) const
Return a TXVECTOR for the BlockAck frame given the destination and the mode of the Data used by the s...
Definition: wifi-remote-station-manager.cc:673
ns3::WifiRemoteStationManager::AddBasicMcs
void AddBasicMcs(WifiMode mcs)
Add a given Modulation and Coding Scheme (MCS) index to the set of basic MCS.
Definition: wifi-remote-station-manager.cc:1561
ns3::WifiRemoteStationManager::ReportRtsFailed
void ReportRtsFailed(const WifiMacHeader &header)
Should be invoked whenever the RtsTimeout associated to a transmission attempt expires.
Definition: wifi-remote-station-manager.cc:829
ns3::WifiRemoteStationManager::GetNNonErpSupported
uint32_t GetNNonErpSupported(const WifiRemoteStation *station) const
Return the number of non-ERP modes supported by the given station.
Definition: wifi-remote-station-manager.cc:1779
ns3::WifiRemoteStationManager::GetNonErpBasicMode
WifiMode GetNonErpBasicMode(uint8_t i) const
Return a basic mode from the set of basic modes that is not an ERP mode.
Definition: wifi-remote-station-manager.cc:1536
ns3::WifiRemoteStationManager::NeedFragmentation
bool NeedFragmentation(Ptr< const WifiMacQueueItem > mpdu)
Definition: wifi-remote-station-manager.cc:1093
ns3::WifiRemoteStationManager::m_ssrc
std::array< uint32_t, AC_BE_NQOS > m_ssrc
short retry count per AC
Definition: wifi-remote-station-manager.h:1324
ns3::HeCapabilities
The IEEE 802.11ax HE Capabilities.
Definition: he-capabilities.h:34
ns3::WifiRemoteStationManager::GetControlAnswerMode
WifiMode GetControlAnswerMode(WifiMode reqMode) const
Get control answer mode function.
Definition: wifi-remote-station-manager.cc:689
ns3::WifiRemoteStationManager::RecordGotAssocTxFailed
void RecordGotAssocTxFailed(Mac48Address address)
Records that we missed an ACK for the association response we sent.
Definition: wifi-remote-station-manager.cc:482
ns3::WifiRemoteStationManager::GetNBasicModes
uint8_t GetNBasicModes(void) const
Return the number of basic modes we support.
Definition: wifi-remote-station-manager.cc:1508
ns3::WifiRemoteStationManager::SetAssociationId
void SetAssociationId(Mac48Address remoteAddress, uint16_t aid)
Record the AID of a remote station.
Definition: wifi-remote-station-manager.cc:1285
ns3::WifiRemoteStationManager
hold a list of per-remote-station state.
Definition: wifi-remote-station-manager.h:121
ns3::WifiRemoteStationManager::GetHtSupported
bool GetHtSupported(void) const
Return whether the device has HT capability support enabled.
Definition: wifi-remote-station-manager.cc:232
ns3::Mac48Address
an EUI-48 address
Definition: mac48-address.h:44
ns3::WifiRemoteStationManager::GetVhtSupported
bool GetVhtSupported(void) const
Return whether the device has VHT capability support enabled.
Definition: wifi-remote-station-manager.cc:244
ns3::WifiRemoteStationManager::GetGuardInterval
uint16_t GetGuardInterval(void) const
Return the supported HE guard interval duration (in nanoseconds).
Definition: wifi-remote-station-manager.cc:297
ns3::WifiRemoteStationManager::GetNSupported
uint8_t GetNSupported(const WifiRemoteStation *station) const
Return the number of modes supported by the given station.
Definition: wifi-remote-station-manager.cc:1743
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::WifiRemoteStationManager::m_wifiMac
Ptr< WifiMac > m_wifiMac
This is a pointer to the WifiMac associated with this WifiRemoteStationManager that is set on call to...
Definition: wifi-remote-station-manager.h:1292
ns3::WifiRemoteStationManager::DoReportFinalRtsFailed
virtual void DoReportFinalRtsFailed(WifiRemoteStation *station)=0
This method is a pure virtual method that must be implemented by the sub-class.
third.mac
mac
Definition: third.py:99
ns3::WifiRemoteStationManager::GetChannelWidthSupported
uint16_t GetChannelWidthSupported(Mac48Address address) const
Return the channel width supported by the station.
Definition: wifi-remote-station-manager.cc:1794
ns3::WifiRemoteStationManager::DoReportRxOk
virtual void DoReportRxOk(WifiRemoteStation *station, double rxSnr, WifiMode txMode)=0
This method is a pure virtual method that must be implemented by the sub-class.
ns3::WifiRemoteStationManager::ReportRxOk
void ReportRxOk(Mac48Address address, RxSignalInfo rxSignalInfo, WifiTxVector txVector)
Definition: wifi-remote-station-manager.cc:930
ns3::WifiRemoteStationState::m_state
enum ns3::WifiRemoteStationState::@0 m_state
State of the station.
ns3::WifiRemoteStationManager::AddAllSupportedModes
void AddAllSupportedModes(Mac48Address address)
Invoked in a STA or AP to store all of the modes supported by a destination which is also supported l...
Definition: wifi-remote-station-manager.cc:364
ns3::WifiRemoteStationManager::GetShortPreambleSupported
bool GetShortPreambleSupported(Mac48Address address) const
Return whether the station supports short PHY preamble or not.
Definition: wifi-remote-station-manager.cc:420
ns3::WifiRemoteStationManager::AddAllSupportedMcs
void AddAllSupportedMcs(Mac48Address address)
Invoked in a STA or AP to store all of the MCS supported by a destination which is also supported loc...
Definition: wifi-remote-station-manager.cc:381
ns3::WifiRemoteStationManager::m_useNonErpProtection
bool m_useNonErpProtection
flag if protection for non-ERP stations against ERP transmissions is enabled
Definition: wifi-remote-station-manager.h:1317
ns3::WifiRemoteStationManager::GetShortPreambleEnabled
bool GetShortPreambleEnabled(void) const
Return whether the device uses short PHY preambles.
Definition: wifi-remote-station-manager.cc:226
ns3::WifiRemoteStationManager::ProtectionMode
ProtectionMode
ProtectionMode enumeration.
Definition: wifi-remote-station-manager.h:134
ns3::WifiRemoteStationManager::GetAddress
Mac48Address GetAddress(const WifiRemoteStation *station) const
Return the address of the station.
Definition: wifi-remote-station-manager.cc:1677
ns3::WifiRemoteStationManager::GetNFragments
uint32_t GetNFragments(Ptr< const WifiMacQueueItem > mpdu)
Return the number of fragments needed for the given packet.
Definition: wifi-remote-station-manager.cc:1142
ns3::WifiRemoteStationManager::m_macTxFinalRtsFailed
TracedCallback< Mac48Address > m_macTxFinalRtsFailed
The trace source fired when the transmission of a RTS has exceeded the maximum number of attempts.
Definition: wifi-remote-station-manager.h:1339
ns3::WifiRemoteStationManager::GetPhy
Ptr< WifiPhy > GetPhy(void) const
Return the WifiPhy.
Definition: wifi-remote-station-manager.cc:1731
ns3::WifiRemoteStationManager::m_maxSlrc
uint32_t m_maxSlrc
Maximum STA long retry count (SLRC)
Definition: wifi-remote-station-manager.h:1312
ns3::WifiRemoteStationManager::m_macTxDataFailed
TracedCallback< Mac48Address > m_macTxDataFailed
The trace source fired when the transmission of a single data packet has failed.
Definition: wifi-remote-station-manager.h:1334
ns3::WifiMacHeader
Implements the IEEE 802.11 MAC header.
Definition: wifi-mac-header.h:85
ns3::WifiRemoteStationManager::AddSupportedMode
void AddSupportedMode(Mac48Address address, WifiMode mode)
Invoked in a STA or AP to store the set of modes supported by a destination which is also supported l...
Definition: wifi-remote-station-manager.cc:335
ns3::WifiRemoteStationState::m_operationalMcsSet
WifiModeList m_operationalMcsSet
operational MCS set
Definition: wifi-remote-station-manager.h:94
ns3::WifiRemoteStationManager::DoGetFragmentationThreshold
uint32_t DoGetFragmentationThreshold(void) const
Return the current fragmentation threshold.
Definition: wifi-remote-station-manager.cc:1136
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:74
ns3::WifiRemoteStationState::BRAND_NEW
@ BRAND_NEW
Definition: wifi-remote-station-manager.h:78
ns3::WifiRemoteStationState::GOT_ASSOC_TX_OK
@ GOT_ASSOC_TX_OK
Definition: wifi-remote-station-manager.h:81
ns3::WifiRemoteStationManager::m_erpProtectionMode
ProtectionMode m_erpProtectionMode
Protection mode for ERP stations when non-ERP stations are detected.
Definition: wifi-remote-station-manager.h:1321
ns3::DataRate
Class for representing data rates.
Definition: data-rate.h:89
ns3::WifiRemoteStationManager::GetStationHeCapabilities
Ptr< const HeCapabilities > GetStationHeCapabilities(Mac48Address from)
Return the HE capabilities sent by the remote station.
Definition: wifi-remote-station-manager.cc:1430
ns3::WifiRemoteStationManager::GetNonUnicastMode
WifiMode GetNonUnicastMode(void) const
Return a mode for non-unicast packets.
Definition: wifi-remote-station-manager.cc:1588
ns3::WifiRemoteStationState::m_channelWidth
uint16_t m_channelWidth
Channel width (in MHz) supported by the remote station.
Definition: wifi-remote-station-manager.h:105
ns3::WifiRemoteStationManager::DoSetFragmentationThreshold
void DoSetFragmentationThreshold(uint32_t threshold)
Actually sets the fragmentation threshold, it also checks the validity of the given threshold.
Definition: wifi-remote-station-manager.cc:1106
ns3::WifiRemoteStationManager::DoReportRtsOk
virtual void DoReportRtsOk(WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr)=0
This method is a pure virtual method that must be implemented by the sub-class.
ns3::WifiRemoteStationManager::GetQosSupported
bool GetQosSupported(Mac48Address address) const
Return whether the given station is QoS capable.
Definition: wifi-remote-station-manager.cc:432
ns3::WifiRemoteStationManager::m_slrc
std::array< uint32_t, AC_BE_NQOS > m_slrc
long retry count per AC
Definition: wifi-remote-station-manager.h:1325
ns3::WifiRemoteStationManager::GetStationHtCapabilities
Ptr< const HtCapabilities > GetStationHtCapabilities(Mac48Address from)
Return the HT capabilities sent by the remote station.
Definition: wifi-remote-station-manager.cc:1418
ns3::WifiRemoteStationManager::GetNumberOfSupportedStreams
uint8_t GetNumberOfSupportedStreams(Mac48Address address) const
Return the number of spatial streams supported by the station.
Definition: wifi-remote-station-manager.cc:1812
wifi-remote-station-info.h
ns3::WifiRemoteStationManager::RemoveAllSupportedMcs
void RemoveAllSupportedMcs(Mac48Address address)
Invoked in a STA or AP to delete all of the supported MCS by a destination.
Definition: wifi-remote-station-manager.cc:394
ns3::WifiMode
represent a single transmission mode
Definition: wifi-mode.h:48
ns3::WifiRemoteStationManager::NeedRts
bool NeedRts(const WifiMacHeader &header, uint32_t size)
Definition: wifi-remote-station-manager.cc:957
ns3::WifiRemoteStationManager::DoReportDataFailed
virtual void DoReportDataFailed(WifiRemoteStation *station)=0
This method is a pure virtual method that must be implemented by the sub-class.
ns3::WifiRemoteStationManager::m_stations
Stations m_stations
Information for each known stations.
Definition: wifi-remote-station-manager.h:1306
ns3::WifiRemoteStationManager::RateChangeTracedCallback
void(* RateChangeTracedCallback)(DataRate oldRate, DataRate newRate, Mac48Address remoteAddress)
TracedCallback signature for rate change events.
Definition: wifi-remote-station-manager.h:917
ns3::WifiRemoteStationManager::SetQosSupport
void SetQosSupport(Mac48Address from, bool qosSupported)
Records QoS support of the remote station.
Definition: wifi-remote-station-manager.cc:1292
ns3::WifiRemoteStationManager::m_defaultTxMode
WifiMode m_defaultTxMode
The default transmission mode.
Definition: wifi-remote-station-manager.h:1308
ns3::WifiRemoteStationManager::GetOfdmSupported
bool GetOfdmSupported(const Mac48Address &address) const
Return whether the station supports OFDM or not.
Definition: wifi-remote-station-manager.cc:1842
ns3::WifiRemoteStationManager::AddSupportedErpSlotTime
void AddSupportedErpSlotTime(Mac48Address address, bool isShortSlotTimeSupported)
Record whether the short ERP slot time is supported by the station.
Definition: wifi-remote-station-manager.cc:326
ns3::Object
A base class which provides memory management and object aggregation.
Definition: object.h:88
ns3::WifiRemoteStationManager::Reset
void Reset(void)
Reset the station, invoked in a STA upon dis-association or in an AP upon reboot.
Definition: wifi-remote-station-manager.cc:1470
ns3::WifiRemoteStationManager::GetShortSlotTimeSupported
bool GetShortSlotTimeSupported(Mac48Address address) const
Return whether the station supports short ERP slot time or not.
Definition: wifi-remote-station-manager.cc:426
ns3::HtCapabilities
The HT Capabilities Information Element.
Definition: ht-capabilities.h:42
ns3::WifiRemoteStationManager::m_defaultTxMcs
WifiMode m_defaultTxMcs
The default transmission modulation-coding scheme (MCS)
Definition: wifi-remote-station-manager.h:1309
ns3::WifiRemoteStationState::m_ness
uint8_t m_ness
Number of extended spatial streams of the remote station.
Definition: wifi-remote-station-manager.h:107
ns3::WifiRemoteStationManager::m_defaultTxPowerLevel
uint8_t m_defaultTxPowerLevel
Default transmission power level.
Definition: wifi-remote-station-manager.h:1315
ns3::WifiRemoteStationManager::ReportRtsOk
void ReportRtsOk(const WifiMacHeader &header, double ctsSnr, WifiMode ctsMode, double rtsSnr)
Should be invoked whenever we receive the CTS associated to an RTS we just sent.
Definition: wifi-remote-station-manager.cc:859
ns3::WifiRemoteStationManager::AddBasicMode
void AddBasicMode(WifiMode mode)
Invoked in a STA upon association to store the set of rates which belong to the BSSBasicRateSet of th...
Definition: wifi-remote-station-manager.cc:1490
ns3::WifiRemoteStationManager::NeedCtsToSelf
bool NeedCtsToSelf(WifiTxVector txVector)
Return if we need to do CTS-to-self before sending a DATA.
Definition: wifi-remote-station-manager.cc:991
ns3::WifiRemoteStationManager::m_useNonHtProtection
bool m_useNonHtProtection
flag if protection for non-HT stations against HT transmissions is enabled
Definition: wifi-remote-station-manager.h:1318
ns3::WifiRemoteStationState::m_ofdmSupported
bool m_ofdmSupported
Flag if OFDM is supported by the remote station.
Definition: wifi-remote-station-manager.h:101
ns3::WifiRemoteStationManager::GetNess
uint8_t GetNess(const WifiRemoteStation *station) const
Definition: wifi-remote-station-manager.cc:1725
ns3::WifiRemoteStationManager::m_macTxFinalDataFailed
TracedCallback< Mac48Address > m_macTxFinalDataFailed
The trace source fired when the transmission of a data packet has exceeded the maximum number of atte...
Definition: wifi-remote-station-manager.h:1344
ns3::WifiRemoteStationManager::DoReportAmpduTxStatus
virtual void DoReportAmpduTxStatus(WifiRemoteStation *station, uint16_t nSuccessfulMpdus, uint16_t nFailedMpdus, double rxSnr, double dataSnr, uint16_t dataChannelWidth, uint8_t dataNss)
Typically called per A-MPDU, either when a Block ACK was successfully received or when a BlockAckTime...
Definition: wifi-remote-station-manager.cc:1629
ns3::WifiRemoteStation::~WifiRemoteStation
virtual ~WifiRemoteStation()
Definition: wifi-remote-station-manager.h:63
ns3::WifiRemoteStationManager::GetUseNonHtProtection
bool GetUseNonHtProtection(void) const
Return whether the device supports protection of non-HT stations.
Definition: wifi-remote-station-manager.cc:1064
ns3::WifiRemoteStationState::m_shortSlotTime
bool m_shortSlotTime
Flag if short ERP slot time is supported by the remote station.
Definition: wifi-remote-station-manager.h:110
ns3::WifiRemoteStationManager::GetStaId
uint16_t GetStaId(Mac48Address address, const WifiTxVector &txVector) const
If the given TXVECTOR is used for a MU transmission, return the STAID of the station with the given a...
Definition: wifi-remote-station-manager.cc:508
ns3::WifiRemoteStationManager::WifiRemoteStationManager
WifiRemoteStationManager()
Definition: wifi-remote-station-manager.cc:120
ns3::WifiRemoteStationManager::GetFragmentOffset
uint32_t GetFragmentOffset(Ptr< const WifiMacQueueItem > mpdu, uint32_t fragmentNumber)
Definition: wifi-remote-station-manager.cc:1185
first.address
address
Definition: first.py:44
ns3::WifiRemoteStationManager::GetDefaultMode
WifiMode GetDefaultMode(void) const
Return the default transmission mode.
Definition: wifi-remote-station-manager.cc:1458
ns3::WifiRemoteStationManager::IsBrandNew
bool IsBrandNew(Mac48Address address) const
Return whether the station state is brand new.
Definition: wifi-remote-station-manager.cc:438
ns3::WifiRemoteStationManager::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: wifi-remote-station-manager.cc:46
ns3::WifiRemoteStationManager::m_htProtectionMode
ProtectionMode m_htProtectionMode
Protection mode for HT stations when non-HT stations are detected.
Definition: wifi-remote-station-manager.h:1322
ns3::WifiRemoteStationManager::m_rtsCtsThreshold
uint32_t m_rtsCtsThreshold
Threshold for RTS/CTS.
Definition: wifi-remote-station-manager.h:1313
wifi-mode.h
ns3::WifiRemoteStationManager::m_shortSlotTimeEnabled
bool m_shortSlotTimeEnabled
flag if short slot time is enabled
Definition: wifi-remote-station-manager.h:1320
ns3::WifiRemoteStationManager::GetErpOfdmSupported
bool GetErpOfdmSupported(const Mac48Address &address) const
Return whether the station supports ERP OFDM or not.
Definition: wifi-remote-station-manager.cc:1836
ns3::WifiRemoteStationManager::SetupPhy
virtual void SetupPhy(const Ptr< WifiPhy > phy)
Set up PHY associated with this device since it is the object that knows the full set of transmit rat...
Definition: wifi-remote-station-manager.cc:142
ns3::WifiRemoteStationManager::AddSupportedPhyPreamble
void AddSupportedPhyPreamble(Mac48Address address, bool isShortPreambleSupported)
Record whether the short PHY preamble is supported by the station.
Definition: wifi-remote-station-manager.cc:317
ns3::WifiRemoteStationManager::GetShortSlotTimeEnabled
bool GetShortSlotTimeEnabled(void) const
Return whether the device uses short slot time.
Definition: wifi-remote-station-manager.cc:220
ns3::WifiRemoteStationManager::GetLdpcSupported
bool GetLdpcSupported(void) const
Return whether the device has LDPC support enabled.
Definition: wifi-remote-station-manager.cc:268
ns3::WifiRemoteStationManager::SetShortPreambleEnabled
void SetShortPreambleEnabled(bool enable)
Enable or disable short PHY preambles.
Definition: wifi-remote-station-manager.cc:206
ns3::WifiRemoteStationManager::GetBasicMcs
WifiMode GetBasicMcs(uint8_t i) const
Return the MCS at the given list index.
Definition: wifi-remote-station-manager.cc:1581
ns3::WifiRemoteStationManager::GetStationVhtCapabilities
Ptr< const VhtCapabilities > GetStationVhtCapabilities(Mac48Address from)
Return the VHT capabilities sent by the remote station.
Definition: wifi-remote-station-manager.cc:1424
ns3::WifiRemoteStationManager::m_macTxRtsFailed
TracedCallback< Mac48Address > m_macTxRtsFailed
The trace source fired when the transmission of a single RTS has failed.
Definition: wifi-remote-station-manager.h:1330
ns3::WifiRemoteStationManager::PowerChangeTracedCallback
void(* PowerChangeTracedCallback)(double oldPower, double newPower, Mac48Address remoteAddress)
TracedCallback signature for power change events.
Definition: wifi-remote-station-manager.h:908
ns3::WifiRemoteStationManager::RecordWaitAssocTxOk
void RecordWaitAssocTxOk(Mac48Address address)
Records that we are waiting for an ACK for the association response we sent.
Definition: wifi-remote-station-manager.cc:468
ns3::WifiRemoteStationManager::IsLastFragment
bool IsLastFragment(Ptr< const WifiMacQueueItem > mpdu, uint32_t fragmentNumber)
Definition: wifi-remote-station-manager.cc:1196
ns3::WifiRemoteStationManager::AddStationHtCapabilities
void AddStationHtCapabilities(Mac48Address from, HtCapabilities htCapabilities)
Records HT capabilities of the remote station.
Definition: wifi-remote-station-manager.cc:1301
ns3::WifiRemoteStationManager::AddStationVhtCapabilities
void AddStationVhtCapabilities(Mac48Address from, VhtCapabilities vhtCapabilities)
Records VHT capabilities of the remote station.
Definition: wifi-remote-station-manager.cc:1327
ns3::WifiRemoteStationManager::GetDataTxVector
WifiTxVector GetDataTxVector(const WifiMacHeader &header)
Definition: wifi-remote-station-manager.cc:535
ns3::WifiRemoteStationState::m_qosSupported
bool m_qosSupported
Flag if QoS is supported by the station.
Definition: wifi-remote-station-manager.h:111
ns3::WifiRemoteStationState::m_shortPreamble
bool m_shortPreamble
Flag if short PHY preamble is supported by the remote station.
Definition: wifi-remote-station-manager.h:109
ns3::WifiRemoteStationManager::GetAckTxVector
WifiTxVector GetAckTxVector(Mac48Address to, const WifiTxVector &dataTxVector) const
Return a TXVECTOR for the Ack frame given the destination and the mode of the Data used by the sender...
Definition: wifi-remote-station-manager.cc:657
ns3::WifiRemoteStation
hold per-remote-station state.
Definition: wifi-remote-station-manager.h:62
ns3::WifiRemoteStationManager::ReportDataFailed
void ReportDataFailed(Ptr< const WifiMacQueueItem > mpdu)
Should be invoked whenever the AckTimeout associated to a transmission attempt expires.
Definition: wifi-remote-station-manager.cc:840
ns3::WifiRemoteStationManager::~WifiRemoteStationManager
virtual ~WifiRemoteStationManager()
Definition: wifi-remote-station-manager.cc:129
ns3::WifiRemoteStationManager::RecordDisassociated
void RecordDisassociated(Mac48Address address)
Records that the STA was disassociated.
Definition: wifi-remote-station-manager.cc:489
ns3::WifiRemoteStationManager::GetAggregation
bool GetAggregation(const WifiRemoteStation *station) const
Return whether the given station supports A-MPDU.
Definition: wifi-remote-station-manager.cc:1707
ns3::WifiRemoteStationManager::DoNeedRetransmission
virtual bool DoNeedRetransmission(WifiRemoteStation *station, Ptr< const Packet > packet, bool normally)
Definition: wifi-remote-station-manager.cc:1615
ns3::WifiRemoteStationState::m_info
WifiRemoteStationInfo m_info
remote station info
Definition: wifi-remote-station-manager.h:98
ns3::WifiRemoteStationState::m_dsssSupported
bool m_dsssSupported
Flag if DSSS is supported by the remote station.
Definition: wifi-remote-station-manager.h:99
ns3::WifiRemoteStationManager::GetNumberOfAntennas
uint8_t GetNumberOfAntennas(void) const
Definition: wifi-remote-station-manager.cc:1872
wifi-utils.h
ns3::WifiRemoteStationManager::GetFragmentationThreshold
uint32_t GetFragmentationThreshold(void) const
Return the fragmentation threshold.
Definition: wifi-remote-station-manager.cc:311
ns3::WifiRemoteStationManager::GetFragmentSize
uint32_t GetFragmentSize(Ptr< const WifiMacQueueItem > mpdu, uint32_t fragmentNumber)
Definition: wifi-remote-station-manager.cc:1158
ns3::RxSignalInfo
RxSignalInfo structure containing info on the received signal.
Definition: phy-entity.h:67
ns3::WifiRemoteStation::m_state
WifiRemoteStationState * m_state
Remote station state.
Definition: wifi-remote-station-manager.h:63
ns3::WifiRemoteStationState::m_htCapabilities
Ptr< const HtCapabilities > m_htCapabilities
remote station HT capabilities
Definition: wifi-remote-station-manager.h:102
ns3::WifiRemoteStationManager::GetNonErpSupported
WifiMode GetNonErpSupported(const WifiRemoteStation *station, uint8_t i) const
Return whether non-ERP mode associated with the specified station at the specified index.
Definition: wifi-remote-station-manager.cc:1649
ns3::WifiRemoteStationManager::DoReportRtsFailed
virtual void DoReportRtsFailed(WifiRemoteStation *station)=0
This method is a pure virtual method that must be implemented by the sub-class.
ns3::WifiRemoteStationState::m_guardInterval
uint16_t m_guardInterval
HE Guard interval duration (in nanoseconds) supported by the remote station.
Definition: wifi-remote-station-manager.h:106
ns3::WifiRemoteStationManager::RecordGotAssocTxOk
void RecordGotAssocTxOk(Mac48Address address)
Records that we got an ACK for the association response we sent.
Definition: wifi-remote-station-manager.cc:475
ns3::WifiRemoteStationManager::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-remote-station-manager.cc:171
ns3::WifiRemoteStationManager::DoNeedRts
virtual bool DoNeedRts(WifiRemoteStation *station, uint32_t size, bool normally)
Definition: wifi-remote-station-manager.cc:1608
ns3::WifiRemoteStationManager::SetFragmentationThreshold
void SetFragmentationThreshold(uint32_t threshold)
Sets a fragmentation threshold.
Definition: wifi-remote-station-manager.cc:199
ns3::WifiRemoteStationManager::m_fragmentationThreshold
uint32_t m_fragmentationThreshold
Current threshold for fragmentation.
Definition: wifi-remote-station-manager.h:1314
ns3::WifiRemoteStationState
A struct that holds information about each remote station.
Definition: wifi-remote-station-manager.h:72
ns3::WifiRemoteStationManager::SetMaxSlrc
void SetMaxSlrc(uint32_t maxSlrc)
Sets the maximum STA long retry count (SLRC).
Definition: wifi-remote-station-manager.cc:185
ns3::WifiRemoteStationManager::NeedRetransmission
bool NeedRetransmission(Ptr< const WifiMacQueueItem > mpdu)
Definition: wifi-remote-station-manager.cc:1070
ns3::WifiRemoteStationManager::GetNMcsSupported
uint8_t GetNMcsSupported(Mac48Address address) const
Return the number of MCS supported by the station.
Definition: wifi-remote-station-manager.cc:1824
ns3::WifiRemoteStationState::m_erpOfdmSupported
bool m_erpOfdmSupported
Flag if ERP OFDM is supported by the remote station.
Definition: wifi-remote-station-manager.h:100
ns3::WifiRemoteStationState::m_heCapabilities
Ptr< const HeCapabilities > m_heCapabilities
remote station HE capabilities
Definition: wifi-remote-station-manager.h:104
ns3::WifiRemoteStationManager::SetUseNonErpProtection
void SetUseNonErpProtection(bool enable)
Enable or disable protection for non-ERP stations.
Definition: wifi-remote-station-manager.cc:1044
ns3::WifiRemoteStationManager::m_states
StationStates m_states
States of known stations.
Definition: wifi-remote-station-manager.h:1305
ns3::WifiRemoteStationManager::GetMostRecentRssi
double GetMostRecentRssi(Mac48Address address) const
Definition: wifi-remote-station-manager.cc:1219
ns3::WifiRemoteStationManager::GetMaxNumberOfTransmitStreams
uint8_t GetMaxNumberOfTransmitStreams(void) const
Definition: wifi-remote-station-manager.cc:1878
ns3::WifiRemoteStationManager::SetUseNonHtProtection
void SetUseNonHtProtection(bool enable)
Enable or disable protection for non-HT stations.
Definition: wifi-remote-station-manager.cc:1057
ns3::WifiRemoteStationManager::m_nonUnicastMode
WifiMode m_nonUnicastMode
Transmission mode for non-unicast Data frames.
Definition: wifi-remote-station-manager.h:1316
ns3::WifiRemoteStationManager::DoReportDataOk
virtual void DoReportDataOk(WifiRemoteStation *station, double ackSnr, WifiMode ackMode, double dataSnr, uint16_t dataChannelWidth, uint8_t dataNss)=0
This method is a pure virtual method that must be implemented by the sub-class.
ns3::WifiRemoteStationManager::GetInfo
WifiRemoteStationInfo GetInfo(Mac48Address address)
Definition: wifi-remote-station-manager.cc:1212
ns3::WifiRemoteStationManager::GetDsssSupported
bool GetDsssSupported(const Mac48Address &address) const
Return whether the station supports DSSS or not.
Definition: wifi-remote-station-manager.cc:1830
ns3::WifiRemoteStationManager::Stations
std::unordered_map< Mac48Address, WifiRemoteStation *, WifiAddressHash > Stations
A map of WifiRemoteStations with Mac48Address as key.
Definition: wifi-remote-station-manager.h:142
ns3::WifiRemoteStationManager::AddSupportedMcs
void AddSupportedMcs(Mac48Address address, WifiMode mcs)
Record the MCS index supported by the station.
Definition: wifi-remote-station-manager.cc:403
ns3::WifiRemoteStationState::m_operationalRateSet
WifiModeList m_operationalRateSet
This member is the list of WifiMode objects that comprise the OperationalRateSet parameter for this r...
Definition: wifi-remote-station-manager.h:93
ns3::TracedCallback
Forward calls to a chain of Callback.
Definition: traced-callback.h:53
ns3::WifiRemoteStationManager::SetDefaultTxPowerLevel
void SetDefaultTxPowerLevel(uint8_t txPower)
Set the default transmission power level.
Definition: wifi-remote-station-manager.cc:1866
ns3::WifiRemoteStationManager::ReportDataOk
void ReportDataOk(Ptr< const WifiMacQueueItem > mpdu, double ackSnr, WifiMode ackMode, double dataSnr, WifiTxVector dataTxVector)
Should be invoked whenever we receive the ACK associated to a data packet we just sent.
Definition: wifi-remote-station-manager.cc:872
ns3::WifiRemoteStationManager::m_bssBasicMcsSet
WifiModeList m_bssBasicMcsSet
basic MCS set
Definition: wifi-remote-station-manager.h:1303
ns3::WifiRemoteStationManager::m_wifiPhy
Ptr< WifiPhy > m_wifiPhy
This is a pointer to the WifiPhy associated with this WifiRemoteStationManager that is set on call to...
Definition: wifi-remote-station-manager.h:1284
ns3::WifiRemoteStationState::m_address
Mac48Address m_address
Mac48Address of the remote station.
Definition: wifi-remote-station-manager.h:95
ns3::WifiRemoteStation::m_rssiAndUpdateTimePair
std::pair< double, Time > m_rssiAndUpdateTimePair
RSSI (in dBm) of the most recent packet received from the remote station along with update time.
Definition: wifi-remote-station-manager.h:65
ns3::WifiRemoteStationManager::ReportFinalRtsFailed
void ReportFinalRtsFailed(const WifiMacHeader &header)
Should be invoked after calling ReportRtsFailed if NeedRetransmission returns false.
Definition: wifi-remote-station-manager.cc:896
ns3::WifiRemoteStationManager::GetChannelWidth
uint16_t GetChannelWidth(const WifiRemoteStation *station) const
Return the channel width supported by the station.
Definition: wifi-remote-station-manager.cc:1683
ns3::WifiRemoteStationManager::GetBasicMode
WifiMode GetBasicMode(uint8_t i) const
Return a basic mode from the set of basic modes.
Definition: wifi-remote-station-manager.cc:1514
ns3::WifiRemoteStationManager::m_maxSsrc
uint32_t m_maxSsrc
Maximum STA short retry count (SSRC)
Definition: wifi-remote-station-manager.h:1311
ns3::WifiRemoteStationManager::StationStates
std::unordered_map< Mac48Address, WifiRemoteStationState *, WifiAddressHash > StationStates
A map of WifiRemoteStationStates with Mac48Address as key.
Definition: wifi-remote-station-manager.h:146
ns3::WifiRemoteStationManager::DoCreateStation
virtual WifiRemoteStation * DoCreateStation(void) const =0
ns3::WifiRemoteStationManager::LookupState
WifiRemoteStationState * LookupState(Mac48Address address) const
Return the state of the station associated with the given address.
Definition: wifi-remote-station-manager.cc:1231
ns3::WifiRemoteStationManager::DoGetRtsTxVector
virtual WifiTxVector DoGetRtsTxVector(WifiRemoteStation *station)=0
ns3::WifiRemoteStationManager::GetAssociationId
uint16_t GetAssociationId(Mac48Address remoteAddress) const
Get the AID of a remote station.
Definition: wifi-remote-station-manager.cc:496
ns3::WifiRemoteStationManager::DoNeedFragmentation
virtual bool DoNeedFragmentation(WifiRemoteStation *station, Ptr< const Packet > packet, bool normally)
Definition: wifi-remote-station-manager.cc:1622
ns3::WifiRemoteStationManager::IsWaitAssocTxOk
bool IsWaitAssocTxOk(Mac48Address address) const
Return whether we are waiting for an ACK for the association response we sent.
Definition: wifi-remote-station-manager.cc:458
ns3::WifiRemoteStationManager::GetRtsTxVector
WifiTxVector GetRtsTxVector(Mac48Address address)
Definition: wifi-remote-station-manager.cc:620
ns3::WifiRemoteStationManager::SetupMac
virtual void SetupMac(const Ptr< WifiMac > mac)
Set up MAC associated with this device since it is the object that knows the full set of timing param...
Definition: wifi-remote-station-manager.cc:161
ns3::WifiRemoteStationInfo
TID independent remote station statistics.
Definition: wifi-remote-station-info.h:36
ns3::WifiRemoteStationManager::DoReportFinalDataFailed
virtual void DoReportFinalDataFailed(WifiRemoteStation *station)=0
This method is a pure virtual method that must be implemented by the sub-class.
ns3::WifiRemoteStationManager::GetNNonErpBasicModes
uint32_t GetNNonErpBasicModes(void) const
Return the number of non-ERP basic modes we support.
Definition: wifi-remote-station-manager.cc:1521
ns3::WifiRemoteStationManager::ReportFinalDataFailed
void ReportFinalDataFailed(Ptr< const WifiMacQueueItem > mpdu)
Should be invoked after calling ReportDataFailed if NeedRetransmission returns false.
Definition: wifi-remote-station-manager.cc:909
ns3::WifiRemoteStationState::m_aggregation
bool m_aggregation
Flag if MPDU aggregation is used by the remote station.
Definition: wifi-remote-station-manager.h:108
ns3::WifiRemoteStationManager::GetCtsTxVector
WifiTxVector GetCtsTxVector(Mac48Address to, WifiMode rtsTxMode) const
Return a TXVECTOR for the CTS frame given the destination and the mode of the RTS used by the sender.
Definition: wifi-remote-station-manager.cc:641
ns3::WifiRemoteStationManager::GetHeSupported
bool GetHeSupported(void) const
Return whether the device has HE capability support enabled.
Definition: wifi-remote-station-manager.cc:256
third.phy
phy
Definition: third.py:93
ns3::WifiRemoteStationState::DISASSOC
@ DISASSOC
Definition: wifi-remote-station-manager.h:79
ns3::WifiRemoteStationManager::DoGetDataTxVector
virtual WifiTxVector DoGetDataTxVector(WifiRemoteStation *station)=0
ns3::WifiRemoteStationManager::DoDispose
virtual void DoDispose(void)
Destructor implementation.
Definition: wifi-remote-station-manager.cc:135
ns3::WifiRemoteStationManager::GetMcsSupported
WifiMode GetMcsSupported(const WifiRemoteStation *station, uint8_t i) const
Return the WifiMode supported by the specified station at the specified index.
Definition: wifi-remote-station-manager.cc:1642
ns3::WifiRemoteStationManager::GetCtsToSelfTxVector
WifiTxVector GetCtsToSelfTxVector(void)
Since CTS-to-self parameters are not dependent on the station, it is implemented in wifi remote stati...
Definition: wifi-remote-station-manager.cc:587