A Discrete-Event Network Simulator
API
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:
+ Collaboration diagram for ns3::dot11s::IePreq:

Public Member Functions

 IePreq ()
 
 ~IePreq ()
 
void AddDestinationAddressElement (bool doFlag, bool rfFlag, Mac48Address dest_address, uint32_t dest_seq_number)
 Add a destination address unit: flags, destination and sequence number. More...
 
void ClearDestinationAddressElements ()
 Clear PREQ: remove all destinations. More...
 
void DecrementTtl ()
 Handle TTL and Metric: More...
 
void DelDestinationAddressElement (Mac48Address dest_address)
 Delete a destination address unit by destination. More...
 
virtual uint8_t DeserializeInformationField (Buffer::Iterator i, uint8_t length)
 Deserialize information (i.e., the body of the IE, not including the Element ID and length octets) More...
 
virtual WifiInformationElementId ElementId () const
 Own unique Element ID. More...
 
uint8_t GetDestCount () const
 
std::vector< Ptr< DestinationAddressUnit > > GetDestinationList ()
 Get all destinations, which are stored in PREQ: More...
 
uint8_t GetHopCount () const
 
virtual uint8_t GetInformationFieldSize () const
 Length of serialized information (i.e., the length of the body of the IE, not including the Element ID and length octets. More...
 
uint32_t GetLifetime () const
 
uint32_t GetMetric () const
 
Mac48Address GetOriginatorAddress () const
 
uint32_t GetOriginatorSeqNumber () const
 
uint32_t GetPreqID () const
 
uint8_t GetTtl () const
 
void IncrementMetric (uint32_t metric)
 
bool IsFull () const
 
bool IsNeedNotPrep () const
 
bool IsUnicastPreq () const
 
bool MayAddAddress (Mac48Address originator)
 
virtual void Print (std::ostream &os) const
 Generate human-readable form of IE. More...
 
virtual void SerializeInformationField (Buffer::Iterator i) const
 Serialize information (i.e., the body of the IE, not including the Element ID and length octets) More...
 
void SetDestCount (uint8_t dest_count)
 
void SetHopcount (uint8_t hopcount)
 
void SetLifetime (uint32_t lifetime)
 
void SetMetric (uint32_t metric)
 
void SetNeedNotPrep ()
 
void SetOriginatorAddress (Mac48Address originator_address)
 
void SetOriginatorSeqNumber (uint32_t originator_seq_number)
 
void SetPreqID (uint32_t id)
 
void SetTTL (uint8_t ttl)
 
void SetUnicastPreq ()
 SetProper flags which indicate that PREQ is unicast. More...
 
- Public Member Functions inherited from ns3::WifiInformationElement
virtual ~WifiInformationElement ()
 
Buffer::Iterator Deserialize (Buffer::Iterator i)
 Deserialize entire IE, which must be present. More...
 
Buffer::Iterator DeserializeIfPresent (Buffer::Iterator i)
 Deserialize entire IE if it is present. More...
 
uint16_t GetSerializedSize () const
 Get the size of the serialized IE including Element ID and length fields. More...
 
virtual bool operator< (WifiInformationElement const &a) const
 Compare information elements using Element ID. More...
 
virtual bool operator== (WifiInformationElement const &a) const
 Compare two IEs for equality by ID & Length, and then through memcmp of serialised version. More...
 
Buffer::Iterator Serialize (Buffer::Iterator i) const
 Serialize entire IE including Element ID and length fields. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< WifiInformationElement >
 SimpleRefCount ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 

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
 how many destinations we support More...
 
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)
 Noop. More...
 

Detailed Description

See 7.3.2.96 of 802.11s draft 2.07.

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

Constructor & Destructor Documentation

ns3::dot11s::IePreq::IePreq ( )

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

ns3::dot11s::IePreq::~IePreq ( )

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

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.

Todo:
check overflow

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

References m_destCount, and m_destinations.

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

+ Here is the caller graph for this function:

void ns3::dot11s::IePreq::ClearDestinationAddressElements ( )

Clear PREQ: remove all destinations.

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

References m_destCount, and m_destinations.

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

Handle TTL and Metric:

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

References m_hopCount, and m_ttl.

void ns3::dot11s::IePreq::DelDestinationAddressElement ( Mac48Address  dest_address)

Delete a destination address unit by destination.

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

References m_destCount, and m_destinations.

Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().

+ Here is the caller graph for this function:

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)

Parameters
startan iterator which points to where the information should be written.
length
Returns
the number of bytes read

Implements ns3::WifiInformationElement.

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

References ns3::Buffer::Iterator::GetDistanceFrom(), m_destCount, m_destinations, m_flags, m_hopCount, m_lifetime, m_metric, m_originatorAddress, m_originatorSeqNumber, m_preqId, m_ttl, NS_ASSERT, ns3::ReadFrom(), ns3::Buffer::Iterator::ReadLsbtohU32(), ns3::Buffer::Iterator::ReadU8(), and visualizer.core::start().

+ Here is the call graph for this function:

WifiInformationElementId ns3::dot11s::IePreq::ElementId ( ) const
virtual

Own unique Element ID.

Implements ns3::WifiInformationElement.

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

References IE11S_PREQ.

uint8_t ns3::dot11s::IePreq::GetDestCount ( ) const

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

References m_destCount.

Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().

+ Here is the caller graph for this function:

std::vector< Ptr< DestinationAddressUnit > > ns3::dot11s::IePreq::GetDestinationList ( )

Get all destinations, which are stored in PREQ:

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

References m_destinations.

Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().

+ Here is the caller graph for this function:

uint8_t ns3::dot11s::IePreq::GetHopCount ( ) const

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

References m_hopCount.

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)

Returns
the length of serialized information

Implements ns3::WifiInformationElement.

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

References m_destCount, and m_maxSize.

Referenced by IsFull(), and MayAddAddress().

+ Here is the caller graph for this function:

uint32_t ns3::dot11s::IePreq::GetLifetime ( void  ) const

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

References m_lifetime.

Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().

+ Here is the caller graph for this function:

uint32_t ns3::dot11s::IePreq::GetMetric ( void  ) const

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

References m_metric.

Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().

+ Here is the caller graph for this function:

Mac48Address ns3::dot11s::IePreq::GetOriginatorAddress ( ) const

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

References m_originatorAddress.

Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().

+ Here is the caller graph for this function:

uint32_t ns3::dot11s::IePreq::GetOriginatorSeqNumber ( ) const

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

References m_originatorSeqNumber.

Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().

+ Here is the caller graph for this function:

uint32_t ns3::dot11s::IePreq::GetPreqID ( ) const

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

References m_preqId.

uint8_t ns3::dot11s::IePreq::GetTtl ( void  ) const

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

References m_ttl.

void ns3::dot11s::IePreq::IncrementMetric ( uint32_t  metric)

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

References m_metric.

Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().

+ Here is the caller graph for this function:

bool ns3::dot11s::IePreq::IsFull ( ) const

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

References GetInformationFieldSize().

+ Here is the call graph for this function:

bool ns3::dot11s::IePreq::IsNeedNotPrep ( ) const

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

References m_flags.

Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().

+ Here is the caller graph for this function:

bool ns3::dot11s::IePreq::IsUnicastPreq ( ) const

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

References m_flags.

bool ns3::dot11s::IePreq::MayAddAddress ( Mac48Address  originator)

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

References ns3::Mac48Address::GetBroadcast(), GetInformationFieldSize(), m_destinations, and m_originatorAddress.

+ Here is the call graph for this function:

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

Generate human-readable form of IE.

Parameters
osoutput stream

Reimplemented from ns3::WifiInformationElement.

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

References m_destCount, m_destinations, m_hopCount, m_lifetime, m_metric, m_originatorAddress, m_originatorSeqNumber, m_preqId, and m_ttl.

Referenced by ns3::dot11s::operator<<().

+ Here is the caller graph for this function:

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)

Parameters
startan iterator which points to where the information should be written.

Implements ns3::WifiInformationElement.

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

References m_destCount, m_destinations, m_flags, m_hopCount, m_lifetime, m_maxSize, m_metric, m_originatorAddress, m_originatorSeqNumber, m_preqId, m_ttl, ns3::Buffer::Iterator::WriteHtolsbU32(), ns3::WriteTo(), and ns3::Buffer::Iterator::WriteU8().

+ Here is the call graph for this function:

void ns3::dot11s::IePreq::SetDestCount ( uint8_t  dest_count)

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

References m_destCount.

void ns3::dot11s::IePreq::SetHopcount ( uint8_t  hopcount)

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

References m_hopCount.

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

+ Here is the caller graph for this function:

void ns3::dot11s::IePreq::SetLifetime ( uint32_t  lifetime)

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

References m_lifetime.

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

+ Here is the caller graph for this function:

void ns3::dot11s::IePreq::SetMetric ( uint32_t  metric)

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

References m_metric.

void ns3::dot11s::IePreq::SetNeedNotPrep ( )

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

References m_flags.

void ns3::dot11s::IePreq::SetOriginatorAddress ( Mac48Address  originator_address)
void ns3::dot11s::IePreq::SetOriginatorSeqNumber ( uint32_t  originator_seq_number)
void ns3::dot11s::IePreq::SetPreqID ( uint32_t  id)

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

References m_preqId.

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

+ Here is the caller graph for this function:

void ns3::dot11s::IePreq::SetTTL ( uint8_t  ttl)

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

References m_ttl.

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

+ Here is the caller graph for this function:

void ns3::dot11s::IePreq::SetUnicastPreq ( )

SetProper flags which indicate that PREQ is unicast.

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

References m_flags.

Friends And Related Function Documentation

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

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

Member Data Documentation

uint8_t ns3::dot11s::IePreq::m_flags
private
uint8_t ns3::dot11s::IePreq::m_hopCount
private
uint32_t ns3::dot11s::IePreq::m_lifetime
private
uint8_t ns3::dot11s::IePreq::m_maxSize
private

how many destinations we support

Todo:
make as an attribute

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

Referenced by GetInformationFieldSize(), and SerializeInformationField().

uint32_t ns3::dot11s::IePreq::m_metric
private
uint32_t ns3::dot11s::IePreq::m_originatorSeqNumber
private
uint32_t ns3::dot11s::IePreq::m_preqId
private
uint8_t ns3::dot11s::IePreq::m_ttl
private

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