From 3506d1fcef49f411c113d835ca9493c128e6470c Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 30 May 2022 18:32:58 +0200 Subject: [PATCH 01/12] No mptcpd build on kernel 5.4 --- openmptcprouter-full/Makefile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/openmptcprouter-full/Makefile b/openmptcprouter-full/Makefile index e759dc5ee..b5eb342c8 100644 --- a/openmptcprouter-full/Makefile +++ b/openmptcprouter-full/Makefile @@ -28,7 +28,7 @@ MY_DEPENDS := \ iperf3-ssl luci-app-iperf \ arptables \ bind-dig \ - libnetfilter-conntrack ebtables ebtables-utils ip-full nstat \ + libnetfilter-conntrack ip-full nstat \ iptables-mod-iface iptables-mod-ipmark iptables-mod-hashlimit iptables-mod-condition iptables-mod-trace iptables-mod-conntrack-extra iptables-mod-account \ kmod-nf-nat kmod-nf-nathelper kmod-nf-nathelper-extra iptables-mod-extra conntrack \ iptables-mod-ipsec kmod-crypto-authenc kmod-ipsec kmod-ipsec4 kmod-ipsec6 kmod-ipt-ipsec \ @@ -78,11 +78,14 @@ MY_DEPENDS := \ !TARGET_mvebu:kmod-usb-net-huawei-cdc-ncm !TARGET_mvebu:kmod-usb-net-rndis !TARGET_mvebu:kmod-usb-net-cdc-ether !TARGET_mvebu:kmod-usb-net-ipheth !TARGET_mvebu:usbmuxd \ kmod-rt2800-usb kmod-rtl8xxxu kmod-rtl8192cu kmod-net-rtl8192su kmod-rtl8812au-ct \ !TARGET_mvebu:luci-proto-qmi wpad-basic kmod-mt7601u kmod-rtl8187 TARGET_r4s:kmod-r8168 (TARGET_x86||TARGET_x86_64):kmod-usb-net-rtl8152 \ - luci-app-mlvpn mlvpn 464xlat !TARGET_mvebu:kmod-usb-net-smsc75xx kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang (TARGET_x86_64||aarch64):kmod-tcp-bbr2 iptables-mod-ipopt igmpproxy ss iptraf-ng \ + luci-app-mlvpn mlvpn 464xlat kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang (TARGET_x86_64||aarch64):kmod-tcp-bbr2 iptables-mod-ipopt igmpproxy ss iptraf-ng \ luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim kmod-rtl8xxxu kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware kmod-usb2 libustream-openssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf (TARGET_x86||TARGET_x86_64):kmod-igbvf \ hwinfo (TARGET_x86||TARGET_x86_64):dmidecode luci-app-packet-capture kmod-bonding luci-proto-bonding luci-app-sysupgrade \ - luci-theme-openwrt-2020 luci-proto-wireguard luci-app-wireguard (TARGET_x86||TARGET_x86_64):kmod-r8125 TARGET_x86_64:kmod-atlantic \ - mptcpd + luci-theme-openwrt-2020 luci-proto-wireguard luci-app-wireguard kmod-crypto-lib-blake2s (TARGET_x86||TARGET_x86_64):kmod-r8125 TARGET_x86_64:kmod-atlantic \ + !LINUX_5.4:mptcpd (TARGET_x86||TARGET_x86_64):kmod-igc kmod-mmc-spi kmod-macsec +# !TARGET_mvebu:kmod-usb-net-smsc75xx +# libnetfilter-conntrack ebtables ebtables-utils ip-full nstat \ + # luci-theme-bootstrap luci-theme-openwrt-2020 luci-theme-openwrt luci-app-status # luci-proto-bonding luci-app-statistics luci-proto-gre # softethervpn5-client softethervpn5-server luci-app-nginx-ha From 824fce0c830e7d5870906ed220e3b20aeda84927 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 30 May 2022 21:54:45 +0200 Subject: [PATCH 02/12] Use correct golang --- v2ray-core/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index f17adbf69..beb3bd2f4 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -60,7 +60,8 @@ GO_PKG:=github.com/v2fly/v2ray-core/v4 GO_PKG_LDFLAGS:=-s -w include $(INCLUDE_DIR)/package.mk -include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk +#include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk +include $(TOPDIR)/feeds/openmptcprouter/golang/golang-package.mk define Package/v2ray-core TITLE:=A platform for building proxies From 072c061af6119018904e85a11b374690caafd85a Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 31 May 2022 11:49:16 +0200 Subject: [PATCH 03/12] Install mptcpd only on 5.15 kernel --- mptcpd/Makefile | 2 +- openmptcprouter-full/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mptcpd/Makefile b/mptcpd/Makefile index 6bb9f7f71..f234e8362 100644 --- a/mptcpd/Makefile +++ b/mptcpd/Makefile @@ -25,7 +25,7 @@ include $(INCLUDE_DIR)/package.mk define Package/$(PKG_NAME) SECTION:=net CATEGORY:=Network -DEPENDS:=+libell +DEPENDS:=+libell @LINUX_5_15 TITLE:=mptcpd URL:=https://github.com/intel/mptcpd endef diff --git a/openmptcprouter-full/Makefile b/openmptcprouter-full/Makefile index b5eb342c8..a041d9bae 100644 --- a/openmptcprouter-full/Makefile +++ b/openmptcprouter-full/Makefile @@ -82,7 +82,7 @@ MY_DEPENDS := \ luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim kmod-rtl8xxxu kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware kmod-usb2 libustream-openssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf (TARGET_x86||TARGET_x86_64):kmod-igbvf \ hwinfo (TARGET_x86||TARGET_x86_64):dmidecode luci-app-packet-capture kmod-bonding luci-proto-bonding luci-app-sysupgrade \ luci-theme-openwrt-2020 luci-proto-wireguard luci-app-wireguard kmod-crypto-lib-blake2s (TARGET_x86||TARGET_x86_64):kmod-r8125 TARGET_x86_64:kmod-atlantic \ - !LINUX_5.4:mptcpd (TARGET_x86||TARGET_x86_64):kmod-igc kmod-mmc-spi kmod-macsec + LINUX_5_15:mptcpd (TARGET_x86||TARGET_x86_64):kmod-igc kmod-mmc-spi kmod-macsec # !TARGET_mvebu:kmod-usb-net-smsc75xx # libnetfilter-conntrack ebtables ebtables-utils ip-full nstat \ From 0e2d6b6b22d70699957de167e0b2f5e13705ab71 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 1 Jun 2022 08:11:57 +0200 Subject: [PATCH 04/12] Changes in Guthub Actions due to kernel name in path --- .github/workflows/main.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a5d283713..c43ccaa45 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -66,20 +66,22 @@ jobs: OMR_PORT: ${{ secrets.OMR_PORT }} run: | OMR_KERNEL="${OMR_KERNEL}" OMR_FEED_SRC="${SOURCE_NAME}" sh build.sh prepare {tools,toolchain}/install -j$(nproc) || OMR_KERNEL="${OMR_KERNEL}" OMR_FEED_SRC="${SOURCE_NAME}" sh build.sh prepare {tools,toolchain}/install -j1 V=s - #echo -e "${{ secrets.OMR_PRIVKEY }}" > $OMR_TARGET/source/key-build - #echo -e "${{ secrets.OMR_PUBKEY }}" > $OMR_TARGET/source/key-build.pub + #echo -e "${{ secrets.OMR_PRIVKEY }}" > $OMR_TARGET/$OMR_KERNEL/source/key-build + #echo -e "${{ secrets.OMR_PUBKEY }}" > $OMR_TARGET/$OMR_KERNEL/source/key-build.pub - name: Build packages working-directory: ../../omr env: OMR_TARGET: ${{ matrix.OMR_TARGET }} + OMR_KERNEL: ${{ matrix.OMR_KERNEL }} run: | - make IGNORE_ERRORS=m -C $OMR_TARGET/source package/{compile,install,index} -j$(nproc) || make IGNORE_ERRORS=m -C $OMR_TARGET/source package/{compile,install,index} -j1 V=s + make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source package/{compile,install,index} -j$(nproc) || make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source package/{compile,install,index} -j1 V=s - name: Build image working-directory: ../../omr env: OMR_TARGET: ${{ matrix.OMR_TARGET }} + OMR_KERNEL: ${{ matrix.OMR_KERNEL }} run: | - make IGNORE_ERRORS=m -C $OMR_TARGET/source target/install -j$(nproc) || make IGNORE_ERRORS=m -C $OMR_TARGET/source target/install -j1 V=s + make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source target/install -j$(nproc) || make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source target/install -j1 V=s - name: Upload artifacts uses: actions/upload-artifact@v2 with: @@ -119,9 +121,10 @@ jobs: working-directory: ../../omr env: OMR_TARGET: ${{ matrix.OMR_TARGET }} + OMR_KERNEL: ${{ matrix.OMR_KERNEL }} GITHUB_WORKSPACE: ${{ steps.branch_name.outputs.WORKSPACE }} run: | - mv ${OMR_TARGET}/source/bin ${GITHUB_WORKSPACE}/ + mv ${OMR_TARGET}/${OMR_KERNEL}/source/bin ${GITHUB_WORKSPACE}/ - if: steps.branch_name.outputs.SOURCE_BRANCH == '' name: Deploy - Upload via rsync uses: ysurac/action-rsync@master From bf1c4154d040ef3b4f481295c8dcdbb0a911bde1 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 1 Jun 2022 20:44:52 +0200 Subject: [PATCH 05/12] Fix Github actions --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c43ccaa45..8ec59e8da 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -131,7 +131,7 @@ jobs: env: ARGS: -av --delete-after TARGET: deploy/release/${{steps.branch_name.outputs.SOURCE_TAG}}/${{matrix.OMR_TARGET}} - SOURCE: ./bin/ + SOURCE: ./${{matrix.OMR_KERNEL}}/bin/ KEY: ${{ secrets.PRIVATE_KEY }} USER: deploy HOST: ${{ secrets.OMR_DEPLOY_HOST }} @@ -146,7 +146,7 @@ jobs: env: ARGS: -av --delete-after TARGET: deploy/${{ steps.branch_name.outputs.SOURCE_BRANCH }}/${{matrix.OMR_KERNEL}}/${{matrix.OMR_TARGET}} - SOURCE: ./bin/ + SOURCE: ./${{matrix.OMR_KERNEL}}/bin/ KEY: ${{ secrets.PRIVATE_KEY }} USER: deploy HOST: ${{ secrets.OMR_DEPLOY_HOST }} From 3419876fd597270542473dd9acba658e80cd066f Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 2 Jun 2022 15:52:43 +0200 Subject: [PATCH 06/12] Fix server failover --- omr-tracker/files/bin/omr-tracker-server | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/omr-tracker/files/bin/omr-tracker-server b/omr-tracker/files/bin/omr-tracker-server index 428a2d1a8..e3a376c28 100755 --- a/omr-tracker/files/bin/omr-tracker-server +++ b/omr-tracker/files/bin/omr-tracker-server @@ -98,16 +98,20 @@ _check_master() { /etc/init.d/openvpn restart >/dev/null 2>/dev/null /etc/init.d/dsvpn restart >/dev/null 2>/dev/null fi + else + logger -t "OMR-Tracker-Server" "Master server already up" fi config_load shadowsocks-libev config_foreach _enable_redir ss_redir count=$((count+1)) else + logger -t "OMR-Tracker-Server" "Master server down" config_load shadowsocks-libev config_foreach _disable_redir ss_redir fi countips=$((countips+1)) } + config_load openmptcprouter config_list_foreach $1 ip set_ip #if [ "$server_ping" = true ] && [ "$countips" = "1" ]; then # uci -q batch <<-EOF >/dev/null @@ -176,6 +180,7 @@ _check_backup() { fi countips=$((countips+1)) } + config_load openmptcprouter config_list_foreach $1 ip set_ip #if [ "$server_ping" = true ] && [ "$countips" = "1" ]; then # uci -q batch <<-EOF >/dev/null @@ -202,6 +207,7 @@ while true; do config_load openmptcprouter config_foreach _check_master server [ "$server_ping" = false ] && { + config_load openmptcprouter config_foreach _check_backup server } sleep "${interval}" From bc14122b3ec98e13ff096df235abf13613db4bf2 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 2 Jun 2022 15:53:04 +0200 Subject: [PATCH 07/12] Fix QoS in wizard --- .../luasrc/controller/openmptcprouter.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index ec8eeb466..de061fae5 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -283,6 +283,7 @@ function wizard_add() local auth = luci.http.formvalue("cbid.network.%s.auth" % intf) or "" local mode = luci.http.formvalue("cbid.network.%s.mode" % intf) or "" local sqmenabled = luci.http.formvalue("cbid.sqm.%s.enabled" % intf) or "0" + local qosenabled = luci.http.formvalue("cbid.qos.%s.enabled" % intf) or "0" local multipath = luci.http.formvalue("cbid.network.%s.multipath" % intf) or "on" local lan = luci.http.formvalue("cbid.network.%s.lan" % intf) or "0" local ttl = luci.http.formvalue("cbid.network.%s.ttl" % intf) or "" @@ -463,9 +464,12 @@ function wizard_add() --ucic:set("sqm",intf,"iqdisc_opts","autorate-ingress dual-dsthost") --ucic:set("sqm",intf,"eqdisc_opts","dual-srchost") ucic:set("sqm",intf,"enabled","1") - ucic:set("qos",intf,"enabled","1") else ucic:set("sqm",intf,"enabled","0") + end + if qosenabled == "1" then + ucic:set("qos",intf,"enabled","1") + else ucic:set("qos",intf,"enabled","0") end end From 3836f9a22591523a5b17e07b2b75838ea10d76aa Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 2 Jun 2022 15:53:28 +0200 Subject: [PATCH 08/12] Fix server routes when multiples servers are defined --- mptcp/files/usr/share/omr/post-tracking.d/post-tracking | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking index 932c51155..1cfecffc7 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -478,6 +478,7 @@ set_server_all_routes() { fi fi } + config_load openmptcprouter config_list_foreach $server ip server_route } @@ -525,6 +526,7 @@ set_server_all_routes6() { fi fi } + config_load openmptcprouter config_list_foreach $server ip server_route } From c9ad59784e9401efa60be3a393bd2b3830b90622 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 2 Jun 2022 15:54:17 +0200 Subject: [PATCH 09/12] Return latencies without endline --- omr-tracker/files/bin/omr-tracker | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/omr-tracker/files/bin/omr-tracker b/omr-tracker/files/bin/omr-tracker index 00a6274f4..fe21c7473 100755 --- a/omr-tracker/files/bin/omr-tracker +++ b/omr-tracker/files/bin/omr-tracker @@ -153,7 +153,7 @@ _ping() { "${host}" 2>&1 ) && echo "$ret" | grep -sq "bytes from" && { if [ "$localip" = "yes" ]; then - OMR_TRACKER_LATENCY=$(echo "$ret" | cut -d "/" -s -f5 | cut -d "." -f1) + OMR_TRACKER_LATENCY=$(echo "$ret" | cut -d "/" -s -f5 | cut -d "." -f1 | tr -d '\n') _update_rto "$OMR_TRACKER_LATENCY" fi return @@ -166,7 +166,7 @@ _ping() { "${host}" 2>&1 ) && echo "$ret" | grep -sq "bytes from" && { if [ "$localip" = "yes" ]; then - OMR_TRACKER_LATENCY=$(echo "$ret" | cut -d "/" -s -f5 | cut -d "." -f1) + OMR_TRACKER_LATENCY=$(echo "$ret" | cut -d "/" -s -f5 | cut -d "." -f1 | tr -d '\n') _update_rto "$OMR_TRACKER_LATENCY" fi return From ab417428f92f7265638593becf59d7a4b1d9e2dc Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 2 Jun 2022 16:35:59 +0200 Subject: [PATCH 10/12] Update github actions --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8ec59e8da..2ca1b3894 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -86,7 +86,7 @@ jobs: uses: actions/upload-artifact@v2 with: name: ${{ matrix.OMR_TARGET }} - path: /home/runner/work/omr/${{ matrix.OMR_TARGET }}/source/bin + path: /home/runner/work/omr/${{ matrix.OMR_TARGET }}/${{ matrix.OMR_KERNEL }}/source/bin - if: steps.branch_name.outputs.SOURCE_BRANCH == '' name: Deploy - Create directory uses: ysurac/ssh-action@master From 990790e6c8faaf96dc2a3a089e9810727810869d Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 2 Jun 2022 19:10:56 +0200 Subject: [PATCH 11/12] Fix server failover for glorytun udp --- omr-tracker/files/bin/omr-tracker-server | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/omr-tracker/files/bin/omr-tracker-server b/omr-tracker/files/bin/omr-tracker-server index e3a376c28..d9ffbd1e9 100755 --- a/omr-tracker/files/bin/omr-tracker-server +++ b/omr-tracker/files/bin/omr-tracker-server @@ -82,6 +82,8 @@ _check_master() { commit v2ray set glorytun.vpn.host=$ip commit glorytun + glorytun-udp.vpn.host=$ip + commit glorytun set dsvpn.vpn.host=$ip commit dsvpn set mlvpn.general.host=$ip @@ -153,6 +155,8 @@ _check_backup() { commit v2ray set glorytun.vpn.host=$ip commit glorytun + glorytun-udp.vpn.host=$ip + commit glorytun set dsvpn.vpn.host=$ip commit dsvpn set mlvpn.general.host=$ip From 9dc249d7c5c0d206c3bcce0802e3b15d9915f70e Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 2 Jun 2022 19:11:11 +0200 Subject: [PATCH 12/12] Fix Github actions --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2ca1b3894..4ab1b4b77 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -131,7 +131,7 @@ jobs: env: ARGS: -av --delete-after TARGET: deploy/release/${{steps.branch_name.outputs.SOURCE_TAG}}/${{matrix.OMR_TARGET}} - SOURCE: ./${{matrix.OMR_KERNEL}}/bin/ + SOURCE: ./bin/ KEY: ${{ secrets.PRIVATE_KEY }} USER: deploy HOST: ${{ secrets.OMR_DEPLOY_HOST }} @@ -146,7 +146,7 @@ jobs: env: ARGS: -av --delete-after TARGET: deploy/${{ steps.branch_name.outputs.SOURCE_BRANCH }}/${{matrix.OMR_KERNEL}}/${{matrix.OMR_TARGET}} - SOURCE: ./${{matrix.OMR_KERNEL}}/bin/ + SOURCE: ./bin/ KEY: ${{ secrets.PRIVATE_KEY }} USER: deploy HOST: ${{ secrets.OMR_DEPLOY_HOST }}