A Discrete-Event Network Simulator
API
ns3::CoDelQueue Class Reference

A CoDel packet queue. More...

#include "codel-queue.h"

+ Inheritance diagram for ns3::CoDelQueue:
+ Collaboration diagram for ns3::CoDelQueue:

Public Member Functions

 CoDelQueue ()
 CoDelQueue Constructor. More...
 
virtual ~CoDelQueue ()
 
uint32_t GetDropCount (void)
 Get the number of packets dropped according to CoDel algorithm. More...
 
uint32_t GetDropNext (void)
 Get the time for next packet drop while in the dropping state. More...
 
uint32_t GetDropOverLimit (void)
 Get the number of packets dropped when packets arrive at a full queue and cannot be enqueued. More...
 
Time GetInterval (void)
 Get the interval. More...
 
CoDelQueue::QueueMode GetMode (void)
 Get the encapsulation mode of this device. More...
 
uint32_t GetQueueSize (void)
 Get the current value of the queue in bytes or packets. More...
 
Time GetTarget (void)
 Get the target queue delay. More...
 
void SetMode (CoDelQueue::QueueMode mode)
 Set the operating mode of this device. More...
 
- Public Member Functions inherited from ns3::Queue
 Queue ()
 
virtual ~Queue ()
 
Ptr< PacketDequeue (void)
 Remove a packet from the front of the Queue. More...
 
void DequeueAll (void)
 Flush the queue. More...
 
bool Enqueue (Ptr< Packet > p)
 Place a packet into the rear of the Queue. More...
 
uint32_t GetNBytes (void) const
 
uint32_t GetNPackets (void) const
 
uint32_t GetTotalDroppedBytes (void) const
 
uint32_t GetTotalDroppedPackets (void) const
 
uint32_t GetTotalReceivedBytes (void) const
 
uint32_t GetTotalReceivedPackets (void) const
 
bool IsEmpty (void) const
 
Ptr< const PacketPeek (void) const
 Get a copy of the item at the front of the queue without removing it. More...
 
void ResetStatistics (void)
 Resets the counts for dropped packets, dropped bytes, received packets, and received bytes. More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose (void)
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator (void) const
 Get an iterator to the Objects aggregated to this one. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Implement the GetInstanceTypeId method defined in ObjectBase. More...
 
template<typename T >
Ptr< T > GetObject (void) const
 Get a pointer to the requested aggregated Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. More...
 
void Initialize (void)
 Invoke DoInitialize on all Objects aggregated to this one. 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...
 
SimpleRefCountoperator= (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
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising erros. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::Queue
static TypeId GetTypeId (void)
 Get the type ID. More...
 
- 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

bool CoDelTimeAfter (uint32_t a, uint32_t b)
 Check if CoDel time a is successive to b. More...
 
bool CoDelTimeAfterEq (uint32_t a, uint32_t b)
 Check if CoDel time a is successive or equal to b. More...
 
bool CoDelTimeBefore (uint32_t a, uint32_t b)
 Check if CoDel time a is preceding b. More...
 
bool CoDelTimeBeforeEq (uint32_t a, uint32_t b)
 Check if CoDel time a is preceding or equal to b. More...
 
uint32_t ControlLaw (uint32_t t)
 Determine the time for next drop CoDel control law is t + m_interval/sqrt(m_count). More...
 
virtual Ptr< PacketDoDequeue (void)
 Remove a packet from queue based on the current state If we are in dropping state, check if we could leave the dropping state or if we should perform next drop If we are not currently in dropping state, check if we need to enter the state and drop the first packet. More...
 
virtual bool DoEnqueue (Ptr< Packet > p)
 Add a packet to the queue. More...
 
virtual Ptr< const PacketDoPeek (void) const
 Peek the front packet in the queue. More...
 
void NewtonStep (void)
 Calculate the reciprocal square root of m_count by using Newton's method http://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Iterative_methods_for_reciprocal_square_roots m_recInvSqrt (new) = (m_recInvSqrt (old) / 2) * (3 - m_count * m_recInvSqrt^2) More...
 
bool OkToDrop (Ptr< Packet > p, uint32_t now)
 Determine whether a packet is OK to be dropped. More...
 
uint32_t Time2CoDel (Time t)
 returned unsigned 32-bit integer representation of the input Time object units are microseconds More...
 

Private Attributes

TracedValue< uint32_t > m_bytesInQueue
 The total number of bytes in queue. More...
 
TracedValue< uint32_t > m_count
 Number of packets dropped since entering drop state. More...
 
TracedValue< uint32_t > m_dropCount
 Number of dropped packets according CoDel algorithm. More...
 
TracedValue< uint32_t > m_dropNext
 Time to drop next packet. More...
 
uint32_t m_dropOverLimit
 The number of packets dropped due to full queue. More...
 
TracedValue< bool > m_dropping
 True if in dropping state. More...
 
uint32_t m_firstAboveTime
 Time to declare sojourn time above target. More...
 
Time m_interval
 100 ms sliding minimum time window width More...
 
TracedValue< uint32_t > m_lastCount
 Last number of packets dropped since entering drop state. More...
 
uint32_t m_maxBytes
 Max # of bytes accepted by the queue. More...
 
uint32_t m_maxPackets
 Max # of packets accepted by the queue. More...
 
uint32_t m_minBytes
 Minimum bytes in queue to allow a packet drop. More...
 
QueueMode m_mode
 The operating mode (Bytes or packets) More...
 
std::queue< Ptr< Packet > > m_packets
 The packet queue. More...
 
uint16_t m_recInvSqrt
 Reciprocal inverse square root. More...
 
TracedValue< Timem_sojourn
 Time in queue. More...
 
uint32_t m_state1
 Number of times packet sojourn goes above target for interval. More...
 
uint32_t m_state2
 Number of times we perform next drop while in dropping state. More...
 
uint32_t m_state3
 Number of times we enter drop state and drop the fist packet. More...
 
uint32_t m_states
 Total number of times we are in state 1, state 2, or state 3. More...
 
Time m_target
 5 ms target queue delay More...
 

Additional Inherited Members

- Public Types inherited from ns3::Queue
enum  QueueMode { QUEUE_MODE_PACKETS, QUEUE_MODE_BYTES }
 Enumeration of the modes supported in the class. More...
 
- Protected Member Functions inherited from ns3::Queue
void Drop (Ptr< Packet > packet)
 Drop a packet. More...
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object. More...
 
virtual void DoDispose (void)
 Destructor implementation. More...
 
virtual void DoInitialize (void)
 Initialize() implementation. More...
 
virtual void NotifyNewAggregate (void)
 Notify all Objects aggregated to this one of a new Object being aggregated. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes. More...
 
virtual void NotifyConstructionCompleted (void)
 Notifier called once the ObjectBase is fully constructed. More...
 
- Protected Attributes inherited from ns3::Queue
uint32_t m_nBytes
 Number of bytes in the queue. More...
 
uint32_t m_nPackets
 Number of packets in the queue. More...
 
uint32_t m_nTotalDroppedBytes
 Total dropped bytes. More...
 
uint32_t m_nTotalDroppedPackets
 Total dropped packets. More...
 
uint32_t m_nTotalReceivedBytes
 Total received bytes. More...
 
uint32_t m_nTotalReceivedPackets
 Total received packets. More...
 
TracedCallback< Ptr< const Packet > > m_traceDequeue
 Traced callback: fired when a packet is dequeued. More...
 
TracedCallback< Ptr< const Packet > > m_traceDrop
 Traced callback: fired when a packet is dropped. More...
 
TracedCallback< Ptr< const Packet > > m_traceEnqueue
 Traced callback: fired when a packet is enqueued. More...
 

Detailed Description

A CoDel packet queue.

Config Paths

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

  • "/NodeList/[i]/DeviceList/[i]/$ns3::SimpleNetDevice/TxQueue/$ns3::CoDelQueue"
  • "/NodeList/[i]/DeviceList/[i]/$ns3::CsmaNetDevice/TxQueue/$ns3::CoDelQueue"
  • "/NodeList/[i]/DeviceList/[i]/$ns3::PointToPointNetDevice/TxQueue/$ns3::CoDelQueue"
  • "/NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Queue/$ns3::CoDelQueue"

Attributes

  • Mode: Whether to use Bytes (see MaxBytes) or Packets (see MaxPackets) as the maximum queue size metric.
    • Set with class: ns3::EnumValue
    • Underlying type:
    • Initial value: QUEUE_MODE_BYTES
    • Flags: construct write
  • MaxPackets: The maximum number of packets accepted by this CoDelQueue.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 0:4294967295
    • Initial value: 1000
    • Flags: construct write read
  • MaxBytes: The maximum number of bytes accepted by this CoDelQueue.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 0:4294967295
    • Initial value: 1500000
    • Flags: construct write read
  • MinBytes: The CoDel algorithm minbytes parameter.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 0:4294967295
    • Initial value: 1500
    • Flags: construct write read
  • Interval: The CoDel algorithm interval
    • Set with class: ns3::TimeValue
    • Underlying type: Time –9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: 100ms
    • Flags: construct write read
  • Target: The CoDel algorithm target queue delay
    • Set with class: ns3::TimeValue
    • Underlying type: Time –9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: 5ms
    • Flags: construct write read

TraceSources

TraceSources defined in parent class ns3::Queue

Size of this type is 416 bytes (on a 64-bit architecture).

Definition at line 63 of file codel-queue.h.

Constructor & Destructor Documentation

ns3::CoDelQueue::CoDelQueue ( )

CoDelQueue Constructor.

Creates a CoDel queue

Definition at line 217 of file codel-queue.cc.

References NS_LOG_FUNCTION.

ns3::CoDelQueue::~CoDelQueue ( )
virtual

Definition at line 239 of file codel-queue.cc.

References NS_LOG_FUNCTION.

Member Function Documentation

bool ns3::CoDelQueue::CoDelTimeAfter ( uint32_t  a,
uint32_t  b 
)
private

Check if CoDel time a is successive to b.

Parameters
aleft operand
bright operand
Returns
true if a is greater than b

Definition at line 575 of file codel-queue.cc.

Referenced by OkToDrop().

+ Here is the caller graph for this function:

bool ns3::CoDelQueue::CoDelTimeAfterEq ( uint32_t  a,
uint32_t  b 
)
private

Check if CoDel time a is successive or equal to b.

Parameters
aleft operand
bright operand
Returns
true if a is greater than or equal to b

Definition at line 581 of file codel-queue.cc.

Referenced by DoDequeue().

+ Here is the caller graph for this function:

bool ns3::CoDelQueue::CoDelTimeBefore ( uint32_t  a,
uint32_t  b 
)
private

Check if CoDel time a is preceding b.

Parameters
aleft operand
bright operand
Returns
true if a is less than to b

Definition at line 587 of file codel-queue.cc.

Referenced by DoDequeue(), and OkToDrop().

+ Here is the caller graph for this function:

bool ns3::CoDelQueue::CoDelTimeBeforeEq ( uint32_t  a,
uint32_t  b 
)
private

Check if CoDel time a is preceding or equal to b.

Parameters
aleft operand
bright operand
Returns
true if a is less than or equal to b

Definition at line 593 of file codel-queue.cc.

uint32_t ns3::CoDelQueue::ControlLaw ( uint32_t  t)
private

Determine the time for next drop CoDel control law is t + m_interval/sqrt(m_count).

Here, we use m_recInvSqrt calculated by Newton's method in NewtonStep() to avoid both sqrt() and divide operations

Parameters
tCurrent next drop time
Returns
The new next drop time:

Definition at line 258 of file codel-queue.cc.

References m_interval, m_recInvSqrt, NS_LOG_FUNCTION, REC_INV_SQRT_SHIFT, ns3::ReciprocalDivide(), and Time2CoDel().

Referenced by DoDequeue(), and CoDelQueueControlLawTest::DoRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Ptr< Packet > ns3::CoDelQueue::DoDequeue ( void  )
privatevirtual

Remove a packet from queue based on the current state If we are in dropping state, check if we could leave the dropping state or if we should perform next drop If we are not currently in dropping state, check if we need to enter the state and drop the first packet.

Returns
The packet that is examined

Implements ns3::Queue.

Definition at line 355 of file codel-queue.cc.

References ns3::CoDelGetTime(), CoDelTimeAfterEq(), CoDelTimeBefore(), ControlLaw(), ns3::Queue::Drop(), ns3::Packet::GetSize(), m_bytesInQueue, m_count, m_dropCount, m_dropNext, m_dropping, m_firstAboveTime, m_interval, m_lastCount, ns3::Queue::m_nBytes, ns3::Queue::m_nPackets, m_packets, m_recInvSqrt, m_state2, m_state3, m_states, ns3::Queue::m_traceDequeue, NewtonStep(), NS_LOG_FUNCTION, NS_LOG_LOGIC, OkToDrop(), REC_INV_SQRT_SHIFT, and Time2CoDel().

+ Here is the call graph for this function:

bool ns3::CoDelQueue::DoEnqueue ( Ptr< Packet p)
privatevirtual

Add a packet to the queue.

Parameters
pThe packet to be added
Returns
True if the packet can be added, False if the packet is dropped due to full queue

Implements ns3::Queue.

Definition at line 279 of file codel-queue.cc.

References ns3::Packet::AddPacketTag(), ns3::Queue::Drop(), ns3::Packet::GetSize(), m_bytesInQueue, m_dropOverLimit, m_maxBytes, m_maxPackets, m_mode, m_packets, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::Queue::QUEUE_MODE_BYTES, and ns3::Queue::QUEUE_MODE_PACKETS.

+ Here is the call graph for this function:

Ptr< const Packet > ns3::CoDelQueue::DoPeek ( void  ) const
privatevirtual

Peek the front packet in the queue.

Returns
the packet.

Implements ns3::Queue.

Definition at line 556 of file codel-queue.cc.

References m_bytesInQueue, m_packets, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

uint32_t ns3::CoDelQueue::GetDropCount ( void  )

Get the number of packets dropped according to CoDel algorithm.

Returns
The number of dropped packets

Definition at line 532 of file codel-queue.cc.

References m_dropCount.

Referenced by CoDelQueueBasicDrop::Dequeue(), and CoDelQueueBasicEnqueueDequeue::DoRun().

+ Here is the caller graph for this function:

uint32_t ns3::CoDelQueue::GetDropNext ( void  )

Get the time for next packet drop while in the dropping state.

Returns
The time for next packet drop

Definition at line 550 of file codel-queue.cc.

References m_dropNext.

Referenced by CoDelQueueBasicDrop::Dequeue().

+ Here is the caller graph for this function:

uint32_t ns3::CoDelQueue::GetDropOverLimit ( void  )

Get the number of packets dropped when packets arrive at a full queue and cannot be enqueued.

Returns
The number of dropped packets

Definition at line 526 of file codel-queue.cc.

References m_dropOverLimit.

Referenced by CoDelQueueBasicEnqueueDequeue::DoRun(), and CoDelQueueBasicOverflow::DoRun().

+ Here is the caller graph for this function:

Time ns3::CoDelQueue::GetInterval ( void  )

Get the interval.

Returns
The interval

Definition at line 544 of file codel-queue.cc.

References m_interval.

Referenced by CoDelQueueBasicDrop::Dequeue(), and CoDelQueueBasicDrop::DoRun().

+ Here is the caller graph for this function:

CoDelQueue::QueueMode ns3::CoDelQueue::GetMode ( void  )

Get the encapsulation mode of this device.

Returns
The encapsulation mode of this device.

Definition at line 272 of file codel-queue.cc.

References m_mode, and NS_LOG_FUNCTION.

Referenced by CoDelQueueBasicEnqueueDequeue::DoRun(), CoDelQueueBasicOverflow::DoRun(), CoDelQueueBasicDrop::DoRun(), GetQueueSize(), CoDelQueueBasicEnqueueDequeue::QueueTestSize(), CoDelQueueBasicOverflow::QueueTestSize(), and CoDelQueueBasicDrop::QueueTestSize().

+ Here is the caller graph for this function:

uint32_t ns3::CoDelQueue::GetQueueSize ( void  )

Get the current value of the queue in bytes or packets.

Returns
The queue size in bytes or packets.

Definition at line 508 of file codel-queue.cc.

References GetMode(), m_bytesInQueue, m_packets, NS_ABORT_MSG, NS_LOG_FUNCTION, ns3::Queue::QUEUE_MODE_BYTES, and ns3::Queue::QUEUE_MODE_PACKETS.

Referenced by CoDelQueueBasicDrop::Dequeue(), CoDelQueueBasicDrop::DoRun(), CoDelQueueBasicEnqueueDequeue::QueueTestSize(), CoDelQueueBasicOverflow::QueueTestSize(), and CoDelQueueBasicDrop::QueueTestSize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Time ns3::CoDelQueue::GetTarget ( void  )

Get the target queue delay.

Returns
The target queue delay

Definition at line 538 of file codel-queue.cc.

References m_target.

Referenced by CoDelQueueBasicDrop::Dequeue(), and CoDelQueueBasicDrop::DoRun().

+ Here is the caller graph for this function:

void ns3::CoDelQueue::NewtonStep ( void  )
private

Calculate the reciprocal square root of m_count by using Newton's method http://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Iterative_methods_for_reciprocal_square_roots m_recInvSqrt (new) = (m_recInvSqrt (old) / 2) * (3 - m_count * m_recInvSqrt^2)

Definition at line 245 of file codel-queue.cc.

References m_count, m_recInvSqrt, NS_LOG_FUNCTION, and REC_INV_SQRT_SHIFT.

Referenced by DoDequeue(), and CoDelQueueNewtonStepTest::DoRun().

+ Here is the caller graph for this function:

bool ns3::CoDelQueue::OkToDrop ( Ptr< Packet p,
uint32_t  now 
)
private

Determine whether a packet is OK to be dropped.

The packet may not be actually dropped (depending on the drop state)

Parameters
pThe packet that is considered
nowThe current time represented as 32-bit unsigned integer (us)
Returns
True if it is OK to drop the packet (sojourn time above target for at least interval)

Definition at line 313 of file codel-queue.cc.

References CoDelTimeAfter(), CoDelTimeBefore(), ns3::Time::GetSeconds(), ns3::CoDelTimestampTag::GetTxTime(), m_bytesInQueue, m_firstAboveTime, m_interval, m_minBytes, m_sojourn, m_state1, m_target, ns3::Simulator::Now(), NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC, NS_UNUSED, ns3::Packet::RemovePacketTag(), and Time2CoDel().

Referenced by DoDequeue().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::CoDelQueue::SetMode ( CoDelQueue::QueueMode  mode)

Set the operating mode of this device.

Parameters
modeThe operating mode of this device.

Definition at line 265 of file codel-queue.cc.

References m_mode, and NS_LOG_FUNCTION.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

uint32_t ns3::CoDelQueue::Time2CoDel ( Time  t)
private

returned unsigned 32-bit integer representation of the input Time object units are microseconds

Definition at line 599 of file codel-queue.cc.

References ns3::CODEL_SHIFT, and ns3::Time::GetNanoSeconds().

Referenced by CoDelQueueControlLawTest::_codel_control_law(), ControlLaw(), DoDequeue(), and OkToDrop().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

TracedValue<uint32_t> ns3::CoDelQueue::m_bytesInQueue
private

The total number of bytes in queue.

Definition at line 229 of file codel-queue.h.

Referenced by DoDequeue(), DoEnqueue(), DoPeek(), GetQueueSize(), GetTypeId(), and OkToDrop().

TracedValue<uint32_t> ns3::CoDelQueue::m_count
private

Number of packets dropped since entering drop state.

Definition at line 233 of file codel-queue.h.

Referenced by DoDequeue(), CoDelQueueNewtonStepTest::DoRun(), GetTypeId(), and NewtonStep().

TracedValue<uint32_t> ns3::CoDelQueue::m_dropCount
private

Number of dropped packets according CoDel algorithm.

Definition at line 234 of file codel-queue.h.

Referenced by DoDequeue(), GetDropCount(), and GetTypeId().

TracedValue<uint32_t> ns3::CoDelQueue::m_dropNext
private

Time to drop next packet.

Definition at line 239 of file codel-queue.h.

Referenced by DoDequeue(), GetDropNext(), and GetTypeId().

uint32_t ns3::CoDelQueue::m_dropOverLimit
private

The number of packets dropped due to full queue.

Definition at line 244 of file codel-queue.h.

Referenced by DoEnqueue(), and GetDropOverLimit().

TracedValue<bool> ns3::CoDelQueue::m_dropping
private

True if in dropping state.

Definition at line 236 of file codel-queue.h.

Referenced by DoDequeue(), and GetTypeId().

uint32_t ns3::CoDelQueue::m_firstAboveTime
private

Time to declare sojourn time above target.

Definition at line 238 of file codel-queue.h.

Referenced by DoDequeue(), and OkToDrop().

Time ns3::CoDelQueue::m_interval
private

100 ms sliding minimum time window width

Definition at line 231 of file codel-queue.h.

Referenced by CoDelQueueControlLawTest::_codel_control_law(), ControlLaw(), DoDequeue(), GetInterval(), GetTypeId(), and OkToDrop().

TracedValue<uint32_t> ns3::CoDelQueue::m_lastCount
private

Last number of packets dropped since entering drop state.

Definition at line 235 of file codel-queue.h.

Referenced by DoDequeue(), and GetTypeId().

uint32_t ns3::CoDelQueue::m_maxBytes
private

Max # of bytes accepted by the queue.

Definition at line 228 of file codel-queue.h.

Referenced by DoEnqueue(), and GetTypeId().

uint32_t ns3::CoDelQueue::m_maxPackets
private

Max # of packets accepted by the queue.

Definition at line 227 of file codel-queue.h.

Referenced by DoEnqueue(), and GetTypeId().

uint32_t ns3::CoDelQueue::m_minBytes
private

Minimum bytes in queue to allow a packet drop.

Definition at line 230 of file codel-queue.h.

Referenced by GetTypeId(), and OkToDrop().

QueueMode ns3::CoDelQueue::m_mode
private

The operating mode (Bytes or packets)

Definition at line 245 of file codel-queue.h.

Referenced by DoEnqueue(), GetMode(), and SetMode().

std::queue<Ptr<Packet> > ns3::CoDelQueue::m_packets
private

The packet queue.

Definition at line 226 of file codel-queue.h.

Referenced by DoDequeue(), DoEnqueue(), DoPeek(), and GetQueueSize().

uint16_t ns3::CoDelQueue::m_recInvSqrt
private

Reciprocal inverse square root.

Definition at line 237 of file codel-queue.h.

Referenced by CoDelQueueControlLawTest::_codel_control_law(), ControlLaw(), DoDequeue(), CoDelQueueNewtonStepTest::DoRun(), and NewtonStep().

TracedValue<Time> ns3::CoDelQueue::m_sojourn
private

Time in queue.

Definition at line 246 of file codel-queue.h.

Referenced by GetTypeId(), and OkToDrop().

uint32_t ns3::CoDelQueue::m_state1
private

Number of times packet sojourn goes above target for interval.

Definition at line 240 of file codel-queue.h.

Referenced by OkToDrop().

uint32_t ns3::CoDelQueue::m_state2
private

Number of times we perform next drop while in dropping state.

Definition at line 241 of file codel-queue.h.

Referenced by DoDequeue().

uint32_t ns3::CoDelQueue::m_state3
private

Number of times we enter drop state and drop the fist packet.

Definition at line 242 of file codel-queue.h.

Referenced by DoDequeue().

uint32_t ns3::CoDelQueue::m_states
private

Total number of times we are in state 1, state 2, or state 3.

Definition at line 243 of file codel-queue.h.

Referenced by DoDequeue().

Time ns3::CoDelQueue::m_target
private

5 ms target queue delay

Definition at line 232 of file codel-queue.h.

Referenced by GetTarget(), GetTypeId(), and OkToDrop().


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