- Designed and added tests in the pi-square-queue-disc-test-suite.cc to
verify the functionality of DualAQM framework.
- Implemented a new AQM called DualQueuePiSquareQueueDisc to support 2
queues for pi-square-queue-disc. This AQM's functionality is quite
different from the PiSquareQueueDisc. Initially I extended
PiSquareQueueDisc according to the guidleines mentioned in this paper.
The limitation of this paper is that it maintains a single queue for both
classic and scalable traffic. However, the IETF draft has given a different
pseudocode for implementation of DualQ Framework. For instance, the
packets are marked or dropped in dequeue function as opposed to enqueue in
pi-quare-queue-disc.cc. The pseudo-code in IETF document mentions separate
queues for Scalable and Classic traffic. Also, the calculation of
queue-delay is quite different from the method implemented in
So, I have designed and implemented a new AQM to implement the pseudo-code
mentioned in the draft. I followed the following ietf draft for
implementation of dual-queue-pi-square-queue-disc.
- Design and add test suite called dual-aqm-pi-square-queue-disc-test-suite.cc
to verify the functionality of DualAQM framework.
- Verify that DualQueue Framework for both single queue and dual queue is
- Extend ECN to support DualQueue Framework. This mainly consists of
classification of packets as scalable and classic and setting appropriate
ect flags in the packet tags.
The entire project can be tracked through the github repository , and
details can be found in the project wiki .
Any suggestions / feedback would be much appreciated.