Netgate SG-1000 microFirewall

Author Topic: Floating bandwidth value for shaper (bufferbloat checker)  (Read 988 times)

0 Members and 1 Guest are viewing this topic.

Offline w0w

  • Sr. Member
  • ****
  • Posts: 537
  • Karma: +30/-6
  • kernel panic attack
    • View Profile
Re: Floating bandwidth value for shaper (bufferbloat checker)
« Reply #15 on: October 02, 2017, 01:20:43 am »
OK... Another one speculation. We are using shaper and no matter what, when it really works on full load you will see packet drops and when your bandwidth limit is wrong (above the real limit), you have no drops, but your latency is growing.
SO may be we need both monitor queue drops on full load, ping RRT, and depending on it , change the bandwidth limit more quickly and/or accurately.

Offline belt9

  • Full Member
  • ***
  • Posts: 233
  • Karma: +24/-6
    • View Profile
Re: Floating bandwidth value for shaper (bufferbloat checker)
« Reply #16 on: October 02, 2017, 08:06:11 am »
Yeah it sounds like it will either be completely user built, or possibly given a higher priority if it is better defined.

If someone can chime in on redmine with a specific technical outline of how it would work in freebsd reliably then it might be assigned a higher priority.

Even if it is assigned a higher priority at netgate it will likely be months to years before it is implemented in a Release version.

This won't happen fast unless someone(s) with the know how does this and shares it with the community.

Offline Harvy66

  • Hero Member
  • *****
  • Posts: 2209
  • Karma: +204/-12
    • View Profile
Re: Floating bandwidth value for shaper (bufferbloat checker)
« Reply #17 on: October 02, 2017, 09:53:42 am »
The simplest way would be to allow the end user to supply a high and low mark for ping and possibly loss. When above the high marks, reduce the assigned bandwidth by some rate, probably N% every X seconds. When below the low mark, increase the bandwidth. You would also want some sort of sampling window size and sample rate. An example would to ping a target N times per second, and recalculate every X seconds.

I could see a default of something like 2 pings per second averaged over 10 seconds with a high mark of 120ms and a low of 40ms. When the high mark is hit, it will lower the assigned bandwidth by 10% and when the low mark is hit, raise it by 5%.

My guess is this would be an 80/20 rule that would be easy to implement.

edit: Probably have an absolute minimum assigned bandwidth, probably defaulted to 50%.
« Last Edit: October 02, 2017, 10:32:12 am by Harvy66 »

Offline belt9

  • Full Member
  • ***
  • Posts: 233
  • Karma: +24/-6
    • View Profile
Re: Floating bandwidth value for shaper (bufferbloat checker)
« Reply #18 on: October 02, 2017, 10:12:47 am »
Please pass that along on redmine to try to get it Escalated!

Offline cplmayo

  • Jr. Member
  • **
  • Posts: 56
  • Karma: +1/-0
    • View Profile
Re: Floating bandwidth value for shaper (bufferbloat checker)
« Reply #19 on: October 03, 2017, 12:26:24 pm »
I would also be willing to chip in on a bounty for this and the GUI for fq_codel dummy net.

These features have a lot of traction for home and SMB connections that do not have the budget for dedicated fiber.

While not a security issue features such as these just make pfSense a more well-rounded product.

Offline belt9

  • Full Member
  • ***
  • Posts: 233
  • Karma: +24/-6
    • View Profile
Re: Floating bandwidth value for shaper (bufferbloat checker)
« Reply #20 on: October 03, 2017, 06:46:36 pm »
I would also be willing to chip in on a bounty for this and the GUI for fq_codel dummy net.

These features have a lot of traction for home and SMB connections that do not have the budget for dedicated fiber.

While not a security issue features such as these just make pfSense a more well-rounded product.
https://github.com/ericpaulbishop/gargoyle/blob/master/package/qos-gargoyle/src/qosmon.c
https://dev.openwrt.org/attachment/ticket/8536/qosmon.patch (openwrt implementation)

I do think it's possible to use the same or similar logic on FreeBSD/pfSense, but we really need some help from professionals. Should I create a bounty for it or there are other plans at Netgate already?

Bounty created.

https://forum.pfsense.org/index.php?topic=137469.0

Anyone willing to contribute or who wants to take on the project, please chime in at the bounty.

Offline ivor

  • Administrator
  • Hero Member
  • *****
  • Posts: 610
  • Karma: +135/-125
    • View Profile
    • Netgate
Re: Floating bandwidth value for shaper (bufferbloat checker)
« Reply #21 on: October 27, 2017, 11:43:57 am »
Bounty suspended as belt9 has been circumventing a ban. Those interested may submit a new bounty. Considering his attitude we cannot take the responsibility if he will deliver the funds to the solution.
Need help fast? Commercial support: https://www.netgate.com/support/