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 (i.e., the body of the IE, not including the Element ID and length octets) More... | |
WifiInformationElementId | ElementId () const |
Own unique Element ID. More... | |
uint8_t | GetInformationFieldSize () const |
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 |
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 (i.e., the body of the IE, not including the Element ID and length octets) 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... | |
Buffer::Iterator | Serialize (Buffer::Iterator i) const |
Serialize entire IE including Element ID and length fields. More... | |
virtual void | Print (std::ostream &os) const |
In addition, a subclass may optionally override the following... More... | |
virtual bool | operator< (WifiInformationElement const &a) const |
Compare information elements using Element ID. More... | |
virtual bool | operator== (WifiInformationElement const &a) const |
Compare two IEs for equality by ID & Length, and then through memcmp of serialised version. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< WifiInformationElement > | |
SimpleRefCount () | |
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. 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... | |
Additional Inherited Members | |
Static Public Member Functions inherited from ns3::SimpleRefCount< WifiInformationElement > | |
static void | Cleanup (void) |
Noop. 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 52 of file supported-rates.h.
ns3::ExtendedSupportedRatesIE::ExtendedSupportedRatesIE | ( | ) |
Definition at line 136 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 140 of file supported-rates.cc.
References m_supportedRates.
|
virtual |
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 210 of file supported-rates.cc.
References ns3::SupportedRates::m_nRates, ns3::SupportedRates::m_rates, m_supportedRates, MAX_SUPPORTED_RATES, NS_ASSERT, and ns3::Buffer::Iterator::Read().
|
virtual |
Own unique Element ID.
Implements ns3::WifiInformationElement.
Definition at line 146 of file supported-rates.cc.
References IE_EXTENDED_SUPPORTED_RATES.
|
virtual |
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 152 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 195 of file supported-rates.cc.
References ns3::WifiInformationElement::GetSerializedSize(), ns3::SupportedRates::m_nRates, and m_supportedRates.
Referenced by ns3::dot11s::PeerLinkFrameStart::GetSerializedSize(), ns3::MgtAssocRequestHeader::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 181 of file supported-rates.cc.
References ns3::SupportedRates::m_nRates, m_supportedRates, ns3::WifiInformationElement::Serialize(), and visualizer.core::start().
Referenced by ns3::dot11s::PeerLinkFrameStart::Serialize(), ns3::MgtAssocRequestHeader::Serialize(), ns3::MgtAssocResponseHeader::Serialize(), ns3::MgtProbeRequestHeader::Serialize(), and ns3::MgtProbeResponseHeader::Serialize().
|
virtual |
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 167 of file supported-rates.cc.
References ns3::SupportedRates::m_nRates, ns3::SupportedRates::m_rates, m_supportedRates, NS_ASSERT, and ns3::Buffer::Iterator::Write().
|
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 94 of file supported-rates.h.
Referenced by DeserializeInformationField(), ExtendedSupportedRatesIE(), GetInformationFieldSize(), GetSerializedSize(), Serialize(), and SerializeInformationField().