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

See 7.3.2.96 of 802.11s draft 2.07. More...

#include <ie-dot11s-preq.h>

+ Inheritance diagram for ns3::dot11s::IePreq:

Public Member Functions

void AddDestinationAddressElement (bool doFlag, bool rfFlag, Mac48Address dest_address, uint32_t dest_seq_number)
 
void ClearDestinationAddressElements ()
 Clear PREQ: remove all destinations.
 
void DecrementTtl ()
 
void DelDestinationAddressElement (Mac48Address dest_address)
 Delete a destination address unit by destination.
 
std::vector< Ptr
< DestinationAddressUnit > > 
GetDestinationList ()
 Get all destinations, which are stored in PREQ:
 
void IncrementMetric (uint32_t metric)
 
bool IsFull () const
 
bool MayAddAddress (Mac48Address originator)
 
void SetNeedNotPrep ()
 
void SetUnicastPreq ()
 SetProper flags which indicate that PREQ is unicast.
 
Setters for fields:
void SetHopcount (uint8_t hopcount)
 
void SetTTL (uint8_t ttl)
 
void SetPreqID (uint32_t id)
 
void SetOriginatorAddress (Mac48Address originator_address)
 
void SetOriginatorSeqNumber (uint32_t originator_seq_number)
 
void SetLifetime (uint32_t lifetime)
 
void SetMetric (uint32_t metric)
 
void SetDestCount (uint8_t dest_count)
 
Getters for fields:
bool IsUnicastPreq () const
 
bool IsNeedNotPrep () const
 
uint8_t GetHopCount () const
 
uint8_t GetTtl () const
 
uint32_t GetPreqID () const
 
Mac48Address GetOriginatorAddress () const
 
uint32_t GetOriginatorSeqNumber () const
 
uint32_t GetLifetime () const
 
uint32_t GetMetric () const
 
uint8_t GetDestCount () const
 
Inherited from WifiInformationElement
virtual WifiInformationElementId ElementId () const
 Own unique Element ID.
 
virtual void SerializeInformationField (Buffer::Iterator i) const
 
virtual uint8_t DeserializeInformationField (Buffer::Iterator i, uint8_t length)
 
virtual uint8_t GetInformationFieldSize () const
 
virtual void Print (std::ostream &os) const
 In addition, a subclass may optionally override the following... More...
 
- Public Member Functions inherited from ns3::WifiInformationElement
Buffer::Iterator Deserialize (Buffer::Iterator i)
 
Buffer::Iterator DeserializeIfPresent (Buffer::Iterator i)
 
uint16_t GetSerializedSize () const
 
Buffer::Iterator Serialize (Buffer::Iterator i) const
 Serialize entire IE including Element ID and length fields.
 
virtual bool operator< (WifiInformationElement const &a) const
 Compare information elements using Element ID.
 
virtual bool operator== (WifiInformationElement const &a) const
 
- Public Member Functions inherited from ns3::SimpleRefCount< WifiInformationElement >
 SimpleRefCount (const SimpleRefCount &o)
 
uint32_t GetReferenceCount (void) const
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 
void Ref (void) const
 
void Unref (void) const
 

Private Attributes

uint8_t m_destCount
 
std::vector< Ptr
< DestinationAddressUnit > > 
m_destinations
 
uint8_t m_flags
 
uint8_t m_hopCount
 
uint32_t m_lifetime
 
uint8_t m_maxSize
 
uint32_t m_metric
 
Mac48Address m_originatorAddress
 
uint32_t m_originatorSeqNumber
 
uint32_t m_preqId
 
uint8_t m_ttl
 

Friends

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

Additional Inherited Members

- Static Public Member Functions inherited from ns3::SimpleRefCount< WifiInformationElement >
static void Cleanup (void)
 

Detailed Description

See 7.3.2.96 of 802.11s draft 2.07.

Definition at line 61 of file ie-dot11s-preq.h.

Member Function Documentation

void ns3::dot11s::IePreq::AddDestinationAddressElement ( bool  doFlag,
bool  rfFlag,
Mac48Address  dest_address,
uint32_t  dest_seq_number 
)

Add a destination address unit: flags, destination and sequence number

Definition at line 340 of file ie-dot11s-preq.cc.

Referenced by ns3::dot11s::HwmpProtocolMac::RequestDestination(), and ns3::dot11s::HwmpProtocol::SendProactivePreq().

void ns3::dot11s::IePreq::DecrementTtl ( )

Handle TTL and Metric:

Definition at line 203 of file ie-dot11s-preq.cc.

uint8_t ns3::dot11s::IePreq::DeserializeInformationField ( Buffer::Iterator  start,
uint8_t  length 
)
virtual

Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)

Implements ns3::WifiInformationElement.

Definition at line 253 of file ie-dot11s-preq.cc.

References ns3::Buffer::Iterator::GetDistanceFrom(), m_flags, NS_ASSERT, ns3::Buffer::Iterator::ReadLsbtohU32(), and ns3::Buffer::Iterator::ReadU8().

uint8_t ns3::dot11s::IePreq::GetInformationFieldSize ( ) const
virtual

Length of serialized information (i.e., the length of the body of the IE, not including the Element ID and length octets. This is the value that will appear in the second octet of the entire IE - the length field)

Implements ns3::WifiInformationElement.

Definition at line 295 of file ie-dot11s-preq.cc.

References m_maxSize.

void ns3::dot11s::IePreq::Print ( std::ostream &  os) const
virtual

In addition, a subclass may optionally override the following...

Generate human-readable form of IE

Reimplemented from ns3::WifiInformationElement.

Definition at line 317 of file ie-dot11s-preq.cc.

References ElementId().

void ns3::dot11s::IePreq::SerializeInformationField ( Buffer::Iterator  start) const
virtual

Serialize information (i.e., the body of the IE, not including the Element ID and length octets)

Implements ns3::WifiInformationElement.

Definition at line 214 of file ie-dot11s-preq.cc.

References m_flags, m_maxSize, ns3::Buffer::Iterator::WriteHtolsbU32(), and ns3::Buffer::Iterator::WriteU8().

Member Data Documentation

uint8_t ns3::dot11s::IePreq::m_flags
private

Fields of information element:

Definition at line 139 of file ie-dot11s-preq.h.

Referenced by DeserializeInformationField(), SerializeInformationField(), and SetUnicastPreq().

uint8_t ns3::dot11s::IePreq::m_maxSize
private

how many destinations we support

Definition at line 135 of file ie-dot11s-preq.h.

Referenced by GetInformationFieldSize(), and SerializeInformationField().


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