Weekly Progress - gautamramk/FQ-PIE-for-Linux-Kernel GitHub Wiki
This is the weekly progress for Assignment SIM - 022 of the course Computer Networks CO300
Weekly Progress
Week 1 (September 21st - September 27th)
Allotted the project.
Read about Active Queue Management (AQM).
Read briefly the various AQM algorithms; RED, CoDel and PIE.
Read in detail the paper "PIE: A Lightweight Control Scheme to Address the
Bufferbloat Problem".
Read RFC 8033 "Proportional Integral Controller Enhanced (PIE):
A Lightweight Control Scheme to Address the Bufferbloat Problem"
Week 2 (September 28th - October 4th)
Asked mentor for reference material for implementation as no internet draft, paper or RFC exists.
Read implementation of RED, CoDel, and PIE algorithms for linux kernel.
Read implementation of CoDel FQ for linux kernel.
Week 3 (October 5th - October 11th)
Read up on Linux Kernel Modules
Read up on Linux Kernel Network Structures
Week 4 (October 12th - October 18th)
Incorporated changes on to the linux kernel tree.
Week 5 (October 19th - October 25th)
Detailed read-up of the IETF RFC on PIE.
Validated our implementation with the algorithm given in the RFC.
Corrected the bugs found.
Week 6 (October 26th- November 1st)
Discussed the implementation of FQ-PIE with mentors
Clarified doubts on whether the paremeter 'TARGET' can be used as a common value for all the queues.
Compiled the linux kernel 4.18 with FQ-PIE.
Added FQ-PIE support for the iproute2 tc package.
Week 8 (November 2nd - November 8th)
Started testing the code on the physical testbed, using flent.
Faced heavy logical errors. Multiple flows were crashing on the dequeue function.
Restart creating the module in a stepwise manner for easy debugging.
Started failing again when timer functionality was added. Failure occurs in dequeue function.
Recompiled kernel with lockdep, this functionality is to log all possible logs and deadlocks in the system.
System panic error while booting the kernel with lockdep. Recompiled the 4.18 kernel multiple times with lockdep enabled, kept failing to boot. Booted successfully when compiled without lockdep.
Found out the error, we missed out a pointer initialization to null, which caused a segfault. Thanks to our mentors Sachin Patil and Leslie for their support with the testing.
Week 9 (November 9th - November 15th)
Final touchups to the project, setting up the repository correctly.