A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
extended-capabilities.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2017
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Authors: Sébastien Deronne <sebastien.deronne@gmail.com>
7 */
8
9#ifndef EXTENDED_CAPABILITIES_H
10#define EXTENDED_CAPABILITIES_H
11
13
14namespace ns3
15{
16
17/**
18 * \brief The Extended Capabilities Information Element
19 * \ingroup wifi
20 *
21 * This class knows how to serialise and deserialise the Extended Capabilities Information Element
22 */
24{
25 public:
27
28 // Implementations of pure virtual methods of WifiInformationElement
29 WifiInformationElementId ElementId() const override;
30 uint16_t GetInformationFieldSize() const override;
31 void SerializeInformationField(Buffer::Iterator start) const override;
32 uint16_t DeserializeInformationField(Buffer::Iterator start, uint16_t length) override;
33 void Print(std::ostream& os) const override;
34
35 /**
36 * Set the first byte in the Extended Capabilities information element.
37 *
38 * \param ctrl the first byte in the Extended Capabilities information element
39 */
40 void SetExtendedCapabilitiesByte1(uint8_t ctrl);
41 /**
42 * Set the second byte in the Extended Capabilities information element.
43 *
44 * \param ctrl the second byte in the Extended Capabilities information element
45 */
46 void SetExtendedCapabilitiesByte2(uint8_t ctrl);
47 /**
48 * Set the third byte in the Extended Capabilities information element.
49 *
50 * \param ctrl the third byte in the Extended Capabilities information element
51 */
52 void SetExtendedCapabilitiesByte3(uint8_t ctrl);
53 /**
54 * Set the fourth byte in the Extended Capabilities information element.
55 *
56 * \param ctrl the fourth byte in the Extended Capabilities information element
57 */
58 void SetExtendedCapabilitiesByte4(uint8_t ctrl);
59 /**
60 * Set the fifth byte in the Extended Capabilities information element.
61 *
62 * \param ctrl the fifth byte in the Extended Capabilities information element
63 */
64 void SetExtendedCapabilitiesByte5(uint8_t ctrl);
65 /**
66 * Set the sixth byte in the Extended Capabilities information element.
67 *
68 * \param ctrl the sixth byte in the Extended Capabilities information element
69 */
70 void SetExtendedCapabilitiesByte6(uint8_t ctrl);
71 /**
72 * Set the seventh byte in the Extended Capabilities information element.
73 *
74 * \param ctrl the seventh byte in the Extended Capabilities information element
75 */
76 void SetExtendedCapabilitiesByte7(uint8_t ctrl);
77 /**
78 * Set the eighth byte in the Extended Capabilities information element.
79 *
80 * \param ctrl the eighth byte in the Extended Capabilities information element
81 */
82 void SetExtendedCapabilitiesByte8(uint8_t ctrl);
83
84 /**
85 * Return the first byte in the Extended Capabilities information element.
86 *
87 * \return the first byte in the Extended Capabilities information element
88 */
89 uint8_t GetExtendedCapabilitiesByte1() const;
90 /**
91 * Return the second byte in the Extended Capabilities information element.
92 *
93 * \return the second byte in the Extended Capabilities information element
94 */
95 uint8_t GetExtendedCapabilitiesByte2() const;
96 /**
97 * Return the third byte in the Extended Capabilities information element.
98 *
99 * \return the third byte in the Extended Capabilities information element
100 */
101 uint8_t GetExtendedCapabilitiesByte3() const;
102 /**
103 * Return the fourth byte in the Extended Capabilities information element.
104 *
105 * \return the fourth byte in the Extended Capabilities information element
106 */
107 uint8_t GetExtendedCapabilitiesByte4() const;
108 /**
109 * Return the fifth byte in the Extended Capabilities information element.
110 *
111 * \return the fifth byte in the Extended Capabilities information element
112 */
113 uint8_t GetExtendedCapabilitiesByte5() const;
114 /**
115 * Return the sixth byte in the Extended Capabilities information element.
116 *
117 * \return the sixth byte in the Extended Capabilities information element
118 */
119 uint8_t GetExtendedCapabilitiesByte6() const;
120 /**
121 * Return the seventh byte in the Extended Capabilities information element.
122 *
123 * \return the seventh byte in the Extended Capabilities information element
124 */
125 uint8_t GetExtendedCapabilitiesByte7() const;
126 /**
127 * Return the eighth byte in the Extended Capabilities information element.
128 *
129 * \return the eighth byte in the Extended Capabilities information element
130 */
131 uint8_t GetExtendedCapabilitiesByte8() const;
132
133 private:
134 // fields if HT supported
135 uint8_t m_20_40_bssCoexistenceManagementSupport; ///< 20/40 BSS Coexistence Management Support
136 uint8_t m_extendedChannelSwitching; ///< Extended Channel Switching
137 uint8_t m_psmpCapability; ///< PSMP Capability
138 uint8_t m_spsmpSupport; ///< S-PSMP Support
139
140 uint8_t m_event; ///< Event
141 uint8_t m_diagnostics; ///< Diagnostics
142 uint8_t m_multicastDiagnostics; ///< Multicast Diagnostics
143 uint8_t m_locationTracking; ///< Location Tracking
144 uint8_t m_fms; ///< FMS
145 uint8_t m_proxyArpService; ///< Proxy ARP Service
146 uint8_t m_collocatedInterferenceReporting; ///< Collocated Interference Reporting
147 uint8_t m_civicLocation; ///< Civic Location
148 uint8_t m_geospatialLocation; ///< Geospatial Location
149
150 uint8_t m_tfs; ///< TFS
151 uint8_t m_wnmSleepMode; ///< WNM Sleep Mode
152 uint8_t m_timBroadcast; ///< TIM Broadcast
153 uint8_t m_bssTransition; ///< BSS Transition
154 uint8_t m_qosTrafficCapability; ///< QoS Traffic Capability
155 uint8_t m_acStationCount; ///< AC Station Count
156 uint8_t m_multipleBssid; ///< Multiple BSSID
157 uint8_t m_timingMeasurement; ///< Timing Measurement
158
159 uint8_t m_channelUsage; ///< Channel Usage
160 uint8_t m_ssidList; ///< SSID List
161 uint8_t m_dms; ///< DMS
162 uint8_t m_utcTsfOffset; ///< UTC TSF Offset
163 uint8_t m_tpuBufferStaSupport; ///< TPU Buffer STA Support
164 uint8_t m_tdlsPeerPsmSupport; ///< TDLS Peer PSM Support
165 uint8_t m_tdlsChannelSwitching; ///< TDLS Channel Switching
166 uint8_t m_interworking; ///< Interworking
167
168 uint8_t m_qosMap; ///< QoS Map
169 uint8_t m_ebr; ///< EBR
170 uint8_t m_sspnInterface; ///< SSPN Interface
171 uint8_t m_msgcfCapability; ///< MSGCF Capability
172 uint8_t m_tdlsSupport; ///< TDLS Support
173 uint8_t m_tdlsProhibited; ///< TDLS Prohibited
174 uint8_t m_tdlsChannelSwitchingProhibited; ///< TDLS Channel Switching Prohibited
175
176 uint8_t m_rejectUnadmittedFrame; ///< Reject Unadmitted Frame
177 uint8_t m_serviceIntervalGranularity; ///< Service Interval Granularity
178 uint8_t m_identifierLocation; ///< Identifier Location
179 uint8_t m_uapsdCoexistence; ///< U-APSD Coexistence
180 uint8_t m_wnmNotification; ///< WNM Notification
181 uint8_t m_qabCapability; ///< QAB Capability
182
183 uint8_t m_utf8Ssid; ///< UTF-8 SSID
184 uint8_t m_qmfActivated; ///< QMFActivated
185 uint8_t m_qmfReconfigurationActivated; ///< QMFReconfigurationActivated
186 uint8_t m_robustAvStreaming; ///< Robust AV Streaming
187 uint8_t m_advancedGcr; ///< Advanced GCR
188 uint8_t m_meshGcr; ///< Mesh GCR
189 uint8_t m_scs; ///< SCS
190 uint8_t m_qloadReport; ///< QLoad Report
191
192 uint8_t m_alternateEdca; ///< Alternate EDCA
193 uint8_t m_unprotectedTxopNegotiation; ///< Unprotected TXOP Negotiation
194 uint8_t m_protectedTxopNegotiation; ///< Protected TXOP Negotiation
195 uint8_t m_protectedQloadReport; ///< Protected QLoad Report
196 uint8_t m_tdlsWiderBandwidth; ///< TDLS Wider Bandwidth
197 uint8_t m_operatingModeNotification; ///< Operating Mode Notification
198 uint8_t m_maxNumberOfMsdusInAmsdu; ///< Max Number Of MSDUs In A-MSDU
199};
200
201} // namespace ns3
202
203#endif /* EXTENDED_CAPABILITIES_H */
iterator in a Buffer instance
Definition buffer.h:89
The Extended Capabilities Information Element.
uint8_t m_tdlsWiderBandwidth
TDLS Wider Bandwidth.
uint8_t GetExtendedCapabilitiesByte7() const
Return the seventh byte in the Extended Capabilities information element.
void SerializeInformationField(Buffer::Iterator start) const override
Serialize information (i.e., the body of the IE, not including the Element ID and length octets)
uint8_t GetExtendedCapabilitiesByte8() const
Return the eighth byte in the Extended Capabilities information element.
uint16_t DeserializeInformationField(Buffer::Iterator start, uint16_t length) override
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)
uint8_t m_wnmNotification
WNM Notification.
uint8_t GetExtendedCapabilitiesByte1() const
Return the first byte in the Extended Capabilities information element.
uint8_t m_utcTsfOffset
UTC TSF Offset.
uint8_t GetExtendedCapabilitiesByte3() const
Return the third byte in the Extended Capabilities information element.
uint8_t m_unprotectedTxopNegotiation
Unprotected TXOP Negotiation.
uint8_t m_identifierLocation
Identifier Location.
void SetExtendedCapabilitiesByte3(uint8_t ctrl)
Set the third byte in the Extended Capabilities information element.
uint8_t m_multicastDiagnostics
Multicast Diagnostics.
uint8_t m_alternateEdca
Alternate EDCA.
uint8_t m_qmfActivated
QMFActivated.
uint8_t m_operatingModeNotification
Operating Mode Notification.
uint8_t m_extendedChannelSwitching
Extended Channel Switching.
void SetExtendedCapabilitiesByte8(uint8_t ctrl)
Set the eighth byte in the Extended Capabilities information element.
uint8_t m_wnmSleepMode
WNM Sleep Mode.
uint16_t GetInformationFieldSize() const override
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
void SetExtendedCapabilitiesByte1(uint8_t ctrl)
Set the first byte in the Extended Capabilities information element.
uint8_t m_proxyArpService
Proxy ARP Service.
uint8_t m_acStationCount
AC Station Count.
uint8_t m_msgcfCapability
MSGCF Capability.
uint8_t m_geospatialLocation
Geospatial Location.
uint8_t m_serviceIntervalGranularity
Service Interval Granularity.
void SetExtendedCapabilitiesByte2(uint8_t ctrl)
Set the second byte in the Extended Capabilities information element.
uint8_t m_qosTrafficCapability
QoS Traffic Capability.
WifiInformationElementId ElementId() const override
Get the wifi information element ID.
uint8_t m_timingMeasurement
Timing Measurement.
uint8_t m_tdlsProhibited
TDLS Prohibited.
uint8_t m_channelUsage
Channel Usage.
uint8_t GetExtendedCapabilitiesByte4() const
Return the fourth byte in the Extended Capabilities information element.
uint8_t m_qloadReport
QLoad Report.
uint8_t m_bssTransition
BSS Transition.
uint8_t m_multipleBssid
Multiple BSSID.
uint8_t m_tdlsPeerPsmSupport
TDLS Peer PSM Support.
uint8_t m_interworking
Interworking.
uint8_t m_tdlsChannelSwitching
TDLS Channel Switching.
uint8_t m_timBroadcast
TIM Broadcast.
uint8_t m_protectedQloadReport
Protected QLoad Report.
uint8_t GetExtendedCapabilitiesByte5() const
Return the fifth byte in the Extended Capabilities information element.
void SetExtendedCapabilitiesByte6(uint8_t ctrl)
Set the sixth byte in the Extended Capabilities information element.
uint8_t m_tdlsChannelSwitchingProhibited
TDLS Channel Switching Prohibited.
uint8_t m_advancedGcr
Advanced GCR.
uint8_t m_locationTracking
Location Tracking.
void SetExtendedCapabilitiesByte4(uint8_t ctrl)
Set the fourth byte in the Extended Capabilities information element.
uint8_t GetExtendedCapabilitiesByte6() const
Return the sixth byte in the Extended Capabilities information element.
void SetExtendedCapabilitiesByte7(uint8_t ctrl)
Set the seventh byte in the Extended Capabilities information element.
uint8_t m_tdlsSupport
TDLS Support.
uint8_t m_psmpCapability
PSMP Capability.
uint8_t GetExtendedCapabilitiesByte2() const
Return the second byte in the Extended Capabilities information element.
uint8_t m_tpuBufferStaSupport
TPU Buffer STA Support.
uint8_t m_qmfReconfigurationActivated
QMFReconfigurationActivated.
uint8_t m_qabCapability
QAB Capability.
void SetExtendedCapabilitiesByte5(uint8_t ctrl)
Set the fifth byte in the Extended Capabilities information element.
void Print(std::ostream &os) const override
Generate human-readable form of IE.
uint8_t m_protectedTxopNegotiation
Protected TXOP Negotiation.
uint8_t m_rejectUnadmittedFrame
Reject Unadmitted Frame.
uint8_t m_sspnInterface
SSPN Interface.
uint8_t m_robustAvStreaming
Robust AV Streaming.
uint8_t m_spsmpSupport
S-PSMP Support.
uint8_t m_collocatedInterferenceReporting
Collocated Interference Reporting.
uint8_t m_maxNumberOfMsdusInAmsdu
Max Number Of MSDUs In A-MSDU.
uint8_t m_20_40_bssCoexistenceManagementSupport
20/40 BSS Coexistence Management Support
uint8_t m_civicLocation
Civic Location.
uint8_t m_uapsdCoexistence
U-APSD Coexistence.
Information element, as defined in 802.11-2007 standard.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.