[Bloat] fq_codel on bridge throughput test/config

Stephen Hemminger stephen at networkplumber.org
Fri Jan 4 19:17:42 EST 2019


On Fri, 4 Jan 2019 12:33:28 -0800
Dev <dev at logicalwebhost.com> wrote:

> Okay, thanks to some help from the list, I’ve configured a transparent bridge running fq_codel which works for multiple subnet traffic. Here’s my setup:
> 
> Machine A ——— 192.168.10.200 — — bridge fq_codel machine B —— laptop C 192.168.10.150
> Machine D ——— 192.168.3.50 — —| 
> 
> On Machine A:
> 
> straight gigE interface 192.168.10.200
> 
> Bridge Machine B: enp3s0 mgmt interface
> 				enp2s0 bridge interface 1
> 				enp1s0 bridge interface 2
> 				br0 bridge for 1 and 2
> 	
> 	# The loopback network interface 
> 	auto lo br0 
> 	iface lo inet loopback 
> 
> 	# The primary network interface 
> 	allow-hotplug enp3s0 
> 	iface enp3s0 inet static 
> 		 address 172.16.0.5/24 
> 		 gateway 172.16.0.5 
> 		dns-nameservers 8.8.8.8
> 
>  	iface enp1s0 inet manual 
> 		 tc qdisc add dev enp1s0 root fq_codel 
> 
> 	 iface enp2s0 inet manual 
> 		tc qdisc add dev enp2s0 root fq_codel 
> 
> 	 # Bridge setup 
> 	iface br0 inet static 
> 		bridge_ports enp1s0 enp2s0 
> 		address 192.168.3.75 
> 		broadcast 192.168.3.255 
> 		netmask 255.255.255.0 
> 		gateway 192.168.3
> 
> note: I still have to run this command later, will troubleshoot at some point (unless you have suggestions to make it work):
> 
> tc qdisc add dev enp1s0 root fq_codel
> 
> To start, my pings from Machine A to Laptop C were around 0.75 msec, then I flooded the link from Machine A to Laptop C using:
> 
> dd if=/dev/urandom | ssh user at 192.168.10.150 dd of=/dev/null
> 
> Then my pings went up to around 170 msec. Once I enabled fq_codel on the bridge machine B, my pings dropped to around 10 msec.
> 
> Hope this helps someone else working on a similar setup.
> 
> - Dev
> 
> _______________________________________________
> Bloat mailing list
> Bloat at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat

Applying a qdisc to a bridge device only impacts the local traffic
going to that bridge (ie br0). It has no impact on traffic transiting
through the bridge. Since normally bridge pseudo device is queueless
putting qdisc on br0 has no impact. In other words packets being transmitted
on br0 go direct to the underlying device, therefore even if you put a
qdisc on br0 it isn't going to do what you expect (unless you layer some
rate control into the stack).


More information about the Bloat mailing list