From 48929441ea67f1d4366a6d721d69761915032769 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 13:49:09 +0100 Subject: [PATCH 01/28] Update firmware.yml --- .github/workflows/firmware.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 18f8dfb9..5da56fa8 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -1,4 +1,4 @@ -name: Build r619ac firmware +name: Build ffmuc firmware on: push: From cd1f94fdfe6ff02e2162f9ecd5589385997779b8 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 13:51:17 +0100 Subject: [PATCH 02/28] Update firmware.yml --- .github/workflows/firmware.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 5da56fa8..6a8aac0f 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -3,11 +3,8 @@ name: Build ffmuc firmware on: push: branches: - - master - release: - types: published - watch: - types: started + - experimental + - stable jobs: build: From 14692bef656025c4e7467597d97e0f5a2d49f3a3 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 13:52:38 +0100 Subject: [PATCH 03/28] Update firmware.yml --- .github/workflows/firmware.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 6a8aac0f..144d6c7d 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -9,11 +9,9 @@ on: jobs: build: runs-on: ubuntu-latest - if: github.event.repository.owner.id == github.event.sender.id - steps: - name: Checkout - uses: actions/checkout@master + uses: actions/checkout@experimental - name: Initialization environment env: From 70d32e89ad65dc2d5279946ba30a31b2ccaa7326 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 13:54:16 +0100 Subject: [PATCH 04/28] Update firmware.yml --- .github/workflows/firmware.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 144d6c7d..56b0410e 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@experimental + uses: actions/checkout@master - name: Initialization environment env: From 089fc9187a1956d5c6cb6e81dc01a8ef731c83fc Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 14:02:28 +0100 Subject: [PATCH 05/28] Update firmware.yml --- .github/workflows/firmware.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 56b0410e..a8f665c0 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -17,17 +17,12 @@ jobs: env: DEBIAN_FRONTEND: noninteractive run: | - docker rmi `docker images -q` - sudo rm -rf /usr/share/dotnet /etc/mysql /etc/php /etc/apt/sources.list.d - sudo -E apt-get -y purge azure-cli ghc* zulu* hhvm llvm* firefox google* dotnet* powershell openjdk* mysql* php* sudo -E apt-get update sudo -E apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python2.7 python3 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs gcc-multilib g++-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler antlr3 gperf - sudo -E apt-get -y autoremove --purge - sudo -E apt-get clean - name: Compile firmware id: compile run: | - git checkout -b patched && git checkout stable + git checkout -b patched && git checkout experimental make - name: Upload firmware uses: actions/upload-artifact@master From 2fada534e75528d6233f5314ef6e42cddef5347d Mon Sep 17 00:00:00 2001 From: goligo Date: Tue, 29 Dec 2020 14:09:51 +0100 Subject: [PATCH 06/28] Update firmware server IP address for all branches Changed IP-address for firmware update to new AS212567 addresses. Include a IPv4 address in addition to the IPv6 address, in case one of the networks is not working as expected (as it happened in the last migration). --- site.conf | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/site.conf b/site.conf index bca2205a..e81f7b82 100644 --- a/site.conf +++ b/site.conf @@ -70,7 +70,8 @@ name = 'stable', mirrors = { 'http://firmware.ffmuc.net/stable/sysupgrade', - 'http://[2001:608:a01::27]/stable/sysupgrade', + 'http://5.1.66.255/stable/sysupgrade', + 'http://[2001:678:e68:f000::]/stable/sysupgrade', }, good_signatures = 3, pubkeys = { @@ -86,7 +87,8 @@ name = 'testing', mirrors = { 'http://firmware.ffmuc.net/testing/sysupgrade', - 'http://[2001:608:a01::27]/testing/sysupgrade', + 'http://5.1.66.255/testing/sysupgrade', + 'http://[2001:678:e68:f000::]/testing/sysupgrade', }, good_signatures = 2, pubkeys = { @@ -102,7 +104,8 @@ name = 'experimental', mirrors = { 'http://firmware.ffmuc.net/experimental/sysupgrade', - 'http://[2001:608:a01::27]/experimental/sysupgrade', + 'http://5.1.66.255/experimental/sysupgrade', + 'http://[2001:678:e68:f000::]/experimental/sysupgrade', }, good_signatures = 1, pubkeys = { From e0ab05b5da2783c6ae6a9f8cd8f12bc644a22e75 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 14:15:30 +0100 Subject: [PATCH 07/28] Update firmware.yml --- .github/workflows/firmware.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index a8f665c0..0b537c7c 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -7,7 +7,7 @@ on: - stable jobs: - build: + ar71xx-generic: runs-on: ubuntu-latest steps: - name: Checkout @@ -19,13 +19,14 @@ jobs: run: | sudo -E apt-get update sudo -E apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python2.7 python3 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs gcc-multilib g++-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler antlr3 gperf - - name: Compile firmware + - name: build target id: compile run: | git checkout -b patched && git checkout experimental - make + make GLUON_TARGETS='ar71xx-generic' - name: Upload firmware uses: actions/upload-artifact@master if: steps.compile.outputs.status == 'success' with: + name: ar71xx-generic_output path: ./output From b2ddc3d2a050e5949694ced8c5c2f6ad1b25e964 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 14:25:49 +0100 Subject: [PATCH 08/28] Update firmware.yml --- .github/workflows/firmware.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 0b537c7c..064e03d3 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -7,7 +7,11 @@ on: - stable jobs: - ar71xx-generic: + build_firmware: + strategy: + fail-fast: false + matrix: + target: [ar71xx-generic, ar71xx-tiny, ar71xx-nand] runs-on: ubuntu-latest steps: - name: Checkout @@ -23,10 +27,10 @@ jobs: id: compile run: | git checkout -b patched && git checkout experimental - make GLUON_TARGETS='ar71xx-generic' + make GLUON_TARGETS=${{ matrix.target }} - name: Upload firmware uses: actions/upload-artifact@master if: steps.compile.outputs.status == 'success' with: - name: ar71xx-generic_output + name: ${{ matrix.target }}_output path: ./output From e79ab62cdc2bb0c8c8e39d04fb5b4a52bab9e056 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 15:44:02 +0100 Subject: [PATCH 09/28] Add tag and branch --- .github/workflows/firmware.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 064e03d3..89129bc6 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -11,12 +11,18 @@ jobs: strategy: fail-fast: false matrix: - target: [ar71xx-generic, ar71xx-tiny, ar71xx-nand] + target: [ar71xx-generic, ar71xx-tiny, ar71xx-nand, ath79-generic, brcm2708-bcm2708, brcm2708-bcm2709, ipq40xx-generic, ipq806x-generic, lantiq-xrx200, lantiq-xway, mpc85xx-generic, mpc85xx-p1020, ramips-mt7620, ramips-mt7621, ramips-mt76x8, ramips-rt305x, sunxi-cortexa7, x86-generic, x86-geode, x86-legacy, x86-64, ar71xx-mikrotik, brcm2708-bcm2710, mvebu-cortexa9] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@master - + - name: Extract branch name + shell: bash + run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" + id: extract_branch + - name: Set tag + id: vars + run: echo ::set-output name=tag::${GITHUB_REF#refs/*/} - name: Initialization environment env: DEBIAN_FRONTEND: noninteractive @@ -26,8 +32,8 @@ jobs: - name: build target id: compile run: | - git checkout -b patched && git checkout experimental - make GLUON_TARGETS=${{ matrix.target }} + git checkout -b patched && git checkout ${{ steps.extract_branch.outputs.branch }} + make BROKEN=1 GLUON_TARGETS=${{ matrix.target }} GLUON_RELEASE=${{ steps.vars.outputs.tag }} - name: Upload firmware uses: actions/upload-artifact@master if: steps.compile.outputs.status == 'success' From 605b4725ac0c28c7867a08dbfa9428282850f7b7 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 15:47:49 +0100 Subject: [PATCH 10/28] Only run on tag --- .github/workflows/firmware.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 89129bc6..c071aa86 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -1,10 +1,10 @@ name: Build ffmuc firmware on: - push: - branches: - - experimental - - stable + workflow_dispatch: + create: + tags: + - v* jobs: build_firmware: From 7343c49204e7300871bd7c08c3ce8d09fa5780ef Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 15:48:54 +0100 Subject: [PATCH 11/28] Add target description --- .github/workflows/firmware.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index c071aa86..dcbcade5 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -29,12 +29,12 @@ jobs: run: | sudo -E apt-get update sudo -E apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python2.7 python3 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs gcc-multilib g++-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler antlr3 gperf - - name: build target + - name: build target ${{ matrix.target }} id: compile run: | git checkout -b patched && git checkout ${{ steps.extract_branch.outputs.branch }} make BROKEN=1 GLUON_TARGETS=${{ matrix.target }} GLUON_RELEASE=${{ steps.vars.outputs.tag }} - - name: Upload firmware + - name: Upload firmware ${{ matrix.target }} uses: actions/upload-artifact@master if: steps.compile.outputs.status == 'success' with: From c3737e08f2354c369096afccc26129dcb9fb141e Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 15:52:47 +0100 Subject: [PATCH 12/28] Add batman performance patches --- .../0004-vxlan-fix-performance-issues.patch | 100 ++++++++++++ ...dv-improve-fragmentation-performance.patch | 142 ++++++++++++++++++ 2 files changed, 242 insertions(+) create mode 100644 patches/0004-vxlan-fix-performance-issues.patch create mode 100644 patches/0005-batman-adv-improve-fragmentation-performance.patch diff --git a/patches/0004-vxlan-fix-performance-issues.patch b/patches/0004-vxlan-fix-performance-issues.patch new file mode 100644 index 00000000..58e5cb31 --- /dev/null +++ b/patches/0004-vxlan-fix-performance-issues.patch @@ -0,0 +1,100 @@ +From 486d735cb74f3c66ba08747de2b1cefc7e63b8d9 Mon Sep 17 00:00:00 2001 +From: CodeFetch +Date: Tue, 22 Dec 2020 04:44:39 +0100 +Subject: [PATCH 1/1] vxlan: fix performance issues + +This commit includes the patches for fixing issue #2155. +--- + ...ance-issues-with-VXLAN-encapsulation.patch | 80 +++++++++++++++++++ + 1 file changed, 80 insertions(+) + create mode 100644 patches/openwrt/9010-kernel-fix-performance-issues-with-VXLAN-encapsulation.patch + +diff --git a/patches/openwrt/9010-kernel-fix-performance-issues-with-VXLAN-encapsulation.patch b/patches/openwrt/9010-kernel-fix-performance-issues-with-VXLAN-encapsulation.patch +new file mode 100644 +index 00000000..14b4cc78 +--- /dev/null ++++ b/patches/openwrt/9010-kernel-fix-performance-issues-with-VXLAN-encapsulation.patch +@@ -0,0 +1,80 @@ ++From: CodeFetch ++Date: Tue, 22 Dec 2020 04:35:17 +0100 ++Subject: kernel: fix performance issues with VXLAN encapsulation ++ ++VXLAN did not consider the needed headroom of it's lower device which thus ++lead to costly expansions of the headroom. See: ++https://patchwork.ozlabs.org/project/netdev/list/?series=216897 ++ ++This commit includes the needed patches. ++ ++Signed-off-by: Vincent Wiemann ++ ++diff --git a/target/linux/generic/pending-4.14/690-vxlan-add_needed_headroom_for_lower_device.patch b/target/linux/generic/pending-4.14/690-vxlan-add_needed_headroom_for_lower_device.patch ++new file mode 100644 ++index 0000000000000000000000000000000000000000..1a380e62289094f0819a058ab07df0e60f0070cd ++--- /dev/null +++++ b/target/linux/generic/pending-4.14/690-vxlan-add_needed_headroom_for_lower_device.patch ++@@ -0,0 +1,35 @@ +++From: Sven Eckelmann +++Subject: [PATCH 1/2] vxlan: Add needed_headroom for lower device +++Date: Thu, 26 Nov 2020 13:52:46 +0100 +++ +++It was observed that sending data via batadv over vxlan (on top of +++wireguard) reduced the performance massively compared to raw ethernet or +++batadv on raw ethernet. A check of perf data showed that the +++vxlan_build_skb was calling all the time pskb_expand_head to allocate +++enough headroom for: +++ +++ min_headroom = LL_RESERVED_SPACE(dst->dev) + dst->header_len +++ + VXLAN_HLEN + iphdr_len; +++ +++But the vxlan_config_apply only requested needed headroom for: +++ +++ lowerdev->hard_header_len + VXLAN6_HEADROOM or VXLAN_HEADROOM +++ +++So it completely ignored the needed_headroom of the lower device. The first +++caller of net_dev_xmit could therefore never make sure that enough headroom +++was allocated for the rest of the transmit path. +++ +++Cc: Annika Wickert +++Signed-off-by: Sven Eckelmann +++Tested-by: Annika Wickert +++Signed-off-by: Vincent Wiemann +++--- a/drivers/net/vxlan.c ++++++ b/drivers/net/vxlan.c +++@@ -3184,6 +3184,7 @@ static void vxlan_config_apply(struct ne +++ dev->gso_max_segs = lowerdev->gso_max_segs; +++ +++ needed_headroom = lowerdev->hard_header_len; ++++ needed_headroom += lowerdev->needed_headroom; +++ +++ max_mtu = lowerdev->mtu - (use_ipv6 ? VXLAN6_HEADROOM : +++ VXLAN_HEADROOM); ++diff --git a/target/linux/generic/pending-4.14/691-vxlan-copy_needed_tailroom_from_lowerdev.patch b/target/linux/generic/pending-4.14/691-vxlan-copy_needed_tailroom_from_lowerdev.patch ++new file mode 100644 ++index 0000000000000000000000000000000000000000..a02aa2e1d84993b3fc994823978d8aee8dcc482e ++--- /dev/null +++++ b/target/linux/generic/pending-4.14/691-vxlan-copy_needed_tailroom_from_lowerdev.patch ++@@ -0,0 +1,21 @@ +++From: Sven Eckelmann +++Subject: [PATCH 2/2] vxlan: Copy needed_tailroom from lowerdev +++Date: Thu, 26 Nov 2020 13:52:47 +0100 +++ +++While vxlan doesn't need any extra tailroom, the lowerdev might need it. In +++that case, copy it over to reduce the chance for additional (re)allocations +++in the transmit path. +++ +++Signed-off-by: Sven Eckelmann +++Signed-off-by: Vincent Wiemann +++--- a/drivers/net/vxlan.c ++++++ b/drivers/net/vxlan.c +++@@ -3186,6 +3186,8 @@ static void vxlan_config_apply(struct ne +++ needed_headroom = lowerdev->hard_header_len; +++ needed_headroom += lowerdev->needed_headroom; +++ ++++ dev->needed_tailroom = lowerdev->needed_tailroom; ++++ +++ max_mtu = lowerdev->mtu - (use_ipv6 ? VXLAN6_HEADROOM : +++ VXLAN_HEADROOM); +++ if (max_mtu < ETH_MIN_MTU) +-- +2.29.2 + diff --git a/patches/0005-batman-adv-improve-fragmentation-performance.patch b/patches/0005-batman-adv-improve-fragmentation-performance.patch new file mode 100644 index 00000000..d758b1e0 --- /dev/null +++ b/patches/0005-batman-adv-improve-fragmentation-performance.patch @@ -0,0 +1,142 @@ +From ad9d77de22ca5bb27b8544c1c57fa8b6afa9fba8 Mon Sep 17 00:00:00 2001 +From: CodeFetch +Date: Tue, 22 Dec 2020 05:24:06 +0100 +Subject: [PATCH] batman-adv: improve fragmentation performance + +This commit fixes the fragmentation issues mentioned in issue #2155. +--- + ...dv-improve-fragmentation-performance.patch | 122 ++++++++++++++++++ + 1 file changed, 122 insertions(+) + create mode 100644 patches/packages/routing/0004-batman-adv-improve-fragmentation-performance.patch + +diff --git a/patches/packages/routing/0004-batman-adv-improve-fragmentation-performance.patch b/patches/packages/routing/0004-batman-adv-improve-fragmentation-performance.patch +new file mode 100644 +index 00000000..6556ad8a +--- /dev/null ++++ b/patches/packages/routing/0004-batman-adv-improve-fragmentation-performance.patch +@@ -0,0 +1,122 @@ ++From: CodeFetch ++Date: Tue, 22 Dec 2020 05:07:17 +0100 ++Subject: batman-adv: improve fragmentation performance ++ ++See freifunk-gluon issue #2155 for details. ++ ++Signed-off-by: Vincent Wiemann ++ ++diff --git a/batman-adv/patches/1100-batman-adv-consider-fragmentation-for-needed_headroom.patch b/batman-adv/patches/1100-batman-adv-consider-fragmentation-for-needed_headroom.patch ++new file mode 100644 ++index 0000000000000000000000000000000000000000..95fc85a3ea27cd5c16657e986bfaffddb9c326c4 ++--- /dev/null +++++ b/batman-adv/patches/1100-batman-adv-consider-fragmentation-for-needed_headroom.patch ++@@ -0,0 +1,12 @@ +++--- a/net/batman-adv/hard-interface.c ++++++ b/net/batman-adv/hard-interface.c +++@@ -553,6 +553,9 @@ static void batadv_hardif_recalc_extra_s +++ needed_headroom = lower_headroom + (lower_header_len - ETH_HLEN); +++ needed_headroom += batadv_max_header_len(); +++ ++++ /* fragmentation headers don't strip the unicast/... header */ ++++ needed_headroom += sizeof(struct batadv_frag_packet); ++++ +++ soft_iface->needed_headroom = needed_headroom; +++ soft_iface->needed_tailroom = lower_tailroom; +++ } ++diff --git a/batman-adv/patches/1101-batman-adv-reserve-needed-room-for-fragments.patch b/batman-adv/patches/1101-batman-adv-reserve-needed-room-for-fragments.patch ++new file mode 100644 ++index 0000000000000000000000000000000000000000..59e02149b49210dae0700d943a0310b3dce054f8 ++--- /dev/null +++++ b/batman-adv/patches/1101-batman-adv-reserve-needed-room-for-fragments.patch ++@@ -0,0 +1,62 @@ +++--- a/net/batman-adv/fragmentation.c ++++++ b/net/batman-adv/fragmentation.c +++@@ -391,6 +391,7 @@ out: +++ +++ /** +++ * batadv_frag_create() - create a fragment from skb ++++ * @net_dev: outgoing device for fragment +++ * @skb: skb to create fragment from +++ * @frag_head: header to use in new fragment +++ * @fragment_size: size of new fragment +++@@ -401,22 +402,25 @@ out: +++ * +++ * Return: the new fragment, NULL on error. +++ */ +++-static struct sk_buff *batadv_frag_create(struct sk_buff *skb, ++++static struct sk_buff *batadv_frag_create(struct net_device *net_dev, ++++ struct sk_buff *skb, +++ struct batadv_frag_packet *frag_head, +++ unsigned int fragment_size) +++ { ++++ unsigned int ll_reserved = LL_RESERVED_SPACE(net_dev); ++++ unsigned int tailroom = net_dev->needed_tailroom; +++ struct sk_buff *skb_fragment; +++ unsigned int header_size = sizeof(*frag_head); +++ unsigned int mtu = fragment_size + header_size; +++ +++- skb_fragment = netdev_alloc_skb(NULL, mtu + ETH_HLEN); ++++ skb_fragment = dev_alloc_skb(ll_reserved + mtu + tailroom); +++ if (!skb_fragment) +++ goto err; +++ +++ skb_fragment->priority = skb->priority; +++ +++ /* Eat the last mtu-bytes of the skb */ +++- skb_reserve(skb_fragment, header_size + ETH_HLEN); ++++ skb_reserve(skb_fragment, ll_reserved + header_size); +++ skb_split(skb, skb_fragment, skb->len - fragment_size); +++ +++ /* Add the header */ +++@@ -439,11 +443,12 @@ int batadv_frag_send_packet(struct sk_bu +++ struct batadv_orig_node *orig_node, +++ struct batadv_neigh_node *neigh_node) +++ { ++++ struct net_device *net_dev = neigh_node->if_incoming->net_dev; +++ struct batadv_priv *bat_priv; +++ struct batadv_hard_iface *primary_if = NULL; +++ struct batadv_frag_packet frag_header; +++ struct sk_buff *skb_fragment; +++- unsigned int mtu = neigh_node->if_incoming->net_dev->mtu; ++++ unsigned int mtu = net_dev->mtu; +++ unsigned int header_size = sizeof(frag_header); +++ unsigned int max_fragment_size, num_fragments; +++ int ret; +++@@ -503,7 +508,7 @@ int batadv_frag_send_packet(struct sk_bu +++ goto put_primary_if; +++ } +++ +++- skb_fragment = batadv_frag_create(skb, &frag_header, ++++ skb_fragment = batadv_frag_create(net_dev, skb, &frag_header, +++ max_fragment_size); +++ if (!skb_fragment) { +++ ret = -ENOMEM; ++diff --git a/batman-adv/patches/1102-batman-adv-dont-always-reallocate-the-fragmentation-skb-head.patch b/batman-adv/patches/1102-batman-adv-dont-always-reallocate-the-fragmentation-skb-head.patch ++new file mode 100644 ++index 0000000000000000000000000000000000000000..4ba8b2f755925c37a1365e59842612dbe0febbfb ++--- /dev/null +++++ b/batman-adv/patches/1102-batman-adv-dont-always-reallocate-the-fragmentation-skb-head.patch ++@@ -0,0 +1,22 @@ +++--- a/net/batman-adv/fragmentation.c ++++++ b/net/batman-adv/fragmentation.c +++@@ -527,13 +527,14 @@ int batadv_frag_send_packet(struct sk_bu +++ frag_header.no++; +++ } +++ +++- /* Make room for the fragment header. */ +++- if (batadv_skb_head_push(skb, header_size) < 0 || +++- pskb_expand_head(skb, header_size + ETH_HLEN, 0, GFP_ATOMIC) < 0) { +++- ret = -ENOMEM; ++++ /* make sure that there is at least enough head for the fragmentation ++++ * and ethernet headers ++++ */ ++++ ret = skb_cow_head(skb, ETH_HLEN + header_size); ++++ if (ret < 0) +++ goto put_primary_if; +++- } +++ ++++ skb_push(skb, header_size); +++ memcpy(skb->data, &frag_header, header_size); +++ +++ /* Send the last fragment */ +-- +2.29.2 + From be77a5593fdd517dff495c5f18d51dcc37444819 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 15:58:22 +0100 Subject: [PATCH 13/28] Add batman performance patches --- .github/workflows/firmware.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index dcbcade5..82018e92 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -33,7 +33,8 @@ jobs: id: compile run: | git checkout -b patched && git checkout ${{ steps.extract_branch.outputs.branch }} - make BROKEN=1 GLUON_TARGETS=${{ matrix.target }} GLUON_RELEASE=${{ steps.vars.outputs.tag }} + make BROKEN=1 GLUON_TARGETS=${{ matrix.target }} GLUON_RELEASE=${{ steps.vars.outputs.tag }} V=s + echo "::set-output name=status::success" - name: Upload firmware ${{ matrix.target }} uses: actions/upload-artifact@master if: steps.compile.outputs.status == 'success' From bce84d24f05b7faebd685a4e42094efc92a56f96 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 18:15:35 +0100 Subject: [PATCH 14/28] Build release --- .github/workflows/firmware.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 82018e92..fed76500 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -41,3 +41,23 @@ jobs: with: name: ${{ matrix.target }}_output path: ./output + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: false + prerelease: false + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./${{ matrix.target }}_output.zip + asset_name: ${{ matrix.target }}_output.zip + asset_content_type: application/zip From ff42e52dcaf1d67333100c25ef48ea94671a2f77 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 18:17:28 +0100 Subject: [PATCH 15/28] Try --- .github/workflows/firmware.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index fed76500..011b35f1 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - target: [ar71xx-generic, ar71xx-tiny, ar71xx-nand, ath79-generic, brcm2708-bcm2708, brcm2708-bcm2709, ipq40xx-generic, ipq806x-generic, lantiq-xrx200, lantiq-xway, mpc85xx-generic, mpc85xx-p1020, ramips-mt7620, ramips-mt7621, ramips-mt76x8, ramips-rt305x, sunxi-cortexa7, x86-generic, x86-geode, x86-legacy, x86-64, ar71xx-mikrotik, brcm2708-bcm2710, mvebu-cortexa9] + target: [ar71xx-nand] runs-on: ubuntu-latest steps: - name: Checkout From fe8260a726723b7bf57576fe410a5c7fecc93012 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 18:28:26 +0100 Subject: [PATCH 16/28] Try --- .github/workflows/firmware.yml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 011b35f1..c4e868cb 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -5,13 +5,15 @@ on: create: tags: - v* + env: + targets: [ar71xx-nand] jobs: build_firmware: strategy: fail-fast: false matrix: - target: [ar71xx-nand] + target: ${{ env.targets }} runs-on: ubuntu-latest steps: - name: Checkout @@ -41,9 +43,14 @@ jobs: with: name: ${{ matrix.target }}_output path: ./output + create_release: + runs-on: ubuntu-latest + steps: - name: Create Release id: create_release uses: actions/create-release@v1 + outputs: + output1: ${{ steps.create_release.outputs.test }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -51,13 +58,20 @@ jobs: release_name: Release ${{ github.ref }} draft: false prerelease: false + upload_release: + strategy: + fail-fast: false + matrix: + target: ${{ env.targets }} + runs-on: ubuntu-latest + steps: - name: Upload Release Asset id: upload-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - upload_url: ${{ steps.create_release.outputs.upload_url }} + upload_url: ${{ job.create_release.outputs.output1 }} asset_path: ./${{ matrix.target }}_output.zip asset_name: ${{ matrix.target }}_output.zip asset_content_type: application/zip From fdb729fa51bad32d17a40b64d1e8600a3fa7b5d9 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 18:31:14 +0100 Subject: [PATCH 17/28] Try --- .github/workflows/firmware.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index c4e868cb..e2b388c8 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -5,8 +5,9 @@ on: create: tags: - v* - env: - targets: [ar71xx-nand] + +env: + targets: [ar71xx-nand] jobs: build_firmware: From 171cd6637332668441d76a3a1e57e3f0c9dd7fee Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 18:33:05 +0100 Subject: [PATCH 18/28] Try --- .github/workflows/firmware.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index e2b388c8..83a76226 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - target: ${{ env.targets }} + target: ${{ targets }} runs-on: ubuntu-latest steps: - name: Checkout From b2ef268efd11b04e967d79eb64ad323b47b9b51b Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 18:36:38 +0100 Subject: [PATCH 19/28] Try --- .github/workflows/firmware.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 83a76226..b6d63f26 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -6,15 +6,12 @@ on: tags: - v* -env: - targets: [ar71xx-nand] - jobs: build_firmware: strategy: fail-fast: false matrix: - target: ${{ targets }} + target: [ar71xx-nand] runs-on: ubuntu-latest steps: - name: Checkout @@ -63,7 +60,7 @@ jobs: strategy: fail-fast: false matrix: - target: ${{ env.targets }} + target: [ar71xx-nand] runs-on: ubuntu-latest steps: - name: Upload Release Asset From 61f2dfd710327e54a7f9f4cc8fe19adbfda54747 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 18:38:07 +0100 Subject: [PATCH 20/28] Try --- .github/workflows/firmware.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index b6d63f26..f88827c5 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -41,14 +41,15 @@ jobs: with: name: ${{ matrix.target }}_output path: ./output + create_release: runs-on: ubuntu-latest + outputs: + output1: ${{ steps.create_release.outputs.test }} steps: - name: Create Release id: create_release uses: actions/create-release@v1 - outputs: - output1: ${{ steps.create_release.outputs.test }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -56,6 +57,7 @@ jobs: release_name: Release ${{ github.ref }} draft: false prerelease: false + upload_release: strategy: fail-fast: false From e22f8581148a1195f94c4eb4f68b6e2b410b3bf2 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 18:39:57 +0100 Subject: [PATCH 21/28] Try --- .github/workflows/firmware.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index f88827c5..d548649b 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -44,6 +44,7 @@ jobs: create_release: runs-on: ubuntu-latest + needs: build_firmware outputs: output1: ${{ steps.create_release.outputs.test }} steps: @@ -64,6 +65,7 @@ jobs: matrix: target: [ar71xx-nand] runs-on: ubuntu-latest + needs: create_release steps: - name: Upload Release Asset id: upload-release-asset From e33968efbaaa1abd3d8f5b8922a624c6ff41b6a6 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 19:24:06 +0100 Subject: [PATCH 22/28] Try --- .github/workflows/firmware.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index d548649b..81e22770 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -67,7 +67,12 @@ jobs: runs-on: ubuntu-latest needs: create_release steps: - - name: Upload Release Asset + - name: Download Artifact ${{ matrix.target }} + uses: actions/download-artifact@v2 + with: + name: ${{ matrix.target }}_output + path: ${{ matrix.target }}_output + - name: Upload Release Asset ${{ matrix.target }} id: upload-release-asset uses: actions/upload-release-asset@v1 env: From 01a18d75dfc00ded84380eafb47f4f4f3229d801 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 20:38:50 +0100 Subject: [PATCH 23/28] Try --- .github/workflows/firmware.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 81e22770..a7792005 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -78,7 +78,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - upload_url: ${{ job.create_release.outputs.output1 }} + upload_url: ${{ needs.create_release.outputs.output1 }} asset_path: ./${{ matrix.target }}_output.zip asset_name: ${{ matrix.target }}_output.zip asset_content_type: application/zip From 17513b516c93297b9c28b12829c987266d3d9078 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Tue, 29 Dec 2020 23:56:10 +0100 Subject: [PATCH 24/28] Try --- .github/workflows/firmware.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index a7792005..4ff7fc37 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -46,7 +46,7 @@ jobs: runs-on: ubuntu-latest needs: build_firmware outputs: - output1: ${{ steps.create_release.outputs.test }} + output1: ${{ steps.create_release.outputs.upload_url }} steps: - name: Create Release id: create_release From 5327495bbf04f5406155413b562b000c164425ec Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Wed, 30 Dec 2020 10:13:23 +0100 Subject: [PATCH 25/28] Try --- .github/workflows/firmware.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 4ff7fc37..fb325c93 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -33,7 +33,7 @@ jobs: id: compile run: | git checkout -b patched && git checkout ${{ steps.extract_branch.outputs.branch }} - make BROKEN=1 GLUON_TARGETS=${{ matrix.target }} GLUON_RELEASE=${{ steps.vars.outputs.tag }} V=s + mkdir output && touch output/file1 && touch output/file2 echo "::set-output name=status::success" - name: Upload firmware ${{ matrix.target }} uses: actions/upload-artifact@master @@ -79,6 +79,6 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create_release.outputs.output1 }} - asset_path: ./${{ matrix.target }}_output.zip + asset_path: ./${{ matrix.target }}_output asset_name: ${{ matrix.target }}_output.zip asset_content_type: application/zip From 07955df2bc0c98999188a38f3d7fe544dd1845e1 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Wed, 30 Dec 2020 10:22:16 +0100 Subject: [PATCH 26/28] Try --- .github/workflows/firmware.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index fb325c93..97cf16d3 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -72,6 +72,8 @@ jobs: with: name: ${{ matrix.target }}_output path: ${{ matrix.target }}_output + - name: Create ${{ matrix.target }}_output.tar.gz + run: tar zcvf ${{ matrix.target }}_output.tar.gz ${{ matrix.target }}_output - name: Upload Release Asset ${{ matrix.target }} id: upload-release-asset uses: actions/upload-release-asset@v1 @@ -79,6 +81,6 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create_release.outputs.output1 }} - asset_path: ./${{ matrix.target }}_output - asset_name: ${{ matrix.target }}_output.zip - asset_content_type: application/zip + asset_path: ./${{ matrix.target }}_output.tar.gz + asset_name: ${{ matrix.target }}_output.tar.gz + asset_content_type: application/gzip From fb36adf00ec13b69c71565c688264e5b0b27ada2 Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Wed, 30 Dec 2020 10:26:45 +0100 Subject: [PATCH 27/28] Try --- .github/workflows/firmware.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/firmware.yml b/.github/workflows/firmware.yml index 97cf16d3..6bd392b3 100644 --- a/.github/workflows/firmware.yml +++ b/.github/workflows/firmware.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - target: [ar71xx-nand] + target: [ar71xx-generic, ar71xx-tiny, ar71xx-nand, ath79-generic, brcm2708-bcm2708, brcm2708-bcm2709, ipq40xx-generic, ipq806x-generic, lantiq-xrx200, lantiq-xway, mpc85xx-generic, mpc85xx-p1020, ramips-mt7620, ramips-mt7621, ramips-mt76x8, ramips-rt305x, sunxi-cortexa7, x86-generic, x86-geode, x86-legacy, x86-64, ar71xx-mikrotik, brcm2708-bcm2710, mvebu-cortexa9] runs-on: ubuntu-latest steps: - name: Checkout @@ -33,7 +33,7 @@ jobs: id: compile run: | git checkout -b patched && git checkout ${{ steps.extract_branch.outputs.branch }} - mkdir output && touch output/file1 && touch output/file2 + make BROKEN=1 GLUON_TARGETS=${{ matrix.target }} GLUON_RELEASE=${{ steps.vars.outputs.tag }} V=s echo "::set-output name=status::success" - name: Upload firmware ${{ matrix.target }} uses: actions/upload-artifact@master @@ -63,7 +63,7 @@ jobs: strategy: fail-fast: false matrix: - target: [ar71xx-nand] + target: [ar71xx-generic, ar71xx-tiny, ar71xx-nand, ath79-generic, brcm2708-bcm2708, brcm2708-bcm2709, ipq40xx-generic, ipq806x-generic, lantiq-xrx200, lantiq-xway, mpc85xx-generic, mpc85xx-p1020, ramips-mt7620, ramips-mt7621, ramips-mt76x8, ramips-rt305x, sunxi-cortexa7, x86-generic, x86-geode, x86-legacy, x86-64, ar71xx-mikrotik, brcm2708-bcm2710, mvebu-cortexa9] runs-on: ubuntu-latest needs: create_release steps: From 63009a3a9958b844ec2f700f8b91a0511ffcc57c Mon Sep 17 00:00:00 2001 From: Annika Wickert Date: Wed, 30 Dec 2020 11:45:40 +0100 Subject: [PATCH 28/28] Remove dlink from build --- patches/remove-dlink.patch | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 patches/remove-dlink.patch diff --git a/patches/remove-dlink.patch b/patches/remove-dlink.patch new file mode 100644 index 00000000..a79ccf6a --- /dev/null +++ b/patches/remove-dlink.patch @@ -0,0 +1,18 @@ +diff --git a/targets/ar71xx-tiny b/targets/ar71xx-tiny +index a0a8d510..160ac8a4 100644 +--- a/targets/ar71xx-tiny ++++ b/targets/ar71xx-tiny +@@ -16,13 +16,6 @@ defaults { + } + + +--- D-Link +- +-device('d-link-dir-615-rev-c1', 'dir-615-c1', { +- profile = 'DIR615C1', +-}) +- +- + -- TP-Link + + local tplink_region_suffix = ''