notes about bandwidth monitoring and quotas
The system can apportion the shareable bandwidth to a percentage of total bandwidth available. The goal is to find a way to cap bandwidth usage, in and out. Here we research how this can be done.
to track bandwidth we need a way to quantify it. Here are some likely candidates:
- bandwidthd - very popular, but apparently it is resource heavy
- bmon - download it
- iftop, man page - "iftop does for network usage what top(1) does for CPU usage. It listens to network traffic on a named interface and displays a table of current bandwidth usage by pairs of hosts."
ipt-account is an iptables module capable of recording e.g. traffic usage on different interfaces and subnets. This is what the EFF open wireless router uses. They currently use a python script that calls the iptaccount command to get usage info and display it in the browser. It is unclear how they persist the usage data between reboots.
tc − show / manipulate traffic control settings
Tc is used to configure Traffic Control in the Linux kernel.
- man page for tc: http://man.cx/tc
- Ixgr's setup using tc to fix bufferfloat: http://blog.lxgr.net/posts/2013/01/28/my-openwrt-setup/
Once we have the monitoring in hand we can then handle the bandwidth caps. We might want to cut off access once the limit has been reached.
OpenWrt micro bus architecture - there is a Lua module for ubus...