A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::dsr::DsrPassiveBuffer Class Reference

DSR passive buffer. More...

#include "dsr-passive-buff.h"

+ Inheritance diagram for ns3::dsr::DsrPassiveBuffer:
+ Collaboration diagram for ns3::dsr::DsrPassiveBuffer:

Public Member Functions

 DsrPassiveBuffer ()
 
 ~DsrPassiveBuffer () override
 
bool AllEqual (DsrPassiveBuffEntry &entry)
 Check if all the entries in passive buffer entry is all equal or not.
 
bool Dequeue (Ipv4Address dst, DsrPassiveBuffEntry &entry)
 Return first found (the earliest) entry for given destination.
 
bool Enqueue (DsrPassiveBuffEntry &entry)
 Push entry in queue, if there is no entry with the same packet and destination address in queue.
 
bool Find (Ipv4Address dst)
 Finds whether a packet with destination dst exists in the queue.
 
uint32_t GetMaxQueueLen () const
 Get maximum queue length.
 
Time GetPassiveBufferTimeout () const
 Get passive buffer timeout.
 
uint32_t GetSize ()
 Number of entries.
 
void SetMaxQueueLen (uint32_t len)
 Set maximum queue length.
 
void SetPassiveBufferTimeout (Time t)
 Set passive buffer timeout.
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor.
 
 ~Object () override
 Destructor.
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together.
 
void Dispose ()
 Dispose of this Object.
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object.
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object.
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId.
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object.
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one.
 
bool IsInitialized () const
 Check if the object has been initialized.
 
void UnidirectionalAggregateObject (Ptr< Object > other)
 Aggregate an Object to another Object.
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor.
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor.
 
uint32_t GetReferenceCount () const
 Get the reference count of the object.
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator.
 
void Ref () const
 Increment the reference count.
 
void Unref () const
 Decrement the reference count.
 
- 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.
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type.
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID.
 

Private Member Functions

void Drop (DsrPassiveBuffEntry en, std::string reason)
 Notify that packet is dropped from queue by timeout.
 
void DropLink (DsrPassiveBuffEntry en, std::string reason)
 Notify that packet is dropped from queue by timeout.
 
void Purge ()
 Remove all expired entries.
 

Static Private Member Functions

static bool LinkEqual (DsrPassiveBuffEntry en, const std::vector< Ipv4Address > link)
 Check if the send buffer entry is the same or not.
 

Private Attributes

uint32_t m_maxLen
 The maximum number of packets that we allow a routing protocol to buffer.
 
std::vector< DsrPassiveBuffEntrym_passiveBuffer
 The send buffer to cache unsent packet.
 
Time m_passiveBufferTimeout
 The maximum period of time that a routing protocol is allowed to buffer a packet for, seconds.
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object.
 
virtual void DoDispose ()
 Destructor implementation.
 
virtual void DoInitialize ()
 Initialize() implementation.
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated.
 
- 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.
 

Detailed Description

DSR passive buffer.

Config Paths

ns3::dsr::DsrPassiveBuffer is accessible through the following paths with Config::Set and Config::Connect:

  • "/NodeList/[i]/$ns3::dsr::DsrRouting/PassiveBuffer"

No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 96 bytes (on a 64-bit architecture).

Definition at line 285 of file dsr-passive-buff.h.

Constructor & Destructor Documentation

◆ DsrPassiveBuffer()

ns3::dsr::DsrPassiveBuffer::DsrPassiveBuffer ( )

Definition at line 60 of file dsr-passive-buff.cc.

◆ ~DsrPassiveBuffer()

ns3::dsr::DsrPassiveBuffer::~DsrPassiveBuffer ( )
override

Definition at line 64 of file dsr-passive-buff.cc.

Member Function Documentation

◆ AllEqual()

bool ns3::dsr::DsrPassiveBuffer::AllEqual ( DsrPassiveBuffEntry entry)

Check if all the entries in passive buffer entry is all equal or not.

Note
For real this function checks if at most one entry is equal. If it is, that entry is removed. Further entries are NOT checked. This could be a bug.
Parameters
entryThe Entry to check
Returns
true if an Entry was found and removed.

Definition at line 118 of file dsr-passive-buff.cc.

References ns3::dsr::DsrPassiveBuffEntry::GetDestination(), ns3::dsr::DsrPassiveBuffEntry::GetFragmentOffset(), ns3::dsr::DsrPassiveBuffEntry::GetIdentification(), ns3::dsr::DsrPassiveBuffEntry::GetNextHop(), ns3::dsr::DsrPassiveBuffEntry::GetPacket(), ns3::dsr::DsrPassiveBuffEntry::GetSegsLeft(), ns3::dsr::DsrPassiveBuffEntry::GetSource(), ns3::Packet::GetUid(), and m_passiveBuffer.

+ Here is the call graph for this function:

◆ Dequeue()

bool ns3::dsr::DsrPassiveBuffer::Dequeue ( Ipv4Address  dst,
DsrPassiveBuffEntry entry 
)

Return first found (the earliest) entry for given destination.

Parameters
[in]dstEntry destination
[out]entryThe Entry found (if any).
Returns
true on success

Definition at line 149 of file dsr-passive-buff.cc.

References ns3::dsr::DsrPassiveBuffEntry::GetPacket(), ns3::Packet::GetSize(), m_passiveBuffer, NS_LOG_DEBUG, and Purge().

+ Here is the call graph for this function:

◆ Drop()

void ns3::dsr::DsrPassiveBuffer::Drop ( DsrPassiveBuffEntry  en,
std::string  reason 
)
private

Notify that packet is dropped from queue by timeout.

Parameters
enBuffEntry Buffer entry
reasonDrop reason

Definition at line 221 of file dsr-passive-buff.cc.

References ns3::dsr::DsrPassiveBuffEntry::GetDestination(), ns3::dsr::DsrPassiveBuffEntry::GetPacket(), ns3::Packet::GetUid(), and NS_LOG_LOGIC.

Referenced by Enqueue(), and Purge().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DropLink()

void ns3::dsr::DsrPassiveBuffer::DropLink ( DsrPassiveBuffEntry  en,
std::string  reason 
)
private

Notify that packet is dropped from queue by timeout.

Parameters
enBuffEntry Buffer entry
reasonDrop reason

Definition at line 229 of file dsr-passive-buff.cc.

References ns3::dsr::DsrPassiveBuffEntry::GetNextHop(), ns3::dsr::DsrPassiveBuffEntry::GetPacket(), ns3::dsr::DsrPassiveBuffEntry::GetSource(), ns3::Packet::GetUid(), and NS_LOG_LOGIC.

+ Here is the call graph for this function:

◆ Enqueue()

bool ns3::dsr::DsrPassiveBuffer::Enqueue ( DsrPassiveBuffEntry entry)

Push entry in queue, if there is no entry with the same packet and destination address in queue.

Parameters
entryBuffer Entry
Returns
true on success adding the Entry.

Definition at line 76 of file dsr-passive-buff.cc.

References Drop(), ns3::dsr::DsrPassiveBuffEntry::GetDestination(), ns3::dsr::DsrPassiveBuffEntry::GetFragmentOffset(), ns3::dsr::DsrPassiveBuffEntry::GetIdentification(), ns3::dsr::DsrPassiveBuffEntry::GetNextHop(), ns3::dsr::DsrPassiveBuffEntry::GetPacket(), ns3::dsr::DsrPassiveBuffEntry::GetSegsLeft(), ns3::dsr::DsrPassiveBuffEntry::GetSource(), ns3::Packet::GetUid(), m_maxLen, m_passiveBuffer, m_passiveBufferTimeout, Purge(), and ns3::dsr::DsrPassiveBuffEntry::SetExpireTime().

+ Here is the call graph for this function:

◆ Find()

bool ns3::dsr::DsrPassiveBuffer::Find ( Ipv4Address  dst)

Finds whether a packet with destination dst exists in the queue.

Parameters
dstDestination.
Returns
true if there is a packet.

Definition at line 169 of file dsr-passive-buff.cc.

References m_passiveBuffer, and NS_LOG_DEBUG.

◆ GetMaxQueueLen()

uint32_t ns3::dsr::DsrPassiveBuffer::GetMaxQueueLen ( ) const
inline

Get maximum queue length.

Returns
the maximum queue length

Definition at line 326 of file dsr-passive-buff.h.

References m_maxLen.

◆ GetPassiveBufferTimeout()

Time ns3::dsr::DsrPassiveBuffer::GetPassiveBufferTimeout ( ) const
inline

Get passive buffer timeout.

Returns
the passive buffer timeout

Definition at line 344 of file dsr-passive-buff.h.

References m_passiveBufferTimeout.

◆ GetSize()

uint32_t ns3::dsr::DsrPassiveBuffer::GetSize ( )

Number of entries.

Returns
The number of entries.

Definition at line 69 of file dsr-passive-buff.cc.

References m_passiveBuffer, and Purge().

+ Here is the call graph for this function:

◆ GetTypeId()

TypeId ns3::dsr::DsrPassiveBuffer::GetTypeId ( )
static

Get the type ID.

Returns
the object TypeId

Definition at line 51 of file dsr-passive-buff.cc.

References ns3::TypeId::SetParent().

+ Here is the call graph for this function:

◆ LinkEqual()

static bool ns3::dsr::DsrPassiveBuffer::LinkEqual ( DsrPassiveBuffEntry  en,
const std::vector< Ipv4Address link 
)
inlinestaticprivate

Check if the send buffer entry is the same or not.

Parameters
enThe Entry to check
linkThe link to check
Returns
true if an Entry source and Next hop are equal to the Link parameters

Definition at line 381 of file dsr-passive-buff.h.

References ns3::dsr::DsrPassiveBuffEntry::GetNextHop(), and ns3::dsr::DsrPassiveBuffEntry::GetSource().

+ Here is the call graph for this function:

◆ Purge()

void ns3::dsr::DsrPassiveBuffer::Purge ( )
private

Remove all expired entries.

Definition at line 201 of file dsr-passive-buff.cc.

References Drop(), m_passiveBuffer, and NS_LOG_DEBUG.

Referenced by Dequeue(), Enqueue(), and GetSize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetMaxQueueLen()

void ns3::dsr::DsrPassiveBuffer::SetMaxQueueLen ( uint32_t  len)
inline

Set maximum queue length.

Parameters
lenthe maximum queue length

Definition at line 335 of file dsr-passive-buff.h.

References m_maxLen.

◆ SetPassiveBufferTimeout()

void ns3::dsr::DsrPassiveBuffer::SetPassiveBufferTimeout ( Time  t)
inline

Set passive buffer timeout.

Parameters
tthe passive buffer timeout

Definition at line 353 of file dsr-passive-buff.h.

References m_passiveBufferTimeout.

Member Data Documentation

◆ m_maxLen

uint32_t ns3::dsr::DsrPassiveBuffer::m_maxLen
private

The maximum number of packets that we allow a routing protocol to buffer.

Definition at line 372 of file dsr-passive-buff.h.

Referenced by Enqueue(), GetMaxQueueLen(), and SetMaxQueueLen().

◆ m_passiveBuffer

std::vector<DsrPassiveBuffEntry> ns3::dsr::DsrPassiveBuffer::m_passiveBuffer
private

The send buffer to cache unsent packet.

Definition at line 360 of file dsr-passive-buff.h.

Referenced by AllEqual(), Dequeue(), Enqueue(), Find(), GetSize(), and Purge().

◆ m_passiveBufferTimeout

Time ns3::dsr::DsrPassiveBuffer::m_passiveBufferTimeout
private

The maximum period of time that a routing protocol is allowed to buffer a packet for, seconds.

Definition at line 375 of file dsr-passive-buff.h.

Referenced by Enqueue(), GetPassiveBufferTimeout(), and SetPassiveBufferTimeout().


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