24 #include "ns3/mesh-wifi-interface-mac.h"
25 #include "ns3/packet.h"
70 static TypeId tid =
TypeId(
"ns3::dot11s::PeerLinkOpenStart")
132 if (tmp.GetDistanceFrom(i) == 0)
138 uint8_t length = i.
ReadU8();
143 NS_FATAL_ERROR(
"Broken frame: Element ID does not match IE itself!");
152 NS_FATAL_ERROR(
"Broken frame: Element ID does not match IE itself!");
192 static TypeId tid =
TypeId(
"ns3::dot11s::PeerLinkCloseStart")
194 .SetGroupName(
"Mesh")
232 uint8_t length = i.
ReadU8();
237 NS_FATAL_ERROR(
"Broken frame: Element ID does not match IE itself!");
284 static TypeId tid =
TypeId(
"ns3::dot11s::PeerLinkConfirmStart")
286 .SetGroupName(
"Mesh")
345 if (tmp.GetDistanceFrom(i) == 0)
351 uint8_t length = i.
ReadU8();
356 NS_FATAL_ERROR(
"Broken frame: Element ID does not match IE itself!");
iterator in a Buffer instance
void WriteHtolsbU16(uint16_t data)
uint32_t GetDistanceFrom(const Iterator &o) const
void Next()
go forward by one byte
The Extended Supported Rates Information Element.
The Supported Rates Information Element.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Describes Mesh Configuration Element see 7.3.2.86 of 802.11s draft 3.0.
WifiInformationElementId ElementId() const override
Get the wifi information element ID.
uint16_t DeserializeInformationField(Buffer::Iterator i, uint16_t length) override
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)
void Print(std::ostream &os) const override
Generate human-readable form of IE.
uint16_t GetInformationFieldSize() const override
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
WifiInformationElementId ElementId() const override
Get the wifi information element ID.
uint16_t GetInformationFieldSize() const override
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
void Print(std::ostream &os) const override
Generate human-readable form of IE.
bool IsEqual(const IeMeshId &o) const
Equality test.
uint16_t DeserializeInformationField(Buffer::Iterator start, uint16_t length) override
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)
802.11s Peer link close management frame
void Serialize(Buffer::Iterator start) const override
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
static TypeId GetTypeId()
Get the type ID.
uint32_t GetSerializedSize() const override
PlinkCloseStartFields GetFields() const
Get peer link close start fields.
void Print(std::ostream &os) const override
void SetPlinkCloseStart(PlinkCloseStartFields fields)
Set peer link close start fields.
802.11s Peer link confirm management frame
std::optional< ExtendedSupportedRatesIE > m_extendedRates
extended rates
void Print(std::ostream &os) const override
void SetPlinkConfirmStart(PlinkConfirmStartFields fields)
Set peer link confirm start fields.
uint16_t m_capability
capability
PlinkConfirmStartFields GetFields() const
Get peer link confirm start fields.
uint32_t GetSerializedSize() const override
void Serialize(Buffer::Iterator start) const override
SupportedRates m_rates
rates
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
static TypeId GetTypeId()
Get the type ID.
IeConfiguration m_config
config
802.11s Peer link open management frame
static TypeId GetTypeId()
Get the type ID.
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
void SetPlinkOpenStart(PlinkOpenStartFields fields)
Set peer link open start fields.
uint32_t GetSerializedSize() const override
SupportedRates m_rates
rates
uint16_t m_capability
capability
IeConfiguration m_config
config
std::optional< ExtendedSupportedRatesIE > m_extendedRates
extended rates
void Print(std::ostream &os) const override
PlinkOpenStartFields GetFields() const
Get peer link open start fields.
void Serialize(Buffer::Iterator start) const override
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
bool operator==(const MeshHeader &a, const MeshHeader &b)
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.
IeMeshId meshId
open and close
SupportedRates rates
open and confirm
IeConfiguration config
open and confirm
uint16_t capability
open and confirm
std::optional< ExtendedSupportedRatesIE > extendedRates
open and confirm
IeConfiguration config
open and confirm
SupportedRates rates
open and confirm
IeMeshId meshId
open and close
uint16_t capability
open and confirm