21 #include "ns3/nstime.h"
22 #include "ns3/uinteger.h"
40 .SetGroupName (
"Wifi")
42 .AddAttribute (
"GuardInterval",
43 "Specify the shortest guard interval duration that can be used for HE transmissions."
44 "Possible values are 800ns, 1600ns or 3200ns.",
49 .AddAttribute (
"BssColor",
54 MakeUintegerChecker<uint8_t> ())
55 .AddAttribute (
"MpduBufferSize",
56 "The MPDU buffer size for receiving A-MPDUs",
60 MakeUintegerChecker<uint16_t> (64, 256))
61 .AddAttribute (
"MuBeAifsn",
62 "AIFSN used by BE EDCA when the MU EDCA Timer is running. "
63 "It must be either zero (EDCA disabled) or a value from 2 to 15.",
66 MakeUintegerChecker<uint8_t> (0, 15))
67 .AddAttribute (
"MuBkAifsn",
68 "AIFSN used by BK EDCA when the MU EDCA Timer is running. "
69 "It must be either zero (EDCA disabled) or a value from 2 to 15.",
72 MakeUintegerChecker<uint8_t> (0, 15))
73 .AddAttribute (
"MuViAifsn",
74 "AIFSN used by VI EDCA when the MU EDCA Timer is running. "
75 "It must be either zero (EDCA disabled) or a value from 2 to 15.",
78 MakeUintegerChecker<uint8_t> (0, 15))
79 .AddAttribute (
"MuVoAifsn",
80 "AIFSN used by VO EDCA when the MU EDCA Timer is running. "
81 "It must be either zero (EDCA disabled) or a value from 2 to 15.",
84 MakeUintegerChecker<uint8_t> (0, 15))
85 .AddAttribute (
"MuBeCwMin",
86 "CWmin used by BE EDCA when the MU EDCA Timer is running. "
87 "It must be a power of 2 minus 1 in the range from 0 to 32767.",
90 MakeUintegerChecker<uint16_t> (0, 32767))
91 .AddAttribute (
"MuBkCwMin",
92 "CWmin used by BK EDCA when the MU EDCA Timer is running. "
93 "It must be a power of 2 minus 1 in the range from 0 to 32767.",
96 MakeUintegerChecker<uint16_t> (0, 32767))
97 .AddAttribute (
"MuViCwMin",
98 "CWmin used by VI EDCA when the MU EDCA Timer is running. "
99 "It must be a power of 2 minus 1 in the range from 0 to 32767.",
102 MakeUintegerChecker<uint16_t> (0, 32767))
103 .AddAttribute (
"MuVoCwMin",
104 "CWmin used by VO EDCA when the MU EDCA Timer is running. "
105 "It must be a power of 2 minus 1 in the range from 0 to 32767.",
108 MakeUintegerChecker<uint16_t> (0, 32767))
109 .AddAttribute (
"MuBeCwMax",
110 "CWmax used by BE EDCA when the MU EDCA Timer is running. "
111 "It must be a power of 2 minus 1 in the range from 0 to 32767.",
114 MakeUintegerChecker<uint16_t> (0, 32767))
115 .AddAttribute (
"MuBkCwMax",
116 "CWmax used by BK EDCA when the MU EDCA Timer is running. "
117 "It must be a power of 2 minus 1 in the range from 0 to 32767.",
120 MakeUintegerChecker<uint16_t> (0, 32767))
121 .AddAttribute (
"MuViCwMax",
122 "CWmax used by VI EDCA when the MU EDCA Timer is running. "
123 "It must be a power of 2 minus 1 in the range from 0 to 32767.",
126 MakeUintegerChecker<uint16_t> (0, 32767))
127 .AddAttribute (
"MuVoCwMax",
128 "CWmax used by VO EDCA when the MU EDCA Timer is running. "
129 "It must be a power of 2 minus 1 in the range from 0 to 32767.",
132 MakeUintegerChecker<uint16_t> (0, 32767))
133 .AddAttribute (
"BeMuEdcaTimer",
134 "The MU EDCA Timer used by BE EDCA. It must be a multiple of "
135 "8192 us and must be in the range from 8.192 ms to 2088.96 ms. "
136 "0 is a reserved value, but we allow to use this value to indicate "
137 "that an MU EDCA Parameter Set element must not be sent. Therefore, "
138 "0 can only be used if the MU EDCA Timer for all ACs is set to 0.",
142 .AddAttribute (
"BkMuEdcaTimer",
143 "The MU EDCA Timer used by BK EDCA. It must be a multiple of "
144 "8192 us and must be in the range from 8.192 ms to 2088.96 ms."
145 "0 is a reserved value, but we allow to use this value to indicate "
146 "that an MU EDCA Parameter Set element must not be sent. Therefore, "
147 "0 can only be used if the MU EDCA Timer for all ACs is set to 0.",
151 .AddAttribute (
"ViMuEdcaTimer",
152 "The MU EDCA Timer used by VI EDCA. It must be a multiple of "
153 "8192 us and must be in the range from 8.192 ms to 2088.96 ms."
154 "0 is a reserved value, but we allow to use this value to indicate "
155 "that an MU EDCA Parameter Set element must not be sent. Therefore, "
156 "0 can only be used if the MU EDCA Timer for all ACs is set to 0.",
160 .AddAttribute (
"VoMuEdcaTimer",
161 "The MU EDCA Timer used by VO EDCA. It must be a multiple of "
162 "8192 us and must be in the range from 8.192 ms to 2088.96 ms."
163 "0 is a reserved value, but we allow to use this value to indicate "
164 "that an MU EDCA Parameter Set element must not be sent. Therefore, "
165 "0 can only be used if the MU EDCA Timer for all ACs is set to 0.",
static TypeId GetTypeId(void)
Get the type ID.
uint16_t m_muBkCwMin
CWmin for BK in MU EDCA Parameter Set.
uint16_t m_muBkCwMax
CWmax for BK in MU EDCA Parameter Set.
uint8_t GetBssColor(void) const
uint16_t m_muVoCwMin
CWmin for VO in MU EDCA Parameter Set.
uint16_t m_muViCwMin
CWmin for VI in MU EDCA Parameter Set.
uint8_t m_muBeAifsn
AIFSN for BE in MU EDCA Parameter Set.
uint16_t m_muViCwMax
CWmax for VI in MU EDCA Parameter Set.
uint16_t m_mpduBufferSize
MPDU buffer size.
uint8_t m_muViAifsn
AIFSN for VI in MU EDCA Parameter Set.
uint16_t m_muBeCwMin
CWmin for BE in MU EDCA Parameter Set.
uint8_t m_muVoAifsn
AIFSN for VO in MU EDCA Parameter Set.
Time GetGuardInterval(void) const
Time m_bkMuEdcaTimer
Timer for BK in MU EDCA Parameter Set.
Time m_viMuEdcaTimer
Timer for VI in MU EDCA Parameter Set.
void SetBssColor(uint8_t bssColor)
uint16_t m_muBeCwMax
CWmax for BE in MU EDCA Parameter Set.
uint16_t GetMpduBufferSize(void) const
uint16_t m_muVoCwMax
CWmax for VO in MU EDCA Parameter Set.
Time m_beMuEdcaTimer
Timer for BE in MU EDCA Parameter Set.
Time m_guardInterval
Supported HE guard interval.
void SetGuardInterval(Time guardInterval)
uint8_t m_bssColor
BSS color.
Time m_voMuEdcaTimer
Timer for VO in MU EDCA Parameter Set.
void SetMpduBufferSize(uint16_t size)
uint8_t m_muBkAifsn
AIFSN for BK in MU EDCA Parameter Set.
A base class which provides memory management and object aggregation.
Simulation virtual time values and global simulation resolution.
AttributeValue implementation for Time.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Hold an unsigned integer type.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
Ptr< const AttributeAccessor > MakeTimeAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit.
Time NanoSeconds(uint64_t value)
Construct a Time in the indicated unit.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< const AttributeChecker > MakeTimeChecker(const Time min, const Time max)
Helper to make a Time checker with bounded range.