On Mon, Feb 22, 2021 at 08:51:32PM -0500, Steven Shockley wrote:
> I have OpenBSD 6.8 running on a Dell R210-II acting as a firewall/router.
> To combat bufferbloat I tried implementing FQ-CoDel queueing.  The WAN
> bandwidth is advertised as 940 Mbit/sec down and 840 Mbit/sec up.
> 
> I've tried adding one or the other of these lines to my pf.conf:
> 
> queue outq on $ext_if flows 1024 bandwidth 1024M max 1024M qlimit 1024
> default
> or
> queue outq on $ext_if flows 1024 qlimit 1024 default
> 
> In both cases, upload speeds drop from ~800 Mbit/sec to < 100 Mbit/sec.
> Changing the 1024M to other values makes little or no difference.  To be
> fair, bufferbloat does improve, but that's quite a hit.  I'm measuring using
> the dslreports.com speed test via wired ethernet through a Cisco 3750x.
> 
> One possible complexity is that the internal interface is tagged VLANs, but
> if it were an MTU issue I'd expect it to affect performance across the
> board.

Here is what I am doing.

First rule, apply queue only on real interface, and not on a vlan
interface.

Next, I have a ADSL uplink. My router has only one physical interface:
re0. The router is connected to ADSL modem via a vlan, and a pppoe0
session is build over the vlan. On local network side, several vlan
exists.

Using http://www.dslreports.com/speedtest/:
- download: 8.140 Mbit/s (90% = 7.326M)
- upload:   0.827 Mbit/s (90% = 0.744M)

I am applying queue on pppoe0 to control outgoing traffic, and queue
on re0 to control the incoming traffic.

  # on pppoe0 : outgoing traffic
  queue rootq  on pppoe0 bandwidth 0.744M max 0.744M
  queue netq   on pppoe0 parent rootq flows 1024 bandwidth 0.744M max 0.744M 
qlimit 32 default
  queue guessq on pppoe0 parent rootq flows 1024 bandwidth 0.150M max 0.150M 
qlimit 32

  # on re0 : incoming traffic
  queue rootq  on re0 bandwidth  1G max 1G
  queue stdq   on re0 parent rootq flows 1024 bandwidth   1G     max 1G     
qlimit 1024 default
  queue netq   on re0 parent rootq flows 1024 bandwidth   7.362M max 7.362M 
qlimit   32
  queue guessq on re0 parent rootq flows 1024 bandwidth   0.500M max 1.000M 
qlimit   16
          
and next, I am setting the queue to use using rules (please note I am
using "group" parameter on interfaces for the names like "guess",
"internet" or "with_internet").

  anchor "outgoing" out on internet received-on with_internet {
    pass out label "outgoing"
    match out set queue netq
    match out received-on guess set queue guessq
  }

I hope it helps, even if my network speeds isn't comparable to your :)

Thanks.
-- 
Sebastien Marie

Reply via email to