]> git.ipfire.org Git - people/mfischer/ipfire-2.x.git/commitdiff
AQM: Revert back to only use fq_codel by default
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 19 Aug 2024 18:13:19 +0000 (19:13 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 19 Aug 2024 18:13:19 +0000 (19:13 +0100)
We have defaulted to CAKE for all devices that quality. That has however
resulted in worse network quality as some devices could not provide the
compute power necessary for CAKE. There are however only very few
benefits to run an unconfigured CAKE.

This patch changes this back to fq_codel which is computationally
cheaper and should deliver 99% of the throughput that CAKE does. This is
presumably the better trade-off.

We don't use fq_codel on wireless devices since the kernel is running
this for each client. It would have been nice to only apply this to
wireless interfaces in AP mode, but I cannot find a way to tell the
difference with asking NETLINK.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/udev/network-aqm

index a11fc5c5077bdc3a16adb09eb0e24a2d86da8c31..36355cfc6b4d33e696ae9fc75ac3371c1cb173a0 100644 (file)
@@ -39,6 +39,10 @@ case "${ACTION}" in
                # Detect bridges
                if [ -d "/sys/class/net/${INTERFACE}/bridge" ]; then
                        TYPE="bridge"
+
+               # Detect wireless interfaces
+               elif [ -d "/sys/class/net/${INTERFACE}/phy80211" ]; then
+                       TYPE="wireless"
                fi
 
                args=()
@@ -65,6 +69,11 @@ case "${ACTION}" in
                                exit 0
                                ;;
 
+                       # Ignore wireless interfaces
+                       *,wireless)
+                               exit 0
+                               ;;
+
                        # Ignore IMQ/IFB
                        imq*,*|ifb*,*)
                                exit 0
@@ -75,14 +84,9 @@ case "${ACTION}" in
                                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" )
+                               args+=( "fq_codel" )
                                ;;
                esac