Add methods needed to serialize/deserialize a management header into a Per-STA Profile subelement of a Multi-Link Element. More...
#include "wifi-mgt-header.h"
Public Member Functions | |
void | CopyIesFromContainingFrame (const Derived &frame) |
Copy Information Elements inherited from the management frame containing the Multi-Link Element into this header (which is stored in a Per-STA Profile subelement). | |
uint32_t | DeserializeFromPerStaProfile (Buffer::Iterator start, uint16_t length, const Derived &frame) |
Deserialize this header from a Per-STA Profile subelement of a Multi-Link Element. | |
uint32_t | GetSerializedSizeInPerStaProfile (const Derived &frame) const |
void | SerializeInPerStaProfile (Buffer::Iterator start, const Derived &frame) const |
Serialize this header into a Per-STA Profile subelement of a Multi-Link Element. | |
Public Member Functions inherited from ns3::WifiMgtHeader< Derived, std::tuple< Elems... > > | |
uint32_t | Deserialize (Buffer::Iterator start) final |
template<typename T , std::enable_if_t<(std::is_same_v< std::vector< T >, Elems >+...)==0, int > = 0> | |
std::optional< T > & | Get () |
Access a (mandatory or optional) Information Element. | |
template<typename T , std::enable_if_t<(std::is_same_v< std::vector< T >, Elems >+...)==1, int > = 0> | |
std::vector< T > & | Get () |
Access an Information Element that can be present zero or more times. | |
template<typename T , std::enable_if_t<(std::is_same_v< std::vector< T >, Elems >+...)==0, int > = 0> | |
const std::optional< T > & | Get () const |
Access a (mandatory or optional) Information Element. | |
template<typename T , std::enable_if_t<(std::is_same_v< std::vector< T >, Elems >+...)==1, int > = 0> | |
const std::vector< T > & | Get () const |
Access an Information Element that can be present zero or more times. | |
uint32_t | GetSerializedSize () const final |
void | Print (std::ostream &os) const final |
void | Serialize (Buffer::Iterator start) const final |
Public Member Functions inherited from ns3::Header | |
~Header () override | |
virtual uint32_t | Deserialize (Buffer::Iterator start, Buffer::Iterator end) |
Deserialize the object from a buffer iterator. | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const |
Get the value of an attribute, raising fatal errors if unsuccessful. | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. | |
virtual TypeId | GetInstanceTypeId () const =0 |
Get the most derived TypeId for this Object. | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. | |
Protected Member Functions | |
uint32_t | DeserializeFromPerStaProfileImpl (Buffer::Iterator start, uint16_t length, const Derived &frame) |
Deserialize this header from a Per-STA Profile subelement of a Multi-Link Element. | |
uint32_t | GetSerializedSizeInPerStaProfileImpl (const Derived &frame) const |
void | InitForDeserialization (std::optional< MultiLinkElement > &optElem) |
void | SerializeInPerStaProfileImpl (Buffer::Iterator start, const Derived &frame) const |
Serialize this header into a Per-STA Profile subelement of a Multi-Link Element. | |
void | SetMleContainingFrame () const |
Pass a pointer to this frame to the Multi-Link Element (if any) included in this frame. | |
Protected Member Functions inherited from ns3::WifiMgtHeader< Derived, std::tuple< Elems... > > | |
uint32_t | DeserializeImpl (Buffer::Iterator start) |
template<typename T > | |
Buffer::Iterator | DoDeserialize (std::optional< T > &elem, Buffer::Iterator start) |
template<typename T > | |
Buffer::Iterator | DoDeserialize (std::vector< T > &elems, Buffer::Iterator start) |
uint32_t | GetSerializedSizeImpl () const |
void | InitForDeserialization (std::optional< EhtCapabilities > &optElem) |
template<typename IE > | |
void | InitForDeserialization (std::optional< IE > &optElem) |
void | PrintImpl (std::ostream &os) const |
void | SerializeImpl (Buffer::Iterator start) const |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
Private Attributes | |
std::optional< NonInheritance > | m_nonInheritance |
the Non-Inheritance IE possibly appended to the Per-STA Profile subelement | |
Additional Inherited Members | |
Static Public Member Functions inherited from ns3::Header | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::Chunk | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. | |
Protected Types inherited from ns3::WifiMgtHeader< Derived, std::tuple< Elems... > > | |
using | Elements = std::tuple<internal::GetStoredIeT<Elems>...> |
type of the Information Elements contained by this frame | |
Protected Attributes inherited from ns3::WifiMgtHeader< Derived, std::tuple< Elems... > > | |
Elements | m_elements |
Information Elements contained by this frame. | |
Related Symbols inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
Add methods needed to serialize/deserialize a management header into a Per-STA Profile subelement of a Multi-Link Element.
Derived | [explicit] the type of derived management frame |
Elems | [explicit] sorted list of Information Elements that can be included in mgt frame |
Definition at line 227 of file wifi-mgt-header.h.
void ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::CopyIesFromContainingFrame | ( | const Derived & | frame | ) |
Copy Information Elements inherited from the management frame containing the Multi-Link Element into this header (which is stored in a Per-STA Profile subelement).
This method shall be invoked when the deserialization has been completed (i.e., the Non-Inheritance element, if present, has been deserialized).
frame | the frame containing the Multi-Link Element |
Definition at line 949 of file wifi-mgt-header.h.
References ns3::internal::DoCopyIeFromContainingFrame(), and ns3::internal::RemoveIfNotInherited().
uint32_t ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::DeserializeFromPerStaProfile | ( | Buffer::Iterator | start, |
uint16_t | length, | ||
const Derived & | frame ) |
Deserialize this header from a Per-STA Profile subelement of a Multi-Link Element.
start | an iterator which points to where the header should be read from |
length | the expected number of bytes to read |
frame | the frame containing the Multi-Link Element |
Definition at line 862 of file wifi-mgt-header.h.
|
protected |
Deserialize this header from a Per-STA Profile subelement of a Multi-Link Element.
start | an iterator which points to where the header should be read from |
length | the expected number of bytes to read |
frame | the frame containing the Multi-Link Element |
Definition at line 872 of file wifi-mgt-header.h.
References NS_ASSERT_MSG.
uint32_t ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::GetSerializedSizeInPerStaProfile | ( | const Derived & | frame | ) | const |
frame | the frame containing the Multi-Link Element |
Definition at line 726 of file wifi-mgt-header.h.
|
protected |
frame | the frame containing the Multi-Link Element |
Definition at line 734 of file wifi-mgt-header.h.
References ns3::internal::DoGetSerializedSize(), ns3::internal::MustBeListedInNonInheritance(), and ns3::internal::MustBeSerializedInPerStaProfile().
|
protected |
optElem | the MultiLinkElement object to initialize for deserializing the information element into |
Definition at line 384 of file wifi-mgt-header.h.
void ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::SerializeInPerStaProfile | ( | Buffer::Iterator | start, |
const Derived & | frame ) const |
Serialize this header into a Per-STA Profile subelement of a Multi-Link Element.
start | an iterator which points to where the header should be written |
frame | the frame containing the Multi-Link Element |
Definition at line 770 of file wifi-mgt-header.h.
|
protected |
Serialize this header into a Per-STA Profile subelement of a Multi-Link Element.
start | an iterator which points to where the header should be written |
frame | the frame containing the Multi-Link Element |
Definition at line 779 of file wifi-mgt-header.h.
References ns3::internal::DoSerialize(), ns3::internal::MustBeListedInNonInheritance(), and ns3::internal::MustBeSerializedInPerStaProfile().
|
protected |
Pass a pointer to this frame to the Multi-Link Element (if any) included in this frame.
Definition at line 971 of file wifi-mgt-header.h.
|
private |
the Non-Inheritance IE possibly appended to the Per-STA Profile subelement
Definition at line 313 of file wifi-mgt-header.h.