]>
Commit | Line | Data |
---|---|---|
3e78d712 MT |
1 | #!/bin/bash |
2 | ############################################################################ | |
3 | # # | |
4 | # This file is part of the IPFire Firewall. # | |
5 | # # | |
6 | # IPFire is free software; you can redistribute it and/or modify # | |
7 | # it under the terms of the GNU General Public License as published by # | |
8 | # the Free Software Foundation; either version 2 of the License, or # | |
9 | # (at your option) any later version. # | |
10 | # # | |
11 | # IPFire is distributed in the hope that it will be useful, # | |
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of # | |
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # | |
14 | # GNU General Public License for more details. # | |
15 | # # | |
16 | # You should have received a copy of the GNU General Public License # | |
17 | # along with IPFire; if not, write to the Free Software # | |
18 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # | |
19 | # # | |
20 | # Copyright (C) 2007-2012 IPFire Team <info@ipfire.org>. # | |
21 | # # | |
22 | ############################################################################ | |
23 | ||
24 | LOG_FACILITY="codel" | |
25 | ||
26 | function log() { | |
27 | logger -t "${LOG_FACILITY}" $@ | |
28 | } | |
29 | ||
30 | if [ -z "${INTERFACE}" ]; then | |
31 | echo "INTERFACE variable was not set." >&2 | |
32 | exit 1 | |
33 | fi | |
34 | ||
35 | # Do nothing for the loopback device. | |
36 | [ "${INTERFACE}" = "lo" ] && exit 0 | |
37 | ||
38 | case "${ACTION}" in | |
39 | add|register) | |
40 | # Change root qdisc to use fq_codel. | |
41 | /sbin/tc qdisc add root dev ${INTERFACE} fq_codel | |
42 | ret=$? | |
43 | ||
44 | if [ ${ret} -eq 0 ]; then | |
45 | log "Codel AQM has been enabled on '${INTERFACE}'." | |
46 | else | |
47 | log "Codel AQM could not be enabled on '${INTERFACE}'. Error code: ${ret}" | |
48 | exit ${ret} | |
49 | fi | |
50 | ;; | |
51 | ||
52 | remove|unregister) | |
53 | # Nothing to do here. | |
54 | ;; | |
55 | esac | |
56 | ||
57 | exit 0 |