The IEEE 802.11ac VHT Capabilities. More...
#include "vht-capabilities.h"
Public Member Functions | |
VhtCapabilities () | |
WifiInformationElementId | ElementId () const override |
Get the wifi information element ID. | |
uint32_t | GetMaxAmpduLength () const |
Return the maximum A-MPDU length. | |
uint16_t | GetMaxMpduLength () const |
Get the maximum MPDU length. | |
uint16_t | GetRxHighestSupportedLgiDataRate () const |
Get the receive highest supported LGI data rate. | |
uint8_t | GetRxLdpc () const |
Get the receive LDPC. | |
uint8_t | GetRxStbc () const |
Get the receive STBC. | |
uint8_t | GetSupportedChannelWidthSet () const |
Get the supported channel width set. | |
uint64_t | GetSupportedMcsAndNssSet () const |
Return the MCS and NSS field in the VHT Capabilities information element. | |
uint8_t | GetTxStbc () const |
Get the transmit STBC. | |
uint32_t | GetVhtCapabilitiesInfo () const |
Return the VHT Capabilities Info field in the VHT Capabilities information element. | |
bool | IsSupportedMcs (uint8_t mcs, uint8_t nss) const |
Get the is MCS supported. | |
bool | IsSupportedRxMcs (uint8_t mcs) const |
Returns true if receive MCS is supported. | |
bool | IsSupportedTxMcs (uint8_t mcs) const |
Returns true if transmit MCS is supported. | |
void | Print (std::ostream &os) const override |
Generate human-readable form of IE. | |
void | SetMaxAmpduLength (uint32_t maxAmpduLength) |
Set the maximum AMPDU length. | |
void | SetMaxMpduLength (uint16_t length) |
Set the maximum MPDU length. | |
void | SetRxHighestSupportedLgiDataRate (uint16_t supportedDatarate) |
Set the receive highest supported LGI data rate. | |
void | SetRxLdpc (uint8_t rxLdpc) |
Set the receive LDPC. | |
void | SetRxMcsMap (uint8_t mcs, uint8_t nss) |
void | SetRxStbc (uint8_t rxStbc) |
Set the receive STBC. | |
void | SetShortGuardIntervalFor160Mhz (uint8_t shortGuardInterval) |
Set the short guard interval 160 MHz. | |
void | SetShortGuardIntervalFor80Mhz (uint8_t shortGuardInterval) |
Set the short guard interval 80 MHz. | |
void | SetSupportedChannelWidthSet (uint8_t channelWidthSet) |
Set the supported channel width set. | |
void | SetSupportedMcsAndNssSet (uint64_t ctrl) |
Set the MCS and NSS field in the VHT Capabilities information element. | |
void | SetTxHighestSupportedLgiDataRate (uint16_t supportedDatarate) |
Set the transmit highest supported LGI data rate. | |
void | SetTxMcsMap (uint8_t mcs, uint8_t nss) |
void | SetTxStbc (uint8_t txStbc) |
Set the transmit STBC. | |
void | SetVhtCapabilitiesInfo (uint32_t ctrl) |
Set the VHT Capabilities Info field in the VHT Capabilities information element. | |
Public Member Functions inherited from ns3::WifiInformationElement | |
virtual | ~WifiInformationElement () |
Buffer::Iterator | Deserialize (Buffer::Iterator i) |
Deserialize entire IE (which may possibly be fragmented into multiple elements), which must be present. | |
Buffer::Iterator | DeserializeIfPresent (Buffer::Iterator i) |
Deserialize entire IE (which may possibly be fragmented into multiple elements) if it is present. | |
virtual WifiInformationElementId | ElementId () const =0 |
Get the wifi information element ID. | |
virtual WifiInformationElementId | ElementIdExt () const |
Get the wifi information element ID extension. | |
uint16_t | GetSerializedSize () const |
Get the size of the serialized IE including Element ID and length fields (for every element this IE is possibly fragmented into). | |
virtual bool | operator== (const WifiInformationElement &a) const |
Compare two IEs for equality by ID & Length, and then through memcmp of serialised version. | |
virtual void | Print (std::ostream &os) const |
Generate human-readable form of IE. | |
Buffer::Iterator | Serialize (Buffer::Iterator i) const |
Serialize entire IE including Element ID and length fields. | |
Public Member Functions inherited from ns3::SimpleRefCount< WifiInformationElement > | |
SimpleRefCount () | |
Default constructor. | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. | |
void | Ref () const |
Increment the reference count. | |
void | Unref () const |
Decrement the reference count. | |
Private Member Functions | |
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) | |
uint16_t | GetInformationFieldSize () const override |
Length of serialized information (i.e., the length of the body of the IE, not including the Element ID and length octets. | |
void | SerializeInformationField (Buffer::Iterator start) const override |
Serialize information (i.e., the body of the IE, not including the Element ID and length octets) | |
Private Attributes | |
uint8_t | m_beamformeeStsCapable |
beamformee STS capable | |
uint8_t | m_htcVhtCapable |
HTC VHT capable. | |
uint8_t | m_maxAmpduLengthExponent |
maximum A-MPDU length exponent | |
uint8_t | m_maxMpduLength |
maximum MPDU length | |
uint8_t | m_muBeamformeeCapable |
MU beamformee capable. | |
uint8_t | m_muBeamformerCapable |
MU beamformer capable. | |
uint8_t | m_numberOfSoundingDimensions |
number of sounding dimensions | |
uint8_t | m_rxAntennaPatternConsistency |
receive antenna pattern consistency | |
uint16_t | m_rxHighestSupportedLongGuardIntervalDataRate |
receive highest supported long guard interval data rate | |
uint8_t | m_rxLdpc |
receive LDPC | |
std::vector< uint8_t > | m_rxMcsMap |
receive MCS map | |
uint8_t | m_rxStbc |
receive STBC | |
uint8_t | m_shortGuardIntervalFor160Mhz |
short guard interval for 160 MHz | |
uint8_t | m_shortGuardIntervalFor80Mhz |
short guard interval for 80 MHz | |
uint8_t | m_suBeamformeeCapable |
SU beamformee capable. | |
uint8_t | m_suBeamformerCapable |
SU beamformer capable. | |
uint8_t | m_supportedChannelWidthSet |
supported channel width set | |
uint8_t | m_txAntennaPatternConsistency |
transmit antenna pattern consistency | |
uint16_t | m_txHighestSupportedLongGuardIntervalDataRate |
transmit highest supported long guard interval data rate | |
std::vector< uint8_t > | m_txMcsMap |
transmit MCS map | |
uint8_t | m_txStbc |
transmit STBC | |
uint8_t | m_vhtLinkAdaptationCapable |
VHT link adaptation capable. | |
uint8_t | m_vhtTxopPs |
VHT TXOP PS. | |
The IEEE 802.11ac VHT Capabilities.
Definition at line 34 of file vht-capabilities.h.
ns3::VhtCapabilities::VhtCapabilities | ( | ) |
Definition at line 26 of file vht-capabilities.cc.
References m_rxMcsMap, and m_txMcsMap.
|
overrideprivatevirtual |
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)
start | an iterator which points to where the information should be written. |
length | the expected number of bytes to read |
Implements ns3::WifiInformationElement.
Definition at line 87 of file vht-capabilities.cc.
References ns3::Buffer::Iterator::ReadLsbtohU32(), ns3::Buffer::Iterator::ReadLsbtohU64(), SetSupportedMcsAndNssSet(), and SetVhtCapabilitiesInfo().
|
overridevirtual |
Get the wifi information element ID.
Implements ns3::WifiInformationElement.
Definition at line 61 of file vht-capabilities.cc.
References IE_VHT_CAPABILITIES.
|
overrideprivatevirtual |
Length of serialized information (i.e., the length of the body of the IE, not including the Element ID and length octets.
This is the value that will appear in the second octet of the entire IE - the length field - if the IE is not fragmented)
Implements ns3::WifiInformationElement.
Definition at line 73 of file vht-capabilities.cc.
uint32_t ns3::VhtCapabilities::GetMaxAmpduLength | ( | ) | const |
Return the maximum A-MPDU length.
Definition at line 363 of file vht-capabilities.cc.
References m_maxAmpduLengthExponent.
uint16_t ns3::VhtCapabilities::GetMaxMpduLength | ( | ) | const |
Get the maximum MPDU length.
Definition at line 321 of file vht-capabilities.cc.
References m_maxMpduLength, and NS_ABORT_MSG.
uint16_t ns3::VhtCapabilities::GetRxHighestSupportedLgiDataRate | ( | ) | const |
Get the receive highest supported LGI data rate.
Definition at line 388 of file vht-capabilities.cc.
References m_rxHighestSupportedLongGuardIntervalDataRate.
uint8_t ns3::VhtCapabilities::GetRxLdpc | ( | ) | const |
Get the receive LDPC.
Definition at line 345 of file vht-capabilities.cc.
References m_rxLdpc.
uint8_t ns3::VhtCapabilities::GetRxStbc | ( | ) | const |
Get the receive STBC.
Definition at line 351 of file vht-capabilities.cc.
References m_rxStbc.
uint8_t ns3::VhtCapabilities::GetSupportedChannelWidthSet | ( | ) | const |
Get the supported channel width set.
Definition at line 339 of file vht-capabilities.cc.
References m_supportedChannelWidthSet.
Referenced by ns3::WifiRemoteStationManager::AddStationVhtCapabilities().
uint64_t ns3::VhtCapabilities::GetSupportedMcsAndNssSet | ( | ) | const |
Return the MCS and NSS field in the VHT Capabilities information element.
Definition at line 166 of file vht-capabilities.cc.
References m_rxHighestSupportedLongGuardIntervalDataRate, m_rxMcsMap, m_txHighestSupportedLongGuardIntervalDataRate, and m_txMcsMap.
Referenced by Print(), and SerializeInformationField().
uint8_t ns3::VhtCapabilities::GetTxStbc | ( | ) | const |
Get the transmit STBC.
Definition at line 357 of file vht-capabilities.cc.
References m_txStbc.
uint32_t ns3::VhtCapabilities::GetVhtCapabilitiesInfo | ( | ) | const |
Return the VHT Capabilities Info field in the VHT Capabilities information element.
Definition at line 122 of file vht-capabilities.cc.
References m_beamformeeStsCapable, m_htcVhtCapable, m_maxAmpduLengthExponent, m_maxMpduLength, m_muBeamformeeCapable, m_muBeamformerCapable, m_numberOfSoundingDimensions, m_rxAntennaPatternConsistency, m_rxLdpc, m_rxStbc, m_shortGuardIntervalFor160Mhz, m_shortGuardIntervalFor80Mhz, m_suBeamformeeCapable, m_suBeamformerCapable, m_supportedChannelWidthSet, m_txAntennaPatternConsistency, m_txStbc, m_vhtLinkAdaptationCapable, and m_vhtTxopPs.
Referenced by Print(), and SerializeInformationField().
bool ns3::VhtCapabilities::IsSupportedMcs | ( | uint8_t | mcs, |
uint8_t | nss | ||
) | const |
Get the is MCS supported.
mcs | the MCS |
nss | the NSS |
Definition at line 369 of file vht-capabilities.cc.
References m_rxMcsMap.
Referenced by ns3::WifiRemoteStationManager::AddStationVhtCapabilities().
bool ns3::VhtCapabilities::IsSupportedRxMcs | ( | uint8_t | mcs | ) | const |
Returns true if receive MCS is supported.
mcs | the MCS |
Definition at line 290 of file vht-capabilities.cc.
References m_rxMcsMap, and NS_ASSERT.
bool ns3::VhtCapabilities::IsSupportedTxMcs | ( | uint8_t | mcs | ) | const |
Returns true if transmit MCS is supported.
mcs | the MCS |
Definition at line 271 of file vht-capabilities.cc.
References m_txMcsMap, and NS_ASSERT.
|
overridevirtual |
Generate human-readable form of IE.
os | output stream |
Reimplemented from ns3::WifiInformationElement.
Definition at line 67 of file vht-capabilities.cc.
References GetSupportedMcsAndNssSet(), and GetVhtCapabilitiesInfo().
|
overrideprivatevirtual |
Serialize information (i.e., the body of the IE, not including the Element ID and length octets)
start | an iterator which points to where the information should be written. |
Implements ns3::WifiInformationElement.
Definition at line 79 of file vht-capabilities.cc.
References GetSupportedMcsAndNssSet(), and GetVhtCapabilitiesInfo().
void ns3::VhtCapabilities::SetMaxAmpduLength | ( | uint32_t | maxAmpduLength | ) |
Set the maximum AMPDU length.
maxAmpduLength | 2^(13 + x) - 1, x in the range 0 to 7 |
Definition at line 241 of file vht-capabilities.cc.
References m_maxAmpduLengthExponent, and NS_ABORT_MSG.
Referenced by ns3::WifiMac::GetVhtCapabilities().
void ns3::VhtCapabilities::SetMaxMpduLength | ( | uint16_t | length | ) |
Set the maximum MPDU length.
length | the maximum MPDU length (3895, 7991 or 11454) |
Definition at line 186 of file vht-capabilities.cc.
References m_maxMpduLength, and NS_ABORT_MSG_IF.
Referenced by ns3::WifiMac::GetVhtCapabilities().
void ns3::VhtCapabilities::SetRxHighestSupportedLgiDataRate | ( | uint16_t | supportedDatarate | ) |
Set the receive highest supported LGI data rate.
supportedDatarate | receive highest supported LGI data rate |
Definition at line 309 of file vht-capabilities.cc.
References m_rxHighestSupportedLongGuardIntervalDataRate.
Referenced by ns3::WifiMac::GetVhtCapabilities().
void ns3::VhtCapabilities::SetRxLdpc | ( | uint8_t | rxLdpc | ) |
Set the receive LDPC.
rxLdpc | the receive LDPC |
Definition at line 211 of file vht-capabilities.cc.
References m_rxLdpc.
Referenced by ns3::WifiMac::GetVhtCapabilities().
void ns3::VhtCapabilities::SetRxMcsMap | ( | uint8_t | mcs, |
uint8_t | nss | ||
) |
mcs | Max MCS value (between 7 and 9) |
nss | Spatial stream for which the Max MCS value is being set |
Definition at line 255 of file vht-capabilities.cc.
References m_rxMcsMap, and NS_ASSERT.
Referenced by ns3::WifiMac::GetVhtCapabilities().
void ns3::VhtCapabilities::SetRxStbc | ( | uint8_t | rxStbc | ) |
Set the receive STBC.
rxStbc | the receive STBC |
Definition at line 229 of file vht-capabilities.cc.
References m_rxStbc.
Referenced by ns3::WifiMac::GetVhtCapabilities().
void ns3::VhtCapabilities::SetShortGuardIntervalFor160Mhz | ( | uint8_t | shortGuardInterval | ) |
Set the short guard interval 160 MHz.
shortGuardInterval | the short guard interval 160 MHz |
Definition at line 223 of file vht-capabilities.cc.
References m_shortGuardIntervalFor160Mhz.
Referenced by ns3::WifiMac::GetVhtCapabilities().
void ns3::VhtCapabilities::SetShortGuardIntervalFor80Mhz | ( | uint8_t | shortGuardInterval | ) |
Set the short guard interval 80 MHz.
shortGuardInterval | the short guard interval 80 MHz |
Definition at line 217 of file vht-capabilities.cc.
References m_shortGuardIntervalFor80Mhz.
Referenced by ns3::WifiMac::GetVhtCapabilities().
void ns3::VhtCapabilities::SetSupportedChannelWidthSet | ( | uint8_t | channelWidthSet | ) |
Set the supported channel width set.
channelWidthSet | the supported channel width set |
Definition at line 205 of file vht-capabilities.cc.
References m_supportedChannelWidthSet.
Referenced by ns3::WifiMac::GetVhtCapabilities().
void ns3::VhtCapabilities::SetSupportedMcsAndNssSet | ( | uint64_t | ctrl | ) |
Set the MCS and NSS field in the VHT Capabilities information element.
ctrl | the MCS and NSS field in the VHT Capabilities information element |
Definition at line 148 of file vht-capabilities.cc.
References m_rxHighestSupportedLongGuardIntervalDataRate, m_rxMcsMap, m_txHighestSupportedLongGuardIntervalDataRate, and m_txMcsMap.
Referenced by DeserializeInformationField().
void ns3::VhtCapabilities::SetTxHighestSupportedLgiDataRate | ( | uint16_t | supportedDatarate | ) |
Set the transmit highest supported LGI data rate.
supportedDatarate | transmit highest supported LGI data rate |
Definition at line 315 of file vht-capabilities.cc.
References m_txHighestSupportedLongGuardIntervalDataRate.
Referenced by ns3::WifiMac::GetVhtCapabilities().
void ns3::VhtCapabilities::SetTxMcsMap | ( | uint8_t | mcs, |
uint8_t | nss | ||
) |
mcs | Max MCS value (between 7 and 9) |
nss | Spatial stream for which the Max MCS value is being set |
Definition at line 263 of file vht-capabilities.cc.
References m_txMcsMap, and NS_ASSERT.
Referenced by ns3::WifiMac::GetVhtCapabilities().
void ns3::VhtCapabilities::SetTxStbc | ( | uint8_t | txStbc | ) |
Set the transmit STBC.
txStbc | the receive STBC |
Definition at line 235 of file vht-capabilities.cc.
References m_txStbc.
Referenced by ns3::WifiMac::GetVhtCapabilities().
void ns3::VhtCapabilities::SetVhtCapabilitiesInfo | ( | uint32_t | ctrl | ) |
Set the VHT Capabilities Info field in the VHT Capabilities information element.
ctrl | the VHT Capabilities Info field in the VHT Capabilities information element |
Definition at line 98 of file vht-capabilities.cc.
References m_beamformeeStsCapable, m_htcVhtCapable, m_maxAmpduLengthExponent, m_maxMpduLength, m_muBeamformeeCapable, m_muBeamformerCapable, m_numberOfSoundingDimensions, m_rxAntennaPatternConsistency, m_rxLdpc, m_rxStbc, m_shortGuardIntervalFor160Mhz, m_shortGuardIntervalFor80Mhz, m_suBeamformeeCapable, m_suBeamformerCapable, m_supportedChannelWidthSet, m_txAntennaPatternConsistency, m_txStbc, m_vhtLinkAdaptationCapable, and m_vhtTxopPs.
Referenced by DeserializeInformationField().
|
private |
beamformee STS capable
Definition at line 225 of file vht-capabilities.h.
Referenced by GetVhtCapabilitiesInfo(), and SetVhtCapabilitiesInfo().
|
private |
HTC VHT capable.
Definition at line 230 of file vht-capabilities.h.
Referenced by GetVhtCapabilitiesInfo(), and SetVhtCapabilitiesInfo().
|
private |
maximum A-MPDU length exponent
Definition at line 231 of file vht-capabilities.h.
Referenced by GetMaxAmpduLength(), GetVhtCapabilitiesInfo(), SetMaxAmpduLength(), and SetVhtCapabilitiesInfo().
|
private |
maximum MPDU length
Definition at line 216 of file vht-capabilities.h.
Referenced by GetMaxMpduLength(), GetVhtCapabilitiesInfo(), SetMaxMpduLength(), and SetVhtCapabilitiesInfo().
|
private |
MU beamformee capable.
Definition at line 228 of file vht-capabilities.h.
Referenced by GetVhtCapabilitiesInfo(), and SetVhtCapabilitiesInfo().
|
private |
MU beamformer capable.
Definition at line 227 of file vht-capabilities.h.
Referenced by GetVhtCapabilitiesInfo(), and SetVhtCapabilitiesInfo().
|
private |
number of sounding dimensions
Definition at line 226 of file vht-capabilities.h.
Referenced by GetVhtCapabilitiesInfo(), and SetVhtCapabilitiesInfo().
|
private |
receive antenna pattern consistency
Definition at line 233 of file vht-capabilities.h.
Referenced by GetVhtCapabilitiesInfo(), and SetVhtCapabilitiesInfo().
|
private |
receive highest supported long guard interval data rate
Definition at line 238 of file vht-capabilities.h.
Referenced by GetRxHighestSupportedLgiDataRate(), GetSupportedMcsAndNssSet(), SetRxHighestSupportedLgiDataRate(), and SetSupportedMcsAndNssSet().
|
private |
receive LDPC
Definition at line 218 of file vht-capabilities.h.
Referenced by GetRxLdpc(), GetVhtCapabilitiesInfo(), SetRxLdpc(), and SetVhtCapabilitiesInfo().
|
private |
receive MCS map
Definition at line 237 of file vht-capabilities.h.
Referenced by VhtCapabilities(), GetSupportedMcsAndNssSet(), IsSupportedMcs(), IsSupportedRxMcs(), SetRxMcsMap(), and SetSupportedMcsAndNssSet().
|
private |
receive STBC
Definition at line 222 of file vht-capabilities.h.
Referenced by GetRxStbc(), GetVhtCapabilitiesInfo(), SetRxStbc(), and SetVhtCapabilitiesInfo().
|
private |
short guard interval for 160 MHz
Definition at line 220 of file vht-capabilities.h.
Referenced by GetVhtCapabilitiesInfo(), SetShortGuardIntervalFor160Mhz(), and SetVhtCapabilitiesInfo().
|
private |
short guard interval for 80 MHz
Definition at line 219 of file vht-capabilities.h.
Referenced by GetVhtCapabilitiesInfo(), SetShortGuardIntervalFor80Mhz(), and SetVhtCapabilitiesInfo().
|
private |
SU beamformee capable.
Definition at line 224 of file vht-capabilities.h.
Referenced by GetVhtCapabilitiesInfo(), and SetVhtCapabilitiesInfo().
|
private |
SU beamformer capable.
Definition at line 223 of file vht-capabilities.h.
Referenced by GetVhtCapabilitiesInfo(), and SetVhtCapabilitiesInfo().
|
private |
supported channel width set
Definition at line 217 of file vht-capabilities.h.
Referenced by GetSupportedChannelWidthSet(), GetVhtCapabilitiesInfo(), SetSupportedChannelWidthSet(), and SetVhtCapabilitiesInfo().
|
private |
transmit antenna pattern consistency
Definition at line 234 of file vht-capabilities.h.
Referenced by GetVhtCapabilitiesInfo(), and SetVhtCapabilitiesInfo().
|
private |
transmit highest supported long guard interval data rate
Definition at line 241 of file vht-capabilities.h.
Referenced by GetSupportedMcsAndNssSet(), SetSupportedMcsAndNssSet(), and SetTxHighestSupportedLgiDataRate().
|
private |
transmit MCS map
Definition at line 240 of file vht-capabilities.h.
Referenced by VhtCapabilities(), GetSupportedMcsAndNssSet(), IsSupportedTxMcs(), SetSupportedMcsAndNssSet(), and SetTxMcsMap().
|
private |
transmit STBC
Definition at line 221 of file vht-capabilities.h.
Referenced by GetTxStbc(), GetVhtCapabilitiesInfo(), SetTxStbc(), and SetVhtCapabilitiesInfo().
|
private |
VHT link adaptation capable.
Definition at line 232 of file vht-capabilities.h.
Referenced by GetVhtCapabilitiesInfo(), and SetVhtCapabilitiesInfo().
|
private |
VHT TXOP PS.
Definition at line 229 of file vht-capabilities.h.
Referenced by GetVhtCapabilitiesInfo(), and SetVhtCapabilitiesInfo().