senf::ppi::QueueingDiscipline Class Reference

Queueing discipline base class. More...

#include <senf/PPI/Queueing.hh>

Inheritance diagram for senf::ppi::QueueingDiscipline:
Inheritance graph
[legend]

List of all members.


Detailed Description

Queueing discipline base class.

QueueingDescipline derived classes define the generation of throttling notifications. The QueueingDiscipline is called whenever the packets are entered or removed from the queue. The queueing discipline then determines the new throttling state of the queue.

Note:
The QueueingDiscipline will never drop packets explicitly. This is left to the operating system by sending throttling events. The PPI will never loose a packet internally (if not a module explicitly does so), however it may disable reception of new incoming packets which will then probably be dropped by the operating system.
Attention:
Notifications may be forwarded to the QueueingDiscipline implementation out-of-order: A dequeue event may be notified before the corresponding enqueue event (this happens to optimize away transient throttling state changes which would otherwise occur if a packet is entered into the queue and then removed from it in the same processing step).

Definition at line 55 of file Queueing.hh.


Public Types

enum   Event { ENQUEUE, DEQUEUE }
enum   None_t { NONE }

Public Member Functions

virtual  ~QueueingDiscipline ()
virtual void  update (connector::GenericPassiveInput &input, Event event)=0
  Calculate new queueing state.

Member Enumeration Documentation

enum senf::ppi::QueueingDiscipline::
Event
Enumerator:
ENQUEUE 
DEQUEUE 

Definition at line 60 of file Queueing.hh.

enum senf::ppi::QueueingDiscipline::
None_t
Enumerator:
NONE 

Definition at line 61 of file Queueing.hh.


Constructor & Destructor Documentation

senf::ppi::QueueingDiscipline::
~QueueingDiscipline ()

Definition at line 34 of file Queueing.cci.


Member Function Documentation

virtual void senf::ppi::QueueingDiscipline::
update ( connector::GenericPassiveInput input,
Event  event )

Calculate new queueing state.

Whenever the queue is manipulated, this member is called to calculate the new throttling state. The member must call input's throttle() or unthrottle() member to set the new throttling state.

Parameters:
[in]  input  Connector holding the queue
[in]  event  Type of event triggering the update

Implemented in senf::ppi::ThresholdQueueing.


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