The VHT Operation Information Element. More...
#include "vht-operation.h"
Public Member Functions | |
VhtOperation () | |
WifiInformationElementId | ElementId () const override |
Get the wifi information element ID. More... | |
uint16_t | GetBasicVhtMcsAndNssSet () const |
Return the Basic VHT-MCS And Nss field in the VHT Operation information element. More... | |
uint8_t | GetChannelCenterFrequencySegment0 () const |
Return the Channel Center Frequency Segment 0 field in the VHT Operation information element. More... | |
uint8_t | GetChannelCenterFrequencySegment1 () const |
Return the Channel Center Frequency Segment 1 field in the VHT Operation information element. More... | |
uint8_t | GetChannelWidth () const |
Return the Channel Width field in the VHT Operation information element. More... | |
void | Print (std::ostream &os) const override |
Generate human-readable form of IE. More... | |
void | SetBasicVhtMcsAndNssSet (uint16_t basicVhtMcsAndNssSet) |
Set the Basic VHT-MCS and NSS field in the VHT Operation information element. More... | |
void | SetChannelCenterFrequencySegment0 (uint8_t channelCenterFrequencySegment0) |
Set the Channel Center Frequency Segment 0 field in the VHT Operation information element. More... | |
void | SetChannelCenterFrequencySegment1 (uint8_t channelCenterFrequencySegment1) |
Set the Channel Center Frequency Segment 1 field in the VHT Operation information element. More... | |
void | SetChannelWidth (uint8_t channelWidth) |
Set the Channel Width field in the VHT Operation information element. More... | |
void | SetMaxVhtMcsPerNss (uint8_t nss, uint8_t maxVhtMcs) |
Set the Basic VHT-MCS and NSS field in the VHT Operation information element by specifying the tuple (nss, maxMcs). More... | |
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. More... | |
Buffer::Iterator | DeserializeIfPresent (Buffer::Iterator i) |
Deserialize entire IE (which may possibly be fragmented into multiple elements) if it is present. More... | |
virtual WifiInformationElementId | ElementIdExt () const |
Get the wifi information element ID extension. More... | |
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). More... | |
virtual bool | operator== (const WifiInformationElement &a) const |
Compare two IEs for equality by ID & Length, and then through memcmp of serialised version. More... | |
Buffer::Iterator | Serialize (Buffer::Iterator i) const |
Serialize entire IE including Element ID and length fields. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< WifiInformationElement > | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o[[maybe_unused]]) |
Assignment operator. More... | |
void | Ref () const |
Increment the reference count. More... | |
void | Unref () const |
Decrement the reference count. More... | |
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) More... | |
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. More... | |
void | SerializeInformationField (Buffer::Iterator start) const override |
Serialize information (i.e., the body of the IE, not including the Element ID and length octets) More... | |
Private Attributes | |
uint16_t | m_basicVhtMcsAndNssSet |
basic VHT MCS NSS set More... | |
uint8_t | m_channelCenterFrequencySegment0 |
channel center frequency segment 0 More... | |
uint8_t | m_channelCenterFrequencySegment1 |
channel center frequency segment 1 More... | |
uint8_t | m_channelWidth |
channel width More... | |
The VHT Operation Information Element.
This class knows how to serialise and deserialise the VHT Operation Information Element
Definition at line 35 of file vht-operation.h.
ns3::VhtOperation::VhtOperation | ( | ) |
Definition at line 25 of file vht-operation.cc.
|
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 125 of file vht-operation.cc.
References ns3::Buffer::Iterator::ReadU16(), ns3::Buffer::Iterator::ReadU8(), SetBasicVhtMcsAndNssSet(), SetChannelCenterFrequencySegment0(), SetChannelCenterFrequencySegment1(), SetChannelWidth(), and two-ray-to-three-gpp-ch-calibration::start.
|
overridevirtual |
Get the wifi information element ID.
Implements ns3::WifiInformationElement.
Definition at line 34 of file vht-operation.cc.
References IE_VHT_OPERATION.
uint16_t ns3::VhtOperation::GetBasicVhtMcsAndNssSet | ( | ) | const |
Return the Basic VHT-MCS And Nss field in the VHT Operation information element.
Definition at line 109 of file vht-operation.cc.
References m_basicVhtMcsAndNssSet.
Referenced by Print(), and SerializeInformationField().
uint8_t ns3::VhtOperation::GetChannelCenterFrequencySegment0 | ( | ) | const |
Return the Channel Center Frequency Segment 0 field in the VHT Operation information element.
Definition at line 97 of file vht-operation.cc.
References m_channelCenterFrequencySegment0.
Referenced by Print(), and SerializeInformationField().
uint8_t ns3::VhtOperation::GetChannelCenterFrequencySegment1 | ( | ) | const |
Return the Channel Center Frequency Segment 1 field in the VHT Operation information element.
Definition at line 103 of file vht-operation.cc.
References m_channelCenterFrequencySegment1.
Referenced by Print(), and SerializeInformationField().
uint8_t ns3::VhtOperation::GetChannelWidth | ( | ) | const |
Return the Channel Width field in the VHT Operation information element.
Definition at line 91 of file vht-operation.cc.
References m_channelWidth.
Referenced by Print(), and SerializeInformationField().
|
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 47 of file vht-operation.cc.
|
overridevirtual |
Generate human-readable form of IE.
os | output stream |
Reimplemented from ns3::WifiInformationElement.
Definition at line 40 of file vht-operation.cc.
References GetBasicVhtMcsAndNssSet(), GetChannelCenterFrequencySegment0(), GetChannelCenterFrequencySegment1(), and GetChannelWidth().
|
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 115 of file vht-operation.cc.
References GetBasicVhtMcsAndNssSet(), GetChannelCenterFrequencySegment0(), GetChannelCenterFrequencySegment1(), GetChannelWidth(), and two-ray-to-three-gpp-ch-calibration::start.
void ns3::VhtOperation::SetBasicVhtMcsAndNssSet | ( | uint16_t | basicVhtMcsAndNssSet | ) |
Set the Basic VHT-MCS and NSS field in the VHT Operation information element.
basicVhtMcsAndNssSet | the Basic VHT-MCS and NSS field in the VHT Operation information element |
Definition at line 85 of file vht-operation.cc.
References m_basicVhtMcsAndNssSet.
Referenced by DeserializeInformationField().
void ns3::VhtOperation::SetChannelCenterFrequencySegment0 | ( | uint8_t | channelCenterFrequencySegment0 | ) |
Set the Channel Center Frequency Segment 0 field in the VHT Operation information element.
channelCenterFrequencySegment0 | the Channel Center Frequency Segment 0 field in the VHT Operation information element |
Definition at line 59 of file vht-operation.cc.
References m_channelCenterFrequencySegment0.
Referenced by DeserializeInformationField(), and ns3::ApWifiMac::GetVhtOperation().
void ns3::VhtOperation::SetChannelCenterFrequencySegment1 | ( | uint8_t | channelCenterFrequencySegment1 | ) |
Set the Channel Center Frequency Segment 1 field in the VHT Operation information element.
channelCenterFrequencySegment1 | the Channel Center Frequency Segment 1 field in the VHT Operation information element |
Definition at line 65 of file vht-operation.cc.
References m_channelCenterFrequencySegment1.
Referenced by DeserializeInformationField(), and ns3::ApWifiMac::GetVhtOperation().
void ns3::VhtOperation::SetChannelWidth | ( | uint8_t | channelWidth | ) |
Set the Channel Width field in the VHT Operation information element.
channelWidth | the Channel Width field in the VHT Operation information element |
Definition at line 53 of file vht-operation.cc.
References m_channelWidth.
Referenced by DeserializeInformationField(), and ns3::ApWifiMac::GetVhtOperation().
void ns3::VhtOperation::SetMaxVhtMcsPerNss | ( | uint8_t | nss, |
uint8_t | maxVhtMcs | ||
) |
Set the Basic VHT-MCS and NSS field in the VHT Operation information element by specifying the tuple (nss, maxMcs).
nss | the NSS |
maxVhtMcs | the maximum supported VHT-MCS value corresponding to that NSS |
Definition at line 71 of file vht-operation.cc.
References m_basicVhtMcsAndNssSet, and NS_ASSERT.
Referenced by ns3::ApWifiMac::GetVhtOperation().
|
private |
basic VHT MCS NSS set
Definition at line 116 of file vht-operation.h.
Referenced by GetBasicVhtMcsAndNssSet(), SetBasicVhtMcsAndNssSet(), and SetMaxVhtMcsPerNss().
|
private |
channel center frequency segment 0
Definition at line 112 of file vht-operation.h.
Referenced by GetChannelCenterFrequencySegment0(), and SetChannelCenterFrequencySegment0().
|
private |
channel center frequency segment 1
Definition at line 113 of file vht-operation.h.
Referenced by GetChannelCenterFrequencySegment1(), and SetChannelCenterFrequencySegment1().
|
private |
channel width
Definition at line 111 of file vht-operation.h.
Referenced by GetChannelWidth(), and SetChannelWidth().