AQM: Revert back to only use fq_codel by default

Message ID 20240819181645.1400363-1-michael.tremer@ipfire.org
State Staged
Commit 58846b68b47c43470134d700d00b1ea90b795325
Headers
Series AQM: Revert back to only use fq_codel by default |

Commit Message

Michael Tremer Aug. 19, 2024, 6:16 p.m. UTC
  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 | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)
  

Patch

diff --git a/config/udev/network-aqm b/config/udev/network-aqm
index a11fc5c50..36355cfc6 100644
--- a/config/udev/network-aqm
+++ b/config/udev/network-aqm
@@ -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