Tool to measure the outgoing bandwidth usage on a per class/qdisc basis.
This is my first C project, the quality of the code is therefore not great. Feel free to contact me if you find a bug, or suggest improvements. It's still a work in progress and I already have improvements planned.
Linux kernel headers are required to run this program.
sudo apt update
sudo apt install linux-headers-$(uname -r)
Execute the following command in the terminal in the path containing nlcomm.c:
gcc nlcomm.c cqstat.c -o cqstat
This should generate a binary file named qdisc_stats in the current working directory.
Execute the following command in the terminal in the path containing nlcomm.c:
./cqstat
The data will be stored in a csv file, either with the provided name or using the default name cqstat.csv
.
This data can be plotted using plotting.py
. This will generate one figure per network interface.
The dummy.sh
script can be used to create a virtual interface pair and configure veth1 with a hierarchical queueing setup. This was made purely for testing purposes.
- Improve plotting
- upload example plot
- Class based measurement not working...
- Current workaround: -c/-q flag is being ignored. Internally always being set to -q
- Current workaround: -c/-q flag is being ignored. Internally always being set to -q
- Implement ingress bw measurement
The basis of this code was taken from https://github.com/sbhTWR/qdisc_stats/ This program fetches queue statistics once and displays them on the terminal