2 ################################################################################
3 # test_triple_isolated_llt_cake.qos
4 # One bin cake shaper for ethernet gateways
5 # using cake qdisc with triple-isolate and diffserv-llt (Latency-Loss-Tradeoff)
7 ################################################################################
9 # This program is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License version 2 as
11 # published by the Free Software Foundation.
13 # Copyright (C) 2012-2016
14 # Michael D. Taht, Toke Høiland-Jørgensen, Sebastian Moeller
16 ################################################################################
18 .
${SQM_LIB_DIR}/defaults.sh
20 ################################################################################
23 # this will only work with cake as qdisc...
27 # to keep this as simple as possible we ignore the *_CAKE_OPTS from defaults.sh
28 INGRESS_CAKE_OPTS
="diffserv-llt triple-isolate"
29 EGRESS_CAKE_OPTS
="diffserv-llt triple-isolate"
34 $TC qdisc del dev
$IFACE root
2>/dev
/null
35 $TC qdisc add dev
$IFACE root $
( get_stab_string
) cake bandwidth
${UPLINK}kbit $( get_cake_lla_string ) ${EGRESS_CAKE_OPTS} ${EQDISC_OPTS}
41 $TC qdisc del dev
$IFACE handle ffff
: ingress
2>/dev
/null
42 $TC qdisc add dev
$IFACE handle ffff
: ingress
43 $TC qdisc del dev
$DEV root
2>/dev
/null
44 $TC qdisc add dev
$DEV root $
( get_stab_string
) cake bandwidth
${DOWNLINK}kbit $( get_cake_lla_string ) ${INGRESS_CAKE_OPTS} ${IQDISC_OPTS}
46 $IP link
set dev
$DEV up
48 # redirect all IP packets arriving in $IFACE to ifb0
50 $TC filter add dev
$IFACE parent ffff
: protocol all prio
10 u32 \
51 match u32
0 0 flowid
1:1 action mirred egress redirect dev
$DEV
55 [ -n "$IFACE" ] ||
return 1
57 verify_qdisc
$QDISC "cake" ||
return 1
58 sqm_debug
"Starting ${SCRIPT}"
60 [ -z "$DEV" ] && DEV
=$
( get_ifb_for_if
${IFACE} )
63 if [ "${UPLINK}" -ne 0 ];
66 sqm_debug
"egress shaping activated"
68 sqm_debug
"egress shaping deactivated"
69 $TC qdisc del dev
${IFACE} root
2> /dev
/null
71 if [ "${DOWNLINK}" -ne 0 ];
73 verify_qdisc ingress
"ingress" ||
return 1
75 sqm_debug
"ingress shaping activated"
77 sqm_debug
"ingress shaping deactivated"
78 $TC qdisc del dev
${DEV} root
2> /dev
/null
79 $TC qdisc del dev
${IFACE} ingress
2> /dev
/null