A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::dot11s::MeshHeader Class Reference

Mesh Control field, see IEEE 802.11s draft 3.0 section 7.1.3.5b. More...

#include <dot11s-mac-header.h>

+ Inheritance diagram for ns3::dot11s::MeshHeader:
+ Collaboration diagram for ns3::dot11s::MeshHeader:

Public Member Functions

 MeshHeader ()
 
 ~MeshHeader ()
 
virtual uint32_t Deserialize (Buffer::Iterator start)
 
Mac48Address GetAddr4 () const
 
Mac48Address GetAddr5 () const
 
Mac48Address GetAddr6 () const
 
uint8_t GetAddressExt () const
 
virtual TypeId GetInstanceTypeId () const
 
uint32_t GetMeshSeqno () const
 
uint8_t GetMeshTtl () const
 
virtual uint32_t GetSerializedSize () const
 
virtual void Print (std::ostream &os) const
 
virtual void Serialize (Buffer::Iterator start) const
 
void SetAddr4 (Mac48Address address)
 
void SetAddr5 (Mac48Address address)
 
void SetAddr6 (Mac48Address address)
 
void SetAddressExt (uint8_t num_of_addresses)
 
void SetMeshSeqno (uint32_t seqno)
 
void SetMeshTtl (uint8_t TTL)
 
- Public Member Functions inherited from ns3::Header
virtual ~Header ()
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 

Static Public Member Functions

static TypeId GetTypeId ()
 
- Static Public Member Functions inherited from ns3::Header
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Chunk
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Attributes

Mac48Address m_addr4
 
Mac48Address m_addr5
 
Mac48Address m_addr6
 
uint8_t m_meshFlags
 
uint32_t m_meshSeqno
 
uint8_t m_meshTtl
 

Friends

bool operator== (const MeshHeader &a, const MeshHeader &b)
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 This method is invoked once all member attributes have been initialized. More...
 

Detailed Description

Mesh Control field, see IEEE 802.11s draft 3.0 section 7.1.3.5b.

Header format: | Mesh flags: 1 | TTL: 1 | Sequence number: 4 | Address ext.: 0, 6, 12 or 18 |

Definition at line 37 of file dot11s-mac-header.h.

Constructor & Destructor Documentation

ns3::dot11s::MeshHeader::MeshHeader ( )

Definition at line 39 of file dot11s-mac-header.cc.

ns3::dot11s::MeshHeader::~MeshHeader ( )

Definition at line 44 of file dot11s-mac-header.cc.

Member Function Documentation

uint32_t ns3::dot11s::MeshHeader::Deserialize ( Buffer::Iterator  start)
virtual
Parameters
startan iterator which points to where the header should written.
Returns
the number of bytes read.

This method is used by Packet::RemoveHeader to re-create a header from the byte buffer of a packet. The data read is expected to match bit-for-bit the representation of this header in real networks.

Implements ns3::Header.

Definition at line 141 of file dot11s-mac-header.cc.

References ns3::Buffer::Iterator::GetDistanceFrom(), m_addr4, m_addr5, m_addr6, m_meshFlags, m_meshSeqno, m_meshTtl, ns3::ReadFrom(), ns3::Buffer::Iterator::ReadLsbtohU32(), ns3::Buffer::Iterator::ReadU8(), and visualizer.core::start().

+ Here is the call graph for this function:

Mac48Address ns3::dot11s::MeshHeader::GetAddr4 ( ) const

Definition at line 68 of file dot11s-mac-header.cc.

References m_addr4.

Mac48Address ns3::dot11s::MeshHeader::GetAddr5 ( ) const

Definition at line 73 of file dot11s-mac-header.cc.

References m_addr5.

Mac48Address ns3::dot11s::MeshHeader::GetAddr6 ( ) const

Definition at line 78 of file dot11s-mac-header.cc.

References m_addr6.

uint8_t ns3::dot11s::MeshHeader::GetAddressExt ( ) const

Definition at line 109 of file dot11s-mac-header.cc.

References m_meshFlags.

Referenced by GetSerializedSize(), and Serialize().

+ Here is the caller graph for this function:

TypeId ns3::dot11s::MeshHeader::GetInstanceTypeId ( ) const
virtual
Returns
the TypeId associated to the most-derived type of this instance.

This method is typically implemented by ns3::Object::GetInstanceTypeId but some classes which derive from ns3::ObjectBase directly have to implement it themselves.

Implements ns3::ObjectBase.

Definition at line 48 of file dot11s-mac-header.cc.

References GetTypeId().

+ Here is the call graph for this function:

uint32_t ns3::dot11s::MeshHeader::GetMeshSeqno ( ) const

Definition at line 88 of file dot11s-mac-header.cc.

References m_meshSeqno.

uint8_t ns3::dot11s::MeshHeader::GetMeshTtl ( ) const

Definition at line 98 of file dot11s-mac-header.cc.

References m_meshTtl.

uint32_t ns3::dot11s::MeshHeader::GetSerializedSize ( ) const
virtual
Returns
the expected size of the header.

This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. This method should return the number of bytes which are needed to store the full header data by Serialize.

Implements ns3::Header.

Definition at line 114 of file dot11s-mac-header.cc.

References GetAddressExt().

+ Here is the call graph for this function:

TypeId ns3::dot11s::MeshHeader::GetTypeId ( void  )
static

Definition at line 32 of file dot11s-mac-header.cc.

References ns3::TypeId::SetParent().

Referenced by GetInstanceTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::dot11s::MeshHeader::Print ( std::ostream &  os) const
virtual
Parameters
osoutput stream This method is used by Packet::Print to print the content of a trailer as ascii data to a c++ output stream. Although the trailer is free to format its output as it wishes, it is recommended to follow a few rules to integrate with the packet pretty printer: start with flags, small field values located between a pair of parens. Values should be separated by whitespace. Follow the parens with the important fields, separated by whitespace. i.e.: (field1 val1 field2 val2 field3 val3) field4 val4 field5 val5

Implements ns3::Header.

Definition at line 164 of file dot11s-mac-header.cc.

References m_addr4, m_addr5, m_addr6, m_meshFlags, m_meshSeqno, and m_meshTtl.

void ns3::dot11s::MeshHeader::Serialize ( Buffer::Iterator  start) const
virtual
Parameters
startan iterator which points to where the header should be written.

This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. The data written is expected to match bit-for-bit the representation of this header in a real network.

Implements ns3::Header.

Definition at line 119 of file dot11s-mac-header.cc.

References GetAddressExt(), m_addr4, m_addr5, m_addr6, m_meshFlags, m_meshSeqno, m_meshTtl, visualizer.core::start(), ns3::Buffer::Iterator::WriteHtolsbU32(), ns3::WriteTo(), and ns3::Buffer::Iterator::WriteU8().

+ Here is the call graph for this function:

void ns3::dot11s::MeshHeader::SetAddr4 ( Mac48Address  address)

Definition at line 53 of file dot11s-mac-header.cc.

References first::address, and m_addr4.

Referenced by ns3::dot11s::MeshHeaderTest::DoRun().

+ Here is the caller graph for this function:

void ns3::dot11s::MeshHeader::SetAddr5 ( Mac48Address  address)

Definition at line 58 of file dot11s-mac-header.cc.

References first::address, and m_addr5.

Referenced by ns3::dot11s::MeshHeaderTest::DoRun().

+ Here is the caller graph for this function:

void ns3::dot11s::MeshHeader::SetAddr6 ( Mac48Address  address)

Definition at line 63 of file dot11s-mac-header.cc.

References first::address, and m_addr6.

Referenced by ns3::dot11s::MeshHeaderTest::DoRun().

+ Here is the caller graph for this function:

void ns3::dot11s::MeshHeader::SetAddressExt ( uint8_t  num_of_addresses)

Definition at line 103 of file dot11s-mac-header.cc.

References m_meshFlags, and NS_ASSERT.

Referenced by ns3::dot11s::MeshHeaderTest::DoRun().

+ Here is the caller graph for this function:

void ns3::dot11s::MeshHeader::SetMeshSeqno ( uint32_t  seqno)

Definition at line 83 of file dot11s-mac-header.cc.

References m_meshSeqno.

Referenced by ns3::dot11s::MeshHeaderTest::DoRun(), and ns3::dot11s::HwmpProtocolMac::UpdateOutcomingFrame().

+ Here is the caller graph for this function:

void ns3::dot11s::MeshHeader::SetMeshTtl ( uint8_t  TTL)

Definition at line 93 of file dot11s-mac-header.cc.

References m_meshTtl.

Referenced by ns3::dot11s::MeshHeaderTest::DoRun(), and ns3::dot11s::HwmpProtocolMac::UpdateOutcomingFrame().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

bool operator== ( const MeshHeader a,
const MeshHeader b 
)
friend

Definition at line 171 of file dot11s-mac-header.cc.

Member Data Documentation

Mac48Address ns3::dot11s::MeshHeader::m_addr4
private
Mac48Address ns3::dot11s::MeshHeader::m_addr5
private
Mac48Address ns3::dot11s::MeshHeader::m_addr6
private
uint8_t ns3::dot11s::MeshHeader::m_meshFlags
private
uint32_t ns3::dot11s::MeshHeader::m_meshSeqno
private
uint8_t ns3::dot11s::MeshHeader::m_meshTtl
private

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