my $level7file = "/var/ipfire/qos/level7config";
my $portfile = "/var/ipfire/qos/portconfig";
my $tosfile = "/var/ipfire/qos/tosconfig";
-my $fqcodel_options = "limit 10240 quantum 1514";
+my @cake_options = (
+ # RED is by default connected to the Internet
+ "internet"
+);
# Define iptables MARKs
my $QOS_INC_MASK = 0x0000ff00;
&General::readhash("${General::swroot}/qos/settings", \%qossettings);
+# Default to "conservative
+unless (defined $qossettings{'CAKE_PROFILE'}) {
+ $qossettings{'CAKE_PROFILE'} = "conservative";
+}
+push(@cake_options, $qossettings{'CAKE_PROFILE'});
+
my $DEF_OUT_MARK = ($qossettings{'DEFCLASS_OUT'} << $QOS_OUT_SHIFT) . "/$QOS_OUT_MASK";
my $DEF_INC_MARK = ($qossettings{'DEFCLASS_INC'} << $QOS_INC_SHIFT) . "/$QOS_INC_MASK";
if ($qossettings{'RED_DEV'} eq $classline[0]) {
$qossettings{'DEVICE'} = $classline[0];
$qossettings{'CLASS'} = $classline[1];
- print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: fq_codel $fqcodel_options\n";
+ print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: cake @cake_options\n";
}
}
print "\n\t### FILTER TRAFFIC INTO CLASSES\n";
if ($qossettings{'IMQ_DEV'} eq $classline[0]) {
$qossettings{'DEVICE'} = $classline[0];
$qossettings{'CLASS'} = $classline[1];
- print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: fq_codel $fqcodel_options\n";
+ print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: cake @cake_options\n";
}
}
print "\n\t### FILTER TRAFFIC INTO CLASSES\n";
# DELETE QDISCS
tc qdisc del dev $qossettings{'RED_DEV'} root >/dev/null 2>&1
tc qdisc del dev $qossettings{'RED_DEV'} ingress >/dev/null 2>&1
- tc qdisc add root dev $qossettings{'RED_DEV'} fq_codel >/dev/null 2>&1
- tc qdisc del dev $qossettings{'IMQ_DEV'} root >/dev/null 2>&1
- tc qdisc del dev $qossettings{'IMQ_DEV'} ingress >/dev/null 2>&1
- tc qdisc add root dev $qossettings{'IMQ_DEV'} fq_codel >/dev/null 2>&1
+ INTERFACE="$qossettings{'RED_DEV'}" ACTION="add" /lib/udev/network-aqm &>/dev/null
# STOP IMQ-DEVICE
ip link set $qossettings{'IMQ_DEV'} down >/dev/null 2>&1
ip link del $qossettings{'IMQ_DEV'} >/dev/null 2>&1
lib/udev/ata_id
lib/udev/cdrom_id
lib/udev/collect
-lib/udev/enable_codel
lib/udev/init-net-rules.sh
lib/udev/mtd_probe
+lib/udev/network-aqm
lib/udev/network-hotplug-bridges
lib/udev/network-hotplug-rename
lib/udev/network-hotplug-vlan
lib/udev/rules.d/78-sound-card.rules
lib/udev/rules.d/80-drivers.rules
lib/udev/rules.d/90-hwrng.rules
-lib/udev/rules.d/99-codel.rules
+lib/udev/rules.d/99-aqm.rules
lib/udev/rules.d/99-offloading.rules
lib/udev/scsi_id
lib/udev/v4l_id
--- /dev/null
+# Call the AQM script
+SUBSYSTEM=="net", RUN+="/lib/udev/network-aqm"
+++ /dev/null
-# Call the enable codel script.
-SUBSYSTEM=="net", RUN+="/lib/udev/enable_codel"
# #
############################################################################
-LOG_FACILITY="codel"
+LOG_FACILITY="aqm"
-function log() {
+log() {
logger -t "${LOG_FACILITY}" $@
}
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}"
+ TYPE="$(</sys/class/net/${INTERFACE}/type)"
+
+ # Detect bridges
+ if [ -d "/sys/class/net/${INTERFACE}/bridge" ]; then
+ TYPE="bridge"
+ fi
+
+ args=()
+
+ # Configure some useful defaults depending on the interface
+ case "${INTERFACE},${TYPE}" in
+ # Ignore loopback
+ lo,*)
+ exit 0
+ ;;
+
+ # Ignore tun
+ tun*)
+ exit 0
+ ;;
+
+ # Ignore GRE/VTI
+ *,778|*,768)
+ exit 0
+ ;;
+
+ # Ignore bridges
+ *,bridge)
+ exit 0
+ ;;
+
+ # Handle dial-up connections on RED
+ ppp*,512)
+ args+=( "cake" "internet" "conservative" "ack-filter" )
+ ;;
+
+ # Treat any other interfaces as "Ethernet"
+ red*,*)
+ args+=( "cake" "internet" "ethernet" )
+ ;;
+
+ # All other interfaces are locally connected
+ *)
+ args+=( "cake" "ethernet" "metro" )
+ ;;
+ esac
+
+ # Change root qdisc to use cake
+ if ! tc qdisc replace root dev "${INTERFACE}" "${args[@]}"; then
+ log "Could not configure qdisc on ${INTERFACE} with parameters ${args[@]}"
exit ${ret}
fi
;;
# Try to find out if this INTERFACE is a slave of a zone
local slave
for slave in $(get_value "${zone}_SLAVES"); do
-
- #Compare if the mac address matches or if the name matches
- if ([ "$(</sys/class/net/${INTERFACE}/address)" = "${slave}" ] || [ "${INTERFACE}" = "${slave}" ]); then
+ # Compare if the mac address matches or if the name matches
+ if [ -r "/sys/class/net/${INTERFACE}/address" -a "$(</sys/class/net/${INTERFACE}/address)" = "${slave}" ] || [ "${INTERFACE}" = "${slave}" ]; then
echo "${zone}"
return 0
fi
WARNING: translation string unused: zoneconf val vlan tag assignment error
WARNING: translation string unused: zoneconf val vlan tag range error
WARNING: translation string unused: zoneconf val zoneslave amount error
+WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
+WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
+WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
+WARNING: untranslated string: cake profile conservative 48 = Conservative (should work on all connections, 48 bytes)
+WARNING: untranslated string: cake profile docsis 18 = DOCSIS (18 bytes)
+WARNING: untranslated string: cake profile ethernet 38 = Ethernet (38 bytes)
+WARNING: untranslated string: cake profile ethernet vlan 42 = Ethernet with VLAN (42 bytes)
+WARNING: untranslated string: cake profile ipoa-llcsnap 16 = IP over ATM LLC SNAP (16 bytes)
+WARNING: untranslated string: cake profile ipoa-vcmux 8 = IP over ATM VC-MUX (8 bytes)
+WARNING: untranslated string: cake profile pppoa-llc 14 = PPPoA LLC (14 bytes)
+WARNING: untranslated string: cake profile pppoa-vcmux 10 = PPPoA VC-MUX (10 bytes)
+WARNING: untranslated string: cake profile pppoe-llcsnap 40 = PPPoE LLC SNAP (40 bytes)
+WARNING: untranslated string: cake profile pppoe-ptm 27 = PPPoE PTM (27 bytes)
+WARNING: untranslated string: cake profile pppoe-vcmux 32 = PPPoE VC-MUX (32 bytes)
+WARNING: untranslated string: cake profile raw 0 = Raw (no overhead compensation)
WARNING: untranslated string: desired = Desired
WARNING: untranslated string: disable = Disable
WARNING: untranslated string: download apple profile = Download Apple Configuration Profile
WARNING: untranslated string: ipsec dns server address is invalid = Invalid DNS server IP address(es)
WARNING: untranslated string: ipsec invalid ip address or fqdn for rw endpoint = Invalid IP address or FQDN for Host-to-Net Endpoint
WARNING: untranslated string: ipsec roadwarrior endpoint = Host-to-Net Endpoint
+WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
WARNING: untranslated string: netbios nameserver daemon = NetBIOS Nameserver Daemon
WARNING: untranslated string: no entries = No entries at the moment.
WARNING: untranslated string: optional = Optional
WARNING: untranslated string: cached = cached
WARNING: untranslated string: cached memory = Cached Memory
WARNING: untranslated string: cached swap = Cached Swap
+WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
+WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
+WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
+WARNING: untranslated string: cake profile conservative 48 = Conservative (should work on all connections, 48 bytes)
+WARNING: untranslated string: cake profile docsis 18 = DOCSIS (18 bytes)
+WARNING: untranslated string: cake profile ethernet 38 = Ethernet (38 bytes)
+WARNING: untranslated string: cake profile ethernet vlan 42 = Ethernet with VLAN (42 bytes)
+WARNING: untranslated string: cake profile ipoa-llcsnap 16 = IP over ATM LLC SNAP (16 bytes)
+WARNING: untranslated string: cake profile ipoa-vcmux 8 = IP over ATM VC-MUX (8 bytes)
+WARNING: untranslated string: cake profile pppoa-llc 14 = PPPoA LLC (14 bytes)
+WARNING: untranslated string: cake profile pppoa-vcmux 10 = PPPoA VC-MUX (10 bytes)
+WARNING: untranslated string: cake profile pppoe-llcsnap 40 = PPPoE LLC SNAP (40 bytes)
+WARNING: untranslated string: cake profile pppoe-ptm 27 = PPPoE PTM (27 bytes)
+WARNING: untranslated string: cake profile pppoe-vcmux 32 = PPPoE VC-MUX (32 bytes)
+WARNING: untranslated string: cake profile raw 0 = Raw (no overhead compensation)
WARNING: untranslated string: calamaris available reports = Available reports
WARNING: untranslated string: calamaris byte unit = Byte unit
WARNING: untranslated string: calamaris create report = Create report
WARNING: untranslated string: least preferred = least preferred
WARNING: untranslated string: legend = Legend
WARNING: untranslated string: lifetime = Lifetime:
+WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
WARNING: untranslated string: linkq = Link Quality
WARNING: untranslated string: local ip address = Local IP Address
WARNING: untranslated string: local ntp server specified but not enabled = Local NTP server specified but not enabled
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
WARNING: untranslated string: bytes = unknown string
+WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
+WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
+WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
+WARNING: untranslated string: cake profile conservative 48 = Conservative (should work on all connections, 48 bytes)
+WARNING: untranslated string: cake profile docsis 18 = DOCSIS (18 bytes)
+WARNING: untranslated string: cake profile ethernet 38 = Ethernet (38 bytes)
+WARNING: untranslated string: cake profile ethernet vlan 42 = Ethernet with VLAN (42 bytes)
+WARNING: untranslated string: cake profile ipoa-llcsnap 16 = IP over ATM LLC SNAP (16 bytes)
+WARNING: untranslated string: cake profile ipoa-vcmux 8 = IP over ATM VC-MUX (8 bytes)
+WARNING: untranslated string: cake profile pppoa-llc 14 = PPPoA LLC (14 bytes)
+WARNING: untranslated string: cake profile pppoa-vcmux 10 = PPPoA VC-MUX (10 bytes)
+WARNING: untranslated string: cake profile pppoe-llcsnap 40 = PPPoE LLC SNAP (40 bytes)
+WARNING: untranslated string: cake profile pppoe-ptm 27 = PPPoE PTM (27 bytes)
+WARNING: untranslated string: cake profile pppoe-vcmux 32 = PPPoE VC-MUX (32 bytes)
+WARNING: untranslated string: cake profile raw 0 = Raw (no overhead compensation)
WARNING: untranslated string: capabilities = Capabilities
WARNING: untranslated string: ccd add = Add network
WARNING: untranslated string: ccd choose net = Choose network
WARNING: untranslated string: last = Last
WARNING: untranslated string: least preferred = least preferred
WARNING: untranslated string: lifetime = Lifetime:
+WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
WARNING: untranslated string: local ip address = Local IP Address
WARNING: untranslated string: log server protocol = protocol:
WARNING: untranslated string: mac filter = MAC filter
WARNING: translation string unused: zoneconf val vlan tag assignment error
WARNING: translation string unused: zoneconf val vlan tag range error
WARNING: translation string unused: zoneconf val zoneslave amount error
+WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
+WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
+WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
+WARNING: untranslated string: cake profile conservative 48 = Conservative (should work on all connections, 48 bytes)
+WARNING: untranslated string: cake profile docsis 18 = DOCSIS (18 bytes)
+WARNING: untranslated string: cake profile ethernet 38 = Ethernet (38 bytes)
+WARNING: untranslated string: cake profile ethernet vlan 42 = Ethernet with VLAN (42 bytes)
+WARNING: untranslated string: cake profile ipoa-llcsnap 16 = IP over ATM LLC SNAP (16 bytes)
+WARNING: untranslated string: cake profile ipoa-vcmux 8 = IP over ATM VC-MUX (8 bytes)
+WARNING: untranslated string: cake profile pppoa-llc 14 = PPPoA LLC (14 bytes)
+WARNING: untranslated string: cake profile pppoa-vcmux 10 = PPPoA VC-MUX (10 bytes)
+WARNING: untranslated string: cake profile pppoe-llcsnap 40 = PPPoE LLC SNAP (40 bytes)
+WARNING: untranslated string: cake profile pppoe-ptm 27 = PPPoE PTM (27 bytes)
+WARNING: untranslated string: cake profile pppoe-vcmux 32 = PPPoE VC-MUX (32 bytes)
+WARNING: untranslated string: cake profile raw 0 = Raw (no overhead compensation)
WARNING: untranslated string: eol architecture warning = You are running an architecture of IPFire which reached its end of life. You will not receive updates anymore. This is a security risk.
WARNING: untranslated string: false max bandwidth = Maximum bandwidth is false.
WARNING: untranslated string: false min bandwidth = Minimum bandwidth is false.
WARNING: untranslated string: guardian logtarget_syslog = unknown string
WARNING: untranslated string: guardian no entries = unknown string
WARNING: untranslated string: guardian service = unknown string
+WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
WARNING: untranslated string: max bandwidth = Maximum bandwidth
WARNING: untranslated string: pakfire ago = ago.
WARNING: untranslated string: route config changed = unknown string
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
WARNING: untranslated string: bytes = unknown string
+WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
+WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
+WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
+WARNING: untranslated string: cake profile conservative 48 = Conservative (should work on all connections, 48 bytes)
+WARNING: untranslated string: cake profile docsis 18 = DOCSIS (18 bytes)
+WARNING: untranslated string: cake profile ethernet 38 = Ethernet (38 bytes)
+WARNING: untranslated string: cake profile ethernet vlan 42 = Ethernet with VLAN (42 bytes)
+WARNING: untranslated string: cake profile ipoa-llcsnap 16 = IP over ATM LLC SNAP (16 bytes)
+WARNING: untranslated string: cake profile ipoa-vcmux 8 = IP over ATM VC-MUX (8 bytes)
+WARNING: untranslated string: cake profile pppoa-llc 14 = PPPoA LLC (14 bytes)
+WARNING: untranslated string: cake profile pppoa-vcmux 10 = PPPoA VC-MUX (10 bytes)
+WARNING: untranslated string: cake profile pppoe-llcsnap 40 = PPPoE LLC SNAP (40 bytes)
+WARNING: untranslated string: cake profile pppoe-ptm 27 = PPPoE PTM (27 bytes)
+WARNING: untranslated string: cake profile pppoe-vcmux 32 = PPPoE VC-MUX (32 bytes)
+WARNING: untranslated string: cake profile raw 0 = Raw (no overhead compensation)
WARNING: untranslated string: check all = Check all
WARNING: untranslated string: cpu frequency = CPU frequency
WARNING: untranslated string: crypto error = Cryptographic error
WARNING: untranslated string: ipsec routing table entries = IPsec Routing Table Entries
WARNING: untranslated string: ipsec settings = IPsec Settings
WARNING: untranslated string: itlb multihit = iTLB MultiHit
+WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
WARNING: untranslated string: local ip address = Local IP Address
WARNING: untranslated string: location = Location
WARNING: untranslated string: locationblock = Location Block
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
WARNING: untranslated string: bytes = unknown string
+WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
+WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
+WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
+WARNING: untranslated string: cake profile conservative 48 = Conservative (should work on all connections, 48 bytes)
+WARNING: untranslated string: cake profile docsis 18 = DOCSIS (18 bytes)
+WARNING: untranslated string: cake profile ethernet 38 = Ethernet (38 bytes)
+WARNING: untranslated string: cake profile ethernet vlan 42 = Ethernet with VLAN (42 bytes)
+WARNING: untranslated string: cake profile ipoa-llcsnap 16 = IP over ATM LLC SNAP (16 bytes)
+WARNING: untranslated string: cake profile ipoa-vcmux 8 = IP over ATM VC-MUX (8 bytes)
+WARNING: untranslated string: cake profile pppoa-llc 14 = PPPoA LLC (14 bytes)
+WARNING: untranslated string: cake profile pppoa-vcmux 10 = PPPoA VC-MUX (10 bytes)
+WARNING: untranslated string: cake profile pppoe-llcsnap 40 = PPPoE LLC SNAP (40 bytes)
+WARNING: untranslated string: cake profile pppoe-ptm 27 = PPPoE PTM (27 bytes)
+WARNING: untranslated string: cake profile pppoe-vcmux 32 = PPPoE VC-MUX (32 bytes)
+WARNING: untranslated string: cake profile raw 0 = Raw (no overhead compensation)
WARNING: untranslated string: capabilities = Capabilities
WARNING: untranslated string: check all = Check all
WARNING: untranslated string: cpu frequency = CPU frequency
WARNING: untranslated string: ipsec routing table entries = IPsec Routing Table Entries
WARNING: untranslated string: ipsec settings = IPsec Settings
WARNING: untranslated string: itlb multihit = iTLB MultiHit
+WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
WARNING: untranslated string: local ip address = Local IP Address
WARNING: untranslated string: location = Location
WARNING: untranslated string: locationblock = Location Block
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
WARNING: untranslated string: bytes = unknown string
+WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
+WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
+WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
+WARNING: untranslated string: cake profile conservative 48 = Conservative (should work on all connections, 48 bytes)
+WARNING: untranslated string: cake profile docsis 18 = DOCSIS (18 bytes)
+WARNING: untranslated string: cake profile ethernet 38 = Ethernet (38 bytes)
+WARNING: untranslated string: cake profile ethernet vlan 42 = Ethernet with VLAN (42 bytes)
+WARNING: untranslated string: cake profile ipoa-llcsnap 16 = IP over ATM LLC SNAP (16 bytes)
+WARNING: untranslated string: cake profile ipoa-vcmux 8 = IP over ATM VC-MUX (8 bytes)
+WARNING: untranslated string: cake profile pppoa-llc 14 = PPPoA LLC (14 bytes)
+WARNING: untranslated string: cake profile pppoa-vcmux 10 = PPPoA VC-MUX (10 bytes)
+WARNING: untranslated string: cake profile pppoe-llcsnap 40 = PPPoE LLC SNAP (40 bytes)
+WARNING: untranslated string: cake profile pppoe-ptm 27 = PPPoE PTM (27 bytes)
+WARNING: untranslated string: cake profile pppoe-vcmux 32 = PPPoE VC-MUX (32 bytes)
+WARNING: untranslated string: cake profile raw 0 = Raw (no overhead compensation)
WARNING: untranslated string: capabilities = Capabilities
WARNING: untranslated string: ccd add = Add network
WARNING: untranslated string: ccd choose net = Choose network
WARNING: untranslated string: last = Last
WARNING: untranslated string: least preferred = least preferred
WARNING: untranslated string: lifetime = Lifetime:
+WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
WARNING: untranslated string: local ip address = Local IP Address
WARNING: untranslated string: location = Location
WARNING: untranslated string: locationblock = Location Block
WARNING: untranslated string: block = Block
WARNING: untranslated string: broken = Broken
WARNING: untranslated string: bytes = unknown string
+WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
+WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
+WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
+WARNING: untranslated string: cake profile conservative 48 = Conservative (should work on all connections, 48 bytes)
+WARNING: untranslated string: cake profile docsis 18 = DOCSIS (18 bytes)
+WARNING: untranslated string: cake profile ethernet 38 = Ethernet (38 bytes)
+WARNING: untranslated string: cake profile ethernet vlan 42 = Ethernet with VLAN (42 bytes)
+WARNING: untranslated string: cake profile ipoa-llcsnap 16 = IP over ATM LLC SNAP (16 bytes)
+WARNING: untranslated string: cake profile ipoa-vcmux 8 = IP over ATM VC-MUX (8 bytes)
+WARNING: untranslated string: cake profile pppoa-llc 14 = PPPoA LLC (14 bytes)
+WARNING: untranslated string: cake profile pppoa-vcmux 10 = PPPoA VC-MUX (10 bytes)
+WARNING: untranslated string: cake profile pppoe-llcsnap 40 = PPPoE LLC SNAP (40 bytes)
+WARNING: untranslated string: cake profile pppoe-ptm 27 = PPPoE PTM (27 bytes)
+WARNING: untranslated string: cake profile pppoe-vcmux 32 = PPPoE VC-MUX (32 bytes)
+WARNING: untranslated string: cake profile raw 0 = Raw (no overhead compensation)
WARNING: untranslated string: capabilities = Capabilities
WARNING: untranslated string: ccd add = Add network
WARNING: untranslated string: ccd choose net = Choose network
WARNING: untranslated string: last = Last
WARNING: untranslated string: least preferred = least preferred
WARNING: untranslated string: lifetime = Lifetime:
+WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
WARNING: untranslated string: local ip address = Local IP Address
WARNING: untranslated string: location = Location
WARNING: untranslated string: locationblock = Location Block
WARNING: untranslated string: available = available
WARNING: untranslated string: broken = Broken
WARNING: untranslated string: bytes = unknown string
+WARNING: untranslated string: cake profile bridged-llcsnap 32 = Bridged LLC SNAP (32 bytes)
+WARNING: untranslated string: cake profile bridged-ptm 19 = Bridged PTM (19 bytes)
+WARNING: untranslated string: cake profile bridged-vcmux 24 = Bridged VC-MUX (24 bytes)
+WARNING: untranslated string: cake profile conservative 48 = Conservative (should work on all connections, 48 bytes)
+WARNING: untranslated string: cake profile docsis 18 = DOCSIS (18 bytes)
+WARNING: untranslated string: cake profile ethernet 38 = Ethernet (38 bytes)
+WARNING: untranslated string: cake profile ethernet vlan 42 = Ethernet with VLAN (42 bytes)
+WARNING: untranslated string: cake profile ipoa-llcsnap 16 = IP over ATM LLC SNAP (16 bytes)
+WARNING: untranslated string: cake profile ipoa-vcmux 8 = IP over ATM VC-MUX (8 bytes)
+WARNING: untranslated string: cake profile pppoa-llc 14 = PPPoA LLC (14 bytes)
+WARNING: untranslated string: cake profile pppoa-vcmux 10 = PPPoA VC-MUX (10 bytes)
+WARNING: untranslated string: cake profile pppoe-llcsnap 40 = PPPoE LLC SNAP (40 bytes)
+WARNING: untranslated string: cake profile pppoe-ptm 27 = PPPoE PTM (27 bytes)
+WARNING: untranslated string: cake profile pppoe-vcmux 32 = PPPoE VC-MUX (32 bytes)
+WARNING: untranslated string: cake profile raw 0 = Raw (no overhead compensation)
WARNING: untranslated string: cpu frequency = CPU frequency
WARNING: untranslated string: crypto error = Cryptographic error
WARNING: untranslated string: crypto warning = Cryptographic warning
WARNING: untranslated string: ipsec routing table entries = IPsec Routing Table Entries
WARNING: untranslated string: ipsec settings = IPsec Settings
WARNING: untranslated string: itlb multihit = iTLB MultiHit
+WARNING: untranslated string: link-layer encapsulation = Link-Layer Encapsulation
WARNING: untranslated string: local ip address = Local IP Address
WARNING: untranslated string: meltdown = Meltdown
WARNING: untranslated string: mitigated = Mitigated
< backup protect key password
< bewan adsl pci st
< bewan adsl usb
+< cake profile bridged-llcsnap 32
+< cake profile bridged-ptm 19
+< cake profile bridged-vcmux 24
+< cake profile conservative 48
+< cake profile docsis 18
+< cake profile ethernet 38
+< cake profile ethernet vlan 42
+< cake profile ipoa-llcsnap 16
+< cake profile ipoa-vcmux 8
+< cake profile pppoa-llc 14
+< cake profile pppoa-vcmux 10
+< cake profile pppoe-llcsnap 40
+< cake profile pppoe-ptm 27
+< cake profile pppoe-vcmux 32
+< cake profile raw 0
< Captive heading terms
< Captive heading voucher
< Captive invalid coupon
< ipsec dns server address is invalid
< ipsec invalid ip address or fqdn for rw endpoint
< ipsec roadwarrior endpoint
+< link-layer encapsulation
< netbios nameserver daemon
< no entries
< notes
< bit
< block
< broken
+< cake profile bridged-llcsnap 32
+< cake profile bridged-ptm 19
+< cake profile bridged-vcmux 24
+< cake profile conservative 48
+< cake profile docsis 18
+< cake profile ethernet 38
+< cake profile ethernet vlan 42
+< cake profile ipoa-llcsnap 16
+< cake profile ipoa-vcmux 8
+< cake profile pppoa-llc 14
+< cake profile pppoa-vcmux 10
+< cake profile pppoe-llcsnap 40
+< cake profile pppoe-ptm 27
+< cake profile pppoe-vcmux 32
+< cake profile raw 0
< capabilities
< ccd add
< ccd choose net
< least preferred
< legacy architecture warning
< lifetime
+< link-layer encapsulation
< local ip address
< log server protocol
< mac filter
< ansi t1.483
< bewan adsl pci st
< bewan adsl usb
+< cake profile bridged-llcsnap 32
+< cake profile bridged-ptm 19
+< cake profile bridged-vcmux 24
+< cake profile conservative 48
+< cake profile docsis 18
+< cake profile ethernet 38
+< cake profile ethernet vlan 42
+< cake profile ipoa-llcsnap 16
+< cake profile ipoa-vcmux 8
+< cake profile pppoa-llc 14
+< cake profile pppoa-vcmux 10
+< cake profile pppoe-llcsnap 40
+< cake profile pppoe-ptm 27
+< cake profile pppoe-vcmux 32
+< cake profile raw 0
< eol architecture warning
< false max bandwidth
< false min bandwidth
< g.dtm
< g.lite
< guaranteed bandwidth
+< link-layer encapsulation
< max bandwidth
< upload fcdsl.o
############################################################################
< available
< block
< broken
+< cake profile bridged-llcsnap 32
+< cake profile bridged-ptm 19
+< cake profile bridged-vcmux 24
+< cake profile conservative 48
+< cake profile docsis 18
+< cake profile ethernet 38
+< cake profile ethernet vlan 42
+< cake profile ipoa-llcsnap 16
+< cake profile ipoa-vcmux 8
+< cake profile pppoa-llc 14
+< cake profile pppoa-vcmux 10
+< cake profile pppoe-llcsnap 40
+< cake profile pppoe-ptm 27
+< cake profile pppoe-vcmux 32
+< cake profile raw 0
< Captive
< Captive 1day
< Captive 1month
< ipsec settings
< itlb multihit
< legacy architecture warning
+< link-layer encapsulation
< local ip address
< location
< locationblock
< available
< block
< broken
+< cake profile bridged-llcsnap 32
+< cake profile bridged-ptm 19
+< cake profile bridged-vcmux 24
+< cake profile conservative 48
+< cake profile docsis 18
+< cake profile ethernet 38
+< cake profile ethernet vlan 42
+< cake profile ipoa-llcsnap 16
+< cake profile ipoa-vcmux 8
+< cake profile pppoa-llc 14
+< cake profile pppoa-vcmux 10
+< cake profile pppoe-llcsnap 40
+< cake profile pppoe-ptm 27
+< cake profile pppoe-vcmux 32
+< cake profile raw 0
< capabilities
< Captive
< Captive 1day
< ipsec settings
< itlb multihit
< legacy architecture warning
+< link-layer encapsulation
< local ip address
< location
< locationblock
< bit
< block
< broken
+< cake profile bridged-llcsnap 32
+< cake profile bridged-ptm 19
+< cake profile bridged-vcmux 24
+< cake profile conservative 48
+< cake profile docsis 18
+< cake profile ethernet 38
+< cake profile ethernet vlan 42
+< cake profile ipoa-llcsnap 16
+< cake profile ipoa-vcmux 8
+< cake profile pppoa-llc 14
+< cake profile pppoa-vcmux 10
+< cake profile pppoe-llcsnap 40
+< cake profile pppoe-ptm 27
+< cake profile pppoe-vcmux 32
+< cake profile raw 0
< capabilities
< Captive
< Captive 1day
< least preferred
< legacy architecture warning
< lifetime
+< link-layer encapsulation
< local ip address
< location
< locationblock
< bit
< block
< broken
+< cake profile bridged-llcsnap 32
+< cake profile bridged-ptm 19
+< cake profile bridged-vcmux 24
+< cake profile conservative 48
+< cake profile docsis 18
+< cake profile ethernet 38
+< cake profile ethernet vlan 42
+< cake profile ipoa-llcsnap 16
+< cake profile ipoa-vcmux 8
+< cake profile pppoa-llc 14
+< cake profile pppoa-vcmux 10
+< cake profile pppoe-llcsnap 40
+< cake profile pppoe-ptm 27
+< cake profile pppoe-vcmux 32
+< cake profile raw 0
< capabilities
< Captive
< Captive 1day
< least preferred
< legacy architecture warning
< lifetime
+< link-layer encapsulation
< local ip address
< location
< locationblock
< autonomous system
< available
< broken
+< cake profile bridged-llcsnap 32
+< cake profile bridged-ptm 19
+< cake profile bridged-vcmux 24
+< cake profile conservative 48
+< cake profile docsis 18
+< cake profile ethernet 38
+< cake profile ethernet vlan 42
+< cake profile ipoa-llcsnap 16
+< cake profile ipoa-vcmux 8
+< cake profile pppoa-llc 14
+< cake profile pppoa-vcmux 10
+< cake profile pppoe-llcsnap 40
+< cake profile pppoe-ptm 27
+< cake profile pppoe-vcmux 32
+< cake profile raw 0
< Captive delete logo
< cpu frequency
< crypto error
< ipsec settings
< itlb multihit
< legacy architecture warning
+< link-layer encapsulation
< local ip address
< meltdown
< mitigated
$qossettings{'CLASSPRFX'} = '';
$qossettings{'DEV'} = '';
$qossettings{'TOS'} = '';
+$qossettings{'CAKE_PROFILE'} = 'conservative';
+my %CAKE_PROFILES = (
+ "ethernet" => $Lang::tr{'cake profile ethernet 38'},
+ "ethernet ether-vlan" => $Lang::tr{'cake profile ethernet vlan 42'},
+ "raw" => $Lang::tr{'cake profile raw 0'},
+ "conservative" => $Lang::tr{'cake profile conservative 48'},
+ "docsis" => $Lang::tr{'cake profile docsis 18'},
+ "bridged-ptm" => $Lang::tr{'cake profile bridged-ptm 19'},
+ "pppoe-ptm" => $Lang::tr{'cake profile pppoe-ptm 27'},
+ "pppoe-llcsnap" => $Lang::tr{'cake profile pppoe-llcsnap 40'},
+ "pppoe-vcmux" => $Lang::tr{'cake profile pppoe-vcmux 32'},
+ "pppoa-llc" => $Lang::tr{'cake profile pppoa-llc 14'},
+ "pppoa-vcmux" => $Lang::tr{'cake profile pppoa-vcmux 10'},
+ "bridged-llcsnap" => $Lang::tr{'cake profile bridged-llcsnap 32'},
+ "bridged-vcmux" => $Lang::tr{'cake profile bridged-vcmux 24'},
+ "ipoa-llcsnap" => $Lang::tr{'cake profile ipoa-llcsnap 16'},
+ "ipoa-vcmux" => $Lang::tr{'cake profile ipoa-vcmux 8'},
+);
&General::readhash("${General::swroot}/qos/settings", \%qossettings);
&Header::getcgihash(\%qossettings);
&General::readhash("${General::swroot}/main/settings", \%mainsettings);
&General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", \%color);
+$selected{'CAKE_PROFILE'} = ();
+foreach my $key (keys %CAKE_PROFILES) {
+ $selected{'CAKE_PROFILE'}{$key} = '';
+}
+$selected{'CAKE_PROFILE'}{$qossettings{'CAKE_PROFILE'}} = 'selected';
+
&Header::showhttpheaders();
&Header::openpage('QoS', 1, '');
sub changebandwidth {
&Header::openbox('100%', 'center', $Lang::tr{'bandwidthsettings'});
+
if ($qossettings{'ENABLED'} eq 'on') {
print "$Lang::tr{'bandwidtherror'}";
print "<a href='/cgi-bin/qos.cgi'>$Lang::tr{'back'}</a>";
} else {
- print <<END
- <form method='post' action='$ENV{'SCRIPT_NAME'}'>
- <input type='hidden' name='DEF_OUT_SPD' value='' /><input type='hidden' name='DEF_INC_SPD' value='' />
- <table width='66%'>
- <tr><td width='100%' colspan='3'>$Lang::tr{'down and up speed'}</td></tr>
- <tr><td width='50%' align='right'>$Lang::tr{'downlink speed'}:</td>
- <td width='30%' align='left'><input type='text' name='INC_SPD' maxlength='8' value="$qossettings{'INC_SPD'}" /></td>
- <td width='20%' align='center' rowspan='2'><input type='submit' name='ACTION' value="$Lang::tr{'template'}" /><br /><input type='submit' name='ACTION' value="$Lang::tr{'save'}" /><br /><input type='reset' name='ACTION' value="$Lang::tr{'reset'}" /></td></tr>
- <tr><td width='50%' align='right'>$Lang::tr{'uplink speed'}:</td>
- <td width='30%' align='left'><input type='text' name='OUT_SPD' maxlength='8' value="$qossettings{'OUT_SPD'}" /></td></tr>
- </table>
- </form>
- <font color='red'>$Lang::tr{'template warning'}</font>
+ print <<END;
+ <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+ <input type='hidden' name='DEF_OUT_SPD' value='' /><input type='hidden' name='DEF_INC_SPD' value='' />
+ <table width='66%'>
+ <tr>
+ <td width='100%' colspan='2'>$Lang::tr{'down and up speed'}</td>
+ </tr>
+ <tr>
+ <td width='50%' align='right'>$Lang::tr{'downlink speed'}:</td>
+ <td width='50%' align='left'>
+ <input type='text' name='INC_SPD' maxlength='8' value="$qossettings{'INC_SPD'}" />
+ </td>
+ </tr>
+ <tr>
+ <td width='50%' align='right'>$Lang::tr{'uplink speed'}:</td>
+ <td width='50%' align='left'>
+ <input type='text' name='OUT_SPD' maxlength='8' value="$qossettings{'OUT_SPD'}" />
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan="2"> </td>
+ </tr>
+
+ <tr>
+ <td width='50%' align='right'>$Lang::tr{'link-layer encapsulation'}:</td>
+ <td width='50%' align='left'>
+ <select name="CAKE_PROFILE">
+END
+
+ foreach my $key (sort { $CAKE_PROFILES{$a} cmp $CAKE_PROFILES{$b} } keys %CAKE_PROFILES) {
+ print <<END;
+ <option value="$key" $selected{'CAKE_PROFILE'}{$key}>$CAKE_PROFILES{$key}</option>
+END
+ }
+
+ print <<END;
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan="2"> </td>
+ </tr>
+
+ <tr>
+ <td width='100%' align='center' colspan="2">
+ <input type='submit' name='ACTION' value="$Lang::tr{'template'}" />
+ <input type='submit' name='ACTION' value="$Lang::tr{'save'}" />
+ <input type='reset' name='ACTION' value="$Lang::tr{'reset'}" />
+ </td>
+ </tr>
+ </table>
+ </form>
+ <font color='red'>$Lang::tr{'template warning'}</font>
END
-;
}
+
&Header::closebox();
}
'cached' => 'cached',
'cached memory' => 'Cached Memory ',
'cached swap' => 'Cached Swap',
+'cake profile bridged-llcsnap 32' => 'Bridged LLC SNAP (32 bytes)',
+'cake profile bridged-ptm 19' => 'Bridged PTM (19 bytes)',
+'cake profile bridged-vcmux 24' => 'Bridged VC-MUX (24 bytes)',
+'cake profile conservative 48' => 'Conservative (should work on all connections, 48 bytes)',
+'cake profile docsis 18' => 'DOCSIS (18 bytes)',
+'cake profile ethernet 38' => 'Ethernet (38 bytes)',
+'cake profile ethernet vlan 42' => 'Ethernet with VLAN (42 bytes)',
+'cake profile ipoa-llcsnap 16' => 'IP over ATM LLC SNAP (16 bytes)',
+'cake profile ipoa-vcmux 8' => 'IP over ATM VC-MUX (8 bytes)',
+'cake profile pppoa-llc 14' => 'PPPoA LLC (14 bytes)',
+'cake profile pppoa-vcmux 10' => 'PPPoA VC-MUX (10 bytes)',
+'cake profile pppoe-llcsnap 40' => 'PPPoE LLC SNAP (40 bytes)',
+'cake profile pppoe-ptm 27' => 'PPPoE PTM (27 bytes)',
+'cake profile pppoe-vcmux 32' => 'PPPoE VC-MUX (32 bytes)',
+'cake profile raw 0' => 'Raw (no overhead compensation)',
'calamaris available reports' => 'Available reports',
'calamaris byte unit' => 'Byte unit',
'calamaris create report' => 'Create report',
'length' => 'Length',
'lifetime' => 'Lifetime:',
'line' => 'Line',
+'link-layer encapsulation' => 'Link-Layer Encapsulation',
'linkq' => 'Link Quality',
'load printer' => 'Load Printer',
'loaded modules' => 'Loaded modules:',
install -v -m 644 $(DIR_SRC)/config/udev/90-hwrng.rules \
/lib/udev/rules.d
- # Install codel rules.
- install -v -m 644 $(DIR_SRC)/config/udev/99-codel.rules \
+ # Install AQM rules
+ install -v -m 644 $(DIR_SRC)/config/udev/99-aqm.rules \
/lib/udev/rules.d
- install -m 755 $(DIR_SRC)/config/udev/enable_codel \
- /lib/udev/enable_codel
+ install -m 755 $(DIR_SRC)/config/udev/network-aqm \
+ /lib/udev/network-aqm
# Install offloading rules
install -v -m 644 $(DIR_SRC)/config/udev/99-offloading.rules \