diff --git a/configs/common/main-router b/configs/common/main-router index a0c98ca..21ab7b1 100644 --- a/configs/common/main-router +++ b/configs/common/main-router @@ -83,10 +83,15 @@ CONFIG_PACKAGE_collectd-mod-dns=y CONFIG_PACKAGE_usteer=y CONFIG_PACKAGE_luci-app-usteer=y -# sqm -CONFIG_PACKAGE_luci-app-sqm=y -CONFIG_PACKAGE_sqm-scripts=y -CONFIG_PACKAGE_ip6tables-nft=y +# SQM +# CONFIG_PACKAGE_luci-app-sqm=y +# CONFIG_PACKAGE_sqm-scripts=y +# CONFIG_PACKAGE_ip6tables-nft=y + +CONFIG_PACKAGE_qosify=y +CONFIG_PACKAGE_kmod-ifb=y +CONFIG_PACKAGE_kmod-sched-bpf=y +CONFIG_PACKAGE_kmod-sched-cake=y # ddns CONFIG_PACKAGE_luci-app-ddns=y diff --git a/configs/common/snapshot b/configs/common/snapshot index 0285d50..6551279 100644 --- a/configs/common/snapshot +++ b/configs/common/snapshot @@ -18,11 +18,12 @@ CONFIG_PACKAGE_libbpf=m CONFIG_PACKAGE_libelf=m CONFIG_PACKAGE_libpcap=m CONFIG_PACKAGE_libxdp=m -CONFIG_PACKAGE_qosify=m CONFIG_PACKAGE_tc-tiny=m CONFIG_PACKAGE_xdp-filter=m CONFIG_PACKAGE_xdp-loader=m CONFIG_PACKAGE_xdpdump=m +# NOTE: Qosify is already present in main-router. +# CONFIG_PACKAGE_qosify # CONFIG_USE_GC_SECTIONS=y CONFIG_USE_LTO=y diff --git a/openwrt-configure.sh b/openwrt-configure.sh index 05738e0..d0ea10d 100755 --- a/openwrt-configure.sh +++ b/openwrt-configure.sh @@ -19,6 +19,7 @@ CRYPTO_LIB=${CRYPTO_LIB:-'openssl'} # wolfssl or openssl; if empty - mbedtls ADDITIONAL_PACKAGES=${ADDITIONAL_PACKAGES:-'bmon rsync bind-dig ethtool-full pciutils tcpdump iperf3 vim'} INSTALL_LANG_PACKAGES=${INSTALL_LANG_PACKAGES:-'true'} INSTALL_MINIMUM_PACKAGES=${INSTALL_MINIMUM_PACKAGES:-'false'} +SQM_TOOL=${SQM_TOOL:-'qosify'} # or luci-app-sqm if [ -z "$ROUTER_IP" ]; then echo "Please provide router ip like: 192.168.1.1" @@ -52,6 +53,9 @@ collectd-mod-dns collectd-mod-wireless \ luci-app-statistics luci htop curl owut \ irqbalance luci-app-irqbalance" +# additional +# fping kmod-crypto-user kmod-cryptodev + if [[ "$INSTALL_MINIMUM_PACKAGES" =~ True|true ]]; then if [[ "$CRYPTO_LIB" =~ ^(Wolfssl|wolfssl|Openssl|openssl)$ ]]; then echo -e "By choosing INSTALL_MINIMUM_PACKAGES, consider to use:\n\n export CRYPTO_LIB=mbedtls\n\n" @@ -79,7 +83,8 @@ fi # additional packages if [[ "$DEVICE" =~ Main|main ]]; then PACKAGES="$PACKAGES luci-proto-wireguard kmod-wireguard wireguard-tools qrencode" - PACKAGES="$PACKAGES luci-app-sqm" + # PACKAGES="$PACKAGES luci-app-sqm" + PACKAGES="$PACKAGES $SQM_TOOL" PACKAGES="$PACKAGES ddns-scripts luci-app-ddns bind-host" if [[ "$INSTALL_DNSCRYPT_PROXY2" =~ True|true ]]; then PACKAGES="$PACKAGES dnscrypt-proxy2" @@ -138,6 +143,8 @@ esac ### Bufferbloat - install SQM - https://openwrt.org/docs/guide-user/network/traffic-shaping/sqm # luci-app-sqm luci-i18n-sqm-pl sqm-scripts-extra +# # OR +# qosify - https://forum.openwrt.org/t/qosify-new-package-for-dscp-marking-cake/111789/1122 ### Better roaming # usteer luci-app-usteer diff --git a/settings-configs/BPI-R4/qosify b/settings-configs/BPI-R4/qosify new file mode 100644 index 0000000..5e24d77 --- /dev/null +++ b/settings-configs/BPI-R4/qosify @@ -0,0 +1,49 @@ +config defaults + list defaults /etc/qosify/*.conf + option dscp_prio video + option dscp_icmp +besteffort + option dscp_default_udp besteffort + option prio_max_avg_pkt_len 500 + +config class besteffort + option ingress CS0 + option egress CS0 + +config class bulk + option ingress LE + option egress LE + +config class video + option ingress AF41 + option egress AF41 + +config class voice + option ingress CS6 + option egress CS6 + option bulk_trigger_pps 100 + option bulk_trigger_timeout 5 + option dscp_bulk CS0 + +config interface wan + option name wan + option disabled 0 + option bandwidth_up 1000mbit + option bandwidth_down 1000mbit + ## It is better to set own overhead and mpu than what is set in the template + ## https://forum.openwrt.org/t/qosify-new-package-for-dscp-marking-cake/111789/729 + # option overhead_type ethernet + option overhead_type none + # defaults: + option ingress 1 + option egress 1 + option mode diffserv4 + option nat 1 + option host_isolate 1 + option autorate_ingress 0 + ### VLAN or PPPoE => overhead is 44 + ### PPPoE (common for DSL or fiber): 40 bytes (18 bytes Ethernet + 8 bytes PPPoE header + 14 bytes other layers) + ### Without VLAN or PPPoE => overhead is 18 + ### MPU set 84 or 64. + option ingress_options "overhead 18 mpu 84" + option egress_options "overhead 18 mpu 84" + option options "" diff --git a/settings-configs/BPI-R4/qosify-dir/00-defaults.conf b/settings-configs/BPI-R4/qosify-dir/00-defaults.conf new file mode 100644 index 0000000..b996df0 --- /dev/null +++ b/settings-configs/BPI-R4/qosify-dir/00-defaults.conf @@ -0,0 +1,25 @@ +# DNS +tcp:53 voice +tcp:5353 voice +udp:53 voice +udp:5353 voice + +# NTP +udp:123 voice + +# SSH +tcp:22 +video + +# HTTP/QUIC +udp:500 voice +udp:4500 voice +udp:5060 voice +udp:5061 voice +tcp:5060 voice +tcp:5061 voice + +tcp:80 +besteffort +tcp:443 +besteffort +udp:80 +besteffort +udp:443 +besteffort +udp:500 +besteffort diff --git a/settings-configs/BPI-R4/sqm b/settings-configs/BPI-R4/sqm index 684b41f..95da50e 100644 --- a/settings-configs/BPI-R4/sqm +++ b/settings-configs/BPI-R4/sqm @@ -9,10 +9,13 @@ config queue 'eth1' option linklayer 'ethernet' option debug_logging '0' option verbosity '5' - option overhead '44' + ### VLAN or PPPoE => overhead is 44 + ### PPPoE (common for DSL or fiber): 40 bytes (18 bytes Ethernet + 8 bytes PPPoE header + 14 bytes other layers) + ### Without VLAN or PPPoE => 18 + ### MPU set 84 or 64. + option overhead '18' option linklayer_advanced '1' option tcMTU '2047' option tcTSIZE '128' option tcMPU '84' option linklayer_adaptation_mechanism 'default' -