Bug #331

drop in replacement for openwrt's qos is hard

Added by Dave Täht on Jan 30, 2012. Updated on Apr 21, 2012.
In Progress Normal Dave Täht

Description

I’d like to be able to preserve the existing qos system
and then compare it against a new one.

That said, the defaults generated for the openwrt qos system
explain a lot, to me, at least. We can do WAY better
than this, now.

root@OpenWrt:/etc/init.d# tc qdisc show dev ge00
qdisc hfsc 1: root refcnt 2 default 30
qdisc sfq 100: parent 1:10 limit 16256p quantum 1514b depth 127 divisor 1024 perturb 2sec
qdisc sfq 200: parent 1:20 limit 16256p quantum 1514b depth 127 divisor 1024 perturb 2sec
qdisc red 300: parent 1:30 limit 330Kb min 28160b max 84480b ecn
qdisc red 400: parent 1:40 limit 330Kb min 28160b max 84480b ecn
qdisc ingress ffff: parent ffff:fff1 —————-
root@OpenWrt:/etc/init.d# tc filter show dev ge00
filter parent 1: protocol ip pref 1 fw
filter parent 1: protocol ip pref 1 fw handle 0x1/0xff classid 1:10
filter parent 1: protocol ip pref 2 fw
filter parent 1: protocol ip pref 2 fw handle 0x2/0xff classid 1:20
filter parent 1: protocol ip pref 3 fw
filter parent 1: protocol ip pref 3 fw handle 0x3/0xff classid 1:30
filter parent 1: protocol ip pref 4 fw
filter parent 1: protocol ip pref 4 fw handle 0x4/0xff classid 1:40

root@OpenWrt:/etc/init.d# iptables -t mangle -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination
zone_wan_MSSFIX all – anywhere anywhere
qos_Default all – anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
qos_Default all – anywhere anywhere

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination

Chain qos_Default (2 references)
target prot opt source destination
CONNMARK all – anywhere anywhere CONNMARK restore mask 0xff
qos_Default_ct all – anywhere anywhere mark match 0x0/0xff
MARK all – anywhere anywhere mark match 0x1/0xff length 400:65535 MARK and 0xffffff00
MARK all – anywhere anywhere mark match 0x2/0xff length 800:65535 MARK and 0xffffff00
MARK udp – anywhere anywhere mark match 0x0/0xff length 0:500 MARK xset 0x2/0xff
MARK icmp – anywhere anywhere MARK xset 0x4/0xff
MARK tcp – anywhere anywhere mark match 0x0/0xff tcp spts:1024:65535 dpts:1024:65535 MARK xset 0x4/0xff
MARK udp – anywhere anywhere mark match 0x0/0xff udp spts:1024:65535 dpts:1024:65535 MARK xset 0x4/0xff
MARK tcp – anywhere anywhere length 0:128 mark match ! 0x4/0xff tcpflags: FIN,SYN,RST,PSH,ACK,URG/SYN MARK xset 0x1/0xff
MARK tcp – anywhere anywhere length 0:128 mark match ! 0x4/0xff tcpflags: FIN,SYN,RST,PSH,ACK,URG/ACK MARK xset 0x1/0xff

Chain qos_Default_ct (1 references)
target prot opt source destination
MARK tcp – anywhere anywhere mark match 0x0/0xff tcp multiport ports ssh,222,domain MARK xset 0x1/0xff
MARK tcp – anywhere anywhere mark match 0x0/0xff tcp multiport ports ftp-data,ftp,smtp,www,81,8123,pop3,https,imaps,pop3s MARK xset 0x3/0xff
MARK udp – anywhere anywhere mark match 0x0/0xff udp multiport ports domain,ntp,sip,5190 MARK xset 0x2/0xff
MARK tcp – anywhere anywhere mark match 0x0/0xff tcp multiport ports rsync MARK xset 0x4/0xff
MARK udp – anywhere anywhere mark match 0x0/0xff udp multiport ports rsync MARK xset 0x4/0xff
CONNMARK all – anywhere anywhere CONNMARK save mask 0xff

Chain zone_wan_MSSFIX (1 references)
target prot opt source destination
root@OpenWrt:/etc/init.d# iptables -t mangle -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination
zone_wan_MSSFIX all – anywhere anywhere
qos_Default all – anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
qos_Default all – anywhere anywhere

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination

Chain qos_Default (2 references)
target prot opt source destination
CONNMARK all – anywhere anywhere CONNMARK restore mask 0xff
qos_Default_ct all – anywhere anywhere mark match 0x0/0xff
MARK all – anywhere anywhere mark match 0x1/0xff length 400:65535 MARK and 0xffffff00
MARK all – anywhere anywhere mark match 0x2/0xff length 800:65535 MARK and 0xffffff00
MARK udp – anywhere anywhere mark match 0x0/0xff length 0:500 MARK xset 0x2/0xff
MARK icmp – anywhere anywhere MARK xset 0x4/0xff
MARK tcp – anywhere anywhere mark match 0x0/0xff tcp spts:1024:65535 dpts:1024:65535 MARK xset 0x4/0xff
MARK udp – anywhere anywhere mark match 0x0/0xff udp spts:1024:65535 dpts:1024:65535 MARK xset 0x4/0xff
MARK tcp – anywhere anywhere length 0:128 mark match ! 0x4/0xff tcpflags: FIN,SYN,RST,PSH,ACK,URG/SYN MARK xset 0x1/0xff
MARK tcp – anywhere anywhere length 0:128 mark match ! 0x4/0xff tcpflags: FIN,SYN,RST,PSH,ACK,URG/ACK MARK xset 0x1/0xff

Chain qos_Default_ct (1 references)
target prot opt source destination
MARK tcp – anywhere anywhere mark match 0x0/0xff tcp multiport ports ssh,222,domain MARK xset 0x1/0xff
MARK tcp – anywhere anywhere mark match 0x0/0xff tcp multiport ports ftp-data,ftp,smtp,www,81,8123,pop3,https,imaps,pop3s MARK xset 0x3/0xff
MARK udp – anywhere anywhere mark match 0x0/0xff udp multiport ports domain,ntp,sip,5190 MARK xset 0x2/0xff
MARK tcp – anywhere anywhere mark match 0x0/0xff tcp multiport ports rsync MARK xset 0x4/0xff
MARK udp – anywhere anywhere mark match 0x0/0xff udp multiport ports rsync MARK xset 0x4/0xff
CONNMARK all – anywhere anywhere CONNMARK save mask 0xff

Chain zone_wan_MSSFIX (1 references)
target prot opt source destination

History

Updated by Dave Täht on Feb 1, 2012.
openwrt’s shaper also ignores ipv6 entirely
Updated by Dave Täht on Apr 21, 2012.

This is a static export of the original bufferbloat.net issue database. As such, no further commenting is possible; the information is solely here for archival purposes.
RSS feed

Recent Updates

Oct 20, 2023 Wiki page
What Can I Do About Bufferbloat?
Dec 3, 2022 Wiki page
Codel Wiki
Jun 11, 2022 Wiki page
More about Bufferbloat
Jun 11, 2022 Wiki page
Tests for Bufferbloat
Dec 7, 2021 Wiki page
Getting SQM Running Right

Find us elsewhere

Bufferbloat Mailing Lists
#bufferbloat on Twitter
Google+ group
Archived Bufferbloat pages from the Wayback Machine

Sponsors

Comcast Research Innovation Fund
Nlnet Foundation
Shuttleworth Foundation
GoFundMe

Bufferbloat Related Projects

OpenWrt Project
Congestion Control Blog
Flent Network Test Suite
Sqm-Scripts
The Cake shaper
AQMs in BSD
IETF AQM WG
CeroWrt (where it all started)

Network Performance Related Resources


Jim Gettys' Blog - The chairman of the Fjord
Toke's Blog - Karlstad University's work on bloat
Voip Users Conference - Weekly Videoconference mostly about voip
Candelatech - A wifi testing company that "gets it".