Maximum and Average queuing Delay with Proportional Integral controller Enhanced (MADPIE) [1] is an extension of PIE [2], that adds deterministic packet drops at controlled intervals. This repository provides an implementation of MADPIE in the Linux kernel.
-
Download or clone this repository on your local machine
-
Configure the kernel
make menuconfig
-
Compile the kernel
make
-
Build and install the modules
make modules
make modules_install
-
Install the kernel
make install
-
Setup a physical topology of three nodes:
Client <---> Router <---> Server
-
Create a separate passwordless SSH connection between client and router machines, so that Flent can collect queue statistics from the router machine
-
Install Netserver in server machine
-
Install Flent from github or ppa repository in client machine
-
Install the modified kernel with MADPIE algorithm in router machine
-
Run Flent for plotting different graphs
./run-flent rrul -p [PLOT_NAME] -l 160 -H [SERVER_IP] --test-parameter bandwidth=800M --test-parameter qdisc_stats_hosts=[ROUTER_SSH_IP] --test-parameter qdisc_stats_interfaces=[ROUTER_AQM_INTERFACE] --test-parameter upload_streams=num_cpus --test-parameter download_streams=num_cpus -t MADPIE -o ~/Desktop/MADPIE/test.png
PLOT_NAME - The type of graph needed
SERVER_IP - IP Address of the server
ROUTER_SSH_IP - IP Address using which ssh connection is setup with router
ROUTER_AQM_INTERFACE - Interface name of the router where AQM is installed
./run-flent rrul -p all_scaled -l 160 -H 172.16.10.2 --test-parameter bandwidth=800M --test-parameter qdisc_stats_hosts=192.168.20.2 --test-parameter qdisc_stats_interfaces=eth1 --test-parameter upload_streams=num_cpus --test-parameter download_streams=num_cpus -t MADPIE -o ~/Desktop/MADPIE/test.png
[1] Kuhn, N., & Ros, D. (2016). Improving PIE's performance over high-delay paths. arXiv preprint arXiv:1602.00569.
[2] Pan, R., Natarajan, P., Piglione, C., Prabhu, M. S., Subramanian, V., Baker, F., & VerSteeg, B. (2013, July). PIE: A lightweight control scheme to address the bufferbloat problem. In High Performance Switching and Routing (HPSR), 2013 IEEE 14th International Conference on (pp. 148-155). IEEE.
[3] Flent: The FLExible Network Tester (https://flent.org/)