Implementing the Flow Queue PIE AQM in the Linux Kernel

a.k.a FQ-PIE

Objective

Unmanaged large buffers in today's networks have given rise to a slew of performance issues. These performance issues can be addressed by some form of Active Queue Management (AQM) algorithms.

FQ-PIE is one such AQM algorithm which is a hybrid of an existing algorithm PIE and a packet-scheduler algorithm Flow Queue(FQ). The goal is to control queuing delays while sharing bottleneck capacity relatively evenly among competing flows. FQ-PIE aims to isolate packets from multiple flows and reduces the impact of head of line blocking from bursty traffic.

Testbed

The testbed consisted of three components -

  1. Source - Flent and iperf are run on the client. Iperf is used to start a UDP transmission whereas Flent is used to create TCP packets. Flent is also used to collect all the statistics required for testing. It is connected to the router through 2 links, 1 is a USB-LAN interface used to retrieve flent statistics from the router and the other is a normal LAN cable.
  2. Routers - The AQM algorithms were deployed in the routers. An extra link to transfer flent statistics is used.
  3. Sink - The server plays a non critical role in the testbed and only sends ACKs on receiving data packets.

Testbed

All experiments were carried out for 300seconds. Two scenarios were tested for - coexistence of TCP BBR and CUBIC TCP on the bottleneck link and coexistence of UDP and CUBIC TCP flows. The UDP flow is turned on after 25seconds for a duration of 50seconds. Results are presented below for the tcp_1up, tcp_4up , tcp_8up, tcp_12up, cubic_bbr tests from flent.
tcp_1up results
Thorughput, PIE Thorughput, FQ-PIE Thorughput, FQ-CoDel RTT, PIE RTT, FQ-PIE RTT,FQ-CoDel
tcp_4up results
Thorughput, PIE Thorughput, FQ-PIE Thorughput, FQ-CoDel RTT, PIE RTT, FQ-PIE RTT,FQ-CoDel
tcp_8up results
Thorughput, PIE Thorughput, FQ-PIE Thorughput, FQ-CoDel RTT, PIE RTT, FQ-PIE RTT,FQ-CoDel
tcp_12up results
Thorughput, PIE Thorughput, FQ-PIE Thorughput, FQ-CoDel RTT, PIE RTT, FQ-PIE RTT,FQ-CoDel
cubic_bbr results
Thorughput, PIE Thorughput, FQ-PIE Thorughput, FQ-CoDel RTT, PIE RTT, FQ-PIE RTT, FQ-CoDel

Conclusion

We implemented both the ways suggested in RFC 8033 and evaluated it with FQ-CoDel and PIE. FQ-PIE provides more fairness than traditional PIE. FQ-PIE performed observably better than FQ-CoDel in presence of two varients of TCP. Further research needs to be done for the justification of this observation.

About

This implementation is done by the students of National Institute of Technology - Karnataka, Surathkal, India under the guidance of Prof. Mohit P. Tahiliani for the Computer Networks course.

The students involved with the project are:
Gautam Ramakrishnan
Mohit Bhasi
V. Saicharan