diff --git a/modules b/modules index 869174fc84..6a349e8ef7 100644 --- a/modules +++ b/modules @@ -1,16 +1,16 @@ GLUON_FEEDS='packages routing gluon' OPENWRT_REPO=https://github.com/openwrt/openwrt.git -OPENWRT_BRANCH=openwrt-22.03 -OPENWRT_COMMIT=1ec274a204a65c7f8543cf750a0b027a685818cb +OPENWRT_BRANCH=openwrt-23.05 +OPENWRT_COMMIT=b055769a487de4f95b8c8ab9f9a1a024d7b76cb2 PACKAGES_PACKAGES_REPO=https://github.com/openwrt/packages.git -PACKAGES_PACKAGES_BRANCH=openwrt-22.03 -PACKAGES_PACKAGES_COMMIT=336660337ea209413f610bf47cc8fc82131ba37a +PACKAGES_PACKAGES_BRANCH=openwrt-23.05 +PACKAGES_PACKAGES_COMMIT=9f4707527e24eacd90cb3245ee7683eb063a359c PACKAGES_ROUTING_REPO=https://github.com/openwrt/routing.git -PACKAGES_ROUTING_BRANCH=openwrt-22.03 -PACKAGES_ROUTING_COMMIT=1a40d7c7f303c626c457213e3e77721b55f46e51 +PACKAGES_ROUTING_BRANCH=openwrt-23.05 +PACKAGES_ROUTING_COMMIT=b844d67864d6486dc8f68054970c5195ec7c45a8 PACKAGES_GLUON_REPO=https://github.com/freifunk-gluon/packages.git PACKAGES_GLUON_COMMIT=29912ec6308fd10b47763b4cf28a638d07f59973 diff --git a/patches/openwrt/0004-ramips-mt7621-make-DSA-images-swconfig-upgradable.patch b/patches/openwrt/0004-ramips-mt7621-make-DSA-images-swconfig-upgradable.patch deleted file mode 100644 index 349b4d994f..0000000000 --- a/patches/openwrt/0004-ramips-mt7621-make-DSA-images-swconfig-upgradable.patch +++ /dev/null @@ -1,64 +0,0 @@ -From: David Bauer -Date: Sun, 5 Jun 2022 23:43:38 +0200 -Subject: ramips-mt7621: make DSA images swconfig upgradable - -diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk -index ab0ff95f7529aa43e69e67a4e3a303242c9b2605..4c3a38db442f06d6c1acf77fb729d93a67e2d52a 100644 ---- a/target/linux/ramips/image/mt7621.mk -+++ b/target/linux/ramips/image/mt7621.mk -@@ -180,7 +180,6 @@ endef - TARGET_DEVICES += asiarf_ap7621-nv1 - - define Device/asus_rt-ac57u -- $(Device/dsa-migration) - DEVICE_VENDOR := ASUS - DEVICE_MODEL := RT-AC57U - DEVICE_ALT0_VENDOR := ASUS -@@ -1286,7 +1285,6 @@ endef - TARGET_DEVICES += mts_wg430223 - - define Device/netgear_ex6150 -- $(Device/dsa-migration) - $(Device/uimage-lzma-loader) - DEVICE_VENDOR := NETGEAR - DEVICE_MODEL := EX6150 -@@ -1299,7 +1297,6 @@ endef - TARGET_DEVICES += netgear_ex6150 - - define Device/netgear_sercomm_nand -- $(Device/dsa-migration) - $(Device/uimage-lzma-loader) - BLOCKSIZE := 128k - PAGESIZE := 2048 -@@ -1482,7 +1479,6 @@ endef - TARGET_DEVICES += netgear_wax202 - - define Device/netgear_wndr3700-v5 -- $(Device/dsa-migration) - $(Device/netgear_sercomm_nor) - $(Device/uimage-lzma-loader) - IMAGE_SIZE := 15232k -@@ -1819,7 +1815,6 @@ endef - TARGET_DEVICES += tplink_tl-wpa8631p-v3 - - define Device/ubnt_edgerouter_common -- $(Device/dsa-migration) - $(Device/uimage-lzma-loader) - DEVICE_VENDOR := Ubiquiti - IMAGE_SIZE := 256768k -@@ -2235,7 +2230,6 @@ endef - TARGET_DEVICES += zbtlink_zbt-wg2626 - - define Device/zbtlink_zbt-wg3526-16m -- $(Device/dsa-migration) - $(Device/uimage-lzma-loader) - IMAGE_SIZE := 16064k - DEVICE_VENDOR := Zbtlink -@@ -2248,7 +2242,6 @@ endef - TARGET_DEVICES += zbtlink_zbt-wg3526-16m - - define Device/zbtlink_zbt-wg3526-32m -- $(Device/dsa-migration) - $(Device/uimage-lzma-loader) - IMAGE_SIZE := 32448k - DEVICE_VENDOR := Zbtlink diff --git a/patches/openwrt/0009-xrx200-migrate-fritz7360-v2-using-incorrect-image.patch b/patches/openwrt/0004-xrx200-migrate-fritz7360-v2-using-incorrect-image.patch similarity index 100% rename from patches/openwrt/0009-xrx200-migrate-fritz7360-v2-using-incorrect-image.patch rename to patches/openwrt/0004-xrx200-migrate-fritz7360-v2-using-incorrect-image.patch diff --git a/patches/openwrt/0007-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch b/patches/openwrt/0005-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch similarity index 76% rename from patches/openwrt/0007-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch rename to patches/openwrt/0005-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch index 56021388e3..2ac522d82f 100644 --- a/patches/openwrt/0007-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch +++ b/patches/openwrt/0005-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch @@ -27,11 +27,11 @@ Signed-off-by: Linus Lüssing diff --git a/package/network/config/netifd/patches/0001-bridge-Add-multicast_wakeupcall-option.patch b/package/network/config/netifd/patches/0001-bridge-Add-multicast_wakeupcall-option.patch new file mode 100644 -index 0000000000000000000000000000000000000000..e3da684dc950ea4c226705d27b23b0470499d54b +index 0000000000000000000000000000000000000000..a00a60d63d37d94cbba116eaa0f9640683ae7fa9 --- /dev/null +++ b/package/network/config/netifd/patches/0001-bridge-Add-multicast_wakeupcall-option.patch -@@ -0,0 +1,176 @@ -+From 6db5050d9e046a486260ea23a77118db4f8a6672 Mon Sep 17 00:00:00 2001 +@@ -0,0 +1,151 @@ ++From d23a49e6542dc068b12fbc7b6a4520f9fb3626f9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Linus=20L=C3=BCssing?= +Date: Sun, 5 Jul 2020 23:33:51 +0200 +Subject: [PATCH] bridge: Add multicast_wakeupcall option @@ -66,13 +66,15 @@ index 0000000000000000000000000000000000000000..e3da684dc950ea4c226705d27b23b047 +Signed-off-by: Linus Lüssing +--- + device.c | 9 +++++++++ -+ device.h | 37 ++++++++++++++++++++----------------- ++ device.h | 3 +++ + system-linux.c | 13 +++++++++++++ -+ 3 files changed, 42 insertions(+), 17 deletions(-) ++ 3 files changed, 25 insertions(+) + ++diff --git a/device.c b/device.c ++index 1e892191d0ec..67111895b0f9 100644 +--- a/device.c ++++ b/device.c -+@@ -47,6 +47,7 @@ static const struct blobmsg_policy dev_a ++@@ -47,6 +47,7 @@ static const struct blobmsg_policy dev_attrs[__DEV_ATTR_MAX] = { + [DEV_ATTR_NEIGHGCSTALETIME] = { .name = "neighgcstaletime", .type = BLOBMSG_TYPE_INT32 }, + [DEV_ATTR_DADTRANSMITS] = { .name = "dadtransmits", .type = BLOBMSG_TYPE_INT32 }, + [DEV_ATTR_MULTICAST_TO_UNICAST] = { .name = "multicast_to_unicast", .type = BLOBMSG_TYPE_BOOL }, @@ -80,7 +82,7 @@ index 0000000000000000000000000000000000000000..e3da684dc950ea4c226705d27b23b047 + [DEV_ATTR_MULTICAST_ROUTER] = { .name = "multicast_router", .type = BLOBMSG_TYPE_INT32 }, + [DEV_ATTR_MULTICAST_FAST_LEAVE] = { .name = "multicast_fast_leave", . type = BLOBMSG_TYPE_BOOL }, + [DEV_ATTR_MULTICAST] = { .name ="multicast", .type = BLOBMSG_TYPE_BOOL }, -+@@ -261,6 +262,7 @@ device_merge_settings(struct device *dev ++@@ -261,6 +262,7 @@ device_merge_settings(struct device *dev, struct device_settings *n) + n->multicast = s->flags & DEV_OPT_MULTICAST ? + s->multicast : os->multicast; + n->multicast_to_unicast = s->multicast_to_unicast; @@ -88,7 +90,7 @@ index 0000000000000000000000000000000000000000..e3da684dc950ea4c226705d27b23b047 + n->multicast_router = s->multicast_router; + n->multicast_fast_leave = s->multicast_fast_leave; + n->learning = s->learning; -+@@ -386,6 +388,11 @@ device_init_settings(struct device *dev, ++@@ -386,6 +388,11 @@ device_init_settings(struct device *dev, struct blob_attr **tb) + s->flags |= DEV_OPT_MULTICAST_TO_UNICAST; + } + @@ -100,7 +102,7 @@ index 0000000000000000000000000000000000000000..e3da684dc950ea4c226705d27b23b047 + if ((cur = tb[DEV_ATTR_MULTICAST_ROUTER])) { + s->multicast_router = blobmsg_get_u32(cur); + if (s->multicast_router <= 2) -+@@ -1186,6 +1193,8 @@ device_dump_status(struct blob_buf *b, s ++@@ -1203,6 +1210,8 @@ device_dump_status(struct blob_buf *b, struct device *dev) + blobmsg_add_u32(b, "dadtransmits", st.dadtransmits); + if (st.flags & DEV_OPT_MULTICAST_TO_UNICAST) + blobmsg_add_u8(b, "multicast_to_unicast", st.multicast_to_unicast); @@ -109,6 +111,8 @@ index 0000000000000000000000000000000000000000..e3da684dc950ea4c226705d27b23b047 + if (st.flags & DEV_OPT_MULTICAST_ROUTER) + blobmsg_add_u32(b, "multicast_router", st.multicast_router); + if (st.flags & DEV_OPT_MULTICAST_FAST_LEAVE) ++diff --git a/device.h b/device.h ++index 6751628b9b33..41583ac3da4f 100644 +--- a/device.h ++++ b/device.h +@@ -44,6 +44,7 @@ enum { @@ -119,45 +123,11 @@ index 0000000000000000000000000000000000000000..e3da684dc950ea4c226705d27b23b047 + DEV_ATTR_MULTICAST_ROUTER, + DEV_ATTR_MULTICAST_FAST_LEAVE, + DEV_ATTR_MULTICAST, -+@@ -109,23 +110,24 @@ enum { -+ DEV_OPT_MTU6 = (1ULL << 12), -+ DEV_OPT_DADTRANSMITS = (1ULL << 13), -+ DEV_OPT_MULTICAST_TO_UNICAST = (1ULL << 14), -+- DEV_OPT_MULTICAST_ROUTER = (1ULL << 15), -+- DEV_OPT_MULTICAST = (1ULL << 16), -+- DEV_OPT_LEARNING = (1ULL << 17), -+- DEV_OPT_UNICAST_FLOOD = (1ULL << 18), -+- DEV_OPT_NEIGHGCSTALETIME = (1ULL << 19), -+- DEV_OPT_MULTICAST_FAST_LEAVE = (1ULL << 20), -+- DEV_OPT_SENDREDIRECTS = (1ULL << 21), -+- DEV_OPT_NEIGHLOCKTIME = (1ULL << 22), -+- DEV_OPT_ISOLATE = (1ULL << 23), -+- DEV_OPT_IP6SEGMENTROUTING = (1ULL << 24), -+- DEV_OPT_DROP_V4_UNICAST_IN_L2_MULTICAST = (1ULL << 25), -+- DEV_OPT_DROP_V6_UNICAST_IN_L2_MULTICAST = (1ULL << 26), -+- DEV_OPT_DROP_GRATUITOUS_ARP = (1ULL << 27), -+- DEV_OPT_DROP_UNSOLICITED_NA = (1ULL << 28), -+- DEV_OPT_ARP_ACCEPT = (1ULL << 29), -+- DEV_OPT_SPEED = (1ULL << 30), -+- DEV_OPT_DUPLEX = (1ULL << 31), -++ DEV_OPT_MULTICAST_WAKEUPCALL = (1ULL << 15), -++ DEV_OPT_MULTICAST_ROUTER = (1ULL << 16), -++ DEV_OPT_MULTICAST = (1ULL << 17), -++ DEV_OPT_LEARNING = (1ULL << 18), -++ DEV_OPT_UNICAST_FLOOD = (1ULL << 19), -++ DEV_OPT_NEIGHGCSTALETIME = (1ULL << 20), -++ DEV_OPT_MULTICAST_FAST_LEAVE = (1ULL << 21), -++ DEV_OPT_SENDREDIRECTS = (1ULL << 22), -++ DEV_OPT_NEIGHLOCKTIME = (1ULL << 23), -++ DEV_OPT_ISOLATE = (1ULL << 24), -++ DEV_OPT_IP6SEGMENTROUTING = (1ULL << 25), -++ DEV_OPT_DROP_V4_UNICAST_IN_L2_MULTICAST = (1ULL << 26), -++ DEV_OPT_DROP_V6_UNICAST_IN_L2_MULTICAST = (1ULL << 27), -++ DEV_OPT_DROP_GRATUITOUS_ARP = (1ULL << 28), -++ DEV_OPT_DROP_UNSOLICITED_NA = (1ULL << 29), -++ DEV_OPT_ARP_ACCEPT = (1ULL << 30), -++ DEV_OPT_SPEED = (1ULL << 31), -++ DEV_OPT_DUPLEX = (1ULL << 32), ++@@ -126,6 +127,7 @@ enum { ++ DEV_OPT_ARP_ACCEPT = (1ULL << 29), ++ DEV_OPT_SPEED = (1ULL << 30), ++ DEV_OPT_DUPLEX = (1ULL << 31), +++ DEV_OPT_MULTICAST_WAKEUPCALL = (1ULL << 63), + }; + + /* events broadcasted to all users of a device */ @@ -169,9 +139,11 @@ index 0000000000000000000000000000000000000000..e3da684dc950ea4c226705d27b23b047 + unsigned int multicast_router; + bool multicast_fast_leave; + bool multicast; ++diff --git a/system-linux.c b/system-linux.c ++index cc15537ba3ad..5148a7eacce0 100644 +--- a/system-linux.c ++++ b/system-linux.c -+@@ -465,6 +465,11 @@ static void system_bridge_set_multicast_ ++@@ -534,6 +534,11 @@ static void system_bridge_set_multicast_to_unicast(struct device *dev, const cha + system_set_dev_sysfs("brport/multicast_to_unicast", dev->ifname, val); + } + @@ -183,7 +155,7 @@ index 0000000000000000000000000000000000000000..e3da684dc950ea4c226705d27b23b047 + static void system_bridge_set_multicast_fast_leave(struct device *dev, const char *val) + { + system_set_dev_sysfs("brport/multicast_fast_leave", dev->ifname, val); -+@@ -844,8 +849,10 @@ static char *system_get_bridge(const cha ++@@ -913,8 +918,10 @@ static char *system_get_bridge(const char *name, char *buf, int buflen) + static void + system_bridge_set_wireless(struct device *bridge, struct device *dev) + { @@ -192,9 +164,9 @@ index 0000000000000000000000000000000000000000..e3da684dc950ea4c226705d27b23b047 + bool hairpin; ++ char buf[64]; + -+ if (bridge->settings.flags & DEV_OPT_MULTICAST_TO_UNICAST && -+ !bridge->settings.multicast_to_unicast) -+@@ -858,6 +865,12 @@ system_bridge_set_wireless(struct device ++ if (dev->settings.flags & DEV_OPT_MULTICAST_TO_UNICAST) ++ mcast_to_ucast = dev->settings.multicast_to_unicast; ++@@ -929,6 +936,12 @@ system_bridge_set_wireless(struct device *bridge, struct device *dev) + system_bridge_set_multicast_to_unicast(dev, mcast_to_ucast ? "1" : "0"); + system_bridge_set_hairpin_mode(dev, hairpin ? "1" : "0"); + system_bridge_set_proxyarp_wifi(dev, dev->wireless_proxyarp ? "1" : "0"); @@ -207,11 +179,14 @@ index 0000000000000000000000000000000000000000..e3da684dc950ea4c226705d27b23b047 + } + + int system_bridge_addif(struct device *bridge, struct device *dev) -diff --git a/target/linux/generic/config-5.10 b/target/linux/generic/config-5.10 -index e17991500481407d6e9110038be856d119476a37..ab4db1bf7701b508195fda32c30c5dd541f0bfde 100644 ---- a/target/linux/generic/config-5.10 -+++ b/target/linux/generic/config-5.10 -@@ -737,6 +737,7 @@ CONFIG_BRIDGE=y ++-- ++2.40.1 ++ +diff --git a/target/linux/generic/config-5.15 b/target/linux/generic/config-5.15 +index 5cac839f593c704a8f5bc38b55102644773481b1..026e19993c52c45464c000e74594245be70949f7 100644 +--- a/target/linux/generic/config-5.15 ++++ b/target/linux/generic/config-5.15 +@@ -761,6 +761,7 @@ CONFIG_BRIDGE=y # CONFIG_BRIDGE_EBT_T_NAT is not set # CONFIG_BRIDGE_EBT_VLAN is not set CONFIG_BRIDGE_IGMP_SNOOPING=y @@ -219,13 +194,13 @@ index e17991500481407d6e9110038be856d119476a37..ab4db1bf7701b508195fda32c30c5dd5 # CONFIG_BRIDGE_MRP is not set # CONFIG_BRIDGE_NETFILTER is not set # CONFIG_BRIDGE_NF_EBTABLES is not set -diff --git a/target/linux/generic/hack-5.10/601-bridge-Implement-MLD-Querier-wake-up-calls-Android-b.patch b/target/linux/generic/hack-5.10/601-bridge-Implement-MLD-Querier-wake-up-calls-Android-b.patch +diff --git a/target/linux/generic/hack-5.15/602-bridge-Implement-MLD-Querier-wake-up-calls-Android-b.patch b/target/linux/generic/hack-5.15/602-bridge-Implement-MLD-Querier-wake-up-calls-Android-b.patch new file mode 100644 -index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825be7b67ed +index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855723e5763 --- /dev/null -+++ b/target/linux/generic/hack-5.10/601-bridge-Implement-MLD-Querier-wake-up-calls-Android-b.patch -@@ -0,0 +1,687 @@ -+From e0fd3ecf9b4f6825ad0380b759baf88ef508bed5 Mon Sep 17 00:00:00 2001 ++++ b/target/linux/generic/hack-5.15/602-bridge-Implement-MLD-Querier-wake-up-calls-Android-b.patch +@@ -0,0 +1,690 @@ ++From 4529dcf18d4c5e05d30cd2d6fabfbae201e6c347 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Linus=20L=C3=BCssing?= +Date: Mon, 29 Jun 2020 19:04:05 +0200 +Subject: [PATCH] bridge: Implement MLD Querier wake-up calls / Android bug @@ -263,31 +238,31 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + net/bridge/Kconfig | 26 ++++ + net/bridge/br_fdb.c | 10 ++ + net/bridge/br_input.c | 4 +- -+ net/bridge/br_multicast.c | 289 ++++++++++++++++++++++++++++++++++- ++ net/bridge/br_multicast.c | 291 ++++++++++++++++++++++++++++++++++- + net/bridge/br_netlink.c | 19 +++ -+ net/bridge/br_private.h | 19 +++ ++ net/bridge/br_private.h | 20 +++ + net/bridge/br_sysfs_if.c | 18 +++ + net/core/rtnetlink.c | 2 +- + net/ipv6/mcast_snoop.c | 3 +- -+ 12 files changed, 383 insertions(+), 10 deletions(-) ++ 12 files changed, 386 insertions(+), 10 deletions(-) + +diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h -+index ea1c7d151f46..d7714f60b88a 100644 ++index 18d3b264b754..5ee206fb5ee7 100644 +--- a/include/linux/if_bridge.h ++++ b/include/linux/if_bridge.h -+@@ -58,6 +58,7 @@ struct br_ip_list { ++@@ -59,6 +59,7 @@ struct br_ip_list { + #define BR_MRP_LOST_IN_CONT BIT(19) -+ #define BR_BPDU_FILTER BIT(20) -+ #define BR_OFFLOAD BIT(21) ++ #define BR_TX_FWD_OFFLOAD BIT(20) ++ #define BR_BPDU_FILTER BIT(21) ++#define BR_MULTICAST_WAKEUPCALL BIT(22) + + #define BR_DEFAULT_AGEING_TIME (300 * HZ) + +diff --git a/include/net/addrconf.h b/include/net/addrconf.h -+index e7ce719838b5..af8f153e1b5f 100644 ++index 53627afab104..f31ea1726efa 100644 +--- a/include/net/addrconf.h ++++ b/include/net/addrconf.h -+@@ -235,6 +235,7 @@ void ipv6_mc_unmap(struct inet6_dev *idev); ++@@ -233,6 +233,7 @@ void ipv6_mc_unmap(struct inet6_dev *idev); + void ipv6_mc_remap(struct inet6_dev *idev); + void ipv6_mc_init_dev(struct inet6_dev *idev); + void ipv6_mc_destroy_dev(struct inet6_dev *idev); @@ -296,19 +271,19 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + void addrconf_dad_failure(struct sk_buff *skb, struct inet6_ifaddr *ifp); + +diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h -+index ffeb05c061d2..1956ab99e97d 100644 ++index be0ad9a79da8..baf07b15e481 100644 +--- a/include/uapi/linux/if_link.h ++++ b/include/uapi/linux/if_link.h -+@@ -525,6 +525,7 @@ enum { -+ IFLA_BRPORT_MRP_RING_OPEN, -+ IFLA_BRPORT_MRP_IN_OPEN, ++@@ -537,6 +537,7 @@ enum { ++ IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, ++ IFLA_BRPORT_MCAST_EHT_HOSTS_CNT, + IFLA_BRPORT_BPDU_FILTER, ++ IFLA_BRPORT_MCAST_WAKEUPCALL, + __IFLA_BRPORT_MAX + }; + #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) +diff --git a/net/bridge/Kconfig b/net/bridge/Kconfig -+index 80879196560c..056e80bf00c4 100644 ++index 3c8ded7d3e84..1a11e22c7d51 100644 +--- a/net/bridge/Kconfig ++++ b/net/bridge/Kconfig +@@ -48,6 +48,32 @@ config BRIDGE_IGMP_SNOOPING @@ -345,10 +320,10 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + bool "VLAN filtering" + depends on BRIDGE +diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c -+index bc6c8d5cd1e1..98ca86b7ca42 100644 ++index 46812b659710..eec5f3770ff8 100644 +--- a/net/bridge/br_fdb.c ++++ b/net/bridge/br_fdb.c -+@@ -85,6 +85,10 @@ static void fdb_rcu_free(struct rcu_head *head) ++@@ -84,6 +84,10 @@ static void fdb_rcu_free(struct rcu_head *head) + { + struct net_bridge_fdb_entry *ent + = container_of(head, struct net_bridge_fdb_entry, rcu); @@ -359,10 +334,10 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + kmem_cache_free(br_fdb_cache, ent); + } + -+@@ -516,6 +520,12 @@ static struct net_bridge_fdb_entry *fdb_create(struct net_bridge *br, ++@@ -518,6 +522,12 @@ static struct net_bridge_fdb_entry *fdb_create(struct net_bridge *br, ++ fdb->key.vlan_id = vid; ++ fdb->flags = flags; + fdb->updated = fdb->used = jiffies; -+ INIT_HLIST_HEAD(&fdb->offload_in); -+ INIT_HLIST_HEAD(&fdb->offload_out); ++ ++#ifdef CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS ++ timer_setup(&fdb->wakeupcall_timer, @@ -373,26 +348,26 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + &fdb->rhnode, + br_fdb_rht_params)) { +diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c -+index 64f3eaa3879d..a449a1f60f1b 100644 ++index fe80b8e4c2d7..879ae7adb845 100644 +--- a/net/bridge/br_input.c ++++ b/net/bridge/br_input.c -+@@ -163,8 +163,10 @@ int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb ++@@ -164,8 +164,10 @@ int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb + if (dst) { + unsigned long now = jiffies; + +- if (test_bit(BR_FDB_LOCAL, &dst->flags)) ++ if (test_bit(BR_FDB_LOCAL, &dst->flags)) { -++ br_multicast_wakeupcall_rcv(br, p, skb, vid); +++ br_multicast_wakeupcall_rcv(brmctx, pmctx, skb, vid); + return br_pass_frame_up(skb); ++ } + + if (now != dst->used) + dst->used = now; +diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c -+index e5328a2777ec..a2f45bd523ab 100644 ++index db4f2641d1cd..6822dfbafa71 100644 +--- a/net/bridge/br_multicast.c ++++ b/net/bridge/br_multicast.c -+@@ -833,15 +833,16 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge *br, ++@@ -950,15 +950,16 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge_mcast *brm + const struct in6_addr *group, + bool with_srcs, bool over_llqt, + u8 sflag, u8 *igmp_type, @@ -411,24 +386,24 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + __sum16 *csum = NULL; + struct ipv6hdr *ip6h; + struct mld_msg *mldq; -+@@ -922,9 +923,13 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge *br, ++@@ -1040,9 +1041,13 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge_mcast *brm + + /* ICMPv6 */ + skb_set_transport_header(skb, skb->len); +- interval = ipv6_addr_any(group) ? -+- br->multicast_query_response_interval : -+- br->multicast_last_member_interval; ++- brmctx->multicast_query_response_interval : ++- brmctx->multicast_last_member_interval; ++ if (delay) { ++ interval = ipv6_addr_any(group) ? -++ br->multicast_query_response_interval : -++ br->multicast_last_member_interval; +++ brmctx->multicast_query_response_interval : +++ brmctx->multicast_last_member_interval; ++ interval = jiffies_to_msecs(interval); ++ } ++ + *igmp_type = ICMPV6_MGM_QUERY; -+ switch (br->multicast_mld_version) { ++ switch (brmctx->multicast_mld_version) { + case 1: -+@@ -932,7 +937,7 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge *br, ++@@ -1050,7 +1055,7 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge_mcast *brm + mldq->mld_type = ICMPV6_MGM_QUERY; + mldq->mld_code = 0; + mldq->mld_cksum = 0; @@ -437,7 +412,7 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + mldq->mld_reserved = 0; + mldq->mld_mca = *group; + csum = &mldq->mld_cksum; -+@@ -1022,7 +1027,7 @@ static struct sk_buff *br_multicast_alloc_query(struct net_bridge *br, ++@@ -1141,7 +1146,7 @@ static struct sk_buff *br_multicast_alloc_query(struct net_bridge_mcast *brmctx, + &ip6_dst, &group->dst.ip6, + with_srcs, over_lmqt, + sflag, igmp_type, @@ -446,7 +421,7 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + } + #endif + } -+@@ -1427,6 +1432,168 @@ static void br_multicast_select_own_querier(struct net_bridge *br, ++@@ -1619,6 +1624,169 @@ static void br_multicast_select_own_querier(struct net_bridge_mcast *brmctx, + #endif + } + @@ -580,16 +555,17 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 ++ } ++} ++ -++static void br_multicast_schedule_wakeupcalls(struct net_bridge *br, -++ struct net_bridge_port *port, -++ const struct in6_addr *group) +++static void +++br_multicast_schedule_wakeupcalls(struct net_bridge_mcast *brmctx, +++ struct net_bridge_mcast_port *pmctx, +++ const struct in6_addr *group) ++{ ++ struct net_bridge_fdb_entry *fdb; ++ unsigned long delay; ++ ++ rcu_read_lock(); -++ hlist_for_each_entry_rcu(fdb, &br->fdb_list, fdb_node) { -++ if (!fdb->dst || fdb->dst->dev != port->dev) +++ hlist_for_each_entry_rcu(fdb, &brmctx->br->fdb_list, fdb_node) { +++ if (!fdb->dst || fdb->dst->dev != pmctx->port->dev) ++ continue; ++ ++ /* Wake-up calls to VLANs unsupported for now */ @@ -602,8 +578,8 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 ++ * than max response delay to anticipate the extra round trip. ++ */ ++ delay = ipv6_addr_any(group) ? -++ br->multicast_query_response_interval : -++ br->multicast_last_member_interval; +++ brmctx->multicast_query_response_interval : +++ brmctx->multicast_last_member_interval; ++ delay = prandom_u32() % (3 * delay / 4); ++ ++ timer_reduce(&fdb->wakeupcall_timer, jiffies + delay); @@ -612,24 +588,24 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 ++} ++#endif /* CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS */ ++ -+ static void __br_multicast_send_query(struct net_bridge *br, -+ struct net_bridge_port *port, ++ static void __br_multicast_send_query(struct net_bridge_mcast *brmctx, ++ struct net_bridge_mcast_port *pmctx, + struct net_bridge_port_group *pg, -+@@ -1455,6 +1622,13 @@ static void __br_multicast_send_query(struct net_bridge *br, -+ dev_net(port->dev), NULL, skb, NULL, skb->dev, ++@@ -1651,6 +1819,13 @@ static void __br_multicast_send_query(struct net_bridge_mcast *brmctx, ++ dev_net(pmctx->port->dev), NULL, skb, NULL, skb->dev, + br_dev_queue_push_xmit); + ++#ifdef CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS -++ if (port->wakeupcall_num_rings && +++ if (pmctx->port->wakeupcall_num_rings && ++ group->proto == htons(ETH_P_IPV6)) -++ br_multicast_schedule_wakeupcalls(br, port, +++ br_multicast_schedule_wakeupcalls(brmctx, pmctx, ++ &group->dst.ip6); ++#endif ++ + if (over_lmqt && with_srcs && sflag) { + over_lmqt = false; + goto again_under_lmqt; -+@@ -3164,6 +3338,98 @@ int br_multicast_rcv(struct net_bridge *br, struct net_bridge_port *port, ++@@ -3801,6 +3976,99 @@ int br_multicast_rcv(struct net_bridge_mcast **brmctx, + return ret; + } + @@ -683,8 +659,8 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 ++ return true; ++} ++ -++static void br_multicast_wakeupcall_send_mldq(struct net_bridge *br, -++ struct net_bridge_port *port, +++static void br_multicast_wakeupcall_send_mldq(struct net_bridge_mcast *brmctx, +++ struct net_bridge_mcast_port *pmctx, ++ const u8 *eth_dst) ++{ ++ const struct in6_addr group = BR_MC_IN6_ZERO; @@ -697,38 +673,39 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 ++ */ ++ ipv6_addr_set(&ip6_dst, htonl(0xff020000), 0, 0, htonl(1)); ++ -++ skb = br_ip6_multicast_alloc_query(br, NULL, &ip6_dst, &group, false, -++ false, false, &igmp_type, NULL, -++ false); +++ skb = br_ip6_multicast_alloc_query(brmctx, pmctx, NULL, &ip6_dst, +++ &group, false, false, false, +++ &igmp_type, NULL, false); ++ if (!skb) ++ return; ++ -++ skb->dev = port->dev; +++ skb->dev = pmctx->port->dev; ++ ether_addr_copy(eth_hdr(skb)->h_dest, eth_dst); ++ -++ br_multicast_count(br, port, skb, igmp_type, +++ br_multicast_count(brmctx->br, pmctx->port, skb, igmp_type, ++ BR_MCAST_DIR_TX); ++ NF_HOOK(NFPROTO_BRIDGE, NF_BR_LOCAL_OUT, -++ dev_net(port->dev), NULL, skb, NULL, skb->dev, +++ dev_net(pmctx->port->dev), NULL, skb, NULL, skb->dev, ++ br_dev_queue_push_xmit); ++} ++ -++void br_multicast_wakeupcall_rcv(struct net_bridge *br, -++ struct net_bridge_port *port, +++void br_multicast_wakeupcall_rcv(struct net_bridge_mcast *brmctx, +++ struct net_bridge_mcast_port *pmctx, ++ struct sk_buff *skb, u16 vid) ++{ -++ if (!br_multicast_wakeupcall_check(br, port, skb, vid)) +++ if (!br_multicast_wakeupcall_check(brmctx->br, pmctx->port, skb, vid)) ++ return; ++ -++ br_multicast_wakeupcall_send_mldq(br, port, eth_hdr(skb)->h_source); +++ br_multicast_wakeupcall_send_mldq(brmctx, pmctx, +++ eth_hdr(skb)->h_source); ++} ++ ++#endif /* CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS */ ++ -+ static void br_multicast_query_expired(struct net_bridge *br, ++ static void br_multicast_query_expired(struct net_bridge_mcast *brmctx, + struct bridge_mcast_own_query *query, + struct bridge_mcast_querier *querier) -+@@ -3444,6 +3710,15 @@ int br_multicast_set_port_router(struct net_bridge_port *p, unsigned long val) ++@@ -4325,6 +4593,15 @@ int br_multicast_set_vlan_router(struct net_bridge_vlan *v, u8 mcast_router) + return err; + } + @@ -741,14 +718,14 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 ++ return 0; ++} ++ -+ static void br_multicast_start_querier(struct net_bridge *br, ++ static void br_multicast_start_querier(struct net_bridge_mcast *brmctx, + struct bridge_mcast_own_query *query) + { +diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c -+index e8116a4438b9..b544889fb7fe 100644 ++index ae6007309a17..09d4861b7336 100644 +--- a/net/bridge/br_netlink.c ++++ b/net/bridge/br_netlink.c -+@@ -151,6 +151,9 @@ static inline size_t br_port_info_size(void) ++@@ -198,6 +198,9 @@ static inline size_t br_port_info_size(void) + + nla_total_size_64bit(sizeof(u64)) /* IFLA_BRPORT_HOLD_TIMER */ + #ifdef CONFIG_BRIDGE_IGMP_SNOOPING + + nla_total_size(sizeof(u8)) /* IFLA_BRPORT_MULTICAST_ROUTER */ @@ -758,8 +735,8 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + #endif + + nla_total_size(sizeof(u16)) /* IFLA_BRPORT_GROUP_FWD_MASK */ + + nla_total_size(sizeof(u8)) /* IFLA_BRPORT_MRP_RING_OPEN */ -+@@ -243,6 +246,11 @@ static int br_port_fill_attrs(struct sk_buff *skb, -+ p->multicast_router)) ++@@ -296,6 +299,11 @@ static int br_port_fill_attrs(struct sk_buff *skb, ++ p->multicast_eht_hosts_cnt)) + return -EMSGSIZE; + #endif ++#ifdef CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS @@ -770,7 +747,7 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + + /* we might be called only with br->lock */ + rcu_read_lock(); -+@@ -723,6 +731,7 @@ static const struct nla_policy br_port_policy[IFLA_BRPORT_MAX + 1] = { ++@@ -823,6 +831,7 @@ static const struct nla_policy br_port_policy[IFLA_BRPORT_MAX + 1] = { + [IFLA_BRPORT_PROXYARP_WIFI] = { .type = NLA_U8 }, + [IFLA_BRPORT_MULTICAST_ROUTER] = { .type = NLA_U8 }, + [IFLA_BRPORT_MCAST_TO_UCAST] = { .type = NLA_U8 }, @@ -778,7 +755,7 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + [IFLA_BRPORT_MCAST_FLOOD] = { .type = NLA_U8 }, + [IFLA_BRPORT_BCAST_FLOOD] = { .type = NLA_U8 }, + [IFLA_BRPORT_VLAN_TUNNEL] = { .type = NLA_U8 }, -+@@ -872,6 +881,16 @@ static int br_setport(struct net_bridge_port *p, struct nlattr *tb[]) ++@@ -952,6 +961,16 @@ static int br_setport(struct net_bridge_port *p, struct nlattr *tb[], + } + #endif + @@ -796,13 +773,13 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + u16 fwd_mask = nla_get_u16(tb[IFLA_BRPORT_GROUP_FWD_MASK]); + +diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h -+index 61b5b81b6828..6390d2fe88f6 100644 ++index bd218c2b2cd9..32191519b500 100644 +--- a/net/bridge/br_private.h ++++ b/net/bridge/br_private.h -+@@ -214,6 +214,10 @@ struct net_bridge_fdb_entry { -+ }; -+ struct rcu_head rcu; -+ }; ++@@ -269,6 +269,10 @@ struct net_bridge_fdb_entry { ++ unsigned long used; ++ ++ struct rcu_head rcu; ++ ++#ifdef CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS ++ struct timer_list wakeupcall_timer; @@ -810,28 +787,29 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + }; + + #define MDB_PG_FLAGS_PERMANENT BIT(0) -+@@ -333,6 +337,7 @@ struct net_bridge_port { -+ struct timer_list multicast_router_timer; ++@@ -382,6 +386,7 @@ struct net_bridge_port { ++ u32 multicast_eht_hosts_limit; ++ u32 multicast_eht_hosts_cnt; + struct hlist_head mglist; -+ struct hlist_node rlist; ++ u8 wakeupcall_num_rings; + #endif + + #ifdef CONFIG_SYSFS -+@@ -1065,6 +1070,20 @@ static inline int br_multicast_igmp_type(const struct sk_buff *skb) ++@@ -1418,6 +1423,21 @@ br_multicast_ctx_options_equal(const struct net_bridge_mcast *brmctx1, + } + #endif + ++#ifdef CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS -++void br_multicast_wakeupcall_rcv(struct net_bridge *br, -++ struct net_bridge_port *port, +++void br_multicast_wakeupcall_rcv(struct net_bridge_mcast *brmctx, +++ struct net_bridge_mcast_port *pmctx, ++ struct sk_buff *skb, u16 vid); ++void br_multicast_send_wakeupcall(struct timer_list *t); ++int br_multicast_set_wakeupcall(struct net_bridge_port *p, unsigned long val); ++#else -++static inline void br_multicast_wakeupcall_rcv(struct net_bridge *br, -++ struct net_bridge_port *port, -++ struct sk_buff *skb, u16 vid) +++static inline void +++br_multicast_wakeupcall_rcv(struct net_bridge_mcast *brmctx, +++ struct net_bridge_mcast_port *pmctx, +++ struct sk_buff *skb, u16 vid) ++{ ++} ++#endif /* CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS */ @@ -840,10 +818,10 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + #ifdef CONFIG_BRIDGE_VLAN_FILTERING + bool br_allowed_ingress(const struct net_bridge *br, +diff --git a/net/bridge/br_sysfs_if.c b/net/bridge/br_sysfs_if.c -+index 969eb6ca0776..88b74a5a7ccb 100644 ++index 9ee9c60738e2..9dcd4a9204db 100644 +--- a/net/bridge/br_sysfs_if.c ++++ b/net/bridge/br_sysfs_if.c -+@@ -254,6 +254,21 @@ BRPORT_ATTR_FLAG(multicast_fast_leave, BR_MULTICAST_FAST_LEAVE); ++@@ -260,6 +260,21 @@ BRPORT_ATTR_FLAG(multicast_fast_leave, BR_MULTICAST_FAST_LEAVE); + BRPORT_ATTR_FLAG(multicast_to_unicast, BR_MULTICAST_TO_UNICAST); + #endif + @@ -865,7 +843,7 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + static const struct brport_attribute *brport_attrs[] = { + &brport_attr_path_cost, + &brport_attr_priority, -+@@ -279,6 +294,9 @@ static const struct brport_attribute *brport_attrs[] = { ++@@ -285,6 +300,9 @@ static const struct brport_attribute *brport_attrs[] = { + &brport_attr_multicast_router, + &brport_attr_multicast_fast_leave, + &brport_attr_multicast_to_unicast, @@ -876,15 +854,15 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + &brport_attr_proxyarp, + &brport_attr_proxyarp_wifi, +diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c -+index ccb62f7d1054..3b269aafd3b5 100644 ++index e0fa875832a0..caf454185dc8 100644 +--- a/net/core/rtnetlink.c ++++ b/net/core/rtnetlink.c +@@ -55,7 +55,7 @@ + #include + + #define RTNL_MAX_TYPE 50 -+-#define RTNL_SLAVE_MAX_TYPE 37 -++#define RTNL_SLAVE_MAX_TYPE 38 ++-#define RTNL_SLAVE_MAX_TYPE 41 +++#define RTNL_SLAVE_MAX_TYPE 42 + + struct rtnl_link { + rtnl_doit_func doit; @@ -910,5 +888,5 @@ index 0000000000000000000000000000000000000000..17df35fe4a812b5b5118beb9239bf825 + /** + * ipv6_mc_check_mld - checks whether this is a sane MLD packet +-- -+2.36.1 ++2.40.1 + diff --git a/patches/openwrt/0005-ramips-add-MT7621-WiFi-devpath-migration.patch b/patches/openwrt/0005-ramips-add-MT7621-WiFi-devpath-migration.patch deleted file mode 100644 index 5e02c78041..0000000000 --- a/patches/openwrt/0005-ramips-add-MT7621-WiFi-devpath-migration.patch +++ /dev/null @@ -1,53 +0,0 @@ -From: David Bauer -Date: Sat, 18 Jun 2022 02:37:56 +0200 -Subject: ramips: add MT7621 WiFi devpath migration - -Add a migration script to migrate the device path of PCIe WiFi hardware -from OpenWrt 19.07 to the one used with OpenWrt 21.02+. - -Signed-off-by: David Bauer - -diff --git a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/00-wifi-migration b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/00-wifi-migration -new file mode 100644 -index 0000000000000000000000000000000000000000..17fd4a58ff2d56694743e149292746c136b6f27a ---- /dev/null -+++ b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/00-wifi-migration -@@ -0,0 +1,38 @@ -+#!/bin/sh -+ -+# Migrate WiFi path from 19.07 to 21.02+ -+ -+WIFI_PATH_CHANGED=0 -+ -+. /lib/functions.sh -+ -+migrate_wifi_path() { -+ local section="$1" -+ local path -+ -+ config_get path ${section} path -+ case ${path} in -+ "pci0000:00/0000:00:00.0/0000:01:00.0") -+ path="1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0" -+ WIFI_PATH_CHANGED=1 -+ ;; -+ "pci0000:00/0000:00:01.0/0000:02:00.0") -+ path="1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0" -+ WIFI_PATH_CHANGED=1 -+ ;; -+ *) -+ return 0 -+ ;; -+ esac -+ -+ uci set wireless.${section}.path=${path} -+} -+ -+[ "${ACTION}" = "add" ] && { -+ [ ! -e /etc/config/wireless ] && return 0 -+ -+ config_load wireless -+ config_foreach migrate_wifi_path wifi-device -+ -+ [ "${WIFI_PATH_CHANGED}" = "1" ] && uci commit wireless -+} diff --git a/patches/openwrt/0006-lantiq-xrx200-make-DSA-images-swconfig-upgradable.patch b/patches/openwrt/0006-lantiq-xrx200-make-DSA-images-swconfig-upgradable.patch deleted file mode 100644 index 061a898c9f..0000000000 --- a/patches/openwrt/0006-lantiq-xrx200-make-DSA-images-swconfig-upgradable.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: David Bauer -Date: Tue, 5 Jul 2022 23:49:31 +0200 -Subject: lantiq-xrx200: make DSA images swconfig upgradable - -diff --git a/target/linux/lantiq/image/tp-link.mk b/target/linux/lantiq/image/tp-link.mk -index 756105b94c7f844439132ab57837c9ac87d231ca..5563968de9ab3f491fa89d755fcc6e6fff79948f 100644 ---- a/target/linux/lantiq/image/tp-link.mk -+++ b/target/linux/lantiq/image/tp-link.mk -@@ -1,7 +1,7 @@ - DEVICE_VARS += TPLINK_FLASHLAYOUT TPLINK_HWID TPLINK_HWREV TPLINK_HWREVADD TPLINK_HVERSION - - define Device/dsa-migration -- DEVICE_COMPAT_VERSION := 1.1 -+ DEVICE_COMPAT_VERSION := 1.0 - DEVICE_COMPAT_MESSAGE := Config cannot be migrated from swconfig to DSA - endef - -diff --git a/target/linux/lantiq/image/vr9.mk b/target/linux/lantiq/image/vr9.mk -index deea3996670fcef6d2a546373425c4ca5d92734b..d23b80e94e5548ccb19738f22c29c75fa19ab1e7 100644 ---- a/target/linux/lantiq/image/vr9.mk -+++ b/target/linux/lantiq/image/vr9.mk -@@ -1,7 +1,7 @@ - DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID - - define Device/dsa-migration -- DEVICE_COMPAT_VERSION := 1.1 -+ DEVICE_COMPAT_VERSION := 1.0 - DEVICE_COMPAT_MESSAGE := Config cannot be migrated from swconfig to DSA - endef - diff --git a/patches/openwrt/0008-hostapd-don-t-select-indoor-channel-on-outdoor-operation.patch b/patches/openwrt/0008-hostapd-don-t-select-indoor-channel-on-outdoor-operation.patch deleted file mode 100644 index 4d3909e21a..0000000000 --- a/patches/openwrt/0008-hostapd-don-t-select-indoor-channel-on-outdoor-operation.patch +++ /dev/null @@ -1,74 +0,0 @@ -From: David Bauer -Date: Sat, 10 Sep 2022 01:06:02 +0200 -Subject: hostapd: don't select indoor channel on outdoor operation - -Don't select channels designated for exclusive-indoor use when the -country3 element is set on outdoor operation. - -Signed-off-by: David Bauer -(cherry picked from commit 5110cf7ebdd5af57f98fe4581ce4c5ddb0a2bf86) - -diff --git a/package/network/services/hostapd/patches/800-acs-don-t-select-indoor-channel-on-outdoor-operation.patch b/package/network/services/hostapd/patches/800-acs-don-t-select-indoor-channel-on-outdoor-operation.patch -new file mode 100644 -index 0000000000000000000000000000000000000000..96ebdefae9e710a350fa44a359896071b142af67 ---- /dev/null -+++ b/package/network/services/hostapd/patches/800-acs-don-t-select-indoor-channel-on-outdoor-operation.patch -@@ -0,0 +1,58 @@ -+From 37528a5205cb0b9e2238b7d97fb2ff5457448f1c Mon Sep 17 00:00:00 2001 -+From: David Bauer -+Date: Thu, 8 Sep 2022 01:45:41 +0200 -+Subject: [PATCH] acs: don't select indoor channel on outdoor operation -+ -+Don't select channels designated for exclusive-indoor use when the -+country3 element is set on outdoor operation. -+ -+Signed-off-by: David Bauer -+--- -+ src/ap/acs.c | 9 +++++++++ -+ src/ap/dfs.c | 3 +++ -+ 2 files changed, 12 insertions(+) -+ -+--- a/src/ap/acs.c -++++ b/src/ap/acs.c -+@@ -552,6 +552,9 @@ static void acs_survey_mode_interference -+ if (chan->max_tx_power < iface->conf->min_tx_power) -+ continue; -+ -++ if (chan->flag & HOSTAPD_CHAN_INDOOR_ONLY && iface->conf->country[2] == 0x4f) -++ continue; -++ -+ wpa_printf(MSG_DEBUG, "ACS: Survey analysis for channel %d (%d MHz)", -+ chan->chan, chan->freq); -+ -+@@ -686,6 +689,9 @@ acs_find_ideal_chan_mode(struct hostapd_ -+ if (chan->max_tx_power < iface->conf->min_tx_power) -+ continue; -+ -++ if (chan->flag & HOSTAPD_CHAN_INDOOR_ONLY && iface->conf->country[2] == 0x4f) -++ continue; -++ -+ if (!chan_bw_allowed(chan, bw, 1, 1)) { -+ wpa_printf(MSG_DEBUG, -+ "ACS: Channel %d: BW %u is not supported", -+@@ -1065,6 +1071,9 @@ static int * acs_request_scan_add_freqs( -+ if (chan->max_tx_power < iface->conf->min_tx_power) -+ continue; -+ -++ if (chan->flag & HOSTAPD_CHAN_INDOOR_ONLY && iface->conf->country[2] == 0x4f) -++ continue; -++ -+ *freq++ = chan->freq; -+ } -+ -+--- a/src/ap/dfs.c -++++ b/src/ap/dfs.c -+@@ -282,6 +282,9 @@ static int dfs_find_channel(struct hosta -+ if (chan->max_tx_power < iface->conf->min_tx_power) -+ continue; -+ -++ if (chan->flag & HOSTAPD_CHAN_INDOOR_ONLY && iface->conf->country[2] == 0x4f) -++ continue; -++ -+ if (ret_chan && idx == channel_idx) { -+ wpa_printf(MSG_DEBUG, "Selected channel %d (%d)", -+ chan->freq, chan->chan); diff --git a/patches/openwrt/0010-kconfig-abort-configuration-on-unset-symbol.patch b/patches/openwrt/0010-kconfig-abort-configuration-on-unset-symbol.patch deleted file mode 100644 index 5116508c63..0000000000 --- a/patches/openwrt/0010-kconfig-abort-configuration-on-unset-symbol.patch +++ /dev/null @@ -1,75 +0,0 @@ -From: David Bauer -Date: Fri, 11 Nov 2022 13:37:07 +0100 -Subject: kconfig: abort configuration on unset symbol - -This fixes the initial patch to cover all cases where unset symbols are -handled in the code. - -Fixes commit eaa9c94c7574 ("generic: Kconfig: exit on unset symbol") - -Signed-off-by: David Bauer - -diff --git a/target/linux/generic/hack-5.10/205-kconfig-abort-configuration-on-unset-symbol.patch b/target/linux/generic/hack-5.10/205-kconfig-abort-configuration-on-unset-symbol.patch -new file mode 100644 -index 0000000000000000000000000000000000000000..bd5c54d4b8b73b36c9f5b809447a8e76fce19e5d ---- /dev/null -+++ b/target/linux/generic/hack-5.10/205-kconfig-abort-configuration-on-unset-symbol.patch -@@ -0,0 +1,41 @@ -+From 310e8e04a05d9eb43fa9dd7f00143300afcaa37a Mon Sep 17 00:00:00 2001 -+From: David Bauer -+Date: Fri, 11 Nov 2022 13:33:44 +0100 -+Subject: [PATCH] kconfig: abort configuration on unset symbol -+ -+When a target configuration has unset Kconfig symbols, the build will -+fail when OpenWrt is compiled with V=s and stdin is connected to a tty. -+ -+In case OpenWrt is compiled without either of these preconditions, the -+build will succeed with the symbols in question being unset. -+ -+Modify the kernel configuration in a way it fails on unset symbols -+regardless of the aforementioned preconditions. -+ -+Signed-off-by: David Bauer -+--- -+ scripts/kconfig/conf.c | 6 ++++++ -+ 1 file changed, 6 insertions(+) -+ -+--- a/scripts/kconfig/conf.c -++++ b/scripts/kconfig/conf.c -+@@ -109,6 +109,9 @@ static int conf_askvalue(struct symbol * -+ } -+ /* fall through */ -+ case oldaskconfig: -++ if (!tty_stdio && getenv("FAIL_ON_UNCONFIGURED")) { -++ exit(1); -++ } -+ fflush(stdout); -+ xfgets(line, sizeof(line), stdin); -+ return 1; -+@@ -303,6 +306,9 @@ static int conf_choice(struct menu *menu -+ } -+ /* fall through */ -+ case oldaskconfig: -++ if (!tty_stdio && getenv("FAIL_ON_UNCONFIGURED")) { -++ exit(1); -++ } -+ fflush(stdout); -+ xfgets(line, sizeof(line), stdin); -+ strip(line); -diff --git a/target/linux/generic/hack-5.10/205-kconfig-exit.patch b/target/linux/generic/hack-5.10/205-kconfig-exit.patch -deleted file mode 100644 -index c3fb7a1f999e56da34b0a15565ce36098cfba7fb..0000000000000000000000000000000000000000 ---- a/target/linux/generic/hack-5.10/205-kconfig-exit.patch -+++ /dev/null -@@ -1,11 +0,0 @@ ----- a/scripts/kconfig/conf.c --+++ b/scripts/kconfig/conf.c --@@ -215,6 +215,8 @@ static int conf_sym(struct menu *menu) -- break; -- continue; -- case 0: --+ if (!sym_has_value(sym) && !tty_stdio && getenv("FAIL_ON_UNCONFIGURED")) --+ exit(1); -- newval = oldval; -- break; -- case '?': diff --git a/patches/openwrt/0011-ath79-combine-OCEDO-dual-firmware-partitions.patch b/patches/openwrt/0011-ath79-combine-OCEDO-dual-firmware-partitions.patch deleted file mode 100644 index 1a217ca06a..0000000000 --- a/patches/openwrt/0011-ath79-combine-OCEDO-dual-firmware-partitions.patch +++ /dev/null @@ -1,115 +0,0 @@ -From: David Bauer -Date: Tue, 15 Nov 2022 15:25:40 +0100 -Subject: ath79: combine OCEDO dual firmware-partitions - -In order to maximize the available space on OCEDO boards using a -dual-image partition layout, combine the two OS partitions into a single -partition. - -This allows users to access more usable space for additional packages. - -Don't limit the usable image size to the size of a single OS partition. -The initial installation has to be done with an older version of OpenWrt -in case the generated image exceeds the space of a single OS -partition in the future. - -Signed-off-by: David Bauer -(cherry picked from commit eded295cd7fd53bfa5afcb67a1b91cfda0523ba6) - -diff --git a/target/linux/ath79/dts/ar9344_ocedo_raccoon.dts b/target/linux/ath79/dts/ar9344_ocedo_raccoon.dts -index 0bbeb2b533b3fbbdcce53e094412d459ee762d85..3ecd20e2aa8fe04164cddbc84e0eb800e049c011 100644 ---- a/target/linux/ath79/dts/ar9344_ocedo_raccoon.dts -+++ b/target/linux/ath79/dts/ar9344_ocedo_raccoon.dts -@@ -91,15 +91,10 @@ - }; - - partition@50000 { -+ /* Dual-Flash layout combined */ - compatible = "denx,uimage"; - label = "firmware"; -- reg = <0x050000 0x740000>; -- }; -- -- partition@790000 { -- label = "vendor"; -- reg = <0x790000 0x740000>; -- read-only; -+ reg = <0x050000 0xe80000>; - }; - - partition@ed0000 { -diff --git a/target/linux/ath79/dts/qca9558_ocedo_koala.dts b/target/linux/ath79/dts/qca9558_ocedo_koala.dts -index 66f8c6589b20221edc41a2f882b28229ff8633b9..de9e1bc19c4d03707f5b921ee5e9fe7422f461bb 100644 ---- a/target/linux/ath79/dts/qca9558_ocedo_koala.dts -+++ b/target/linux/ath79/dts/qca9558_ocedo_koala.dts -@@ -88,15 +88,10 @@ - }; - - partition@50000 { -+ /* Dual-Flash layout combined */ - compatible = "denx,uimage"; - label = "firmware"; -- reg = <0x050000 0x740000>; -- }; -- -- partition@790000 { -- label = "vendor"; -- reg = <0x790000 0x740000>; -- read-only; -+ reg = <0x050000 0xe80000>; - }; - - partition@ed0000 { -diff --git a/target/linux/ath79/dts/qca9558_ocedo_ursus.dts b/target/linux/ath79/dts/qca9558_ocedo_ursus.dts -index 2dc4c07e918c50eb522100eb7f72c8804d5ba5fb..f8b3681bb7f143a498d5cb64897af335b970c43b 100644 ---- a/target/linux/ath79/dts/qca9558_ocedo_ursus.dts -+++ b/target/linux/ath79/dts/qca9558_ocedo_ursus.dts -@@ -59,15 +59,10 @@ - }; - - partition@50000 { -+ /* Dual-Flash layout combined */ - compatible = "denx,uimage"; - label = "firmware"; -- reg = <0x050000 0x740000>; -- }; -- -- partition@790000 { -- label = "vendor"; -- reg = <0x790000 0x740000>; -- read-only; -+ reg = <0x050000 0xe80000>; - }; - - partition@ed0000 { -diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk -index f1542e4e38f7540dd9facf4c40f0b271b9ea1e45..87d01a42eda274f9197f3382d955b87ecf615f7d 100644 ---- a/target/linux/ath79/image/generic.mk -+++ b/target/linux/ath79/image/generic.mk -@@ -1803,7 +1803,7 @@ define Device/ocedo_koala - DEVICE_MODEL := Koala - DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct - SUPPORTED_DEVICES += koala -- IMAGE_SIZE := 7424k -+ IMAGE_SIZE := 14848k - endef - TARGET_DEVICES += ocedo_koala - -@@ -1811,7 +1811,7 @@ define Device/ocedo_raccoon - SOC := ar9344 - DEVICE_VENDOR := Ocedo - DEVICE_MODEL := Raccoon -- IMAGE_SIZE := 7424k -+ IMAGE_SIZE := 14848k - endef - TARGET_DEVICES += ocedo_raccoon - -@@ -1820,7 +1820,7 @@ define Device/ocedo_ursus - DEVICE_VENDOR := Ocedo - DEVICE_MODEL := Ursus - DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct -- IMAGE_SIZE := 7424k -+ IMAGE_SIZE := 14848k - endef - TARGET_DEVICES += ocedo_ursus - diff --git a/patches/openwrt/0012-ath79-combine-UniFi-AC-dual-firmware-partitions.patch b/patches/openwrt/0012-ath79-combine-UniFi-AC-dual-firmware-partitions.patch deleted file mode 100644 index a67277f05f..0000000000 --- a/patches/openwrt/0012-ath79-combine-UniFi-AC-dual-firmware-partitions.patch +++ /dev/null @@ -1,55 +0,0 @@ -From: David Bauer -Date: Thu, 17 Nov 2022 22:53:33 +0100 -Subject: ath79: combine UniFi AC dual firmware-partitions - -In order to maximize the available space on UniFi AC boards using a -dual-image partition layout, combine the two OS partitions into a single -partition. - -This allows users to access more usable space for additional packages. - -Don't limit the usable image size to the size of a single OS partition. -The initial installation has to be done with an older version of OpenWrt -in case the generated image exceeds the space of a single kernel -partition in the future. - -Signed-off-by: David Bauer -(cherry picked from commit e4a76673ff4f655ba0698d9edb9efbacd0f82fff) - -diff --git a/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi b/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi -index 2e407c348642cf5145f79c15288856fa141b0512..6704ec983b0beed5421a59f663cf8db6d650f559 100644 ---- a/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi -+++ b/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi -@@ -69,17 +69,12 @@ - }; - - partition@70000 { -+ /* Combine kernel0 & kernel1 */ - label = "firmware"; -- reg = <0x070000 0x790000>; -+ reg = <0x070000 0xf20000>; - compatible = "denx,uimage"; - }; - -- partition@800000 { -- label = "kernel1"; -- reg = <0x800000 0x790000>; -- read-only; -- }; -- - partition@f90000 { - label = "bs"; - reg = <0xf90000 0x020000>; -diff --git a/target/linux/ath79/image/generic-ubnt.mk b/target/linux/ath79/image/generic-ubnt.mk -index 7642c59e02848741996d6f9dcaf923d5dbaf6880..d6898c79d6b4d51d19813781e086db8086537318 100644 ---- a/target/linux/ath79/image/generic-ubnt.mk -+++ b/target/linux/ath79/image/generic-ubnt.mk -@@ -221,7 +221,7 @@ TARGET_DEVICES += ubnt_unifi - define Device/ubnt_unifiac - DEVICE_VENDOR := Ubiquiti - SOC := qca9563 -- IMAGE_SIZE := 7744k -+ IMAGE_SIZE := 15488k - DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct - endef - diff --git a/patches/openwrt/0013-mac80211-mask-nested-A-MSDU-support-for-mesh.patch b/patches/openwrt/0013-mac80211-mask-nested-A-MSDU-support-for-mesh.patch deleted file mode 100644 index 90d9d2d3e8..0000000000 --- a/patches/openwrt/0013-mac80211-mask-nested-A-MSDU-support-for-mesh.patch +++ /dev/null @@ -1,55 +0,0 @@ -From: David Bauer -Date: Fri, 8 Oct 2021 00:30:23 +0200 -Subject: mac80211: mask nested A-MSDU support for mesh - -mac80211 incorrectly processes A-MSDUs contained in A-MPDU frames. This -results in dropped packets and severely impacted throughput. - -As a workaround, don't indicate support for A-MSDUs contained in -A-MPDUs. This improves throughput over mesh links by factor 10. - -This patch can be dropped after verifying OpenWrt 23.xx fixes do indeed -fix this issue. - -Ref: https://github.com/openwrt/mt76/issues/450 - -Signed-off-by: David Bauer -(cherry picked from commit f96744ba6b2fd444f4f7575d234c7579bd3030cd) - -diff --git a/package/kernel/mac80211/patches/subsys/800-mac80211-mask-nested-A-MSDU-support-for-mesh.patch b/package/kernel/mac80211/patches/subsys/800-mac80211-mask-nested-A-MSDU-support-for-mesh.patch -new file mode 100644 -index 0000000000000000000000000000000000000000..415c6dfb803639cd726ee3f9b35359712b3e075d ---- /dev/null -+++ b/package/kernel/mac80211/patches/subsys/800-mac80211-mask-nested-A-MSDU-support-for-mesh.patch -@@ -0,0 +1,31 @@ -+From 313d8c18385f10957402b475f9b0c209ceab6c5a Mon Sep 17 00:00:00 2001 -+From: David Bauer -+Date: Fri, 8 Oct 2021 00:25:19 +0200 -+Subject: [PATCH] mac80211: mask nested A-MSDU support for mesh -+ -+mac80211 incorrectly processes A-MSDUs contained in A-MPDU frames. This -+results in dropped packets and severely impacted throughput. -+ -+As a workaround, don't indicate support for A-MSDUs contained in -+A-MPDUs. This improves throughput over mesh links by factor 10. -+ -+Ref: https://github.com/openwrt/mt76/issues/450 -+ -+Signed-off-by: David Bauer -+--- -+ net/mac80211/agg-rx.c | 4 +++- -+ 1 file changed, 3 insertions(+), 1 deletion(-) -+ -+--- a/net/mac80211/agg-rx.c -++++ b/net/mac80211/agg-rx.c -+@@ -251,7 +251,9 @@ static void ieee80211_send_addba_resp(st -+ mgmt->u.action.u.addba_resp.action_code = WLAN_ACTION_ADDBA_RESP; -+ mgmt->u.action.u.addba_resp.dialog_token = dialog_token; -+ -+- capab = u16_encode_bits(amsdu, IEEE80211_ADDBA_PARAM_AMSDU_MASK); -++ capab = 0; -++ if (!sta->mesh) -++ capab = u16_encode_bits(amsdu, IEEE80211_ADDBA_PARAM_AMSDU_MASK); -+ capab |= u16_encode_bits(policy, IEEE80211_ADDBA_PARAM_POLICY_MASK); -+ capab |= u16_encode_bits(tid, IEEE80211_ADDBA_PARAM_TID_MASK); -+ capab |= u16_encode_bits(buf_size, IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK); diff --git a/patches/packages/packages/0001-perl-don-t-build-in-parallel-and-bump-release.patch b/patches/packages/packages/0001-perl-don-t-build-in-parallel-and-bump-release.patch index 35c03582e6..49e0da3d64 100644 --- a/patches/packages/packages/0001-perl-don-t-build-in-parallel-and-bump-release.patch +++ b/patches/packages/packages/0001-perl-don-t-build-in-parallel-and-bump-release.patch @@ -8,7 +8,7 @@ https://github.com/openwrt/packages/issues/8238 https://github.com/openwrt/packages/pull/17274 diff --git a/lang/perl/Makefile b/lang/perl/Makefile -index 99302cb1a4414c309b238342d3f1b8bc7f43dd47..66c6ce7aaf342e404b8d9a133a7e396d0108a31f 100644 +index 40532b5f0163ffffc3ce8dfb697592c3a81e0af0..17e9202847b555a8e78a14f22b3536c2ceef9dd7 100644 --- a/lang/perl/Makefile +++ b/lang/perl/Makefile @@ -34,8 +34,8 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/perl/$(PKG_NAME)-$(PKG_VERSION) diff --git a/patches/packages/routing/0004-oonf-olsrd2-add-support-to-check-if-service-is-running.patch b/patches/packages/routing/0004-oonf-olsrd2-add-support-to-check-if-service-is-running.patch deleted file mode 100644 index 4b8c9aad76..0000000000 --- a/patches/packages/routing/0004-oonf-olsrd2-add-support-to-check-if-service-is-running.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Maciej Krüger -Date: Sun, 10 Apr 2022 01:58:41 +0200 -Subject: oonf-olsrd2: add support to check if service is running - -diff --git a/oonf-olsrd2/files/olsrd2.init b/oonf-olsrd2/files/olsrd2.init -index debae9883258b821a5ea0aecebe879ddc84e29eb..b6c1e9a5522788005db850ceaf6699aa1eee6877 100755 ---- a/oonf-olsrd2/files/olsrd2.init -+++ b/oonf-olsrd2/files/olsrd2.init -@@ -3,4 +3,11 @@ - START=82 - DAEMON='olsrd2' - -+running() { -+ test -e "/tmp/run/olsrd2.pid" && test -e "/proc/$(cat "/tmp/run/olsrd2.pid")" && return 0 -+ return 1 -+} -+ -+extra_command "running" "Check if service is running" -+ - . /lib/functions/oonf_init.sh diff --git a/patches/packages/routing/0005-oonf-olsrd2-fix-building-with-multiple-plugins.patch b/patches/packages/routing/0005-oonf-olsrd2-fix-building-with-multiple-plugins.patch deleted file mode 100644 index df37b7e803..0000000000 --- a/patches/packages/routing/0005-oonf-olsrd2-fix-building-with-multiple-plugins.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Maciej Krüger -Date: Mon, 2 Jan 2023 01:45:37 +0100 -Subject: oonf-olsrd2: fix building with multiple plugins - -Code to replace colons wasn't working (debian stable) -Took it from stackoverflow, works now - -diff --git a/oonf-olsrd2/Makefile b/oonf-olsrd2/Makefile -index 40190edb72547587bc53bb3bee150398b7413aa2..6067003a846340fb0e6221c2473959480b12fb4b 100644 ---- a/oonf-olsrd2/Makefile -+++ b/oonf-olsrd2/Makefile -@@ -17,8 +17,8 @@ CMAKE_INSTALL:=1 - include $(INCLUDE_DIR)/package.mk - include $(INCLUDE_DIR)/cmake.mk - --SPACE:= --SPACE+= -+# ref https://stackoverflow.com/a/10571900/3990041 -+SPACE:= $(subst ,, ) - CMAKE_OPTIONAL_PLUGINS:= $(subst $(SPACE),;,$(strip \ - $(if $(filter y,$(CONFIG_OONF_NHDP_AUTOLL4)),auto_ll4,) \ - $(if $(filter y,$(CONFIG_OONF_OLSRV2_LAN_IMPORT)),lan_import,) \ diff --git a/patches/packages/routing/0006-oonf-olsrd2-add-missing-static-plugin-olsrv2_lan.patch b/patches/packages/routing/0006-oonf-olsrd2-add-missing-static-plugin-olsrv2_lan.patch deleted file mode 100644 index 7d9c3a4bc1..0000000000 --- a/patches/packages/routing/0006-oonf-olsrd2-add-missing-static-plugin-olsrv2_lan.patch +++ /dev/null @@ -1,40 +0,0 @@ -From: Patrick Grimm -Date: Sun, 8 Jan 2023 18:14:36 +0100 -Subject: oonf-olsrd2: add missing static plugin olsrv2_lan - -Signed-off-by: Patrick Grimm - -diff --git a/oonf-olsrd2/Config.in b/oonf-olsrd2/Config.in -index 1cc037aff3ebc9a2a1ea2d2c94857d62b8b28006..b0d7d7cb2767f7b12d089ccd44042e6788dcf9de 100644 ---- a/oonf-olsrd2/Config.in -+++ b/oonf-olsrd2/Config.in -@@ -44,4 +44,16 @@ - The MPR plugin reduce the routing graph to limit the overhead of the OLSRv2 protocol - default n - -+ config OONF_OLSRV2_LAN -+ bool "New config option for Locally attached entries" -+ help -+ Adds the 'lan' section to the config to configure LANs without setting multiple settings in a single key/value pair -+ default y -+ -+ config OONF_OLSRV2_OLD_LAN -+ bool "Legacy option for Locally attached entries" -+ help -+ Adds the olsr 'lan' config key in the olsrv2 section -+ default n -+ - endmenu -diff --git a/oonf-olsrd2/Makefile b/oonf-olsrd2/Makefile -index 6067003a846340fb0e6221c2473959480b12fb4b..f3d81fcfe61936635280afd997ec487ed0ffa2fc 100644 ---- a/oonf-olsrd2/Makefile -+++ b/oonf-olsrd2/Makefile -@@ -27,6 +27,8 @@ CMAKE_OPTIONAL_PLUGINS:= $(subst $(SPACE),;,$(strip \ - $(if $(filter y,$(CONFIG_OONF_GENERIC_REMOTECONTROL)),remotecontrol,) \ - $(if $(filter y,$(CONFIG_OONF_OLSRV2_MPR)),mpr,) \ - $(if $(filter y,$(CONFIG_OONF_GENERIC_HTTP)),http,) \ -+ $(if $(filter y,$(CONFIG_OONF_OLSRV2_LAN)),olsrv2_lan,) \ -+ $(if $(filter y,$(CONFIG_OONF_OLSRV2_OLD_LAN)),olsrv2_old_lan,) \ - )) - - BUILD_TYPE:= $(if $(filter y,$(CONFIG_DEBUG)),Debug,Release) diff --git a/patches/packages/routing/0007-oonf-olsrd2-change-to-git-version-from-2022-08-25.patch b/patches/packages/routing/0007-oonf-olsrd2-change-to-git-version-from-2022-08-25.patch deleted file mode 100644 index 29c04eb665..0000000000 --- a/patches/packages/routing/0007-oonf-olsrd2-change-to-git-version-from-2022-08-25.patch +++ /dev/null @@ -1,238 +0,0 @@ -From: Patrick Grimm -Date: Fri, 13 Jan 2023 14:28:28 +0100 -Subject: oonf-olsrd2: change to git version from 2022-08-25 - -Compile tested: mips_24kc, arm_cortex-a9_vfpv3-d16, i386_pentium4, x86_64, i386_pentium-mmx, mipsel_24kc -Description: -fb15d54d (HEAD -> master, origin/master, origin/HEAD) Merge pull request #23 from fhuberts/master -a8e81e99 Merge pull request #43 from jpo-github-work/no-dh-systemd -8cc65a10 Merge pull request #48 from jpo-github-work/fix_lan_import -c7d404f8 build lan_import -bbbd4f3d the package dh-systemd is not longer present in recent Ubuntu versions -1bd73550 Merge pull request #42 from jpo-github-work/master -1a5fa2a7 add missing extern to global symbol -a0750337 Merge pull request #40 from trofi/fix-gcc-10-build -5ea168ce fix build for gcc-10 (-fno-common default) -02f69178 Merge pull request #7 from aaaaalbert/rename-to-BUILDING.md-#4 -9dc46726 Merge pull request #26 from sumpfralle/patch-1 -ced3ace0 Fix schema name for logging in README -c6dd02a1 test_config_delta: fix the build on GCC 9 -8397c64e Merge pull request #19 in FKIEA/oonf-os from develop to master -1d227500 Merge pull request #18 in FKIEA/oonf-os from bugfix/MOTOR-65-oonf-does-not-compile-cleanly-on-current-lede to develop -f40be238 include unistd.h in oonf.h to keep modern GCC (e.g. in LEDE) from complaining about ssize_t -8f2408f7 Merge pull request #17 in FKIEA/oonf-os from bugfix/MOTOR-62-fix-segfault-in-layer2_import to develop -95fbcb35 Do avl_for_each_elements_with_key_safe() by hand until we had a closer look at the macro -3fcd8fc5 Merge pull request #16 in FKIEA/oonf-os from bugfix/MOTOR-61-fix-clock-conversion-to-from-string to develop -e9b08759 use scaling factor when dealing with fixed integer conversion calls -65dc25e8 Merge pull request #15 in FKIEA/oonf-os from bugfix/MOTOR-60-prevent-division-by-zero-in-dat-metric to develop -2f615dab Prevent division by zero through (malformed) RLQ value -eb59d287 Merge pull request #14 in FKIEA/oonf-os from bugfix/MOTOR-59-fix-nhdp-status-for-ip-level-interfaces to develop -8d424b24 Fix NHDP link status for interfaces without MAC addresses -26557e54 Merge pull request #13 in FKIEA/oonf-os from bugfix/MOTOR-54-add-telnet-command-to-manipulate-layer2-data to develop -eecc3333 Add missing telnet dependency to layer2-config -0e24b09f Merge pull request #12 in FKIEA/oonf-os from feature/MOTOR-57-allow-import-of-non-unicast-routes to develop -965c2f73 Allow "non-unicast" routes to be imported -710b353b Merge pull request #11 in FKIEA/oonf-os from feature/MOTOR-54-add-telnet-command-to-manipulate-layer2-data to develop -243e17e3 Allow setting l2config via telnet -40f24ab9 Partly working telnet code for l2config -1db358dc Merge pull request #10 in FKIEA/oonf-os from feature/MOTOR-54-add-telnet-command-to-manipulate-layer2-data to develop -c33d680e Add LID capability to oonf_layer2 and l2config subsystem -312d09d4 Merge pull request #9 in FKIEA/oonf-os from develop to master -1551b86d Automatic merge from master -> develop -c154c31b Merge pull request #8 in FKIEA/oonf-os from feature/MOTOR-52-ablehnen-von-konfigurationen-mit-unbekannten-werten to develop -bad48ebc Do not accept configuration with unknown sections/values if 'global.failfast' is true. Set 'global.failfast' to true by default -9996fe65 Merge pull request #7 in FKIEA/oonf-os from bugfix/MOTOR-51-vif-socket-is-blocking to develop -05682c0c Make VIF sockets non-blocking -9455e50f Automatic merge from master -> develop -d05cc410 Merge pull request #6 in FKIEA/oonf-os from develop to master -7416ba8d Merge pull request #5 in FKIEA/oonf-os from bugfix/MOTOR-50-olsr-compilation-fails-on-ubuntu-16.04 to develop -63345654 Reorder libraries for testcase creation to prevent Ubuntu 16.04 Bug (MOTOR-50) -3a7e5e8e Automatic merge from master -> develop -d592fbf7 Merge pull request #4 in FKIEA/oonf-os from develop to master -e489f97a Merge pull request #3 in FKIEA/oonf-os from feature/MOTOR-48-tracking-von-metadaten-in-layer2-database to develop -3c1984f8 Fix compilation issue with "no-debug" logging -52c6b569 Merge pull request #2 in FKIEA/oonf-os from feature/MOTOR-48-tracking-von-metadaten-in-layer2-database to develop -3765eb01 Cleanup ffdat metric to be able to import rx_throughput. -bdee26ba Improve combination of DAT speed and L2 throughput values -a1c3ea66 Allow ffdat metric to consider rx_throughput field -c8ec8301 Fix token validation -ad72038e Improve DAT-Metric by shifting hysteresis to the loss side and consider other layer2 parameters -9addfba4 Fix fixed integer arithmetics handling -f9ccd26b Track scaling factors of layer2 data elements. Handle different scaling for DLEP conversion. -603e48e8 Fix router_id for Netjson domain output -6aebcf99 Merge pull request #1 in FKIEA/oonf-os from develop to master -234e9109 Improve hello interval overwriting -7fc0f50b Add SNR to layer2 neighbor data -f9ebcf8e Fix bad 'is in list' test in stream socket processing -29a2a385 Set path prefix length in CMakeListsGlobal -a2ea9186 Replace VIF name pointer with array -e8f04530 Simplify test case creation -271ff097 Move 'enable test' to CMakeListsGlobal.cmake -0482db42 Fix no-debug/no-info compilation -38edcced Add more doxygen comments for layer2 import -becd33bd Merge branch 'feature/MOTOR-47-route-redistribution-for-dlep' of ssh://team.fkie.fraunhofer.de:7999/fkiea/oonf-os into feature/MOTOR-47-route-redistribution-for-dlep -1a709b5c Add missing comment for subsystem shutdown initiation, remove empty files -c7a68650 Fix the handling of neighbor IPs in dlep radio. -c255ead5 Add avl_for_each_elements_with_key_safe() macro and do some basic tests -5f835533 Don't filter for protocol for routes being removed (linux does not report protocol in this case) -83b19c54 Allow imported routed to be combined by l2import into the same l2 network. Allow multiple IP addresses being reported by DLEP -d7d69064 (origin/staging) Merge branch 'develop' into staging -5274ce6a Fix tarball generator -6dd188ed Use relative path for calling archive builder -988aac6e Move included cmake files into CMakeListsGlobal to allow inclusion in wrapper projects -2a072733 Cleanup build installation directories -fc1fbbed Move test include to include directory -4043202f Rename "subsystems" directory to "base" -2e3578ba Add "config query" command to remotecontrol plugin to query a configuration value including default -48c2cdcb Prevent theoretical buffer overlow to make Coverity more happy (Coverity #181104) -19583704 Fix possible Null reference in colored logging (Coverity #188445) -6fa04505 Fix GCC 8 warning about small buffer -356d3b9b Allow wrapped build directory around OONF directory -11be4696 Cleanup and simplify OONF directory strucure -f1a30ade Restructure import of FIB entries to go through the layer2 db allow export of layer2 IP entries to FIB allow transmission of layer2 IP entries over DLEP -32bf829c Remove debugging code accidently left in for LID preparation -f6b884b1 (origin/packet_socket_bug) Hotfix for closing UDP socket behavior mentioned in Github Issue 14 -e7e5b685 Add missing build target for test creation -88efd166 Cleanup build system for tests and add generic 'build_tests' target. -2e5803bd Add more linklayer data options and a better query function -2dac53d9 Restructure ffdat plugin as preparation for external metric calculation Fix compiler warning in routing code -8cb39863 Remove static modifier from olsrv2/nhdp logging sources. Otherwise they cannot be used by the other source files of the plugins. -3a2dd24e Fix return values of DLEP signal processing callbacks -b2e18c91 Fix handling of lid-length TLV in DLEP session ACK -2b7b3ef8 Add doxygen comments for link-id code -bc24cba0 Implement lid_length mechanism into DLEP -b12ef6ea Add basic link-id capability to DLEP -8cc2d03e Add a few example configurations to the repository -1e3fb288 Add support for Link-ID to layer2 database -28adaf5a Remove (done) TODO mark for outgoing TCP connection error handling -2bfbcff3 Improve error handling for failed outgoing TCP connections -1d1e8876 Add better debugging output to packet socket code -3b89103e Fix issues with DLEP udp_mode none and reconnect -d4d64875 Add function to calculate IPv6 address from MAC -bdc2c2e6 Fixes for doxygen comments -5e2a7b48 Fix variable used in layer2 generator loop -a38b6847 Fix DLEP handling of mandatory TLVs -50e4e1b8 Add netaddr constants for MAC48 prefixes for IPv4/6 multicast - -Signed-off-by: Patrick Grimm - -diff --git a/oonf-olsrd2/Makefile b/oonf-olsrd2/Makefile -index f3d81fcfe61936635280afd997ec487ed0ffa2fc..fe00dd1bc7969016856d5c3a19241d7750366352 100644 ---- a/oonf-olsrd2/Makefile -+++ b/oonf-olsrd2/Makefile -@@ -1,16 +1,13 @@ - include $(TOPDIR)/rules.mk - - PKG_NAME:=oonf-olsrd2 --PKG_VERSION:=v0.15.1 --PKG_REV:=bffb88b040659b237c4c91b6b42dbbb47431750e --PKG_RELEASE:=$(PKG_REV) -+PKG_RELEASE:=1 - --PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 --PKG_SOURCE_URL:=https://github.com/OLSR/OONF.git - PKG_SOURCE_PROTO:=git --PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) --PKG_SOURCE_VERSION:=$(PKG_REV) --PKG_MIRROR_HASH:=2e38140e804e7fc0138d0893416c4f19b1ca43bd9de066e8b028bd0d59ac9255 -+PKG_SOURCE_URL:=https://github.com/OLSR/OONF.git -+PKG_SOURCE_DATE:=2022-08-25 -+PKG_SOURCE_VERSION:=fb15d54d6a7a087cb0c5ec37c49804f6ce432396 -+PKG_MIRROR_HASH:=e8b2e7890f7315694649bb26c22be09554cba3724bae5419ea047101a4f5d03d - - CMAKE_INSTALL:=1 - -@@ -40,8 +37,7 @@ CMAKE_OPTIONS+=-D CMAKE_BUILD_TYPE:String=$(BUILD_TYPE) \ - -D UCI:Bool=true \ - -D OONF_APP_DEFAULT_CFG_HANDLER:String=uci \ - -D OONF_STATIC_PLUGINS:String="class;clock;duplicate_set;layer2;packet_socket;rfc5444;socket;stream_socket;telnet;timer;viewer;os_clock;os_fd;os_interface;os_routing;os_system;nhdp;olsrv2;ff_dat_metric;neighbor_probing;nl80211_listener;link_config;layer2info;systeminfo;cfg_uciloader;cfg_compact;nhdpinfo;olsrv2info;netjsoninfo;${CMAKE_OPTIONAL_PLUGINS}" \ -- -D OONF_LIB_GIT:String=v$(PKG_VERSION)-archive \ -- -D OONF_VERSION:String=$(PKG_VERSION) \ -+ -D VERSION_SUB_TAG:String=$(PKG_SOURCE_DATE) \ - -D INSTALL_LIB_DIR:Path=lib/oonf \ - -D INSTALL_INCLUDE_DIR:Path=include/oonf \ - -D INSTALL_CMAKE_DIR:Path=lib/oonf \ -diff --git a/oonf-olsrd2/patches/010-gcc10.patch b/oonf-olsrd2/patches/010-gcc10.patch -deleted file mode 100644 -index e0b141ac8a764e5e3920d155df102560b9fadf24..0000000000000000000000000000000000000000 ---- a/oonf-olsrd2/patches/010-gcc10.patch -+++ /dev/null -@@ -1,40 +0,0 @@ ----- a/src-plugins/generic/nl80211_listener/nl80211_internal.h --+++ b/src-plugins/generic/nl80211_listener/nl80211_internal.h --@@ -49,6 +49,6 @@ -- #include "core/oonf_logging.h" -- -- /* headers only for use inside the NL80211 subsystem */ ---enum oonf_log_source LOG_NL80211; --+extern enum oonf_log_source LOG_NL80211; -- -- #endif /* NL80211_INTERNAL_H_ */ ----- a/src-plugins/nhdp/nhdp/nhdp_internal.h --+++ b/src-plugins/nhdp/nhdp/nhdp_internal.h --@@ -49,8 +49,8 @@ -- #include "core/oonf_logging.h" -- -- /* headers only for use inside the NHDP subsystem */ ---enum oonf_log_source LOG_NHDP; ---enum oonf_log_source LOG_NHDP_R; ---enum oonf_log_source LOG_NHDP_W; --+extern enum oonf_log_source LOG_NHDP; --+extern enum oonf_log_source LOG_NHDP_R; --+extern enum oonf_log_source LOG_NHDP_W; -- -- #endif /* NHDP_INTERNAL_H_ */ ----- a/src-plugins/olsrv2/olsrv2/olsrv2_internal.h --+++ b/src-plugins/olsrv2/olsrv2/olsrv2_internal.h --@@ -50,9 +50,9 @@ -- #include "core/oonf_logging.h" -- -- /* headers only for use inside the OLSRv2 subsystem */ ---EXPORT enum oonf_log_source LOG_OLSRV2; ---EXPORT enum oonf_log_source LOG_OLSRV2_R; ---EXPORT enum oonf_log_source LOG_OLSRV2_ROUTING; ---EXPORT enum oonf_log_source LOG_OLSRV2_W; --+EXPORT extern enum oonf_log_source LOG_OLSRV2; --+EXPORT extern enum oonf_log_source LOG_OLSRV2_R; --+EXPORT extern enum oonf_log_source LOG_OLSRV2_ROUTING; --+EXPORT extern enum oonf_log_source LOG_OLSRV2_W; -- -- #endif /* OLSRV2_INTERNAL_H_ */ -diff --git a/oonf-olsrd2/patches/020-static.patch b/oonf-olsrd2/patches/020-static.patch -deleted file mode 100644 -index 87146bf1ae325a59440100b99f4726eb36857c47..0000000000000000000000000000000000000000 ---- a/oonf-olsrd2/patches/020-static.patch -+++ /dev/null -@@ -1,32 +0,0 @@ ----- a/src-plugins/nhdp/nhdp/nhdp.c --+++ b/src-plugins/nhdp/nhdp/nhdp.c --@@ -187,9 +187,9 @@ static struct oonf_rfc5444_protocol *_pr -- static struct netaddr _originator_v4, _originator_v6; -- -- /* logging sources for NHDP subsystem */ ---static enum oonf_log_source LOG_NHDP; ---static enum oonf_log_source LOG_NHDP_R; ---static enum oonf_log_source LOG_NHDP_W; --+enum oonf_log_source LOG_NHDP; --+enum oonf_log_source LOG_NHDP_R; --+enum oonf_log_source LOG_NHDP_W; -- -- /** -- * Initialize additional logging sources for NHDP ----- a/src-plugins/olsrv2/olsrv2/olsrv2.c --+++ b/src-plugins/olsrv2/olsrv2/olsrv2.c --@@ -255,10 +255,10 @@ static uint64_t _overwrite_tc_interval; -- static uint64_t _overwrite_tc_validity; -- -- /* Additional logging sources */ ---static enum oonf_log_source LOG_OLSRV2; ---static enum oonf_log_source LOG_OLSRV2_R; ---static enum oonf_log_source LOG_OLSRV2_ROUTING; ---static enum oonf_log_source LOG_OLSRV2_W; --+enum oonf_log_source LOG_OLSRV2; --+enum oonf_log_source LOG_OLSRV2_R; --+enum oonf_log_source LOG_OLSRV2_ROUTING; --+enum oonf_log_source LOG_OLSRV2_W; -- -- /** -- * Initialize additional logging sources for NHDP diff --git a/patches/packages/routing/0008-oonf-olsrd2-add-git-version-for-compile-in.patch b/patches/packages/routing/0008-oonf-olsrd2-add-git-version-for-compile-in.patch deleted file mode 100644 index 68e985a1e2..0000000000 --- a/patches/packages/routing/0008-oonf-olsrd2-add-git-version-for-compile-in.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Patrick Grimm -Date: Sat, 14 Jan 2023 00:09:34 +0100 -Subject: oonf-olsrd2: add git version for compile in - -Compile tested: mips_24kc, arm_cortex-a9_vfpv3-d16, i386_pentium4, x86_64, i386_pentium-mmx, mipsel_24kc - -Signed-off-by: Patrick Grimm - -diff --git a/oonf-olsrd2/Makefile b/oonf-olsrd2/Makefile -index fe00dd1bc7969016856d5c3a19241d7750366352..15e5731a1612ae35cdc1d842dc0087cc31d4b290 100644 ---- a/oonf-olsrd2/Makefile -+++ b/oonf-olsrd2/Makefile -@@ -37,6 +37,7 @@ CMAKE_OPTIONS+=-D CMAKE_BUILD_TYPE:String=$(BUILD_TYPE) \ - -D UCI:Bool=true \ - -D OONF_APP_DEFAULT_CFG_HANDLER:String=uci \ - -D OONF_STATIC_PLUGINS:String="class;clock;duplicate_set;layer2;packet_socket;rfc5444;socket;stream_socket;telnet;timer;viewer;os_clock;os_fd;os_interface;os_routing;os_system;nhdp;olsrv2;ff_dat_metric;neighbor_probing;nl80211_listener;link_config;layer2info;systeminfo;cfg_uciloader;cfg_compact;nhdpinfo;olsrv2info;netjsoninfo;${CMAKE_OPTIONAL_PLUGINS}" \ -+ -D OONF_LIB_GIT:String=$(PKG_SOURCE_VERSION) \ - -D VERSION_SUB_TAG:String=$(PKG_SOURCE_DATE) \ - -D INSTALL_LIB_DIR:Path=lib/oonf \ - -D INSTALL_INCLUDE_DIR:Path=include/oonf \ diff --git a/patches/packages/routing/0009-oonf-olsrd2-a-usable-default-configuration.patch b/patches/packages/routing/0009-oonf-olsrd2-a-usable-default-configuration.patch deleted file mode 100644 index 15e36d1dd5..0000000000 --- a/patches/packages/routing/0009-oonf-olsrd2-a-usable-default-configuration.patch +++ /dev/null @@ -1,52 +0,0 @@ -From: Patrick Grimm -Date: Sat, 28 Jan 2023 11:28:00 +0100 -Subject: oonf-olsrd2: a usable default configuration - -Compile tested: mips_24kc, arm_cortex-a9_vfpv3-d16, i386_pentium4, x86_64, i386_pentium-mmx, mipsel_24kc - -Description: -- OONF_OLSRV2_LAN_IMPORT for integration off other routing protocol (OLSR1, BGP, ...) -- OONF_OLSRV2_ROUTE_MODIFIER for overwriting the link qualitty of a neighbor, called LinkQuality Multiplicator in OLSR1 -- OONF_GENERIC_REMOTECONTROL one of the goal of olsrv2 -- OONF_OLSRV2_MPR reduce the routing graph when the network gets bigger - -Signed-off-by: Patrick Grimm - -diff --git a/oonf-olsrd2/Config.in b/oonf-olsrd2/Config.in -index b0d7d7cb2767f7b12d089ccd44042e6788dcf9de..e4621e44e5a4ff55fbfe94ff7b4d5b9f27909034 100644 ---- a/oonf-olsrd2/Config.in -+++ b/oonf-olsrd2/Config.in -@@ -12,13 +12,13 @@ - bool "Lan_import plugin enabled" - help - The lan_import plugin can read routing tables and automatically export them as locally attached networks in olsrd2. -- default n -+ default y - - config OONF_OLSRV2_ROUTE_MODIFIER - bool "route_modifier plugin enabled" - help - The route_modifier plugin allows you to overwrite aspects of routes (like table/protocol) for certain destinations. -- default n -+ default y - - config OONF_GENERIC_DLEP_ROUTER - bool "dlep_router plugin enabled" -@@ -30,7 +30,7 @@ - bool "remotecontrol plugin enabled" - help - The remotecontrol plugin allows you to control configuration and logging over the telnet plugin. Be careful not to open this functionality over the network without securing it. -- default n -+ default y - - config OONF_GENERIC_HTTP - bool "http plugin enabled" -@@ -42,7 +42,7 @@ - bool "MPR plugin enabled" - help - The MPR plugin reduce the routing graph to limit the overhead of the OLSRv2 protocol -- default n -+ default y - - config OONF_OLSRV2_LAN - bool "New config option for Locally attached entries"