From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arne Fitzenreiter To: ipfire-scm@lists.ipfire.org Subject: [git.ipfire.org] IPFire 2.x development tree branch, next, updated. 43adf2dce9b35a11fc3b947c87466aef29176159 Date: Sun, 16 Jan 2022 15:33:00 +0000 Message-ID: <4JcJvd1BBrz2xS0@people01.haj.ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1434775676588847587==" List-Id: --===============1434775676588847587== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree". The branch, next has been updated via 43adf2dce9b35a11fc3b947c87466aef29176159 (commit) via f62ea5a998b5044f4e34e33053891d53568c7555 (commit) via cfa06b67ee1ec50b906ac773704c7757e029e424 (commit) via ca26f73220e64c0f1662fdfd1e51cd5bf90cefa5 (commit) via 2d42f1df3ba48ec040b2e382a6c2bb85dc8d5889 (commit) via 58d471a4a862f3848bd0eaed955840f38653c2e0 (commit) via 546119da9e60512fef9cbf9efa89b3c4ff000d63 (commit) via ec0ba68a15f86ff9c5b982757371a8240b5262b6 (commit) via cfa5f916ea766d39dbcec49d5f68477cbf187142 (commit) from b69f054b8d357f1e4cad00c33206e0288aaf9a2d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 43adf2dce9b35a11fc3b947c87466aef29176159 Merge: b69f054b8 f62ea5a99 Author: Arne Fitzenreiter Date: Sun Jan 16 15:32:44 2022 +0000 Merge branch 'cake' into next commit f62ea5a998b5044f4e34e33053891d53568c7555 Author: Michael Tremer Date: Thu Dec 2 12:37:48 2021 +0000 QoS: Add CAKE profile to commmand line =20 Signed-off-by: Michael Tremer Signed-off-by: Arne Fitzenreiter commit cfa06b67ee1ec50b906ac773704c7757e029e424 Author: Michael Tremer Date: Thu Dec 2 12:37:47 2021 +0000 network-aqm: Use "conservative" setting for all PPP connections =20 This should be a better default than using VDSL2 since "conservative" should work on all connections. =20 Signed-off-by: Michael Tremer Signed-off-by: Arne Fitzenreiter commit ca26f73220e64c0f1662fdfd1e51cd5bf90cefa5 Author: Michael Tremer Date: Thu Dec 2 12:37:46 2021 +0000 qos.cgi: Add control to change link-layer encapsulation =20 Signed-off-by: Michael Tremer Signed-off-by: Arne Fitzenreiter commit 2d42f1df3ba48ec040b2e382a6c2bb85dc8d5889 Author: Michael Tremer Date: Thu Dec 2 12:37:45 2021 +0000 qos.cgi: Reindent change bandwidth window =20 Signed-off-by: Michael Tremer Signed-off-by: Arne Fitzenreiter commit 58d471a4a862f3848bd0eaed955840f38653c2e0 Author: Michael Tremer Date: Thu Dec 2 12:37:44 2021 +0000 network-hotplug-bridges: Fix warning when address doesn't exist =20 Some devices do not have an address, which prints an error when reading it. =20 Signed-off-by: Michael Tremer Signed-off-by: Arne Fitzenreiter commit 546119da9e60512fef9cbf9efa89b3c4ff000d63 Author: Michael Tremer Date: Thu Dec 2 12:37:43 2021 +0000 QoS: Replace fq_codel by CAKE =20 This is just swappin the qdisc without any further configuration. =20 Signed-off-by: Michael Tremer Signed-off-by: Arne Fitzenreiter commit ec0ba68a15f86ff9c5b982757371a8240b5262b6 Author: Michael Tremer Date: Thu Dec 2 12:37:42 2021 +0000 udev: Rename enable_codel to network-aqm =20 This is a more generic term since CoDel is no longer being used =20 Signed-off-by: Michael Tremer Signed-off-by: Arne Fitzenreiter commit cfa5f916ea766d39dbcec49d5f68477cbf187142 Author: Michael Tremer Date: Thu Dec 2 12:37:41 2021 +0000 AQM: Use CAKE as default qdisc where appropriate instead of fq_codel =20 This script configures CAKE as default qdisc where appropriate: =20 * It is not suitable to use any queue management on bridges/GRE/VTI/tun interfaces. * On Internet-facing interfaces, CAKE is configured in "internet" mode whereas on any zones except RED, it is configured in "metro" mode =20 Signed-off-by: Michael Tremer Signed-off-by: Arne Fitzenreiter ----------------------------------------------------------------------- Summary of changes: config/qos/makeqosscripts.pl | 20 +++-- config/rootfiles/common/udev | 4 +- config/udev/99-aqm.rules | 2 + config/udev/99-codel.rules | 2 - config/udev/{enable_codel =3D> network-aqm} | 65 ++++++++++++--- config/udev/network-hotplug-bridges | 5 +- doc/language_issues.de | 16 ++++ doc/language_issues.en | 16 ++++ doc/language_issues.es | 16 ++++ doc/language_issues.fr | 16 ++++ doc/language_issues.it | 16 ++++ doc/language_issues.nl | 16 ++++ doc/language_issues.pl | 16 ++++ doc/language_issues.ru | 16 ++++ doc/language_issues.tr | 16 ++++ doc/language_missings | 128 ++++++++++++++++++++++++++++= ++ html/cgi-bin/qos.cgi | 95 ++++++++++++++++++---- langs/en/cgi-bin/en.pl | 16 ++++ lfs/udev | 8 +- 19 files changed, 444 insertions(+), 45 deletions(-) create mode 100644 config/udev/99-aqm.rules delete mode 100644 config/udev/99-codel.rules rename config/udev/{enable_codel =3D> network-aqm} (65%) Difference in files: diff --git a/config/qos/makeqosscripts.pl b/config/qos/makeqosscripts.pl index 3234ab366..cc91124df 100644 --- a/config/qos/makeqosscripts.pl +++ b/config/qos/makeqosscripts.pl @@ -54,7 +54,10 @@ my $classfile =3D "/var/ipfire/qos/classes"; my $level7file =3D "/var/ipfire/qos/level7config"; my $portfile =3D "/var/ipfire/qos/portconfig"; my $tosfile =3D "/var/ipfire/qos/tosconfig"; -my $fqcodel_options =3D "limit 10240 quantum 1514"; +my @cake_options =3D ( + # RED is by default connected to the Internet + "internet" +); =20 # Define iptables MARKs my $QOS_INC_MASK =3D 0x0000ff00; @@ -81,6 +84,12 @@ $qossettings{'VALID'} =3D 'yes'; =20 &General::readhash("${General::swroot}/qos/settings", \%qossettings); =20 +# Default to "conservative +unless (defined $qossettings{'CAKE_PROFILE'}) { + $qossettings{'CAKE_PROFILE'} =3D "conservative"; +} +push(@cake_options, $qossettings{'CAKE_PROFILE'}); + my $DEF_OUT_MARK =3D ($qossettings{'DEFCLASS_OUT'} << $QOS_OUT_SHIFT) . "/$Q= OS_OUT_MASK"; my $DEF_INC_MARK =3D ($qossettings{'DEFCLASS_INC'} << $QOS_INC_SHIFT) . "/$Q= OS_INC_MASK"; =20 @@ -200,7 +209,7 @@ foreach $classentry (sort @classes) if ($qossettings{'RED_DEV'} eq $classline[0]) { $qossettings{'DEVICE'} =3D $classline[0]; $qossettings{'CLASS'} =3D $classline[1]; - print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'CL= ASS'} handle $qossettings{'CLASS'}: fq_codel $fqcodel_options\n"; + print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'CL= ASS'} handle $qossettings{'CLASS'}: cake @cake_options\n"; } } print "\n\t### FILTER TRAFFIC INTO CLASSES\n"; @@ -371,7 +380,7 @@ foreach $classentry (sort @classes) if ($qossettings{'IMQ_DEV'} eq $classline[0]) { $qossettings{'DEVICE'} =3D $classline[0]; $qossettings{'CLASS'} =3D $classline[1]; - print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CL= ASS'} handle $qossettings{'CLASS'}: fq_codel $fqcodel_options\n"; + print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CL= ASS'} handle $qossettings{'CLASS'}: cake @cake_options\n"; } } print "\n\t### FILTER TRAFFIC INTO CLASSES\n"; @@ -494,10 +503,7 @@ print </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=3D"$qossettings{'RED_DEV'}" ACTION=3D"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 diff --git a/config/rootfiles/common/udev b/config/rootfiles/common/udev index 4a01f3eef..5c1267abe 100644 --- a/config/rootfiles/common/udev +++ b/config/rootfiles/common/udev @@ -31,9 +31,9 @@ lib/udev 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 @@ -64,7 +64,7 @@ lib/udev/rules.d/75-probe_mtd.rules 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 diff --git a/config/udev/99-aqm.rules b/config/udev/99-aqm.rules new file mode 100644 index 000000000..69c909da7 --- /dev/null +++ b/config/udev/99-aqm.rules @@ -0,0 +1,2 @@ +# Call the AQM script +SUBSYSTEM=3D=3D"net", RUN+=3D"/lib/udev/network-aqm" diff --git a/config/udev/99-codel.rules b/config/udev/99-codel.rules deleted file mode 100644 index d6747ba04..000000000 --- a/config/udev/99-codel.rules +++ /dev/null @@ -1,2 +0,0 @@ -# Call the enable codel script. -SUBSYSTEM=3D=3D"net", RUN+=3D"/lib/udev/enable_codel" diff --git a/config/udev/enable_codel b/config/udev/network-aqm similarity index 65% rename from config/udev/enable_codel rename to config/udev/network-aqm index 6cafd9b26..d51c6fbde 100644 --- a/config/udev/enable_codel +++ b/config/udev/network-aqm @@ -21,9 +21,9 @@ # # ############################################################################ =20 -LOG_FACILITY=3D"codel" +LOG_FACILITY=3D"aqm" =20 -function log() { +log() { logger -t "${LOG_FACILITY}" $@ } =20 @@ -32,19 +32,58 @@ if [ -z "${INTERFACE}" ]; then exit 1 fi =20 -# Do nothing for the loopback device. -[ "${INTERFACE}" =3D "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=3D$? - - 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=3D"$( $Lang::tr{'cake profile ethernet 38'}, + "ethernet ether-vlan" =3D> $Lang::tr{'cake profile ethernet vlan 42'}, + "raw" =3D> $Lang::tr{'cake profile raw 0'}, + "conservative" =3D> $Lang::tr{'cake profile conservative 48'}, + "docsis" =3D> $Lang::tr{'cake profile docsis 18'}, + "bridged-ptm" =3D> $Lang::tr{'cake profile bridged-ptm 19'}, + "pppoe-ptm" =3D> $Lang::tr{'cake profile pppoe-ptm 27'}, + "pppoe-llcsnap" =3D> $Lang::tr{'cake profile pppoe-llcsnap 40'}, + "pppoe-vcmux" =3D> $Lang::tr{'cake profile pppoe-vcmux 32'}, + "pppoa-llc" =3D> $Lang::tr{'cake profile pppoa-llc 14'}, + "pppoa-vcmux" =3D> $Lang::tr{'cake profile pppoa-vcmux 10'}, + "bridged-llcsnap" =3D> $Lang::tr{'cake profile bridged-llcsnap 32'}, + "bridged-vcmux" =3D> $Lang::tr{'cake profile bridged-vcmux 24'}, + "ipoa-llcsnap" =3D> $Lang::tr{'cake profile ipoa-llcsnap 16'}, + "ipoa-vcmux" =3D> $Lang::tr{'cake profile ipoa-vcmux 8'}, +); =20 &General::readhash("${General::swroot}/qos/settings", \%qossettings); &Header::getcgihash(\%qossettings); @@ -110,6 +128,12 @@ my %mainsettings =3D (); &General::readhash("${General::swroot}/main/settings", \%mainsettings); &General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", = \%color); =20 +$selected{'CAKE_PROFILE'} =3D (); +foreach my $key (keys %CAKE_PROFILES) { + $selected{'CAKE_PROFILE'}{$key} =3D ''; +} +$selected{'CAKE_PROFILE'}{$qossettings{'CAKE_PROFILE'}} =3D 'selected'; + &Header::showhttpheaders(); =20 &Header::openpage('QoS', 1, ''); @@ -749,26 +773,69 @@ END =20 sub changebandwidth { &Header::openbox('100%', 'center', $Lang::tr{'bandwidthsettings'}); + if ($qossettings{'ENABLED'} eq 'on') { print "$Lang::tr{'bandwidtherror'}"; print "$Lang::tr{'back'}"; } else { - print < - - - - - - - - -
$Lang::tr{'down and up speed'}
$Lang::tr{'downlink speed'}:

$Lang::tr{'uplink speed'}:
- - $Lang::tr{'template warning'} + print < + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
$Lang::tr{'down and up speed'}
$Lang::tr{'downlink speed'}: + +
$Lang::tr{'uplink speed'}: + +
 
$Lang::tr{'link-layer encapsulation'= }: +
 
+ + + +
+ + $Lang::tr{'template warning'} END -; } + &Header::closebox(); } =20 diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 2f7038fb1..46092534f 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -529,6 +529,21 @@ 'cached' =3D> 'cached', 'cached memory' =3D> 'Cached Memory ', 'cached swap' =3D> 'Cached Swap', +'cake profile bridged-llcsnap 32' =3D> 'Bridged LLC SNAP (32 bytes)', +'cake profile bridged-ptm 19' =3D> 'Bridged PTM (19 bytes)', +'cake profile bridged-vcmux 24' =3D> 'Bridged VC-MUX (24 bytes)', +'cake profile conservative 48' =3D> 'Conservative (should work on all connec= tions, 48 bytes)', +'cake profile docsis 18' =3D> 'DOCSIS (18 bytes)', +'cake profile ethernet 38' =3D> 'Ethernet (38 bytes)', +'cake profile ethernet vlan 42' =3D> 'Ethernet with VLAN (42 bytes)', +'cake profile ipoa-llcsnap 16' =3D> 'IP over ATM LLC SNAP (16 bytes)', +'cake profile ipoa-vcmux 8' =3D> 'IP over ATM VC-MUX (8 bytes)', +'cake profile pppoa-llc 14' =3D> 'PPPoA LLC (14 bytes)', +'cake profile pppoa-vcmux 10' =3D> 'PPPoA VC-MUX (10 bytes)', +'cake profile pppoe-llcsnap 40' =3D> 'PPPoE LLC SNAP (40 bytes)', +'cake profile pppoe-ptm 27' =3D> 'PPPoE PTM (27 bytes)', +'cake profile pppoe-vcmux 32' =3D> 'PPPoE VC-MUX (32 bytes)', +'cake profile raw 0' =3D> 'Raw (no overhead compensation)', 'calamaris available reports' =3D> 'Available reports', 'calamaris byte unit' =3D> 'Byte unit', 'calamaris create report' =3D> 'Create report', @@ -1596,6 +1611,7 @@ 'length' =3D> 'Length', 'lifetime' =3D> 'Lifetime:', 'line' =3D> 'Line', +'link-layer encapsulation' =3D> 'Link-Layer Encapsulation', 'linkq' =3D> 'Link Quality', 'load printer' =3D> 'Load Printer', 'loaded modules' =3D> 'Loaded modules:', diff --git a/lfs/udev b/lfs/udev index cfad0398b..3f526a3fa 100644 --- a/lfs/udev +++ b/lfs/udev @@ -126,11 +126,11 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) install -v -m 644 $(DIR_SRC)/config/udev/90-hwrng.rules \ /lib/udev/rules.d =20 - # 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 =20 # Install offloading rules install -v -m 644 $(DIR_SRC)/config/udev/99-offloading.rules \ hooks/post-receive -- IPFire 2.x development tree --===============1434775676588847587==--