The Extended Supported Rates Information ElementThis class knows how to serialise and deserialise the Extended Supported Rates Element that holds (non-HT) rates beyond the 8 that the original Supported Rates element can carry. More...
#include "supported-rates.h"
Public Member Functions | |
ExtendedSupportedRatesIE () | |
ExtendedSupportedRatesIE (SupportedRates *rates) | |
Create an extended supported rates information element from the given rates. More... | |
uint8_t | DeserializeInformationField (Buffer::Iterator start, uint8_t length) |
Deserialize information field. More... | |
WifiInformationElementId | ElementId () const |
Get element ID. More... | |
uint8_t | GetInformationFieldSize () const |
Get information field size. More... | |
uint16_t | GetSerializedSize () const |
Return the serialized size of this supported rates information element. More... | |
Buffer::Iterator | Serialize (Buffer::Iterator start) const |
This information element is a bit special in that it is only included if there are more than 8 rates. More... | |
void | SerializeInformationField (Buffer::Iterator start) const |
Serialize information field. More... | |
void | SetSupportedRates (SupportedRates *rates) |
Set supported rates. 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... | |
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... | |
Public Member Functions inherited from ns3::SimpleRefCount< WifiInformationElement > | |
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 | |
SupportedRates * | m_supportedRates |
This member points to the SupportedRates object that contains the actual rate details. More... | |
The Extended Supported Rates Information Element
This class knows how to serialise and deserialise the Extended Supported Rates Element that holds (non-HT) rates beyond the 8 that the original Supported Rates element can carry.
The SupportedRates
class still records all the rates, and an instance of ExtendedSupportedRatesIE
lies within SupportedRates
.
Definition at line 42 of file supported-rates.h.
ns3::ExtendedSupportedRatesIE::ExtendedSupportedRatesIE | ( | ) |
Definition at line 207 of file supported-rates.cc.
ns3::ExtendedSupportedRatesIE::ExtendedSupportedRatesIE | ( | SupportedRates * | rates | ) |
Create an extended supported rates information element from the given rates.
rates |
Definition at line 211 of file supported-rates.cc.
References m_supportedRates.
|
virtual |
Deserialize information field.
start | the iterator |
length | the field length (bytes) |
Implements ns3::WifiInformationElement.
Definition at line 287 of file supported-rates.cc.
References ns3::SupportedRates::m_nRates, ns3::SupportedRates::m_rates, m_supportedRates, ns3::SupportedRates::MAX_SUPPORTED_RATES, NS_ASSERT, and visualizer.core::start().
|
virtual |
Get element ID.
Implements ns3::WifiInformationElement.
Definition at line 217 of file supported-rates.cc.
References IE_EXTENDED_SUPPORTED_RATES.
|
virtual |
Get information field size.
Implements ns3::WifiInformationElement.
Definition at line 229 of file supported-rates.cc.
References ns3::SupportedRates::m_nRates, m_supportedRates, and NS_ASSERT.
uint16_t ns3::ExtendedSupportedRatesIE::GetSerializedSize | ( | void | ) | const |
Return the serialized size of this supported rates information element.
Definition at line 272 of file supported-rates.cc.
References ns3::WifiInformationElement::GetSerializedSize(), ns3::SupportedRates::m_nRates, and m_supportedRates.
Referenced by ns3::dot11s::PeerLinkOpenStart::GetSerializedSize(), ns3::MgtAssocRequestHeader::GetSerializedSize(), ns3::dot11s::PeerLinkConfirmStart::GetSerializedSize(), ns3::MgtReassocRequestHeader::GetSerializedSize(), ns3::MgtAssocResponseHeader::GetSerializedSize(), ns3::MgtProbeRequestHeader::GetSerializedSize(), and ns3::MgtProbeResponseHeader::GetSerializedSize().
Buffer::Iterator ns3::ExtendedSupportedRatesIE::Serialize | ( | Buffer::Iterator | start | ) | const |
This information element is a bit special in that it is only included if there are more than 8 rates.
To support this we override the Serialize and GetSerializedSize methods of WifiInformationElement.
start |
Definition at line 258 of file supported-rates.cc.
References ns3::SupportedRates::m_nRates, m_supportedRates, ns3::WifiInformationElement::Serialize(), and visualizer.core::start().
Referenced by ns3::dot11s::PeerLinkOpenStart::Serialize(), ns3::MgtAssocRequestHeader::Serialize(), ns3::dot11s::PeerLinkConfirmStart::Serialize(), ns3::MgtReassocRequestHeader::Serialize(), ns3::MgtAssocResponseHeader::Serialize(), ns3::MgtProbeRequestHeader::Serialize(), and ns3::MgtProbeResponseHeader::Serialize().
|
virtual |
Serialize information field.
start | the iterator |
Implements ns3::WifiInformationElement.
Definition at line 244 of file supported-rates.cc.
References ns3::SupportedRates::m_nRates, ns3::SupportedRates::m_rates, m_supportedRates, NS_ASSERT, and visualizer.core::start().
void ns3::ExtendedSupportedRatesIE::SetSupportedRates | ( | SupportedRates * | rates | ) |
Set supported rates.
rates | the supported rates |
Definition at line 223 of file supported-rates.cc.
References m_supportedRates.
Referenced by ns3::SupportedRates::operator=(), and ns3::SupportedRates::SupportedRates().
|
private |
This member points to the SupportedRates object that contains the actual rate details.
This class is a friend of that, so we have access to all the private data we need.
Definition at line 114 of file supported-rates.h.
Referenced by DeserializeInformationField(), ExtendedSupportedRatesIE(), GetInformationFieldSize(), GetSerializedSize(), Serialize(), SerializeInformationField(), and SetSupportedRates().