RaspAP / raspap-webgui

Simple wireless AP setup & management for Debian-based devices
https://raspap.com/
GNU General Public License v3.0
4.47k stars 792 forks source link

[Bug]: BBR install after kernel update #1656

Closed frankozland closed 2 months ago

frankozland commented 2 months ago

Code of Conduct

Issue reporting checklist

Operating System

Raspberry Pi OS (64-bit) Lite Bullseye

Quick install or Manual setup?

Quick install

Onboard wireless chipset or external adapter?

Onboard wireless chipset

Hardware

Raspberry Pi 4 Model B

RaspAP version

3.1.3 (Latest)

Other software or services running with RaspAP?

No other software

Contact details (optional)

frankoz95967943@gmail.com

Bug description

    config_file="/boot/config-$(uname -r)"
    if grep -q 'CONFIG_TCP_CONG_BBR' "$config_file" && grep -q 'CONFIG_NET_SCH_FQ' "$config_file"; then
        return 0
    else
        return 1
    fi
}```

I dont think that will work?

Steps to reproduce:

1. fresh install bullseye
2. sudo rpi-update rpi-6.6.y
3. curl -sL https://install.raspap.com | bash
4. all defaults -including at BBR
```[ ✓ ok ] 
RaspAP Install: Configure TCP BBR congestion control
Network performance can be improved by changing TCP congestion control to BBR (Bottleneck Bandwidth and RTT)
Enable TCP BBR congestion control algorithm (Recommended)? [Y/n]: Y
Checking kernel support for the TCP BBR algorithm...
grep: /boot/config-6.6.47-v8+: No such file or directory
[ ⚠ warning ] TCP BBR option is not available (Skipped)
[ ✓ ok ] 

The file "/boot/config-6.6.47-v8+" doesnt exist - the only file in that directory is config.txt

BBR is available tho; modprobe allowed me to continue. This would error if kernel wouldnt allow?

net.ipv4.tcp_available_congestion_control = reno cubic
$ sudo modprobe tcp_bbr
$ sudo bash
# echo "tcp_bbr" > /etc/modules-load.d/bbr.conf
# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic **bbr**
# echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf 
net.core.default_qdisc=fq
# echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic bbr
# cat /boot/config-$(uname -r)
cat: /boot/config-6.6.47-v8+: No such file or directory

Sanity check makes sense tho - would it be better to use modinfo?

$ modinfo tcp_bbr
filename:       /lib/modules/6.6.47-v8+/kernel/net/ipv4/tcp_bbr.ko.xz
description:    TCP BBR (Bottleneck Bandwidth and RTT)
license:        Dual BSD/GPL
author:         Soheil Hassas Yeganeh <soheil@google.com>
author:         Yuchung Cheng <ycheng@google.com>
author:         Neal Cardwell <ncardwell@google.com>
author:         Van Jacobson <vanj@google.com>
srcversion:     A2AF67DAD0809E65940C9E4
depends:        
intree:         Y
name:           tcp_bbr
vermagic:       6.6.47-v8+ SMP preempt mod_unload modversions aarch64

Scalar value check if bbr module available in this kernel

$ modinfo -F intree tcp_bbr
Y

Steps to reproduce

see above

Screenshots

No response

Additional context

No response

Relevant log output

No response

billz commented 2 months ago

@frankozland thanks for reporting