#!/bin/sh # RPS/RFS tuning for single-RX-queue devices (mtk_soc_eth) # Distributes softirq across all CPUs; without this, all eth RX runs on CPU0 only. # Pairs with sysctl tuning in /etc/sysctl.conf (BBR + buffer sizes). [ -d /sys/class/net/eth1/queues ] && echo 3 > /sys/class/net/eth1/queues/rx-0/rps_cpus [ -d /sys/class/net/eth0/queues ] && echo 3 > /sys/class/net/eth0/queues/rx-0/rps_cpus [ -d /sys/class/net/br-lan/queues ] && echo 3 > /sys/class/net/br-lan/queues/rx-0/rps_cpus [ -d /sys/class/net/ra0/queues ] && echo 3 > /sys/class/net/ra0/queues/rx-0/rps_cpus [ -d /sys/class/net/rax0/queues ] && echo 3 > /sys/class/net/rax0/queues/rx-0/rps_cpus echo 32768 > /proc/sys/net/core/rps_sock_flow_entries 2>/dev/null [ -f /sys/class/net/eth1/queues/rx-0/rps_flow_cnt ] && echo 32768 > /sys/class/net/eth1/queues/rx-0/rps_flow_cnt [ -f /sys/class/net/br-lan/queues/rx-0/rps_flow_cnt ] && echo 32768 > /sys/class/net/br-lan/queues/rx-0/rps_flow_cnt # === VXLAN boot fallback (keng #12 part 2) === # Hotplug 20-vxlan sometimes misses wg0 ifup at boot (no 10.99 route, no log entry). # If we got here without vxlan0, manually re-trigger the same script. [ -e /sys/class/net/vxlan0 ] || ACTION=ifup INTERFACE=wg0 /etc/hotplug.d/net/20-vxlan # === WiFi band label verifier (v28, log-only) === # Aligns UCI wifi labels with physical broadcast once driver is stable. # Log-only (no uci mutation); see /etc/wifi-band-verify.sh for rationale. ( /etc/wifi-band-verify.sh >/dev/null 2>&1 & ) # === bridge-nf re-assert (keng #6 加固 2026-07-25) === # sysctl.d/99-bridge-nf.conf 开机应用时 br_netfilter 可能未加载, 键不存在被静默跳过; # 模块晚加载后默认值 0 会让 MSS clamp 对桥接流量失效. rc.local 最后兜底. sysctl -w net.bridge.bridge-nf-call-iptables=1 2>/dev/null sysctl -w net.bridge.bridge-nf-call-ip6tables=1 2>/dev/null sysctl -w net.bridge.bridge-nf-call-arptables=1 2>/dev/null exit 0