[OpenWrt-Devel] How to debug/config qos-scripts to work with OpenWRT AA?
Danng
huynhminhdang at gmail.com
Sun May 29 21:39:37 EDT 2016
Hello, anyone interested?
On Thu, May 26, 2016 at 11:03 AM, Danng <huynhminhdang at gmail.com> wrote:
> Hello,
>
> I am trying to use qos-scripts in OpenWRT AA. I have an issue that the
> qos-scripts can limit uplink speed but not downlink speed.
>
> For example: I set 128kbit uplink and 1024kbit downlink, however, the
> downlink is limitless
>
> This is the speedtest I captured
>
> http://speedof.me/show.php?img=160526022701-7038.png
>
> - uplink can go up to 104kbps
> - downlink can go up to 7861kbps (which is higher than the limitation I
> set)
>
> ---
>
> I also tried with wshaper and the got same result.
>
> Here is my setup:
> - eth1 is the WAN port
> - eth0 is connect to my PC
> - OpenWRT AA
> - Linux kernel 3.3.8
>
> ****************************************************************************
> * cmd: cat /etc/config/qos
> ****************************************************************************
>
> # QoS configuration for OpenWrt
>
> # INTERFACES:
> config interface wan
> option classgroup "Default"
> option enabled 1
> option upload 128
> option download 1024
>
> # RULES:
> config classify
> option target "Priority"
> option ports "22,53"
> option comment "ssh, dns"
> config classify
> option target "Normal"
> option proto "tcp"
> option ports "20,21,25,80,110,443,993,995"
> option comment "ftp, smtp, http(s), imap"
> config classify
> option target "Express"
> option ports "5190"
> option comment "AOL, iChat, ICQ"
> config default
> option target "Express"
> option proto "udp"
> option pktsize "-500"
> config reclassify
> option target "Priority"
> option proto "icmp"
> config default
> option target "Bulk"
> option portrange "1024-65535"
>
>
> # Don't change the stuff below unless you
> # really know what it means :)
>
> config classgroup "Default"
> option classes "Priority Express Normal Bulk"
> option default "Normal"
>
>
> config class "Priority"
> option packetsize 400
> option avgrate 10
> option priority 20
> config class "Priority_down"
> option packetsize 1000
> option avgrate 10
>
>
> config class "Express"
> option packetsize 1000
> option avgrate 50
> option priority 10
>
> config class "Normal"
> option packetsize 1500
> option packetdelay 100
> option avgrate 10
> option priority 5
> config class "Normal_down"
> option avgrate 20
>
> config class "Bulk"
> option avgrate 1
> option packetdelay 200
>
> ****************************************************************************
> * cmd: /usr/lib/qos/generate.sh all
> ****************************************************************************
> | insmod cls_u32 >&- 2>&-
> | insmod em_u32 >&- 2>&-
> | insmod act_connmark >&- 2>&-
> | insmod act_mirred >&- 2>&-
> | insmod sch_ingress >&- 2>&-
> | insmod cls_fw >&- 2>&-
> | insmod sch_hfsc >&- 2>&-
> | insmod sch_fq_codel >&- 2>&-
> | ifconfig eth1 up txqueuelen 5 >&- 2>&-
> | tc qdisc del dev eth1 root >&- 2>&-
> | tc qdisc add dev eth1 root handle 1: hfsc default 30
> | tc class add dev eth1 parent 1: classid 1:1 hfsc sc rate 128kbit ul rate 128kbit
> | tc class add dev eth1 parent 1:1 classid 1:10 hfsc rt m1 74kbit d 6103us m2 12kbit ls m1 74kbit d 6103us m2 71kbit ul rate 128kbit
> | tc class add dev eth1 parent 1:1 classid 1:20 hfsc rt m1 68kbit d 15258us m2 64kbit ls m1 68kbit d 15258us m2 35kbit ul rate 128kbit
> | tc class add dev eth1 parent 1:1 classid 1:30 hfsc ls m1 0kbit d 100000us m2 17kbit ul rate 128kbit
> | tc class add dev eth1 parent 1:1 classid 1:40 hfsc ls m1 0kbit d 200000us m2 3kbit ul rate 128kbit
> | tc qdisc add dev eth1 parent 1:10 handle 100: fq_codel
> | tc qdisc add dev eth1 parent 1:20 handle 200: fq_codel
> | tc qdisc add dev eth1 parent 1:30 handle 300: fq_codel
> | tc qdisc add dev eth1 parent 1:40 handle 400: fq_codel
> | tc filter add dev eth1 parent 1: prio 1 protocol ip handle 1/0xff fw flowid 1:10
> | tc filter add dev eth1 parent 1: prio 2 protocol ip handle 2/0xff fw flowid 1:20
> | tc filter add dev eth1 parent 1: prio 3 protocol ip handle 3/0xff fw flowid 1:30
> | tc filter add dev eth1 parent 1: prio 4 protocol ip handle 4/0xff fw flowid 1:40
> | ifconfig ifb0 up txqueuelen 5 >&- 2>&-
> | tc qdisc del dev ifb0 root >&- 2>&-
> | tc qdisc add dev ifb0 root handle 1: hfsc default 30
> | tc class add dev ifb0 parent 1: classid 1:1 hfsc sc rate 1024kbit ul rate 1024kbit
> | tc qdisc del dev eth1 ingress >&- 2>&-
> | tc qdisc add dev eth1 ingress
> | tc filter add dev eth1 parent ffff: protocol ip prio 1 u32 match u32 0 0 flowid 1:1 action connmark action mirred egress redirect dev ifb0
> | tc class add dev ifb0 parent 1:1 classid 1:10 hfsc rt m1 232kbit d 1907us m2 102kbit ls m1 232kbit d 1907us m2 568kbit ul rate 1024kbit
> | tc class add dev ifb0 parent 1:1 classid 1:20 hfsc rt m1 533kbit d 1907us m2 512kbit ls m1 533kbit d 1907us m2 284kbit ul rate 1024kbit
> | tc class add dev ifb0 parent 1:1 classid 1:30 hfsc ls m1 0kbit d 100000us m2 142kbit ul rate 1024kbit
> | tc class add dev ifb0 parent 1:1 classid 1:40 hfsc ls m1 0kbit d 200000us m2 28kbit ul rate 1024kbit
> | tc qdisc add dev ifb0 parent 1:10 handle 100: fq_codel
> | tc qdisc add dev ifb0 parent 1:20 handle 200: fq_codel
> | tc qdisc add dev ifb0 parent 1:30 handle 300: fq_codel
> | tc qdisc add dev ifb0 parent 1:40 handle 400: fq_codel
> | tc filter add dev ifb0 parent 1: prio 1 protocol ip handle 1/0xff fw flowid 1:10
> | tc filter add dev ifb0 parent 1: prio 2 protocol ip handle 2/0xff fw flowid 1:20
> | tc filter add dev ifb0 parent 1: prio 3 protocol ip handle 3/0xff fw flowid 1:30
> | tc filter add dev ifb0 parent 1: prio 4 protocol ip handle 4/0xff fw flowid 1:40
> |
> |
> |
> | iptables -t mangle -F qos_Default
> | iptables -t mangle -F qos_Default_ct
> | iptables -t mangle -D FORWARD -o eth1 -j qos_Default
> | iptables -t mangle -D OUTPUT -o eth1 -j qos_Default
> | iptables -t mangle -X qos_Default
> | iptables -t mangle -X qos_Default_ct
> | insmod ipt_multiport >&- 2>&-
> | insmod ipt_CONNMARK >&- 2>&-
> | insmod ipt_length >&- 2>&-
> | iptables -t mangle -N qos_Default >&- 2>&-
> | iptables -t mangle -N qos_Default_ct >&- 2>&-
> | iptables -t mangle -A qos_Default_ct -m mark --mark 0/0xff -m tcp -p tcp -m multiport --ports 22,53 -j MARK --set-mark 1/0xff
> | iptables -t mangle -A qos_Default_ct -m mark --mark 0/0xff -p udp -m udp -m multiport --ports 22,53 -j MARK --set-mark 1/0xff
> | iptables -t mangle -A qos_Default_ct -m mark --mark 0/0xff -p tcp -m tcp -m multiport --ports 20,21,25,80,110,443,993,995 -j MARK --set-mark 3/0xff
> | iptables -t mangle -A qos_Default_ct -m mark --mark 0/0xff -m tcp -p tcp -m multiport --ports 5190 -j MARK --set-mark 2/0xff
> | iptables -t mangle -A qos_Default_ct -m mark --mark 0/0xff -p udp -m udp -m multiport --ports 5190 -j MARK --set-mark 2/0xff
> | iptables -t mangle -A qos_Default_ct -j CONNMARK --save-mark --mask 0xff
> | iptables -t mangle -A qos_Default -j CONNMARK --restore-mark --mask 0xff
> | iptables -t mangle -A qos_Default -m mark --mark 0/0xff -j qos_Default_ct
> | iptables -t mangle -A qos_Default -m mark --mark 0/0xff -p udp -m length --length :500 -j MARK --set-mark 2/0xff
> | iptables -t mangle -A qos_Default -p icmp -j MARK --set-mark 1/0xff
> | iptables -t mangle -A qos_Default -m mark --mark 0/0xff -m tcp -p tcp --sport 1024:65535 --dport 1024:65535 -j MARK --set-mark 4/0xff
> | iptables -t mangle -A qos_Default -m mark --mark 0/0xff -p udp -m udp --sport 1024:65535 --dport 1024:65535 -j MARK --set-mark 4/0xff
> | iptables -t mangle -A OUTPUT -o eth1 -j qos_Default
> | iptables -t mangle -A FORWARD -o eth1 -j qos_Default
> \---------------------------------------------------------------------------
>
> ****************************************************************************
> * cmd: iptables -L
> ****************************************************************************
> | Chain INPUT (policy ACCEPT)
> | target prot opt source destination
> | ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
> | ACCEPT all -- anywhere anywhere
> | syn_flood tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN
> | input_rule all -- anywhere anywhere
> | input all -- anywhere anywhere
> |
> | Chain FORWARD (policy DROP)
> | target prot opt source destination
> | ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
> | forwarding_rule all -- anywhere anywhere
> | forward all -- anywhere anywhere
> | reject all -- anywhere anywhere
> |
> | Chain OUTPUT (policy ACCEPT)
> | target prot opt source destination
> | ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
> | ACCEPT all -- anywhere anywhere
> | output_rule all -- anywhere anywhere
> | output all -- anywhere anywhere
> |
> | Chain MINIUPNPD (1 references)
> | target prot opt source destination
> |
> | Chain forward (1 references)
> | target prot opt source destination
> | zone_lan_forward all -- anywhere anywhere
> | zone_wan_forward all -- anywhere anywhere
> |
> | Chain forwarding_lan (1 references)
> | target prot opt source destination
> |
> | Chain forwarding_rule (1 references)
> | target prot opt source destination
> |
> | Chain forwarding_wan (1 references)
> | target prot opt source destination
> |
> | Chain input (1 references)
> | target prot opt source destination
> | zone_lan all -- anywhere anywhere
> | zone_wan all -- anywhere anywhere
> |
> | Chain input_lan (1 references)
> | target prot opt source destination
> |
> | Chain input_rule (1 references)
> | target prot opt source destination
> |
> | Chain input_wan (1 references)
> | target prot opt source destination
> |
> | Chain output (1 references)
> | target prot opt source destination
> | zone_lan_ACCEPT all -- anywhere anywhere
> | zone_wan_ACCEPT all -- anywhere anywhere
> |
> | Chain output_rule (1 references)
> | target prot opt source destination
> |
> | Chain reject (5 references)
> | target prot opt source destination
> | REJECT tcp -- anywhere anywhere reject-with tcp-reset
> | REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
> |
> | Chain syn_flood (1 references)
> | target prot opt source destination
> | RETURN tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 25/sec burst 50
> | DROP all -- anywhere anywhere
> |
> | Chain zone_lan (1 references)
> | target prot opt source destination
> | input_lan all -- anywhere anywhere
> | zone_lan_ACCEPT all -- anywhere anywhere
> |
> | Chain zone_lan_ACCEPT (2 references)
> | target prot opt source destination
> | ACCEPT all -- anywhere anywhere
> | ACCEPT all -- anywhere anywhere
> |
> | Chain zone_lan_DROP (0 references)
> | target prot opt source destination
> | DROP all -- anywhere anywhere
> | DROP all -- anywhere anywhere
> |
> | Chain zone_lan_REJECT (1 references)
> | target prot opt source destination
> | reject all -- anywhere anywhere
> | reject all -- anywhere anywhere
> |
> | Chain zone_lan_forward (1 references)
> | target prot opt source destination
> | zone_wan_ACCEPT all -- anywhere anywhere
> | forwarding_lan all -- anywhere anywhere
> | zone_lan_REJECT all -- anywhere anywhere
> |
> | Chain zone_wan (1 references)
> | target prot opt source destination
> | ACCEPT udp -- anywhere anywhere udp dpt:bootpc
> | ACCEPT icmp -- anywhere anywhere icmp echo-request
> | input_wan all -- anywhere anywhere
> | zone_wan_REJECT all -- anywhere anywhere
> |
> | Chain zone_wan_ACCEPT (2 references)
> | target prot opt source destination
> | ACCEPT all -- anywhere anywhere
> | ACCEPT all -- anywhere anywhere
> |
> | Chain zone_wan_DROP (0 references)
> | target prot opt source destination
> | DROP all -- anywhere anywhere
> | DROP all -- anywhere anywhere
> |
> | Chain zone_wan_REJECT (2 references)
> | target prot opt source destination
> | reject all -- anywhere anywhere
> | reject all -- anywhere anywhere
> |
> | Chain zone_wan_forward (1 references)
> | target prot opt source destination
> | MINIUPNPD all -- anywhere anywhere
> | forwarding_wan all -- anywhere anywhere
> | zone_wan_REJECT all -- anywhere anywhere
> \---------------------------------------------------------------------------
>
> ****************************************************************************
> * cmd: iptables -t nat -L
> ****************************************************************************
> | Chain PREROUTING (policy ACCEPT)
> | target prot opt source destination
> | prerouting_rule all -- anywhere anywhere
> | zone_lan_prerouting all -- anywhere anywhere
> | zone_wan_prerouting all -- anywhere anywhere
> |
> | Chain INPUT (policy ACCEPT)
> | target prot opt source destination
> |
> | Chain OUTPUT (policy ACCEPT)
> | target prot opt source destination
> |
> | Chain POSTROUTING (policy ACCEPT)
> | target prot opt source destination
> | postrouting_rule all -- anywhere anywhere
> | zone_lan_nat all -- anywhere anywhere
> | zone_wan_nat all -- anywhere anywhere
> |
> | Chain MINIUPNPD (1 references)
> | target prot opt source destination
> |
> | Chain postrouting_rule (1 references)
> | target prot opt source destination
> |
> | Chain prerouting_lan (1 references)
> | target prot opt source destination
> |
> | Chain prerouting_rule (1 references)
> | target prot opt source destination
> |
> | Chain prerouting_wan (1 references)
> | target prot opt source destination
> |
> | Chain zone_lan_nat (1 references)
> | target prot opt source destination
> |
> | Chain zone_lan_prerouting (1 references)
> | target prot opt source destination
> | prerouting_lan all -- anywhere anywhere
> |
> | Chain zone_wan_nat (1 references)
> | target prot opt source destination
> | MASQUERADE all -- anywhere anywhere
> |
> | Chain zone_wan_prerouting (1 references)
> | target prot opt source destination
> | MINIUPNPD all -- anywhere anywhere
> | prerouting_wan all -- anywhere anywhere
> \---------------------------------------------------------------------------
>
> ****************************************************************************
> * cmd: 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 udp -- anywhere anywhere mark match 0x0/0xff length 0:500 MARK xset 0x2/0xff
> | MARK icmp -- anywhere anywhere MARK xset 0x1/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
> |
> | Chain qos_Default_ct (1 references)
> | target prot opt source destination
> | MARK tcp -- anywhere anywhere mark match 0x0/0xff tcp multiport ports ssh,domain MARK xset 0x1/0xff
> | MARK udp -- anywhere anywhere mark match 0x0/0xff udp multiport ports ssh,domain MARK xset 0x1/0xff
> | MARK tcp -- anywhere anywhere mark match 0x0/0xff tcp multiport ports ftp-data,ftp,smtp,www,pop3,https,imaps,pop3s MARK xset 0x3/0xff
> | MARK tcp -- anywhere anywhere mark match 0x0/0xff tcp multiport ports 5190 MARK xset 0x2/0xff
> | MARK udp -- anywhere anywhere mark match 0x0/0xff udp multiport ports 5190 MARK xset 0x2/0xff
> | CONNMARK all -- anywhere anywhere CONNMARK save mask 0xff
> |
> | Chain zone_wan_MSSFIX (1 references)
> | target prot opt source destination
> | TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
> \---------------------------------------------------------------------------
>
> ****************************************************************************
> * cmd: tc -s qdisc show dev eth0
> ****************************************************************************
> | qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
> | Sent 278256856 bytes 260097 pkt (dropped 0, overlimits 0 requeues 0)
> | backlog 0b 0p requeues 0
> \---------------------------------------------------------------------------
>
> ****************************************************************************
> * cmd: tc -s qdisc show dev eth1
> ****************************************************************************
> | qdisc hfsc 1: root refcnt 2 default 30
> | Sent 1447188 bytes 7376 pkt (dropped 0, overlimits 12468 requeues 0)
> | backlog 0b 0p requeues 0
> | qdisc fq_codel 100: parent 1:10 limit 10240p flows 1024 quantum 1518 target 5.0ms interval 100.0ms ecn
> | Sent 5000 bytes 55 pkt (dropped 0, overlimits 0 requeues 0)
> | backlog 0b 0p requeues 0
> | maxpacket 256 drop_overlimit 0 new_flow_count 27 ecn_mark 0
> | new_flows_len 1 old_flows_len 0
> | qdisc fq_codel 200: parent 1:20 limit 10240p flows 1024 quantum 1518 target 5.0ms interval 100.0ms ecn
> | Sent 19246 bytes 145 pkt (dropped 0, overlimits 0 requeues 0)
> | backlog 0b 0p requeues 0
> | maxpacket 350 drop_overlimit 0 new_flow_count 80 ecn_mark 0
> | new_flows_len 0 old_flows_len 2
> | qdisc fq_codel 300: parent 1:30 limit 10240p flows 1024 quantum 1518 target 5.0ms interval 100.0ms ecn
> | Sent 720529 bytes 2687 pkt (dropped 223, overlimits 0 requeues 0)
> | backlog 0b 0p requeues 0
> | maxpacket 1514 drop_overlimit 0 new_flow_count 750 ecn_mark 0
> | new_flows_len 1 old_flows_len 5
> | qdisc fq_codel 400: parent 1:40 limit 10240p flows 1024 quantum 1518 target 5.0ms interval 100.0ms ecn
> | Sent 702413 bytes 4489 pkt (dropped 1461, overlimits 0 requeues 0)
> | backlog 0b 0p requeues 0
> | maxpacket 1514 drop_overlimit 0 new_flow_count 271 ecn_mark 0
> | new_flows_len 0 old_flows_len 1
> | qdisc ingress ffff: parent ffff:fff1 ----------------
> | Sent 1639987 bytes 3843 pkt (dropped 0, overlimits 0 requeues 0)
> | backlog 0b 0p requeues 0
> \---------------------------------------------------------------------------
>
> ****************************************************************************
> * cmd: tc -s qdisc show dev ifb0
> ****************************************************************************
> | qdisc hfsc 1: root refcnt 2 default 30
> | Sent 1391951 bytes 2762 pkt (dropped 0, overlimits 2001 requeues 0)
> | backlog 0b 0p requeues 0
> | qdisc fq_codel 100: parent 1:10 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> | Sent 4723 bytes 23 pkt (dropped 0, overlimits 0 requeues 0)
> | backlog 0b 0p requeues 0
> | maxpacket 299 drop_overlimit 0 new_flow_count 21 ecn_mark 0
> | new_flows_len 1 old_flows_len 0
> | qdisc fq_codel 200: parent 1:20 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> | Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
> | backlog 0b 0p requeues 0
> | maxpacket 256 drop_overlimit 0 new_flow_count 0 ecn_mark 0
> | new_flows_len 0 old_flows_len 0
> | qdisc fq_codel 300: parent 1:30 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> | Sent 1387228 bytes 2739 pkt (dropped 127, overlimits 0 requeues 0)
> | backlog 0b 0p requeues 0
> | maxpacket 1518 drop_overlimit 0 new_flow_count 1052 ecn_mark 0
> | new_flows_len 1 old_flows_len 1
> | qdisc fq_codel 400: parent 1:40 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> | Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
> | backlog 0b 0p requeues 0
> | maxpacket 256 drop_overlimit 0 new_flow_count 0 ecn_mark 0
> | new_flows_len 0 old_flows_len 0
> \---------------------------------------------------------------------------
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20160530/13de913c/attachment.htm>
-------------- next part --------------
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list