Cant remove bufferbloat on upload


I have my WRT device connected to my BT router, and connect everything to the WRT device instead of the router.

My speedtest shows I have 45Mbps down and 11 up and have set up the SQM and my interfaces set up as shown in the image.

When I test my bufferbloat using DSLreports.com it shows flooding the upload increases ping by a few hundred (see image). Messing with the queue disciplines and up/download numbers doesnt seem to fix this.
http://www.dslreports.com/speedtest/57522960

Does anyone have any tips on what I might be doing wrong?

Hello Jacob,
welcome to the OpenWrt community.

This connection must use the OpenWrt device's WAN port, and everything else must be connected to LAN. Is this how you wired it?

Please log in to OpenWrt with ssh, run the following commands and post their output here:

brctl show
tc qdisc ls 
tc -s qdisc ls dev br-wan
tc -s qdisc ls dev ifb4br-wan

Did you set up the WAN bridge? What is its purpose?

May I ask you about the specific device models (OpenWrt and BT router)?

1 Like

How comes your WAN is bridged, and is configured as a DHCP client but has no IP address?
Is your router configured as a dumb access point?

1 Like

Thank you for the replies!

This connection must use the OpenWrt device's WAN port, and everything else must be connected to LAN. Is this how you wired it?

I turned the device into a dumb AP using this guide which said the router didnt need to be attached to the WAN but I'll try using the WAN port tomorrow and report back.

Its a BT home hub 5 router and a TRENDnet TEW-827DRU

Here the commands you asked me to run:

# brctl show
bridge name	bridge id		STP enabled	interfaces
br-lan		7fff.d8eb97302976	no		eth1.1
							wlan1
br-wan		7fff.d8eb97302977	no		eth0.2
# tc qdisc ls
qdisc noqueue 0: dev lo root refcnt 2 
qdisc mq 0: dev eth0 root 
qdisc fq_codel 0: dev eth0 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc mq 0: dev eth1 root 
qdisc fq_codel 0: dev eth1 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn 
qdisc noqueue 0: dev br-lan root refcnt 2 
qdisc noqueue 0: dev eth1.1 root refcnt 2 
qdisc cake 8007: dev br-wan root refcnt 2 bandwidth 9Mbit besteffort triple-isolate nonat nowash no-ack-filter split-gso rtt 100.0ms noatm overhead 44 
qdisc ingress ffff: dev br-wan parent ffff:fff1 ---------------- 
qdisc noqueue 0: dev eth0.2 root refcnt 2 
qdisc noqueue 0: dev wlan1 root refcnt 2 
qdisc cake 8008: dev ifb4br-wan root refcnt 2 bandwidth 40Mbit besteffort triple-isolate nonat nowash no-ack-filter split-gso rtt 100.0ms noatm overhead 44 
# tc -s qdisc ls dev br-wan
qdisc cake 8007: root refcnt 2 bandwidth 9Mbit besteffort triple-isolate nonat nowash no-ack-filter split-gso rtt 100.0ms noatm overhead 44 
 Sent 1453158 bytes 4249 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
 memory used: 1216b of 4Mb
 capacity estimate: 9Mbit
 min/max network layer size:          328 /     328
 min/max overhead-adjusted size:      372 /     372
 average network hdr offset:           14

                  Tin 0
  thresh          9Mbit
  target          5.0ms
  interval      100.0ms
  pk_delay         17us
  av_delay         11us
  sp_delay          9us
  backlog            0b
  pkts             4249
  bytes         1453158
  way_inds            0
  way_miss            1
  way_cols            0
  drops               0
  marks               0
  ack_drop            0
  sp_flows            0
  bk_flows            1
  un_flows            0
  max_len           342
  quantum           300

qdisc ingress ffff: parent ffff:fff1 ---------------- 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
# tc -s qdisc ls dev ifb4br-wan
qdisc cake 8008: root refcnt 2 bandwidth 40Mbit besteffort triple-isolate nonat nowash no-ack-filter split-gso rtt 100.0ms noatm overhead 44 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
 memory used: 0b of 4Mb
 capacity estimate: 40Mbit
 min/max network layer size:        65535 /       0
 min/max overhead-adjusted size:    65535 /       0
 average network hdr offset:            0

                  Tin 0
  thresh         40Mbit
  target          5.0ms
  interval      100.0ms
  pk_delay          0us
  av_delay          0us
  sp_delay          0us
  backlog            0b
  pkts                0
  bytes               0
  way_inds            0
  way_miss            0
  way_cols            0
  drops               0
  marks               0
  ack_drop            0
  sp_flows            0
  bk_flows            0
  un_flows            0
  max_len             0
  quantum          1220

In a device configured as a dumb access point, all traffic goes through bridges, and no traffic shapping can take place.

You can configure the device back into a router, but unless you configure the BT router as "transparent" or similar, you will 3nd with a double-NAT setup.

1 Like

I think he could put the "normal" wan port, say eth1, into the bridge as well, but instantiate sqm on eth1, that should allow traffic shaping on a bridge as well.
Generally, sqm for wan traffic should be instantiated as early as possible, so rather at the router than at the AP if the goal is to debloat wan traffic.

Looking at your earlier posts, try to instantiate SQM on eth0.2 and report back whether that works.

Does the BT Home Hub 5 router's label say type A or type B?
If it was Type A, it could run OpenWrt and be set up as a bridge (VDSL2 modem) to avoid the double NAT.
The TRENDnet TEW-827DRU is much more powerful and could serve as the router.

1 Like

So I fixed it in the end by reseting the config and then plugging the router into the WAN port and changing the lan subnet to 192.168.2.1 because the HomeHub is using 192.168.1.1. This had to be manually changed in the network file with WINSCP as I think theres a bug with this router's firmware where the router wouldnt change it via luci. Then I set the SQM to ethernet 0.2(wan,wan6).

For some reason I had to do these steps a couple times before it actually worked. Sometimes I wouldnt get internet and sometimes I wouldnt be able to connect to the openwrt router. And it took a bit of research to understand why I couldnt just use SQM on the LAN interface, as only certain traffic goes through your CPU, and thus can be shaped by SQM.

@mpa that seems to be a good idea but I'm renting and dont personally own the homehub, but thanks anyway.

Seeming to get no bufferbloat now, thank you very much guys :).

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.