The VHT Operation Information Element. More...
#include "vht-operation.h"
Public Member Functions | |
VhtOperation () | |
uint8_t | DeserializeInformationField (Buffer::Iterator start, uint8_t length) override |
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets) More... | |
WifiInformationElementId | ElementId () const override |
uint16_t | GetBasicVhtMcsAndNssSet (void) const |
Return the Basic VHT-MCS And Nss field in the VHT Operation information element. More... | |
uint8_t | GetChannelCenterFrequencySegment0 (void) const |
Return the Channel Center Frequency Segment 0 field in the VHT Operation information element. More... | |
uint8_t | GetChannelCenterFrequencySegment1 (void) const |
Return the Channel Center Frequency Segment 1 field in the VHT Operation information element. More... | |
uint8_t | GetChannelWidth (void) const |
Return the Channel Width field in the VHT Operation information element. More... | |
uint8_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... | |
uint16_t | GetSerializedSize () const override |
Get the size of the serialized IE including Element ID and length fields. More... | |
Buffer::Iterator | Serialize (Buffer::Iterator start) const override |
Serialize entire IE including Element ID and length fields. 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... | |
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... | |
void | SetVhtSupported (uint8_t vhtSupported) |
Set the VHT supported information element. More... | |
Public Member Functions inherited from ns3::WifiInformationElement | |
virtual | ~WifiInformationElement () |
Buffer::Iterator | Deserialize (Buffer::Iterator i) |
Deserialize entire IE, which must be present. More... | |
Buffer::Iterator | DeserializeIfPresent (Buffer::Iterator i) |
Deserialize entire IE if it is present. More... | |
virtual WifiInformationElementId | ElementIdExt () const |
virtual bool | operator== (WifiInformationElement const &a) const |
Compare two IEs for equality by ID & Length, and then through memcmp of serialised version. More... | |
virtual void | Print (std::ostream &os) const |
Generate human-readable form of IE. 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 (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= ([[maybe_unused]] const SimpleRefCount &o) |
Assignment operator. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. 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... | |
uint8_t | m_vhtSupported |
This is used to decide whether this element should be added to the frame or not. 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.
|
overridevirtual |
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 |
Implements ns3::WifiInformationElement.
Definition at line 150 of file vht-operation.cc.
References ns3::Buffer::Iterator::ReadU16(), ns3::Buffer::Iterator::ReadU8(), SetBasicVhtMcsAndNssSet(), SetChannelCenterFrequencySegment0(), SetChannelCenterFrequencySegment1(), SetChannelWidth(), and visualizer.core::start().
|
overridevirtual |
Implements ns3::WifiInformationElement.
Definition at line 35 of file vht-operation.cc.
References IE_VHT_OPERATION.
uint16_t ns3::VhtOperation::GetBasicVhtMcsAndNssSet | ( | void | ) | const |
Return the Basic VHT-MCS And Nss field in the VHT Operation information element.
Definition at line 111 of file vht-operation.cc.
References m_basicVhtMcsAndNssSet.
Referenced by ns3::operator<<(), and SerializeInformationField().
uint8_t ns3::VhtOperation::GetChannelCenterFrequencySegment0 | ( | void | ) | const |
Return the Channel Center Frequency Segment 0 field in the VHT Operation information element.
Definition at line 99 of file vht-operation.cc.
References m_channelCenterFrequencySegment0.
Referenced by ns3::operator<<(), and SerializeInformationField().
uint8_t ns3::VhtOperation::GetChannelCenterFrequencySegment1 | ( | void | ) | const |
Return the Channel Center Frequency Segment 1 field in the VHT Operation information element.
Definition at line 105 of file vht-operation.cc.
References m_channelCenterFrequencySegment1.
Referenced by ns3::operator<<(), and SerializeInformationField().
uint8_t ns3::VhtOperation::GetChannelWidth | ( | void | ) | const |
Return the Channel Width field in the VHT Operation information element.
Definition at line 93 of file vht-operation.cc.
References m_channelWidth.
Referenced by ns3::operator<<(), and SerializeInformationField().
|
overridevirtual |
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)
Implements ns3::WifiInformationElement.
Definition at line 47 of file vht-operation.cc.
References m_vhtSupported, and NS_ASSERT.
|
overridevirtual |
Get the size of the serialized IE including Element ID and length fields.
Reimplemented from ns3::WifiInformationElement.
Definition at line 127 of file vht-operation.cc.
References ns3::WifiInformationElement::GetSerializedSize(), and m_vhtSupported.
Referenced by ns3::MgtAssocResponseHeader::GetSerializedSize(), and ns3::MgtProbeResponseHeader::GetSerializedSize().
|
overridevirtual |
Serialize entire IE including Element ID and length fields.
i | an iterator which points to where the IE should be written. |
Reimplemented from ns3::WifiInformationElement.
Definition at line 117 of file vht-operation.cc.
References m_vhtSupported, and ns3::WifiInformationElement::Serialize().
Referenced by ns3::MgtAssocResponseHeader::Serialize(), and ns3::MgtProbeResponseHeader::Serialize().
|
overridevirtual |
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 137 of file vht-operation.cc.
References GetBasicVhtMcsAndNssSet(), GetChannelCenterFrequencySegment0(), GetChannelCenterFrequencySegment1(), GetChannelWidth(), m_vhtSupported, and visualizer.core::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 87 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 61 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 67 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 55 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 73 of file vht-operation.cc.
References m_basicVhtMcsAndNssSet, and NS_ASSERT.
Referenced by ns3::ApWifiMac::GetVhtOperation().
void ns3::VhtOperation::SetVhtSupported | ( | uint8_t | vhtSupported | ) |
Set the VHT supported information element.
vhtSupported | the VHT supported information element |
Definition at line 41 of file vht-operation.cc.
References m_vhtSupported.
Referenced by ns3::ApWifiMac::GetVhtOperation().
|
private |
basic VHT MCS NSS set
Definition at line 125 of file vht-operation.h.
Referenced by GetBasicVhtMcsAndNssSet(), SetBasicVhtMcsAndNssSet(), and SetMaxVhtMcsPerNss().
|
private |
channel center frequency segment 0
Definition at line 121 of file vht-operation.h.
Referenced by GetChannelCenterFrequencySegment0(), and SetChannelCenterFrequencySegment0().
|
private |
channel center frequency segment 1
Definition at line 122 of file vht-operation.h.
Referenced by GetChannelCenterFrequencySegment1(), and SetChannelCenterFrequencySegment1().
|
private |
channel width
Definition at line 120 of file vht-operation.h.
Referenced by GetChannelWidth(), and SetChannelWidth().
|
private |
This is used to decide whether this element should be added to the frame or not.
Definition at line 128 of file vht-operation.h.
Referenced by GetInformationFieldSize(), GetSerializedSize(), Serialize(), SerializeInformationField(), and SetVhtSupported().