natflow.patch 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. --- a/package/feeds/custom/luci-app-turboacc/luasrc/controller/turboacc.lua
  2. +++ b/package/feeds/custom/luci-app-turboacc/luasrc/controller/turboacc.lua
  3. @@ -14,7 +14,7 @@ function index()
  4. end
  5. local function fastpath_status()
  6. - return luci.sys.call("{ [ -e /sys/module/xt_FLOWOFFLOAD/refcnt ] && [ x$(cat /sys/module/xt_FLOWOFFLOAD/refcnt 2>/dev/null) != x0 ]; } || lsmod | grep -q fast_classifier") == 0
  7. + return luci.sys.call("lsmod | grep -q natflow || lsmod | grep -q fast_classifier") == 0
  8. end
  9. local function bbr_status()
  10. --- a/package/feeds/custom/luci-app-turboacc/root/etc/init.d/turboacc
  11. +++ b/package/feeds/custom/luci-app-turboacc/root/etc/init.d/turboacc
  12. @@ -21,7 +21,7 @@ inital_conf(){
  13. config_get "dns_caching_v4_dns" "config" "dns_caching_v4_dns"
  14. config_get "dns_caching_v6_dns" "config" "dns_caching_v6_dns"
  15. - [ ! -e "/lib/modules/$(uname -r)/xt_FLOWOFFLOAD.ko" ] && { sw_flow="0"; hw_flow="0"; }
  16. + # [ ! -e "/lib/modules/$(uname -r)/xt_FLOWOFFLOAD.ko" ] && { sw_flow="0"; hw_flow="0"; }
  17. [ ! -e "/lib/modules/$(uname -r)/fast-classifier.ko" ] && { sfe_flow="0"; sfe_bridge="0"; sfe_ipv6="0"; }
  18. [ ! -e "/lib/modules/$(uname -r)/tcp_bbr.ko" ] && bbr_cca="0"
  19. [ ! -e "/lib/modules/$(uname -r)/xt_FULLCONENAT.ko" ] && fullcone_nat="0"
  20. @@ -213,11 +213,25 @@ revert_dns() {
  21. start(){
  22. inital_conf
  23. - uci set firewall.@defaults[0].flow_offloading="${sw_flow}"
  24. - uci set firewall.@defaults[0].flow_offloading_hw="${hw_flow}"
  25. uci set firewall.@defaults[0].fullcone="${fullcone_nat}"
  26. uci commit firewall
  27. + test -c /dev/natflow_ctl && {
  28. + enable_natflow="${sw_flow}"
  29. + enable_natflow_hw="${hw_flow}"
  30. + if [ "x${enable_natflow}" = "x1" ]; then
  31. + if [ "x`uci get firewall.@defaults[0].flow_offloading 2>/dev/null`" = "x1" ]; then
  32. + uci set firewall.@defaults[0].flow_offloading=0
  33. + uci set firewall.@defaults[0].flow_offloading_hw=0
  34. + uci commit firewall
  35. + /etc/init.d/firewall reload
  36. + fi
  37. + fi
  38. + echo debug=3 >/dev/natflow_ctl
  39. + echo disabled=$((!enable_natflow)) >/dev/natflow_ctl
  40. + echo hwnat=$((enable_natflow_hw)) >/dev/natflow_ctl
  41. + }
  42. +
  43. [ "${sw_flow}" -ne "1" ] && [ "${sfe_flow}" -eq "1" ] && {
  44. lsmod | grep -q fast_classifier || modprobe fast_classifier 2>"/dev/null"
  45. echo "${sfe_bridge}" > "/sys/fast_classifier/skip_to_bridge_ingress" 2>"/dev/null"
  46. @@ -264,11 +278,16 @@ start(){
  47. stop(){
  48. inital_conf
  49. - uci set firewall.@defaults[0].flow_offloading="${sw_flow}"
  50. - uci set firewall.@defaults[0].flow_offloading_hw="${hw_flow}"
  51. uci set firewall.@defaults[0].fullcone="${fullcone_nat}"
  52. uci commit firewall
  53. + test -c /dev/natflow_ctl && {
  54. + enable_natflow="${sw_flow}"
  55. + enable_natflow_hw="${hw_flow}"
  56. + echo disabled=$((!enable_natflow)) >/dev/natflow_ctl
  57. + echo hwnat=$((enable_natflow_hw)) >/dev/natflow_ctl
  58. + }
  59. +
  60. [ "${sfe_flow}" -ne "1" ] && {
  61. echo "0" > "/sys/fast_classifier/skip_to_bridge_ingress" 2>"/dev/null"
  62. rm -f "/dev/sfe_ipv6"
  63. --- a/package/feeds/custom/luci-app-turboacc/Makefile
  64. +++ b/package/feeds/custom/luci-app-turboacc/Makefile
  65. @@ -12,7 +12,7 @@
  66. PKG_LICENSE:=GPLv3.0+
  67. -LUCI_TITLE:=LuCI support for Flow Offload / Shortcut-FE
  68. +LUCI_TITLE:=LuCI support for Natflow / Shortcut-FE
  69. LUCI_DEPENDS:=+PACKAGE_$(PKG_NAME)_INCLUDE_shortcut-fe:kmod-fast-classifier \
  70. - +PACKAGE_$(PKG_NAME)_INCLUDE_flow-offload:kmod-ipt-offload \
  71. + +PACKAGE_$(PKG_NAME)_INCLUDE_natflow:kmod-natflow \
  72. +PACKAGE_$(PKG_NAME)_INCLUDE_bbr-cca:kmod-tcp-bbr \
  73. +PACKAGE_$(PKG_NAME)_INCLUDE_dnsforwarder:dnsforwarder
  74. @@ -20,6 +20,6 @@
  75. define Package/$(PKG_NAME)/config
  76. -config PACKAGE_$(PKG_NAME)_INCLUDE_flow-offload
  77. - bool "Include Flow Offload"
  78. +config PACKAGE_$(PKG_NAME)_INCLUDE_natflow
  79. + bool "Include Natflow"
  80. depends on PACKAGE_$(PKG_NAME)_INCLUDE_shortcut-fe=n
  81. default y
  82. @@ -40,5 +40,5 @@
  83. PKG_CONFIG_DEPENDS:= \
  84. CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_shortcut-fe \
  85. - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_flow-offload \
  86. + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_natflow \
  87. CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_bbr-cca \
  88. CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_dnsforwarder
  89. --- a/package/feeds/custom/luci-app-turboacc/po/zh_Hans/turboacc.po
  90. +++ b/package/feeds/custom/luci-app-turboacc/po/zh_Hans/turboacc.po
  91. @@ -11,16 +11,16 @@ msgid "Opensource Flow Offloading driver (Fast Path or Hardware NAT)"
  92. msgstr "开源流量分载驱动 (支持 Fast Path 或者 硬件 NAT)"
  93. msgid "Software flow offloading"
  94. -msgstr "软件流量分载"
  95. +msgstr "转发加速(natflow)"
  96. msgid "Software based offloading for routing/NAT"
  97. -msgstr "基于软件的 Routing/NAT 分载"
  98. +msgstr "使用转发加速(natflow)"
  99. msgid "Hardware flow offloading"
  100. -msgstr "硬件流量分载"
  101. +msgstr "硬件转发加速"
  102. msgid "Requires hardware NAT support. Implemented at least for mt76xx"
  103. -msgstr "需要硬件 NAT 支持。目前 mt76xx 已实现"
  104. +msgstr "使用硬件转发加速"
  105. msgid "Shortcut-FE flow offloading"
  106. msgstr "Shortcut-FE 流量分载"
  107. --- a/package/feeds/custom/natflow/Makefile
  108. +++ b/package/feeds/custom/natflow/Makefile
  109. @@ -51,17 +51,4 @@ define Build/Compile
  110. $(call Build/Compile/natflow)
  111. endef
  112. -define Package/natflow-boot
  113. - CATEGORY:=X
  114. - SUBMENU:=Fast Forward Stacks
  115. - TITLE:=natflow boot init script
  116. - DEPENDS:= +kmod-natflow
  117. -endef
  118. -
  119. -define Package/natflow-boot/install
  120. - $(INSTALL_DIR) $(1)/etc/init.d
  121. - $(INSTALL_BIN) ./files/natflow-boot.init $(1)/etc/init.d/natflow-boot
  122. -endef
  123. -
  124. $(eval $(call KernelPackage,natflow))
  125. -$(eval $(call BuildPackage,natflow-boot))