A Discrete-Event Network Simulator
API
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 
25 #include "capability-information.h"
26 #include "edca-parameter-set.h"
27 #include "extended-capabilities.h"
29 #include "ssid.h"
30 #include "status-code.h"
31 #include "supported-rates.h"
32 
33 #include "ns3/dsss-parameter-set.h"
34 #include "ns3/eht-capabilities.h"
35 #include "ns3/eht-operation.h"
36 #include "ns3/erp-information.h"
37 #include "ns3/he-capabilities.h"
38 #include "ns3/he-operation.h"
39 #include "ns3/ht-capabilities.h"
40 #include "ns3/ht-operation.h"
41 #include "ns3/mac48-address.h"
42 #include "ns3/mu-edca-parameter-set.h"
43 #include "ns3/multi-link-element.h"
44 #include "ns3/vht-capabilities.h"
45 #include "ns3/vht-operation.h"
46 
47 namespace ns3
48 {
49 
55 {
56  public:
58  ~MgtAssocRequestHeader() override;
59 
65  void SetSsid(const Ssid& ssid);
66 
68  void SetSsid(Ssid&& ssid);
69 
75  void SetSupportedRates(const SupportedRates& rates);
76 
78  void SetSupportedRates(SupportedRates&& rates);
79 
85  void SetListenInterval(uint16_t interval);
86 
92  void SetCapabilities(const CapabilityInformation& capabilities);
93 
95  void SetCapabilities(CapabilityInformation&& capabilities);
96 
102  void SetExtendedCapabilities(const ExtendedCapabilities& extendedCapabilities);
103 
105  void SetExtendedCapabilities(ExtendedCapabilities&& extendedCapabilities);
106 
112  void SetHtCapabilities(const HtCapabilities& htCapabilities);
113 
115  void SetHtCapabilities(HtCapabilities&& htCapabilities);
116 
122  void SetVhtCapabilities(const VhtCapabilities& vhtCapabilities);
123 
125  void SetVhtCapabilities(VhtCapabilities&& vhtCapabilities);
126 
132  void SetHeCapabilities(const HeCapabilities& heCapabilities);
133 
135  void SetHeCapabilities(HeCapabilities&& heCapabilities);
136 
142  void SetEhtCapabilities(const EhtCapabilities& ehtCapabilities);
143 
145  void SetEhtCapabilities(EhtCapabilities&& ehtCapabilities);
146 
152  void SetMultiLinkElement(const MultiLinkElement& multiLinkElement);
153 
155  void SetMultiLinkElement(MultiLinkElement&& multiLinkElement);
156 
162  const CapabilityInformation& GetCapabilities() const;
168  const std::optional<ExtendedCapabilities>& GetExtendedCapabilities() const;
174  const std::optional<HtCapabilities>& GetHtCapabilities() const;
180  const std::optional<VhtCapabilities>& GetVhtCapabilities() const;
186  const std::optional<HeCapabilities>& GetHeCapabilities() const;
192  const std::optional<EhtCapabilities>& GetEhtCapabilities() const;
198  const Ssid& GetSsid() const;
204  const SupportedRates& GetSupportedRates() const;
210  uint16_t GetListenInterval() const;
216  const std::optional<MultiLinkElement>& GetMultiLinkElement() const;
217 
222  static TypeId GetTypeId();
223 
224  TypeId GetInstanceTypeId() const override;
225  void Print(std::ostream& os) const override;
226  uint32_t GetSerializedSize() const override;
227  void Serialize(Buffer::Iterator start) const override;
228  uint32_t Deserialize(Buffer::Iterator start) override;
229 
230  private:
234  std::optional<ExtendedCapabilities> m_extendedCapability;
235  std::optional<HtCapabilities> m_htCapability;
236  std::optional<VhtCapabilities> m_vhtCapability;
237  std::optional<HeCapabilities> m_heCapability;
238  uint16_t m_listenInterval;
239  std::optional<EhtCapabilities> m_ehtCapability;
240  std::optional<MultiLinkElement> m_multiLinkElement;
241 };
242 
248 {
249  public:
251  ~MgtReassocRequestHeader() override;
252 
258  void SetSsid(const Ssid& ssid);
259 
261  void SetSsid(Ssid&& ssid);
262 
268  void SetSupportedRates(const SupportedRates& rates);
269 
271  void SetSupportedRates(SupportedRates&& rates);
272 
278  void SetListenInterval(uint16_t interval);
279 
285  void SetCapabilities(const CapabilityInformation& capabilities);
286 
288  void SetCapabilities(CapabilityInformation&& capabilities);
289 
295  void SetExtendedCapabilities(const ExtendedCapabilities& extendedCapabilities);
296 
298  void SetExtendedCapabilities(ExtendedCapabilities&& extendedCapabilities);
299 
305  void SetHtCapabilities(const HtCapabilities& htCapabilities);
306 
308  void SetHtCapabilities(HtCapabilities&& htCapabilities);
309 
315  void SetVhtCapabilities(const VhtCapabilities& vhtCapabilities);
316 
318  void SetVhtCapabilities(VhtCapabilities&& vhtCapabilities);
319 
325  void SetHeCapabilities(const HeCapabilities& heCapabilities);
326 
328  void SetHeCapabilities(HeCapabilities&& heCapabilities);
329 
335  void SetEhtCapabilities(const EhtCapabilities& ehtCapabilities);
336 
338  void SetEhtCapabilities(EhtCapabilities&& ehtCapabilities);
339 
345  void SetMultiLinkElement(const MultiLinkElement& multiLinkElement);
346 
348  void SetMultiLinkElement(MultiLinkElement&& multiLinkElement);
349 
355  const CapabilityInformation& GetCapabilities() const;
361  const std::optional<ExtendedCapabilities>& GetExtendedCapabilities() const;
367  const std::optional<HtCapabilities>& GetHtCapabilities() const;
373  const std::optional<VhtCapabilities>& GetVhtCapabilities() const;
379  const std::optional<HeCapabilities>& GetHeCapabilities() const;
385  const std::optional<EhtCapabilities>& GetEhtCapabilities() const;
391  const Ssid& GetSsid() const;
397  const SupportedRates& GetSupportedRates() const;
403  const std::optional<MultiLinkElement>& GetMultiLinkElement() const;
409  uint16_t GetListenInterval() const;
415  void SetCurrentApAddress(Mac48Address currentApAddr);
416 
421  static TypeId GetTypeId();
422  TypeId GetInstanceTypeId() const override;
423  void Print(std::ostream& os) const override;
424  uint32_t GetSerializedSize() const override;
425  void Serialize(Buffer::Iterator start) const override;
426  uint32_t Deserialize(Buffer::Iterator start) override;
427 
428  private:
433  std::optional<ExtendedCapabilities> m_extendedCapability;
434  std::optional<HtCapabilities> m_htCapability;
435  std::optional<VhtCapabilities> m_vhtCapability;
436  std::optional<HeCapabilities> m_heCapability;
437  uint16_t m_listenInterval;
438  std::optional<EhtCapabilities> m_ehtCapability;
439  std::optional<MultiLinkElement> m_multiLinkElement;
440 };
441 
447 {
448  public:
450  ~MgtAssocResponseHeader() override;
451 
463  const SupportedRates& GetSupportedRates() const;
469  const CapabilityInformation& GetCapabilities() const;
475  const std::optional<ExtendedCapabilities>& GetExtendedCapabilities() const;
481  const std::optional<HtCapabilities>& GetHtCapabilities() const;
487  const std::optional<HtOperation>& GetHtOperation() const;
493  const std::optional<VhtCapabilities>& GetVhtCapabilities() const;
499  const std::optional<VhtOperation>& GetVhtOperation() const;
505  const std::optional<HeCapabilities>& GetHeCapabilities() const;
511  const std::optional<HeOperation>& GetHeOperation() const;
517  const std::optional<EhtCapabilities>& GetEhtCapabilities() const;
523  const std::optional<EhtOperation>& GetEhtOperation() const;
529  const std::optional<MultiLinkElement>& GetMultiLinkElement() const;
535  uint16_t GetAssociationId() const;
541  const std::optional<ErpInformation>& GetErpInformation() const;
547  const std::optional<EdcaParameterSet>& GetEdcaParameterSet() const;
553  const std::optional<MuEdcaParameterSet>& GetMuEdcaParameterSet() const;
559  void SetCapabilities(const CapabilityInformation& capabilities);
560 
562  void SetCapabilities(CapabilityInformation&& capabilities);
563 
569  void SetExtendedCapabilities(const ExtendedCapabilities& extendedCapabilities);
570 
572  void SetExtendedCapabilities(ExtendedCapabilities&& extendedCapabilities);
573 
579  void SetVhtOperation(const VhtOperation& vhtOperation);
580 
582  void SetVhtOperation(VhtOperation&& vhtOperation);
583 
589  void SetVhtCapabilities(const VhtCapabilities& vhtCapabilities);
590 
592  void SetVhtCapabilities(VhtCapabilities&& vhtCapabilities);
593 
599  void SetHtCapabilities(const HtCapabilities& htCapabilities);
600 
602  void SetHtCapabilities(HtCapabilities&& htCapabilities);
603 
609  void SetHtOperation(const HtOperation& htOperation);
610 
612  void SetHtOperation(HtOperation&& htOperation);
613 
619  void SetSupportedRates(const SupportedRates& rates);
620 
622  void SetSupportedRates(SupportedRates&& rates);
623 
629  void SetStatusCode(StatusCode code);
630 
636  void SetAssociationId(uint16_t aid);
637 
643  void SetErpInformation(const ErpInformation& erpInformation);
644 
646  void SetErpInformation(ErpInformation&& erpInformation);
647 
653  void SetEdcaParameterSet(const EdcaParameterSet& edcaParameterSet);
654 
656  void SetEdcaParameterSet(EdcaParameterSet&& edcaParameterSet);
657 
663  void SetMuEdcaParameterSet(const MuEdcaParameterSet& muEdcaParameterSet);
664 
666  void SetMuEdcaParameterSet(MuEdcaParameterSet&& muEdcaParameterSet);
667 
673  void SetHeCapabilities(const HeCapabilities& heCapabilities);
674 
676  void SetHeCapabilities(HeCapabilities&& heCapabilities);
677 
683  void SetHeOperation(const HeOperation& heOperation);
684 
686  void SetHeOperation(HeOperation&& heOperation);
687 
693  void SetEhtCapabilities(const EhtCapabilities& ehtCapabilities);
694 
696  void SetEhtCapabilities(EhtCapabilities&& ehtCapabilities);
697 
703  void SetEhtOperation(const EhtOperation& ehtOperation);
704 
706  void SetEhtOperation(EhtOperation&& ehtOperation);
707 
713  void SetMultiLinkElement(const MultiLinkElement& multiLinkElement);
714 
716  void SetMultiLinkElement(MultiLinkElement&& multiLinkElement);
717 
722  static TypeId GetTypeId();
723  TypeId GetInstanceTypeId() const override;
724  void Print(std::ostream& os) const override;
725  uint32_t GetSerializedSize() const override;
726  void Serialize(Buffer::Iterator start) const override;
727  uint32_t Deserialize(Buffer::Iterator start) override;
728 
729  private:
733  uint16_t m_aid;
734  std::optional<ExtendedCapabilities> m_extendedCapability;
735  std::optional<HtCapabilities> m_htCapability;
736  std::optional<HtOperation> m_htOperation;
737  std::optional<VhtCapabilities> m_vhtCapability;
738  std::optional<VhtOperation> m_vhtOperation;
739  std::optional<ErpInformation> m_erpInformation;
740  std::optional<EdcaParameterSet> m_edcaParameterSet;
741  std::optional<HeCapabilities> m_heCapability;
742  std::optional<HeOperation> m_heOperation;
743  std::optional<MuEdcaParameterSet> m_muEdcaParameterSet;
744  std::optional<EhtCapabilities> m_ehtCapability;
745  std::optional<EhtOperation> m_ehtOperation;
746  std::optional<MultiLinkElement> m_multiLinkElement;
747 };
748 
754 {
755  public:
756  ~MgtProbeRequestHeader() override;
757 
763  void SetSsid(const Ssid& ssid);
764 
766  void SetSsid(Ssid&& ssid);
767 
773  void SetSupportedRates(const SupportedRates& rates);
774 
776  void SetSupportedRates(SupportedRates&& rates);
777 
783  void SetExtendedCapabilities(const ExtendedCapabilities& extendedCapabilities);
784 
786  void SetExtendedCapabilities(ExtendedCapabilities&& extendedCapabilities);
787 
793  void SetHtCapabilities(const HtCapabilities& htCapabilities);
794 
796  void SetHtCapabilities(HtCapabilities&& htCapabilities);
797 
803  void SetVhtCapabilities(const VhtCapabilities& vhtCapabilities);
804 
806  void SetVhtCapabilities(VhtCapabilities&& vhtCapabilities);
807 
813  void SetHeCapabilities(const HeCapabilities& heCapabilities);
814 
816  void SetHeCapabilities(HeCapabilities&& heCapabilities);
817 
823  void SetEhtCapabilities(const EhtCapabilities& ehtCapabilities);
824 
826  void SetEhtCapabilities(EhtCapabilities&& ehtCapabilities);
827 
833  const Ssid& GetSsid() const;
834 
840  const SupportedRates& GetSupportedRates() const;
841 
847  const std::optional<ExtendedCapabilities>& GetExtendedCapabilities() const;
848 
854  const std::optional<HtCapabilities>& GetHtCapabilities() const;
855 
861  const std::optional<VhtCapabilities>& GetVhtCapabilities() const;
862 
868  const std::optional<HeCapabilities>& GetHeCapabilities() const;
869 
875  const std::optional<EhtCapabilities>& GetEhtCapabilities() const;
876 
881  static TypeId GetTypeId();
882  TypeId GetInstanceTypeId() const override;
883  void Print(std::ostream& os) const override;
884  uint32_t GetSerializedSize() const override;
885  void Serialize(Buffer::Iterator start) const override;
886  uint32_t Deserialize(Buffer::Iterator start) override;
887 
888  private:
891  std::optional<ExtendedCapabilities> m_extendedCapability;
892  std::optional<HtCapabilities> m_htCapability;
893  std::optional<VhtCapabilities> m_vhtCapability;
894  std::optional<HeCapabilities> m_heCapability;
895  std::optional<EhtCapabilities> m_ehtCapability;
896 };
897 
903 {
904  public:
906  ~MgtProbeResponseHeader() override;
907 
913  const Ssid& GetSsid() const;
919  uint64_t GetBeaconIntervalUs() const;
925  const SupportedRates& GetSupportedRates() const;
931  const CapabilityInformation& GetCapabilities() const;
937  const std::optional<DsssParameterSet>& GetDsssParameterSet() const;
943  const std::optional<ExtendedCapabilities>& GetExtendedCapabilities() const;
949  const std::optional<HtCapabilities>& GetHtCapabilities() const;
955  const std::optional<HtOperation>& GetHtOperation() const;
961  const std::optional<VhtCapabilities>& GetVhtCapabilities() const;
967  const std::optional<VhtOperation>& GetVhtOperation() const;
973  const std::optional<HeCapabilities>& GetHeCapabilities() const;
979  const std::optional<HeOperation>& GetHeOperation() const;
985  const std::optional<EhtCapabilities>& GetEhtCapabilities() const;
991  const std::optional<EhtOperation>& GetEhtOperation() const;
997  const std::optional<ErpInformation>& GetErpInformation() const;
1003  const std::optional<EdcaParameterSet>& GetEdcaParameterSet() const;
1009  const std::optional<MuEdcaParameterSet>& GetMuEdcaParameterSet() const;
1010 
1016  const std::optional<ReducedNeighborReport>& GetReducedNeighborReport() const;
1022  const std::optional<MultiLinkElement>& GetMultiLinkElement() const;
1028  void SetCapabilities(const CapabilityInformation& capabilities);
1029 
1031  void SetCapabilities(CapabilityInformation&& capabilities);
1032 
1038  void SetExtendedCapabilities(const ExtendedCapabilities& extendedCapabilities);
1039 
1041  void SetExtendedCapabilities(ExtendedCapabilities&& extendedCapabilities);
1042 
1048  void SetHtCapabilities(const HtCapabilities& htCapabilities);
1049 
1051  void SetHtCapabilities(HtCapabilities&& htCapabilities);
1052 
1058  void SetHtOperation(const HtOperation& htOperation);
1059 
1061  void SetHtOperation(HtOperation&& htOperation);
1062 
1068  void SetVhtCapabilities(const VhtCapabilities& vhtCapabilities);
1069 
1071  void SetVhtCapabilities(VhtCapabilities&& vhtCapabilities);
1072 
1078  void SetVhtOperation(const VhtOperation& vhtOperation);
1079 
1081  void SetVhtOperation(VhtOperation&& vhtOperation);
1082 
1088  void SetHeCapabilities(const HeCapabilities& heCapabilities);
1089 
1091  void SetHeCapabilities(HeCapabilities&& heCapabilities);
1092 
1098  void SetHeOperation(const HeOperation& heOperation);
1099 
1101  void SetHeOperation(HeOperation&& heOperation);
1102 
1108  void SetEhtCapabilities(const EhtCapabilities& ehtCapabilities);
1109 
1111  void SetEhtCapabilities(EhtCapabilities&& ehtCapabilities);
1112 
1118  void SetEhtOperation(const EhtOperation& ehtOperation);
1119 
1121  void SetEhtOperation(EhtOperation&& ehtOperation);
1122 
1128  void SetSsid(const Ssid& ssid);
1129 
1131  void SetSsid(Ssid&& ssid);
1132 
1138  void SetBeaconIntervalUs(uint64_t us);
1139 
1145  void SetSupportedRates(const SupportedRates& rates);
1146 
1148  void SetSupportedRates(SupportedRates&& rates);
1149 
1155  void SetDsssParameterSet(const DsssParameterSet& dsssParameterSet);
1156 
1158  void SetDsssParameterSet(DsssParameterSet&& dsssParameterSet);
1159 
1165  void SetErpInformation(const ErpInformation& erpInformation);
1166 
1168  void SetErpInformation(ErpInformation&& erpInformation);
1169 
1175  void SetEdcaParameterSet(const EdcaParameterSet& edcaParameterSet);
1176 
1178  void SetEdcaParameterSet(EdcaParameterSet&& edcaParameterSet);
1179 
1185  void SetMuEdcaParameterSet(const MuEdcaParameterSet& muEdcaParameterSet);
1186 
1188  void SetMuEdcaParameterSet(MuEdcaParameterSet&& muEdcaParameterSet);
1189 
1195  void SetReducedNeighborReport(const ReducedNeighborReport& reducedNeighborReport);
1196 
1198  void SetReducedNeighborReport(ReducedNeighborReport&& reducedNeighborReport);
1199 
1205  void SetMultiLinkElement(const MultiLinkElement& multiLinkElement);
1206 
1208  void SetMultiLinkElement(MultiLinkElement&& multiLinkElement);
1209 
1215  uint64_t GetTimestamp() const;
1216 
1221  static TypeId GetTypeId();
1222  TypeId GetInstanceTypeId() const override;
1223  void Print(std::ostream& os) const override;
1224  uint32_t GetSerializedSize() const override;
1225  void Serialize(Buffer::Iterator start) const override;
1226  uint32_t Deserialize(Buffer::Iterator start) override;
1227 
1228  private:
1229  uint64_t m_timestamp;
1231  uint64_t m_beaconInterval;
1234  std::optional<DsssParameterSet> m_dsssParameterSet;
1235  std::optional<ExtendedCapabilities> m_extendedCapability;
1236  std::optional<HtCapabilities> m_htCapability;
1237  std::optional<HtOperation> m_htOperation;
1238  std::optional<VhtCapabilities> m_vhtCapability;
1239  std::optional<VhtOperation> m_vhtOperation;
1240  std::optional<HeCapabilities> m_heCapability;
1241  std::optional<HeOperation> m_heOperation;
1242  std::optional<ErpInformation> m_erpInformation;
1243  std::optional<EdcaParameterSet> m_edcaParameterSet;
1244  std::optional<MuEdcaParameterSet> m_muEdcaParameterSet;
1245  std::optional<EhtCapabilities> m_ehtCapability;
1246  std::optional<EhtOperation> m_ehtOperation;
1247  std::optional<ReducedNeighborReport>
1249  std::optional<MultiLinkElement> m_multiLinkElement;
1250 };
1251 
1257 {
1258  public:
1264  static TypeId GetTypeId();
1265 };
1266 
1267 /****************************
1268  * Action frames
1269  *****************************/
1270 
1278 class WifiActionHeader : public Header
1279 {
1280  public:
1281  WifiActionHeader();
1282  ~WifiActionHeader() override;
1283 
1284  /*
1285  * Compatible with table 8-38 IEEE 802.11, Part11, (Year 2012)
1286  * Category values - see 802.11-2012 Table 8-38
1287  */
1288 
1290  enum CategoryValue // table 8-38 staring from IEEE 802.11, Part11, (Year 2012)
1291  {
1292  QOS = 1,
1294  PUBLIC = 4,
1295  RADIO_MEASUREMENT = 5, // Category: Radio Measurement
1296  MESH = 13, // Category: Mesh
1297  MULTIHOP = 14, // not used so far
1298  SELF_PROTECTED = 15, // Category: Self Protected
1299  DMG = 16, // Category: DMG
1300  FST = 18, // Category: Fast Session Transfer
1301  UNPROTECTED_DMG = 20, // Category: Unprotected DMG
1302  // Since vendor specific action has no stationary Action value,the parse process is not
1303  // here. Refer to vendor-specific-action in wave module.
1305  };
1306 
1309  {
1312  DELTS = 2,
1315  };
1316 
1322  {
1325  BLOCK_ACK_DELBA = 2
1326  };
1327 
1330  {
1333  };
1334 
1337  {
1344  };
1345 
1348  {
1349  LINK_METRIC_REPORT = 0, // Action Value:0 in Category 13: Mesh
1350  PATH_SELECTION = 1, // Action Value:1 in Category 13: Mesh
1351  PORTAL_ANNOUNCEMENT = 2, // Action Value:2 in Category 13: Mesh
1352  CONGESTION_CONTROL_NOTIFICATION = 3, // Action Value:3 in Category 13: Mesh
1354  4, // Action Value:4 in Category 13: Mesh MCCA-Setup-Request (not used so far)
1355  MDA_SETUP_REPLY =
1356  5, // Action Value:5 in Category 13: Mesh MCCA-Setup-Reply (not used so far)
1358  6, // Action Value:6 in Category 13: Mesh MCCA-Advertisement-Request (not used so far)
1359  MDAOP_ADVERTISMENTS = 7, // Action Value:7 in Category 13: Mesh (not used so far)
1360  MDAOP_SET_TEARDOWN = 8, // Action Value:8 in Category 13: Mesh (not used so far)
1361  TBTT_ADJUSTMENT_REQUEST = 9, // Action Value:9 in Category 13: Mesh (not used so far)
1362  TBTT_ADJUSTMENT_RESPONSE = 10, // Action Value:10 in Category 13: Mesh (not used so far)
1363  };
1364 
1367  {
1368  PROXY_UPDATE = 0, // not used so far
1369  PROXY_UPDATE_CONFIRMATION = 1, // not used so far
1370  };
1371 
1373  enum SelfProtectedActionValue // Category: 15 (Self Protected)
1374  {
1375  PEER_LINK_OPEN = 1, // Mesh Peering Open
1376  PEER_LINK_CONFIRM = 2, // Mesh Peering Confirm
1377  PEER_LINK_CLOSE = 3, // Mesh Peering Close
1378  GROUP_KEY_INFORM = 4, // Mesh Group Key Inform
1379  GROUP_KEY_ACK = 5, // Mesh Group Key Acknowledge
1380  };
1381 
1387  {
1410  DMG_ROC_RESPONSE = 22
1411  };
1412 
1418  {
1425  };
1426 
1432  {
1439  };
1440 
1444  typedef union {
1455  } ActionValue;
1456 
1464 
1470  CategoryValue GetCategory() const;
1476  ActionValue GetAction() const;
1477 
1482  static TypeId GetTypeId();
1483  TypeId GetInstanceTypeId() const override;
1484  void Print(std::ostream& os) const override;
1485  uint32_t GetSerializedSize() const override;
1486  void Serialize(Buffer::Iterator start) const override;
1487  uint32_t Deserialize(Buffer::Iterator start) override;
1488 
1489  private:
1495  std::string CategoryValueToString(CategoryValue value) const;
1502  uint8_t m_category;
1503  uint8_t m_actionValue;
1504 };
1505 
1511 {
1512  public:
1514 
1519  static TypeId GetTypeId();
1520  TypeId GetInstanceTypeId() const override;
1521  void Print(std::ostream& os) const override;
1522  uint32_t GetSerializedSize() const override;
1523  void Serialize(Buffer::Iterator start) const override;
1524  uint32_t Deserialize(Buffer::Iterator start) override;
1525 
1529  void SetDelayedBlockAck();
1533  void SetImmediateBlockAck();
1539  void SetTid(uint8_t tid);
1545  void SetTimeout(uint16_t timeout);
1551  void SetBufferSize(uint16_t size);
1557  void SetStartingSequence(uint16_t seq);
1563  void SetAmsduSupport(bool supported);
1564 
1570  uint16_t GetStartingSequence() const;
1576  uint8_t GetTid() const;
1582  bool IsImmediateBlockAck() const;
1588  uint16_t GetTimeout() const;
1594  uint16_t GetBufferSize() const;
1600  bool IsAmsduSupported() const;
1601 
1602  private:
1608  uint16_t GetParameterSet() const;
1614  void SetParameterSet(uint16_t params);
1620  uint16_t GetStartingSequenceControl() const;
1626  void SetStartingSequenceControl(uint16_t seqControl);
1627 
1628  uint8_t m_dialogToken;
1629  uint8_t m_amsduSupport;
1630  uint8_t m_policy;
1631  uint8_t m_tid;
1632  uint16_t m_bufferSize;
1633  uint16_t m_timeoutValue;
1634  uint16_t m_startingSeq;
1635 };
1636 
1642 {
1643  public:
1645 
1650  static TypeId GetTypeId();
1651  TypeId GetInstanceTypeId() const override;
1652  void Print(std::ostream& os) const override;
1653  uint32_t GetSerializedSize() const override;
1654  void Serialize(Buffer::Iterator start) const override;
1655  uint32_t Deserialize(Buffer::Iterator start) override;
1656 
1660  void SetDelayedBlockAck();
1664  void SetImmediateBlockAck();
1670  void SetTid(uint8_t tid);
1676  void SetTimeout(uint16_t timeout);
1682  void SetBufferSize(uint16_t size);
1688  void SetStatusCode(StatusCode code);
1694  void SetAmsduSupport(bool supported);
1695 
1701  StatusCode GetStatusCode() const;
1707  uint8_t GetTid() const;
1713  bool IsImmediateBlockAck() const;
1719  uint16_t GetTimeout() const;
1725  uint16_t GetBufferSize() const;
1731  bool IsAmsduSupported() const;
1732 
1733  private:
1739  uint16_t GetParameterSet() const;
1745  void SetParameterSet(uint16_t params);
1746 
1747  uint8_t m_dialogToken;
1749  uint8_t m_amsduSupport;
1750  uint8_t m_policy;
1751  uint8_t m_tid;
1752  uint16_t m_bufferSize;
1753  uint16_t m_timeoutValue;
1754 };
1755 
1760 class MgtDelBaHeader : public Header
1761 {
1762  public:
1763  MgtDelBaHeader();
1764 
1769  static TypeId GetTypeId();
1770 
1771  TypeId GetInstanceTypeId() const override;
1772  void Print(std::ostream& os) const override;
1773  uint32_t GetSerializedSize() const override;
1774  void Serialize(Buffer::Iterator start) const override;
1775  uint32_t Deserialize(Buffer::Iterator start) override;
1776 
1783  bool IsByOriginator() const;
1789  uint8_t GetTid() const;
1795  void SetTid(uint8_t tid);
1799  void SetByOriginator();
1803  void SetByRecipient();
1804 
1805  private:
1811  uint16_t GetParameterSet() const;
1817  void SetParameterSet(uint16_t params);
1818 
1819  uint16_t m_initiator;
1820  uint16_t m_tid;
1821  uint16_t m_reasonCode;
1822 };
1823 
1824 } // namespace ns3
1825 
1826 #endif /* MGT_HEADERS_H */
iterator in a Buffer instance
Definition: buffer.h:100
The DSSS Parameter Set.
The EDCA Parameter Set.
The IEEE 802.11be EHT Capabilities.
EHT Operation Information Element.
Definition: eht-operation.h:67
The ErpInformation Information Element.
The Extended Capabilities Information Element.
The IEEE 802.11ax HE Capabilities.
The HE Operation Information Element.
Definition: he-operation.h:36
Protocol header serialization and deserialization.
Definition: header.h:44
virtual uint32_t Deserialize(Buffer::Iterator start)=0
Deserialize the object from a buffer iterator.
The HT Capabilities Information Element.
The HT Operation Information Element.
Definition: ht-operation.h:51
an EUI-48 address
Definition: mac48-address.h:46
Implement the header for management frames of type Add Block Ack request.
Definition: mgt-headers.h:1511
void SetParameterSet(uint16_t params)
Set the parameter set from the given raw value.
uint16_t m_startingSeq
Starting sequence number.
Definition: mgt-headers.h:1634
void Serialize(Buffer::Iterator start) const override
uint16_t GetStartingSequenceControl() const
Return the raw sequence control.
void SetStartingSequenceControl(uint16_t seqControl)
Set sequence control with the given raw value.
uint8_t m_tid
Traffic ID.
Definition: mgt-headers.h:1631
static TypeId GetTypeId()
Register this type.
uint8_t m_amsduSupport
Flag if A-MSDU is supported.
Definition: mgt-headers.h:1629
void SetBufferSize(uint16_t size)
Set buffer size.
void Print(std::ostream &os) const override
void SetDelayedBlockAck()
Enable delayed BlockAck.
uint8_t m_dialogToken
Not used for now.
Definition: mgt-headers.h:1628
uint16_t GetParameterSet() const
Return the raw parameter set.
void SetAmsduSupport(bool supported)
Enable or disable A-MSDU support.
void SetImmediateBlockAck()
Enable immediate BlockAck.
uint16_t GetBufferSize() const
Return the buffer size.
uint16_t m_bufferSize
Buffer size.
Definition: mgt-headers.h:1632
uint16_t GetTimeout() const
Return the timeout.
uint8_t GetTid() const
Return the Traffic ID (TID).
uint16_t GetStartingSequence() const
Return the starting sequence number.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
uint32_t GetSerializedSize() const override
bool IsAmsduSupported() const
Return whether A-MSDU capability is supported.
bool IsImmediateBlockAck() const
Return whether the Block Ack policy is immediate Block Ack.
uint16_t m_timeoutValue
Timeout.
Definition: mgt-headers.h:1633
void SetTimeout(uint16_t timeout)
Set timeout.
void SetTid(uint8_t tid)
Set Traffic ID (TID).
uint8_t m_policy
Block Ack policy.
Definition: mgt-headers.h:1630
void SetStartingSequence(uint16_t seq)
Set the starting sequence number.
Implement the header for management frames of type Add Block Ack response.
Definition: mgt-headers.h:1642
uint16_t m_bufferSize
Buffer size.
Definition: mgt-headers.h:1752
void SetTid(uint8_t tid)
Set Traffic ID (TID).
uint32_t GetSerializedSize() const override
uint8_t m_amsduSupport
Flag if A-MSDU is supported.
Definition: mgt-headers.h:1749
uint8_t m_dialogToken
Not used for now.
Definition: mgt-headers.h:1747
void Serialize(Buffer::Iterator start) const override
void SetParameterSet(uint16_t params)
Set the parameter set from the given raw value.
uint16_t GetBufferSize() const
Return the buffer size.
bool IsAmsduSupported() const
Return whether A-MSDU capability is supported.
StatusCode GetStatusCode() const
Return the status code.
void SetTimeout(uint16_t timeout)
Set timeout.
uint8_t m_policy
Block ACK policy.
Definition: mgt-headers.h:1750
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
void SetBufferSize(uint16_t size)
Set buffer size.
uint16_t m_timeoutValue
Timeout.
Definition: mgt-headers.h:1753
void Print(std::ostream &os) const override
void SetStatusCode(StatusCode code)
Set the status code.
uint8_t m_tid
Traffic ID.
Definition: mgt-headers.h:1751
uint8_t GetTid() const
Return the Traffic ID (TID).
bool IsImmediateBlockAck() const
Return whether the Block Ack policy is immediate Block Ack.
void SetAmsduSupport(bool supported)
Enable or disable A-MSDU support.
uint16_t GetParameterSet() const
Return the raw parameter set.
uint16_t GetTimeout() const
Return the timeout.
void SetDelayedBlockAck()
Enable delayed BlockAck.
void SetImmediateBlockAck()
Enable immediate BlockAck.
static TypeId GetTypeId()
Register this type.
StatusCode m_code
Status code.
Definition: mgt-headers.h:1748
Implement the header for management frames of type association request.
Definition: mgt-headers.h:55
SupportedRates m_rates
List of supported rates.
Definition: mgt-headers.h:232
const std::optional< ExtendedCapabilities > & GetExtendedCapabilities() const
Return the extended capabilities, if present.
Definition: mgt-headers.cc:989
std::optional< VhtCapabilities > m_vhtCapability
VHT capabilities.
Definition: mgt-headers.h:236
void SetMultiLinkElement(const MultiLinkElement &multiLinkElement)
Set the Multi-Link Element information element.
const SupportedRates & GetSupportedRates() const
Return the supported rates.
void SetHeCapabilities(const HeCapabilities &heCapabilities)
Set the HE capabilities.
const CapabilityInformation & GetCapabilities() const
Return the Capability information.
Definition: mgt-headers.cc:971
const std::optional< HeCapabilities > & GetHeCapabilities() const
Return the HE capabilities, if present.
CapabilityInformation m_capability
Capability information.
Definition: mgt-headers.h:233
void SetExtendedCapabilities(const ExtendedCapabilities &extendedCapabilities)
Set the Extended Capabilities.
Definition: mgt-headers.cc:977
void SetSupportedRates(const SupportedRates &rates)
Set the supported rates.
Definition: mgt-headers.cc:941
const std::optional< MultiLinkElement > & GetMultiLinkElement() const
Return the Multi-Link Element information element, if present.
void SetEhtCapabilities(const EhtCapabilities &ehtCapabilities)
Set the EHT capabilities.
std::optional< ExtendedCapabilities > m_extendedCapability
Extended capabilities.
Definition: mgt-headers.h:234
void SetHtCapabilities(const HtCapabilities &htCapabilities)
Set the HT capabilities.
Definition: mgt-headers.cc:995
void SetListenInterval(uint16_t interval)
Set the listen interval.
Definition: mgt-headers.cc:953
uint16_t GetListenInterval() const
Return the listen interval.
uint32_t GetSerializedSize() const override
void Print(std::ostream &os) const override
std::optional< HeCapabilities > m_heCapability
HE capabilities.
Definition: mgt-headers.h:237
void SetVhtCapabilities(const VhtCapabilities &vhtCapabilities)
Set the VHT capabilities.
const std::optional< EhtCapabilities > & GetEhtCapabilities() const
Return the EHT capabilities, if present.
const std::optional< HtCapabilities > & GetHtCapabilities() const
Return the HT capabilities, if present.
uint16_t m_listenInterval
listen interval
Definition: mgt-headers.h:238
Ssid m_ssid
Service Set ID (SSID)
Definition: mgt-headers.h:231
std::optional< HtCapabilities > m_htCapability
HT capabilities.
Definition: mgt-headers.h:235
std::optional< MultiLinkElement > m_multiLinkElement
Multi-Link Element.
Definition: mgt-headers.h:240
const std::optional< VhtCapabilities > & GetVhtCapabilities() const
Return the VHT capabilities, if present.
void SetCapabilities(const CapabilityInformation &capabilities)
Set the Capability information.
Definition: mgt-headers.cc:959
static TypeId GetTypeId()
Register this type.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
void Serialize(Buffer::Iterator start) const override
const Ssid & GetSsid() const
Return the Service Set Identifier (SSID).
std::optional< EhtCapabilities > m_ehtCapability
EHT capabilities.
Definition: mgt-headers.h:239
void SetSsid(const Ssid &ssid)
Set the Service Set Identifier (SSID).
Definition: mgt-headers.cc:929
Implement the header for management frames of type association and reassociation response.
Definition: mgt-headers.h:447
void SetHeCapabilities(const HeCapabilities &heCapabilities)
Set the HE capabilities.
std::optional< VhtCapabilities > m_vhtCapability
VHT capabilities.
Definition: mgt-headers.h:737
static TypeId GetTypeId()
Register this type.
const std::optional< MultiLinkElement > & GetMultiLinkElement() const
Return the Multi-Link Element information element, if present.
StatusCode GetStatusCode()
Return the status code.
const std::optional< EhtOperation > & GetEhtOperation() const
Return the EHT operation, if present.
void SetHtOperation(const HtOperation &htOperation)
Set the HT operation.
void SetMuEdcaParameterSet(const MuEdcaParameterSet &muEdcaParameterSet)
Set the MU EDCA Parameter Set.
void SetEdcaParameterSet(const EdcaParameterSet &edcaParameterSet)
Set the EDCA Parameter Set.
std::optional< HeOperation > m_heOperation
HE operation.
Definition: mgt-headers.h:742
void Serialize(Buffer::Iterator start) const override
void SetEhtCapabilities(const EhtCapabilities &ehtCapabilities)
Set the EHT capabilities.
void SetStatusCode(StatusCode code)
Set the status code.
SupportedRates m_rates
List of supported rates.
Definition: mgt-headers.h:730
void SetVhtOperation(const VhtOperation &vhtOperation)
Set the VHT operation.
void SetHeOperation(const HeOperation &heOperation)
Set the HE operation.
void SetAssociationId(uint16_t aid)
Set the association ID.
void SetCapabilities(const CapabilityInformation &capabilities)
Set the Capability information.
const std::optional< MuEdcaParameterSet > & GetMuEdcaParameterSet() const
Return the MU EDCA Parameter Set, if present.
const std::optional< VhtOperation > & GetVhtOperation() const
Return the VHT operation, if present.
std::optional< EhtOperation > m_ehtOperation
EHT Operation.
Definition: mgt-headers.h:745
void SetEhtOperation(const EhtOperation &ehtOperation)
Set the EHT operation.
void SetVhtCapabilities(const VhtCapabilities &vhtCapabilities)
Set the VHT capabilities.
CapabilityInformation m_capability
Capability information.
Definition: mgt-headers.h:731
std::optional< MuEdcaParameterSet > m_muEdcaParameterSet
MU EDCA Parameter Set.
Definition: mgt-headers.h:743
std::optional< HtCapabilities > m_htCapability
HT capabilities.
Definition: mgt-headers.h:735
const std::optional< EdcaParameterSet > & GetEdcaParameterSet() const
Return the EDCA Parameter Set, if present.
std::optional< ExtendedCapabilities > m_extendedCapability
extended capabilities
Definition: mgt-headers.h:734
const std::optional< ErpInformation > & GetErpInformation() const
Return the ERP information, if present.
const std::optional< HeCapabilities > & GetHeCapabilities() const
Return the HE capabilities, if present.
std::optional< EhtCapabilities > m_ehtCapability
EHT capabilities.
Definition: mgt-headers.h:744
std::optional< VhtOperation > m_vhtOperation
VHT operation.
Definition: mgt-headers.h:738
const std::optional< ExtendedCapabilities > & GetExtendedCapabilities() const
Return the extended capabilities, if present.
const std::optional< VhtCapabilities > & GetVhtCapabilities() const
Return the VHT capabilities, if present.
const std::optional< HtCapabilities > & GetHtCapabilities() const
Return the HT capabilities, if present.
std::optional< MultiLinkElement > m_multiLinkElement
Multi-Link Element.
Definition: mgt-headers.h:746
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
void Print(std::ostream &os) const override
void SetSupportedRates(const SupportedRates &rates)
Set the supported rates.
const std::optional< HeOperation > & GetHeOperation() const
Return the HE operation, if present.
const std::optional< EhtCapabilities > & GetEhtCapabilities() const
Return the EHT capabilities, if present.
const std::optional< HtOperation > & GetHtOperation() const
Return the HT operation, if present.
void SetExtendedCapabilities(const ExtendedCapabilities &extendedCapabilities)
Set the extended capabilities.
uint32_t GetSerializedSize() const override
const SupportedRates & GetSupportedRates() const
Return the supported rates.
uint16_t GetAssociationId() const
Return the association ID.
std::optional< EdcaParameterSet > m_edcaParameterSet
EDCA Parameter Set.
Definition: mgt-headers.h:740
void SetHtCapabilities(const HtCapabilities &htCapabilities)
Set the HT capabilities.
void SetMultiLinkElement(const MultiLinkElement &multiLinkElement)
Set the Multi-Link Element information element.
std::optional< ErpInformation > m_erpInformation
ERP information.
Definition: mgt-headers.h:739
const CapabilityInformation & GetCapabilities() const
Return the Capability information.
void SetErpInformation(const ErpInformation &erpInformation)
Set the ERP information.
std::optional< HeCapabilities > m_heCapability
HE capabilities.
Definition: mgt-headers.h:741
std::optional< HtOperation > m_htOperation
HT operation.
Definition: mgt-headers.h:736
StatusCode m_code
Status code.
Definition: mgt-headers.h:732
Implement the header for management frames of type beacon.
Definition: mgt-headers.h:1257
static TypeId GetTypeId()
Register this type.
Definition: mgt-headers.cc:904
Implement the header for management frames of type Delete Block Ack.
Definition: mgt-headers.h:1761
static TypeId GetTypeId()
Register this type.
void SetTid(uint8_t tid)
Set Traffic ID (TID).
void SetByRecipient()
Un-set the initiator bit in the DELBA.
void Print(std::ostream &os) const override
uint16_t m_initiator
initiator
Definition: mgt-headers.h:1819
void SetParameterSet(uint16_t params)
Set the parameter set from the given raw value.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
uint8_t GetTid() const
Return the Traffic ID (TID).
uint16_t m_reasonCode
Not used for now.
Definition: mgt-headers.h:1821
bool IsByOriginator() const
Check if the initiator bit in the DELBA is set.
uint16_t GetParameterSet() const
Return the raw parameter set.
void Serialize(Buffer::Iterator start) const override
uint16_t m_tid
Traffic ID.
Definition: mgt-headers.h:1820
uint32_t GetSerializedSize() const override
void SetByOriginator()
Set the initiator bit in the DELBA.
Implement the header for management frames of type probe request.
Definition: mgt-headers.h:754
const Ssid & GetSsid() const
Return the Service Set Identifier (SSID).
Definition: mgt-headers.cc:53
void SetSsid(const Ssid &ssid)
Set the Service Set Identifier (SSID).
Definition: mgt-headers.cc:41
std::optional< VhtCapabilities > m_vhtCapability
VHT capabilities.
Definition: mgt-headers.h:893
std::optional< HeCapabilities > m_heCapability
HE capabilities.
Definition: mgt-headers.h:894
Ssid m_ssid
Service Set ID (SSID)
Definition: mgt-headers.h:889
const std::optional< EhtCapabilities > & GetEhtCapabilities() const
Return the EHT capabilities, if present.
Definition: mgt-headers.cc:155
uint32_t GetSerializedSize() const override
Definition: mgt-headers.cc:167
const SupportedRates & GetSupportedRates() const
Return the supported rates.
Definition: mgt-headers.cc:161
~MgtProbeRequestHeader() override
Definition: mgt-headers.cc:36
const std::optional< VhtCapabilities > & GetVhtCapabilities() const
Return the VHT capabilities, if present.
Definition: mgt-headers.cc:119
void SetSupportedRates(const SupportedRates &rates)
Set the supported rates.
Definition: mgt-headers.cc:59
void SetEhtCapabilities(const EhtCapabilities &ehtCapabilities)
Set the EHT capabilities.
Definition: mgt-headers.cc:143
void Serialize(Buffer::Iterator start) const override
Definition: mgt-headers.cc:243
SupportedRates m_rates
List of supported rates.
Definition: mgt-headers.h:890
void SetVhtCapabilities(const VhtCapabilities &vhtCapabilities)
Set the VHT capabilities.
Definition: mgt-headers.cc:107
const std::optional< HeCapabilities > & GetHeCapabilities() const
Return the HE capabilities, if present.
Definition: mgt-headers.cc:137
static TypeId GetTypeId()
Register this type.
Definition: mgt-headers.cc:200
const std::optional< ExtendedCapabilities > & GetExtendedCapabilities() const
Return the extended capabilities, if present.
Definition: mgt-headers.cc:83
std::optional< ExtendedCapabilities > m_extendedCapability
extended capabilities
Definition: mgt-headers.h:891
std::optional< EhtCapabilities > m_ehtCapability
EHT capabilities.
Definition: mgt-headers.h:895
void SetHeCapabilities(const HeCapabilities &heCapabilities)
Set the HE capabilities.
Definition: mgt-headers.cc:125
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Definition: mgt-headers.cc:210
void Print(std::ostream &os) const override
Definition: mgt-headers.cc:216
std::optional< HtCapabilities > m_htCapability
HT capabilities.
Definition: mgt-headers.h:892
void SetHtCapabilities(const HtCapabilities &htCapabilities)
Set the HT capabilities.
Definition: mgt-headers.cc:89
void SetExtendedCapabilities(const ExtendedCapabilities &extendedCapabilities)
Set the extended capabilities.
Definition: mgt-headers.cc:71
const std::optional< HtCapabilities > & GetHtCapabilities() const
Return the HT capabilities, if present.
Definition: mgt-headers.cc:101
Implement the header for management frames of type probe response.
Definition: mgt-headers.h:903
uint64_t GetTimestamp() const
Return the time stamp.
Definition: mgt-headers.cc:307
uint64_t m_beaconInterval
Beacon interval.
Definition: mgt-headers.h:1231
std::optional< HeCapabilities > m_heCapability
HE capabilities.
Definition: mgt-headers.h:1240
void SetVhtOperation(const VhtOperation &vhtOperation)
Set the VHT operation.
Definition: mgt-headers.cc:421
std::optional< HeOperation > m_heOperation
HE operation.
Definition: mgt-headers.h:1241
const std::optional< DsssParameterSet > & GetDsssParameterSet() const
Return the DSSS Parameter Set, if present.
Definition: mgt-headers.cc:553
std::optional< EdcaParameterSet > m_edcaParameterSet
EDCA Parameter Set.
Definition: mgt-headers.h:1243
std::optional< EhtCapabilities > m_ehtCapability
EHT capabilities.
Definition: mgt-headers.h:1245
const std::optional< VhtCapabilities > & GetVhtCapabilities() const
Return the VHT capabilities, if present.
Definition: mgt-headers.cc:415
static TypeId GetTypeId()
Register this type.
Definition: mgt-headers.cc:649
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Definition: mgt-headers.cc:659
const std::optional< ExtendedCapabilities > & GetExtendedCapabilities() const
Return the extended capabilities, if present.
Definition: mgt-headers.cc:361
void Print(std::ostream &os) const override
Definition: mgt-headers.cc:741
void SetHtOperation(const HtOperation &htOperation)
Set the HT operation.
Definition: mgt-headers.cc:385
const std::optional< MuEdcaParameterSet > & GetMuEdcaParameterSet() const
Return the MU EDCA Parameter Set, if present.
Definition: mgt-headers.cc:631
std::optional< EhtOperation > m_ehtOperation
EHT Operation.
Definition: mgt-headers.h:1246
std::optional< ReducedNeighborReport > m_reducedNeighborReport
Reduced Neighbor Report information.
Definition: mgt-headers.h:1248
std::optional< HtOperation > m_htOperation
HT operation.
Definition: mgt-headers.h:1237
const Ssid & GetSsid() const
Return the Service Set Identifier (SSID).
Definition: mgt-headers.cc:313
void SetDsssParameterSet(const DsssParameterSet &dsssParameterSet)
Set the DSSS Parameter Set.
Definition: mgt-headers.cc:541
Ssid m_ssid
Service set ID (SSID)
Definition: mgt-headers.h:1230
const std::optional< ErpInformation > & GetErpInformation() const
Return the ERP information, if present.
Definition: mgt-headers.cc:571
void SetCapabilities(const CapabilityInformation &capabilities)
Set the Capability information.
Definition: mgt-headers.cc:331
std::optional< VhtOperation > m_vhtOperation
VHT operation.
Definition: mgt-headers.h:1239
const std::optional< HeOperation > & GetHeOperation() const
Return the HE operation, if present.
Definition: mgt-headers.cc:469
const std::optional< HtOperation > & GetHtOperation() const
Return the HT operation, if present.
Definition: mgt-headers.cc:397
const std::optional< EdcaParameterSet > & GetEdcaParameterSet() const
Return the EDCA Parameter Set, if present.
Definition: mgt-headers.cc:625
std::optional< MultiLinkElement > m_multiLinkElement
Multi-Link Element.
Definition: mgt-headers.h:1249
const std::optional< ReducedNeighborReport > & GetReducedNeighborReport() const
Return the Reduced Neighbor Report information element, if present.
Definition: mgt-headers.cc:637
void SetReducedNeighborReport(const ReducedNeighborReport &reducedNeighborReport)
Set the Reduced Neighbor Report information element.
Definition: mgt-headers.cc:601
SupportedRates m_rates
List of supported rates.
Definition: mgt-headers.h:1232
const CapabilityInformation & GetCapabilities() const
Return the Capability information.
Definition: mgt-headers.cc:343
void SetEhtCapabilities(const EhtCapabilities &ehtCapabilities)
Set the EHT capabilities.
Definition: mgt-headers.cc:475
void SetVhtCapabilities(const VhtCapabilities &vhtCapabilities)
Set the VHT capabilities.
Definition: mgt-headers.cc:403
void SetHtCapabilities(const HtCapabilities &htCapabilities)
Set the HT capabilities.
Definition: mgt-headers.cc:367
const std::optional< MultiLinkElement > & GetMultiLinkElement() const
Return the Multi-Link Element information element, if present.
Definition: mgt-headers.cc:643
void SetSsid(const Ssid &ssid)
Set the Service Set Identifier (SSID).
Definition: mgt-headers.cc:511
std::optional< ErpInformation > m_erpInformation
ERP information.
Definition: mgt-headers.h:1242
std::optional< DsssParameterSet > m_dsssParameterSet
DSSS Parameter Set.
Definition: mgt-headers.h:1234
void SetSupportedRates(const SupportedRates &rates)
Set the supported rates.
Definition: mgt-headers.cc:529
void SetHeOperation(const HeOperation &heOperation)
Set the HE operation.
Definition: mgt-headers.cc:457
void SetErpInformation(const ErpInformation &erpInformation)
Set the ERP information.
Definition: mgt-headers.cc:559
void SetExtendedCapabilities(const ExtendedCapabilities &extendedCapabilities)
Set the extended capabilities.
Definition: mgt-headers.cc:349
const std::optional< EhtCapabilities > & GetEhtCapabilities() const
Return the EHT capabilities, if present.
Definition: mgt-headers.cc:487
std::optional< MuEdcaParameterSet > m_muEdcaParameterSet
MU EDCA Parameter Set.
Definition: mgt-headers.h:1244
void SetBeaconIntervalUs(uint64_t us)
Set the beacon interval in microseconds unit.
Definition: mgt-headers.cc:523
uint64_t GetBeaconIntervalUs() const
Return the beacon interval in microseconds unit.
Definition: mgt-headers.cc:319
void Serialize(Buffer::Iterator start) const override
Definition: mgt-headers.cc:788
void SetEdcaParameterSet(const EdcaParameterSet &edcaParameterSet)
Set the EDCA Parameter Set.
Definition: mgt-headers.cc:577
uint32_t GetSerializedSize() const override
Definition: mgt-headers.cc:665
void SetHeCapabilities(const HeCapabilities &heCapabilities)
Set the HE capabilities.
Definition: mgt-headers.cc:439
std::optional< ExtendedCapabilities > m_extendedCapability
extended capabilities
Definition: mgt-headers.h:1235
void SetMuEdcaParameterSet(const MuEdcaParameterSet &muEdcaParameterSet)
Set the MU EDCA Parameter Set.
Definition: mgt-headers.cc:589
CapabilityInformation m_capability
Capability information.
Definition: mgt-headers.h:1233
std::optional< VhtCapabilities > m_vhtCapability
VHT capabilities.
Definition: mgt-headers.h:1238
const std::optional< HtCapabilities > & GetHtCapabilities() const
Return the HT capabilities, if present.
Definition: mgt-headers.cc:379
const std::optional< VhtOperation > & GetVhtOperation() const
Return the VHT operation, if present.
Definition: mgt-headers.cc:433
uint64_t m_timestamp
Timestamp.
Definition: mgt-headers.h:1229
const std::optional< EhtOperation > & GetEhtOperation() const
Return the EHT operation, if present.
Definition: mgt-headers.cc:505
const SupportedRates & GetSupportedRates() const
Return the supported rates.
Definition: mgt-headers.cc:325
std::optional< HtCapabilities > m_htCapability
HT capabilities.
Definition: mgt-headers.h:1236
const std::optional< HeCapabilities > & GetHeCapabilities() const
Return the HE capabilities, if present.
Definition: mgt-headers.cc:451
void SetMultiLinkElement(const MultiLinkElement &multiLinkElement)
Set the Multi-Link Element information element.
Definition: mgt-headers.cc:613
void SetEhtOperation(const EhtOperation &ehtOperation)
Set the EHT operation.
Definition: mgt-headers.cc:493
Implement the header for management frames of type reassociation request.
Definition: mgt-headers.h:248
const CapabilityInformation & GetCapabilities() const
Return the Capability information.
Mac48Address m_currentApAddr
Address of the current access point.
Definition: mgt-headers.h:429
void Serialize(Buffer::Iterator start) const override
uint16_t m_listenInterval
listen interval
Definition: mgt-headers.h:437
uint16_t GetListenInterval() const
Return the listen interval.
std::optional< MultiLinkElement > m_multiLinkElement
Multi-Link Element.
Definition: mgt-headers.h:439
const SupportedRates & GetSupportedRates() const
Return the supported rates.
std::optional< ExtendedCapabilities > m_extendedCapability
Extended capabilities.
Definition: mgt-headers.h:433
uint32_t GetSerializedSize() const override
void SetEhtCapabilities(const EhtCapabilities &ehtCapabilities)
Set the EHT capabilities.
static TypeId GetTypeId()
Register this type.
std::optional< EhtCapabilities > m_ehtCapability
EHT capabilities.
Definition: mgt-headers.h:438
std::optional< VhtCapabilities > m_vhtCapability
VHT capabilities.
Definition: mgt-headers.h:435
void SetExtendedCapabilities(const ExtendedCapabilities &extendedCapabilities)
Set the Extended Capabilities.
void Print(std::ostream &os) const override
const std::optional< MultiLinkElement > & GetMultiLinkElement() const
Return the Multi-Link Element information element, if present.
std::optional< HeCapabilities > m_heCapability
HE capabilities.
Definition: mgt-headers.h:436
SupportedRates m_rates
List of supported rates.
Definition: mgt-headers.h:431
void SetMultiLinkElement(const MultiLinkElement &multiLinkElement)
Set the Multi-Link Element information element.
Ssid m_ssid
Service Set ID (SSID)
Definition: mgt-headers.h:430
const std::optional< EhtCapabilities > & GetEhtCapabilities() const
Return the EHT capabilities, if present.
void SetCapabilities(const CapabilityInformation &capabilities)
Set the Capability information.
const std::optional< HtCapabilities > & GetHtCapabilities() const
Return the HT capabilities, if present.
const std::optional< VhtCapabilities > & GetVhtCapabilities() const
Return the VHT capabilities, if present.
void SetListenInterval(uint16_t interval)
Set the listen interval.
CapabilityInformation m_capability
Capability information.
Definition: mgt-headers.h:432
const std::optional< HeCapabilities > & GetHeCapabilities() const
Return the HE capabilities, if present.
void SetSupportedRates(const SupportedRates &rates)
Set the supported rates.
void SetVhtCapabilities(const VhtCapabilities &vhtCapabilities)
Set the VHT capabilities.
void SetHtCapabilities(const HtCapabilities &htCapabilities)
Set the HT capabilities.
const Ssid & GetSsid() const
Return the Service Set Identifier (SSID).
std::optional< HtCapabilities > m_htCapability
HT capabilities.
Definition: mgt-headers.h:434
void SetSsid(const Ssid &ssid)
Set the Service Set Identifier (SSID).
void SetCurrentApAddress(Mac48Address currentApAddr)
Set the address of the current access point.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
void SetHeCapabilities(const HeCapabilities &heCapabilities)
Set the HE capabilities.
const std::optional< ExtendedCapabilities > & GetExtendedCapabilities() const
Return the extended capabilities, if present.
The MU EDCA Parameter Set.
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:60
The IEEE 802.11ac VHT Capabilities.
The VHT Operation Information Element.
Definition: vht-operation.h:36
See IEEE 802.11 chapter 7.3.1.11 Header format: | category: 1 | action value: 1 |.
Definition: mgt-headers.h:1279
MultihopActionValue
MultihopActionValue enumeration.
Definition: mgt-headers.h:1367
uint32_t GetSerializedSize() const override
SelfProtectedActionValue
SelfProtectedActionValue enumeration.
Definition: mgt-headers.h:1374
uint8_t m_category
Category of the action.
Definition: mgt-headers.h:1502
RadioMeasurementActionValue
RadioMeasurementActionValue enumeration.
Definition: mgt-headers.h:1337
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
std::string CategoryValueToString(CategoryValue value) const
Category value to string function.
PublicActionValue
PublicActionValue enumeration.
Definition: mgt-headers.h:1330
CategoryValue
CategoryValue enumeration.
Definition: mgt-headers.h:1291
std::string SelfProtectedActionValueToString(SelfProtectedActionValue value) const
Self protected action value to string function.
BlockAckActionValue
Block Ack Action field values See 802.11 Table 8-202.
Definition: mgt-headers.h:1322
UnprotectedDmgActionValue
Unprotected DMG action field values See 802.11ad Table 8-281ae.
Definition: mgt-headers.h:1432
uint8_t m_actionValue
Action value.
Definition: mgt-headers.h:1503
MeshActionValue
MeshActionValue enumeration.
Definition: mgt-headers.h:1348
void Print(std::ostream &os) const override
static TypeId GetTypeId()
Register this type.
void SetAction(CategoryValue type, ActionValue action)
Set action for this Action header.
~WifiActionHeader() override
void Serialize(Buffer::Iterator start) const override
FstActionValue
FST Action field values See 802.11ad Table 8-281x.
Definition: mgt-headers.h:1418
DmgActionValue
DMG Action field values See 802.11ad Table 8-281b.
Definition: mgt-headers.h:1387
@ DMG_MULTI_RELAY_CHANNEL_MEASUREMENT_REQUEST
Definition: mgt-headers.h:1398
@ DMG_MULTI_RELAY_CHANNEL_MEASUREMENT_REPORT
Definition: mgt-headers.h:1399
CategoryValue GetCategory() const
Return the category value.
ActionValue GetAction() const
Return the action value.
QosActionValue
QosActionValue enumeration.
Definition: mgt-headers.h:1309
Every class exported by the ns3 library is enclosed in the ns3 namespace.
value
Definition: second.py:41
ssid
Definition: third.py:86
params
Fit Fluctuating Two Ray model to the 3GPP TR 38.901 using the Anderson-Darling goodness-of-fit ##.
ns3::Time timeout
typedef for union of different ActionValues
Definition: mgt-headers.h:1444
UnprotectedDmgActionValue unprotectedDmgAction
unprotected dmg
Definition: mgt-headers.h:1454
SelfProtectedActionValue selfProtectedAction
self protected
Definition: mgt-headers.h:1449
MultihopActionValue multihopAction
multi hop
Definition: mgt-headers.h:1450
RadioMeasurementActionValue radioMeasurementAction
radio measurement
Definition: mgt-headers.h:1447
PublicActionValue publicAction
public
Definition: mgt-headers.h:1448
BlockAckActionValue blockAck
block ack
Definition: mgt-headers.h:1446