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 enum WifiTxTimerReason : uint8_t;
39 
40 typedef std::unordered_map <uint16_t /* staId */, Ptr<WifiPsdu> /* PSDU */> WifiPsduMap;
41 
50 class RegularWifiMac : public WifiMac
51 {
52 public:
57  static TypeId GetTypeId (void);
58 
59  RegularWifiMac ();
60  virtual ~RegularWifiMac ();
61 
62  // Implementations of pure virtual methods.
63  void SetShortSlotTimeSupported (bool enable) override;
64  void SetSsid (Ssid ssid) override;
65  void SetAddress (Mac48Address address) override;
66  void SetPromisc (void) override;
67  bool GetShortSlotTimeSupported (void) const override;
68  Ssid GetSsid (void) const override;
69  Mac48Address GetAddress (void) const override;
70  Mac48Address GetBssid (void) const override;
71  void Enqueue (Ptr<Packet> packet, Mac48Address to, Mac48Address from) override;
72  bool SupportsSendFrom (void) const override;
73  void SetWifiPhy (const Ptr<WifiPhy> phy) override;
74  Ptr<WifiPhy> GetWifiPhy (void) const override;
75  void ResetWifiPhy (void) override;
76  void SetWifiRemoteStationManager (const Ptr<WifiRemoteStationManager> stationManager) override;
77  void ConfigureStandard (WifiStandard standard) override;
78  TypeOfStation GetTypeOfStation (void) const override;
79  void SetForwardUpCallback (ForwardUpCallback upCallback) override;
80  void SetLinkUpCallback (Callback<void> linkUp) override;
81  void SetLinkDownCallback (Callback<void> linkDown) override;
83 
84  // Should be implemented by child classes
85  void Enqueue (Ptr<Packet> packet, Mac48Address to) override = 0;
86 
93 
100  void SetCtsToSelfSupported (bool enable);
104  void SetBssid (Mac48Address bssid);
105 
111  Ptr<Txop> GetTxop (void) const;
118  Ptr<QosTxop> GetQosTxop (AcIndex ac) const;
125  Ptr<QosTxop> GetQosTxop (uint8_t tid) const;
126 
132  bool GetQosSupported () const;
138  bool GetErpSupported () const;
144  bool GetDsssSupported () const;
150  bool GetHtSupported () const;
156  bool GetVhtSupported () const;
162  bool GetHeSupported () const;
163 
175  HtCapabilities GetHtCapabilities (void) const;
181  VhtCapabilities GetVhtCapabilities (void) const;
187  HeCapabilities GetHeCapabilities (void) const;
188 
195  uint32_t GetMaxAmpduSize (AcIndex ac) const;
202  uint16_t GetMaxAmsduSize (AcIndex ac) const;
203 
204 protected:
205  void DoInitialize () override;
206  void DoDispose () override;
207  void SetTypeOfStation (TypeOfStation type) override;
208 
214 
216 
220 
222 
226 
229  typedef std::map<AcIndex, Ptr<QosTxop> > EdcaQueues;
230 
234 
240  Ptr<QosTxop> GetVOQueue (void) const;
246  Ptr<QosTxop> GetVIQueue (void) const;
252  Ptr<QosTxop> GetBEQueue (void) const;
258  Ptr<QosTxop> GetBKQueue (void) const;
259 
267  void ConfigureContentionWindow (uint32_t cwMin, uint32_t cwMax);
268 
282  virtual void Receive (Ptr<WifiMacQueueItem> mpdu);
283 
291  void ForwardUp (Ptr<const Packet> packet, Mac48Address from, Mac48Address to);
292 
300 
306  virtual void SetQosSupported (bool enable);
307 
312  void SetupFrameExchangeManager (void);
313 
319  void SetErpSupported (bool enable);
320 
326  void SetDsssSupported (bool enable);
327 
328 private:
338 
345  void SetupEdcaQueue (AcIndex ac);
346 
352  void SetVoBlockAckThreshold (uint8_t threshold);
358  void SetViBlockAckThreshold (uint8_t threshold);
364  void SetBeBlockAckThreshold (uint8_t threshold);
370  void SetBkBlockAckThreshold (uint8_t threshold);
371 
377  void SetVoBlockAckInactivityTimeout (uint16_t timeout);
383  void SetViBlockAckInactivityTimeout (uint16_t timeout);
389  void SetBeBlockAckInactivityTimeout (uint16_t timeout);
395  void SetBkBlockAckInactivityTimeout (uint16_t timeout);
396 
398 
423 
426 
427  uint16_t m_voMaxAmsduSize;
428  uint16_t m_viMaxAmsduSize;
429  uint16_t m_beMaxAmsduSize;
430  uint16_t m_bkMaxAmsduSize;
431 
432  uint32_t m_voMaxAmpduSize;
433  uint32_t m_viMaxAmpduSize;
434  uint32_t m_beMaxAmpduSize;
435  uint32_t m_bkMaxAmpduSize;
436 
439 
442 
445 
453 
456 
461 
469  typedef void (* MpduResponseTimeoutCallback)(uint8_t reason, Ptr<const WifiMacQueueItem> mpdu,
470  const WifiTxVector& txVector);
471 
474 
480 
488  typedef void (* PsduResponseTimeoutCallback)(uint8_t reason, Ptr<const WifiPsdu> psdu,
489  const WifiTxVector& txVector);
490 
493 
499 
508  typedef void (* PsduMapResponseTimeoutCallback)(uint8_t reason, WifiPsduMap* psduMap,
509  const std::set<Mac48Address>* missingStations,
510  std::size_t nTotalStations);
511 
514 
520 
523 };
524 
525 } //namespace ns3
526 
527 #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:458
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:176
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:417
ns3::RegularWifiMac::SetBeBlockAckInactivityTimeout
void SetBeBlockAckInactivityTimeout(uint16_t timeout)
Set BE block ack inactivity timeout.
Definition: regular-wifi-mac.cc:444
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:195
ns3::RegularWifiMac::m_address
Mac48Address m_address
MAC address of this station.
Definition: regular-wifi-mac.h:424
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:488
ns3::RegularWifiMac::SetViBlockAckInactivityTimeout
void SetViBlockAckInactivityTimeout(uint16_t timeout)
Set VI block ack inactivity timeout.
Definition: regular-wifi-mac.cc:437
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:685
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:433
ns3::RegularWifiMac::SetBssid
void SetBssid(Mac48Address bssid)
Definition: regular-wifi-mac.cc:691
ns3::RegularWifiMac::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: regular-wifi-mac.cc:874
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:618
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:578
ns3::RegularWifiMac::m_shortSlotTimeSupported
bool m_shortSlotTimeSupported
flag whether short slot time is supported
Definition: regular-wifi-mac.h:521
ns3::RegularWifiMac::GetBssid
Mac48Address GetBssid(void) const override
Definition: regular-wifi-mac.cc:702
ns3::RegularWifiMac::GetErpSupported
bool GetErpSupported() const
Return whether the device supports ERP.
Definition: regular-wifi-mac.cc:628
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:1153
ns3::RegularWifiMac::m_viMaxAmsduSize
uint16_t m_viMaxAmsduSize
maximum A-MSDU size for AC_VI (in bytes)
Definition: regular-wifi-mac.h:428
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:209
ns3::RegularWifiMac::SetLinkUpCallback
void SetLinkUpCallback(Callback< void > linkUp) override
Definition: regular-wifi-mac.cc:571
ns3::RegularWifiMac
base class for all MAC-level wifi objects.
Definition: regular-wifi-mac.h:51
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:508
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:863
ns3::RegularWifiMac::m_voMaxAmsduSize
uint16_t m_voMaxAmsduSize
maximum A-MSDU size for AC_VO (in bytes)
Definition: regular-wifi-mac.h:427
ns3::RegularWifiMac::GetQosSupported
bool GetQosSupported() const
Return whether the device supports QoS.
Definition: regular-wifi-mac.cc:592
ns3::RegularWifiMac::SetSsid
void SetSsid(Ssid ssid) override
Definition: regular-wifi-mac.cc:678
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:430
ns3::RegularWifiMac::m_typeOfStation
TypeOfStation m_typeOfStation
the type of station
Definition: regular-wifi-mac.h:397
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:435
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:1178
ns3::RegularWifiMac::ConfigureContentionWindow
void ConfigureContentionWindow(uint32_t cwMin, uint32_t cwMax)
Definition: regular-wifi-mac.cc:1138
ns3::RegularWifiMac::m_linkDown
Callback< void > m_linkDown
Callback when a link is down.
Definition: regular-wifi-mac.h:219
ns3::RegularWifiMac::GetAddress
Mac48Address GetAddress(void) const override
Definition: regular-wifi-mac.cc:672
ns3::Ptr< Packet >
ns3::RegularWifiMac::SupportsSendFrom
bool SupportsSendFrom(void) const override
Definition: regular-wifi-mac.cc:740
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:233
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:469
ns3::RegularWifiMac::m_droppedMpduCallback
DroppedMpduTracedCallback m_droppedMpduCallback
This trace indicates that an MPDU was dropped for the given reason.
Definition: regular-wifi-mac.h:460
ns3::RegularWifiMac::m_beMaxAmpduSize
uint32_t m_beMaxAmpduSize
maximum A-MPDU size for AC_BE (in bytes)
Definition: regular-wifi-mac.h:434
ns3::RegularWifiMac::GetVhtSupported
bool GetVhtSupported() const
Return whether the device supports VHT.
Definition: regular-wifi-mac.cc:608
ns3::RegularWifiMac::m_ctsToSelfSupported
bool m_ctsToSelfSupported
flag indicating whether CTS-To-Self is supported
Definition: regular-wifi-mac.h:522
ns3::RegularWifiMac::ResetWifiPhy
void ResetWifiPhy(void) override
Remove currently attached WifiPhy device from this MAC.
Definition: regular-wifi-mac.cc:554
ns3::RegularWifiMac::SetupFrameExchangeManager
void SetupFrameExchangeManager(void)
Create a Frame Exchange Manager depending on the supported version of the standard.
Definition: regular-wifi-mac.cc:125
ns3::RegularWifiMac::SetAddress
void SetAddress(Mac48Address address) override
Definition: regular-wifi-mac.cc:665
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:94
ns3::RegularWifiMac::m_linkUp
Callback< void > m_linkUp
Callback when a link is up.
Definition: regular-wifi-mac.h:218
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:225
ns3::RegularWifiMac::GetShortSlotTimeSupported
bool GetShortSlotTimeSupported(void) const override
Definition: regular-wifi-mac.cc:722
ns3::RegularWifiMac::m_voMaxAmpduSize
uint32_t m_voMaxAmpduSize
maximum A-MPDU size for AC_VO (in bytes)
Definition: regular-wifi-mac.h:432
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:71
ns3::RegularWifiMac::m_stationManager
Ptr< WifiRemoteStationManager > m_stationManager
Remote station manager (rate control, RTS/CTS/fragmentation thresholds etc.)
Definition: regular-wifi-mac.h:215
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:441
ns3::RegularWifiMac::SetVoBlockAckThreshold
void SetVoBlockAckThreshold(uint8_t threshold)
Set the block ack threshold for AC_VO.
Definition: regular-wifi-mac.cc:402
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:229
ns3::RegularWifiMac::m_ackedMpduCallback
MpduTracedCallback m_ackedMpduCallback
ack'ed MPDU callback
Definition: regular-wifi-mac.h:443
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:479
ns3::RegularWifiMac::SetWifiRemoteStationManager
void SetWifiRemoteStationManager(const Ptr< WifiRemoteStationManager > stationManager) override
Definition: regular-wifi-mac.cc:182
ns3::RegularWifiMac::SetBeBlockAckThreshold
void SetBeBlockAckThreshold(uint8_t threshold)
Set the block ack threshold for AC_BE.
Definition: regular-wifi-mac.cc:416
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:746
ns3::RegularWifiMac::m_beMaxAmsduSize
uint16_t m_beMaxAmsduSize
maximum A-MSDU size for AC_BE (in bytes)
Definition: regular-wifi-mac.h:429
ns3::RegularWifiMac::SetBkBlockAckInactivityTimeout
void SetBkBlockAckInactivityTimeout(uint16_t timeout)
Set BK block ack inactivity timeout.
Definition: regular-wifi-mac.cc:451
ns3::RegularWifiMac::m_bssid
Mac48Address m_bssid
the BSSID
Definition: regular-wifi-mac.h:425
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:438
ns3::RegularWifiMac::SetViBlockAckThreshold
void SetViBlockAckThreshold(uint8_t threshold)
Set the block ack threshold for AC_VI.
Definition: regular-wifi-mac.cc:409
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:422
ns3::RegularWifiMac::DroppedMpduCallback
void(* DroppedMpduCallback)(WifiMacDropReason reason, Ptr< const WifiMacQueueItem > mpdu)
TracedCallback signature for MPDU drop events.
Definition: regular-wifi-mac.h:452
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:585
timeout
ns3::Time timeout
Definition: openflow-switch.cc:52
ns3::RegularWifiMac::ConfigureStandard
void ConfigureStandard(WifiStandard standard) override
Definition: regular-wifi-mac.cc:1095
ns3::RegularWifiMac::SetCtsToSelfSupported
void SetCtsToSelfSupported(bool enable)
Enable or disable CTS-to-self feature.
Definition: regular-wifi-mac.cc:658
ns3::RegularWifiMac::GetHtCapabilities
HtCapabilities GetHtCapabilities(void) const
Return the HT capabilities of the device.
Definition: regular-wifi-mac.cc:206
ns3::RegularWifiMac::Enqueue
void Enqueue(Ptr< Packet > packet, Mac48Address to, Mac48Address from) override
Definition: regular-wifi-mac.cc:728
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:513
ns3::RegularWifiMac::GetHeCapabilities
HeCapabilities GetHeCapabilities(void) const
Return the HE capabilities of the device.
Definition: regular-wifi-mac.cc:345
ns3::RegularWifiMac::m_feManager
Ptr< FrameExchangeManager > m_feManager
Frame Exchange Manager.
Definition: regular-wifi-mac.h:213
ns3::RegularWifiMac::SetDsssSupported
void SetDsssSupported(bool enable)
Enable or disable DSSS support for the device.
Definition: regular-wifi-mac.cc:645
ns3::RegularWifiMac::SetBkBlockAckThreshold
void SetBkBlockAckThreshold(uint8_t threshold)
Set the block ack threshold for AC_BK.
Definition: regular-wifi-mac.cc:423
ns3::RegularWifiMac::SetForwardUpCallback
void SetForwardUpCallback(ForwardUpCallback upCallback) override
Definition: regular-wifi-mac.cc:564
ns3::RegularWifiMac::m_txOkCallback
TracedCallback< const WifiMacHeader & > m_txOkCallback
transmit OK callback
Definition: regular-wifi-mac.h:437
ns3::RegularWifiMac::RegularWifiMac
RegularWifiMac()
Definition: regular-wifi-mac.cc:47
ns3::RegularWifiMac::SetWifiPhy
void SetWifiPhy(const Ptr< WifiPhy > phy) override
Definition: regular-wifi-mac.cc:537
ns3::RegularWifiMac::MpduResponseTimeoutTracedCallback
TracedCallback< uint8_t, Ptr< const WifiMacQueueItem >, const WifiTxVector & > MpduResponseTimeoutTracedCallback
TracedCallback for MPDU response timeout events typedef.
Definition: regular-wifi-mac.h:473
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:715
ns3::RegularWifiMac::DroppedMpduTracedCallback
TracedCallback< WifiMacDropReason, Ptr< const WifiMacQueueItem > > DroppedMpduTracedCallback
TracedCallback for MPDU drop events typedef.
Definition: regular-wifi-mac.h:455
third.ssid
ssid
Definition: third.py:100
ns3::RegularWifiMac::DoInitialize
void DoInitialize() override
Initialize() implementation.
Definition: regular-wifi-mac.cc:82
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:210
ns3::RegularWifiMac::m_channelAccessManager
Ptr< ChannelAccessManager > m_channelAccessManager
channel access manager
Definition: regular-wifi-mac.h:211
ns3::RegularWifiMac::GetDsssSupported
bool GetDsssSupported() const
Return whether the device supports DSSS.
Definition: regular-wifi-mac.cc:652
ns3::RegularWifiMac::GetWifiRemoteStationManager
Ptr< WifiRemoteStationManager > GetWifiRemoteStationManager(void) const override
Definition: regular-wifi-mac.cc:189
ns3::RegularWifiMac::GetVhtCapabilities
VhtCapabilities GetVhtCapabilities(void) const
Return the VHT capabilities of the device.
Definition: regular-wifi-mac.cc:262
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:444
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:212
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:708
ns3::RegularWifiMac::~RegularWifiMac
virtual ~RegularWifiMac()
Definition: regular-wifi-mac.cc:76
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:430
ns3::RegularWifiMac::GetHtSupported
bool GetHtSupported() const
Return whether the device supports HT.
Definition: regular-wifi-mac.cc:598
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:412
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:753
ns3::RegularWifiMac::PsduResponseTimeoutTracedCallback
TracedCallback< uint8_t, Ptr< const WifiPsdu >, const WifiTxVector & > PsduResponseTimeoutTracedCallback
TracedCallback for PSDU response timeout events typedef.
Definition: regular-wifi-mac.h:492
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:217
ns3::RegularWifiMac::m_psduResponseTimeoutCallback
PsduResponseTimeoutTracedCallback m_psduResponseTimeoutCallback
PSDU response timeout traced callback.
Definition: regular-wifi-mac.h:498
ns3::RegularWifiMac::SetErpSupported
void SetErpSupported(bool enable)
Enable or disable ERP support for the device.
Definition: regular-wifi-mac.cc:634
ns3::RegularWifiMac::m_ssid
Ssid m_ssid
Service Set ID (SSID)
Definition: regular-wifi-mac.h:221
ns3::RegularWifiMac::m_psduMapResponseTimeoutCallback
PsduMapResponseTimeoutTracedCallback m_psduMapResponseTimeoutCallback
PSDU map response timeout traced callback.
Definition: regular-wifi-mac.h:519
ns3::RegularWifiMac::GetWifiPhy
Ptr< WifiPhy > GetWifiPhy(void) const override
Definition: regular-wifi-mac.cc:547