23 #include "ns3/boolean.h"
24 #include "ns3/pointer.h"
25 #include "ns3/uinteger.h"
26 #include "ns3/trace-source-accessor.h"
53 m_low = CreateObject<MacLow> ();
59 m_dca = CreateObject<DcaTxop> ();
86 for (EdcaQueues::iterator i =
m_edca.begin (); i !=
m_edca.end (); ++i)
88 i->second->Initialize ();
114 for (EdcaQueues::iterator i =
m_edca.begin (); i !=
m_edca.end (); ++i)
129 m_dca->SetWifiRemoteStationManager (stationManager);
131 for (EdcaQueues::iterator i =
m_edca.begin (); i !=
m_edca.end (); ++i)
133 i->second->SetWifiRemoteStationManager (stationManager);
158 uint64_t maxSupportedRate = 0;
172 NS_LOG_DEBUG (
"Updating maxSupportedRate to " << maxSupportedRate);
360 edca->SetAccessCategory (ac);
361 edca->CompleteConfig ();
363 m_edca.insert (std::make_pair (ac, edca));
370 for (EdcaQueues::iterator i =
m_edca.begin (); i !=
m_edca.end (); ++i)
372 i->second->SetTypeOfStation (type);
727 <<
") does not support Enqueue() with from address");
801 m_edca[ac]->GotAddBaResponse (&respHdr, from);
824 m_edca[ac]->GotDelBaFrame (&delBaHdr, from);
830 NS_FATAL_ERROR (
"Unsupported Action field in Block Ack Action frame");
849 i != packets.end (); ++i)
851 ForwardUp ((*i).first, (*i).second.GetSourceAddr (),
852 (*i).second.GetDestinationAddr ());
919 .SetGroupName (
"Wifi")
920 .AddAttribute (
"QosSupported",
921 "This Boolean attribute is set to enable 802.11e/WMM-style QoS support at this STA.",
926 .AddAttribute (
"HtSupported",
927 "This Boolean attribute is set to enable 802.11n support at this STA.",
932 .AddAttribute (
"VhtSupported",
933 "This Boolean attribute is set to enable 802.11ac support at this STA.",
938 .AddAttribute (
"CtsToSelfSupported",
939 "Use CTS to Self when using a rate that is not in the basic rate set.",
944 .AddAttribute (
"VO_MaxAmsduSize",
945 "Maximum length in bytes of an A-MSDU for AC_VO access class.",
948 MakeUintegerChecker<uint32_t> ())
949 .AddAttribute (
"VI_MaxAmsduSize",
950 "Maximum length in bytes of an A-MSDU for AC_VI access class.",
953 MakeUintegerChecker<uint32_t> ())
954 .AddAttribute (
"BE_MaxAmsduSize",
955 "Maximum length in bytes of an A-MSDU for AC_BE access class.",
958 MakeUintegerChecker<uint32_t> ())
959 .AddAttribute (
"BK_MaxAmsduSize",
960 "Maximum length in bytes of an A-MSDU for AC_BK access class.",
963 MakeUintegerChecker<uint32_t> ())
964 .AddAttribute (
"VO_MaxAmpduSize",
965 "Maximum length in bytes of an A-MPDU for AC_VO access class.",
968 MakeUintegerChecker<uint32_t> ())
969 .AddAttribute (
"VI_MaxAmpduSize",
970 "Maximum length in bytes of an A-MPDU for AC_VI access class.",
973 MakeUintegerChecker<uint32_t> ())
974 .AddAttribute (
"BE_MaxAmpduSize",
975 "Maximum length in bytes of an A-MPDU for AC_BE access class.",
978 MakeUintegerChecker<uint32_t> ())
979 .AddAttribute (
"BK_MaxAmpduSize",
980 "Maximum length in bytes of an A-MPDU for AC_BK access class.",
983 MakeUintegerChecker<uint32_t> ())
984 .AddAttribute (
"VO_BlockAckThreshold",
985 "If number of packets in VO queue reaches this value, "
986 "block ack mechanism is used. If this value is 0, block ack is never used.",
989 MakeUintegerChecker<uint8_t> (0, 64))
990 .AddAttribute (
"VI_BlockAckThreshold",
991 "If number of packets in VI queue reaches this value, "
992 "block ack mechanism is used. If this value is 0, block ack is never used.",
995 MakeUintegerChecker<uint8_t> (0, 64))
996 .AddAttribute (
"BE_BlockAckThreshold",
997 "If number of packets in BE queue reaches this value, "
998 "block ack mechanism is used. If this value is 0, block ack is never used.",
1001 MakeUintegerChecker<uint8_t> (0, 64))
1002 .AddAttribute (
"BK_BlockAckThreshold",
1003 "If number of packets in BK queue reaches this value, "
1004 "block ack mechanism is used. If this value is 0, block ack is never used.",
1007 MakeUintegerChecker<uint8_t> (0, 64))
1008 .AddAttribute (
"VO_BlockAckInactivityTimeout",
1009 "Represents max time (blocks of 1024 micro seconds) allowed for block ack"
1010 "inactivity for AC_VO. If this value isn't equal to 0 a timer start after that a"
1011 "block ack setup is completed and will be reset every time that a block ack"
1012 "frame is received. If this value is 0, block ack inactivity timeout won't be used.",
1015 MakeUintegerChecker<uint16_t> ())
1016 .AddAttribute (
"VI_BlockAckInactivityTimeout",
1017 "Represents max time (blocks of 1024 micro seconds) allowed for block ack"
1018 "inactivity for AC_VI. If this value isn't equal to 0 a timer start after that a"
1019 "block ack setup is completed and will be reset every time that a block ack"
1020 "frame is received. If this value is 0, block ack inactivity timeout won't be used.",
1023 MakeUintegerChecker<uint16_t> ())
1024 .AddAttribute (
"BE_BlockAckInactivityTimeout",
1025 "Represents max time (blocks of 1024 micro seconds) allowed for block ack"
1026 "inactivity for AC_BE. If this value isn't equal to 0 a timer start after that a"
1027 "block ack setup is completed and will be reset every time that a block ack"
1028 "frame is received. If this value is 0, block ack inactivity timeout won't be used.",
1031 MakeUintegerChecker<uint16_t> ())
1032 .AddAttribute (
"BK_BlockAckInactivityTimeout",
1033 "Represents max time (blocks of 1024 micro seconds) allowed for block ack"
1034 "inactivity for AC_BK. If this value isn't equal to 0 a timer start after that a"
1035 "block ack setup is completed and will be reset every time that a block ack"
1036 "frame is received. If this value is 0, block ack inactivity timeout won't be used.",
1039 MakeUintegerChecker<uint16_t> ())
1040 .AddAttribute (
"ShortSlotTimeSupported",
1041 "Whether or not short slot time is supported (only used by ERP APs or STAs).",
1046 .AddAttribute (
"DcaTxop",
1047 "The DcaTxop object.",
1050 MakePointerChecker<DcaTxop> ())
1051 .AddAttribute (
"VO_EdcaTxopN",
1052 "Queue that manages packets belonging to AC_VO access class.",
1055 MakePointerChecker<EdcaTxopN> ())
1056 .AddAttribute (
"VI_EdcaTxopN",
1057 "Queue that manages packets belonging to AC_VI access class.",
1060 MakePointerChecker<EdcaTxopN> ())
1061 .AddAttribute (
"BE_EdcaTxopN",
1062 "Queue that manages packets belonging to AC_BE access class.",
1065 MakePointerChecker<EdcaTxopN> ())
1066 .AddAttribute (
"BK_EdcaTxopN",
1067 "Queue that manages packets belonging to AC_BK access class.",
1070 MakePointerChecker<EdcaTxopN> ())
1071 .AddTraceSource (
"TxOkHeader",
1072 "The header of successfully transmitted packet.",
1074 "ns3::WifiMacHeader::TracedCallback")
1075 .AddTraceSource (
"TxErrHeader",
1076 "The header of unsuccessfully transmitted packet.",
1078 "ns3::WifiMacHeader::TracedCallback")
1114 NS_FATAL_ERROR (
"Unsupported WifiPhyStandard in RegularWifiMac::FinishConfigureStandard ()");
1128 for (EdcaQueues::iterator i =
m_edca.begin (); i !=
m_edca.end (); ++i)
1152 if (
GetVOQueue ()->GetMsduAggregator () != 0)
1156 if (
GetVIQueue ()->GetMsduAggregator () != 0)
1160 if (
GetBEQueue ()->GetMsduAggregator () != 0)
1164 if (
GetBKQueue ()->GetMsduAggregator () != 0)
1168 if (
GetVOQueue ()->GetMpduAggregator () != 0)
1172 if (
GetVIQueue ()->GetMpduAggregator () != 0)
1176 if (
GetBEQueue ()->GetMpduAggregator () != 0)
1180 if (
GetBKQueue ()->GetMpduAggregator () != 0)
1190 for (EdcaQueues::iterator i =
m_edca.begin (); i !=
m_edca.end (); ++i)
1192 if (i->second->GetMsduAggregator () == 0)
1195 i->second->SetMsduAggregator (msduAggregator);
1197 if (i->second->GetMpduAggregator () == 0)
1200 i->second->SetMpduAggregator (mpduAggregator);
1210 for (EdcaQueues::iterator i =
m_edca.begin (); i !=
m_edca.end (); ++i)
1212 i->second->SetMsduAggregator (0);
1213 i->second->SetMpduAggregator (0);
void SetQosSupported(bool enable)
Enable or disable QoS support for the device.
ERP-OFDM PHY (Clause 19, Section 19.5)
uint32_t RemoveHeader(Header &header)
Deserialize and remove the header from the internal buffer.
void Dispose(void)
Dispose of this Object.
Time GetPifs(void) const
Return PCF Interframe Space (PIFS) of this MacLow.
void SetVoBlockAckInactivityTimeout(uint16_t timeout)
void SetPifs(Time pifs)
Set PCF Interframe Space (PIFS) of this MacLow.
uint32_t m_viMaxAmsduSize
void SetTxMcsSetDefined(uint8_t txmcssetdefined)
void SetShortGuardIntervalFor80Mhz(uint8_t shortguardinterval)
Simulation virtual time values and global simulation resolution.
void ConfigureAggregation(void)
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
OFDM PHY for the 5 GHz band (Clause 17 with 5 MHz channel bandwidth)
AttributeValue implementation for Boolean.
void SetGreenfield(uint8_t greenfield)
HT OFDM PHY for the 5 GHz band (clause 20)
bool GetVhtSupported() const
Return whether the device supports VHT.
void SetBlockAckInactivityTimeout(uint16_t timeout)
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
uint32_t m_bkMaxAmpduSize
virtual void SetWifiRemoteStationManager(Ptr< WifiRemoteStationManager > stationManager)
void SetPromisc(void)
Enable promiscuous mode.
void SetTxMcsMap(uint16_t map)
ForwardUpCallback m_forwardUp
Callback to forward packet up the stack.
void SetHtSupported(uint8_t htsupported)
void SetForwardCallback(ForwardUpCallback callback)
Set a callback to forward the packet up.
bool GetCtsToSelfSupported() const
Return whether the device supports CTS-to-self capability.
static TypeId GetTypeId(void)
void SetRxMcsBitmask(uint8_t index)
Ptr< const AttributeAccessor > MakeBooleanAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
void SetMaxMpduLength(uint8_t length)
EdcaQueues m_edca
This is a map from Access Category index to the corresponding channel access function.
uint32_t m_beMaxAmpduSize
void SetErpSupported(bool enable)
Enable or disable ERP support for the device.
Mac48Address GetBssid(void) const
Return the Basic Service Set Identification.
void SetSifs(Time sifs)
Set Short Interframe Space (SIFS) of this MacLow.
enum WifiModulationClass GetModulationClass() const
virtual uint8_t GetNMcs(void) const =0
The WifiPhy::GetNMcs() method is used (e.g., by a WifiRemoteStationManager) to determine the set of t...
virtual void SetCompressedBlockAckTimeout(Time blockAckTimeout)
void SetupLowListener(Ptr< MacLow > low)
Set up listener for MacLow events.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
Callback< void > m_linkUp
Callback when a link is up.
void ConfigureContentionWindow(uint32_t cwMin, uint32_t cwMax)
MacTxMiddle * m_txMiddle
TX middle (aggregation etc.)
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
The HT Capabilities Information ElementThis class knows how to serialise and deserialise the HT Capab...
std::list< std::pair< Ptr< Packet >, AmsduSubframeHeader > >::const_iterator DeaggregatedMsdusCI
OFDM PHY for the 5 GHz band (Clause 17 with 10 MHz channel bandwidth)
virtual void SetSsid(Ssid ssid)
void SetSlot(Time slotTime)
virtual Time GetCompressedBlockAckTimeout(void) const
static DeaggregatedMsdus Deaggregate(Ptr< Packet > aggregatedPacket)
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
virtual bool GetLdpc(void) const =0
bool GetQosSupported() const
Return whether the device supports QoS.
void SetRxCallback(Callback< void, Ptr< Packet >, const WifiMacHeader * > callback)
virtual void DeaggregateAmsduAndForward(Ptr< Packet > aggregatedPacket, const WifiMacHeader *hdr)
This method can be called to de-aggregate an A-MSDU and forward the constituent packets up the stack...
Time GetCompressedBlockAckTimeout() const
Return Compressed Block ACK timeout of this MacLow.
virtual void SetLinkDownCallback(Callback< void > linkDown)
void SetHtSupported(bool enable)
Enable or disable HT support for the device.
HT OFDM PHY for the 2.4 GHz band (clause 20)
void SetVhtSupported(uint8_t vhtsupported)
Ptr< WifiPhy > m_phy
Wifi PHY.
void SetRxLdpc(uint8_t rxldpc)
uint32_t m_voMaxAmpduSize
Time GetCtsTimeout(void) const
Return CTS timeout of this MacLow.
virtual Ssid GetSsid(void) const
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
uint32_t m_beMaxAmsduSize
VhtCapabilities GetVhtCapabilities(void) const
Return the VHT capability of the device.
virtual void Enqueue(Ptr< const Packet > packet, Mac48Address to, Mac48Address from)
MacRxMiddle * m_rxMiddle
RX middle (de-fragmentation etc.)
virtual void Receive(Ptr< Packet > packet, const WifiMacHeader *hdr)
This method acts as the MacRxMiddle receive callback and is invoked to notify us that a frame has bee...
void SetShortGuardIntervalFor160Mhz(uint8_t shortguardinterval)
virtual WifiMode GetMcs(uint8_t mcs) const =0
The WifiPhy::GetMcs() method is used (e.g., by a WifiRemoteStationManager) to determine the set of tr...
void SetViMaxAmpduSize(uint32_t size)
This class handles duplicate detection and recomposition of fragments.
void Receive(Ptr< Packet > packet, const WifiMacHeader *hdr)
TracedCallback< const WifiMacHeader & > m_txErrCallback
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source.
void SetCtsToSelfSupported(bool enable)
Enable or disable CTS-to-self capability.
Handles sequence numbering of IEEE 802.11 data frames.
void SetBasicBlockAckTimeout(Time blockAckTimeout)
Set Basic Block ACK timeout of this MacLow.
void SetBkMaxAmsduSize(uint32_t size)
void SetVoMaxAmpduSize(uint32_t size)
void SetVoBlockAckThreshold(uint8_t threshold)
void SetBeMaxAmpduSize(uint32_t size)
virtual void SetBssid(Mac48Address bssid)
Ptr< EdcaTxopN > GetVOQueue(void) const
Accessor for the AC_VO channel access function.
void SetLSigProtectionSupport(uint8_t lsigprotection)
void SetLow(Ptr< MacLow > low)
Set MacLow associated with this EdcaTxopN.
uint32_t m_voMaxAmsduSize
void ForwardUp(Ptr< Packet > packet, Mac48Address from, Mac48Address to)
Forward the packet up to the device.
virtual uint32_t GetChannelWidth(void) const =0
WifiPhyStandard
Identifies the PHY specification that a Wifi device is configured to use.
virtual void SetVhtSupported(bool enable)
Enable or disable VHT capability support.
void DestroyBlockAckAgreement(Mac48Address originator, uint8_t tid)
Time GetCtsTimeout(void) const
virtual void SetForwardUpCallback(ForwardUpCallback upCallback)
void SetBeMaxAmsduSize(uint32_t size)
void SetSuccess(void)
Set success bit to 0 (success).
void EnableAggregation(void)
void SetEifsNoDifs(Time eifsNoDifs)
void SetBkBlockAckThreshold(uint8_t threshold)
bool m_qosSupported
This Boolean is set true iff this WifiMac is to model 802.11e/WMM style Quality of Service...
Ptr< const AttributeAccessor > MakePointerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
virtual void SetBasicBlockAckTimeout(Time blockAckTimeout)
virtual void SetWifiPhy(Ptr< WifiPhy > phy)
void SetTypeOfStation(TypeOfStation type)
This method is invoked by a subclass to specify what type of station it is implementing.
void CreateBlockAckAgreement(const MgtAddBaResponseHeader *respHdr, Mac48Address originator, uint16_t startingSeq)
void SetShortGuardInterval20(uint8_t shortguardinterval)
Ptr< DcaTxop > m_dca
This holds a pointer to the DCF instance for this WifiMac - used for transmission of frames to non-Qo...
Ptr< EdcaTxopN > GetBEQueue(void) const
Accessor for the AC_BE channel access function.
void SetVoMaxAmsduSize(uint32_t size)
The IEEE 802.11ac VHT Capabilities.
Ssid m_ssid
Service Set ID (SSID)
Ptr< DcaTxop > GetDcaTxop(void) const
Accessor for the DCF object.
base class for all MAC-level wifi objects.
void ConfigureDcf(Ptr< Dcf > dcf, uint32_t cwmin, uint32_t cwmax, enum AcIndex ac)
Hold an unsigned integer type.
void RemovePhyListener(Ptr< WifiPhy > phy)
Remove current registered listener for Phy events.
virtual void SetMaxAmpduSize(uint32_t maxSize)=0
Time GetAckTimeout(void) const
void SetBlockAckThreshold(uint8_t threshold)
Set threshold for block ACK mechanism.
void SetupPhyListener(Ptr< WifiPhy > phy)
Set up listener for Phy events.
void SetViMaxAmsduSize(uint32_t size)
void SetMaxAmsduLength(uint8_t maxamsdulength)
void SetAckTimeout(Time ackTimeout)
Set ACK timeout of this MacLow.
Manage a set of ns3::DcfStateHandle a set of independent ns3::DcfState, each of which represents a si...
bool m_vhtSupported
This Boolean is set true iff this WifiMac is to model 802.11ac.
AcIndex QosUtilsMapTidToAc(uint8_t tid)
Maps TID (Traffic ID) to Access classes.
virtual void SetAddress(Mac48Address address)
Time GetRifs(void) const
Return Reduced Interframe Space (RIFS) of this MacLow.
uint8_t GetMcsValue(void) const
void SetMaxAmpduLength(uint8_t maxampdulength)
Callback< R > MakeCallback(R(T::*memPtr)(void), OBJ objPtr)
virtual bool GetGuardInterval(void) const =0
Mac48Address GetAddress(void) const
Return the MAC address of this MacLow.
virtual void ResetWifiPhy(void)
removes attached WifiPhy device from this MAC.
bool GetErpSupported() const
Return whether the device supports ERP.
Ptr< MacLow > m_low
MacLow (RTS, CTS, DATA, ACK etc.)
void SetBeBlockAckThreshold(uint8_t threshold)
HtCapabilities GetHtCapabilities(void) const
Return the HT capability of the device.
virtual void SendAddBaResponse(const MgtAddBaRequestHeader *reqHdr, Mac48Address originator)
This method can be called to accept a received ADDBA Request.
void SetSupportedChannelWidthSet(uint8_t channelwidthset)
Callback< void > m_linkDown
Callback when a link is down.
This is intended to be the configuration used in this paper: Gavin Holland, Nitin Vaidya and Paramvir...
TracedCallback< const WifiMacHeader & > m_txOkCallback
virtual void SetHtSupported(bool enable)
Enable or disable HT capability support.
void SetRxHighestSupportedDataRate(uint16_t maxsupportedrate)
virtual uint8_t GetSupportedRxSpatialStreams(void) const =0
Status code for association response.
Ptr< EdcaTxopN > GetVIQueue(void) const
Accessor for the AC_VI channel access function.
virtual void SetLinkUpCallback(Callback< void > linkUp)
virtual void DoDispose()
Destructor implementation.
Ptr< MpduAggregator > GetMpduAggregator(void) const
std::list< std::pair< Ptr< Packet >, AmsduSubframeHeader > > DeaggregatedMsdus
OFDM PHY for the 5 GHz band (Clause 17)
Ptr< MsduAggregator > GetMsduAggregator(void) const
Hold objects of type Ptr<T>.
void SetBssid(Mac48Address ad)
Set the Basic Service Set Identification.
void DisableAggregation(void)
Ptr< const AttributeChecker > MakeBooleanChecker(void)
void SetVhtSupported(bool enable)
Enable or disable VHT support for the device.
DSSS PHY (Clause 15) and HR/DSSS PHY (Clause 18)
DcfManager * m_dcfManager
DCF manager (access to channel)
virtual Ptr< WifiPhy > GetWifiPhy(void) const
uint64_t GetDataRate(uint32_t channelWidth, bool isShortGuardInterval, uint8_t nss) const
void SetEifsNoDifs(Time eifsNoDifs)
virtual void SetMaxAmsduSize(uint32_t maxSize)=0
void SetCtsTimeout(Time ctsTimeout)
virtual ~RegularWifiMac()
virtual bool SupportsSendFrom(void) const
void SetPhy(Ptr< WifiPhy > phy)
Set up WifiPhy associated with this MacLow.
The IEEE 802.11 SSID Information Element.
void SetViBlockAckInactivityTimeout(uint16_t timeout)
Time GetSlotTime(void) const
Return slot duration of this MacLow.
bool m_htSupported
This Boolean is set true iff this WifiMac is to model 802.11n.
virtual Mac48Address GetBssid(void) const
void SetSlot(Time slotTime)
void SetRxMcsMap(uint16_t map)
void SetRifs(Time rifs)
Set Reduced Interframe Space (RIFS) of this MacLow.
Ptr< EdcaTxopN > GetBKQueue(void) const
Accessor for the AC_BK channel access function.
void SetViBlockAckThreshold(uint8_t threshold)
virtual Time GetBasicBlockAckTimeout(void) const
void SetSlotTime(Time slotTime)
Set slot duration of this MacLow.
Time GetSifs(void) const
Return Short Interframe Space (SIFS) of this MacLow.
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
virtual Mac48Address GetAddress(void) const
virtual bool GetShortSlotTimeSupported(void) const =0
bool GetCtsToSelfSupported() const
Return whether CTS-to-self capability is supported.
Time GetEifsNoDifs() const
virtual void DoInitialize()
Initialize() implementation.
void SetCtsTimeout(Time ctsTimeout)
Set CTS timeout of this MacLow.
void SetLdpc(uint8_t ldpc)
void SetBkBlockAckInactivityTimeout(uint16_t timeout)
Time GetAckTimeout(void) const
Return ACK timeout of this MacLow.
uint32_t m_bkMaxAmsduSize
bool GetHtSupported() const
Return whether the device supports HT.
virtual Ptr< WifiRemoteStationManager > GetWifiRemoteStationManager(void) const
bool m_shortSlotTimeSupported
void SetAddress(Mac48Address ad)
Set MAC address of this MacLow.
virtual bool GetShortSlotTimeSupported(void) const
void SetTxMaxNSpatialStreams(uint8_t maxtxspatialstreams)
virtual void TxOk(const WifiMacHeader &hdr)
The packet we sent was successfully received by the receiver (i.e.
uint32_t m_viMaxAmpduSize
bool m_erpSupported
This Boolean is set true iff this WifiMac is to model 802.11g.
TypeOfStation
Enumeration for type of station.
void SetCtsToSelfSupported(bool enable)
Enable or disable CTS-to-self feature.
virtual void SetShortSlotTimeSupported(bool enable)=0
virtual void SetShortSlotTimeSupported(bool enable)
Enable or disable short slot time feature.
Ptr< WifiRemoteStationManager > m_stationManager
Remote station manager (rate control, RTS/CTS/fragmentation thresholds etc.)
virtual void SetPromisc(void)
Sets the interface in promiscuous mode.
void ResetPhy(void)
Remove WifiPhy associated with this MacLow.
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
void SetShortGuardInterval40(uint8_t shortguardinterval)
Time GetBasicBlockAckTimeout() const
Return Basic Block ACK timeout of this MacLow.
void SetBeBlockAckInactivityTimeout(uint16_t timeout)
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
void SetAckTimeout(Time ackTimeout)
virtual uint8_t GetSupportedTxSpatialStreams(void) const =0
AcIndex
This enumeration defines the Access Categories as an enumeration with values corresponding to the AC ...
virtual bool GetGreenfield(void) const =0
void AddHeader(const Header &header)
Add header to this packet.
void SetSupportedChannelWidth(uint8_t supportedchannelwidth)
void SetCompressedBlockAckTimeout(Time blockAckTimeout)
Set Compressed Block ACK timeout of this MacLow.
void SetWifiRemoteStationManager(Ptr< WifiRemoteStationManager > manager)
Set up WifiRemoteStationManager associated with this MacLow.
void SetBkMaxAmpduSize(uint32_t size)
virtual void FinishConfigureStandard(enum WifiPhyStandard standard)
virtual void TxFailed(const WifiMacHeader &hdr)
The packet we sent was successfully received by the receiver (i.e.
Time GetEifsNoDifs(void) const
void SetMaxAmpduLengthExponent(uint8_t exponent)
void SetupEdcaQueue(enum AcIndex ac)
This method is a private utility invoked to configure the channel access function for the specified A...