Left: | ||
Right: |
LEFT | RIGHT |
---|---|
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ | 1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
2 /* | 2 /* |
3 * Copyright (c) 2006 INRIA | 3 * Copyright (c) 2006 INRIA |
4 * Copyright (c) 2009 MIRKO BANCHI | 4 * Copyright (c) 2009 MIRKO BANCHI |
5 * | 5 * |
6 * This program is free software; you can redistribute it and/or modify | 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 | 7 * it under the terms of the GNU General Public License version 2 as |
8 * published by the Free Software Foundation; | 8 * published by the Free Software Foundation; |
9 * | 9 * |
10 * This program is distributed in the hope that it will be useful, | 10 * This program is distributed in the hope that it will be useful, |
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 * GNU General Public License for more details. | 13 * GNU General Public License for more details. |
14 * | 14 * |
15 * You should have received a copy of the GNU General Public License | 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 | 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 | 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
18 * | 18 * |
19 * Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr> | 19 * Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
20 * Mirko Banchi <mk.banchi@gmail.com> | 20 * Mirko Banchi <mk.banchi@gmail.com> |
21 */ | 21 */ |
22 | 22 |
23 #include "ns3/simulator.h" | |
24 #include "ns3/address-utils.h" | |
23 #include "mgt-headers.h" | 25 #include "mgt-headers.h" |
24 #include "ns3/simulator.h" | |
25 | 26 |
26 namespace ns3 { | 27 namespace ns3 { |
27 | 28 |
28 /*********************************************************** | 29 /*********************************************************** |
29 * Probe Request | 30 * Probe Request |
30 ***********************************************************/ | 31 ***********************************************************/ |
31 | 32 |
32 NS_OBJECT_ENSURE_REGISTERED (MgtProbeRequestHeader); | 33 NS_OBJECT_ENSURE_REGISTERED (MgtProbeRequestHeader); |
33 | 34 |
34 MgtProbeRequestHeader::~MgtProbeRequestHeader () | 35 MgtProbeRequestHeader::~MgtProbeRequestHeader () |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
142 MgtProbeRequestHeader::GetInstanceTypeId (void) const | 143 MgtProbeRequestHeader::GetInstanceTypeId (void) const |
143 { | 144 { |
144 return GetTypeId (); | 145 return GetTypeId (); |
145 } | 146 } |
146 | 147 |
147 void | 148 void |
148 MgtProbeRequestHeader::Print (std::ostream &os) const | 149 MgtProbeRequestHeader::Print (std::ostream &os) const |
149 { | 150 { |
150 os << "ssid=" << m_ssid << ", " | 151 os << "ssid=" << m_ssid << ", " |
151 << "rates=" << m_rates << ", " | 152 << "rates=" << m_rates << ", " |
153 << "Extended Capabilities=" << m_extendedCapability << " , " | |
152 << "HT Capabilities=" << m_htCapability << " , " | 154 << "HT Capabilities=" << m_htCapability << " , " |
153 << "VHT Capabilities=" << m_vhtCapability << " , " | 155 << "VHT Capabilities=" << m_vhtCapability << " , " |
154 << "HE Capabilities=" << m_heCapability; | 156 << "HE Capabilities=" << m_heCapability; |
155 } | 157 } |
156 | 158 |
157 void | 159 void |
158 MgtProbeRequestHeader::Serialize (Buffer::Iterator start) const | 160 MgtProbeRequestHeader::Serialize (Buffer::Iterator start) const |
159 { | 161 { |
160 Buffer::Iterator i = start; | 162 Buffer::Iterator i = start; |
161 i = m_ssid.Serialize (i); | 163 i = m_ssid.Serialize (i); |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
409 size += m_heOperation.GetSerializedSize (); | 411 size += m_heOperation.GetSerializedSize (); |
410 return size; | 412 return size; |
411 } | 413 } |
412 | 414 |
413 void | 415 void |
414 MgtProbeResponseHeader::Print (std::ostream &os) const | 416 MgtProbeResponseHeader::Print (std::ostream &os) const |
415 { | 417 { |
416 os << "ssid=" << m_ssid << ", " | 418 os << "ssid=" << m_ssid << ", " |
417 << "rates=" << m_rates << ", " | 419 << "rates=" << m_rates << ", " |
418 << "ERP information=" << m_erpInformation << ", " | 420 << "ERP information=" << m_erpInformation << ", " |
421 << "Extended Capabilities=" << m_extendedCapability << " , " | |
419 << "HT Capabilities=" << m_htCapability << " , " | 422 << "HT Capabilities=" << m_htCapability << " , " |
420 << "HT Operation=" << m_htOperation << " , " | 423 << "HT Operation=" << m_htOperation << " , " |
421 << "VHT Capabilities=" << m_vhtCapability << " , " | 424 << "VHT Capabilities=" << m_vhtCapability << " , " |
422 << "VHT Operation=" << m_vhtOperation << " , " | 425 << "VHT Operation=" << m_vhtOperation << " , " |
423 << "HE Capabilities=" << m_heCapability << " , " | 426 << "HE Capabilities=" << m_heCapability << " , " |
424 << "HE Operation=" << m_heOperation; | 427 << "HE Operation=" << m_heOperation; |
425 } | 428 } |
426 | 429 |
427 void | 430 void |
428 MgtProbeResponseHeader::Serialize (Buffer::Iterator start) const | 431 MgtProbeResponseHeader::Serialize (Buffer::Iterator start) const |
429 { | 432 { |
430 //timestamp | 433 //timestamp |
431 //beacon interval | 434 //beacon interval |
432 //capability information | 435 //capability information |
433 //ssid | 436 //ssid |
434 //supported rates | 437 //supported rates |
435 //fh parameter set | 438 //fh parameter set |
436 //ds parameter set | 439 //ds parameter set |
437 //cf parameter set | 440 //cf parameter set |
438 //ibss parameter set | 441 //ibss parameter set |
439 Buffer::Iterator i = start; | 442 Buffer::Iterator i = start; |
440 i.WriteHtolsbU64 (Simulator::Now ().GetMicroSeconds ()); | 443 i.WriteHtolsbU64 (Simulator::Now ().GetMicroSeconds ()); |
441 i.WriteHtolsbU16 (static_cast<uint16_t>(m_beaconInterval / 1024)); | 444 i.WriteHtolsbU16 (static_cast<uint16_t> (m_beaconInterval / 1024)); |
S. Deronne
2018/02/18 14:52:56
I guess we do not have choice here, so OK for this
| |
442 i = m_capability.Serialize (i); | 445 i = m_capability.Serialize (i); |
443 i = m_ssid.Serialize (i); | 446 i = m_ssid.Serialize (i); |
444 i = m_rates.Serialize (i); | 447 i = m_rates.Serialize (i); |
445 i = m_dsssParameterSet.Serialize (i); | 448 i = m_dsssParameterSet.Serialize (i); |
446 i = m_erpInformation.Serialize (i); | 449 i = m_erpInformation.Serialize (i); |
447 i = m_rates.extended.Serialize (i); | 450 i = m_rates.extended.Serialize (i); |
448 i = m_edcaParameterSet.Serialize (i); | 451 i = m_edcaParameterSet.Serialize (i); |
449 i = m_extendedCapability.Serialize (i); | 452 i = m_extendedCapability.Serialize (i); |
450 i = m_htCapability.Serialize (i); | 453 i = m_htCapability.Serialize (i); |
451 i = m_htOperation.Serialize (i); | 454 i = m_htOperation.Serialize (i); |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
641 size += m_vhtCapability.GetSerializedSize (); | 644 size += m_vhtCapability.GetSerializedSize (); |
642 size += m_heCapability.GetSerializedSize (); | 645 size += m_heCapability.GetSerializedSize (); |
643 return size; | 646 return size; |
644 } | 647 } |
645 | 648 |
646 void | 649 void |
647 MgtAssocRequestHeader::Print (std::ostream &os) const | 650 MgtAssocRequestHeader::Print (std::ostream &os) const |
648 { | 651 { |
649 os << "ssid=" << m_ssid << ", " | 652 os << "ssid=" << m_ssid << ", " |
650 << "rates=" << m_rates << ", " | 653 << "rates=" << m_rates << ", " |
654 << "Extended Capabilities=" << m_extendedCapability << " , " | |
651 << "HT Capabilities=" << m_htCapability << " , " | 655 << "HT Capabilities=" << m_htCapability << " , " |
652 << "VHT Capabilities=" << m_vhtCapability << " , " | 656 << "VHT Capabilities=" << m_vhtCapability << " , " |
653 << "HE Capabilities=" << m_heCapability; | 657 << "HE Capabilities=" << m_heCapability; |
654 } | 658 } |
655 | 659 |
656 void | 660 void |
657 MgtAssocRequestHeader::Serialize (Buffer::Iterator start) const | 661 MgtAssocRequestHeader::Serialize (Buffer::Iterator start) const |
658 { | 662 { |
659 Buffer::Iterator i = start; | 663 Buffer::Iterator i = start; |
660 i = m_capability.Serialize (i); | 664 i = m_capability.Serialize (i); |
(...skipping 18 matching lines...) Expand all Loading... | |
679 i = m_rates.extended.DeserializeIfPresent (i); | 683 i = m_rates.extended.DeserializeIfPresent (i); |
680 i = m_extendedCapability.DeserializeIfPresent (i); | 684 i = m_extendedCapability.DeserializeIfPresent (i); |
681 i = m_htCapability.DeserializeIfPresent (i); | 685 i = m_htCapability.DeserializeIfPresent (i); |
682 i = m_vhtCapability.DeserializeIfPresent (i); | 686 i = m_vhtCapability.DeserializeIfPresent (i); |
683 i = m_heCapability.DeserializeIfPresent (i); | 687 i = m_heCapability.DeserializeIfPresent (i); |
684 return i.GetDistanceFrom (start); | 688 return i.GetDistanceFrom (start); |
685 } | 689 } |
686 | 690 |
687 | 691 |
688 /*********************************************************** | 692 /*********************************************************** |
689 * Assoc Response | 693 * Ressoc Request |
694 ***********************************************************/ | |
695 | |
696 NS_OBJECT_ENSURE_REGISTERED (MgtReassocRequestHeader); | |
697 | |
698 MgtReassocRequestHeader::MgtReassocRequestHeader () | |
699 : m_currentApAddr (Mac48Address ()) | |
700 { | |
701 } | |
702 | |
703 MgtReassocRequestHeader::~MgtReassocRequestHeader () | |
704 { | |
705 } | |
706 | |
707 void | |
708 MgtReassocRequestHeader::SetSsid (Ssid ssid) | |
709 { | |
710 m_ssid = ssid; | |
711 } | |
712 | |
713 void | |
714 MgtReassocRequestHeader::SetSupportedRates (SupportedRates rates) | |
715 { | |
716 m_rates = rates; | |
717 } | |
718 | |
719 void | |
720 MgtReassocRequestHeader::SetListenInterval (uint16_t interval) | |
721 { | |
722 m_listenInterval = interval; | |
723 } | |
724 | |
725 void | |
726 MgtReassocRequestHeader::SetCapabilities (CapabilityInformation capabilities) | |
727 { | |
728 m_capability = capabilities; | |
729 } | |
730 | |
731 CapabilityInformation | |
732 MgtReassocRequestHeader::GetCapabilities (void) const | |
733 { | |
734 return m_capability; | |
735 } | |
736 | |
737 void | |
738 MgtReassocRequestHeader::SetExtendedCapabilities (ExtendedCapabilities extendedc apabilities) | |
739 { | |
740 m_extendedCapability = extendedcapabilities; | |
741 } | |
742 | |
743 ExtendedCapabilities | |
744 MgtReassocRequestHeader::GetExtendedCapabilities (void) const | |
745 { | |
746 return m_extendedCapability; | |
747 } | |
748 | |
749 void | |
750 MgtReassocRequestHeader::SetHtCapabilities (HtCapabilities htcapabilities) | |
751 { | |
752 m_htCapability = htcapabilities; | |
753 } | |
754 | |
755 HtCapabilities | |
756 MgtReassocRequestHeader::GetHtCapabilities (void) const | |
757 { | |
758 return m_htCapability; | |
759 } | |
760 | |
761 void | |
762 MgtReassocRequestHeader::SetVhtCapabilities (VhtCapabilities vhtcapabilities) | |
763 { | |
764 m_vhtCapability = vhtcapabilities; | |
765 } | |
766 | |
767 VhtCapabilities | |
768 MgtReassocRequestHeader::GetVhtCapabilities (void) const | |
769 { | |
770 return m_vhtCapability; | |
771 } | |
772 | |
773 void | |
774 MgtReassocRequestHeader::SetHeCapabilities (HeCapabilities hecapabilities) | |
775 { | |
776 m_heCapability = hecapabilities; | |
777 } | |
778 | |
779 HeCapabilities | |
780 MgtReassocRequestHeader::GetHeCapabilities (void) const | |
781 { | |
782 return m_heCapability; | |
783 } | |
784 | |
785 Ssid | |
786 MgtReassocRequestHeader::GetSsid (void) const | |
787 { | |
788 return m_ssid; | |
789 } | |
790 | |
791 SupportedRates | |
792 MgtReassocRequestHeader::GetSupportedRates (void) const | |
793 { | |
794 return m_rates; | |
795 } | |
796 | |
797 uint16_t | |
798 MgtReassocRequestHeader::GetListenInterval (void) const | |
799 { | |
800 return m_listenInterval; | |
801 } | |
802 | |
803 void | |
804 MgtReassocRequestHeader::SetCurrentApAddress (Mac48Address currentApAddr) | |
805 { | |
806 m_currentApAddr = currentApAddr; | |
807 } | |
808 | |
809 TypeId | |
810 MgtReassocRequestHeader::GetTypeId (void) | |
811 { | |
812 static TypeId tid = TypeId ("ns3::MgtReassocRequestHeader") | |
813 .SetParent<Header> () | |
814 .SetGroupName ("Wifi") | |
815 .AddConstructor<MgtReassocRequestHeader> () | |
816 ; | |
817 return tid; | |
818 } | |
819 | |
820 TypeId | |
821 MgtReassocRequestHeader::GetInstanceTypeId (void) const | |
822 { | |
823 return GetTypeId (); | |
824 } | |
825 | |
826 uint32_t | |
827 MgtReassocRequestHeader::GetSerializedSize (void) const | |
828 { | |
829 uint32_t size = 0; | |
830 size += m_capability.GetSerializedSize (); | |
831 size += 2; //listen interval | |
832 size += 6; //current AP address | |
833 size += m_ssid.GetSerializedSize (); | |
834 size += m_rates.GetSerializedSize (); | |
835 size += m_rates.extended.GetSerializedSize (); | |
836 size += m_extendedCapability.GetSerializedSize (); | |
837 size += m_htCapability.GetSerializedSize (); | |
838 size += m_vhtCapability.GetSerializedSize (); | |
839 size += m_heCapability.GetSerializedSize (); | |
840 return size; | |
841 } | |
842 | |
843 void | |
844 MgtReassocRequestHeader::Print (std::ostream &os) const | |
845 { | |
846 os << "current AP address=" << m_currentApAddr << ", " | |
847 << "ssid=" << m_ssid << ", " | |
848 << "rates=" << m_rates << ", " | |
849 << "Extended Capabilities=" << m_extendedCapability << " , " | |
850 << "HT Capabilities=" << m_htCapability << " , " | |
851 << "VHT Capabilities=" << m_vhtCapability << " , " | |
852 << "HE Capabilities=" << m_heCapability; | |
853 } | |
854 | |
855 void | |
856 MgtReassocRequestHeader::Serialize (Buffer::Iterator start) const | |
857 { | |
858 Buffer::Iterator i = start; | |
859 i = m_capability.Serialize (i); | |
860 i.WriteHtolsbU16 (m_listenInterval); | |
861 WriteTo (i, m_currentApAddr); | |
862 i = m_ssid.Serialize (i); | |
863 i = m_rates.Serialize (i); | |
864 i = m_rates.extended.Serialize (i); | |
865 i = m_extendedCapability.Serialize (i); | |
866 i = m_htCapability.Serialize (i); | |
867 i = m_vhtCapability.Serialize (i); | |
868 i = m_heCapability.Serialize (i); | |
869 } | |
870 | |
871 uint32_t | |
872 MgtReassocRequestHeader::Deserialize (Buffer::Iterator start) | |
873 { | |
874 Buffer::Iterator i = start; | |
875 i = m_capability.Deserialize (i); | |
876 m_listenInterval = i.ReadLsbtohU16 (); | |
877 ReadFrom (i, m_currentApAddr); | |
878 i = m_ssid.Deserialize (i); | |
879 i = m_rates.Deserialize (i); | |
880 i = m_rates.extended.DeserializeIfPresent (i); | |
881 i = m_extendedCapability.DeserializeIfPresent (i); | |
882 i = m_htCapability.DeserializeIfPresent (i); | |
883 i = m_vhtCapability.DeserializeIfPresent (i); | |
884 i = m_heCapability.DeserializeIfPresent (i); | |
885 return i.GetDistanceFrom (start); | |
886 } | |
887 | |
888 | |
889 /*********************************************************** | |
890 * Assoc/Reassoc Response | |
690 ***********************************************************/ | 891 ***********************************************************/ |
691 | 892 |
692 NS_OBJECT_ENSURE_REGISTERED (MgtAssocResponseHeader); | 893 NS_OBJECT_ENSURE_REGISTERED (MgtAssocResponseHeader); |
693 | 894 |
694 MgtAssocResponseHeader::MgtAssocResponseHeader () | 895 MgtAssocResponseHeader::MgtAssocResponseHeader () |
695 : m_aid (0) | 896 : m_aid (0) |
696 { | 897 { |
697 } | 898 } |
698 | 899 |
699 MgtAssocResponseHeader::~MgtAssocResponseHeader () | 900 MgtAssocResponseHeader::~MgtAssocResponseHeader () |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
882 return size; | 1083 return size; |
883 } | 1084 } |
884 | 1085 |
885 void | 1086 void |
886 MgtAssocResponseHeader::Print (std::ostream &os) const | 1087 MgtAssocResponseHeader::Print (std::ostream &os) const |
887 { | 1088 { |
888 os << "status code=" << m_code << ", " | 1089 os << "status code=" << m_code << ", " |
889 << "aid=" << m_aid << ", " | 1090 << "aid=" << m_aid << ", " |
890 << "rates=" << m_rates << ", " | 1091 << "rates=" << m_rates << ", " |
891 << "ERP information=" << m_erpInformation << ", " | 1092 << "ERP information=" << m_erpInformation << ", " |
1093 << "Extended Capabilities=" << m_extendedCapability << " , " | |
892 << "HT Capabilities=" << m_htCapability << " , " | 1094 << "HT Capabilities=" << m_htCapability << " , " |
893 << "HT Operation=" << m_htOperation << " , " | 1095 << "HT Operation=" << m_htOperation << " , " |
894 << "VHT Capabilities=" << m_vhtCapability << " , " | 1096 << "VHT Capabilities=" << m_vhtCapability << " , " |
895 << "VHT Operation=" << m_vhtOperation << " , " | 1097 << "VHT Operation=" << m_vhtOperation << " , " |
896 << "HE Capabilities=" << m_heCapability << " , " | 1098 << "HE Capabilities=" << m_heCapability << " , " |
897 << "HE Operation=" << m_heOperation; | 1099 << "HE Operation=" << m_heOperation; |
898 } | 1100 } |
899 | 1101 |
900 void | 1102 void |
901 MgtAssocResponseHeader::Serialize (Buffer::Iterator start) const | 1103 MgtAssocResponseHeader::Serialize (Buffer::Iterator start) const |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
947 } | 1149 } |
948 | 1150 |
949 WifiActionHeader::~WifiActionHeader () | 1151 WifiActionHeader::~WifiActionHeader () |
950 { | 1152 { |
951 } | 1153 } |
952 | 1154 |
953 void | 1155 void |
954 WifiActionHeader::SetAction (WifiActionHeader::CategoryValue type, | 1156 WifiActionHeader::SetAction (WifiActionHeader::CategoryValue type, |
955 WifiActionHeader::ActionValue action) | 1157 WifiActionHeader::ActionValue action) |
956 { | 1158 { |
957 m_category = static_cast<uint8_t>(type); | 1159 m_category = static_cast<uint8_t> (type); |
958 switch (type) | 1160 switch (type) |
959 { | 1161 { |
960 case BLOCK_ACK: | 1162 case BLOCK_ACK: |
961 { | 1163 { |
962 m_actionValue = static_cast<uint8_t>(action.blockAck); | 1164 m_actionValue = static_cast<uint8_t> (action.blockAck); |
963 break; | 1165 break; |
964 } | 1166 } |
965 case MESH: | 1167 case MESH: |
966 { | 1168 { |
967 m_actionValue = static_cast<uint8_t>(action.meshAction); | 1169 m_actionValue = static_cast<uint8_t> (action.meshAction); |
968 break; | 1170 break; |
969 } | 1171 } |
970 case MULTIHOP: | 1172 case MULTIHOP: |
971 { | 1173 { |
972 m_actionValue = static_cast<uint8_t>(action.multihopAction); | 1174 m_actionValue = static_cast<uint8_t> (action.multihopAction); |
973 break; | 1175 break; |
974 } | 1176 } |
975 case SELF_PROTECTED: | 1177 case SELF_PROTECTED: |
976 { | 1178 { |
977 m_actionValue = static_cast<uint8_t>(action.selfProtectedAction); | 1179 m_actionValue = static_cast<uint8_t> (action.selfProtectedAction); |
S. Deronne
2018/02/18 14:52:56
I also think only cast is the solution here
| |
978 break; | 1180 break; |
979 } | 1181 } |
980 case VENDOR_SPECIFIC_ACTION: | 1182 case VENDOR_SPECIFIC_ACTION: |
981 { | 1183 { |
982 break; | 1184 break; |
983 } | 1185 } |
984 } | 1186 } |
985 } | 1187 } |
986 | 1188 |
987 WifiActionHeader::CategoryValue | 1189 WifiActionHeader::CategoryValue |
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1244 | 1446 |
1245 TypeId | 1447 TypeId |
1246 MgtAddBaRequestHeader::GetInstanceTypeId (void) const | 1448 MgtAddBaRequestHeader::GetInstanceTypeId (void) const |
1247 { | 1449 { |
1248 return GetTypeId (); | 1450 return GetTypeId (); |
1249 } | 1451 } |
1250 | 1452 |
1251 void | 1453 void |
1252 MgtAddBaRequestHeader::Print (std::ostream &os) const | 1454 MgtAddBaRequestHeader::Print (std::ostream &os) const |
1253 { | 1455 { |
1254 NS_UNUSED(os); | |
1255 } | 1456 } |
1256 | 1457 |
1257 uint32_t | 1458 uint32_t |
1258 MgtAddBaRequestHeader::GetSerializedSize (void) const | 1459 MgtAddBaRequestHeader::GetSerializedSize (void) const |
1259 { | 1460 { |
1260 uint32_t size = 0; | 1461 uint32_t size = 0; |
1261 size += 1; //Dialog token | 1462 size += 1; //Dialog token |
1262 size += 2; //Block ack parameter set | 1463 size += 2; //Block ack parameter set |
1263 size += 2; //Block ack timeout value | 1464 size += 2; //Block ack timeout value |
1264 size += 2; //Starting sequence control | 1465 size += 2; //Starting sequence control |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1590 | 1791 |
1591 TypeId | 1792 TypeId |
1592 MgtDelBaHeader::GetInstanceTypeId (void) const | 1793 MgtDelBaHeader::GetInstanceTypeId (void) const |
1593 { | 1794 { |
1594 return GetTypeId (); | 1795 return GetTypeId (); |
1595 } | 1796 } |
1596 | 1797 |
1597 void | 1798 void |
1598 MgtDelBaHeader::Print (std::ostream &os) const | 1799 MgtDelBaHeader::Print (std::ostream &os) const |
1599 { | 1800 { |
1600 NS_UNUSED(os); | |
1601 } | 1801 } |
1602 | 1802 |
1603 uint32_t | 1803 uint32_t |
1604 MgtDelBaHeader::GetSerializedSize (void) const | 1804 MgtDelBaHeader::GetSerializedSize (void) const |
1605 { | 1805 { |
1606 uint32_t size = 0; | 1806 uint32_t size = 0; |
1607 size += 2; //DelBa parameter set | 1807 size += 2; //DelBa parameter set |
1608 size += 2; //Reason code | 1808 size += 2; //Reason code |
1609 return size; | 1809 return size; |
1610 } | 1810 } |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1669 } | 1869 } |
1670 | 1870 |
1671 void | 1871 void |
1672 MgtDelBaHeader::SetParameterSet (uint16_t params) | 1872 MgtDelBaHeader::SetParameterSet (uint16_t params) |
1673 { | 1873 { |
1674 m_initiator = (params >> 11) & 0x01; | 1874 m_initiator = (params >> 11) & 0x01; |
1675 m_tid = (params >> 12) & 0x0f; | 1875 m_tid = (params >> 12) & 0x0f; |
1676 } | 1876 } |
1677 | 1877 |
1678 } //namespace ns3 | 1878 } //namespace ns3 |
LEFT | RIGHT |