A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
eht-capabilities.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2021 DERONNE SOFTWARE ENGINEERING
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Sébastien Deronne <sebastien.deronne@gmail.com>
18 */
19
20#ifndef EHT_CAPABILITIES_H
21#define EHT_CAPABILITIES_H
22
23#include "ns3/he-capabilities.h"
24#include "ns3/wifi-information-element.h"
25
26#include <map>
27#include <optional>
28#include <vector>
29
30namespace ns3
31{
32
33class HeCapabilities;
34
35/**
36 * EHT MAC Capabilities Info subfield.
37 * See IEEE 802.11be D1.5 9.4.2.313.2 EHT MAC Capabilities Information subfield
38 */
40{
41 uint8_t epcsPriorityAccessSupported : 1; //!< EPCS Priority Access Supported
42 uint8_t ehtOmControlSupport : 1; //!< EHT OM Control Support
43 uint8_t triggeredTxopSharingMode1Support : 1; //!< Triggered TXOP Sharing Mode 1 Support
44 uint8_t triggeredTxopSharingMode2Support : 1; //!< Triggered TXOP Sharing Mode 2 Support
45 uint8_t restrictedTwtSupport : 1; //!< Restricted TWT Support
46 uint8_t scsTrafficDescriptionSupport : 1; //!< SCS Traffic Description Support
47 uint8_t maxMpduLength : 2; //!< Maximum MPDU Length
48 uint8_t maxAmpduLengthExponentExtension : 1; //!< Maximum A-MPDU length exponent extension
49
50 /**
51 * Get the size of the serialized EHT MAC capabilities subfield
52 *
53 * \return the size of the serialized EHT MAC capabilities subfield
54 */
55 uint16_t GetSize() const;
56 /**
57 * Serialize the EHT MAC capabilities subfield
58 *
59 * \param start iterator pointing to where the EHT MAC capabilities subfield should be written
60 * to
61 */
62 void Serialize(Buffer::Iterator& start) const;
63 /**
64 * Deserialize the EHT MAC capabilities subfield
65 *
66 * \param start iterator pointing to where the EHT MAC capabilities subfield should be read from
67 * \return the number of bytes read
68 */
69 uint16_t Deserialize(Buffer::Iterator start);
70};
71
72/**
73 * EHT PHY Capabilities Info subfield.
74 * See IEEE 802.11be D1.5 9.4.2.313.3 EHT PHY Capabilities Information subfield
75 */
77{
78 uint8_t support320MhzIn6Ghz : 1; //!< Support For 320 MHz In 6 GHz
79 uint8_t support242ToneRuInBwLargerThan20Mhz : 1; //!< Support For 242-tone RU In BW Wider Than
80 //!< 20 MHz
81 uint8_t ndpWith4TimesEhtLtfAnd32usGi : 1; //!< NDP With 4x EHT-LTF And 3.2 μs GI
82 uint8_t partialBandwidthUlMuMimo : 1; //!< Partial Bandwidth UL MU-MIMO
83 uint8_t suBeamformer : 1; //!< SU Beamformer
84 uint8_t suBeamformee : 1; //!< SU Beamformee
85 uint8_t beamformeeSsBwNotLargerThan80Mhz : 3; //!< Beamformee SS (≤ 80 MHz)
86 uint8_t beamformeeSs160Mhz : 3; //!< Beamformee SS (= 160 MHz)
87 uint8_t beamformeeSs320Mhz : 3; //!< Beamformee SS (= 320 MHz)
88 uint8_t nSoundingDimensionsBwNotLargerThan80Mhz : 3; //!< Beamformee SS (≤ 80 MHz)
89 uint8_t nSoundingDimensions160Mhz : 3; //!< Beamformee SS (= 160 MHz)
90 uint8_t nSoundingDimensions320Mhz : 3; //!< Beamformee SS (= 320 MHz)
91 uint8_t ng16SuFeedback : 1; //!< Support for subcarrier grouping of 16 for SU feedback
92 uint8_t ng16MuFeedback : 1; //!< Support for subcarrier grouping of 16 for MU feedback
93 uint8_t codebooksizeSuFeedback : 1; //!< Support for a codebook size for SU feedback.
94 uint8_t codebooksizeMuFeedback : 1; //!< Support for a codebook size for MU feedback.
95 uint8_t triggeredSuBeamformingFeedback : 1; //!< Triggered SU Beamforming Feedback
96 uint8_t triggeredMuBeamformingPartialBwFeedback : 1; //!< Triggered MU Beamforming Partial BW
97 //!< Feedback
98 uint8_t triggeredCqiFeedback : 1; //!< Triggered CQI Feedback
99 uint8_t partialBandwidthDlMuMimo : 1; //!< Partial Bandwidth DL MU-MIMO
100 uint8_t psrBasedSpatialReuseSupport : 1; //!< EHT PSR-Based SR Support
101 uint8_t powerBoostFactorSupport : 1; //!< Power Boost Factor Support
102 uint8_t muPpdu4xEhtLtfAnd800nsGi : 1; //!< EHT MU PPDU With 4x EHT-LTF And 0.8 μs GI
103 uint8_t maxNc : 4; //!< Max Nc
104 uint8_t nonTriggeredCqiFeedback : 1; //!< Non-Triggered CQI Feedback
105 uint8_t supportTx1024And4096QamForRuSmallerThan242Tones : 1; //!< Tx 1024-QAM And 4096-QAM <
106 //!< 242-tone RU Support
107 uint8_t supportRx1024And4096QamForRuSmallerThan242Tones : 1; //!< Rx 1024-QAM And 4096-QAM <
108 //!< 242-tone RU Support
109 uint8_t ppeThresholdsPresent : 1; //!< PPE Thresholds Present
110 uint8_t commonNominalPacketPadding : 2; //!< Common Nominal Packet Padding
111 uint8_t maxNumSupportedEhtLtfs : 5; //!< Maximum Number Of Supported EHT-LTFs
112 uint8_t supportMcs15 : 4; //!< Support Of MCS 15
113 uint8_t supportEhtDupIn6GHz : 1; //!< Support Of EHT DUP (MCS 14) In 6 GHz
114 uint8_t
115 support20MhzOperatingStaReceivingNdpWithWiderBw : 1; //!< Support For 20 MHz Operating STA
116 //!< Receiving NDP With Wider Bandwidth
117 uint8_t nonOfdmaUlMuMimoBwNotLargerThan80Mhz : 1; //!< Non-OFDMA UL MU-MIMO (BW ≤ 80 MHz)
118 uint8_t nonOfdmaUlMuMimo160Mhz : 1; //!< Non-OFDMA UL MU-MIMO (BW = 160 MHz)
119 uint8_t nonOfdmaUlMuMimo320Mhz : 1; //!< Non-OFDMA UL MU-MIMO (BW = 320 MHz)
120 uint8_t muBeamformerBwNotLargerThan80Mhz : 1; //!< MU Beamformer (BW ≤ 80 MHz)
121 uint8_t muBeamformer160Mhz : 1; //!< MU Beamformer (BW = 160 MHz)
122 uint8_t muBeamformer320Mhz : 1; //!< MU Beamformer (BW = 320 MHz)
123 uint8_t tbSoundingFeedbackRateLimit : 1; //!< TB Sounding Feedback Rate Limit
124 uint8_t
125 rx1024QamInWiderBwDlOfdmaSupport : 1; //!< Rx 1024-QAM In Wider Bandwidth DL OFDMA Support
126 uint8_t
127 rx4096QamInWiderBwDlOfdmaSupport : 1; //!< Rx 4096-QAM In Wider Bandwidth DL OFDMA Support
128
129 /**
130 * Get the size of the serialized EHT PHY capabilities subfield
131 *
132 * \return the size of the serialized EHT PHY capabilities subfield
133 */
134 uint16_t GetSize() const;
135 /**
136 * Serialize the EHT PHY capabilities subfield
137 *
138 * \param start iterator pointing to where the EHT PHY capabilities subfield should be written
139 * to
140 */
141 void Serialize(Buffer::Iterator& start) const;
142 /**
143 * Deserialize the EHT PHY capabilities subfield
144 *
145 * \param start iterator pointing to where the EHT PHY capabilities subfield should be read from
146 * \return the number of bytes read
147 */
148 uint16_t Deserialize(Buffer::Iterator start);
149};
150
151/**
152 * EHT MCS and NSS Set subfield.
153 * See IEEE 802.11be D1.5 9.4.2.313.4 Supported EHT-MCS And NSS Set subfield
154 */
156{
157 /**
158 * The different EHT-MCS map types as defined in 9.4.2.313.4 Supported EHT-MCS And NSS Set
159 * field.
160 */
161 enum EhtMcsMapType : uint8_t
162 {
168 };
169
170 std::map<EhtMcsMapType, std::vector<uint8_t>>
171 supportedEhtMcsAndNssSet; //!< Supported EHT-MCS And NSS Set
172
173 /**
174 * Get the size of the serialized Supported EHT-MCS And NSS Set subfield
175 *
176 * \return the size of the serialized Supported EHT-MCS And NSS Set subfield
177 */
178 uint16_t GetSize() const;
179 /**
180 * Serialize the Supported EHT-MCS And NSS Set subfield
181 *
182 * \param start iterator pointing to where the Supported EHT-MCS And NSS Set subfield should be
183 * written to
184 */
185 void Serialize(Buffer::Iterator& start) const;
186 /**
187 * Deserialize the Supported EHT-MCS And NSS Set subfield
188 *
189 * \param start iterator pointing to where the Supported EHT-MCS And NSS Set subfield should be
190 * read from \param is2_4Ghz indicating whether PHY is operating in 2.4 GHz based on previously
191 * serialized IEs \param heSupportedChannelWidthSet supported channel width set based on
192 * previously deserialized HE capabilities IE \param support320MhzIn6Ghz flag whether 320 MHz is
193 * supported in 6 GHz band based on EHT PHY capabilities subfield \return the number of bytes
194 * read
195 */
196 uint16_t Deserialize(Buffer::Iterator start,
197 bool is2_4Ghz,
198 uint8_t heSupportedChannelWidthSet,
199 bool support320MhzIn6Ghz);
200};
201
202/**
203 * EHT PPE Thresholds subfield.
204 * See IEEE 802.11be D1.5 9.4.2.313.5 EHT PPE Thresholds subfield
205 */
207{
208 /**
209 * EHT PPE Thresholds Info
210 */
212 {
213 uint8_t ppetMax : 3; //!< PPETmax
214 uint8_t ppet8 : 3; //!< PPE8
215 };
216
217 uint8_t nssPe : 4; //!< NSS_PE
218 uint8_t ruIndexBitmask : 5; //!< RU Index Bitmask
219 std::vector<EhtPpeThresholdsInfo> ppeThresholdsInfo; //!< PPE Thresholds Info
220
221 /**
222 * Get the size of the serialized EHT PPE Thresholds subfield
223 *
224 * \return the size of the serialized EHT PPE Thresholds subfield
225 */
226 uint16_t GetSize() const;
227 /**
228 * Serialize the EHT PPE Thresholds subfield
229 *
230 * \param start iterator pointing to where the EHT PPE Thresholds subfield should be written to
231 */
232 void Serialize(Buffer::Iterator& start) const;
233 /**
234 * Deserialize the EHT PPE Thresholds subfield
235 *
236 * \param start iterator pointing to where the EHT PPE Thresholds subfield should be read from
237 * \return the number of bytes read
238 */
239 uint16_t Deserialize(Buffer::Iterator start);
240};
241
242/**
243 * \ingroup wifi
244 *
245 * The IEEE 802.11be EHT Capabilities
246 */
248{
249 public:
250 /**
251 * Constructor
252 */
254 /**
255 * Constructor
256 *
257 * \param is2_4Ghz indicating whether PHY is operating in 2.4 GHz based on previously serialized
258 * IEs \param heCapabilities the optional HE capabilities contained in the same management frame
259 */
260 EhtCapabilities(bool is2_4Ghz, const std::optional<HeCapabilities>& heCapabilities);
261 // Implementations of pure virtual methods, or overridden from base class.
262 WifiInformationElementId ElementId() const override;
263 WifiInformationElementId ElementIdExt() const override;
264 void Print(std::ostream& os) const override;
265
266 /**
267 * Set the maximum MPDU length.
268 *
269 * \param length the maximum MPDU length (3895, 7991 or 11454)
270 */
271 void SetMaxMpduLength(uint16_t length);
272
273 /**
274 * Set the maximum A-MPDU length.
275 *
276 * \param maxAmpduLength 2^(23 + x) - 1, x in the range 0 to 1
277 */
278 void SetMaxAmpduLength(uint32_t maxAmpduLength);
279
280 /**
281 * Return the maximum A-MPDU length.
282 *
283 * \return the maximum A-MPDU length
284 */
286
287 /**
288 * Get the maximum MPDU length.
289 *
290 * \return the maximum MPDU length in bytes
291 */
292 uint16_t GetMaxMpduLength() const;
293
294 /**
295 * Set a subfield of the Supported EHT-MCS And NSS Set.
296 *
297 * \param mapType the type of the subfield
298 * \param upperMcs the upper MCS of the range
299 * \param maxNss the maximum NSS supported for transmission in the MCS range
300 */
302 uint8_t upperMcs,
303 uint8_t maxNss);
304 /**
305 * Set a subfield of the Supported EHT-MCS And NSS Set.
306 *
307 * \param mapType the type of the subfield
308 * \param upperMcs the upper MCS of the range
309 * \param maxNss the maximum NSS supported for reception in the MCS range
310 */
312 uint8_t upperMcs,
313 uint8_t maxNss);
314
315 /**
316 * Get the highest supported RX MCS for a given EHT-MCS map type.
317 *
318 * \param mapType the EHT-MCS map type
319 * \return the highest supported RX MCS for the given EHT-MCS map type
320 */
322 /**
323 * Get the highest supported TX MCS for a given EHT-MCS map type.
324 *
325 * \param mapType the EHT-MCS map type
326 * \return the highest supported TX MCS for the given EHT-MCS map type
327 */
329
330 /**
331 * Set the EHT PPE threshold info subfield
332 *
333 * \param nssPe the NSS_PE subfield
334 * \param ruIndexBitmask the RU Index Bitmask subfield
335 * \param ppeThresholds the PPE thresholds made of pairs (PPETmax, PPET8)
336 */
337 void SetPpeThresholds(uint8_t nssPe,
338 uint8_t ruIndexBitmask,
339 const std::vector<std::pair<uint8_t, uint8_t>>& ppeThresholds);
340
341 EhtMacCapabilities m_macCapabilities; //!< EHT MAC Capabilities Info subfield
342 EhtPhyCapabilities m_phyCapabilities; //!< EHT PHY Capabilities Info subfield
343 EhtMcsAndNssSet m_supportedEhtMcsAndNssSet; //!< Supported EHT-MCS And NSS Set subfield
344 EhtPpeThresholds m_ppeThresholds; //!< EHT PPE Threshold Info subfield
345
346 private:
347 uint16_t GetInformationFieldSize() const override;
348 void SerializeInformationField(Buffer::Iterator start) const override;
349 uint16_t DeserializeInformationField(Buffer::Iterator start, uint16_t length) override;
350
351 bool m_is2_4Ghz; //!< flag indicating whether PHY is operating in 2.4 GHz based on other IEs
352 //!< contained in the same management frame
353 std::optional<HeCapabilities>
354 m_heCapabilities; //!< HE capabilities contained in the same management frame if present
355};
356
357} // namespace ns3
358
359#endif /* EHT_CAPABILITIES_H */
iterator in a Buffer instance
Definition: buffer.h:100
The IEEE 802.11be EHT Capabilities.
uint16_t DeserializeInformationField(Buffer::Iterator start, uint16_t length) override
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)
void SetPpeThresholds(uint8_t nssPe, uint8_t ruIndexBitmask, const std::vector< std::pair< uint8_t, uint8_t > > &ppeThresholds)
Set the EHT PPE threshold info subfield.
void SerializeInformationField(Buffer::Iterator start) const override
Serialize information (i.e., the body of the IE, not including the Element ID and length octets)
void SetMaxMpduLength(uint16_t length)
Set the maximum MPDU length.
void SetSupportedTxEhtMcsAndNss(EhtMcsAndNssSet::EhtMcsMapType mapType, uint8_t upperMcs, uint8_t maxNss)
Set a subfield of the Supported EHT-MCS And NSS Set.
bool m_is2_4Ghz
flag indicating whether PHY is operating in 2.4 GHz based on other IEs contained in the same manageme...
WifiInformationElementId ElementIdExt() const override
Get the wifi information element ID extension.
EhtCapabilities()
Constructor.
void Print(std::ostream &os) const override
Generate human-readable form of IE.
EhtMcsAndNssSet m_supportedEhtMcsAndNssSet
Supported EHT-MCS And NSS Set subfield.
uint16_t GetInformationFieldSize() const override
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
EhtPpeThresholds m_ppeThresholds
EHT PPE Threshold Info subfield.
EhtPhyCapabilities m_phyCapabilities
EHT PHY Capabilities Info subfield.
uint8_t GetHighestSupportedTxMcs(EhtMcsAndNssSet::EhtMcsMapType mapType)
Get the highest supported TX MCS for a given EHT-MCS map type.
WifiInformationElementId ElementId() const override
Get the wifi information element ID.
uint32_t GetMaxAmpduLength() const
Return the maximum A-MPDU length.
EhtMacCapabilities m_macCapabilities
EHT MAC Capabilities Info subfield.
uint16_t GetMaxMpduLength() const
Get the maximum MPDU length.
void SetMaxAmpduLength(uint32_t maxAmpduLength)
Set the maximum A-MPDU length.
void SetSupportedRxEhtMcsAndNss(EhtMcsAndNssSet::EhtMcsMapType mapType, uint8_t upperMcs, uint8_t maxNss)
Set a subfield of the Supported EHT-MCS And NSS Set.
uint8_t GetHighestSupportedRxMcs(EhtMcsAndNssSet::EhtMcsMapType mapType)
Get the highest supported RX MCS for a given EHT-MCS map type.
std::optional< HeCapabilities > m_heCapabilities
HE capabilities contained in the same management frame if present.
Information element, as defined in 802.11-2007 standard.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.
EHT MAC Capabilities Info subfield.
uint16_t GetSize() const
Get the size of the serialized EHT MAC capabilities subfield.
uint8_t maxMpduLength
Maximum MPDU Length.
uint8_t epcsPriorityAccessSupported
EPCS Priority Access Supported.
uint8_t triggeredTxopSharingMode1Support
Triggered TXOP Sharing Mode 1 Support.
uint8_t restrictedTwtSupport
Restricted TWT Support.
uint8_t ehtOmControlSupport
EHT OM Control Support.
void Serialize(Buffer::Iterator &start) const
Serialize the EHT MAC capabilities subfield.
uint16_t Deserialize(Buffer::Iterator start)
Deserialize the EHT MAC capabilities subfield.
uint8_t scsTrafficDescriptionSupport
SCS Traffic Description Support.
uint8_t maxAmpduLengthExponentExtension
Maximum A-MPDU length exponent extension.
uint8_t triggeredTxopSharingMode2Support
Triggered TXOP Sharing Mode 2 Support.
EHT MCS and NSS Set subfield.
uint16_t Deserialize(Buffer::Iterator start, bool is2_4Ghz, uint8_t heSupportedChannelWidthSet, bool support320MhzIn6Ghz)
Deserialize the Supported EHT-MCS And NSS Set subfield.
uint16_t GetSize() const
Get the size of the serialized Supported EHT-MCS And NSS Set subfield.
void Serialize(Buffer::Iterator &start) const
Serialize the Supported EHT-MCS And NSS Set subfield.
std::map< EhtMcsMapType, std::vector< uint8_t > > supportedEhtMcsAndNssSet
Supported EHT-MCS And NSS Set.
EhtMcsMapType
The different EHT-MCS map types as defined in 9.4.2.313.4 Supported EHT-MCS And NSS Set field.
EHT PHY Capabilities Info subfield.
uint8_t support242ToneRuInBwLargerThan20Mhz
Support For 242-tone RU In BW Wider Than 20 MHz.
uint8_t triggeredSuBeamformingFeedback
Triggered SU Beamforming Feedback.
uint8_t ndpWith4TimesEhtLtfAnd32usGi
NDP With 4x EHT-LTF And 3.2 μs GI.
uint8_t ppeThresholdsPresent
PPE Thresholds Present.
uint8_t muBeamformer320Mhz
MU Beamformer (BW = 320 MHz)
uint8_t nSoundingDimensions160Mhz
Beamformee SS (= 160 MHz)
uint8_t rx1024QamInWiderBwDlOfdmaSupport
Rx 1024-QAM In Wider Bandwidth DL OFDMA Support.
uint8_t supportMcs15
Support Of MCS 15.
uint8_t beamformeeSsBwNotLargerThan80Mhz
Beamformee SS (≤ 80 MHz)
uint8_t partialBandwidthDlMuMimo
Partial Bandwidth DL MU-MIMO.
uint8_t nonOfdmaUlMuMimo320Mhz
Non-OFDMA UL MU-MIMO (BW = 320 MHz)
uint8_t muBeamformerBwNotLargerThan80Mhz
MU Beamformer (BW ≤ 80 MHz)
uint8_t triggeredCqiFeedback
Triggered CQI Feedback.
uint8_t nonOfdmaUlMuMimoBwNotLargerThan80Mhz
Non-OFDMA UL MU-MIMO (BW ≤ 80 MHz)
uint16_t GetSize() const
Get the size of the serialized EHT PHY capabilities subfield.
uint8_t nSoundingDimensions320Mhz
Beamformee SS (= 320 MHz)
uint8_t beamformeeSs320Mhz
Beamformee SS (= 320 MHz)
uint8_t partialBandwidthUlMuMimo
Partial Bandwidth UL MU-MIMO.
uint8_t psrBasedSpatialReuseSupport
EHT PSR-Based SR Support.
uint8_t nonOfdmaUlMuMimo160Mhz
Non-OFDMA UL MU-MIMO (BW = 160 MHz)
uint8_t suBeamformee
SU Beamformee.
uint8_t rx4096QamInWiderBwDlOfdmaSupport
Rx 4096-QAM In Wider Bandwidth DL OFDMA Support.
uint8_t tbSoundingFeedbackRateLimit
TB Sounding Feedback Rate Limit.
uint8_t muPpdu4xEhtLtfAnd800nsGi
EHT MU PPDU With 4x EHT-LTF And 0.8 μs GI.
uint8_t muBeamformer160Mhz
MU Beamformer (BW = 160 MHz)
uint8_t support320MhzIn6Ghz
Support For 320 MHz In 6 GHz.
uint8_t support20MhzOperatingStaReceivingNdpWithWiderBw
Support For 20 MHz Operating STA Receiving NDP With Wider Bandwidth.
uint8_t beamformeeSs160Mhz
Beamformee SS (= 160 MHz)
uint8_t codebooksizeSuFeedback
Support for a codebook size for SU feedback.
uint8_t triggeredMuBeamformingPartialBwFeedback
Triggered MU Beamforming Partial BW Feedback.
uint8_t nonTriggeredCqiFeedback
Non-Triggered CQI Feedback.
uint8_t powerBoostFactorSupport
Power Boost Factor Support.
uint16_t Deserialize(Buffer::Iterator start)
Deserialize the EHT PHY capabilities subfield.
uint8_t supportEhtDupIn6GHz
Support Of EHT DUP (MCS 14) In 6 GHz.
uint8_t ng16MuFeedback
Support for subcarrier grouping of 16 for MU feedback.
uint8_t ng16SuFeedback
Support for subcarrier grouping of 16 for SU feedback.
uint8_t commonNominalPacketPadding
Common Nominal Packet Padding.
uint8_t codebooksizeMuFeedback
Support for a codebook size for MU feedback.
void Serialize(Buffer::Iterator &start) const
Serialize the EHT PHY capabilities subfield.
uint8_t supportTx1024And4096QamForRuSmallerThan242Tones
Tx 1024-QAM And 4096-QAM < 242-tone RU Support.
uint8_t suBeamformer
SU Beamformer.
uint8_t nSoundingDimensionsBwNotLargerThan80Mhz
Beamformee SS (≤ 80 MHz)
uint8_t supportRx1024And4096QamForRuSmallerThan242Tones
Rx 1024-QAM And 4096-QAM < 242-tone RU Support.
uint8_t maxNumSupportedEhtLtfs
Maximum Number Of Supported EHT-LTFs.
EHT PPE Thresholds subfield.
uint16_t Deserialize(Buffer::Iterator start)
Deserialize the EHT PPE Thresholds subfield.
std::vector< EhtPpeThresholdsInfo > ppeThresholdsInfo
PPE Thresholds Info.
void Serialize(Buffer::Iterator &start) const
Serialize the EHT PPE Thresholds subfield.
uint8_t ruIndexBitmask
RU Index Bitmask.
uint16_t GetSize() const
Get the size of the serialized EHT PPE Thresholds subfield.