From 46a41259809ce110487a18bb5b5f28640b675178 Mon Sep 17 00:00:00 2001 From: hk Date: Fri, 13 Jan 2017 08:32:09 +0100 Subject: [PATCH] Enable ECN for egress if class bandwith is larger than 3 Mbit/s --- src/tc-gen.sh | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/tc-gen.sh b/src/tc-gen.sh index 365ce52..29fea70 100755 --- a/src/tc-gen.sh +++ b/src/tc-gen.sh @@ -158,6 +158,17 @@ get_fq_codel_quantum () { fi } +get_ecn () { + # Takes input rate in mbit/s as parameter + local RATE=$1 + + if [[ ${RATE} -gt 3 ]]; then + echo "ecn" + else + echo "noecn" + fi +} + get_mtu () { # Takes interface as parameter cat /sys/class/net/${1}/mtu @@ -266,7 +277,7 @@ apply_egress_shaping () { limit $(get_limit ${CEIL_RATE}) \ target $(get_target ${CEIL_RATE} $(get_mtu ${IF_NAME})) \ $(get_fq_codel_quantum ${CEIL_RATE}) \ - noecn + $(get_ecn ${CEIL_RATE}) ${TC} filter add dev ${IF_NAME} parent 1: protocol all \ handle ${FWMARK} fw classid 1:${CLASS_ID} @@ -278,12 +289,12 @@ apply_egress_shaping () { ceil ${UP_RATE}mbit prio ${DEFAULT_PRIO} \ quantum $(get_htb_quantum ${UP_RATE}) - # Set qdisc to fq_codel. Disabling ECN is recommended for egress + # Set qdisc to fq_codel ${TC} qdisc replace dev ${IF_NAME} parent 1:99 handle 99: fq_codel \ limit $(get_limit ${UP_RATE}) \ target $(get_target ${UP_RATE} $(get_mtu ${IF_NAME})) \ $(get_fq_codel_quantum ${UP_RATE}) \ - noecn + $(get_ecn ${UP_RATE}) } apply_ingress_shaping () {