#!/bin/bash ############################################################################ # # # This file is part of the IPFire Firewall. # # # # IPFire is free software; you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # IPFire is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # # Copyright (C) 2007-2012 IPFire Team . # # # ############################################################################ LOG_FACILITY="codel" function log() { logger -t "${LOG_FACILITY}" $@ } if [ -z "${INTERFACE}" ]; then echo "INTERFACE variable was not set." >&2 exit 1 fi # Do nothing for the loopback device. [ "${INTERFACE}" = "lo" ] && exit 0 case "${ACTION}" in add|register) # Change root qdisc to use fq_codel. /sbin/tc qdisc add root dev ${INTERFACE} fq_codel ret=$? if [ ${ret} -eq 0 ]; then log "Codel AQM has been enabled on '${INTERFACE}'." else log "Codel AQM could not be enabled on '${INTERFACE}'. Error code: ${ret}" exit ${ret} fi ;; remove|unregister) # Nothing to do here. ;; esac exit 0