A custom solution for fixing external Bufferbloat by dynamically adjusting QoS Pipes.
Go to file
2021-03-22 21:03:38 +01:00
bufferbloat.sh Add 'bufferbloat.sh' 2021-03-22 20:44:16 +01:00
LICENSE.md Add 'LICENSE.md' 2021-03-22 21:03:38 +01:00
README.md Update 'README.md' 2021-03-22 20:52:29 +01:00

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