A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
mgt-headers.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2006 INRIA
3 * Copyright (c) 2009 MIRKO BANCHI
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 * Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19 * Mirko Banchi <mk.banchi@gmail.com>
20 */
21
22#ifndef MGT_HEADERS_H
23#define MGT_HEADERS_H
24
26#include "edca-parameter-set.h"
29#include "ssid.h"
30#include "status-code.h"
31#include "supported-rates.h"
32#include "wifi-mgt-header.h"
33
34#include "ns3/dsss-parameter-set.h"
35#include "ns3/eht-capabilities.h"
36#include "ns3/eht-operation.h"
37#include "ns3/erp-information.h"
38#include "ns3/he-capabilities.h"
39#include "ns3/he-operation.h"
40#include "ns3/ht-capabilities.h"
41#include "ns3/ht-operation.h"
42#include "ns3/mac48-address.h"
43#include "ns3/mu-edca-parameter-set.h"
44#include "ns3/multi-link-element.h"
45#include "ns3/tid-to-link-mapping-element.h"
46#include "ns3/vht-capabilities.h"
47#include "ns3/vht-operation.h"
48
49namespace ns3
50{
51
52/**
53 * Indicate which Information Elements cannot be included in a Per-STA Profile subelement of
54 * a Basic Multi-Link Element (see Sec. 35.3.3.4 of 802.11be D3.1):
55 *
56 * An AP affiliated with an AP MLD shall not include a Timestamp field, a Beacon Interval field,
57 * an AID field, a BSS Max Idle Period element, a Neighbor Report element, a Reduced Neighbor
58 * Report element, a Multiple BSSID element, TIM element, Multiple BSSID-Index element, Multiple
59 * BSSID Configuration element, TID-to-Link Mapping element, Multi-Link Traffic Indication element
60 * or another Multi- Link element in the STA Profile field of the Basic Multi-Link element.
61 *
62 * A non-AP STA affiliated with a non-AP MLD shall not include a Listen Interval field, a Current
63 * AP Address field, an SSID element, BSS Max Idle Period element or another Multi-Link element in
64 * the STA Profile field of the Basic Multi-Link element.
65 */
66
67/** \copydoc CanBeInPerStaProfile */
68template <>
70{
71};
72
73/** \copydoc CanBeInPerStaProfile */
74template <>
75struct CanBeInPerStaProfile<TidToLinkMapping> : std::false_type
76{
77};
78
79/** \copydoc CanBeInPerStaProfile */
80template <>
81struct CanBeInPerStaProfile<MultiLinkElement> : std::false_type
82{
83};
84
85/** \copydoc CanBeInPerStaProfile */
86template <>
87struct CanBeInPerStaProfile<Ssid> : std::false_type
88{
89};
90
91/// List of Information Elements included in Probe Request frames
92using ProbeRequestElems = std::tuple<Ssid,
94 std::optional<ExtendedSupportedRatesIE>,
95 std::optional<HtCapabilities>,
96 std::optional<ExtendedCapabilities>,
97 std::optional<VhtCapabilities>,
98 std::optional<HeCapabilities>,
99 std::optional<EhtCapabilities>>;
100
101/// List of Information Elements included in Probe Response frames
102using ProbeResponseElems = std::tuple<Ssid,
104 std::optional<DsssParameterSet>,
105 std::optional<ErpInformation>,
106 std::optional<ExtendedSupportedRatesIE>,
107 std::optional<EdcaParameterSet>,
108 std::optional<HtCapabilities>,
109 std::optional<HtOperation>,
110 std::optional<ExtendedCapabilities>,
111 std::optional<VhtCapabilities>,
112 std::optional<VhtOperation>,
113 std::optional<ReducedNeighborReport>,
114 std::optional<HeCapabilities>,
115 std::optional<HeOperation>,
116 std::optional<MuEdcaParameterSet>,
117 std::optional<MultiLinkElement>,
118 std::optional<EhtCapabilities>,
119 std::optional<EhtOperation>,
120 std::vector<TidToLinkMapping>>;
121
122/// List of Information Elements included in Association Request frames
123using AssocRequestElems = std::tuple<Ssid,
125 std::optional<ExtendedSupportedRatesIE>,
126 std::optional<HtCapabilities>,
127 std::optional<ExtendedCapabilities>,
128 std::optional<VhtCapabilities>,
129 std::optional<HeCapabilities>,
130 std::optional<MultiLinkElement>,
131 std::optional<EhtCapabilities>,
132 std::vector<TidToLinkMapping>>;
133
134/// List of Information Elements included in Association Response frames
136 std::optional<ExtendedSupportedRatesIE>,
137 std::optional<EdcaParameterSet>,
138 std::optional<HtCapabilities>,
139 std::optional<HtOperation>,
140 std::optional<ExtendedCapabilities>,
141 std::optional<VhtCapabilities>,
142 std::optional<VhtOperation>,
143 std::optional<HeCapabilities>,
144 std::optional<HeOperation>,
145 std::optional<MuEdcaParameterSet>,
146 std::optional<MultiLinkElement>,
147 std::optional<EhtCapabilities>,
148 std::optional<EhtOperation>,
149 std::vector<TidToLinkMapping>>;
150
151/**
152 * \ingroup wifi
153 * Implement the header for management frames of type association request.
154 */
156 : public MgtHeaderInPerStaProfile<MgtAssocRequestHeader, AssocRequestElems>
157{
160
161 public:
162 ~MgtAssocRequestHeader() override = default;
163
164 /**
165 * Register this type.
166 * \return The TypeId.
167 */
168 static TypeId GetTypeId();
169
170 /** \copydoc Header::GetInstanceTypeId */
171 TypeId GetInstanceTypeId() const override;
172
173 /**
174 * Set the listen interval.
175 *
176 * \param interval the listen interval
177 */
178 void SetListenInterval(uint16_t interval);
179 /**
180 * Return the listen interval.
181 *
182 * \return the listen interval
183 */
184 uint16_t GetListenInterval() const;
185 /**
186 * \return a reference to the Capability information
187 */
189 /**
190 * \return a const reference to the Capability information
191 */
192 const CapabilityInformation& Capabilities() const;
193
194 protected:
195 /** \copydoc Header::GetSerializedSize */
197 /** \copydoc Header::Serialize */
198 void SerializeImpl(Buffer::Iterator start) const;
199 /** \copydoc Header::Deserialize */
201
202 /**
203 * \param frame the frame containing the Multi-Link Element
204 * \return the number of bytes that are needed to serialize this header into a Per-STA Profile
205 * subelement of the Multi-Link Element
206 */
208
209 /**
210 * Serialize this header into a Per-STA Profile subelement of a Multi-Link Element
211 *
212 * \param start an iterator which points to where the header should be written
213 * \param frame the frame containing the Multi-Link Element
214 */
216 const MgtAssocRequestHeader& frame) const;
217
218 /**
219 * Deserialize this header from a Per-STA Profile subelement of a Multi-Link Element.
220 *
221 * \param start an iterator which points to where the header should be read from
222 * \param length the expected number of bytes to read
223 * \param frame the frame containing the Multi-Link Element
224 * \return the number of bytes read
225 */
227 uint16_t length,
228 const MgtAssocRequestHeader& frame);
229
230 private:
231 CapabilityInformation m_capability; //!< Capability information
232 uint16_t m_listenInterval{0}; //!< listen interval
233};
234
235/**
236 * \ingroup wifi
237 * Implement the header for management frames of type reassociation request.
238 */
240 : public MgtHeaderInPerStaProfile<MgtReassocRequestHeader, AssocRequestElems>
241{
244
245 public:
246 ~MgtReassocRequestHeader() override = default;
247
248 /**
249 * Register this type.
250 * \return The TypeId.
251 */
252 static TypeId GetTypeId();
253
254 /** \copydoc Header::GetInstanceTypeId */
255 TypeId GetInstanceTypeId() const override;
256
257 /**
258 * Set the listen interval.
259 *
260 * \param interval the listen interval
261 */
262 void SetListenInterval(uint16_t interval);
263 /**
264 * Return the listen interval.
265 *
266 * \return the listen interval
267 */
268 uint16_t GetListenInterval() const;
269 /**
270 * \return a reference to the Capability information
271 */
273 /**
274 * \return a const reference to the Capability information
275 */
276 const CapabilityInformation& Capabilities() const;
277 /**
278 * Set the address of the current access point.
279 *
280 * \param currentApAddr address of the current access point
281 */
282 void SetCurrentApAddress(Mac48Address currentApAddr);
283
284 protected:
285 /** \copydoc Header::GetSerializedSize */
287 /** \copydoc Header::Serialize */
288 void SerializeImpl(Buffer::Iterator start) const;
289 /** \copydoc Header::Deserialize */
291 /** \copydoc Header::Print */
292 void PrintImpl(std::ostream& os) const;
293
294 /**
295 * \param frame the frame containing the Multi-Link Element
296 * \return the number of bytes that are needed to serialize this header into a Per-STA Profile
297 * subelement of the Multi-Link Element
298 */
300
301 /**
302 * Serialize this header into a Per-STA Profile subelement of a Multi-Link Element
303 *
304 * \param start an iterator which points to where the header should be written
305 * \param frame the frame containing the Multi-Link Element
306 */
308 const MgtReassocRequestHeader& frame) const;
309
310 /**
311 * Deserialize this header from a Per-STA Profile subelement of a Multi-Link Element.
312 *
313 * \param start an iterator which points to where the header should be read from
314 * \param length the expected number of bytes to read
315 * \param frame the frame containing the Multi-Link Element
316 * \return the number of bytes read
317 */
319 uint16_t length,
320 const MgtReassocRequestHeader& frame);
321
322 private:
323 Mac48Address m_currentApAddr; //!< Address of the current access point
324 CapabilityInformation m_capability; //!< Capability information
325 uint16_t m_listenInterval{0}; //!< listen interval
326};
327
328/**
329 * \ingroup wifi
330 * Implement the header for management frames of type association and reassociation response.
331 */
333 : public MgtHeaderInPerStaProfile<MgtAssocResponseHeader, AssocResponseElems>
334{
337
338 public:
339 ~MgtAssocResponseHeader() override = default;
340
341 /**
342 * Register this type.
343 * \return The TypeId.
344 */
345 static TypeId GetTypeId();
346
347 /** \copydoc Header::GetInstanceTypeId */
348 TypeId GetInstanceTypeId() const override;
349
350 /**
351 * Return the status code.
352 *
353 * \return the status code
354 */
356 /**
357 * Set the status code.
358 *
359 * \param code the status code
360 */
361 void SetStatusCode(StatusCode code);
362 /**
363 * \return a reference to the Capability information
364 */
366 /**
367 * \return a const reference to the Capability information
368 */
369 const CapabilityInformation& Capabilities() const;
370 /**
371 * Return the association ID.
372 *
373 * \return the association ID
374 */
375 uint16_t GetAssociationId() const;
376 /**
377 * Set the association ID.
378 *
379 * \param aid the association ID
380 */
381 void SetAssociationId(uint16_t aid);
382
383 protected:
384 /** \copydoc Header::GetSerializedSize */
386 /** \copydoc Header::Serialize */
387 void SerializeImpl(Buffer::Iterator start) const;
388 /** \copydoc Header::Deserialize */
390 /** \copydoc Header::Print */
391 void PrintImpl(std::ostream& os) const;
392
393 /**
394 * \param frame the frame containing the Multi-Link Element
395 * \return the number of bytes that are needed to serialize this header into a Per-STA Profile
396 * subelement of the Multi-Link Element
397 */
399
400 /**
401 * Serialize this header into a Per-STA Profile subelement of a Multi-Link Element
402 *
403 * \param start an iterator which points to where the header should be written
404 * \param frame the frame containing the Multi-Link Element
405 */
407 const MgtAssocResponseHeader& frame) const;
408
409 /**
410 * Deserialize this header from a Per-STA Profile subelement of a Multi-Link Element.
411 *
412 * \param start an iterator which points to where the header should be read from
413 * \param length the expected number of bytes to read
414 * \param frame the frame containing the Multi-Link Element
415 * \return the number of bytes read
416 */
418 uint16_t length,
419 const MgtAssocResponseHeader& frame);
420
421 private:
422 CapabilityInformation m_capability; //!< Capability information
423 StatusCode m_code; //!< Status code
424 uint16_t m_aid{0}; //!< AID
425};
426
427/**
428 * \ingroup wifi
429 * Implement the header for management frames of type probe request.
430 */
431class MgtProbeRequestHeader : public WifiMgtHeader<MgtProbeRequestHeader, ProbeRequestElems>
432{
433 public:
434 ~MgtProbeRequestHeader() override = default;
435
436 /**
437 * Register this type.
438 * \return The TypeId.
439 */
440 static TypeId GetTypeId();
441
442 /** \copydoc Header::GetInstanceTypeId */
443 TypeId GetInstanceTypeId() const override;
444};
445
446/**
447 * \ingroup wifi
448 * Implement the header for management frames of type probe response.
449 */
450class MgtProbeResponseHeader : public WifiMgtHeader<MgtProbeResponseHeader, ProbeResponseElems>
451{
453
454 public:
455 ~MgtProbeResponseHeader() override = default;
456
457 /**
458 * Register this type.
459 * \return The TypeId.
460 */
461 static TypeId GetTypeId();
462
463 /** \copydoc Header::GetInstanceTypeId */
464 TypeId GetInstanceTypeId() const override;
465
466 /**
467 * Return the beacon interval in microseconds unit.
468 *
469 * \return beacon interval in microseconds unit
470 */
471 uint64_t GetBeaconIntervalUs() const;
472 /**
473 * Set the beacon interval in microseconds unit.
474 *
475 * \param us beacon interval in microseconds unit
476 */
477 void SetBeaconIntervalUs(uint64_t us);
478 /**
479 * \return a reference to the Capability information
480 */
482 /**
483 * \return a const reference to the Capability information
484 */
485 const CapabilityInformation& Capabilities() const;
486 /**
487 * Return the time stamp.
488 *
489 * \return time stamp
490 */
491 uint64_t GetTimestamp() const;
492
493 protected:
494 /** \copydoc Header::GetSerializedSize */
496 /** \copydoc Header::Serialize*/
497 void SerializeImpl(Buffer::Iterator start) const;
498 /** \copydoc Header::Deserialize */
500
501 private:
502 uint64_t m_timestamp; //!< Timestamp
503 uint64_t m_beaconInterval; //!< Beacon interval
504 CapabilityInformation m_capability; //!< Capability information
505};
506
507/**
508 * \ingroup wifi
509 * Implement the header for management frames of type beacon.
510 */
512{
513 public:
514 ~MgtBeaconHeader() override = default;
515
516 /**
517 * Register this type.
518 * \return The TypeId.
519 */
520 static TypeId GetTypeId();
521};
522
523} // namespace ns3
524
525#endif /* MGT_HEADERS_H */
iterator in a Buffer instance
Definition: buffer.h:100
an EUI-48 address
Definition: mac48-address.h:46
Implement the header for management frames of type association request.
Definition: mgt-headers.h:157
uint32_t GetSerializedSizeImpl() const
Definition: mgt-headers.cc:199
uint32_t DeserializeImpl(Buffer::Iterator start)
Definition: mgt-headers.cc:244
CapabilityInformation & Capabilities()
Definition: mgt-headers.cc:193
uint32_t DeserializeFromPerStaProfileImpl(Buffer::Iterator start, uint16_t length, const MgtAssocRequestHeader &frame)
Deserialize this header from a Per-STA Profile subelement of a Multi-Link Element.
Definition: mgt-headers.cc:270
~MgtAssocRequestHeader() override=default
void SerializeImpl(Buffer::Iterator start) const
Definition: mgt-headers.cc:223
CapabilityInformation m_capability
Capability information.
Definition: mgt-headers.h:231
void SerializeInPerStaProfileImpl(Buffer::Iterator start, const MgtAssocRequestHeader &frame) const
Serialize this header into a Per-STA Profile subelement of a Multi-Link Element.
Definition: mgt-headers.cc:234
void SetListenInterval(uint16_t interval)
Set the listen interval.
Definition: mgt-headers.cc:181
uint16_t GetListenInterval() const
Return the listen interval.
Definition: mgt-headers.cc:175
uint16_t m_listenInterval
listen interval
Definition: mgt-headers.h:232
uint32_t GetSerializedSizeInPerStaProfileImpl(const MgtAssocRequestHeader &frame) const
Definition: mgt-headers.cc:211
static TypeId GetTypeId()
Register this type.
Definition: mgt-headers.cc:159
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Definition: mgt-headers.cc:169
Implement the header for management frames of type association and reassociation response.
Definition: mgt-headers.h:334
CapabilityInformation & Capabilities()
Definition: mgt-headers.cc:474
static TypeId GetTypeId()
Register this type.
Definition: mgt-headers.cc:440
StatusCode GetStatusCode()
Return the status code.
Definition: mgt-headers.cc:456
~MgtAssocResponseHeader() override=default
uint32_t GetSerializedSizeImpl() const
Definition: mgt-headers.cc:492
uint32_t DeserializeFromPerStaProfileImpl(Buffer::Iterator start, uint16_t length, const MgtAssocResponseHeader &frame)
Deserialize this header from a Per-STA Profile subelement of a Multi-Link Element.
Definition: mgt-headers.cc:573
uint32_t DeserializeImpl(Buffer::Iterator start)
Definition: mgt-headers.cc:549
void SetStatusCode(StatusCode code)
Set the status code.
Definition: mgt-headers.cc:462
uint32_t GetSerializedSizeInPerStaProfileImpl(const MgtAssocResponseHeader &frame) const
Definition: mgt-headers.cc:505
void SetAssociationId(uint16_t aid)
Set the association ID.
Definition: mgt-headers.cc:480
CapabilityInformation m_capability
Capability information.
Definition: mgt-headers.h:422
void SerializeImpl(Buffer::Iterator start) const
Definition: mgt-headers.cc:526
void PrintImpl(std::ostream &os) const
Definition: mgt-headers.cc:518
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Definition: mgt-headers.cc:450
void SerializeInPerStaProfileImpl(Buffer::Iterator start, const MgtAssocResponseHeader &frame) const
Serialize this header into a Per-STA Profile subelement of a Multi-Link Element.
Definition: mgt-headers.cc:538
uint16_t GetAssociationId() const
Return the association ID.
Definition: mgt-headers.cc:486
StatusCode m_code
Status code.
Definition: mgt-headers.h:423
Implement the header for management frames of type beacon.
Definition: mgt-headers.h:512
static TypeId GetTypeId()
Register this type.
Definition: mgt-headers.cc:143
~MgtBeaconHeader() override=default
Implement the header for management frames that can be included in a Per-STA Profile subelement of a ...
Implement the header for management frames of type probe request.
Definition: mgt-headers.h:432
~MgtProbeRequestHeader() override=default
static TypeId GetTypeId()
Register this type.
Definition: mgt-headers.cc:37
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Definition: mgt-headers.cc:47
Implement the header for management frames of type probe response.
Definition: mgt-headers.h:451
uint64_t GetTimestamp() const
Return the time stamp.
Definition: mgt-headers.cc:99
uint64_t m_beaconInterval
Beacon interval.
Definition: mgt-headers.h:503
uint32_t GetSerializedSizeImpl() const
Definition: mgt-headers.cc:105
static TypeId GetTypeId()
Register this type.
Definition: mgt-headers.cc:59
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Definition: mgt-headers.cc:69
uint32_t DeserializeImpl(Buffer::Iterator start)
Definition: mgt-headers.cc:124
~MgtProbeResponseHeader() override=default
void SetBeaconIntervalUs(uint64_t us)
Set the beacon interval in microseconds unit.
Definition: mgt-headers.cc:81
uint64_t GetBeaconIntervalUs() const
Return the beacon interval in microseconds unit.
Definition: mgt-headers.cc:75
void SerializeImpl(Buffer::Iterator start) const
Definition: mgt-headers.cc:114
CapabilityInformation m_capability
Capability information.
Definition: mgt-headers.h:504
uint64_t m_timestamp
Timestamp.
Definition: mgt-headers.h:502
CapabilityInformation & Capabilities()
Definition: mgt-headers.cc:93
Implement the header for management frames of type reassociation request.
Definition: mgt-headers.h:241
Mac48Address m_currentApAddr
Address of the current access point.
Definition: mgt-headers.h:323
uint16_t m_listenInterval
listen interval
Definition: mgt-headers.h:325
uint16_t GetListenInterval() const
Return the listen interval.
Definition: mgt-headers.cc:307
static TypeId GetTypeId()
Register this type.
Definition: mgt-headers.cc:291
CapabilityInformation & Capabilities()
Definition: mgt-headers.cc:325
void PrintImpl(std::ostream &os) const
Definition: mgt-headers.cc:362
void SerializeInPerStaProfileImpl(Buffer::Iterator start, const MgtReassocRequestHeader &frame) const
Serialize this header into a Per-STA Profile subelement of a Multi-Link Element.
Definition: mgt-headers.cc:381
uint32_t DeserializeImpl(Buffer::Iterator start)
Definition: mgt-headers.cc:391
void SerializeImpl(Buffer::Iterator start) const
Definition: mgt-headers.cc:369
void SetListenInterval(uint16_t interval)
Set the listen interval.
Definition: mgt-headers.cc:313
~MgtReassocRequestHeader() override=default
CapabilityInformation m_capability
Capability information.
Definition: mgt-headers.h:324
uint32_t GetSerializedSizeInPerStaProfileImpl(const MgtReassocRequestHeader &frame) const
Definition: mgt-headers.cc:350
uint32_t DeserializeFromPerStaProfileImpl(Buffer::Iterator start, uint16_t length, const MgtReassocRequestHeader &frame)
Deserialize this header from a Per-STA Profile subelement of a Multi-Link Element.
Definition: mgt-headers.cc:418
uint32_t GetSerializedSizeImpl() const
Definition: mgt-headers.cc:337
void SetCurrentApAddress(Mac48Address currentApAddr)
Set the address of the current access point.
Definition: mgt-headers.cc:331
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Definition: mgt-headers.cc:301
The Reduced Neighbor Report element.
The IEEE 802.11 SSID Information Element.
Definition: ssid.h:36
Status code for association response.
Definition: status-code.h:32
The Supported Rates Information Element.
a unique identifier for an interface.
Definition: type-id.h:59
Implement the header for management frames.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::tuple< SupportedRates, std::optional< ExtendedSupportedRatesIE >, std::optional< EdcaParameterSet >, std::optional< HtCapabilities >, std::optional< HtOperation >, std::optional< ExtendedCapabilities >, std::optional< VhtCapabilities >, std::optional< VhtOperation >, std::optional< HeCapabilities >, std::optional< HeOperation >, std::optional< MuEdcaParameterSet >, std::optional< MultiLinkElement >, std::optional< EhtCapabilities >, std::optional< EhtOperation >, std::vector< TidToLinkMapping > > AssocResponseElems
List of Information Elements included in Association Response frames.
Definition: mgt-headers.h:149
std::tuple< Ssid, SupportedRates, std::optional< ExtendedSupportedRatesIE >, std::optional< HtCapabilities >, std::optional< ExtendedCapabilities >, std::optional< VhtCapabilities >, std::optional< HeCapabilities >, std::optional< EhtCapabilities > > ProbeRequestElems
List of Information Elements included in Probe Request frames.
Definition: mgt-headers.h:99
std::tuple< Ssid, SupportedRates, std::optional< ExtendedSupportedRatesIE >, std::optional< HtCapabilities >, std::optional< ExtendedCapabilities >, std::optional< VhtCapabilities >, std::optional< HeCapabilities >, std::optional< MultiLinkElement >, std::optional< EhtCapabilities >, std::vector< TidToLinkMapping > > AssocRequestElems
List of Information Elements included in Association Request frames.
Definition: mgt-headers.h:132
std::tuple< Ssid, SupportedRates, std::optional< DsssParameterSet >, std::optional< ErpInformation >, std::optional< ExtendedSupportedRatesIE >, std::optional< EdcaParameterSet >, std::optional< HtCapabilities >, std::optional< HtOperation >, std::optional< ExtendedCapabilities >, std::optional< VhtCapabilities >, std::optional< VhtOperation >, std::optional< ReducedNeighborReport >, std::optional< HeCapabilities >, std::optional< HeOperation >, std::optional< MuEdcaParameterSet >, std::optional< MultiLinkElement >, std::optional< EhtCapabilities >, std::optional< EhtOperation >, std::vector< TidToLinkMapping > > ProbeResponseElems
List of Information Elements included in Probe Response frames.
Definition: mgt-headers.h:120
Inspect a type to deduce whether it is an Information Element that can be included in a Per-STA Profi...