A custom solution for fixing external Bufferbloat by dynamically adjusting QoS Pipes.
bufferbloat.sh | ||
LICENSE.md | ||
README.md |
opnsense-bufferbloat
A custom solution for fixing external Bufferbloat by dynamically adjusting QoS Pipes.
This script makes several assumptions:
- Maximum Download Bandwidth: 80Mbit/s
- Maximum Upload Bandwidth: 20Mbit/s
- Minimum Download Bandwidth: 5Mbit/s
- Minimum Upload Bandwidth: 2Mbit/s
- Optimal Ping: <= 50ms
- Critical Ping: >= 200ms
- downloadPipe=10000 & uploadPipe=10001 (see output of: ipfw pipe show)
You may change the corresponding variables, but be aware of unit convertion loss!
How this script works
The initial trivial idea:
- If average ping is >200ms, reduce current download bandwidth by 10%
- repeat until ping is OK or lower limit reached
- If average Ping <50ms -> Increase Bandwidth by 10% until upper limit reached