A Discrete-Event Network Simulator
API
wifi-mac.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2008 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_MAC_H
22 #define WIFI_MAC_H
23 
24 #include <set>
25 #include <unordered_map>
26 #include "wifi-standards.h"
28 #include "qos-utils.h"
29 #include "ssid.h"
30 
31 namespace ns3 {
32 
33 class Txop;
34 class WifiNetDevice;
35 class QosTxop;
36 class WifiPsdu;
37 class MacRxMiddle;
38 class MacTxMiddle;
39 class WifiMacQueue;
40 class WifiMacQueueItem;
41 class HtConfiguration;
42 class VhtConfiguration;
43 class HeConfiguration;
44 class FrameExchangeManager;
45 class ChannelAccessManager;
46 class ExtendedCapabilities;
47 
52 {
53  STA,
54  AP,
57  OCB
58 };
59 
65 enum WifiMacDropReason : uint8_t
66 {
71 };
72 
73 typedef std::unordered_map <uint16_t /* staId */, Ptr<WifiPsdu> /* PSDU */> WifiPsduMap;
74 
84 class WifiMac : public Object
85 {
86 public:
91  static TypeId GetTypeId (void);
92 
93  WifiMac ();
94  virtual ~WifiMac ();
95 
101  void SetDevice (const Ptr<WifiNetDevice> device);
107  Ptr<WifiNetDevice> GetDevice (void) const;
108 
115 
121  Ptr<Txop> GetTxop (void) const;
128  Ptr<QosTxop> GetQosTxop (AcIndex ac) const;
135  Ptr<QosTxop> GetQosTxop (uint8_t tid) const;
144  virtual Ptr<WifiMacQueue> GetTxopQueue (AcIndex ac) const;
145 
153  void SetTypeOfStation (TypeOfStation type);
159  TypeOfStation GetTypeOfStation (void) const;
160 
164  void SetSsid (Ssid ssid);
172  void SetPromisc (void);
179  void SetCtsToSelfSupported (bool enable);
180 
184  Mac48Address GetAddress (void) const;
188  Ssid GetSsid (void) const;
192  virtual void SetAddress (Mac48Address address);
196  Mac48Address GetBssid (void) const;
200  void SetBssid (Mac48Address bssid);
201 
209  virtual bool CanForwardPacketsTo (Mac48Address to) const = 0;
221  virtual void Enqueue (Ptr<Packet> packet, Mac48Address to, Mac48Address from);
230  virtual void Enqueue (Ptr<Packet> packet, Mac48Address to) = 0;
238  virtual bool SupportsSendFrom (void) const;
239 
243  virtual void SetWifiPhy (Ptr<WifiPhy> phy);
247  Ptr<WifiPhy> GetWifiPhy (void) const;
251  void ResetWifiPhy (void);
252 
261 
271 
276  void SetForwardUpCallback (ForwardUpCallback upCallback);
280  virtual void SetLinkUpCallback (Callback<void> linkUp);
284  void SetLinkDownCallback (Callback<void> linkDown);
285  /* Next functions are not pure virtual so non QoS WifiMacs are not
286  * forced to implement them.
287  */
288 
292  virtual void NotifyChannelSwitching (void);
293 
301  void NotifyTx (Ptr<const Packet> packet);
309  void NotifyTxDrop (Ptr<const Packet> packet);
315  void NotifyRx (Ptr<const Packet> packet);
321  void NotifyPromiscRx (Ptr<const Packet> packet);
327  void NotifyRxDrop (Ptr<const Packet> packet);
328 
336  virtual void ConfigureStandard (WifiStandard standard);
337 
350 
362  HtCapabilities GetHtCapabilities (void) const;
368  VhtCapabilities GetVhtCapabilities (void) const;
374  HeCapabilities GetHeCapabilities (void) const;
375 
381  bool GetQosSupported () const;
387  bool GetErpSupported () const;
393  bool GetDsssSupported () const;
399  bool GetHtSupported () const;
405  bool GetVhtSupported () const;
411  bool GetHeSupported () const;
412 
419  uint32_t GetMaxAmpduSize (AcIndex ac) const;
426  uint16_t GetMaxAmsduSize (AcIndex ac) const;
427 
428 
429 protected:
430  void DoInitialize () override;
431  void DoDispose () override;
432 
440  virtual void ConfigureContentionWindow (uint32_t cwMin, uint32_t cwMax);
441 
449  void SetQosSupported (bool enable);
450 
457  void SetShortSlotTimeSupported (bool enable);
461  bool GetShortSlotTimeSupported (void) const;
462 
468  Ptr<QosTxop> GetVOQueue (void) const;
474  Ptr<QosTxop> GetVIQueue (void) const;
480  Ptr<QosTxop> GetBEQueue (void) const;
486  Ptr<QosTxop> GetBKQueue (void) const;
487 
501  virtual void Receive (Ptr<WifiMacQueueItem> mpdu);
509  void ForwardUp (Ptr<const Packet> packet, Mac48Address from, Mac48Address to);
510 
518 
524 
527 
528 
529 private:
531  WifiMac (const WifiMac&);
539 
549  void ConfigureDcf (Ptr<Txop> dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, AcIndex ac);
550 
555 
562  void SetupEdcaQueue (AcIndex ac);
563 
570  void SetupFrameExchangeManager (WifiStandard standard);
571 
577  void SetErpSupported (bool enable);
583  void SetDsssSupported (bool enable);
584 
590  void SetVoBlockAckThreshold (uint8_t threshold);
596  void SetViBlockAckThreshold (uint8_t threshold);
602  void SetBeBlockAckThreshold (uint8_t threshold);
608  void SetBkBlockAckThreshold (uint8_t threshold);
609 
615  void SetVoBlockAckInactivityTimeout (uint16_t timeout);
621  void SetViBlockAckInactivityTimeout (uint16_t timeout);
627  void SetBeBlockAckInactivityTimeout (uint16_t timeout);
633  void SetBkBlockAckInactivityTimeout (uint16_t timeout);
634 
659 
662 
664 
668 
672 
675  typedef std::map<AcIndex, Ptr<QosTxop> > EdcaQueues;
676 
680 
681  uint16_t m_voMaxAmsduSize;
682  uint16_t m_viMaxAmsduSize;
683  uint16_t m_beMaxAmsduSize;
684  uint16_t m_bkMaxAmsduSize;
685 
686  uint32_t m_voMaxAmpduSize;
687  uint32_t m_viMaxAmpduSize;
688  uint32_t m_beMaxAmpduSize;
689  uint32_t m_bkMaxAmpduSize;
690 
692 
730 
733 
741 
744 
749 
752 
755 
763  typedef void (* MpduResponseTimeoutCallback)(uint8_t reason, Ptr<const WifiMacQueueItem> mpdu,
764  const WifiTxVector& txVector);
765 
768 
774 
782  typedef void (* PsduResponseTimeoutCallback)(uint8_t reason, Ptr<const WifiPsdu> psdu,
783  const WifiTxVector& txVector);
784 
787 
793 
802  typedef void (* PsduMapResponseTimeoutCallback)(uint8_t reason, WifiPsduMap* psduMap,
803  const std::set<Mac48Address>* missingStations,
804  std::size_t nTotalStations);
805 
808 
814 };
815 
816 } //namespace ns3
817 
818 #endif /* WIFI_MAC_H */
819 
Callback template class.
Definition: callback.h:1279
The Extended Capabilities Information Element.
The IEEE 802.11ax HE Capabilities.
The HT Capabilities Information Element.
an EUI-48 address
Definition: mac48-address.h:44
A base class which provides memory management and object aggregation.
Definition: object.h:88
The IEEE 802.11 SSID Information Element.
Definition: ssid.h:36
Forward calls to a chain of Callback.
a unique identifier for an interface.
Definition: type-id.h:59
The IEEE 802.11ac VHT Capabilities.
base class for all MAC-level wifi objects.
Definition: wifi-mac.h:85
uint16_t GetMaxAmsduSize(AcIndex ac) const
Return the maximum A-MSDU size of the given Access Category.
Definition: wifi-mac.cc:1404
Ptr< HtConfiguration > GetHtConfiguration(void) const
Definition: wifi-mac.cc:1047
TracedCallback< Ptr< const WifiMacQueueItem > > MpduTracedCallback
TracedCallback for acked/nacked MPDUs typedef.
Definition: wifi-mac.h:751
void(* MpduResponseTimeoutCallback)(uint8_t reason, Ptr< const WifiMacQueueItem > mpdu, const WifiTxVector &txVector)
TracedCallback signature for MPDU response timeout events.
Definition: wifi-mac.h:763
std::map< AcIndex, Ptr< QosTxop > > EdcaQueues
This type defines a mapping between an Access Category index, and a pointer to the corresponding chan...
Definition: wifi-mac.h:675
void(* PsduResponseTimeoutCallback)(uint8_t reason, Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector)
TracedCallback signature for PSDU response timeout events.
Definition: wifi-mac.h:782
uint16_t m_viMaxAmsduSize
maximum A-MSDU size for AC_VI (in bytes)
Definition: wifi-mac.h:682
bool m_shortSlotTimeSupported
flag whether short slot time is supported
Definition: wifi-mac.h:660
ExtendedCapabilities GetExtendedCapabilities(void) const
Return the extended capabilities of the device.
Definition: wifi-mac.cc:1175
Ptr< FrameExchangeManager > GetFrameExchangeManager(void) const
Get the Frame Exchange Manager.
Definition: wifi-mac.cc:744
DroppedMpduTracedCallback m_droppedMpduCallback
This trace indicates that an MPDU was dropped for the given reason.
Definition: wifi-mac.h:748
Ptr< WifiRemoteStationManager > m_stationManager
Remote station manager (rate control, RTS/CTS/fragmentation thresholds etc.)
Definition: wifi-mac.h:667
void SetErpSupported(bool enable)
Enable or disable ERP support for the device.
Definition: wifi-mac.cc:834
bool GetShortSlotTimeSupported(void) const
Definition: wifi-mac.cc:872
bool m_qosSupported
This Boolean is set true iff this WifiMac is to model 802.11e/WMM style Quality of Service.
Definition: wifi-mac.h:648
Ptr< HeConfiguration > GetHeConfiguration(void) const
Definition: wifi-mac.cc:1059
bool m_dsssSupported
This Boolean is set true iff this WifiMac is to model 802.11b.
Definition: wifi-mac.h:658
bool m_erpSupported
This Boolean is set true iff this WifiMac is to model 802.11g.
Definition: wifi-mac.h:653
Ptr< QosTxop > GetBKQueue(void) const
Accessor for the AC_BK channel access function.
Definition: wifi-mac.cc:491
Callback< void > m_linkDown
Callback when a link is down.
Definition: wifi-mac.h:526
bool GetVhtSupported() const
Return whether the device supports VHT.
Definition: wifi-mac.cc:1075
bool GetQosSupported() const
Return whether the device supports QoS.
Definition: wifi-mac.cc:822
virtual void SetAddress(Mac48Address address)
Definition: wifi-mac.cc:396
Ptr< Txop > m_txop
TXOP used for transmission of frames to non-QoS peers.
Definition: wifi-mac.h:523
void SetQosSupported(bool enable)
Enable or disable QoS support for the device.
Definition: wifi-mac.cc:793
Mac48Address m_address
MAC address of this station.
Definition: wifi-mac.h:669
HeCapabilities GetHeCapabilities(void) const
Return the HE capabilities of the device.
Definition: wifi-mac.cc:1325
Ssid GetSsid(void) const
Definition: wifi-mac.cc:416
uint16_t m_voMaxAmsduSize
maximum A-MSDU size for AC_VO (in bytes)
Definition: wifi-mac.h:681
Ptr< MacRxMiddle > m_rxMiddle
RX middle (defragmentation etc.)
Definition: wifi-mac.h:519
void DoInitialize() override
Initialize() implementation.
Definition: wifi-mac.cc:320
void ResetWifiPhy(void)
Remove currently attached WifiPhy device from this MAC.
Definition: wifi-mac.cc:783
TypeOfStation m_typeOfStation
the type of station
Definition: wifi-mac.h:663
uint32_t m_beMaxAmpduSize
maximum A-MPDU size for AC_BE (in bytes)
Definition: wifi-mac.h:688
virtual void ConfigureStandard(WifiStandard standard)
Definition: wifi-mac.cc:650
void SetupFrameExchangeManager(WifiStandard standard)
Create a Frame Exchange Manager depending on the supported version of the standard.
Definition: wifi-mac.cc:692
Mac48Address GetAddress(void) const
Definition: wifi-mac.cc:403
void SetDsssSupported(bool enable)
Enable or disable DSSS support for the device.
Definition: wifi-mac.cc:845
void SetBeBlockAckThreshold(uint8_t threshold)
Set the block ack threshold for AC_BE.
Definition: wifi-mac.cc:1115
TracedCallback< uint8_t, Ptr< const WifiMacQueueItem >, const WifiTxVector & > MpduResponseTimeoutTracedCallback
TracedCallback for MPDU response timeout events typedef.
Definition: wifi-mac.h:767
void SetPromisc(void)
Sets the interface in promiscuous mode.
Definition: wifi-mac.cc:439
Ptr< QosTxop > GetBEQueue(void) const
Accessor for the AC_BE channel access function.
Definition: wifi-mac.cc:485
bool GetHtSupported() const
Return whether the device supports HT.
Definition: wifi-mac.cc:1065
virtual void Enqueue(Ptr< Packet > packet, Mac48Address to)=0
TracedCallback< Ptr< const Packet > > m_macTxTrace
The trace source fired when packets come into the "top" of the device at the L3/L2 transition,...
Definition: wifi-mac.h:699
void ConfigureDcf(Ptr< Txop > dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, AcIndex ac)
Definition: wifi-mac.cc:590
void ConfigurePhyDependentParameters(void)
Configure PHY dependent parameters such as CWmin and CWmax.
Definition: wifi-mac.cc:660
uint32_t m_voMaxAmpduSize
maximum A-MPDU size for AC_VO (in bytes)
Definition: wifi-mac.h:686
Ptr< WifiNetDevice > m_device
Pointer to the device.
Definition: wifi-mac.h:665
void SetSsid(Ssid ssid)
Definition: wifi-mac.cc:409
WifiMac & operator=(const WifiMac &mac)
assignment operator
void SetTypeOfStation(TypeOfStation type)
This method is invoked by a subclass to specify what type of station it is implementing.
Definition: wifi-mac.cc:371
Ptr< WifiRemoteStationManager > GetWifiRemoteStationManager(void) const
Definition: wifi-mac.cc:757
MpduTracedCallback m_ackedMpduCallback
ack'ed MPDU callback
Definition: wifi-mac.h:753
Ptr< QosTxop > GetVOQueue(void) const
Accessor for the AC_VO channel access function.
Definition: wifi-mac.cc:473
MpduTracedCallback m_nackedMpduCallback
nack'ed MPDU callback
Definition: wifi-mac.h:754
Ptr< ChannelAccessManager > m_channelAccessManager
channel access manager
Definition: wifi-mac.h:521
Mac48Address GetBssid(void) const
Definition: wifi-mac.cc:433
bool GetHeSupported() const
Return whether the device supports HE.
Definition: wifi-mac.cc:1085
void SetBkBlockAckThreshold(uint8_t threshold)
Set the block ack threshold for AC_BK.
Definition: wifi-mac.cc:1125
TracedCallback< const WifiMacHeader & > m_txErrCallback
transmit error callback
Definition: wifi-mac.h:732
void SetVoBlockAckThreshold(uint8_t threshold)
Set the block ack threshold for AC_VO.
Definition: wifi-mac.cc:1095
Ptr< QosTxop > GetVIQueue(void) const
Accessor for the AC_VI channel access function.
Definition: wifi-mac.cc:479
virtual void Receive(Ptr< WifiMacQueueItem > mpdu)
This method acts as the MacRxMiddle receive callback and is invoked to notify us that a frame has bee...
Definition: wifi-mac.cc:923
void NotifyPromiscRx(Ptr< const Packet > packet)
Definition: wifi-mac.cc:537
virtual void NotifyChannelSwitching(void)
Notify that channel has been switched.
Definition: wifi-mac.cc:504
static TypeId GetTypeId(void)
Get the type ID.
Definition: wifi-mac.cc:66
void SetWifiRemoteStationManager(Ptr< WifiRemoteStationManager > stationManager)
Definition: wifi-mac.cc:750
void SetBeBlockAckInactivityTimeout(uint16_t timeout)
Set BE block ack inactivity timeout.
Definition: wifi-mac.cc:1155
TracedCallback< Ptr< const Packet > > m_macRxTrace
The trace source fired for packets successfully received by the device immediately before being forwa...
Definition: wifi-mac.h:722
TracedCallback< Ptr< const Packet > > m_macTxDropTrace
The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer ...
Definition: wifi-mac.h:706
Ptr< MacTxMiddle > m_txMiddle
TX middle (aggregation etc.)
Definition: wifi-mac.h:520
void NotifyTx(Ptr< const Packet > packet)
Definition: wifi-mac.cc:519
uint32_t GetMaxAmpduSize(AcIndex ac) const
Return the maximum A-MPDU size of the given Access Category.
Definition: wifi-mac.cc:1379
Ssid m_ssid
Service Set ID (SSID)
Definition: wifi-mac.h:670
TypeOfStation GetTypeOfStation(void) const
Return the type of station.
Definition: wifi-mac.cc:378
Ptr< WifiPhy > GetWifiPhy(void) const
Definition: wifi-mac.cc:776
Mac48Address m_bssid
the BSSID
Definition: wifi-mac.h:671
virtual void SetWifiPhy(Ptr< WifiPhy > phy)
Definition: wifi-mac.cc:763
virtual void Enqueue(Ptr< Packet > packet, Mac48Address to, Mac48Address from)
Definition: wifi-mac.cc:905
void NotifyRx(Ptr< const Packet > packet)
Definition: wifi-mac.cc:531
TracedCallback< Ptr< const Packet > > m_macRxDropTrace
The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer ...
Definition: wifi-mac.h:729
MpduResponseTimeoutTracedCallback m_mpduResponseTimeoutCallback
MPDU response timeout traced callback.
Definition: wifi-mac.h:773
void SetForwardUpCallback(ForwardUpCallback upCallback)
Definition: wifi-mac.cc:884
PsduMapResponseTimeoutTracedCallback m_psduMapResponseTimeoutCallback
PSDU map response timeout traced callback.
Definition: wifi-mac.h:813
TracedCallback< Ptr< const Packet > > m_macPromiscRxTrace
The trace source fired for packets successfully received by the device immediately before being forwa...
Definition: wifi-mac.h:714
uint16_t m_bkMaxAmsduSize
maximum A-MSDU size for AC_BK (in bytes)
Definition: wifi-mac.h:684
void SetBkBlockAckInactivityTimeout(uint16_t timeout)
Set BK block ack inactivity timeout.
Definition: wifi-mac.cc:1165
Ptr< VhtConfiguration > GetVhtConfiguration(void) const
Definition: wifi-mac.cc:1053
virtual void DeaggregateAmsduAndForward(Ptr< WifiMacQueueItem > mpdu)
This method can be called to de-aggregate an A-MSDU and forward the constituent packets up the stack.
Definition: wifi-mac.cc:1036
virtual Ptr< WifiMacQueue > GetTxopQueue(AcIndex ac) const
Get the wifi MAC queue of the (Qos)Txop associated with the given AC, if such (Qos)Txop is installed,...
Definition: wifi-mac.cc:497
void SetViBlockAckThreshold(uint8_t threshold)
Set the block ack threshold for AC_VI.
Definition: wifi-mac.cc:1105
void SetViBlockAckInactivityTimeout(uint16_t timeout)
Set VI block ack inactivity timeout.
Definition: wifi-mac.cc:1145
void SetupEdcaQueue(AcIndex ac)
This method is a private utility invoked to configure the channel access function for the specified A...
Definition: wifi-mac.cc:549
Ptr< FrameExchangeManager > m_feManager
Frame Exchange Manager.
Definition: wifi-mac.h:522
void SetLinkDownCallback(Callback< void > linkDown)
Definition: wifi-mac.cc:898
virtual ~WifiMac()
Definition: wifi-mac.cc:60
void NotifyRxDrop(Ptr< const Packet > packet)
Definition: wifi-mac.cc:543
virtual void SetLinkUpCallback(Callback< void > linkUp)
Definition: wifi-mac.cc:891
void SetDevice(const Ptr< WifiNetDevice > device)
Sets the device this PHY is associated with.
Definition: wifi-mac.cc:384
void SetCtsToSelfSupported(bool enable)
Enable or disable CTS-to-self feature.
Definition: wifi-mac.cc:858
void(* DroppedMpduCallback)(WifiMacDropReason reason, Ptr< const WifiMacQueueItem > mpdu)
TracedCallback signature for MPDU drop events.
Definition: wifi-mac.h:740
Ptr< WifiNetDevice > GetDevice(void) const
Return the device this PHY is associated with.
Definition: wifi-mac.cc:390
EdcaQueues m_edca
This is a map from Access Category index to the corresponding channel access function.
Definition: wifi-mac.h:679
uint32_t m_bkMaxAmpduSize
maximum A-MPDU size for AC_BK (in bytes)
Definition: wifi-mac.h:689
void ForwardUp(Ptr< const Packet > packet, Mac48Address from, Mac48Address to)
Forward the packet up to the device.
Definition: wifi-mac.cc:916
virtual void ConfigureContentionWindow(uint32_t cwMin, uint32_t cwMax)
Definition: wifi-mac.cc:572
TracedCallback< uint8_t, Ptr< const WifiPsdu >, const WifiTxVector & > PsduResponseTimeoutTracedCallback
TracedCallback for PSDU response timeout events typedef.
Definition: wifi-mac.h:786
WifiMac(const WifiMac &)
type conversion operator
VhtCapabilities GetVhtCapabilities(void) const
Return the VHT capabilities of the device.
Definition: wifi-mac.cc:1242
bool GetErpSupported() const
Return whether the device supports ERP.
Definition: wifi-mac.cc:828
TracedCallback< WifiMacDropReason, Ptr< const WifiMacQueueItem > > DroppedMpduTracedCallback
TracedCallback for MPDU drop events typedef.
Definition: wifi-mac.h:743
ForwardUpCallback m_forwardUp
Callback to forward packet up the stack.
Definition: wifi-mac.h:691
TracedCallback< uint8_t, WifiPsduMap *, const std::set< Mac48Address > *, std::size_t > PsduMapResponseTimeoutTracedCallback
TracedCallback for PSDU map response timeout events typedef.
Definition: wifi-mac.h:807
TracedCallback< const WifiMacHeader & > m_txOkCallback
transmit OK callback
Definition: wifi-mac.h:731
Callback< void > m_linkUp
Callback when a link is up.
Definition: wifi-mac.h:525
bool GetDsssSupported() const
Return whether the device supports DSSS.
Definition: wifi-mac.cc:852
HtCapabilities GetHtCapabilities(void) const
Return the HT capabilities of the device.
Definition: wifi-mac.cc:1186
virtual bool CanForwardPacketsTo(Mac48Address to) const =0
Return true if packets can be forwarded to the given destination, false otherwise.
Callback< void, Ptr< const Packet >, Mac48Address, Mac48Address > ForwardUpCallback
This type defines the callback of a higher layer that a WifiMac(-derived) object invokes to pass a pa...
Definition: wifi-mac.h:270
virtual bool SupportsSendFrom(void) const
Definition: wifi-mac.cc:878
PsduResponseTimeoutTracedCallback m_psduResponseTimeoutCallback
PSDU response timeout traced callback.
Definition: wifi-mac.h:792
Ptr< QosTxop > GetQosTxop(AcIndex ac) const
Accessor for a specified EDCA object.
Definition: wifi-mac.cc:452
void(* PsduMapResponseTimeoutCallback)(uint8_t reason, WifiPsduMap *psduMap, const std::set< Mac48Address > *missingStations, std::size_t nTotalStations)
TracedCallback signature for PSDU map response timeout events.
Definition: wifi-mac.h:802
void NotifyTxDrop(Ptr< const Packet > packet)
Definition: wifi-mac.cc:525
void DoDispose() override
Destructor implementation.
Definition: wifi-mac.cc:336
void SetVoBlockAckInactivityTimeout(uint16_t timeout)
Set VO block ack inactivity timeout.
Definition: wifi-mac.cc:1135
Ptr< WifiPhy > m_phy
Wifi PHY.
Definition: wifi-mac.h:666
void SetShortSlotTimeSupported(bool enable)
Enable or disable short slot time feature.
Definition: wifi-mac.cc:865
void SetBssid(Mac48Address bssid)
Definition: wifi-mac.cc:422
bool m_ctsToSelfSupported
flag indicating whether CTS-To-Self is supported
Definition: wifi-mac.h:661
Ptr< Txop > GetTxop(void) const
Accessor for the Txop object.
Definition: wifi-mac.cc:446
uint16_t m_beMaxAmsduSize
maximum A-MSDU size for AC_BE (in bytes)
Definition: wifi-mac.h:683
uint32_t m_viMaxAmpduSize
maximum A-MPDU size for AC_VI (in bytes)
Definition: wifi-mac.h:687
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
WifiStandard
Identifies the IEEE 802.11 specifications that a Wifi device can be configured to use.
WifiMacDropReason
The reason why an MPDU was dropped.
Definition: wifi-mac.h:66
AcIndex
This enumeration defines the Access Categories as an enumeration with values corresponding to the AC ...
Definition: qos-utils.h:71
address
Definition: first.py:44
Every class exported by the ns3 library is enclosed in the ns3 namespace.
TypeOfStation
Enumeration for type of station.
Definition: wifi-mac.h:52
@ ADHOC_STA
Definition: wifi-mac.h:55
@ MESH
Definition: wifi-mac.h:56
@ STA
Definition: wifi-mac.h:53
@ AP
Definition: wifi-mac.h:54
@ OCB
Definition: wifi-mac.h:57
std::unordered_map< uint16_t, Ptr< WifiPsdu > > WifiPsduMap
Map of PSDUs indexed by STA-ID.
@ WIFI_MAC_DROP_QOS_OLD_PACKET
Definition: wifi-mac.h:70
@ WIFI_MAC_DROP_FAILED_ENQUEUE
Definition: wifi-mac.h:67
@ WIFI_MAC_DROP_EXPIRED_LIFETIME
Definition: wifi-mac.h:68
@ WIFI_MAC_DROP_REACHED_RETRY_LIMIT
Definition: wifi-mac.h:69
ssid
Definition: third.py:100
mac
Definition: third.py:99
phy
Definition: third.py:93
ns3::Time timeout