23 #include "ns3/assert.h"
32 m_supportedChannelWidth (0),
35 m_shortGuardInterval20 (0),
36 m_shortGuardInterval40 (0),
39 m_htDelayedBlockAck (0),
43 m_fortyMhzIntolerant (0),
44 m_lsigProtectionSupport (0),
46 m_minMpduStartSpace (0),
48 m_reservedMcsSet1 (0),
49 m_rxHighestSupportedDataRate (0),
50 m_reservedMcsSet2 (0),
51 m_txMcsSetDefined (0),
52 m_txRxMcsSetUnequal (0),
53 m_txMaxNSpatialStreams (0),
54 m_txUnequalModulation (0),
55 m_reservedMcsSet3 (0),
57 m_pcoTransitionTime (0),
58 m_reservedExtendedCapabilities (0),
61 m_reverzeDirectionResponder (0),
62 m_reservedExtendedCapabilities2 (0),
63 m_implicitRxBfCapable (0),
64 m_rxStaggeredSoundingCapable (0),
65 m_txStaggeredSoundingCapable (0),
68 m_implicitTxBfCapable (0),
70 m_explicitCsiTxBfCapable (0),
71 m_explicitNoncompressedSteeringCapable (0),
72 m_explicitCompressedSteeringCapable (0),
73 m_explicitTxBfCsiFeedback (0),
74 m_explicitNoncompressedBfFeedbackCapable (0),
75 m_explicitCompressedBfFeedbackCapable (0),
76 m_minimalGrouping (0),
77 m_csiNBfAntennasSupported (0),
78 m_noncompressedSteeringNBfAntennasSupported (0),
79 m_compressedSteeringNBfAntennasSupported (0),
80 m_csiMaxNRowsBfSupported (0),
81 m_channelEstimationCapability (0),
83 m_antennaSelectionCapability (0),
84 m_explicitCsiFeedbackBasedTxASelCapable (0),
85 m_antennaIndicesFeedbackBasedTxASelCapable (0),
86 m_explicitCsiFeedbackCapable (0),
87 m_antennaIndicesFeedbackCapable (0),
89 m_txSoundingPpdusCapable (0),
264 for (uint8_t nRx = 2; nRx <= 4; nRx++)
266 for (uint8_t mcs = (nRx - 1) * 8; mcs <= ((7 * nRx) + (nRx - 1)); mcs++)
397 for (uint64_t i = 0; i < 77; i++)
422 for (uint64_t i = 63; i > 0; i--)
443 for (uint64_t i = 13; i > 0; i--)
578 uint8_t ampduparam = i.
ReadU8 ();
581 uint16_t extendedcapabilities = i.
ReadU16 ();
582 uint32_t txbfcapabilities = i.
ReadU32 ();
583 uint8_t aselcapabilities = i.
ReadU8 ();
598 os << bool (htcapabilities.
GetLdpc ())
609 is >> c1 >> c2 >> c3 >> c4;
uint8_t GetMaxAmsduLength(void) const
uint8_t m_rxMcsBitmask[MAX_SUPPORTED_MCS]
std::istream & operator>>(std::istream &is, Angles &a)
initialize a struct Angles from input
void SetTxMcsSetDefined(uint8_t txmcssetdefined)
uint8_t GetTxRxMcsSetUnequal(void) const
uint8_t m_rxStaggeredSoundingCapable
uint32_t m_reservedMcsSet3
uint8_t GetLSigProtectionSupport(void) const
void SetGreenfield(uint8_t greenfield)
void SetTxBfCapabilities(uint32_t ctrl)
Set the Transmit Beamforming (TxBF) Capabilties field in the HT Capabilities information element...
uint8_t m_explicitNoncompressedSteeringCapable
uint8_t m_supportedChannelWidth
#define MAX_SUPPORTED_MCS
This defines the maximum number of supported MCSs that a STA is allowed to have.
uint8_t m_antennaIndicesFeedbackCapable
void SetHtSupported(uint8_t htsupported)
uint8_t m_reservedExtendedCapabilities2
uint64_t GetSupportedMcsSet2(void) const
void SetRxMcsBitmask(uint8_t index)
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
The HT Capabilities Information ElementThis class knows how to serialise and deserialise the HT Capab...
uint8_t GetSupportedChannelWidth(void) const
uint8_t m_shortGuardInterval40
void SetAmpduParameters(uint8_t ctrl)
Set the A-MPDU Parameters field in the HT Capabilities information element.
uint8_t GetShortGuardInterval40(void) const
uint8_t m_txSoundingPpdusCapable
uint8_t m_fortyMhzIntolerant
iterator in a Buffer instance
uint8_t GetTxUnequalModulation(void) const
uint8_t m_txMcsSetDefined
void SetLSigProtectionSupport(uint8_t lsigprotection)
uint8_t m_txStaggeredSoundingCapable
void SetShortGuardInterval20(uint8_t shortguardinterval)
uint8_t GetGreenfield(void) const
uint8_t m_txMaxNSpatialStreams
uint8_t m_csiNBfAntennasSupported
uint64_t GetSupportedMcsSet1(void) const
uint16_t m_rxHighestSupportedDataRate
uint8_t m_implicitTxBfCapable
void WriteU16(uint16_t data)
void SetMaxAmsduLength(uint8_t maxamsdulength)
uint8_t m_antennaSelectionCapability
uint32_t GetTxBfCapabilities(void) const
uint8_t GetShortGuardInterval20(void) const
void SetMaxAmpduLength(uint8_t maxampdulength)
uint8_t m_reservedMcsSet1
uint16_t GetRxHighestSupportedDataRate(void) const
uint8_t m_reservedMcsSet2
uint8_t m_channelEstimationCapability
uint8_t GetTxMaxNSpatialStreams(void) const
WifiInformationElementId ElementId() const
Own unique Element ID.
uint8_t GetTxMcsSetDefined(void) const
uint8_t m_htDelayedBlockAck
std::ostream & operator<<(std::ostream &os, const Angles &a)
print a struct Angles to output
void SetRxHighestSupportedDataRate(uint16_t maxsupportedrate)
uint8_t m_implicitRxBfCapable
uint8_t m_explicitCompressedBfFeedbackCapable
bool IsSupportedMcs(uint8_t mcs) const
uint8_t GetAmpduParameters(void) const
uint8_t m_txRxMcsSetUnequal
void SerializeInformationField(Buffer::Iterator start) const
Serialize information (i.e., the body of the IE, not including the Element ID and length octets) ...
void SetTxUnequalModulation(uint8_t txunequalmodulation)
void SetSupportedMcsSet(uint64_t ctrl1, uint64_t ctrl2)
Set the Supported MCS Set field in the HT Capabilities information element.
void SetExtendedHtCapabilities(uint16_t ctrl)
Set the Extended HT Capabilties field in the HT Capabilities information element. ...
uint8_t GetInformationFieldSize() const
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
void SetAntennaSelectionCapabilities(uint8_t ctrl)
Set the the Antenna Selection (ASEL) Capabilties field in the HT Capabilities information element...
void WriteHtolsbU16(uint16_t data)
uint8_t GetLdpc(void) const
void SetHtCapabilitiesInfo(uint16_t ctrl)
Set the HT Capabilties Info field in the HT Capabilities information element.
uint16_t GetHtCapabilitiesInfo(void) const
void WriteU8(uint8_t data)
uint8_t m_noncompressedSteeringNBfAntennasSupported
uint8_t m_explicitCsiTxBfCapable
void WriteHtolsbU64(uint64_t data)
uint8_t m_compressedSteeringNBfAntennasSupported
uint8_t m_explicitCsiFeedbackBasedTxASelCapable
uint8_t m_minMpduStartSpace
uint8_t m_explicitCsiFeedbackCapable
void SetLdpc(uint8_t ldpc)
void SetTxRxMcsSetUnequal(uint8_t txrxmcssetunequal)
uint8_t m_csiMaxNRowsBfSupported
uint8_t * GetRxMcsBitmask()
uint8_t m_pcoTransitionTime
uint8_t m_txUnequalModulation
uint16_t ReadLsbtohU16(void)
uint8_t GetRxHighestSupportedAntennas(void) const
uint8_t m_explicitTxBfCsiFeedback
uint8_t m_minimalGrouping
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.
void SetTxMaxNSpatialStreams(uint8_t maxtxspatialstreams)
uint8_t DeserializeInformationField(Buffer::Iterator start, uint8_t length)
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets) ...
uint64_t ReadLsbtohU64(void)
uint16_t GetSerializedSize() const
Return the serialized size of this HT capability information element.
uint8_t m_shortGuardInterval20
void WriteU32(uint32_t data)
uint8_t m_reservedExtendedCapabilities
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...
void SetShortGuardInterval40(uint8_t shortguardinterval)
ATTRIBUTE_HELPER_CPP(BleAccessAddress)
uint8_t GetAntennaSelectionCapabilities(void) const
uint8_t m_lsigProtectionSupport
void SetSupportedChannelWidth(uint8_t supportedchannelwidth)
uint8_t m_reverzeDirectionResponder
uint8_t GetMaxAmpduLength(void) const
uint8_t m_explicitNoncompressedBfFeedbackCapable
uint8_t m_explicitCompressedSteeringCapable
uint8_t m_antennaIndicesFeedbackBasedTxASelCapable
uint16_t GetExtendedHtCapabilities(void) const