A Discrete-Event Network Simulator
API
mgt-headers.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2006 INRIA
4  * Copyright (c) 2009 MIRKO BANCHI
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation;
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
20  * Mirko Banchi <mk.banchi@gmail.com>
21  */
22 
23 #include <sstream>
24 #include "mgt-headers.h"
25 #include "ns3/simulator.h"
26 #include "ns3/assert.h"
27 
28 namespace ns3 {
29 
30 /***********************************************************
31  * Probe Request
32  ***********************************************************/
33 
34 NS_OBJECT_ENSURE_REGISTERED (MgtProbeRequestHeader);
35 
37 {
38 }
39 
40 void
42 {
43  m_ssid = ssid;
44 }
45 
46 Ssid
48 {
49  return m_ssid;
50 }
51 
52 void
54 {
55  m_rates = rates;
56 }
57 
58 void
60 {
61  m_htCapability = htcapabilities;
62 }
63 
66 {
67  return m_htCapability;
68 }
69 
70 void
72 {
73  m_vhtCapability = vhtcapabilities;
74 }
75 
78 {
79  return m_vhtCapability;
80 }
81 
84 {
85  return m_rates;
86 }
87 
88 uint32_t
90 {
91  uint32_t size = 0;
92  size += m_ssid.GetSerializedSize ();
93  size += m_rates.GetSerializedSize ();
97  return size;
98 }
99 
100 TypeId
102 {
103  static TypeId tid = TypeId ("ns3::MgtProbeRequestHeader")
104  .SetParent<Header> ()
105  .SetGroupName ("Wifi")
106  .AddConstructor<MgtProbeRequestHeader> ()
107  ;
108  return tid;
109 }
110 
111 TypeId
113 {
114  return GetTypeId ();
115 }
116 
117 void
118 MgtProbeRequestHeader::Print (std::ostream &os) const
119 {
120  os << "ssid=" << m_ssid << ", "
121  << "rates=" << m_rates << ", "
122  << "HT Capabilities=" << m_htCapability << " , "
123  << "VHT Capabilities= " << m_vhtCapability;
124 }
125 
126 void
128 {
130  i = m_ssid.Serialize (i);
131  i = m_rates.Serialize (i);
132  i = m_rates.extended.Serialize (i);
133  i = m_htCapability.Serialize (i);
134  i = m_vhtCapability.Serialize (i);
135 }
136 
137 uint32_t
139 {
141  i = m_ssid.Deserialize (i);
142  i = m_rates.Deserialize (i);
146  return i.GetDistanceFrom (start);
147 }
148 
149 
150 /***********************************************************
151  * Probe Response
152  ***********************************************************/
153 
155 
157 {
158 }
159 
161 {
162 }
163 
164 uint64_t
166 {
167  return m_timestamp;
168 }
169 
170 Ssid
172 {
173  return m_ssid;
174 }
175 
176 uint64_t
178 {
179  return m_beaconInterval;
180 }
181 
184 {
185  return m_rates;
186 }
187 
188 void
190 {
191  m_capability = capabilities;
192 }
193 
196 {
197  return m_capability;
198 }
199 
200 void
202 {
203  m_htCapability = htcapabilities;
204 }
205 
208 {
209  return m_htCapability;
210 }
211 
212 void
214 {
215  m_htOperations = htoperations;
216 }
217 
220 {
221  return m_htOperations;
222 }
223 
224 void
226 {
227  m_vhtCapability = vhtcapabilities;
228 }
229 
232 {
233  return m_vhtCapability;
234 }
235 
236 void
238 {
239  m_ssid = ssid;
240 }
241 
242 void
244 {
245  m_beaconInterval = us;
246 }
247 
248 void
250 {
251  m_rates = rates;
252 }
253 
254 void
256 {
257  m_dsssParameterSet = dsssParameterSet;
258 }
259 
262 {
263  return m_dsssParameterSet;
264 }
265 
266 void
268 {
269  m_erpInformation = erpInformation;
270 }
271 
274 {
275  return m_erpInformation;
276 }
277 
278 void
280 {
281  m_edcaParameterSet = edcaparameters;
282 }
283 
286 {
287  return m_edcaParameterSet;
288 }
289 
290 TypeId
292 {
293  static TypeId tid = TypeId ("ns3::MgtProbeResponseHeader")
294  .SetParent<Header> ()
295  .SetGroupName ("Wifi")
296  .AddConstructor<MgtProbeResponseHeader> ()
297  ;
298  return tid;
299 }
300 
301 TypeId
303 {
304  return GetTypeId ();
305 }
306 
307 uint32_t
309 {
310  uint32_t size = 0;
311  size += 8; //timestamp
312  size += 2; //beacon interval
313  size += m_capability.GetSerializedSize ();
314  size += m_ssid.GetSerializedSize ();
315  size += m_rates.GetSerializedSize ();
323  return size;
324 }
325 
326 void
327 MgtProbeResponseHeader::Print (std::ostream &os) const
328 {
329  os << "ssid=" << m_ssid << ", "
330  << "rates=" << m_rates << ", "
331  << "DSSS Parameter Set=" << m_dsssParameterSet << " , "
332  << "ERP information=" << m_erpInformation << ", "
333  << "HT Capabilities=" << m_htCapability << " , "
334  << "HT Operations=" << m_htOperations << " , "
335  << "VHT Capabilities= " << m_vhtCapability;
336 }
337 
338 void
340 {
341  //timestamp
342  //beacon interval
343  //capability information
344  //ssid
345  //supported rates
346  //fh parameter set
347  //ds parameter set
348  //cf parameter set
349  //ibss parameter set
351  i.WriteHtolsbU64 (Simulator::Now ().GetMicroSeconds ());
352  i.WriteHtolsbU16 (m_beaconInterval / 1024);
353  i = m_capability.Serialize (i);
354  i = m_ssid.Serialize (i);
355  i = m_rates.Serialize (i);
357  i = m_erpInformation.Serialize (i);
358  i = m_rates.extended.Serialize (i);
360  i = m_htCapability.Serialize (i);
361  i = m_htOperations.Serialize (i);
362  i = m_vhtCapability.Serialize (i);
363 }
364 
365 uint32_t
367 {
369  m_timestamp = i.ReadLsbtohU64 ();
371  m_beaconInterval *= 1024;
372  i = m_capability.Deserialize (i);
373  i = m_ssid.Deserialize (i);
374  i = m_rates.Deserialize (i);
382  return i.GetDistanceFrom (start);
383 }
384 
385 
386 /***********************************************************
387  * Beacons
388  ***********************************************************/
389 
391 
392 /* static */
393 TypeId
395 {
396  static TypeId tid = TypeId ("ns3::MgtBeaconHeader")
398  .SetGroupName ("Wifi")
399  .AddConstructor<MgtBeaconHeader> ()
400  ;
401  return tid;
402 }
403 
404 
405 /***********************************************************
406  * Assoc Request
407  ***********************************************************/
408 
410 
412  : m_listenInterval (0)
413 {
414 }
415 
417 {
418 }
419 
420 void
422 {
423  m_ssid = ssid;
424 }
425 
426 void
428 {
429  m_rates = rates;
430 }
431 
432 void
434 {
435  m_listenInterval = interval;
436 }
437 
438 void
440 {
441  m_capability = capabilities;
442 }
443 
446 {
447  return m_capability;
448 }
449 
450 void
452 {
453  m_htCapability = htcapabilities;
454 }
455 
458 {
459  return m_htCapability;
460 }
461 
462 void
464 {
465  m_vhtCapability = vhtcapabilities;
466 }
467 
470 {
471  return m_vhtCapability;
472 }
473 
474 Ssid
476 {
477  return m_ssid;
478 }
479 
482 {
483  return m_rates;
484 }
485 
486 uint16_t
488 {
489  return m_listenInterval;
490 }
491 
492 TypeId
494 {
495  static TypeId tid = TypeId ("ns3::MgtAssocRequestHeader")
496  .SetParent<Header> ()
497  .SetGroupName ("Wifi")
498  .AddConstructor<MgtAssocRequestHeader> ()
499  ;
500  return tid;
501 }
502 
503 TypeId
505 {
506  return GetTypeId ();
507 }
508 
509 uint32_t
511 {
512  uint32_t size = 0;
513  size += m_capability.GetSerializedSize ();
514  size += 2;
515  size += m_ssid.GetSerializedSize ();
516  size += m_rates.GetSerializedSize ();
520  return size;
521 }
522 
523 void
524 MgtAssocRequestHeader::Print (std::ostream &os) const
525 {
526  os << "ssid=" << m_ssid << ", "
527  << "rates=" << m_rates << ", "
528  << "HT Capabilities=" << m_htCapability << " , "
529  << "VHT Capabilities= " << m_vhtCapability;
530 }
531 
532 void
534 {
536  i = m_capability.Serialize (i);
538  i = m_ssid.Serialize (i);
539  i = m_rates.Serialize (i);
540  i = m_rates.extended.Serialize (i);
541  i = m_htCapability.Serialize (i);
542  i = m_vhtCapability.Serialize (i);
543 }
544 
545 uint32_t
547 {
549  i = m_capability.Deserialize (i);
551  i = m_ssid.Deserialize (i);
552  i = m_rates.Deserialize (i);
556  return i.GetDistanceFrom (start);
557 }
558 
559 
560 /***********************************************************
561  * Assoc Response
562  ***********************************************************/
563 
565 
567  : m_aid (0)
568 {
569 }
570 
572 {
573 }
574 
577 {
578  return m_code;
579 }
580 
583 {
584  return m_rates;
585 }
586 
587 void
589 {
590  m_code = code;
591 }
592 
593 void
595 {
596  m_rates = rates;
597 }
598 
599 void
601 {
602  m_capability = capabilities;
603 }
604 
607 {
608  return m_capability;
609 }
610 
611 void
613 {
614  m_htCapability = htcapabilities;
615 }
616 
619 {
620  return m_htCapability;
621 }
622 
623 void
625 {
626  m_htOperations = htoperations;
627 }
628 
631 {
632  return m_htOperations;
633 }
634 
635 void
637 {
638  m_vhtCapability = vhtcapabilities;
639 }
640 
643 {
644  return m_vhtCapability;
645 }
646 
647 void
649 {
650  m_erpInformation = erpInformation;
651 }
652 
655 {
656  return m_erpInformation;
657 }
658 
659 void
661 {
662  m_edcaParameterSet = edcaparameters;
663 }
664 
667 {
668  return m_edcaParameterSet;
669 }
670 
671 TypeId
673 {
674  static TypeId tid = TypeId ("ns3::MgtAssocResponseHeader")
675  .SetParent<Header> ()
676  .SetGroupName ("Wifi")
677  .AddConstructor<MgtAssocResponseHeader> ()
678  ;
679  return tid;
680 }
681 
682 TypeId
684 {
685  return GetTypeId ();
686 }
687 
688 uint32_t
690 {
691  uint32_t size = 0;
692  size += m_capability.GetSerializedSize ();
693  size += m_code.GetSerializedSize ();
694  size += 2; //aid
695  size += m_rates.GetSerializedSize ();
702  return size;
703 }
704 
705 void
706 MgtAssocResponseHeader::Print (std::ostream &os) const
707 {
708  os << "status code=" << m_code << ", "
709  << "rates=" << m_rates << ", "
710  << "ERP information=" << m_erpInformation << ", "
711  << "HT Capabilities=" << m_htCapability << " , "
712  << "HT Operations=" << m_htOperations << " , "
713  << "VHT Capabilities= " << m_vhtCapability;
714 }
715 
716 void
718 {
720  i = m_capability.Serialize (i);
721  i = m_code.Serialize (i);
722  i.WriteHtolsbU16 (m_aid);
723  i = m_rates.Serialize (i);
724  i = m_erpInformation.Serialize (i);
725  i = m_rates.extended.Serialize (i);
727  i = m_htCapability.Serialize (i);
728  i = m_htOperations.Serialize (i);
729  i = m_vhtCapability.Serialize (i);
730 }
731 
732 uint32_t
734 {
736  i = m_capability.Deserialize (i);
737  i = m_code.Deserialize (i);
738  m_aid = i.ReadLsbtohU16 ();
739  i = m_rates.Deserialize (i);
746  return i.GetDistanceFrom (start);
747 }
748 
749 
750 /**********************************************************
751  * ActionFrame
752  **********************************************************/
754 {
755 }
756 
758 {
759 }
760 
761 void
764 {
765  m_category = type;
766  switch (type)
767  {
768  case BLOCK_ACK:
769  {
770  m_actionValue = action.blockAck;
771  break;
772  }
773  case MESH:
774  {
775  m_actionValue = action.meshAction;
776  break;
777  }
778  case MULTIHOP:
779  {
780  m_actionValue = action.multihopAction;
781  break;
782  }
783  case SELF_PROTECTED:
784  {
786  break;
787  }
789  {
790  break;
791  }
792  }
793 }
794 
797 {
798  switch (m_category)
799  {
800  case BLOCK_ACK:
801  return BLOCK_ACK;
802  case MESH:
803  return MESH;
804  case MULTIHOP:
805  return MULTIHOP;
806  case SELF_PROTECTED:
807  return SELF_PROTECTED;
809  return VENDOR_SPECIFIC_ACTION;
810  default:
811  NS_FATAL_ERROR ("Unknown action value");
812  return SELF_PROTECTED;
813  }
814 }
815 
818 {
819  ActionValue retval;
820  retval.selfProtectedAction = PEER_LINK_OPEN; //Needs to be initialized to something to quiet valgrind in default cases
821  switch (m_category)
822  {
823  case BLOCK_ACK:
824  switch (m_actionValue)
825  {
828  break;
831  break;
832  case BLOCK_ACK_DELBA:
833  retval.blockAck = BLOCK_ACK_DELBA;
834  break;
835  }
836  break;
837 
838  case SELF_PROTECTED:
839  switch (m_actionValue)
840  {
841  case PEER_LINK_OPEN:
843  break;
844  case PEER_LINK_CONFIRM:
846  break;
847  case PEER_LINK_CLOSE:
849  break;
850  case GROUP_KEY_INFORM:
852  break;
853  case GROUP_KEY_ACK:
855  break;
856  default:
857  NS_FATAL_ERROR ("Unknown mesh peering management action code");
858  retval.selfProtectedAction = PEER_LINK_OPEN; /* quiet compiler */
859  }
860  break;
861 
862  case MESH:
863  switch (m_actionValue)
864  {
865  case LINK_METRIC_REPORT:
867  break;
868  case PATH_SELECTION:
869  retval.meshAction = PATH_SELECTION;
870  break;
871  case PORTAL_ANNOUNCEMENT:
873  break;
876  break;
877  case MDA_SETUP_REQUEST:
878  retval.meshAction = MDA_SETUP_REQUEST;
879  break;
880  case MDA_SETUP_REPLY:
881  retval.meshAction = MDA_SETUP_REPLY;
882  break;
885  break;
886  case MDAOP_ADVERTISMENTS:
888  break;
889  case MDAOP_SET_TEARDOWN:
891  break;
894  break;
897  break;
898  default:
899  NS_FATAL_ERROR ("Unknown mesh peering management action code");
900  retval.selfProtectedAction = PEER_LINK_OPEN; /* quiet compiler */
901  }
902  break;
903 
904  case MULTIHOP: //not yet supported
905  switch (m_actionValue)
906  {
907  case PROXY_UPDATE: //not used so far
908  retval.multihopAction = PROXY_UPDATE;
909  break;
910  case PROXY_UPDATE_CONFIRMATION: //not used so far
911  retval.multihopAction = PROXY_UPDATE;
912  break;
913  default:
914  NS_FATAL_ERROR ("Unknown mesh peering management action code");
915  retval.selfProtectedAction = PEER_LINK_OPEN; /* quiet compiler */
916  }
917  break;
918  default:
919  NS_FATAL_ERROR ("Unsupported mesh action");
920  retval.selfProtectedAction = PEER_LINK_OPEN; /* quiet compiler */
921  }
922  return retval;
923 }
924 
925 TypeId
927 {
928  static TypeId tid = TypeId ("ns3::WifiActionHeader")
929  .SetParent<Header> ()
930  .SetGroupName ("Wifi")
931  .AddConstructor<WifiActionHeader> ()
932  ;
933  return tid;
934 }
935 
936 TypeId
938 {
939  return GetTypeId ();
940 }
941 
942 std::string
944 {
945  if (value == BLOCK_ACK)
946  {
947  return "BlockAck";
948  }
949  else if (value == MESH)
950  {
951  return "Mesh";
952  }
953  else if (value == SELF_PROTECTED)
954  {
955  return "SelfProtected";
956  }
957  else if (value == VENDOR_SPECIFIC_ACTION)
958  {
959  return "VendorSpecificAction";
960  }
961  else
962  {
963  std::ostringstream convert;
964  convert << value;
965  return convert.str ();
966  }
967 }
968 std::string
970 {
971  if (value == PEER_LINK_OPEN)
972  {
973  return "PeerLinkOpen";
974  }
975  else if (value == PEER_LINK_CONFIRM)
976  {
977  return "PeerLinkConfirm";
978  }
979  else if (value == PEER_LINK_CLOSE)
980  {
981  return "PeerLinkClose";
982  }
983  else if (value == GROUP_KEY_INFORM)
984  {
985  return "GroupKeyInform";
986  }
987  else if (value == GROUP_KEY_ACK)
988  {
989  return "GroupKeyAck";
990  }
991  else
992  {
993  std::ostringstream convert;
994  convert << value;
995  return convert.str ();
996  }
997 }
998 
999 void
1000 WifiActionHeader::Print (std::ostream &os) const
1001 {
1002  os << "category=" << CategoryValueToString ((CategoryValue) m_category)
1004 }
1005 
1006 uint32_t
1008 {
1009  return 2;
1010 }
1011 
1012 void
1014 {
1015  start.WriteU8 (m_category);
1016  start.WriteU8 (m_actionValue);
1017 }
1018 
1019 uint32_t
1021 {
1022  Buffer::Iterator i = start;
1023  m_category = i.ReadU8 ();
1024  m_actionValue = i.ReadU8 ();
1025  return i.GetDistanceFrom (start);
1026 }
1027 
1028 
1029 /***************************************************
1030 * ADDBARequest
1031 ****************************************************/
1032 
1034 
1036  : m_dialogToken (1),
1037  m_amsduSupport (1),
1038  m_bufferSize (0)
1039 {
1040 }
1041 
1042 TypeId
1044 {
1045  static TypeId tid = TypeId ("ns3::MgtAddBaRequestHeader")
1046  .SetParent<Header> ()
1047  .SetGroupName ("Wifi")
1048  .AddConstructor<MgtAddBaRequestHeader> ()
1049  ;
1050  return tid;
1051 }
1052 
1053 TypeId
1055 {
1056  return GetTypeId ();
1057 }
1058 
1059 void
1060 MgtAddBaRequestHeader::Print (std::ostream &os) const
1061 {
1062 }
1063 
1064 uint32_t
1066 {
1067  uint32_t size = 0;
1068  size += 1; //Dialog token
1069  size += 2; //Block ack parameter set
1070  size += 2; //Block ack timeout value
1071  size += 2; //Starting sequence control
1072  return size;
1073 }
1074 
1075 void
1077 {
1078  Buffer::Iterator i = start;
1079  i.WriteU8 (m_dialogToken);
1083 }
1084 
1085 uint32_t
1087 {
1088  Buffer::Iterator i = start;
1089  m_dialogToken = i.ReadU8 ();
1093  return i.GetDistanceFrom (start);
1094 }
1095 
1096 void
1098 {
1099  m_policy = 0;
1100 }
1101 
1102 void
1104 {
1105  m_policy = 1;
1106 }
1107 
1108 void
1110 {
1111  NS_ASSERT (tid < 16);
1112  m_tid = tid;
1113 }
1114 
1115 void
1117 {
1119 }
1120 
1121 void
1123 {
1124  m_bufferSize = size;
1125 }
1126 
1127 void
1129 {
1130  m_startingSeq = seq;
1131 }
1132 
1133 void
1135 {
1136  m_startingSeq = (seqControl >> 4) & 0x0fff;
1137 }
1138 
1139 void
1141 {
1142  m_amsduSupport = supported;
1143 }
1144 
1145 uint8_t
1147 {
1148  return m_tid;
1149 }
1150 
1151 bool
1153 {
1154  return (m_policy == 1) ? true : false;
1155 }
1156 
1157 uint16_t
1159 {
1160  return m_timeoutValue;
1161 }
1162 
1163 uint16_t
1165 {
1166  return m_bufferSize;
1167 }
1168 
1169 bool
1171 {
1172  return (m_amsduSupport == 1) ? true : false;
1173 }
1174 
1175 uint16_t
1177 {
1178  return m_startingSeq;
1179 }
1180 
1181 uint16_t
1183 {
1184  return (m_startingSeq << 4) & 0xfff0;
1185 }
1186 
1187 uint16_t
1189 {
1190  uint16_t res = 0;
1191  res |= m_amsduSupport;
1192  res |= m_policy << 1;
1193  res |= m_tid << 2;
1194  res |= m_bufferSize << 6;
1195  return res;
1196 }
1197 
1198 void
1200 {
1201  m_amsduSupport = (params) & 0x01;
1202  m_policy = (params >> 1) & 0x01;
1203  m_tid = (params >> 2) & 0x0f;
1204  m_bufferSize = (params >> 6) & 0x03ff;
1205 }
1206 
1207 
1208 /***************************************************
1209 * ADDBAResponse
1210 ****************************************************/
1211 
1213 
1215  : m_dialogToken (1),
1216  m_amsduSupport (1),
1217  m_bufferSize (0)
1218 {
1219 }
1220 
1221 TypeId
1223 {
1224  static TypeId tid = TypeId ("ns3::MgtAddBaResponseHeader")
1225  .SetParent<Header> ()
1226  .SetGroupName ("Wifi")
1227  .AddConstructor<MgtAddBaResponseHeader> ()
1228  ;
1229  return tid;
1230 }
1231 
1232 TypeId
1234 {
1235  return GetTypeId ();
1236 }
1237 
1238 void
1239 MgtAddBaResponseHeader::Print (std::ostream &os) const
1240 {
1241  os << "status code=" << m_code;
1242 }
1243 
1244 uint32_t
1246 {
1247  uint32_t size = 0;
1248  size += 1; //Dialog token
1249  size += m_code.GetSerializedSize (); //Status code
1250  size += 2; //Block ack parameter set
1251  size += 2; //Block ack timeout value
1252  return size;
1253 }
1254 
1255 void
1257 {
1258  Buffer::Iterator i = start;
1259  i.WriteU8 (m_dialogToken);
1260  i = m_code.Serialize (i);
1263 }
1264 
1265 uint32_t
1267 {
1268  Buffer::Iterator i = start;
1269  m_dialogToken = i.ReadU8 ();
1270  i = m_code.Deserialize (i);
1273  return i.GetDistanceFrom (start);
1274 }
1275 
1276 void
1278 {
1279  m_policy = 0;
1280 }
1281 
1282 void
1284 {
1285  m_policy = 1;
1286 }
1287 
1288 void
1290 {
1291  NS_ASSERT (tid < 16);
1292  m_tid = tid;
1293 }
1294 
1295 void
1297 {
1299 }
1300 
1301 void
1303 {
1304  m_bufferSize = size;
1305 }
1306 
1307 void
1309 {
1310  m_code = code;
1311 }
1312 
1313 void
1315 {
1316  m_amsduSupport = supported;
1317 }
1318 
1319 StatusCode
1321 {
1322  return m_code;
1323 }
1324 
1325 uint8_t
1327 {
1328  return m_tid;
1329 }
1330 
1331 bool
1333 {
1334  return (m_policy == 1) ? true : false;
1335 }
1336 
1337 uint16_t
1339 {
1340  return m_timeoutValue;
1341 }
1342 
1343 uint16_t
1345 {
1346  return m_bufferSize;
1347 }
1348 
1349 bool
1351 {
1352  return (m_amsduSupport == 1) ? true : false;
1353 }
1354 
1355 uint16_t
1357 {
1358  uint16_t res = 0;
1359  res |= m_amsduSupport;
1360  res |= m_policy << 1;
1361  res |= m_tid << 2;
1362  res |= m_bufferSize << 6;
1363  return res;
1364 }
1365 
1366 void
1368 {
1369  m_amsduSupport = (params) & 0x01;
1370  m_policy = (params >> 1) & 0x01;
1371  m_tid = (params >> 2) & 0x0f;
1372  m_bufferSize = (params >> 6) & 0x03ff;
1373 }
1374 
1375 
1376 /***************************************************
1377 * DelBa
1378 ****************************************************/
1379 
1381 
1383  : m_reasonCode (1)
1384 {
1385 }
1386 
1387 TypeId
1389 {
1390  static TypeId tid = TypeId ("ns3::MgtDelBaHeader")
1391  .SetParent<Header> ()
1392  .SetGroupName ("Wifi")
1393  .AddConstructor<MgtDelBaHeader> ()
1394  ;
1395  return tid;
1396 }
1397 
1398 TypeId
1400 {
1401  return GetTypeId ();
1402 }
1403 
1404 void
1405 MgtDelBaHeader::Print (std::ostream &os) const
1406 {
1407 }
1408 
1409 uint32_t
1411 {
1412  uint32_t size = 0;
1413  size += 2; //DelBa parameter set
1414  size += 2; //Reason code
1415  return size;
1416 }
1417 
1418 void
1420 {
1421  Buffer::Iterator i = start;
1424 }
1425 
1426 uint32_t
1428 {
1429  Buffer::Iterator i = start;
1431  m_reasonCode = i.ReadLsbtohU16 ();
1432  return i.GetDistanceFrom (start);
1433 }
1434 
1435 bool
1437 {
1438  return (m_initiator == 1) ? true : false;
1439 }
1440 
1441 uint8_t
1443 {
1444  NS_ASSERT (m_tid < 16);
1445  uint8_t tid = static_cast<uint8_t> (m_tid);
1446  return tid;
1447 }
1448 
1449 void
1451 {
1452  m_initiator = 1;
1453 }
1454 
1455 void
1457 {
1458  m_initiator = 0;
1459 }
1460 
1461 void
1463 {
1464  NS_ASSERT (tid < 16);
1465  m_tid = static_cast<uint16_t> (tid);
1466 }
1467 
1468 uint16_t
1470 {
1471  uint16_t res = 0;
1472  res |= m_initiator << 11;
1473  res |= m_tid << 12;
1474  return res;
1475 }
1476 
1477 void
1479 {
1480  m_initiator = (params >> 11) & 0x01;
1481  m_tid = (params >> 12) & 0x0f;
1482 }
1483 
1484 } //namespace ns3
Protocol header serialization and deserialization.
Definition: header.h:42
Buffer::Iterator Serialize(Buffer::Iterator start) const
This information element is a bit special in that it is only included if the STA is an HT STA...
static TypeId GetTypeId(void)
Register this type.
virtual uint32_t Deserialize(Buffer::Iterator start)
SupportedRates GetSupportedRates(void) const
Return the supported rates.
Definition: mgt-headers.cc:83
The HT Operations Information ElementThis class knows how to serialise and deserialise the HT Operati...
Definition: ht-operations.h:54
uint16_t GetBufferSize(void) const
Return the buffer size.
virtual void Serialize(Buffer::Iterator start) const
Definition: mgt-headers.cc:717
StatusCode m_code
Status code.
Definition: mgt-headers.h:907
virtual uint32_t GetSerializedSize(void) const
Buffer::Iterator Serialize(Buffer::Iterator start) const
This information element is a bit special in that it is only included if the STA is an ERP STA...
SupportedRates GetSupportedRates(void) const
Return the supported rates.
Definition: mgt-headers.cc:183
HtOperations m_htOperations
HT operations.
Definition: mgt-headers.h:272
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition: mgt-headers.cc:504
Implement the header for management frames of type association request.
Definition: mgt-headers.h:46
DsssParameterSet m_dsssParameterSet
DSSS Parameter Set.
Definition: mgt-headers.h:512
void SetCapabilities(CapabilityInformation capabilities)
Set the Capability information.
Definition: mgt-headers.cc:439
uint8_t m_policy
Block ACK policy.
Definition: mgt-headers.h:909
virtual void Print(std::ostream &os) const
VhtCapabilities GetVhtCapabilities(void) const
Return the VHT capabilities.
Definition: mgt-headers.cc:77
Buffer::Iterator Deserialize(Buffer::Iterator start)
Deserialize capability information from the given buffer.
CapabilityInformation GetCapabilities(void) const
Return the Capability information.
Definition: mgt-headers.cc:606
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition: mgt-headers.cc:302
Ssid GetSsid(void) const
Return the Service Set Identifier (SSID).
Definition: mgt-headers.cc:171
HtOperations GetHtOperations(void) const
Return the HT operations.
Definition: mgt-headers.cc:630
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Definition: object-base.h:44
SupportedRates m_rates
List of supported rates.
Definition: mgt-headers.h:267
static TypeId GetTypeId(void)
Register this type.
Definition: mgt-headers.cc:493
uint16_t m_timeoutValue
Timeout.
Definition: mgt-headers.h:790
See IEEE 802.11 chapter 7.3.1.11 Header format: | category: 1 | action value: 1 |.
Definition: mgt-headers.h:548
virtual void Print(std::ostream &os) const
HtCapabilities m_htCapability
HT capabilities.
Definition: mgt-headers.h:352
uint64_t GetBeaconIntervalUs(void) const
Return the beacon interval in microseconds unit.
Definition: mgt-headers.cc:177
SupportedRates m_rates
List of supported rates.
Definition: mgt-headers.h:139
static TypeId GetTypeId(void)
Register this type.
Definition: mgt-headers.cc:101
void SetImmediateBlockAck()
Enable immediate Block ACK.
SupportedRates m_rates
List of supported rates.
Definition: mgt-headers.h:510
def start()
Definition: core.py:1482
CapabilityInformation m_capability
Capability information.
Definition: mgt-headers.h:268
CapabilityInformation m_capability
Capability information.
Definition: mgt-headers.h:511
uint16_t GetSerializedSize() const
Return the serialized size of this supported rates information element.
void SetBufferSize(uint16_t size)
Set buffer size.
Implement the header for management frames of type add block ack request.
Definition: mgt-headers.h:667
bool IsImmediateBlockAck(void) const
Return whether the Block ACK policy is immediate Block ACK.
HtCapabilities m_htCapability
HT capabilities.
Definition: mgt-headers.h:141
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
Definition: assert.h:67
VhtCapabilities m_vhtCapability
VHT capabilities.
Definition: mgt-headers.h:353
virtual uint32_t GetSerializedSize(void) const
Definition: mgt-headers.cc:510
The HT Capabilities Information ElementThis class knows how to serialise and deserialise the HT Capab...
void SetHtCapabilities(HtCapabilities htcapabilities)
Set the HT capabilities.
Definition: mgt-headers.cc:451
void SetCapabilities(CapabilityInformation capabilities)
Set the Capability information.
Definition: mgt-headers.cc:189
void SetSsid(Ssid ssid)
Set the Service Set Identifier (SSID).
Definition: mgt-headers.cc:421
uint32_t GetSerializedSize(void) const
Definition: status-code.cc:50
virtual void Print(std::ostream &os) const
uint16_t m_startingSeq
Starting sequence number.
Definition: mgt-headers.h:791
void SetAction(enum CategoryValue type, ActionValue action)
Set action for this Action header.
Definition: mgt-headers.cc:762
Buffer::Iterator Serialize(Buffer::Iterator start) const
Serialize capability information to the given buffer.
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
Definition: fatal-error.h:162
std::string CategoryValueToString(CategoryValue value) const
Definition: mgt-headers.cc:943
uint16_t GetBufferSize(void) const
Return the buffer size.
VhtCapabilities GetVhtCapabilities(void) const
Return the VHT capabilities.
Definition: mgt-headers.cc:642
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
uint16_t GetSerializedSize() const
Return the serialized size of this DSSS Parameter Set.
CategoryValue GetCategory()
Return the category value.
Definition: mgt-headers.cc:796
void SetDelayedBlockAck()
Enable delayed Block ACK.
ns3::Time timeout
void SetTid(uint8_t)
Set Traffic ID (TID).
void SetStatusCode(StatusCode code)
Set the status code.
The Supported Rates Information ElementThis class knows how to serialise and deserialise the Supporte...
CapabilityInformation m_capability
Capability information.
Definition: mgt-headers.h:140
uint16_t m_bufferSize
Buffer size.
Definition: mgt-headers.h:789
ErpInformation m_erpInformation
ERP information.
Definition: mgt-headers.h:274
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition: mgt-headers.cc:112
void SetTimeout(uint16_t timeout)
Set timeout.
Buffer::Iterator Deserialize(Buffer::Iterator i)
Deserialize entire IE, which must be present.
Ssid GetSsid(void) const
Return the Service Set Identifier (SSID).
Definition: mgt-headers.cc:47
Capability information.
void SetSupportedRates(SupportedRates rates)
Set the supported rates.
Definition: mgt-headers.cc:53
void SetAmsduSupport(bool supported)
Enable or disable A-MSDU support.
uint32_t GetDistanceFrom(Iterator const &o) const
Definition: buffer.cc:783
uint16_t GetSerializedSize() const
Get the size of the serialized IE including Element ID and length fields.
Ssid GetSsid(void) const
Return the Service Set Identifier (SSID).
Definition: mgt-headers.cc:475
iterator in a Buffer instance
Definition: buffer.h:98
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
void SetSupportedRates(SupportedRates rates)
Set the supported rates.
Definition: mgt-headers.cc:427
ErpInformation GetErpInformation(void) const
Return the ERP information.
Definition: mgt-headers.cc:654
void SetDsssParameterSet(DsssParameterSet dsssParameterSet)
Set the DSSS Parameter Set.
Definition: mgt-headers.cc:255
bool IsAmsduSupported(void) const
Return whether A-MSDU capability is supported.
uint16_t GetStartingSequenceControl(void) const
Return the raw sequence control.
uint16_t GetSerializedSize() const
Return the serialized size of this HT Operations IE.
virtual void Serialize(Buffer::Iterator start) const
void SetTid(uint8_t tid)
Set Traffic ID (TID).
virtual void Print(std::ostream &os) const
Definition: mgt-headers.cc:327
virtual void Serialize(Buffer::Iterator start) const
Definition: mgt-headers.cc:339
VhtCapabilities GetVhtCapabilities(void) const
Return the VHT capabilities.
Definition: mgt-headers.cc:231
ExtendedSupportedRatesIE extended
SupportedRates GetSupportedRates(void) const
Return the supported rates.
Definition: mgt-headers.cc:481
void SetListenInterval(uint16_t interval)
Set the listen interval.
Definition: mgt-headers.cc:433
static TypeId GetTypeId(void)
Register this type.
Definition: mgt-headers.cc:926
uint8_t m_amsduSupport
Flag if A-MSDU is supported.
Definition: mgt-headers.h:908
void SetErpInformation(ErpInformation erpInformation)
Set the ERP information.
Definition: mgt-headers.cc:267
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
virtual TypeId GetInstanceTypeId() const
Get the most derived TypeId for this Object.
Definition: mgt-headers.cc:937
uint16_t GetSerializedSize() const
Return the serialized size of this EDCA Parameter Set.
void SetParameterSet(uint16_t params)
Set the parameter set from the given raw value.
uint8_t m_tid
Traffic ID.
Definition: mgt-headers.h:788
SupportedRates m_rates
List of supported rates.
Definition: mgt-headers.h:351
enum MultihopActionValue multihopAction
Definition: mgt-headers.h:618
ErpInformation GetErpInformation(void) const
Return the ERP information.
Definition: mgt-headers.cc:273
CapabilityInformation GetCapabilities(void) const
Return the Capability information.
Definition: mgt-headers.cc:445
virtual uint32_t GetSerializedSize() const
The IEEE 802.11ac VHT Capabilities.
void SetStartingSequenceControl(uint16_t seqControl)
Set sequence control with the given raw value.
void SetErpInformation(ErpInformation erpInformation)
Set the ERP information.
Definition: mgt-headers.cc:648
void SetImmediateBlockAck()
Enable immediate Block ACK.
Buffer::Iterator Serialize(Buffer::Iterator start) const
This information element is a bit special in that it is only included if there are more than 8 rates...
void SetTid(uint8_t tid)
Set Traffic ID (TID).
uint16_t GetListenInterval(void) const
Return the listen interval.
Definition: mgt-headers.cc:487
void SetParameterSet(uint16_t params)
Set the parameter set from the given raw value.
enum MeshActionValue meshAction
Definition: mgt-headers.h:617
virtual void Print(std::ostream &os) const
Definition: mgt-headers.cc:118
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition: mgt-headers.cc:138
enum BlockAckActionValue blockAck
Definition: mgt-headers.h:620
uint8_t m_amsduSupport
Flag if A-MSDU is supported.
Definition: mgt-headers.h:786
Buffer::Iterator DeserializeIfPresent(Buffer::Iterator i)
Deserialize entire IE if it is present.
void SetStartingSequence(uint16_t seq)
Set the starting sequence number.
virtual void Serialize(Buffer::Iterator start) const
uint8_t GetTid(void) const
Return the Traffic ID (TID).
void SetVhtCapabilities(VhtCapabilities vhtcapabilities)
Set the VHT capabilities.
Definition: mgt-headers.cc:636
ErpInformation m_erpInformation
ERP information.
Definition: mgt-headers.h:516
EdcaParameterSet GetEdcaParameterSet(void) const
Return the EDCA Parameter Set.
Definition: mgt-headers.cc:666
void SetEdcaParameterSet(EdcaParameterSet edcaParameterSet)
Set the EDCA Parameter Set.
Definition: mgt-headers.cc:279
SupportedRates GetSupportedRates(void)
Return the supported rates.
Definition: mgt-headers.cc:582
uint64_t m_timestamp
Timestamp.
Definition: mgt-headers.h:507
EdcaParameterSet m_edcaParameterSet
EDCA Parameter Set.
Definition: mgt-headers.h:517
void SetHtCapabilities(HtCapabilities htcapabilities)
Set the HT capabilities.
Definition: mgt-headers.cc:59
Buffer::Iterator Serialize(Buffer::Iterator start) const
This information element is a bit special in that it is only included if the STA is a QoS STA...
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition: mgt-headers.cc:683
uint64_t GetTimestamp()
Return the time stamp.
Definition: mgt-headers.cc:165
virtual uint32_t GetSerializedSize(void) const
HtOperations m_htOperations
HT operations.
Definition: mgt-headers.h:514
Buffer::Iterator Serialize(Buffer::Iterator start) const
Definition: status-code.cc:56
void SetByOriginator(void)
Set the initiator bit in the DELBA.
Status code for association response.
Definition: status-code.h:33
void SetSsid(Ssid ssid)
Set the Service Set Identifier (SSID).
Definition: mgt-headers.cc:237
std::string SelfProtectedActionValueToString(SelfProtectedActionValue value) const
Definition: mgt-headers.cc:969
virtual void Print(std::ostream &os) const
Definition: mgt-headers.cc:524
void SetByRecipient(void)
Un-set the initiator bit in the DELBA.
bool IsAmsduSupported(void) const
Return whether A-MSDU capability is supported.
static TypeId GetTypeId(void)
Register this type.
VhtCapabilities GetVhtCapabilities(void) const
Return the VHT capabilities.
Definition: mgt-headers.cc:469
VhtCapabilities m_vhtCapability
VHT capabilities.
Definition: mgt-headers.h:515
Every class exported by the ns3 library is enclosed in the ns3 namespace.
virtual uint32_t GetSerializedSize(void) const
void SetBeaconIntervalUs(uint64_t us)
Set the beacon interval in microseconds unit.
Definition: mgt-headers.cc:243
The EDCA Parameter SetThis class knows how to serialise and deserialise the EDCA Parameter Set...
static TypeId GetTypeId(void)
Register this type.
Definition: mgt-headers.cc:291
void SetBufferSize(uint16_t size)
Set buffer size.
Buffer::Iterator Deserialize(Buffer::Iterator start)
Definition: status-code.cc:63
uint8_t GetTid(void) const
Return the Traffic ID (TID).
virtual void Serialize(Buffer::Iterator start) const
virtual uint32_t Deserialize(Buffer::Iterator start)
HtCapabilities GetHtCapabilities(void) const
Return the HT capabilities.
Definition: mgt-headers.cc:207
StatusCode GetStatusCode(void) const
Return the status code.
HtCapabilities GetHtCapabilities(void) const
Return the HT capabilities.
Definition: mgt-headers.cc:65
bool IsByOriginator(void) const
Check if the initiator bit in the DELBA is setted.
void SetVhtCapabilities(VhtCapabilities vhtcapabilities)
Set the VHT capabilities.
Definition: mgt-headers.cc:463
tuple ssid
Definition: third.py:93
VhtCapabilities m_vhtCapability
VHT capabilities.
Definition: mgt-headers.h:142
HtCapabilities m_htCapability
HT capabilities.
Definition: mgt-headers.h:513
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition: mgt-headers.cc:366
static Time Now(void)
Return the current simulation virtual time.
Definition: simulator.cc:224
static TypeId GetTypeId(void)
Register this type.
Definition: mgt-headers.cc:394
uint8_t m_tid
Traffic ID.
Definition: mgt-headers.h:910
virtual void Print(std::ostream &os) const
Definition: mgt-headers.cc:706
Buffer::Iterator Serialize(Buffer::Iterator start) const
uint16_t GetTimeout(void) const
Return the timeout.
uint8_t GetTid(void) const
Return the Traffic ID (TID).
uint8_t m_actionValue
Action value.
Definition: mgt-headers.h:659
The IEEE 802.11 SSID Information Element.
Definition: ssid.h:38
Implement the header for management frames of type probe request.
Definition: mgt-headers.h:283
void SetVhtCapabilities(VhtCapabilities vhtcapabilities)
Set the VHT capabilities.
Definition: mgt-headers.cc:225
bool IsImmediateBlockAck(void) const
Return whether the Block ACK policy is immediate Block ACK.
enum SelfProtectedActionValue selfProtectedAction
Definition: mgt-headers.h:619
void WriteHtolsbU16(uint16_t data)
Definition: buffer.cc:910
void SetHtOperations(HtOperations htoperations)
Set the HT operations.
Definition: mgt-headers.cc:213
Implement the header for management frames of type association response.
Definition: mgt-headers.h:151
virtual uint32_t Deserialize(Buffer::Iterator start)
StatusCode m_code
Status code.
Definition: mgt-headers.h:269
The DSSS Parameter SetThis class knows how to serialise and deserialise the DSSS Parameter Set...
uint16_t GetStartingSequence(void) const
Return the starting sequence number.
void SetCapabilities(CapabilityInformation capabilities)
Set the Capability information.
Definition: mgt-headers.cc:600
void SetEdcaParameterSet(EdcaParameterSet edcaParameterSet)
Set the EDCA Parameter Set.
Definition: mgt-headers.cc:660
uint16_t m_tid
Traffic ID.
Definition: mgt-headers.h:980
static TypeId GetTypeId(void)
Register this type.
void WriteU8(uint8_t data)
Definition: buffer.h:868
uint16_t GetSerializedSize() const
void WriteHtolsbU64(uint64_t data)
Definition: buffer.cc:926
static TypeId GetTypeId(void)
Register this type.
Definition: mgt-headers.cc:672
void SetSupportedRates(SupportedRates rates)
Set the supported rates.
Definition: mgt-headers.cc:594
uint16_t GetParameterSet(void) const
Return the raw parameter set.
uint32_t GetSerializedSize(void) const
Return the serialized size of capability information.
Implement the header for management frames of type add block ack response.
Definition: mgt-headers.h:799
EdcaParameterSet GetEdcaParameterSet(void) const
Return the EDCA Parameter Set.
Definition: mgt-headers.cc:285
Implement the header for management frames of type del block ack.
Definition: mgt-headers.h:920
typedef for union of different ActionValues
Definition: mgt-headers.h:615
EdcaParameterSet m_edcaParameterSet
EDCA Parameter Set.
Definition: mgt-headers.h:275
uint8_t ReadU8(void)
Definition: buffer.h:1020
uint8_t m_policy
Block ACK policy.
Definition: mgt-headers.h:787
HtCapabilities m_htCapability
HT capabilities.
Definition: mgt-headers.h:271
void SetSupportedRates(SupportedRates rates)
Set the supported rates.
Definition: mgt-headers.cc:249
Ssid m_ssid
Service Set ID (SSID)
Definition: mgt-headers.h:350
void SetHtCapabilities(HtCapabilities htcapabilities)
Set the HT capabilities.
Definition: mgt-headers.cc:612
uint16_t ReadLsbtohU16(void)
Definition: buffer.cc:1065
The ErpInformation Information ElementThis class knows how to serialise and deserialise the ErpInform...
CapabilityInformation GetCapabilities(void) const
Return the Capability information.
Definition: mgt-headers.cc:195
void SetSsid(Ssid ssid)
Set the Service Set Identifier (SSID).
Definition: mgt-headers.cc:41
void SetStatusCode(StatusCode code)
Set the status code.
Definition: mgt-headers.cc:588
void SetParameterSet(uint16_t params)
Set the parameter set from the given raw value.
void SetAmsduSupport(bool supported)
Enable or disable A-MSDU support.
uint8_t m_category
Category of the action.
Definition: mgt-headers.h:658
void SetDelayedBlockAck()
Enable delayed Block ACK.
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition: mgt-headers.cc:546
void SetTimeout(uint16_t timeout)
Set timeout.
Implement the header for management frames of type probe response.
Definition: mgt-headers.h:361
uint64_t ReadLsbtohU64(void)
Definition: buffer.cc:1093
uint16_t GetSerializedSize() const
Return the serialized size of this HT capability information element.
VhtCapabilities m_vhtCapability
VHT capabilities.
Definition: mgt-headers.h:273
uint16_t GetParameterSet(void) const
Return the raw parameter set.
ActionValue GetAction()
Return the action value.
Definition: mgt-headers.cc:817
uint16_t m_bufferSize
Buffer size.
Definition: mgt-headers.h:911
uint16_t GetParameterSet(void) const
Return the raw parameter set.
uint64_t m_beaconInterval
Beacon interval.
Definition: mgt-headers.h:509
DsssParameterSet GetDsssParameterSet(void) const
Return the DSSS Parameter Set.
Definition: mgt-headers.cc:261
virtual uint32_t GetSerializedSize(void) const
Definition: mgt-headers.cc:89
Buffer::Iterator Serialize(Buffer::Iterator start) const
This information element is a bit special in that it is only included if the STA is an HT STA...
uint16_t m_timeoutValue
Timeout.
Definition: mgt-headers.h:912
HtOperations GetHtOperations(void) const
Return the HT operations.
Definition: mgt-headers.cc:219
uint16_t GetSerializedSize() const
Return the serialized size of this ErpInformation information element.
Ssid m_ssid
Service Set ID (SSID)
Definition: mgt-headers.h:138
HtCapabilities GetHtCapabilities(void) const
Return the HT capabilities.
Definition: mgt-headers.cc:457
virtual uint32_t GetSerializedSize(void) const
Definition: mgt-headers.cc:308
a unique identifier for an interface.
Definition: type-id.h:58
virtual void Serialize(Buffer::Iterator start) const
Definition: mgt-headers.cc:127
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Definition: type-id.cc:904
void SetHtCapabilities(HtCapabilities htcapabilities)
Set the HT capabilities.
Definition: mgt-headers.cc:201
Implement the header for management frames of type beacon.
Definition: mgt-headers.h:525
void SetHtOperations(HtOperations htoperations)
Set the HT operations.
Definition: mgt-headers.cc:624
Buffer::Iterator Serialize(Buffer::Iterator i) const
Serialize entire IE including Element ID and length fields.
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition: mgt-headers.cc:733
virtual uint32_t GetSerializedSize(void) const
Definition: mgt-headers.cc:689
StatusCode GetStatusCode(void)
Return the status code.
Definition: mgt-headers.cc:576
Ssid m_ssid
Service set ID (SSID)
Definition: mgt-headers.h:508
void SetVhtCapabilities(VhtCapabilities vhtcapabilities)
Set the VHT capabilities.
Definition: mgt-headers.cc:71
virtual void Serialize(Buffer::Iterator start) const
virtual uint32_t Deserialize(Buffer::Iterator start)
uint16_t GetTimeout(void) const
Return the timeout.
Buffer::Iterator Serialize(Buffer::Iterator start) const
This information element is a bit special in that it is only included if the STA does support DSSS...
HtCapabilities GetHtCapabilities(void) const
Return the HT capabilities.
Definition: mgt-headers.cc:618
virtual void Print(std::ostream &os) const
virtual void Serialize(Buffer::Iterator start) const
Definition: mgt-headers.cc:533