Information element, as defined in 802.11-2007 standard. More...
#include <wifi-information-element.h>
Public Member Functions | |
Buffer::Iterator | Serialize (Buffer::Iterator i) const |
Serialize entire IE including Element ID and length fields. | |
Buffer::Iterator | Deserialize (Buffer::Iterator i) |
Buffer::Iterator | DeserializeIfPresent (Buffer::Iterator i) |
uint16_t | GetSerializedSize () const |
Each subclass must implement | |
virtual WifiInformationElementId | ElementId () const =0 |
Own unique Element ID. | |
virtual uint8_t | GetInformationFieldSize () const =0 |
virtual void | SerializeInformationField (Buffer::Iterator start) const =0 |
virtual uint8_t | DeserializeInformationField (Buffer::Iterator start, uint8_t length)=0 |
virtual void | Print (std::ostream &os) const |
In addition, a subclass may optionally override the following... | |
virtual bool | operator< (WifiInformationElement const &a) const |
Compare information elements using Element ID. | |
virtual bool | operator== (WifiInformationElement const &a) const |
Information element, as defined in 802.11-2007 standard.
Elements are defined to have a common general format consisting of a 1 octet Element ID field, a 1 octet length field, and a variable-length element-specific information field. Each element is assigned a unique Element ID as defined in this standard. The Length field specifies the number of octets in the Information field.
This class is pure virtual and acts as base for classes which know how to serialize specific IEs.
Buffer::Iterator ns3::WifiInformationElement::Deserialize | ( | Buffer::Iterator | i | ) |
Deserialize entire IE, which must be present. The iterator passed in must be pointing at the Element ID (i.e., the very first octet) of the correct type of information element, otherwise this method will generate a fatal error.
Buffer::Iterator ns3::WifiInformationElement::DeserializeIfPresent | ( | Buffer::Iterator | i | ) |
Deserialize entire IE if it is present. The iterator passed in must be pointing at the Element ID of an information element. If the Element ID is not the one that the given class is interested in then it will return the same iterator.
virtual uint8_t ns3::WifiInformationElement::DeserializeInformationField | ( | Buffer::Iterator | start, | |
uint8_t | length | |||
) | [pure virtual] |
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)
Implemented in ns3::dot11s::IeBeaconTiming, ns3::dot11s::IeConfiguration, ns3::dot11s::IeMeshId, ns3::dot11s::IeLinkMetricReport, ns3::dot11s::IePeerManagement, ns3::dot11s::IePeeringProtocol, ns3::dot11s::IePerr, ns3::dot11s::IePrep, ns3::dot11s::IePreq, ns3::dot11s::IeRann, ns3::Ssid, ns3::ExtendedSupportedRatesIE, and ns3::SupportedRates.
virtual uint8_t ns3::WifiInformationElement::GetInformationFieldSize | ( | ) | const [pure 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)
Implemented in ns3::dot11s::IeBeaconTiming, ns3::dot11s::IeConfiguration, ns3::dot11s::IeMeshId, ns3::dot11s::IeLinkMetricReport, ns3::dot11s::IePeerManagement, ns3::dot11s::IePeeringProtocol, ns3::dot11s::IePerr, ns3::dot11s::IePrep, ns3::dot11s::IePreq, ns3::dot11s::IeRann, ns3::Ssid, ns3::ExtendedSupportedRatesIE, and ns3::SupportedRates.
uint16_t ns3::WifiInformationElement::GetSerializedSize | ( | ) | const |
Get the size of the serialized IE including Element ID and length fields.
Reimplemented in ns3::ExtendedSupportedRatesIE.
virtual bool ns3::WifiInformationElement::operator== | ( | WifiInformationElement const & | a | ) | const [virtual] |
Compare two IEs for equality by ID & Length, and then through memcmp of serialised version
virtual void ns3::WifiInformationElement::Print | ( | std::ostream & | os | ) | const [virtual] |
In addition, a subclass may optionally override the following...
Generate human-readable form of IE
Reimplemented in ns3::dot11s::IeBeaconTiming, ns3::dot11s::IeConfiguration, ns3::dot11s::IeMeshId, ns3::dot11s::IeLinkMetricReport, ns3::dot11s::IePeerManagement, ns3::dot11s::IePeeringProtocol, ns3::dot11s::IePerr, ns3::dot11s::IePrep, ns3::dot11s::IePreq, and ns3::dot11s::IeRann.
virtual void ns3::WifiInformationElement::SerializeInformationField | ( | Buffer::Iterator | start | ) | const [pure virtual] |
Serialize information (i.e., the body of the IE, not including the Element ID and length octets)
Implemented in ns3::dot11s::IeBeaconTiming, ns3::dot11s::IeConfiguration, ns3::dot11s::IeMeshId, ns3::dot11s::IeLinkMetricReport, ns3::dot11s::IePeerManagement, ns3::dot11s::IePeeringProtocol, ns3::dot11s::IePerr, ns3::dot11s::IePrep, ns3::dot11s::IePreq, ns3::dot11s::IeRann, ns3::Ssid, ns3::ExtendedSupportedRatesIE, and ns3::SupportedRates.