The VHT Operation Information Element. More...
#include "vht-operation.h"
Public Member Functions | |
VhtOperation () | |
WifiInformationElementId | ElementId () const override |
Get the wifi information element ID. | |
uint16_t | GetBasicVhtMcsAndNssSet () const |
Return the Basic VHT-MCS And Nss field in the VHT Operation information element. | |
uint8_t | GetChannelCenterFrequencySegment0 () const |
Return the Channel Center Frequency Segment 0 field in the VHT Operation information element. | |
uint8_t | GetChannelCenterFrequencySegment1 () const |
Return the Channel Center Frequency Segment 1 field in the VHT Operation information element. | |
uint8_t | GetChannelWidth () const |
Return the Channel Width field in the VHT Operation information element. | |
void | Print (std::ostream &os) const override |
Generate human-readable form of IE. | |
void | SetBasicVhtMcsAndNssSet (uint16_t basicVhtMcsAndNssSet) |
Set the Basic VHT-MCS and NSS field in the VHT Operation information element. | |
void | SetChannelCenterFrequencySegment0 (uint8_t channelCenterFrequencySegment0) |
Set the Channel Center Frequency Segment 0 field in the VHT Operation information element. | |
void | SetChannelCenterFrequencySegment1 (uint8_t channelCenterFrequencySegment1) |
Set the Channel Center Frequency Segment 1 field in the VHT Operation information element. | |
void | SetChannelWidth (uint8_t channelWidth) |
Set the Channel Width field in the VHT Operation information element. | |
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). | |
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 | 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. | |
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 | |
uint16_t | m_basicVhtMcsAndNssSet |
basic VHT MCS NSS set | |
uint8_t | m_channelCenterFrequencySegment0 |
channel center frequency segment 0 | |
uint8_t | m_channelCenterFrequencySegment1 |
channel center frequency segment 1 | |
uint8_t | m_channelWidth |
channel width | |
The VHT Operation Information Element.
This class knows how to serialise and deserialise the VHT Operation Information Element
Definition at line 24 of file vht-operation.h.
ns3::VhtOperation::VhtOperation | ( | ) |
Definition at line 14 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 114 of file vht-operation.cc.
References ns3::Buffer::Iterator::ReadU16(), ns3::Buffer::Iterator::ReadU8(), SetBasicVhtMcsAndNssSet(), SetChannelCenterFrequencySegment0(), SetChannelCenterFrequencySegment1(), and SetChannelWidth().
|
overridevirtual |
Get the wifi information element ID.
Implements ns3::WifiInformationElement.
Definition at line 23 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 98 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 86 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 92 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 80 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 36 of file vht-operation.cc.
|
overridevirtual |
Generate human-readable form of IE.
os | output stream |
Reimplemented from ns3::WifiInformationElement.
Definition at line 29 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 104 of file vht-operation.cc.
References GetBasicVhtMcsAndNssSet(), GetChannelCenterFrequencySegment0(), GetChannelCenterFrequencySegment1(), and GetChannelWidth().
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 74 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 48 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 54 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 42 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 60 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 105 of file vht-operation.h.
Referenced by GetBasicVhtMcsAndNssSet(), SetBasicVhtMcsAndNssSet(), and SetMaxVhtMcsPerNss().
|
private |
channel center frequency segment 0
Definition at line 101 of file vht-operation.h.
Referenced by GetChannelCenterFrequencySegment0(), and SetChannelCenterFrequencySegment0().
|
private |
channel center frequency segment 1
Definition at line 102 of file vht-operation.h.
Referenced by GetChannelCenterFrequencySegment1(), and SetChannelCenterFrequencySegment1().
|
private |
channel width
Definition at line 100 of file vht-operation.h.
Referenced by GetChannelWidth(), and SetChannelWidth().