From 6afc0452c2534ed0bc65b59b1fb6fd74439ddf27 Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Sat, 27 May 2023 12:09:02 +0200 Subject: [PATCH 1/4] batman-adv: update to version 2023.1 * support latest kernels (4.14 - 6.4) * drop single unicast transfer optimization for unsnoopable IP addresses * prepare infrastructure for multicast packets with multiple unicast destination addresses Signed-off-by: Sven Eckelmann --- batman-adv/Makefile | 4 ++-- ...Fix-build-of-multicast-code-against-Linux.patch | 4 ++-- batman-adv/src/compat-hacks.h | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/batman-adv/Makefile b/batman-adv/Makefile index 0d22a1e..bf41944 100644 --- a/batman-adv/Makefile +++ b/batman-adv/Makefile @@ -3,12 +3,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=batman-adv -PKG_VERSION:=2023.0 +PKG_VERSION:=2023.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION) -PKG_HASH:=2ce4ec04063252e7bfec3a2b3fa2a61b3b42c7b04d698ba60132bfab1d60a5cd +PKG_HASH:=f46a7286660a5ec3506a1be7ef60b471c51ac70550597d598040479ab7b936b8 PKG_EXTMOD_SUBDIRS:=net/batman-adv PKG_MAINTAINER:=Simon Wunderlich diff --git a/batman-adv/patches/0001-batman-adv-Fix-build-of-multicast-code-against-Linux.patch b/batman-adv/patches/0001-batman-adv-Fix-build-of-multicast-code-against-Linux.patch index 4a84f5f..31f28b0 100644 --- a/batman-adv/patches/0001-batman-adv-Fix-build-of-multicast-code-against-Linux.patch +++ b/batman-adv/patches/0001-batman-adv-Fix-build-of-multicast-code-against-Linux.patch @@ -7,7 +7,7 @@ Signed-off-by: Sven Eckelmann --- a/net/batman-adv/multicast.c +++ b/net/batman-adv/multicast.c -@@ -431,9 +431,14 @@ batadv_mcast_mla_softif_get_ipv6(struct +@@ -430,9 +430,14 @@ batadv_mcast_mla_softif_get_ipv6(struct return 0; } @@ -22,7 +22,7 @@ Signed-off-by: Sven Eckelmann if (IPV6_ADDR_MC_SCOPE(&pmc6->mca_addr) < IPV6_ADDR_SCOPE_LINKLOCAL) continue; -@@ -462,6 +467,9 @@ batadv_mcast_mla_softif_get_ipv6(struct +@@ -461,6 +466,9 @@ batadv_mcast_mla_softif_get_ipv6(struct hlist_add_head(&new->list, mcast_list); ret++; } diff --git a/batman-adv/src/compat-hacks.h b/batman-adv/src/compat-hacks.h index 646e179..ee51b87 100644 --- a/batman-adv/src/compat-hacks.h +++ b/batman-adv/src/compat-hacks.h @@ -71,6 +71,20 @@ static inline u32 batadv_get_random_u32_below(u32 ep_ro) #endif /* LINUX_VERSION_IS_LESS(6, 2, 0) */ +#if LINUX_VERSION_IS_LESS(6, 4, 0) + +#include + +/* Prefer this version in TX path, instead of + * skb_reset_mac_header() + vlan_eth_hdr() + */ +static inline struct vlan_ethhdr *skb_vlan_eth_hdr(const struct sk_buff *skb) +{ + return (struct vlan_ethhdr *)skb->data; +} + +#endif /* LINUX_VERSION_IS_LESS(6, 4, 0) */ + /* */ #include From b23dadccf2b4f5364e4183f4f8300ee5b380e081 Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Sat, 27 May 2023 12:09:50 +0200 Subject: [PATCH 2/4] batctl: update to version 2023.1 * Synchronize with kernel headers Signed-off-by: Sven Eckelmann --- batctl/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/batctl/Makefile b/batctl/Makefile index 242f101..70ca771 100644 --- a/batctl/Makefile +++ b/batctl/Makefile @@ -3,12 +3,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=batctl -PKG_VERSION:=2023.0 +PKG_VERSION:=2023.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION) -PKG_HASH:=11071ec02b61e01e05ef8030b7bda8ff15e5c70b294a64204592c5b6cb31ed22 +PKG_HASH:=e5bf47305d955abb199244bd0e5fffab96108b1affabd0d9705533f8059395f1 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) PKG_MAINTAINER:=Simon Wunderlich From 3d6c7c64a934958d58abad1fac2400d774aa33bc Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Sat, 27 May 2023 12:10:09 +0200 Subject: [PATCH 3/4] alfred: update to version 2023.1 * (no changes) Signed-off-by: Sven Eckelmann --- alfred/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/alfred/Makefile b/alfred/Makefile index f163908..af765ec 100644 --- a/alfred/Makefile +++ b/alfred/Makefile @@ -3,12 +3,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=alfred -PKG_VERSION:=2023.0 +PKG_VERSION:=2023.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION) -PKG_HASH:=c5ecadce50e8228a912b4894567ad45d6ff1d2ba3991c978456e4bef9b7dbad1 +PKG_HASH:=438048248f373757d3a8bde7cbc6db6685f4d0105d130da2f5a54f29090c6974 PKG_MAINTAINER:=Simon Wunderlich PKG_LICENSE:=GPL-2.0-only MIT From 04bbb0a87e3acd75cb4c6dac6876160758a9614d Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Sat, 27 May 2023 12:15:47 +0200 Subject: [PATCH 4/4] batman-adv: Drop support for kernel < 5.15 OpenWrt master is no longer providing any kernels older than 5.15. Just drop the compat-hacks/patches for older kernels to make it easier to maintain the package. Signed-off-by: Sven Eckelmann --- batman-adv/Makefile | 2 +- ...adv-Migrate-to-linux-container_of.h.patch} | 0 ...uild-of-multicast-code-against-Linux.patch | 34 --------------- ...dv-Switch-to-kstrtox.h-for-kstrtou64.patch | 19 -------- ... 0002-fix-batadv_is_cfg80211_netdev.patch} | 0 ...vert-batman-adv-use-Linux-s-stdarg.h.patch | 19 -------- batman-adv/src/compat-hacks.h | 43 ------------------- 7 files changed, 1 insertion(+), 116 deletions(-) rename batman-adv/patches/{0004-Revert-batman-adv-Migrate-to-linux-container_of.h.patch => 0001-Revert-batman-adv-Migrate-to-linux-container_of.h.patch} (100%) delete mode 100644 batman-adv/patches/0001-batman-adv-Fix-build-of-multicast-code-against-Linux.patch delete mode 100644 batman-adv/patches/0002-Revert-batman-adv-Switch-to-kstrtox.h-for-kstrtou64.patch rename batman-adv/patches/{0005-fix-batadv_is_cfg80211_netdev.patch => 0002-fix-batadv_is_cfg80211_netdev.patch} (100%) delete mode 100644 batman-adv/patches/0003-Revert-batman-adv-use-Linux-s-stdarg.h.patch diff --git a/batman-adv/Makefile b/batman-adv/Makefile index bf41944..4ef2953 100644 --- a/batman-adv/Makefile +++ b/batman-adv/Makefile @@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=batman-adv PKG_VERSION:=2023.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION) diff --git a/batman-adv/patches/0004-Revert-batman-adv-Migrate-to-linux-container_of.h.patch b/batman-adv/patches/0001-Revert-batman-adv-Migrate-to-linux-container_of.h.patch similarity index 100% rename from batman-adv/patches/0004-Revert-batman-adv-Migrate-to-linux-container_of.h.patch rename to batman-adv/patches/0001-Revert-batman-adv-Migrate-to-linux-container_of.h.patch diff --git a/batman-adv/patches/0001-batman-adv-Fix-build-of-multicast-code-against-Linux.patch b/batman-adv/patches/0001-batman-adv-Fix-build-of-multicast-code-against-Linux.patch deleted file mode 100644 index 31f28b0..0000000 --- a/batman-adv/patches/0001-batman-adv-Fix-build-of-multicast-code-against-Linux.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Sven Eckelmann -Date: Fri, 14 May 2021 19:34:35 +0200 -Subject: batman-adv: Fix build of multicast code against Linux < 5.13 - -Fixes: 007b4c4b031f ("batman-adv: convert ifmcaddr6 to RCU") -Signed-off-by: Sven Eckelmann - ---- a/net/batman-adv/multicast.c -+++ b/net/batman-adv/multicast.c -@@ -430,9 +430,14 @@ batadv_mcast_mla_softif_get_ipv6(struct - return 0; - } - -+#if LINUX_VERSION_IS_LESS(5, 13, 0) -+ read_lock_bh(&in6_dev->lock); -+ for (pmc6 = in6_dev->mc_list; pmc6; pmc6 = pmc6->next) { -+#else - for (pmc6 = rcu_dereference(in6_dev->mc_list); - pmc6; - pmc6 = rcu_dereference(pmc6->next)) { -+#endif - if (IPV6_ADDR_MC_SCOPE(&pmc6->mca_addr) < - IPV6_ADDR_SCOPE_LINKLOCAL) - continue; -@@ -461,6 +466,9 @@ batadv_mcast_mla_softif_get_ipv6(struct - hlist_add_head(&new->list, mcast_list); - ret++; - } -+#if LINUX_VERSION_IS_LESS(5, 13, 0) -+ read_unlock_bh(&in6_dev->lock); -+#endif - rcu_read_unlock(); - - return ret; diff --git a/batman-adv/patches/0002-Revert-batman-adv-Switch-to-kstrtox.h-for-kstrtou64.patch b/batman-adv/patches/0002-Revert-batman-adv-Switch-to-kstrtox.h-for-kstrtou64.patch deleted file mode 100644 index 8a2c0e2..0000000 --- a/batman-adv/patches/0002-Revert-batman-adv-Switch-to-kstrtox.h-for-kstrtou64.patch +++ /dev/null @@ -1,19 +0,0 @@ -From: Sven Eckelmann -Date: Tue, 14 Sep 2021 21:02:10 +0200 -Subject: Revert "batman-adv: Switch to kstrtox.h for kstrtou64" - -This header is only available after Linux 5.14 - -This reverts commit c9a69cb4048ebef3a4d91835669011a26d9b7dab. - ---- a/net/batman-adv/gateway_common.c -+++ b/net/batman-adv/gateway_common.c -@@ -10,7 +10,7 @@ - #include - #include - #include --#include -+#include - #include - #include - #include diff --git a/batman-adv/patches/0005-fix-batadv_is_cfg80211_netdev.patch b/batman-adv/patches/0002-fix-batadv_is_cfg80211_netdev.patch similarity index 100% rename from batman-adv/patches/0005-fix-batadv_is_cfg80211_netdev.patch rename to batman-adv/patches/0002-fix-batadv_is_cfg80211_netdev.patch diff --git a/batman-adv/patches/0003-Revert-batman-adv-use-Linux-s-stdarg.h.patch b/batman-adv/patches/0003-Revert-batman-adv-use-Linux-s-stdarg.h.patch deleted file mode 100644 index ce2df71..0000000 --- a/batman-adv/patches/0003-Revert-batman-adv-use-Linux-s-stdarg.h.patch +++ /dev/null @@ -1,19 +0,0 @@ -From: Sven Eckelmann -Date: Tue, 14 Sep 2021 21:07:34 +0200 -Subject: Revert "batman-adv: use Linux's stdarg.h" - -This header is only available since Linux 5.15 - -This reverts commit 36d059797a14f0e373fdc3c79df7b467435925ad. - ---- a/net/batman-adv/log.c -+++ b/net/batman-adv/log.c -@@ -7,7 +7,7 @@ - #include "log.h" - #include "main.h" - --#include -+#include - - #include "trace.h" - diff --git a/batman-adv/src/compat-hacks.h b/batman-adv/src/compat-hacks.h index ee51b87..fcf7b93 100644 --- a/batman-adv/src/compat-hacks.h +++ b/batman-adv/src/compat-hacks.h @@ -5,49 +5,6 @@ #include /* LINUX_VERSION_CODE */ #include -#if LINUX_VERSION_IS_LESS(5, 14, 0) - -#include -#include - -#if IS_ENABLED(CONFIG_IPV6) -static inline bool -br_multicast_has_router_adjacent(struct net_device *dev, int proto) -{ - struct list_head bridge_mcast_list = LIST_HEAD_INIT(bridge_mcast_list); - struct br_ip_list *br_ip_entry, *tmp; - int ret; - - if (proto != ETH_P_IPV6) - return true; - - ret = br_multicast_list_adjacent(dev, &bridge_mcast_list); - if (ret < 0) - return true; - - ret = false; - - list_for_each_entry_safe(br_ip_entry, tmp, &bridge_mcast_list, list) { - if (br_ip_entry->addr.proto == htons(ETH_P_IPV6) && - ipv6_addr_is_ll_all_routers(&br_ip_entry->addr.dst.ip6)) - ret = true; - - list_del(&br_ip_entry->list); - kfree(br_ip_entry); - } - - return ret; -} -#else -static inline bool -br_multicast_has_router_adjacent(struct net_device *dev, int proto) -{ - return true; -} -#endif - -#endif /* LINUX_VERSION_IS_LESS(5, 14, 0) */ - #if LINUX_VERSION_IS_LESS(6, 0, 0) #define __vstring(item, fmt, ap) __dynamic_array(char, item, 256)