SQM & cake-autorate

Hi, I would like your opinion on my configuration for sqm and cake-authoring on Linksys MX5300 and Starlink.

SQM

❯ cat /etc/config/sqm 

config queue 'eth1'
	option enabled '1'
	option interface 'wan'
	option download '198000'
	option upload '22500'
	option qdisc 'cake'
	option script 'piece_of_cake.qos'
	option qdisc_advanced '1'
	option ingress_ecn 'ECN'
	option egress_ecn 'ECN'
	option qdisc_really_really_advanced '1'
	option itarget 'auto'
	option etarget 'auto'
	option linklayer 'ethernet'
	option debug_logging '0'
	option verbosity '5'
	option squash_dscp '1'
	option squash_ingress '1'
	option iqdisc_opts 'nat dual-dsthost ingress'
	option eqdisc_opts 'nat dual-srchost'
	option overhead '68'

cake-autorate

#!/usr/bin/env bash

# *** INSTANCE-SPECIFIC CONFIGURATION OPTIONS ***

dl_if=ifb4wan # download interface
ul_if=wan     # upload interface

adjust_dl_shaper_rate=1 # enable (1) or disable (0) actually changing the dl shaper rate
adjust_ul_shaper_rate=1 # enable (1) or disable (0) actually changing the ul shaper rate

min_dl_shaper_rate_kbps=40000  # minimum bandwidth for download (Kbit/s)
base_dl_shaper_rate_kbps=130000 # steady state bandwidth for download (Kbit/s)
max_dl_shaper_rate_kbps=220000  # maximum bandwidth for download (Kbit/s)

min_ul_shaper_rate_kbps=8000  # minimum bandwidth for upload (Kbit/s)
base_ul_shaper_rate_kbps=16500 # steady state bandwidth for upload (Kbit/s)
max_ul_shaper_rate_kbps=25000  # maximum bandwidth for upload (Kbit/s)

connection_active_thr_kbps=2000  # threshold in Kbit/s below which dl/ul is considered idle

# Logging toggles for various stats
output_processing_stats=1 # enable (1) or disable (0) output monitoring lines showing processing stats
output_load_stats=1       # enable (1) or disable (0) output monitoring lines showing achieved loads
output_reflector_stats=1  # enable (1) or disable (0) output monitoring lines showing reflector stats
output_summary_stats=1    # enable (1) or disable (0) output monitoring lines showing summary stats
output_cake_changes=1     # enable (1) or disable (0) output monitoring lines showing cake bandwidth changes

log_to_file=1             # enable (1) or disable (0) output logging to file (/tmp/cake-autorate.log)
log_file_max_time_mins=10 # maximum time between log file rotations
log_file_max_size_KB=2000 # maximum KB worth of log lines between log file rotations

### Delay thresholds
dl_owd_delta_delay_thr_ms=10.0
ul_owd_delta_delay_thr_ms=10.0
dl_avg_owd_delta_max_adjust_up_thr_ms=5.0
ul_avg_owd_delta_max_adjust_up_thr_ms=5.0
dl_avg_owd_delta_max_adjust_down_thr_ms=20.0
ul_avg_owd_delta_max_adjust_down_thr_ms=20.0

### Reflectors
reflectors=("8.8.8.8" "8.8.4.4" "1.1.1.1" "9.9.9.9" "2001:4860:4860::8888" "2001:4860:4860::8844" "2606:4700:4700::1111" "2620:fe::fe")
no_pingers=8
reflector_ping_interval_s=0.3

### Rate adjustment parameters
shaper_rate_min_adjust_down_bufferbloat=0.99    # how rapidly to reduce shaper rate upon detection of bufferbloat (min reduction)
shaper_rate_max_adjust_down_bufferbloat=0.75    # how rapidly to reduce shaper rate upon detection of bufferbloat (max reduction)
shaper_rate_min_adjust_up_load_high=1.0         # how rapidly to increase shaper rate upon high load detected (min increase)
shaper_rate_max_adjust_up_load_high=1.04        # how rapidly to increase shaper rate upon high load detected (max increase)
shaper_rate_adjust_down_load_low=0.99           # how rapidly to return down to base shaper rate upon idle or low load detected
shaper_rate_adjust_up_load_low=1.01             # how rapidly to return up to base shaper rate upon idle or low load detected

high_load_thr=0.75   # % of currently set bandwidth for detecting high load

# OWD baseline against which to measure delays
alpha_baseline_increase=0.001  # how rapidly baseline RTT is allowed to increase
alpha_baseline_decrease=0.9    # how rapidly baseline RTT is allowed to decrease

# OWD delta from baseline is tracked using ewma with alpha set below
alpha_delta_ewma=0.095

# Reflector health check
reflector_health_check_interval_s=1.0 # (seconds)
reflector_response_deadline_s=1.0     # (seconds)

The log extracted with tail -f /var/log/cake-autorate.primary.log shows expected values.

The only thing is that I don't feel the latency has improved much. Maybe worsened. Before installing SQM and cake-autorate, the bufferbloat test (https://www.waveform.com/tools/bufferbloat) reported an average of +45 ms ping (which are Starlink's own) and +0 ms during both download and upload phases. Now the base latency is similar and if you add a +5/6 ms in download and upload.