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 >+...)==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> | |
| 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> | |
| const std::vector< T > & | Get () const |
| 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. | |
| 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 229 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 CopyIesFromContainingFrame(), ns3::internal::DoCopyIeFromContainingFrame(), ns3::WifiMgtHeader< Derived, std::tuple< Elems... > >::m_elements, m_nonInheritance, and ns3::internal::RemoveIfNotInherited().
Referenced by CopyIesFromContainingFrame().
| 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.
References DeserializeFromPerStaProfile(), and DeserializeFromPerStaProfileImpl().
Referenced by DeserializeFromPerStaProfile().
|
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 DeserializeFromPerStaProfileImpl(), ns3::internal::DoCopyIeFromContainingFrame(), ns3::WifiMgtHeader< Derived, std::tuple< Elems... > >::DoDeserialize(), ns3::WifiMgtHeader< Derived, std::tuple< Elems... > >::m_elements, m_nonInheritance, and NS_ASSERT_MSG.
Referenced by DeserializeFromPerStaProfile(), and DeserializeFromPerStaProfileImpl().
| 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.
References GetSerializedSizeInPerStaProfile(), and GetSerializedSizeInPerStaProfileImpl().
Referenced by GetSerializedSizeInPerStaProfile().
|
protected |
| frame | the frame containing the Multi-Link Element |
Definition at line 734 of file wifi-mgt-header.h.
References ns3::internal::DoGetSerializedSize(), GetSerializedSizeInPerStaProfileImpl(), ns3::WifiMgtHeader< Derived, std::tuple< Elems... > >::m_elements, ns3::internal::MustBeListedInNonInheritance(), and ns3::internal::MustBeSerializedInPerStaProfile().
Referenced by GetSerializedSizeInPerStaProfile(), and GetSerializedSizeInPerStaProfileImpl().
|
protected |
| optElem | the MultiLinkElement object to initialize for deserializing the information element into |
Definition at line 384 of file wifi-mgt-header.h.
References InitForDeserialization().
Referenced by InitForDeserialization().
| 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.
References SerializeInPerStaProfile(), and SerializeInPerStaProfileImpl().
Referenced by SerializeInPerStaProfile().
|
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::WifiMgtHeader< Derived, std::tuple< Elems... > >::m_elements, ns3::internal::MustBeListedInNonInheritance(), ns3::internal::MustBeSerializedInPerStaProfile(), and SerializeInPerStaProfileImpl().
Referenced by SerializeInPerStaProfile(), and SerializeInPerStaProfileImpl().
|
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.
References ns3::WifiMgtHeader< Derived, std::tuple< Elems... > >::Get(), and SetMleContainingFrame().
Referenced by SetMleContainingFrame().
|
private |
the Non-Inheritance IE possibly appended to the Per-STA Profile subelement
Definition at line 315 of file wifi-mgt-header.h.
Referenced by CopyIesFromContainingFrame(), and DeserializeFromPerStaProfileImpl().