Priority Queue implementation in PowerDEVS

The model

Based on the conceptual model:


Priority Queue

It is a coupled model composed by:

  • PrioritySelect: selects to which queue each incoming packet should go to. The decision is taken based on the TypeOfService field (defined in the QoSProtocol), and a mapping table (this is not implemented yet)
  • VQueues: this is a Vectorial model that instanciates N queues (this queues uses outport 0 to send packets, and outport 1 to inform all size changes)
  • WRRScheduler: Implements the weighted round-robin from the queues.
    • inport 0: receives queueSize change notification from all queues
    • inport 1: received dequeue requests (from the link)
    • outport 0: upon receiving a dequeue request, it forwards the request to the adequate VQueue according to the WRR algorithm.
The WRRScheduler model was tested using the DEVSUnitTest framework (see


Without Priority queues

We set up 3 flows each generating at 1MB/s. The distribution used is constant at 1Khz with packets of 1KB (total of 1MB/s).
We measured the packets arriving at the different sources

Without bottleneck link

bottleneck link = 2Mb/s

With Priority queues, but just RR (not weighted, equivalent to all weights=1)

With Priority queues and WRR


  • PrioritySelect mapping table
  • How to arrange Several priorityQueue ports (VDEVS-> very ugly... should we rely in the generator?)
  • How to setup coupled models? the question is were to locate the queue for each port:
    • router+queue+linkinside the node: it requires a connection from the link to the node, one per port)
    • inside the link: does not seem to be good to have the queue inside the link.
    • coupled model=router+queue+link
  • Evaluate if informing all queue size changes affects perfomance severely (could implement VQueue+WRRScheduler as a single atomic model to avoid passing of many event messages)
-- MatiasAlejandroBonaventura - 2016-09-14
Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2016-09-16 - MatiasAlejandroBonaventura
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback