See patch for your perusal but it looks like ingress qdisc is incorrectly applied to the source interface rather than the ifb interface. Running /etc/init.d/sqm stop/start manually on openwrt threw an error. With the patch the right interfaces have the right qdiscs and bandwidths. diff --git a/net/sqm-scripts/files/usr/lib/sqm/simple.qos b/net/sqm-scripts/files/usr/lib/sqm/simple.qos index faeb4ec..3c5f2b5 100755 --- a/net/sqm-scripts/files/usr/lib/sqm/simple.qos +++ b/net/sqm-scripts/files/usr/lib/sqm/simple.qos @@ -157,7 +157,7 @@ then sqm_logger "Do not perform DSCP based filtering on ingress. (1-tier classification)" # Revert to no dscp based filtering case $QDISC in - cake*) $TC qdisc add dev $IFACE root $QDISC bandwidth ${DOWNLINK}kbit besteffort ;; + cake*) $TC qdisc add dev $DEV root $QDISC bandwidth ${DOWNLINK}kbit besteffort ;; *) $TC qdisc add dev $DEV root handle 1: `get_stab_string` htb default 10 $TC class add dev $DEV parent 1: classid 1:1 htb $LQ rate ${DOWNLINK}kbit ceil ${DOWNLINK}kbit `get_htb_adsll_string` @@ -169,7 +169,7 @@ esac else sqm_logger "Perform DSCP based filtering on ingress. (3-tier classification)" case $QDISC in - cake*) $TC qdisc add dev $IFACE root $QDISC bandwidth ${DOWNLINK}kbit $CAKE_OPTS;; + cake*) $TC qdisc add dev $DEV root $QDISC bandwidth ${DOWNLINK}kbit $CAKE_OPTS;; *) $TC qdisc add dev $DEV root handle 1: `get_stab_string` htb default 12 $TC class add dev $DEV parent 1: classid 1:1 htb $LQ rate ${CEIL}kbit ceil ${CEIL}kbit `get_htb_adsll_string` -- Thanks, Kevin@Darbyshire-Bryant.me.uk