DSR passive buffer. More...
#include <dsr-passive-buff.h>
Public Member Functions | |
PassiveBuffer () | |
virtual | ~PassiveBuffer () |
bool | AllEqual (PassiveBuffEntry &entry) |
Check if all the entries in passive buffer entry is all equal or not. More... | |
bool | Dequeue (Ipv4Address dst, PassiveBuffEntry &entry) |
Return first found (the earliest) entry for given destination. More... | |
bool | Enqueue (PassiveBuffEntry &entry) |
Push entry in queue, if there is no entry with the same packet and destination address in queue. More... | |
bool | Find (Ipv4Address dst) |
Finds whether a packet with destination dst exists in the queue. More... | |
uint32_t | GetSize () |
Number of entries. More... | |
Fields | |
uint32_t | GetMaxQueueLen () const |
void | SetMaxQueueLen (uint32_t len) |
Time | GetPassiveBufferTimeout () const |
void | SetPassiveBufferTimeout (Time t) |
Public Member Functions inherited from ns3::Object | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
Run the DoDispose methods of this object and all the objects aggregated to it. More... | |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
This method calls the virtual DoInitialize method on all the objects aggregated to this object. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
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::Object | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Noop. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Member Functions | |
void | Drop (PassiveBuffEntry en, std::string reason) |
Notify that packet is dropped from queue by timeout. More... | |
void | DropLink (PassiveBuffEntry en, std::string reason) |
Notify that packet is dropped from queue by timeout. More... | |
void | Purge () |
Remove all expired entries. More... | |
Static Private Member Functions | |
static bool | LinkEqual (PassiveBuffEntry en, const std::vector< Ipv4Address > link) |
Check if the send buffer entry is the same or not. More... | |
Private Attributes | |
uint32_t | m_maxLen |
The maximum number of packets that we allow a routing protocol to buffer. More... | |
std::vector< PassiveBuffEntry > | m_passiveBuffer |
The send buffer to cache unsent packet. More... | |
Time | m_passiveBufferTimeout |
The maximum period of time that a routing protocol is allowed to buffer a packet for, seconds. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
This method is called by Object::Dispose or by the object's destructor, whichever comes first. More... | |
virtual void | DoInitialize (void) |
This method is called only once by Object::Initialize. More... | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
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... | |
DSR passive buffer.
Doxygen introspection did not find any typical Config paths.
No Attributes are defined for this type.
No TraceSources are defined for this type.
Definition at line 182 of file dsr-passive-buff.h.
ns3::dsr::PassiveBuffer::PassiveBuffer | ( | ) |
Definition at line 56 of file dsr-passive-buff.cc.
|
virtual |
Definition at line 60 of file dsr-passive-buff.cc.
bool ns3::dsr::PassiveBuffer::AllEqual | ( | PassiveBuffEntry & | entry | ) |
Check if all the entries in passive buffer entry is all equal or not.
Definition at line 106 of file dsr-passive-buff.cc.
References ns3::dsr::PassiveBuffEntry::GetDestination(), ns3::dsr::PassiveBuffEntry::GetFragmentOffset(), ns3::dsr::PassiveBuffEntry::GetIdentification(), ns3::dsr::PassiveBuffEntry::GetNextHop(), ns3::dsr::PassiveBuffEntry::GetPacket(), ns3::dsr::PassiveBuffEntry::GetSegsLeft(), ns3::dsr::PassiveBuffEntry::GetSource(), ns3::Packet::GetUid(), and m_passiveBuffer.
bool ns3::dsr::PassiveBuffer::Dequeue | ( | Ipv4Address | dst, |
PassiveBuffEntry & | entry | ||
) |
Return first found (the earliest) entry for given destination.
Definition at line 128 of file dsr-passive-buff.cc.
References ns3::dsr::PassiveBuffEntry::GetPacket(), ns3::Packet::GetSize(), m_passiveBuffer, NS_LOG_DEBUG, and Purge().
|
private |
Notify that packet is dropped from queue by timeout.
Definition at line 197 of file dsr-passive-buff.cc.
References ns3::dsr::PassiveBuffEntry::GetDestination(), ns3::dsr::PassiveBuffEntry::GetPacket(), ns3::Packet::GetUid(), and NS_LOG_LOGIC.
Referenced by Enqueue(), and Purge().
|
private |
Notify that packet is dropped from queue by timeout.
Definition at line 206 of file dsr-passive-buff.cc.
References ns3::dsr::PassiveBuffEntry::GetNextHop(), ns3::dsr::PassiveBuffEntry::GetPacket(), ns3::dsr::PassiveBuffEntry::GetSource(), ns3::Packet::GetUid(), and NS_LOG_LOGIC.
bool ns3::dsr::PassiveBuffer::Enqueue | ( | PassiveBuffEntry & | entry | ) |
Push entry in queue, if there is no entry with the same packet and destination address in queue.
Definition at line 72 of file dsr-passive-buff.cc.
References Drop(), ns3::dsr::PassiveBuffEntry::GetDestination(), ns3::dsr::PassiveBuffEntry::GetFragmentOffset(), ns3::dsr::PassiveBuffEntry::GetIdentification(), ns3::dsr::PassiveBuffEntry::GetNextHop(), ns3::dsr::PassiveBuffEntry::GetPacket(), ns3::dsr::PassiveBuffEntry::GetSegsLeft(), ns3::dsr::PassiveBuffEntry::GetSource(), ns3::Packet::GetUid(), m_maxLen, m_passiveBuffer, m_passiveBufferTimeout, Purge(), and ns3::dsr::PassiveBuffEntry::SetExpireTime().
bool ns3::dsr::PassiveBuffer::Find | ( | Ipv4Address | dst | ) |
Finds whether a packet with destination dst exists in the queue.
Definition at line 148 of file dsr-passive-buff.cc.
References m_passiveBuffer, and NS_LOG_DEBUG.
|
inline |
Definition at line 203 of file dsr-passive-buff.h.
References m_maxLen.
|
inline |
Definition at line 211 of file dsr-passive-buff.h.
References m_passiveBufferTimeout.
uint32_t ns3::dsr::PassiveBuffer::GetSize | ( | ) |
Number of entries.
Definition at line 65 of file dsr-passive-buff.cc.
References m_passiveBuffer, and Purge().
|
static |
Definition at line 47 of file dsr-passive-buff.cc.
References ns3::TypeId::SetParent().
|
inlinestaticprivate |
Check if the send buffer entry is the same or not.
Definition at line 235 of file dsr-passive-buff.h.
References ns3::dsr::PassiveBuffEntry::GetNextHop(), and ns3::dsr::PassiveBuffEntry::GetSource().
|
private |
Remove all expired entries.
Definition at line 176 of file dsr-passive-buff.cc.
References Drop(), m_passiveBuffer, and NS_LOG_DEBUG.
Referenced by Dequeue(), Enqueue(), and GetSize().
|
inline |
Definition at line 207 of file dsr-passive-buff.h.
References m_maxLen.
|
inline |
Definition at line 215 of file dsr-passive-buff.h.
References m_passiveBufferTimeout.
|
private |
The maximum number of packets that we allow a routing protocol to buffer.
Definition at line 231 of file dsr-passive-buff.h.
Referenced by Enqueue(), GetMaxQueueLen(), and SetMaxQueueLen().
|
private |
The send buffer to cache unsent packet.
Definition at line 223 of file dsr-passive-buff.h.
Referenced by AllEqual(), Dequeue(), Enqueue(), Find(), GetSize(), and Purge().
|
private |
The maximum period of time that a routing protocol is allowed to buffer a packet for, seconds.
Definition at line 233 of file dsr-passive-buff.h.
Referenced by Enqueue(), GetPassiveBufferTimeout(), and SetPassiveBufferTimeout().