A Discrete-Event Network Simulator
API
regular-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 REGULAR_WIFI_MAC_H
22 #define REGULAR_WIFI_MAC_H
23 
24 #include "wifi-mac.h"
25 #include "qos-txop.h"
26 #include "ssid.h"
27 #include <set>
28 #include <unordered_map>
29 
30 namespace ns3 {
31 
32 class MacRxMiddle;
33 class MacTxMiddle;
34 class ChannelAccessManager;
35 class ExtendedCapabilities;
36 class FrameExchangeManager;
37 class WifiPsdu;
38 class WifiMacQueue;
39 enum WifiTxTimerReason : uint8_t;
40 
41 typedef std::unordered_map <uint16_t /* staId */, Ptr<WifiPsdu> /* PSDU */> WifiPsduMap;
42 
51 class RegularWifiMac : public WifiMac
52 {
53 public:
58  static TypeId GetTypeId (void);
59 
60  RegularWifiMac ();
61  virtual ~RegularWifiMac ();
62 
63  // Implementations of pure virtual methods.
64  void SetShortSlotTimeSupported (bool enable) override;
65  void SetSsid (Ssid ssid) override;
66  void SetAddress (Mac48Address address) override;
67  void SetPromisc (void) override;
68  bool GetShortSlotTimeSupported (void) const override;
69  Ssid GetSsid (void) const override;
70  Mac48Address GetAddress (void) const override;
71  Mac48Address GetBssid (void) const override;
72  void Enqueue (Ptr<Packet> packet, Mac48Address to, Mac48Address from) override;
73  bool SupportsSendFrom (void) const override;
74  void SetWifiPhy (const Ptr<WifiPhy> phy) override;
75  Ptr<WifiPhy> GetWifiPhy (void) const override;
76  void ResetWifiPhy (void) override;
77  void SetWifiRemoteStationManager (const Ptr<WifiRemoteStationManager> stationManager) override;
78  void ConfigureStandard (WifiStandard standard) override;
79  TypeOfStation GetTypeOfStation (void) const override;
80  void SetForwardUpCallback (ForwardUpCallback upCallback) override;
81  void SetLinkUpCallback (Callback<void> linkUp) override;
82  void SetLinkDownCallback (Callback<void> linkDown) override;
84 
85  // Should be implemented by child classes
86  void Enqueue (Ptr<Packet> packet, Mac48Address to) override = 0;
87 
94 
101  void SetCtsToSelfSupported (bool enable);
105  void SetBssid (Mac48Address bssid);
106 
112  Ptr<Txop> GetTxop (void) const;
119  Ptr<QosTxop> GetQosTxop (AcIndex ac) const;
126  Ptr<QosTxop> GetQosTxop (uint8_t tid) const;
133  virtual Ptr<WifiMacQueue> GetTxopQueue (AcIndex ac) const;
134 
140  bool GetQosSupported () const;
146  bool GetErpSupported () const;
152  bool GetDsssSupported () const;
158  bool GetHtSupported () const;
164  bool GetVhtSupported () const;
170  bool GetHeSupported () const;
171 
183  HtCapabilities GetHtCapabilities (void) const;
189  VhtCapabilities GetVhtCapabilities (void) const;
195  HeCapabilities GetHeCapabilities (void) const;
196 
203  uint32_t GetMaxAmpduSize (AcIndex ac) const;
210  uint16_t GetMaxAmsduSize (AcIndex ac) const;
211 
212 protected:
213  void DoInitialize () override;
214  void DoDispose () override;
215  void SetTypeOfStation (TypeOfStation type) override;
216 
222 
224 
228 
230 
234 
237  typedef std::map<AcIndex, Ptr<QosTxop> > EdcaQueues;
238 
242 
248  Ptr<QosTxop> GetVOQueue (void) const;
254  Ptr<QosTxop> GetVIQueue (void) const;
260  Ptr<QosTxop> GetBEQueue (void) const;
266  Ptr<QosTxop> GetBKQueue (void) const;
267 
275  void ConfigureContentionWindow (uint32_t cwMin, uint32_t cwMax);
276 
290  virtual void Receive (Ptr<WifiMacQueueItem> mpdu);
291 
299  void ForwardUp (Ptr<const Packet> packet, Mac48Address from, Mac48Address to);
300 
308 
314  virtual void SetQosSupported (bool enable);
315 
320  void SetupFrameExchangeManager (void);
321 
327  void SetErpSupported (bool enable);
328 
334  void SetDsssSupported (bool enable);
335 
336 private:
346 
353  void SetupEdcaQueue (AcIndex ac);
354 
360  void SetVoBlockAckThreshold (uint8_t threshold);
366  void SetViBlockAckThreshold (uint8_t threshold);
372  void SetBeBlockAckThreshold (uint8_t threshold);
378  void SetBkBlockAckThreshold (uint8_t threshold);
379 
385  void SetVoBlockAckInactivityTimeout (uint16_t timeout);
391  void SetViBlockAckInactivityTimeout (uint16_t timeout);
397  void SetBeBlockAckInactivityTimeout (uint16_t timeout);
403  void SetBkBlockAckInactivityTimeout (uint16_t timeout);
404 
406 
431 
434 
435  uint16_t m_voMaxAmsduSize;
436  uint16_t m_viMaxAmsduSize;
437  uint16_t m_beMaxAmsduSize;
438  uint16_t m_bkMaxAmsduSize;
439 
440  uint32_t m_voMaxAmpduSize;
441  uint32_t m_viMaxAmpduSize;
442  uint32_t m_beMaxAmpduSize;
443  uint32_t m_bkMaxAmpduSize;
444 
447 
450 
453 
461 
464 
469 
477  typedef void (* MpduResponseTimeoutCallback)(uint8_t reason, Ptr<const WifiMacQueueItem> mpdu,
478  const WifiTxVector& txVector);
479 
482 
488 
496  typedef void (* PsduResponseTimeoutCallback)(uint8_t reason, Ptr<const WifiPsdu> psdu,
497  const WifiTxVector& txVector);
498 
501 
507 
516  typedef void (* PsduMapResponseTimeoutCallback)(uint8_t reason, WifiPsduMap* psduMap,
517  const std::set<Mac48Address>* missingStations,
518  std::size_t nTotalStations);
519 
522 
528 
531 };
532 
533 } //namespace ns3
534 
535 #endif /* REGULAR_WIFI_MAC_H */
ns3::RegularWifiMac::SetupEdcaQueue
void SetupEdcaQueue(AcIndex ac)
This method is a private utility invoked to configure the channel access function for the specified A...
Definition: regular-wifi-mac.cc:459
ns3::TypeId
a unique identifier for an interface.
Definition: type-id.h:59
ns3::RegularWifiMac::GetFrameExchangeManager
Ptr< FrameExchangeManager > GetFrameExchangeManager(void) const
Get the Frame Exchange Manager.
Definition: regular-wifi-mac.cc:177
ns3::RegularWifiMac::RegularWifiMac
RegularWifiMac(const RegularWifiMac &)
type conversion operator
ns3::VhtCapabilities
The IEEE 802.11ac VHT Capabilities.
Definition: vht-capabilities.h:35
ns3::RegularWifiMac::m_erpSupported
bool m_erpSupported
This Boolean is set true iff this WifiMac is to model 802.11g.
Definition: regular-wifi-mac.h:425
ns3::RegularWifiMac::SetBeBlockAckInactivityTimeout
void SetBeBlockAckInactivityTimeout(uint16_t timeout)
Set BE block ack inactivity timeout.
Definition: regular-wifi-mac.cc:445
ns3::RegularWifiMac::operator=
RegularWifiMac & operator=(const RegularWifiMac &mac)
assignment operator
ns3::WifiPsduMap
std::unordered_map< uint16_t, Ptr< WifiPsdu > > WifiPsduMap
Map of PSDUs indexed by STA-ID.
Definition: he-frame-exchange-manager.h:34
ns3::RegularWifiMac::GetExtendedCapabilities
ExtendedCapabilities GetExtendedCapabilities(void) const
Return the extended capabilities of the device.
Definition: regular-wifi-mac.cc:196
ns3::RegularWifiMac::m_address
Mac48Address m_address
MAC address of this station.
Definition: regular-wifi-mac.h:432
ns3::RegularWifiMac::PsduResponseTimeoutCallback
void(* PsduResponseTimeoutCallback)(uint8_t reason, Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector)
TracedCallback signature for PSDU response timeout events.
Definition: regular-wifi-mac.h:496
ns3::RegularWifiMac::SetViBlockAckInactivityTimeout
void SetViBlockAckInactivityTimeout(uint16_t timeout)
Set VI block ack inactivity timeout.
Definition: regular-wifi-mac.cc:438
ns3::WifiMacDropReason
WifiMacDropReason
The reason why an MPDU was dropped.
Definition: wifi-mac.h:55
ns3::Callback
Callback template class.
Definition: callback.h:1279
ns3::RegularWifiMac::GetSsid
Ssid GetSsid(void) const override
Definition: regular-wifi-mac.cc:696
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::RegularWifiMac::m_viMaxAmpduSize
uint32_t m_viMaxAmpduSize
maximum A-MPDU size for AC_VI (in bytes)
Definition: regular-wifi-mac.h:441
ns3::RegularWifiMac::SetBssid
void SetBssid(Mac48Address bssid)
Definition: regular-wifi-mac.cc:702
ns3::RegularWifiMac::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: regular-wifi-mac.cc:885
qos-txop.h
ns3::RegularWifiMac::GetQosTxop
Ptr< QosTxop > GetQosTxop(AcIndex ac) const
Accessor for a specified EDCA object.
Definition: regular-wifi-mac.cc:501
ns3::RegularWifiMac::GetHeSupported
bool GetHeSupported() const
Return whether the device supports HE.
Definition: regular-wifi-mac.cc:629
ssid.h
ns3::HeCapabilities
The IEEE 802.11ax HE Capabilities.
Definition: he-capabilities.h:34
ns3::RegularWifiMac::SetLinkDownCallback
void SetLinkDownCallback(Callback< void > linkDown) override
Definition: regular-wifi-mac.cc:589
ns3::RegularWifiMac::m_shortSlotTimeSupported
bool m_shortSlotTimeSupported
flag whether short slot time is supported
Definition: regular-wifi-mac.h:529
ns3::RegularWifiMac::GetBssid
Mac48Address GetBssid(void) const override
Definition: regular-wifi-mac.cc:713
ns3::RegularWifiMac::GetErpSupported
bool GetErpSupported() const
Return whether the device supports ERP.
Definition: regular-wifi-mac.cc:639
ns3::Mac48Address
an EUI-48 address
Definition: mac48-address.h:44
ns3::RegularWifiMac::GetMaxAmpduSize
uint32_t GetMaxAmpduSize(AcIndex ac) const
Return the maximum A-MPDU size of the given Access Category.
Definition: regular-wifi-mac.cc:1164
ns3::RegularWifiMac::m_viMaxAmsduSize
uint16_t m_viMaxAmsduSize
maximum A-MSDU size for AC_VI (in bytes)
Definition: regular-wifi-mac.h:436
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
third.mac
mac
Definition: third.py:99
ns3::TypeOfStation
TypeOfStation
Enumeration for type of station.
Definition: wifi-mac.h:41
ns3::RegularWifiMac::m_rxMiddle
Ptr< MacRxMiddle > m_rxMiddle
RX middle (defragmentation etc.)
Definition: regular-wifi-mac.h:217
ns3::RegularWifiMac::SetLinkUpCallback
void SetLinkUpCallback(Callback< void > linkUp) override
Definition: regular-wifi-mac.cc:582
ns3::RegularWifiMac
base class for all MAC-level wifi objects.
Definition: regular-wifi-mac.h:52
ns3::RegularWifiMac::PsduMapResponseTimeoutCallback
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: regular-wifi-mac.h:516
ns3::RegularWifiMac::DeaggregateAmsduAndForward
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: regular-wifi-mac.cc:874
ns3::RegularWifiMac::m_voMaxAmsduSize
uint16_t m_voMaxAmsduSize
maximum A-MSDU size for AC_VO (in bytes)
Definition: regular-wifi-mac.h:435
ns3::RegularWifiMac::GetQosSupported
bool GetQosSupported() const
Return whether the device supports QoS.
Definition: regular-wifi-mac.cc:603
ns3::RegularWifiMac::SetSsid
void SetSsid(Ssid ssid) override
Definition: regular-wifi-mac.cc:689
ns3::Ssid
The IEEE 802.11 SSID Information Element.
Definition: ssid.h:36
ns3::RegularWifiMac::m_bkMaxAmsduSize
uint16_t m_bkMaxAmsduSize
maximum A-MSDU size for AC_BK (in bytes)
Definition: regular-wifi-mac.h:438
ns3::RegularWifiMac::m_typeOfStation
TypeOfStation m_typeOfStation
the type of station
Definition: regular-wifi-mac.h:405
wifi-mac.h
ns3::RegularWifiMac::m_bkMaxAmpduSize
uint32_t m_bkMaxAmpduSize
maximum A-MPDU size for AC_BK (in bytes)
Definition: regular-wifi-mac.h:443
ns3::RegularWifiMac::GetMaxAmsduSize
uint16_t GetMaxAmsduSize(AcIndex ac) const
Return the maximum A-MSDU size of the given Access Category.
Definition: regular-wifi-mac.cc:1189
ns3::RegularWifiMac::ConfigureContentionWindow
void ConfigureContentionWindow(uint32_t cwMin, uint32_t cwMax)
Definition: regular-wifi-mac.cc:1149
ns3::RegularWifiMac::m_linkDown
Callback< void > m_linkDown
Callback when a link is down.
Definition: regular-wifi-mac.h:227
ns3::RegularWifiMac::GetAddress
Mac48Address GetAddress(void) const override
Definition: regular-wifi-mac.cc:683
ns3::Ptr< Packet >
ns3::RegularWifiMac::SupportsSendFrom
bool SupportsSendFrom(void) const override
Definition: regular-wifi-mac.cc:751
ns3::RegularWifiMac::m_edca
EdcaQueues m_edca
This is a map from Access Category index to the corresponding channel access function.
Definition: regular-wifi-mac.h:241
ns3::RegularWifiMac::MpduResponseTimeoutCallback
void(* MpduResponseTimeoutCallback)(uint8_t reason, Ptr< const WifiMacQueueItem > mpdu, const WifiTxVector &txVector)
TracedCallback signature for MPDU response timeout events.
Definition: regular-wifi-mac.h:477
ns3::RegularWifiMac::m_droppedMpduCallback
DroppedMpduTracedCallback m_droppedMpduCallback
This trace indicates that an MPDU was dropped for the given reason.
Definition: regular-wifi-mac.h:468
ns3::RegularWifiMac::m_beMaxAmpduSize
uint32_t m_beMaxAmpduSize
maximum A-MPDU size for AC_BE (in bytes)
Definition: regular-wifi-mac.h:442
ns3::RegularWifiMac::GetVhtSupported
bool GetVhtSupported() const
Return whether the device supports VHT.
Definition: regular-wifi-mac.cc:619
ns3::RegularWifiMac::m_ctsToSelfSupported
bool m_ctsToSelfSupported
flag indicating whether CTS-To-Self is supported
Definition: regular-wifi-mac.h:530
ns3::RegularWifiMac::ResetWifiPhy
void ResetWifiPhy(void) override
Remove currently attached WifiPhy device from this MAC.
Definition: regular-wifi-mac.cc:565
ns3::RegularWifiMac::SetupFrameExchangeManager
void SetupFrameExchangeManager(void)
Create a Frame Exchange Manager depending on the supported version of the standard.
Definition: regular-wifi-mac.cc:126
ns3::RegularWifiMac::SetAddress
void SetAddress(Mac48Address address) override
Definition: regular-wifi-mac.cc:676
ns3::HtCapabilities
The HT Capabilities Information Element.
Definition: ht-capabilities.h:42
ns3::RegularWifiMac::DoDispose
void DoDispose() override
Destructor implementation.
Definition: regular-wifi-mac.cc:95
ns3::RegularWifiMac::m_linkUp
Callback< void > m_linkUp
Callback when a link is up.
Definition: regular-wifi-mac.h:226
ns3::RegularWifiMac::m_txop
Ptr< Txop > m_txop
This holds a pointer to the TXOP instance for this WifiMac - used for transmission of frames to non-Q...
Definition: regular-wifi-mac.h:233
ns3::RegularWifiMac::GetShortSlotTimeSupported
bool GetShortSlotTimeSupported(void) const override
Definition: regular-wifi-mac.cc:733
ns3::RegularWifiMac::m_voMaxAmpduSize
uint32_t m_voMaxAmpduSize
maximum A-MPDU size for AC_VO (in bytes)
Definition: regular-wifi-mac.h:440
ns3::RegularWifiMac::GetTxop
Ptr< Txop > GetTxop(void) const
Accessor for the DCF object.
Definition: regular-wifi-mac.cc:495
ns3::WifiMac
base class for all MAC-level wifi objects.
Definition: wifi-mac.h:72
ns3::RegularWifiMac::m_stationManager
Ptr< WifiRemoteStationManager > m_stationManager
Remote station manager (rate control, RTS/CTS/fragmentation thresholds etc.)
Definition: regular-wifi-mac.h:223
first.address
address
Definition: first.py:44
ns3::RegularWifiMac::MpduTracedCallback
TracedCallback< Ptr< const WifiMacQueueItem > > MpduTracedCallback
TracedCallback for acked/nacked MPDUs typedef.
Definition: regular-wifi-mac.h:449
ns3::RegularWifiMac::SetVoBlockAckThreshold
void SetVoBlockAckThreshold(uint8_t threshold)
Set the block ack threshold for AC_VO.
Definition: regular-wifi-mac.cc:403
ns3::RegularWifiMac::EdcaQueues
std::map< AcIndex, Ptr< QosTxop > > EdcaQueues
This type defines a mapping between an Access Category index, and a pointer to the corresponding chan...
Definition: regular-wifi-mac.h:237
ns3::RegularWifiMac::m_ackedMpduCallback
MpduTracedCallback m_ackedMpduCallback
ack'ed MPDU callback
Definition: regular-wifi-mac.h:451
ns3::RegularWifiMac::SetTypeOfStation
void SetTypeOfStation(TypeOfStation type) override
This method is invoked by a subclass to specify what type of station it is implementing.
Definition: regular-wifi-mac.cc:482
ns3::RegularWifiMac::m_mpduResponseTimeoutCallback
MpduResponseTimeoutTracedCallback m_mpduResponseTimeoutCallback
MPDU response timeout traced callback.
Definition: regular-wifi-mac.h:487
ns3::RegularWifiMac::SetWifiRemoteStationManager
void SetWifiRemoteStationManager(const Ptr< WifiRemoteStationManager > stationManager) override
Definition: regular-wifi-mac.cc:183
ns3::RegularWifiMac::SetBeBlockAckThreshold
void SetBeBlockAckThreshold(uint8_t threshold)
Set the block ack threshold for AC_BE.
Definition: regular-wifi-mac.cc:417
ns3::RegularWifiMac::ForwardUp
void ForwardUp(Ptr< const Packet > packet, Mac48Address from, Mac48Address to)
Forward the packet up to the device.
Definition: regular-wifi-mac.cc:757
ns3::RegularWifiMac::m_beMaxAmsduSize
uint16_t m_beMaxAmsduSize
maximum A-MSDU size for AC_BE (in bytes)
Definition: regular-wifi-mac.h:437
ns3::RegularWifiMac::GetTxopQueue
virtual Ptr< WifiMacQueue > GetTxopQueue(AcIndex ac) const
Get the wifi MAC queue of the (Qos)Txop associated with the given AC.
Definition: regular-wifi-mac.cc:537
ns3::RegularWifiMac::SetBkBlockAckInactivityTimeout
void SetBkBlockAckInactivityTimeout(uint16_t timeout)
Set BK block ack inactivity timeout.
Definition: regular-wifi-mac.cc:452
ns3::RegularWifiMac::m_bssid
Mac48Address m_bssid
the BSSID
Definition: regular-wifi-mac.h:433
ns3::RegularWifiMac::GetTypeOfStation
TypeOfStation GetTypeOfStation(void) const override
Return the type of station.
Definition: regular-wifi-mac.cc:489
ns3::RegularWifiMac::m_txErrCallback
TracedCallback< const WifiMacHeader & > m_txErrCallback
transmit error callback
Definition: regular-wifi-mac.h:446
ns3::RegularWifiMac::SetViBlockAckThreshold
void SetViBlockAckThreshold(uint8_t threshold)
Set the block ack threshold for AC_VI.
Definition: regular-wifi-mac.cc:410
ns3::RegularWifiMac::m_dsssSupported
bool m_dsssSupported
This Boolean is set true iff this WifiMac is to model 802.11b.
Definition: regular-wifi-mac.h:430
ns3::RegularWifiMac::DroppedMpduCallback
void(* DroppedMpduCallback)(WifiMacDropReason reason, Ptr< const WifiMacQueueItem > mpdu)
TracedCallback signature for MPDU drop events.
Definition: regular-wifi-mac.h:460
ns3::ExtendedCapabilities
The Extended Capabilities Information Element.
Definition: extended-capabilities.h:35
ns3::RegularWifiMac::SetQosSupported
virtual void SetQosSupported(bool enable)
Enable or disable QoS support for the device.
Definition: regular-wifi-mac.cc:596
timeout
ns3::Time timeout
Definition: openflow-switch.cc:52
ns3::RegularWifiMac::ConfigureStandard
void ConfigureStandard(WifiStandard standard) override
Definition: regular-wifi-mac.cc:1106
ns3::RegularWifiMac::SetCtsToSelfSupported
void SetCtsToSelfSupported(bool enable)
Enable or disable CTS-to-self feature.
Definition: regular-wifi-mac.cc:669
ns3::RegularWifiMac::GetHtCapabilities
HtCapabilities GetHtCapabilities(void) const
Return the HT capabilities of the device.
Definition: regular-wifi-mac.cc:207
ns3::RegularWifiMac::Enqueue
void Enqueue(Ptr< Packet > packet, Mac48Address to, Mac48Address from) override
Definition: regular-wifi-mac.cc:739
ns3::RegularWifiMac::PsduMapResponseTimeoutTracedCallback
TracedCallback< uint8_t, WifiPsduMap *, const std::set< Mac48Address > *, std::size_t > PsduMapResponseTimeoutTracedCallback
TracedCallback for PSDU map response timeout events typedef.
Definition: regular-wifi-mac.h:521
ns3::RegularWifiMac::GetHeCapabilities
HeCapabilities GetHeCapabilities(void) const
Return the HE capabilities of the device.
Definition: regular-wifi-mac.cc:346
ns3::RegularWifiMac::m_feManager
Ptr< FrameExchangeManager > m_feManager
Frame Exchange Manager.
Definition: regular-wifi-mac.h:221
ns3::RegularWifiMac::SetDsssSupported
void SetDsssSupported(bool enable)
Enable or disable DSSS support for the device.
Definition: regular-wifi-mac.cc:656
ns3::RegularWifiMac::SetBkBlockAckThreshold
void SetBkBlockAckThreshold(uint8_t threshold)
Set the block ack threshold for AC_BK.
Definition: regular-wifi-mac.cc:424
ns3::RegularWifiMac::SetForwardUpCallback
void SetForwardUpCallback(ForwardUpCallback upCallback) override
Definition: regular-wifi-mac.cc:575
ns3::RegularWifiMac::m_txOkCallback
TracedCallback< const WifiMacHeader & > m_txOkCallback
transmit OK callback
Definition: regular-wifi-mac.h:445
ns3::RegularWifiMac::RegularWifiMac
RegularWifiMac()
Definition: regular-wifi-mac.cc:48
ns3::RegularWifiMac::SetWifiPhy
void SetWifiPhy(const Ptr< WifiPhy > phy) override
Definition: regular-wifi-mac.cc:548
ns3::RegularWifiMac::MpduResponseTimeoutTracedCallback
TracedCallback< uint8_t, Ptr< const WifiMacQueueItem >, const WifiTxVector & > MpduResponseTimeoutTracedCallback
TracedCallback for MPDU response timeout events typedef.
Definition: regular-wifi-mac.h:481
ns3::RegularWifiMac::GetBKQueue
Ptr< QosTxop > GetBKQueue(void) const
Accessor for the AC_BK channel access function.
Definition: regular-wifi-mac.cc:531
ns3::RegularWifiMac::SetShortSlotTimeSupported
void SetShortSlotTimeSupported(bool enable) override
Enable or disable short slot time feature.
Definition: regular-wifi-mac.cc:726
ns3::RegularWifiMac::DroppedMpduTracedCallback
TracedCallback< WifiMacDropReason, Ptr< const WifiMacQueueItem > > DroppedMpduTracedCallback
TracedCallback for MPDU drop events typedef.
Definition: regular-wifi-mac.h:463
third.ssid
ssid
Definition: third.py:100
ns3::RegularWifiMac::DoInitialize
void DoInitialize() override
Initialize() implementation.
Definition: regular-wifi-mac.cc:83
ns3::AcIndex
AcIndex
This enumeration defines the Access Categories as an enumeration with values corresponding to the AC ...
Definition: qos-utils.h:71
ns3::RegularWifiMac::m_txMiddle
Ptr< MacTxMiddle > m_txMiddle
TX middle (aggregation etc.)
Definition: regular-wifi-mac.h:218
ns3::RegularWifiMac::m_channelAccessManager
Ptr< ChannelAccessManager > m_channelAccessManager
channel access manager
Definition: regular-wifi-mac.h:219
ns3::RegularWifiMac::GetDsssSupported
bool GetDsssSupported() const
Return whether the device supports DSSS.
Definition: regular-wifi-mac.cc:663
ns3::RegularWifiMac::GetWifiRemoteStationManager
Ptr< WifiRemoteStationManager > GetWifiRemoteStationManager(void) const override
Definition: regular-wifi-mac.cc:190
ns3::RegularWifiMac::GetVhtCapabilities
VhtCapabilities GetVhtCapabilities(void) const
Return the VHT capabilities of the device.
Definition: regular-wifi-mac.cc:263
ns3::TracedCallback
Forward calls to a chain of Callback.
Definition: traced-callback.h:53
ns3::RegularWifiMac::m_nackedMpduCallback
MpduTracedCallback m_nackedMpduCallback
nack'ed MPDU callback
Definition: regular-wifi-mac.h:452
ns3::RegularWifiMac::GetBEQueue
Ptr< QosTxop > GetBEQueue(void) const
Accessor for the AC_BE channel access function.
Definition: regular-wifi-mac.cc:525
ns3::RegularWifiMac::m_phy
Ptr< WifiPhy > m_phy
Wifi PHY.
Definition: regular-wifi-mac.h:220
ns3::WifiStandard
WifiStandard
Identifies the allowed configurations that a Wifi device is configured to use.
Definition: wifi-standards.h:126
ns3::RegularWifiMac::SetPromisc
void SetPromisc(void) override
Sets the interface in promiscuous mode.
Definition: regular-wifi-mac.cc:719
ns3::RegularWifiMac::~RegularWifiMac
virtual ~RegularWifiMac()
Definition: regular-wifi-mac.cc:77
ns3::RegularWifiMac::GetVOQueue
Ptr< QosTxop > GetVOQueue(void) const
Accessor for the AC_VO channel access function.
Definition: regular-wifi-mac.cc:513
ns3::RegularWifiMac::Enqueue
void Enqueue(Ptr< Packet > packet, Mac48Address to) override=0
ns3::RegularWifiMac::SetVoBlockAckInactivityTimeout
void SetVoBlockAckInactivityTimeout(uint16_t timeout)
Set VO block ack inactivity timeout.
Definition: regular-wifi-mac.cc:431
ns3::RegularWifiMac::GetHtSupported
bool GetHtSupported() const
Return whether the device supports HT.
Definition: regular-wifi-mac.cc:609
ns3::RegularWifiMac::m_qosSupported
bool m_qosSupported
This Boolean is set true iff this WifiMac is to model 802.11e/WMM style Quality of Service.
Definition: regular-wifi-mac.h:420
ns3::RegularWifiMac::GetVIQueue
Ptr< QosTxop > GetVIQueue(void) const
Accessor for the AC_VI channel access function.
Definition: regular-wifi-mac.cc:519
ns3::RegularWifiMac::Receive
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: regular-wifi-mac.cc:764
ns3::RegularWifiMac::PsduResponseTimeoutTracedCallback
TracedCallback< uint8_t, Ptr< const WifiPsdu >, const WifiTxVector & > PsduResponseTimeoutTracedCallback
TracedCallback for PSDU response timeout events typedef.
Definition: regular-wifi-mac.h:500
third.phy
phy
Definition: third.py:93
ns3::RegularWifiMac::m_forwardUp
ForwardUpCallback m_forwardUp
Callback to forward packet up the stack.
Definition: regular-wifi-mac.h:225
ns3::RegularWifiMac::m_psduResponseTimeoutCallback
PsduResponseTimeoutTracedCallback m_psduResponseTimeoutCallback
PSDU response timeout traced callback.
Definition: regular-wifi-mac.h:506
ns3::RegularWifiMac::SetErpSupported
void SetErpSupported(bool enable)
Enable or disable ERP support for the device.
Definition: regular-wifi-mac.cc:645
ns3::RegularWifiMac::m_ssid
Ssid m_ssid
Service Set ID (SSID)
Definition: regular-wifi-mac.h:229
ns3::RegularWifiMac::m_psduMapResponseTimeoutCallback
PsduMapResponseTimeoutTracedCallback m_psduMapResponseTimeoutCallback
PSDU map response timeout traced callback.
Definition: regular-wifi-mac.h:527
ns3::RegularWifiMac::GetWifiPhy
Ptr< WifiPhy > GetWifiPhy(void) const override
Definition: regular-wifi-mac.cc:558