A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > > Class Template Reference

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"

+ Inheritance diagram for ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >:
+ Collaboration diagram for ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >:

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
 
uint32_t Deserialize (Buffer::Iterator start) override=0
 
virtual uint32_t Deserialize (Buffer::Iterator start)=0
 Deserialize the object from a buffer iterator.
 
virtual uint32_t Deserialize (Buffer::Iterator start, Buffer::Iterator end)
 Deserialize the object from a buffer iterator.
 
virtual uint32_t GetSerializedSize () const =0
 
void Print (std::ostream &os) const override=0
 
virtual void Serialize (Buffer::Iterator start) const =0
 
virtual uint32_t Deserialize (Buffer::Iterator start)=0
 Deserialize the object from a buffer iterator.
 
virtual uint32_t Deserialize (Buffer::Iterator start, Buffer::Iterator end)
 Deserialize the object from a buffer iterator.
 
virtual void Print (std::ostream &os) const =0
 Print the object contents.
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor.
 
void GetAttribute (std::string name, AttributeValue &value) 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< NonInheritancem_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.
 

Detailed Description

template<typename Derived, typename... Elems>
class ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >

Add methods needed to serialize/deserialize a management header into a Per-STA Profile subelement of a Multi-Link Element.

Template Parameters
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 238 of file wifi-mgt-header.h.

Member Function Documentation

◆ CopyIesFromContainingFrame()

template<typename Derived , typename... Elems>
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).

Parameters
framethe frame containing the Multi-Link Element

Definition at line 960 of file wifi-mgt-header.h.

References ns3::internal::DoCopyIeFromContainingFrame(), and ns3::internal::RemoveIfNotInherited().

+ Here is the call graph for this function:

◆ DeserializeFromPerStaProfile()

template<typename Derived , typename... Elems>
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.

Parameters
startan iterator which points to where the header should be read from
lengththe expected number of bytes to read
framethe frame containing the Multi-Link Element
Returns
the number of bytes read

Definition at line 873 of file wifi-mgt-header.h.

◆ DeserializeFromPerStaProfileImpl()

template<typename Derived , typename... Elems>
uint32_t ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::DeserializeFromPerStaProfileImpl ( Buffer::Iterator  start,
uint16_t  length,
const Derived frame 
)
protected

Deserialize this header from a Per-STA Profile subelement of a Multi-Link Element.

Parameters
startan iterator which points to where the header should be read from
lengththe expected number of bytes to read
framethe frame containing the Multi-Link Element
Returns
the number of bytes read

Definition at line 883 of file wifi-mgt-header.h.

References NS_ASSERT_MSG.

◆ GetSerializedSizeInPerStaProfile()

template<typename Derived , typename... Elems>
uint32_t ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::GetSerializedSizeInPerStaProfile ( const Derived frame) const
Parameters
framethe frame containing the Multi-Link Element
Returns
the number of bytes that are needed to serialize this header into a Per-STA Profile subelement of the Multi-Link Element

Definition at line 737 of file wifi-mgt-header.h.

◆ GetSerializedSizeInPerStaProfileImpl()

template<typename Derived , typename... Elems>
uint32_t ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::GetSerializedSizeInPerStaProfileImpl ( const Derived frame) const
protected
Parameters
framethe frame containing the Multi-Link Element
Returns
the number of bytes that are needed to serialize this header into a Per-STA Profile subelement of the Multi-Link Element

Definition at line 745 of file wifi-mgt-header.h.

References ns3::internal::DoGetSerializedSize(), ns3::internal::MustBeListedInNonInheritance(), and ns3::internal::MustBeSerializedInPerStaProfile().

+ Here is the call graph for this function:

◆ InitForDeserialization()

template<typename Derived , typename... Elems>
void ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::InitForDeserialization ( std::optional< MultiLinkElement > &  optElem)
protected
Parameters
optElemthe MultiLinkElement object to initialize for deserializing the information element into

Definition at line 395 of file wifi-mgt-header.h.

◆ SerializeInPerStaProfile()

template<typename Derived , typename... Elems>
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.

Parameters
startan iterator which points to where the header should be written
framethe frame containing the Multi-Link Element

Definition at line 781 of file wifi-mgt-header.h.

◆ SerializeInPerStaProfileImpl()

template<typename Derived , typename... Elems>
void ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::SerializeInPerStaProfileImpl ( Buffer::Iterator  start,
const Derived frame 
) const
protected

Serialize this header into a Per-STA Profile subelement of a Multi-Link Element.

Parameters
startan iterator which points to where the header should be written
framethe frame containing the Multi-Link Element

Definition at line 790 of file wifi-mgt-header.h.

References ns3::internal::DoSerialize(), ns3::internal::MustBeListedInNonInheritance(), and ns3::internal::MustBeSerializedInPerStaProfile().

+ Here is the call graph for this function:

◆ SetMleContainingFrame()

template<typename Derived , typename... Elems>
void ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::SetMleContainingFrame
protected

Pass a pointer to this frame to the Multi-Link Element (if any) included in this frame.

Definition at line 982 of file wifi-mgt-header.h.

Member Data Documentation

◆ m_nonInheritance

template<typename Derived , typename... Elems>
std::optional<NonInheritance> ns3::MgtHeaderInPerStaProfile< Derived, std::tuple< Elems... > >::m_nonInheritance
private

the Non-Inheritance IE possibly appended to the Per-STA Profile subelement

Definition at line 324 of file wifi-mgt-header.h.


The documentation for this class was generated from the following file: