Do you dig the concept of web links?
I’m not at my setup so can’t do that but I’ve given the results with my Sqm and without
https://www.waveform.com/tools/bufferbloat?test-id=31975601-8af5-410a-a55f-54ec51868092
https://www.waveform.com/tools/bufferbloat?test-id=7b5e2560-93d4-4412-80ae-ed312e222c67this
root@OpenWrt:~# ubus call system board
at /etc/config/f{
"kernel": "6.6.93",
"hostname": "OpenWrt",
"system": "ARMv8 Processor rev 1",
"model": "Raspberry Pi 5 Model B Rev 1.0",
"board_name": "raspberrypi,5-model-b",
"rootfs_type": "ext4",
"release": {
"distribution": "OpenWrt",
"version": "24.10.2",
"revision": "r28739-d9340319c6",
"target": "bcm27xx/bcm2712",
"description": "OpenWrt 24.10.2 r28739-d9340319c6",
"builddate": "1750711236"
}
}
root@OpenWrt:~# cat /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fd5a:5152:a232::/48'
option packet_steering '2'
config device
option name 'br-lan'
option type 'bridge'
option ipv6 '0'
list ports 'eth0'
list ports 'eth1'
option bridge_empty '1'
option stp '1'
option igmp_snooping '1'
config interface 'lan'
option device 'br-lan'
option proto 'dhcp'
root@OpenWrt:~# cat /proc/net/softnet_stat
0000004c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000000 00000000
000003ca 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000014a 00000000 00000000 00000001 00000000 00000000
0000006b 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000002d 00000000 00000000 00000002 00000000 00000000
00000106 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000067 00000000 00000000 00000003 00000000 00000000
root@OpenWrt:~# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
13: 2577 2236 1628 1710 GICv2 26 Level arch_timer
14: 440 0 0 0 GICv2 65 Level 107c013880.mailbox
15: 8 0 0 0 GICv2 152 Level uart-pl011
21: 0 0 0 0 GICv2 119 Level DMA IRQ
22: 0 0 0 0 GICv2 120 Level DMA IRQ
32: 1780 0 0 0 GICv2 305 Level mmc0
33: 7088 0 0 0 GICv2 306 Level mmc1
34: 0 0 0 0 GICv2 261 Level PCIe PME, aerdrv
102: 808 0 0 0 rp1_irq_chip 6 Level eth0
127: 800 0 0 0 rp1_irq_chip 31 Edge xhci-hcd:usb1
132: 0 0 0 0 rp1_irq_chip 36 Edge xhci-hcd:usb3
157: 0 0 0 0 GICv2 150 Level 107d004000.spi
IPI0: 898 670 716 862 Rescheduling interrupts
IPI1: 1886 8113 2475 2431 Function call interrupts
IPI2: 0 0 0 0 CPU stop interrupts
IPI3: 0 0 0 0 CPU stop (for crash dump) interrupts
IPI4: 0 0 0 0 Timer broadcast interrupts
IPI5: 624 395 438 339 IRQ work interrupts
IPI6: 0 0 0 0 CPU wake-up interrupts
root@OpenWrt:~# cat /etc/config/firewall
config defaults
option syn_flood 1
option input REJECT
option output ACCEPT
option forward REJECT
# Uncomment this line to disable ipv6 rules
# option disable_ipv6 1
config zone
option name lan
list network 'lan'
option input ACCEPT
option output ACCEPT
option forward ACCEPT
config zone
option name wan
list network 'wan'
list network 'wan6'
option input REJECT
option output ACCEPT
option forward REJECT
option masq 1
option mtu_fix 1
config forwarding
option src lan
option dest wan
# We need to accept udp packets on port 68,
# see https://dev.openwrt.org/ticket/4108
config rule
option name Allow-DHCP-Renew
option src wan
option proto udp
option dest_port 68
option target ACCEPT
option family ipv4
# Allow IPv4 ping
config rule
option name Allow-Ping
option src wan
option proto icmp
option icmp_type echo-request
option family ipv4
option target ACCEPT
config rule
option name Allow-IGMP
option src wan
option proto igmp
option family ipv4
option target ACCEPT
# Allow DHCPv6 replies
# see https://github.com/openwrt/openwrt/issues/5066
config rule
option name Allow-DHCPv6
option src wan
option proto udp
option dest_port 546
option family ipv6
option target ACCEPT
config rule
option name Allow-MLD
option src wan
option proto icmp
option src_ip fe80::/10
list icmp_type '130/0'
list icmp_type '131/0'
list icmp_type '132/0'
list icmp_type '143/0'
option family ipv6
option target ACCEPT
# Allow essential incoming IPv6 ICMP traffic
config rule
option name Allow-ICMPv6-Input
option src wan
option proto icmp
list icmp_type echo-request
list icmp_type echo-reply
list icmp_type destination-unreachable
list icmp_type packet-too-big
list icmp_type time-exceeded
list icmp_type bad-header
list icmp_type unknown-header-type
list icmp_type router-solicitation
list icmp_type neighbour-solicitation
list icmp_type router-advertisement
list icmp_type neighbour-advertisement
option limit 1000/sec
option family ipv6
option target ACCEPT
# Allow essential forwarded IPv6 ICMP traffic
config rule
option name Allow-ICMPv6-Forward
option src wan
option dest *
option proto icmp
list icmp_type echo-request
list icmp_type echo-reply
list icmp_type destination-unreachable
list icmp_type packet-too-big
list icmp_type time-exceeded
list icmp_type bad-header
list icmp_type unknown-header-type
option limit 1000/sec
option family ipv6
option target ACCEPT
config rule
option name Allow-IPSec-ESP
option src wan
option dest lan
option proto esp
option target ACCEPT
config rule
option name Allow-ISAKMP
option src wan
option dest lan
option dest_port 500
option proto udp
option target ACCEPT
### EXAMPLE CONFIG SECTIONS
# do not allow a specific ip to access wan
#config rule
# option src lan
# option src_ip 192.168.45.2
# option dest wan
# option proto tcp
# option target REJECT
# block a specific mac on wan
#config rule
# option dest wan
# option src_mac 00:11:22:33:44:66
# option target REJECT
# block incoming ICMP traffic on a zone
#config rule
# option src lan
# option proto ICMP
# option target DROP
# port redirect port coming in on wan to lan
#config redirect
# option src wan
# option src_dport 80
# option dest lan
# option dest_ip 192.168.16.235
# option dest_port 80
# option proto tcp
# port redirect of remapped ssh port (22001) on wan
#config redirect
# option src wan
# option src_dport 22001
# option dest lan
# option dest_port 22
# option proto tcp
### FULL CONFIG SECTIONS
#config rule
# option src lan
# option src_ip 192.168.45.2
# option src_mac 00:11:22:33:44:55
# option src_port 80
# option dest wan
# option dest_ip
# option dest_port 120
# option proto tcp
# option target REJECT
#config redirect
# option src lan
# option src_ip 192.168.45.2
# option src_mac 00:11:22:33:44:55
# option src_port 1024
# option src_dport 80
# option dest_ip
# option dest_port 120
# option proto tcp
root@OpenWrt:~#
Result is quite good? You can try to rise bandwidth a bit towards subscribed, then step back when latency grows, starting with upload direction.
As told already rising priority will have no effect outside your network - ie will trim those 1-2 ms of local latency from the gaming device.
Also my ISP speeds vary constantly so I pay for 900 symmetrical but as we see in the results etc a lot of time I get 600-700 , but sometimes the full 900 should I adjust based on my average speed as currently I have set SQM to 850 both ?
I’m guessing this is part of the problem as I can’t keep changing the SQM speeds so rather have a lower baseline losing out on some bandwidth and have a consistent experience .
It is either
- trade opportunistic bw for ideal latency
- trade ideal latency for max bandwidth.
You certainly should try cake-autorate, if bandwidth fluctuates 1.5x the latency outbursts when adapting will be probably negligible.
Default fq_codel operates on bits and milliseconds not needing any bandwith as input.
If I use Cake autorate What range of qlimit do you think will be suitable for my latency needs also the polling interval rate ? I’m using 45 q limit and 3 second polling interval is this too low or high ?
Something like 500 to 950 ie dlightly above and below real life observation.