[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