The VHT Operation Information ElementThis class knows how to serialise and deserialise the VHT Operation Information Element. More...
#include "vht-operation.h"
Public Member Functions | |
VhtOperation () | |
uint8_t | DeserializeInformationField (Buffer::Iterator start, uint8_t length) |
Deserialize the information field. More... | |
WifiInformationElementId | ElementId () const |
Return the element ID. More... | |
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 |
Return the information field size. More... | |
uint16_t | GetSerializedSize () const |
Return the serialized size of this VHT Operations IE. More... | |
Buffer::Iterator | Serialize (Buffer::Iterator start) const |
This information element is a bit special in that it is only included if the STA is a VHT STA. More... | |
void | SerializeInformationField (Buffer::Iterator start) const |
Serialize the information field. 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... | |
![]() | |
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... | |
uint16_t | GetSerializedSize () const |
Get the size of the serialized IE including Element ID and length fields. More... | |
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... | |
Buffer::Iterator | Serialize (Buffer::Iterator i) const |
Serialize entire IE including Element ID and length fields. More... | |
![]() | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (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 0 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 37 of file vht-operation.h.
ns3::VhtOperation::VhtOperation | ( | ) |
Definition at line 25 of file vht-operation.cc.
|
virtual |
Deserialize the information field.
start | the iterator |
length | the 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().
|
virtual |
Return the element ID.
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().
|
virtual |
Return the information field size.
Implements ns3::WifiInformationElement.
Definition at line 47 of file vht-operation.cc.
References m_vhtSupported, and NS_ASSERT.
uint16_t ns3::VhtOperation::GetSerializedSize | ( | void | ) | const |
Return the serialized size of this VHT Operations IE.
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().
Buffer::Iterator ns3::VhtOperation::Serialize | ( | Buffer::Iterator | start | ) | const |
This information element is a bit special in that it is only included if the STA is a VHT STA.
To support this we override the Serialize and GetSerializedSize methods of WifiInformationElement.
start |
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().
|
virtual |
Serialize the information field.
start | the information field iterator |
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().
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().
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 158 of file vht-operation.h.
Referenced by GetBasicVhtMcsAndNssSet(), SetBasicVhtMcsAndNssSet(), and SetMaxVhtMcsPerNss().
|
private |
channel center frequency segment 0
Definition at line 154 of file vht-operation.h.
Referenced by GetChannelCenterFrequencySegment0(), and SetChannelCenterFrequencySegment0().
|
private |
channel center frequency segment 0
Definition at line 155 of file vht-operation.h.
Referenced by GetChannelCenterFrequencySegment1(), and SetChannelCenterFrequencySegment1().
|
private |
channel width
Definition at line 153 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 161 of file vht-operation.h.
Referenced by GetInformationFieldSize(), GetSerializedSize(), Serialize(), SerializeInformationField(), and SetVhtSupported().