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"
Inheritance diagram for ns3::ExtendedSupportedRatesIE:
Collaboration diagram for ns3::ExtendedSupportedRatesIE: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 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... | |
| 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 43 of file supported-rates.h.
| ns3::ExtendedSupportedRatesIE::ExtendedSupportedRatesIE | ( | ) |
Definition at line 231 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 235 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 311 of file supported-rates.cc.
References ns3::SupportedRates::m_nRates, ns3::SupportedRates::m_rates, m_supportedRates, ns3::SupportedRates::MAX_SUPPORTED_RATES, NS_ASSERT, and ns3::Buffer::Iterator::Read().
Here is the call graph for this function:
|
virtual |
Get element ID.
Implements ns3::WifiInformationElement.
Definition at line 241 of file supported-rates.cc.
References IE_EXTENDED_SUPPORTED_RATES.
|
virtual |
Get information field size.
Implements ns3::WifiInformationElement.
Definition at line 253 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 296 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::MgtAssocResponseHeader::GetSerializedSize(), ns3::MgtProbeRequestHeader::GetSerializedSize(), and ns3::MgtProbeResponseHeader::GetSerializedSize().
Here is the call graph for this function:
Here is the caller graph for this function:| 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 282 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::MgtAssocResponseHeader::Serialize(), ns3::MgtProbeRequestHeader::Serialize(), and ns3::MgtProbeResponseHeader::Serialize().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Serialize information field.
| start | the iterator |
Implements ns3::WifiInformationElement.
Definition at line 268 of file supported-rates.cc.
References ns3::SupportedRates::m_nRates, ns3::SupportedRates::m_rates, m_supportedRates, NS_ASSERT, and ns3::Buffer::Iterator::Write().
Here is the call graph for this function:| void ns3::ExtendedSupportedRatesIE::SetSupportedRates | ( | SupportedRates * | rates | ) |
Set supported rates.
| rates | the supported rates |
Definition at line 247 of file supported-rates.cc.
References m_supportedRates.
Referenced by ns3::SupportedRates::operator=(), and ns3::SupportedRates::SupportedRates().
Here is the caller graph for this function:
|
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 115 of file supported-rates.h.
Referenced by DeserializeInformationField(), ExtendedSupportedRatesIE(), GetInformationFieldSize(), GetSerializedSize(), Serialize(), SerializeInformationField(), and SetSupportedRates().