Compare commits

..

No commits in common. 'master' and 'master' have entirely different histories.

@ -1,45 +0,0 @@
clone:
git:
image: woodpeckerci/plugin-git
settings:
tags: true
pipeline:
buildall-layer3:
image: openwrtorg/imagebuilder
commands:
- export HOME=/home/build/openwrt
- sudo chown -R build:build .
- git config --global user.email "ci@fff.community"
- git config --global user.name "FFF CI"
- ./buildscript selectvariant layer3
- ./buildscript selectbsp bsp/ath79-generic.bsp
- ./buildscript prepare
- ./buildscript buildall
buildall-node:
image: openwrtorg/imagebuilder
commands:
- export HOME=/home/build/openwrt
- sudo chown -R build:build .
- git config --global user.email "ci@fff.community"
- git config --global user.name "FFF CI"
- ./buildscript selectvariant node
- ./buildscript selectbsp bsp/ath79-generic.bsp
- ./buildscript prepare
- ./buildscript buildall
distribute:
image: alpine/git
volumes:
- /var/lib/woodpecker/artifacts:/var/run/artifacts
commands:
- rm -rf /var/run/artifacts/$(git describe --tags)
- mkdir -p /var/run/artifacts/$(git describe --tags)
- cp -r bin/* /var/run/artifacts/$(git describe --tags)/
- echo
- echo
- echo "You can download the built firmware images here:"
- echo "https://ci.fff.community/artifacts/$(git describe --tags)"
branches: [ master ]

@ -14,11 +14,19 @@ images=("openwrt-${chipset}-${subtarget}-glinet_gl-ar150-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wdr3600-v1-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wdr4300-v1-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wdr4310-v1-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr1043nd-v1-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr1043nd-v2-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr1043nd-v3-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr1043nd-v4-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr1043n-v5-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr710n-v1-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr842n-v2-squashfs-*"
"openwrt-${chipset}-${subtarget}-ubnt_bullet-m-ar7240-squashfs-*"
"openwrt-${chipset}-${subtarget}-ubnt_bullet-m-ar7241-squashfs-*"
"openwrt-${chipset}-${subtarget}-ubnt_nanostation-loco-m-squashfs-*"
"openwrt-${chipset}-${subtarget}-ubnt_nanostation-loco-m-xw-squashfs-*"
"openwrt-${chipset}-${subtarget}-ubnt_nanostation-m-squashfs-*"
"openwrt-${chipset}-${subtarget}-ubnt_picostation-m-squashfs-*"
"openwrt-${chipset}-${subtarget}-ubnt_unifi-squashfs-*"
"openwrt-${chipset}-${subtarget}-ubnt_unifiac-mesh-squashfs-*"
)

@ -7,11 +7,11 @@ CONFIG_TARGET_MULTI_PROFILE=y
CONFIG_TARGET_DEVICE_ath79_generic_DEVICE_glinet_gl-ar150=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_generic_DEVICE_glinet_gl-ar150=""
CONFIG_TARGET_DEVICE_ath79_generic_DEVICE_tplink_archer-c25-v1=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_generic_DEVICE_tplink_archer-c25-v1="-kmod-ath10k-ct-smallbuffers kmod-ath10k-smallbuffers -ath10k-firmware-qca9887-ct ath10k-firmware-qca9887"
CONFIG_TARGET_DEVICE_PACKAGES_ath79_generic_DEVICE_tplink_archer-c25-v1="-kmod-ath10k-ct-smallbuffers kmod-ath10k -ath10k-firmware-qca9887-ct ath10k-firmware-qca9887"
CONFIG_TARGET_DEVICE_ath79_generic_DEVICE_tplink_archer-c60-v1=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_generic_DEVICE_tplink_archer-c60-v1="-kmod-ath10k-ct-smallbuffers kmod-ath10k-smallbuffers -ath10k-firmware-qca9888-ct ath10k-firmware-qca9888"
CONFIG_TARGET_DEVICE_PACKAGES_ath79_generic_DEVICE_tplink_archer-c60-v1="-kmod-ath10k-ct-smallbuffers kmod-ath10k -ath10k-firmware-qca9888-ct ath10k-firmware-qca9888"
CONFIG_TARGET_DEVICE_ath79_generic_DEVICE_tplink_archer-c60-v2=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_generic_DEVICE_tplink_archer-c60-v2="-kmod-ath10k-ct-smallbuffers kmod-ath10k-smallbuffers -ath10k-firmware-qca9888-ct ath10k-firmware-qca9888"
CONFIG_TARGET_DEVICE_PACKAGES_ath79_generic_DEVICE_tplink_archer-c60-v2="-kmod-ath10k-ct-smallbuffers kmod-ath10k -ath10k-firmware-qca9888-ct ath10k-firmware-qca9888"
CONFIG_TARGET_DEVICE_ath79_generic_DEVICE_tplink_archer-c7-v2=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_generic_DEVICE_tplink_archer-c7-v2="-kmod-ath10k-ct kmod-ath10k -ath10k-firmware-qca988x-ct ath10k-firmware-qca988x"
CONFIG_TARGET_DEVICE_ath79_generic_DEVICE_tplink_archer-c7-v5=y
@ -88,7 +88,6 @@ CONFIG_PACKAGE_wpad-mini=m
CONFIG_PACKAGE_ath10k-firmware-qca9887=m
CONFIG_PACKAGE_ath10k-firmware-qca9888=m
CONFIG_PACKAGE_ath10k-firmware-qca988x=m
CONFIG_PACKAGE_kmod-ath10k-smallbuffers=m
CONFIG_PACKAGE_kmod-ath10k=m
CONFIG_PACKAGE_ath10k-firmware-qca9887-ct=m
CONFIG_PACKAGE_ath10k-firmware-qca9888-ct=m

@ -0,0 +1,16 @@
chipset=ath79
subtarget=tiny
images=("openwrt-${chipset}-${subtarget}-tplink_tl-mr3020-v1-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wa850re-v1-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wa860re-v1-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wa901nd-v2-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr740n-v4-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr741-v1-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr741nd-v4-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr841-v7-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr841-v8-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr841-v9-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr841-v10-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr841-v11-squashfs-*"
"openwrt-${chipset}-${subtarget}-tplink_tl-wr841-v12-squashfs-*"
)

@ -0,0 +1,56 @@
# Generated using "./buildscript config openwrt".
# Do no edit manually
#
CONFIG_TARGET_ath79=y
CONFIG_TARGET_ath79_tiny=y
CONFIG_TARGET_MULTI_PROFILE=y
CONFIG_TARGET_DEVICE_ath79_tiny_DEVICE_tplink_tl-mr3020-v1=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_tiny_DEVICE_tplink_tl-mr3020-v1="-uboot-envtools -kmod-usb-core -kmod-usb-chipidea2 -kmod-usb-ledtrig-usbport"
CONFIG_TARGET_DEVICE_ath79_tiny_DEVICE_tplink_tl-wa850re-v1=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_tiny_DEVICE_tplink_tl-wa850re-v1="-uboot-envtools -rssileds"
CONFIG_TARGET_DEVICE_ath79_tiny_DEVICE_tplink_tl-wa860re-v1=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_tiny_DEVICE_tplink_tl-wa860re-v1="-uboot-envtools"
CONFIG_TARGET_DEVICE_ath79_tiny_DEVICE_tplink_tl-wa901nd-v2=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_tiny_DEVICE_tplink_tl-wa901nd-v2="-uboot-envtools"
CONFIG_TARGET_DEVICE_ath79_tiny_DEVICE_tplink_tl-wr740n-v4=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_tiny_DEVICE_tplink_tl-wr740n-v4="-uboot-envtools"
CONFIG_TARGET_DEVICE_ath79_tiny_DEVICE_tplink_tl-wr741-v1=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_tiny_DEVICE_tplink_tl-wr741-v1="-uboot-envtools"
CONFIG_TARGET_DEVICE_ath79_tiny_DEVICE_tplink_tl-wr741nd-v4=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_tiny_DEVICE_tplink_tl-wr741nd-v4="-uboot-envtools"
CONFIG_TARGET_DEVICE_ath79_tiny_DEVICE_tplink_tl-wr841-v7=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_tiny_DEVICE_tplink_tl-wr841-v7="-uboot-envtools"
CONFIG_TARGET_DEVICE_ath79_tiny_DEVICE_tplink_tl-wr841-v8=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_tiny_DEVICE_tplink_tl-wr841-v8="-uboot-envtools"
CONFIG_TARGET_DEVICE_ath79_tiny_DEVICE_tplink_tl-wr841-v9=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_tiny_DEVICE_tplink_tl-wr841-v9="-uboot-envtools"
CONFIG_TARGET_DEVICE_ath79_tiny_DEVICE_tplink_tl-wr841-v10=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_tiny_DEVICE_tplink_tl-wr841-v10="-uboot-envtools"
CONFIG_TARGET_DEVICE_ath79_tiny_DEVICE_tplink_tl-wr841-v11=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_tiny_DEVICE_tplink_tl-wr841-v11="-uboot-envtools"
CONFIG_TARGET_DEVICE_ath79_tiny_DEVICE_tplink_tl-wr841-v12=y
CONFIG_TARGET_DEVICE_PACKAGES_ath79_tiny_DEVICE_tplink_tl-wr841-v12="-uboot-envtools"
CONFIG_BUSYBOX_CUSTOM=y
CONFIG_TARGET_PER_DEVICE_ROOTFS=y
# CONFIG_BUSYBOX_CONFIG_BRCTL is not set
# CONFIG_BUSYBOX_CONFIG_CROND is not set
# CONFIG_BUSYBOX_CONFIG_CRONTAB is not set
# CONFIG_BUSYBOX_CONFIG_FEATURE_FAST_TOP is not set
# CONFIG_BUSYBOX_CONFIG_FEATURE_NTPD_SERVER is not set
CONFIG_CLEAN_IPKG=y
# CONFIG_DROPBEAR_CURVE25519 is not set
# CONFIG_FASTD_ENABLE_CIPHER_SALSA2012 is not set
# CONFIG_FASTD_ENABLE_MAC_GHASH is not set
# CONFIG_FASTD_ENABLE_MAC_UHASH is not set
# CONFIG_FASTD_ENABLE_METHOD_COMPOSED_GMAC is not set
# CONFIG_FASTD_ENABLE_METHOD_COMPOSED_UMAC is not set
# CONFIG_FASTD_ENABLE_METHOD_GENERIC_GMAC is not set
# CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC is not set
CONFIG_KERNEL_SQUASHFS_FRAGMENT_CACHE_SIZE=1
# CONFIG_PACKAGE_ALFRED_VIS is not set
CONFIG_PACKAGE_hostapd-mini=y
CONFIG_PACKAGE_iwinfo=m
CONFIG_PACKAGE_libiwinfo=m
CONFIG_PACKAGE_opkg=m
CONFIG_PACKAGE_wpad-mini=m
CONFIG_STRIP_KERNEL_EXPORTS=y

@ -1,5 +1,4 @@
chipset=octeon
subtarget=generic
images=(
"openwrt-${chipset}-ubnt_edgerouter-4-*"

@ -1,4 +0,0 @@
chipset=x86
subtarget=64
images=("openwrt-${chipset}-${subtarget}-generic-squashfs-combined-*"
)

@ -1,19 +0,0 @@
# Generated using "./buildscript config openwrt".
# Do no edit manually
#
CONFIG_TARGET_x86=y
CONFIG_TARGET_x86_64=y
CONFIG_TARGET_x86_64_DEVICE_generic=y
# CONFIG_TARGET_ROOTFS_EXT4FS is not set
CONFIG_BUSYBOX_CUSTOM=y
CONFIG_TARGET_PER_DEVICE_ROOTFS=y
# CONFIG_BUSYBOX_CONFIG_BRCTL is not set
# CONFIG_BUSYBOX_CONFIG_CROND is not set
# CONFIG_BUSYBOX_CONFIG_CRONTAB is not set
# CONFIG_BUSYBOX_CONFIG_FEATURE_FAST_TOP is not set
# CONFIG_BUSYBOX_CONFIG_FEATURE_NTPD_SERVER is not set
CONFIG_CLEAN_IPKG=y
# CONFIG_PACKAGE_ALFRED_VIS is not set
CONFIG_PACKAGE_kmod-vmxnet3=y
CONFIG_PACKAGE_opkg=m
CONFIG_STRIP_KERNEL_EXPORTS=y

@ -0,0 +1,72 @@
From: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Date: Wed, 10 Feb 2021 22:53:00 +0100
Subject: mac80211: add back ath10k_pci memory hacks
These hacks have been removed in commit 1e27befe63ff ("mac80211: remove
ath10k_pci memory hacks").
However, since we still use mainline ath10k, we will need them.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
diff --git a/package/kernel/mac80211/patches/ath/960-ath10k-limit-htt-rx-ring-size.patch b/package/kernel/mac80211/patches/ath/960-ath10k-limit-htt-rx-ring-size.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e907c7ab73677a3db928ef3620d77bf22a4d752a
--- /dev/null
+++ b/package/kernel/mac80211/patches/ath/960-ath10k-limit-htt-rx-ring-size.patch
@@ -0,0 +1,11 @@
+--- a/drivers/net/wireless/ath/ath10k/htt.h
++++ b/drivers/net/wireless/ath/ath10k/htt.h
+@@ -236,7 +236,7 @@ enum htt_rx_ring_flags {
+ };
+
+ #define HTT_RX_RING_SIZE_MIN 128
+-#define HTT_RX_RING_SIZE_MAX 2048
++#define HTT_RX_RING_SIZE_MAX 512
+ #define HTT_RX_RING_SIZE HTT_RX_RING_SIZE_MAX
+ #define HTT_RX_RING_FILL_LEVEL (((HTT_RX_RING_SIZE) / 2) - 1)
+ #define HTT_RX_RING_FILL_LEVEL_DUAL_MAC (HTT_RX_RING_SIZE - 1)
diff --git a/package/kernel/mac80211/patches/ath/961-ath10k-limit-pci-buffer-size.patch b/package/kernel/mac80211/patches/ath/961-ath10k-limit-pci-buffer-size.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b5e5c3a9bb00a407096936ece1916e331e0164f5
--- /dev/null
+++ b/package/kernel/mac80211/patches/ath/961-ath10k-limit-pci-buffer-size.patch
@@ -0,0 +1,38 @@
+--- a/drivers/net/wireless/ath/ath10k/pci.c
++++ b/drivers/net/wireless/ath/ath10k/pci.c
+@@ -131,7 +131,7 @@ static const struct ce_attr pci_host_ce_
+ .flags = CE_ATTR_FLAGS,
+ .src_nentries = 0,
+ .src_sz_max = 2048,
+- .dest_nentries = 512,
++ .dest_nentries = 128,
+ .recv_cb = ath10k_pci_htt_htc_rx_cb,
+ },
+
+@@ -140,7 +140,7 @@ static const struct ce_attr pci_host_ce_
+ .flags = CE_ATTR_FLAGS,
+ .src_nentries = 0,
+ .src_sz_max = 2048,
+- .dest_nentries = 128,
++ .dest_nentries = 64,
+ .recv_cb = ath10k_pci_htc_rx_cb,
+ },
+
+@@ -167,7 +167,7 @@ static const struct ce_attr pci_host_ce_
+ .flags = CE_ATTR_FLAGS,
+ .src_nentries = 0,
+ .src_sz_max = 512,
+- .dest_nentries = 512,
++ .dest_nentries = 128,
+ .recv_cb = ath10k_pci_htt_rx_cb,
+ },
+
+@@ -192,7 +192,7 @@ static const struct ce_attr pci_host_ce_
+ .flags = CE_ATTR_FLAGS,
+ .src_nentries = 0,
+ .src_sz_max = 2048,
+- .dest_nentries = 128,
++ .dest_nentries = 96,
+ .recv_cb = ath10k_pci_pktlog_rx_cb,
+ },
+

@ -1,106 +0,0 @@
From 3b63209f03007e755c4a076d0a81a60fdf15dcd0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Bl=C3=A4se?= <fabian@blaese.de>
Date: Wed, 16 Nov 2022 11:41:32 +0100
Subject: [PATCH] generic: add support for EON EN25QX128A spi nor flash
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add support for EON EN25QX128A spi nor flash with no flags as it does
support SFDP parsing.
Fixes: #9442
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Tested-by: Szabolcs Hubai <szab.hu@gmail.com> [ramips/mt7621: xiaomi_mi-router-4a-gigabit]
[fabian@blaese.de: Backport to Kernel 5.4]
Signed-off-by: Fabian Bläse <fabian@blaese.de>
---
.../477-mtd-spi-nor-add-eon-en25qx128a.patch | 21 +++++++++++++++++++
.../477-mtd-spi-nor-add-eon-en25qx128a.patch | 21 +++++++++++++++++++
.../477-mtd-spi-nor-add-eon-en25qx128a.patch | 21 +++++++++++++++++++
3 files changed, 63 insertions(+)
create mode 100644 target/linux/generic/pending-5.10/477-mtd-spi-nor-add-eon-en25qx128a.patch
create mode 100644 target/linux/generic/pending-5.15/477-mtd-spi-nor-add-eon-en25qx128a.patch
create mode 100644 target/linux/generic/pending-5.4/477-mtd-spi-nor-add-eon-en25qx128a.patch
diff --git a/target/linux/generic/pending-5.10/477-mtd-spi-nor-add-eon-en25qx128a.patch b/target/linux/generic/pending-5.10/477-mtd-spi-nor-add-eon-en25qx128a.patch
new file mode 100644
index 0000000000..0a681d6753
--- /dev/null
+++ b/target/linux/generic/pending-5.10/477-mtd-spi-nor-add-eon-en25qx128a.patch
@@ -0,0 +1,21 @@
+From: Christian Marangi <ansuelsmth@gmail.com>
+Subject: kernel/mtd: add support for EON EN25QX128A
+
+Add support for EON EN25QX128A with no flags as it does
+support SFDP parsing.
+
+Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
+---
+ drivers/mtd/spi-nor/spi-nor.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/mtd/spi-nor/eon.c
++++ b/drivers/mtd/spi-nor/eon.c
+@@ -15,6 +15,7 @@ static const struct flash_info eon_parts
+ { "en25q64", INFO(0x1c3017, 0, 64 * 1024, 128, SECT_4K) },
+ { "en25q128", INFO(0x1c3018, 0, 64 * 1024, 256,
+ SECT_4K | SPI_NOR_DUAL_READ) },
++ { "en25qx128a", INFO(0x1c7118, 0, 64 * 1024, 256, 0) },
+ { "en25q80a", INFO(0x1c3014, 0, 64 * 1024, 16,
+ SECT_4K | SPI_NOR_DUAL_READ) },
+ { "en25qh16", INFO(0x1c7015, 0, 64 * 1024, 32,
diff --git a/target/linux/generic/pending-5.15/477-mtd-spi-nor-add-eon-en25qx128a.patch b/target/linux/generic/pending-5.15/477-mtd-spi-nor-add-eon-en25qx128a.patch
new file mode 100644
index 0000000000..0a681d6753
--- /dev/null
+++ b/target/linux/generic/pending-5.15/477-mtd-spi-nor-add-eon-en25qx128a.patch
@@ -0,0 +1,21 @@
+From: Christian Marangi <ansuelsmth@gmail.com>
+Subject: kernel/mtd: add support for EON EN25QX128A
+
+Add support for EON EN25QX128A with no flags as it does
+support SFDP parsing.
+
+Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
+---
+ drivers/mtd/spi-nor/spi-nor.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/mtd/spi-nor/eon.c
++++ b/drivers/mtd/spi-nor/eon.c
+@@ -15,6 +15,7 @@ static const struct flash_info eon_parts
+ { "en25q64", INFO(0x1c3017, 0, 64 * 1024, 128, SECT_4K) },
+ { "en25q128", INFO(0x1c3018, 0, 64 * 1024, 256,
+ SECT_4K | SPI_NOR_DUAL_READ) },
++ { "en25qx128a", INFO(0x1c7118, 0, 64 * 1024, 256, 0) },
+ { "en25q80a", INFO(0x1c3014, 0, 64 * 1024, 16,
+ SECT_4K | SPI_NOR_DUAL_READ) },
+ { "en25qh16", INFO(0x1c7015, 0, 64 * 1024, 32,
diff --git a/target/linux/generic/pending-5.4/477-mtd-spi-nor-add-eon-en25qx128a.patch b/target/linux/generic/pending-5.4/477-mtd-spi-nor-add-eon-en25qx128a.patch
new file mode 100644
index 0000000000..0a681d6753
--- /dev/null
+++ b/target/linux/generic/pending-5.4/477-mtd-spi-nor-add-eon-en25qx128a.patch
@@ -0,0 +1,18 @@
+From: Fabian Bläse <fabian@blaese.de>
+Subject: kernel/mtd: add support for EON EN25QX128A
+
+Signed-off-by: Fabian Bläse <fabian@blaese.de>
+---
+ drivers/mtd/spi-nor/spi-nor.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/mtd/spi-nor/spi-nor.c
++++ b/drivers/mtd/spi-nor/spi-nor.c
+@@ -2240,8 +2240,9 @@ static const struct flash_info spi_nor_i
+ { "en25p64", INFO(0x1c2017, 0, 64 * 1024, 128, 0) },
+ { "en25q64", INFO(0x1c3017, 0, 64 * 1024, 128, SECT_4K) },
+ { "en25q128", INFO(0x1c3018, 0, 64 * 1024, 256, SECT_4K) },
++ { "en25qx128a", INFO(0x1c7118, 0, 64 * 1024, 256, 0) },
+ { "en25q80a", INFO(0x1c3014, 0, 64 * 1024, 16,
+ SECT_4K | SPI_NOR_DUAL_READ) },
+ { "en25qh32", INFO(0x1c7016, 0, 64 * 1024, 64, 0) },
--
2.38.1

@ -38,20 +38,20 @@ index ac11655904..147e159ea1 100755
;;
avm,fritzbox-7530 |\
diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network
index 87c79db5e1..666be0d145 100755
index 1d4c78833a..ea2cc60186 100755
--- a/target/linux/ipq40xx/base-files/etc/board.d/02_network
+++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network
@@ -58,9 +58,8 @@ ipq40xx_setup_interfaces()
avm,fritzbox-4040|\
@@ -59,9 +59,8 @@ ipq40xx_setup_interfaces()
linksys,ea6350v3|\
linksys,ea8300)
linksys,ea8300|\
linksys,mr8300)
- ucidef_set_interfaces_lan_wan "eth0" "eth1"
ucidef_add_switch "switch0" \
- "0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
+ "0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
;;
linksys,mr8300)
ucidef_set_interfaces_lan_wan "eth0" "eth1"
avm,fritzbox-7530)
ucidef_add_switch "switch0" \
diff --git a/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma.h b/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma.h
index 015e5f5026..daa60639d1 100644
--- a/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma.h
@ -80,10 +80,10 @@ index 015e5f5026..daa60639d1 100644
/* Queues exposed to linux kernel */
#define EDMA_NETDEV_TX_QUEUE 4
diff --git a/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c b/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c
index 545e3985ae..28453c2363 100644
index c35ba2799f..0517e4f29e 100644
--- a/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c
+++ b/target/linux/ipq40xx/files/drivers/net/phy/ar40xx.c
@@ -1483,6 +1483,7 @@ ar40xx_vlan_init(struct ar40xx_priv *priv)
@@ -1481,6 +1481,7 @@ ar40xx_vlan_init(struct ar40xx_priv *priv)
unsigned long bmp;
/* By default Enable VLAN */
@ -91,7 +91,7 @@ index 545e3985ae..28453c2363 100644
priv->vlan = 1;
priv->vlan_table[AR40XX_LAN_VLAN] = priv->cpu_bmp | priv->lan_bmp;
priv->vlan_table[AR40XX_WAN_VLAN] = priv->cpu_bmp | priv->wan_bmp;
@@ -1494,6 +1495,7 @@ ar40xx_vlan_init(struct ar40xx_priv *priv)
@@ -1492,6 +1493,7 @@ ar40xx_vlan_init(struct ar40xx_priv *priv)
bmp = priv->wan_bmp;
for_each_set_bit(port, &bmp, AR40XX_NUM_PORTS)
priv->pvid[port] = AR40XX_WAN_VLAN;
@ -100,7 +100,7 @@ index 545e3985ae..28453c2363 100644
return 0;
}
diff --git a/target/linux/ipq40xx/patches-5.4/711-dts-ipq4019-add-ethernet-essedma-node.patch b/target/linux/ipq40xx/patches-5.4/711-dts-ipq4019-add-ethernet-essedma-node.patch
index 3567eb7810..b13b312a91 100644
index 7b2ddfe00d..1a01b08e41 100644
--- a/target/linux/ipq40xx/patches-5.4/711-dts-ipq4019-add-ethernet-essedma-node.patch
+++ b/target/linux/ipq40xx/patches-5.4/711-dts-ipq4019-add-ethernet-essedma-node.patch
@@ -36,7 +36,7 @@ Signed-off-by: Christian Lamparter <chunkeey@gmail.com>

@ -1,32 +0,0 @@
From f53b71d2907eeb0d80e79d99fa7b756b5e5bf32b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Bl=C3=A4se?= <fabian@blaese.de>
Date: Thu, 24 Feb 2022 00:04:47 +0100
Subject: [PATCH] Add hack which fixes forwarding on a stacked bridge
configuration using DSA
---
.../hack-5.4/999-fix-stacked-bridge-forwarding.patch | 12 ++++++++++++
1 file changed, 12 insertions(+)
create mode 100644 target/linux/generic/hack-5.4/999-fix-stacked-bridge-forwarding.patch
diff --git a/target/linux/generic/hack-5.4/999-fix-stacked-bridge-forwarding.patch b/target/linux/generic/hack-5.4/999-fix-stacked-bridge-forwarding.patch
new file mode 100644
index 0000000000..e1d4cb9cd5
--- /dev/null
+++ b/target/linux/generic/hack-5.4/999-fix-stacked-bridge-forwarding.patch
@@ -0,0 +1,12 @@
+--- a/net/bridge/br_input.c
++++ b/net/bridge/br_input.c
+@@ -52,6 +52,9 @@ static int br_pass_frame_up(struct sk_bu
+ return NET_RX_DROP;
+ }
+
++ /* remove offload flag, so upper bridges do not drop the packet */
++ br_switchdev_frame_unmark(skb);
++
+ indev = skb->dev;
+ skb->dev = brdev;
+ skb = br_handle_vlan(br, NULL, vg, skb);
--
2.35.1

@ -1,158 +0,0 @@
From 7f4b4c29f3489697dca7495216460d0ed5023e02 Mon Sep 17 00:00:00 2001
From: Martin Kennedy <hurricos@gmail.com>
Date: Mon, 29 Aug 2022 20:47:24 -0400
Subject: [PATCH] mpc85xx: Drop pci aliases to avoid domain changes
As of upstream Linux commit 0fe1e96fef0a ("powerpc/pci: Prefer PCI
domain assignment via DT 'linux,pci-domain' and alias"), the PCIe
domain address is no longer numbered by the lowest 16 bits of the PCI
register address after a fallthrough. Instead of the fallthrough, the
enumeration process accepts the alias ID (as determined by
`of_alias_scan()`). This causes e.g.:
9000:00:00.0 PCI bridge: Freescale Semiconductor Inc P1020E (rev 11)
9000:01:00.0 Network controller: Qualcomm Atheros AR958x 802.11abgn ...
to become
0000:00:00.0 PCI bridge: Freescale Semiconductor Inc P1020E (rev 11)
0000:01:00.0 Network controller: Qualcomm Atheros AR958x 802.11abgn ...
... which then causes the sysfs path of the netdev to change,
invalidating the `wifi_device.path`s enumerated in
`/etc/config/wireless`.
One other solution might be to migrate the uci configuration, as was
done for mvebu in commit 0bd5aa89fcf2 ("mvebu: Migrate uci config to
new PCIe path"). However, there are concerns that the sysfs path will
change once again once some upstream patches[^2][^3] are merged and
backported (and `CONFIG_PPC_PCI_BUS_NUM_DOMAIN_DEPENDENT` is enabled).
Instead, remove the aliases and allow the fallthrough to continue for
now. We will provide a migration in a later release.
This was first reported as a Github issue[^1].
[^1]: https://github.com/openwrt/openwrt/issues/10530
[^2]: https://lore.kernel.org/linuxppc-dev/20220706104308.5390-1-pali@kernel.org/t/#u
[^3]: https://lore.kernel.org/linuxppc-dev/20220706101043.4867-1-pali@kernel.org/
Fixes: #10530
Tested-by: Martin Kennedy <hurricos@gmail.com>
[Tested on the Aerohive HiveAP 330 and Extreme Networks WS-AP3825i]
Signed-off-by: Martin Kennedy <hurricos@gmail.com>
---
.../files/arch/powerpc/boot/dts/hiveap-330.dts | 13 +++++++++++++
.../mpc85xx/files/arch/powerpc/boot/dts/panda.dts | 14 ++++++++++++++
.../files/arch/powerpc/boot/dts/red-15w-rev1.dts | 14 ++++++++++++++
.../files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts | 13 +++++++++++++
.../files/arch/powerpc/boot/dts/ws-ap3710i.dts | 13 +++++++++++++
6 files changed, 80 insertions(+)
diff --git a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/hiveap-330.dts b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/hiveap-330.dts
index ccf60eaeed0e1..d6a8da84ef66d 100644
--- a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/hiveap-330.dts
+++ b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/hiveap-330.dts
@@ -300,3 +300,16 @@
};
};
/include/ "fsl/p1020si-post.dtsi"
+
+/*
+ * For the OpenWrt 22.03 release, since Linux 5.10.138 now uses
+ * aliases to determine PCI domain numbers, drop aliases so as not to
+ * change the sysfs path of our wireless netdevs.
+ */
+
+/ {
+ aliases {
+ /delete-property/ pci0;
+ /delete-property/ pci1;
+ };
+};
diff --git a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/panda.dts b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/panda.dts
index baaa4a43fd559..9be822f7bb8ac 100644
--- a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/panda.dts
+++ b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/panda.dts
@@ -265,3 +265,17 @@
};
};
/include/ "fsl/p1020si-post.dtsi"
+
+/*
+ * For the OpenWrt 22.03 release, since Linux 5.10.138 now uses
+ * aliases to determine PCI domain numbers, drop aliases so as not to
+ * change the sysfs path of our wireless netdevs.
+ */
+
+/ {
+ aliases {
+ /delete-property/ pci0;
+ /delete-property/ pci1;
+ };
+};
+
diff --git a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/red-15w-rev1.dts b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/red-15w-rev1.dts
index 1fd6a4aa49713..db35602b94b5b 100644
--- a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/red-15w-rev1.dts
+++ b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/red-15w-rev1.dts
@@ -214,3 +214,17 @@
};
/include/ "fsl/p1010si-post.dtsi"
+
+/*
+ * For the OpenWrt 22.03 release, since Linux 5.10.138 now uses
+ * aliases to determine PCI domain numbers, drop aliases so as not to
+ * change the sysfs path of our wireless netdevs.
+ */
+
+/ {
+ aliases {
+ /delete-property/ pci0;
+ /delete-property/ pci1;
+ };
+};
+
diff --git a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts
index fbe1c0ee705d2..12281808aa5b6 100644
--- a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts
+++ b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts
@@ -302,3 +302,16 @@
/delete-node/ crypto@30000; /* Pulled in by p1010si-post */
};
};
+
+/*
+ * For the OpenWrt 22.03 release, since Linux 5.10.138 now uses
+ * aliases to determine PCI domain numbers, drop aliases so as not to
+ * change the sysfs path of our wireless netdevs.
+ */
+
+/ {
+ aliases {
+ /delete-property/ pci0;
+ /delete-property/ pci1;
+ };
+};
diff --git a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/ws-ap3710i.dts b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/ws-ap3710i.dts
index c5588d80275e2..5d81da4686413 100644
--- a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/ws-ap3710i.dts
+++ b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/ws-ap3710i.dts
@@ -173,3 +173,16 @@
};
/include/ "fsl/p1020si-post.dtsi"
+
+/*
+ * For the OpenWrt 22.03 release, since Linux 5.10.138 now uses
+ * aliases to determine PCI domain numbers, drop aliases so as not to
+ * change the sysfs path of our wireless netdevs.
+ */
+
+/ {
+ aliases {
+ /delete-property/ pci0;
+ /delete-property/ pci1;
+ };
+};

@ -7,15 +7,15 @@ set -o pipefail
builddir=./build
# OpenWrt: package hashes correspond to core repo version
OPENWRTREV="v21.02.5"
PACKAGEREV="0b16e3f359fe9d015861596d63c5bde4c56daa2e"
ROUTINGREV="25e76489c83cfcee61e36a491896e1e9bfc3ec13"
OPENWRTREV="v21.02.0"
PACKAGEREV="65057dcbb5de371503c9159de3d45824bec482e0"
ROUTINGREV="c30c9ffc93702365439a7647244a052531f2e957"
# Gluon packages: master from 2020-02-04
GLUONREV="12e41d0ff07ec54bbd67a31ab50d12ca04f2238c"
OPENWRT_PKGS="gpioctl-sysfs libugpio fastd haserl micrond mtr bmon"
ROUTING_PKGS="kmod-batman-adv batctl alfred babeld bird2"
ROUTING_PKGS="kmod-batman-adv batctl alfred babeld"
GLUON_PKGS="simple-tc uradvd"
FFF_VARIANTS="node layer3"
@ -126,9 +126,20 @@ prepare() {
patch_target
# apply variant to ensure the included file "variant.mk"
# exists in builddir.
apply_variant
update_feeds
}
apply_variant() {
# set the variant for this build
export FFF_VARIANT=$(cat selected_variant)
# force the reevaluation of this Makefile to make note of the new variant
touch ./src/packages/fff/fff/Makefile
}
update_feeds() {
## generate own feeds.conf
#this local variable should be globally configure variable used in get_source and here
@ -163,6 +174,8 @@ update_feeds() {
}
prebuild() {
apply_variant
#create filesdir for our config
/bin/rm -rf "$builddir"/files
mkdir "$builddir"/files
@ -180,9 +193,6 @@ prebuild() {
version="$variant-$version"
fi
# select variant packages
echo "CONFIG_PACKAGE_fff-${variant}=y" >> "$builddir"/.config
{
echo "FIRMWARE_VERSION=\"$version\""
echo "VARIANT=\"$variant\""
@ -208,19 +218,13 @@ build() {
case "$1" in
"debug")
if [ -n "$2" ]; then
make V=99 -j $2
else
make V=99
fi
make V=99
;;
"fast")
[ -n "$2" ] && threads=$2 || threads=$((cpus*2))
ionice -c 2 -- nice -n 1 -- make -j $threads
ionice -c 2 -- nice -n 1 -- make -j $((cpus*2))
;;
*)
[ -n "$2" ] && threads=$2 || threads=$((cpus+1))
ionice -c 3 -- nice -n 10 -- make -j $threads
ionice -c 3 -- nice -n 10 -- make -j $((cpus+1))
;;
esac
@ -286,13 +290,7 @@ cp_firmware() {
filename_build=${f##*/}
filename_build=${filename_build//openwrt/fff-${version}}
filename_build=${filename_build//squashfs-/}
# The x86 OpenWrt target does not have a device name,
# so keep the target and subtarget for identification.
if [ "$chipset" != "x86" ]; then
filename_build=${filename_build//${chipset}-/}
filename_build=${filename_build//${subtarget}-/}
fi
filename_build=${filename_build//${chipset}-${subtarget}-/}
cp "$f" "$imagedestpath/$filename_build"
done
done
@ -318,7 +316,8 @@ buildrelease() {
fi
cd bin/$variant
for binary in *.bin *.img *.img.gz *.tar; do
for binary in *.bin; do
md5sum "$binary" > ./"$binary".md5
sha256sum "$binary" > ./"$binary".sha256
done
echo -e "VERSION:$version" > release.nfo
@ -450,13 +449,13 @@ case "$1" in
"build")
if [ "$2" = "help" ] || [ "$2" = "x" ]; then
echo "This option compiles the firmware"
echo "Normally the build uses lower IO and System priorities, "
echo "Normaly the build uses lower IO and System priorities, "
echo "you can append \"fast\" option, to use normal user priorities"
echo
echo "Usage: $0 $1 [fast|debug] [numthreads]"
echo "Usage: $0 $1 [fast|debug]"
echo
else
build "$2" "$3"
build "$2"
fi
;;
"config")

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-alfred-monitoring-proxy
PKG_RELEASE:=$(COMMITCOUNT)
PKG_RELEASE:=5
include $(INCLUDE_DIR)/package.mk
@ -9,7 +9,7 @@ define Package/fff-alfred-monitoring-proxy
SECTION:=base
CATEGORY:=Freifunk
TITLE:=Freifunk-Franken Alfred-Monitoring-Proxy
URL:=https://www.freifunk-franken.de
URL:=https://www.freifunk-franken.de/
DEPENDS:=+curl +micrond +alfred-json +fff-alfred +fff-random
endef

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-alfred
PKG_RELEASE:=$(COMMITCOUNT)
PKG_RELEASE:=2
include $(INCLUDE_DIR)/package.mk
@ -9,7 +9,7 @@ define Package/$(PKG_NAME)
SECTION:=base
CATEGORY:=Freifunk
TITLE:=Freifunk-Franken Alfred
URL:=https://www.freifunk-franken.de
URL:=http://www.freifunk-franken.de
DEPENDS:=+alfred
endef

@ -1,29 +0,0 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-babel-bird2
PKG_RELEASE:=$(COMMITCOUNT)
include $(INCLUDE_DIR)/package.mk
define Package/fff-babel-bird2
SECTION:=base
CATEGORY:=Freifunk
TITLE:=Freifunk-Franken babel-bird2
URL:=https://www.freifunk-franken.de
DEPENDS:=+bird2 +bird2c +owipcalc
PROVIDES:=fff-babel-implementation
endef
define Package/fff-babel-bird2/description
This is the Freifunk Franken Firmware babel-bird2 package.
endef
define Build/Compile
# nothing
endef
define Package/fff-babel-bird2/install
$(CP) ./files/* $(1)/
endef
$(eval $(call BuildPackage,fff-babel-bird2))

@ -1,123 +0,0 @@
# router id is not required for babeld, but necessary for bird startup
router id 192.0.2.0;
ipv4 table fff4;
ipv6 sadr table fff6;
protocol device {
scan time 15;
}
# device routes for ipv4 peering address
protocol direct {
ipv4 {
table fff4;
import filter {
include "/tmp/bird/include/nat-filter.conf";
if (net ~ 10.50.0.0/16 || net ~ 10.83.0.0/16) && net.len = 32 then {
accept;
}
reject;
};
};
}
# device routes on loopback interface
protocol direct {
ipv4 {
table fff4;
import filter {
include "/tmp/bird/include/nat-filter.conf";
if net ~ 10.50.0.0/16 || net ~ 10.83.0.0/16 then {
accept;
}
reject;
};
};
ipv6 sadr {
table fff6;
import filter {
if net ~ fdff::/64 from ::/0 then {
reject;
}
# only import GUA + ULA addresses
if net !~ 2000::/3 from ::/0 && net !~ fc00::/7 from ::/0 then {
reject;
}
accept;
};
import keep filtered;
};
interface "lo";
}
# ipv6 kernel route interface
protocol kernel {
ipv6 sadr {
table fff6;
import filter {
# only import routes from kernel with proto static
if krt_source != 4 then {
reject;
}
if net ~ fdff::/64 from ::/0 then {
reject;
}
accept;
};
export all;
preference 200;
};
kernel table 10;
scan time 15;
learn yes;
}
# ipv4 kernel route interface
protocol kernel {
ipv4 {
table fff4;
import filter {
include "/tmp/bird/include/nat-filter.conf";
# only import routes from kernel with proto static
if krt_source = 4 then {
accept;
}
reject;
};
export all;
preference 200;
};
kernel table 10;
scan time 15;
learn yes;
}
protocol babel {
# required due to static configuration of global router id.
# also improves reconnect speed after restart.
randomize router id yes;
ipv4 {
table fff4;
import all;
export all;
};
ipv6 sadr {
table fff6;
import all;
export all;
};
include "/tmp/bird/include/babelpeers.conf";
};

@ -1,45 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2010-2017 OpenWrt.org
USE_PROCD=1
START=70
BIRD_BIN="/usr/sbin/bird"
BIRD_CONF="/etc/bird.conf"
BIRD_PID_FILE="/var/run/bird.pid"
start_service() {
mkdir -p /var/run
set_include_path
procd_open_instance
procd_set_param command $BIRD_BIN -f -c $BIRD_CONF -P $BIRD_PID_FILE
procd_set_param file "$BIRD_CONF"
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param respawn
procd_close_instance
}
reload_service() {
set_include_path
procd_send_signal fff-bird
}
set_include_path() {
# Change include file path, so bird uses the correct configuration, depending on the configuration state:
# - If test mode is active (and /tmp/bird/fff exists), switch to the temporary configuration to be tested.
# - If new settings are applied or the old settings are restored after an unsuccessful test (and /tmp/bird/fff does not exist),
# switch back to the permanent configuration (/etc/bird/fff).
mkdir -p /tmp/bird/include
if [ -d /tmp/bird/fff ]; then
echo 'include "/tmp/bird/fff/babelpeers/*.conf";' > /tmp/bird/include/babelpeers.conf
echo 'include "/tmp/bird/fff/nat-filter.conf";' > /tmp/bird/include/nat-filter.conf
else
echo 'include "/etc/bird/fff/babelpeers/*.conf";' > /tmp/bird/include/babelpeers.conf
echo 'include "/etc/bird/fff/nat-filter.conf";' > /tmp/bird/include/nat-filter.conf
fi
}

@ -1,4 +0,0 @@
/etc/init.d/bird disable
rm -f /etc/init.d/bird
exit 0

@ -1,5 +0,0 @@
# SPDX-License-Identifier: GPL-3.0-only
mv /etc/bird-fff.conf /etc/bird.conf
exit 0

@ -1,72 +0,0 @@
# SPDX-License-Identifier: GPL-3.0-only
babel_get_version() {
/usr/sbin/bird --version 2>&1 | sed "s/BIRD version /bird-/"
}
babel_add_interface() {
[ "$#" -ne "4" ] && return 1
local name="$1"
local interface="$2"
local type="$3"
local rxcost="$4"
mkdir -p /tmp/bird/fff/babelpeers
echo "interface \"$interface\" { type $type; rxcost $rxcost; };" > /tmp/bird/fff/babelpeers/$name.conf
return 0
}
babel_delete_interface() {
[ "$#" -ne "1" ] && return 1
local name="$1"
# Removing peers from /etc is not necessary, as all peers are generated into /tmp on every configuration run,
# which completely overwrites existing peers in /etc in the apply step.
rm -f /tmp/bird/fff/babelpeers/$name.conf
return 0
}
babel_add_redistribute_filter() {
return 0
}
babel_add_private_prefix_filter() {
[ "$#" -ne "1" ] && return 1
local prefix="$1"
prefix=$(owipcalc "$prefix" network prefix "$prefix")
mkdir -p /tmp/bird/fff
echo "if net ~ $prefix then reject;" > /tmp/bird/fff/nat-filter.conf
return 0
}
babel_remove_custom_redistribute_filters() {
mkdir -p /tmp/bird/fff
> /tmp/bird/fff/nat-filter.conf
return 0
}
babel_apply_implementation() {
# error output hidden because apply might be executed without a preceding configure step.
if [ -d /tmp/bird/fff ]; then
rm -rf /etc/bird/fff
mv /tmp/bird/fff /etc/bird/fff
fi
return 0
}
babel_reload_implementation() {
/etc/init.d/fff-bird reload
}
babel_revert() {
rm -r /tmp/bird/fff
}

@ -1,20 +0,0 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-3.0-only
set -e
set -o pipefail
if ! birdc show status >/dev/null 2>&1; then
# bird daemon not running or unavailable. exit.
exit 0
fi
neighbours="$(birdc -r show babel neighbors |
tail -n +5 |
awk '{ printf "<neighbour><ip>%s</ip><outgoing_interface>%s</outgoing_interface><link_cost>%s</link_cost></neighbour>", $1, $2, $3 }'
)"
echo -n "<babel_neighbours>$neighbours</babel_neighbours>"
exit 0

@ -1,28 +0,0 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-babel
PKG_RELEASE:=$(COMMITCOUNT)
include $(INCLUDE_DIR)/package.mk
define Package/fff-babel
SECTION:=base
CATEGORY:=Freifunk
TITLE:=Freifunk-Franken babel
URL:=https://www.freifunk-franken.de
DEPENDS:=+fff-babel-implementation
endef
define Package/fff-babel/description
This is the Freifunk Franken Firmware babel package.
endef
define Build/Compile
# nothing
endef
define Package/fff-babel/install
$(CP) ./files/* $(1)/
endef
$(eval $(call BuildPackage,fff-babel))

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-babeld
PKG_RELEASE:=$(COMMITCOUNT)
PKG_RELEASE:=8
include $(INCLUDE_DIR)/package.mk
@ -9,9 +9,8 @@ define Package/fff-babeld
SECTION:=base
CATEGORY:=Freifunk
TITLE:=Freifunk-Franken babeld configuration example
URL:=https://www.freifunk-franken.de
URL:=http://www.freifunk-franken.de
DEPENDS:=+babeld
PROVIDES:=fff-babel-implementation
endef
define Package/fff-babeld/description

@ -26,7 +26,7 @@ configure() {
fi
}
config_load network
config_load babeld
config_foreach remove_babelpeer interface
#add new peers
@ -75,14 +75,14 @@ configure() {
babel_add_peer6addr "network.$prefixname.ip6addr"
# add babel interface
babel_add_interface "$prefixname" "$iface" "$type" "$rxcost" || { echo "Could not add babel interface for babelpeer $name"; exit 1; }
babel_add_interface "$prefixname" "$iface" "$type" "$rxcost" || { echo "Could not add babeld interface for babelpeer $name"; exit 1; }
}
config_load gateway
config_foreach add_babelpeer babelpeer
# configure babel filters for custom ipv6 addresses
# configure babeld filters for custom ipv6 addresses
## remove old filters
babel_remove_custom_redistribute_filters
@ -90,25 +90,14 @@ configure() {
for prefix in $(uci -q get gateway.@client[0].ip6addr); do
babel_add_redistribute_filter "$prefix"
done
## add deny filters for client prefixes used with snat
if [ "$(uci -q get gateway.@client[0].snat)" = "1" ]; then
for prefix in $(uci -q get gateway.@client[0].ipaddr); do
babel_add_private_prefix_filter "$prefix"
done
fi
}
apply() {
uci commit network
babel_apply
}
reload() {
babel_reload
uci commit babeld
}
revert() {
uci revert network
babel_revert
uci revert babeld
}

@ -1,9 +1,3 @@
implementation=$(uci -q get babelimpl.impl.impl)
[ -z "$implementation" ] && implementation=bird2
. /lib/functions/fff/babeldaemon/$implementation
babel_add_iifrules() {
[ "$#" -ne "1" ] && return 1
@ -44,18 +38,10 @@ babel_add_peeraddr() {
uci add_list "$option"="$peer_ip"
elif router_ip=$(uci -q get gateway.meta.router_ip); then
# use router_ip if no peer_ip is set
ip=$router_ip
# use only first ip
ip=${ip%% *}
# remove CIDR mask
ip=${ip%%/*}
uci add_list "$option"="$ip"
uci add_list "$option"="$router_ip"
elif ipaddr=$(uci -q get gateway.@client[0].ipaddr); then
# use client interface address (without subnet) if no router_ip is set
uci add_list "$option"=${ipaddr%%/*}
uci add_list "$option"=$(echo $ipaddr | cut -d / -f1)
else
echo "WARNING: No peer_ip, router_ip or client interface ipaddr set! IPv4 routing is not possible."
return 1
@ -78,39 +64,61 @@ babel_add_peer6addr() {
return 0
}
babel_reload() {
# switch implementation temporarily
case $implementation in
bird2)
/etc/init.d/babeld stop 2>/dev/null
/etc/init.d/fff-bird start
;;
babeld)
/etc/init.d/fff-bird stop 2>/dev/null
/etc/init.d/babeld start
;;
esac
# call implementation-specific reload commands
babel_reload_implementation
babel_add_interface() {
[ "$#" -ne "4" ] && return 1
local name="$1"
local interface="$2"
local type="$3"
local rxcost="$4"
uci set babeld.$name=interface
uci set babeld.$name.ifname="$interface"
uci set babeld.$name.type="$type"
uci set babeld.$name.rxcost="$rxcost"
return 0
}
babel_delete_interface() {
[ "$#" -ne "1" ] && return 1
local name="$1"
uci -q del babeld.$name
return 0
}
babel_add_redistribute_filter() {
[ "$#" -ne "1" ] && return 1
local prefix="$1"
config=$(uci add babeld filter)
uci set babeld.$config.type='redistribute'
uci set babeld.$config.ip="$prefix"
uci set babeld.$config.addedbyautoconfig='true'
return 0
}
babel_apply() {
# switch implementation persistently
case $implementation in
bird2)
/etc/init.d/babeld disable
/etc/init.d/fff-bird enable
;;
babeld)
/etc/init.d/fff-bird disable
/etc/init.d/babeld enable
;;
esac
babel_apply_implementation
babel_remove_custom_redistribute_filters() {
[ "$#" -ne "0" ] && return 1
remove_filters() {
local name="$1"
# check if filter was added by configuregateway
if ! [ "$(uci -q get babeld.$name.addedbyautoconfig)" = 'true' ]; then
return
fi
uci -q del babeld.$name
}
config_load babeld
config_foreach remove_filters filter
return 0
}

@ -1,103 +0,0 @@
# SPDX-License-Identifier: GPL-3.0-only
babel_get_version() {
/usr/sbin/babeld -V 2>&1
}
babel_add_interface() {
[ "$#" -ne "4" ] && return 1
local name="$1"
local interface="$2"
local type="$3"
local rxcost="$4"
uci set babeld.$name=interface
uci set babeld.$name.ifname="$interface"
uci set babeld.$name.type="$type"
uci set babeld.$name.rxcost="$rxcost"
return 0
}
babel_delete_interface() {
[ "$#" -ne "1" ] && return 1
local name="$1"
uci -q del babeld.$name
return 0
}
babel_add_redistribute_filter() {
[ "$#" -ne "1" ] && return 1
local prefix="$1"
config=$(uci add babeld filter)
uci set babeld.$config.type='redistribute'
uci set babeld.$config.ip="$prefix"
uci set babeld.$config.addedbyautoconfig='true'
return 0
}
babel_add_private_prefix_filter() {
[ "$#" -ne "1" ] && return 1
local prefix="$1"
config=$(uci add babeld filter)
uci set babeld.$config.type='redistribute'
uci set babeld.$config.ip="$prefix"
uci set babeld.$config.addedbyautoconfig='true'
uci set babeld.$config.action='deny'
# move to top, so filter rule has precedence over all other rules
uci reorder babeld.$config=0
config=$(uci add babeld filter)
uci set babeld.$config.type='redistribute'
uci set babeld.$config.ip="$prefix"
uci set babeld.$config.addedbyautoconfig='true'
uci set babeld.$config.local='true'
uci set babeld.$config.action='deny'
# move to top, so filter rule has precedence over all other rules
uci reorder babeld.$config=0
return 0
}
babel_remove_custom_redistribute_filters() {
[ "$#" -ne "0" ] && return 1
remove_filters() {
local name="$1"
# check if filter was added by configuregateway
if ! [ "$(uci -q get babeld.$name.addedbyautoconfig)" = 'true' ]; then
return
fi
uci -q del babeld.$name
}
config_load babeld
config_foreach remove_filters filter
return 0
}
babel_apply_implementation() {
uci commit babeld
}
babel_reload_implementation() {
return 0
}
babel_revert() {
uci revert babeld
}

@ -1,34 +0,0 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-base
PKG_RELEASE:=$(COMMITCOUNT)
include $(INCLUDE_DIR)/package.mk
define Package/fff-base
SECTION:=base
CATEGORY:=Freifunk
TITLE:=Freifunk-Franken base dependencies
URL:=https://www.freifunk-franken.de
DEFAULT:=y
DEPENDS:= \
+iptables \
+ip6tables \
+micrond \
+odhcp6c \
+fff-config \
+fff-network \
+fff-nodewatcher \
+fff-simple-tc \
+fff-support \
+fff-sysupgrade \
+fff-timeserver \
+fff-web-ui \
+fff-wireless
endef
define Package/fff-variant/description
This package includes base packages used in the Freifunk-Franken firmware
endef
$(eval $(call BuildPackage,fff-base))

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-batman-adv
PKG_RELEASE:=$(COMMITCOUNT)
PKG_RELEASE:=4
include $(INCLUDE_DIR)/package.mk