Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
F
ffbs-gluon
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ffbs
ffbs-gluon
Commits
d0226591
Unverified
Commit
d0226591
authored
10 months ago
by
David Bauer
Committed by
GitHub
10 months ago
Browse files
Options
Downloads
Plain Diff
Merge pull request #3273 from blocktrron/v2023.2.x-updates
[v2023.2.x] modules: update to latest HEAD
parents
34b1eed7
71c91b9c
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
modules
+3
-3
3 additions, 3 deletions
modules
patches/openwrt/0005-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch
+37
-64
37 additions, 64 deletions
...nt-MLD-Querier-wake-up-calls-Android-bug-workaround.patch
with
40 additions
and
67 deletions
modules
+
3
−
3
View file @
d0226591
...
...
@@ -2,15 +2,15 @@ GLUON_FEEDS='gluon packages routing'
OPENWRT_REPO=https://github.com/openwrt/openwrt.git
OPENWRT_BRANCH=openwrt-23.05
OPENWRT_COMMIT=
447eef2063cce1ad472a07af3e368826158b1da
3
OPENWRT_COMMIT=
d0620706f05bf8d4e4eabeb3063d61dcc579b64
3
PACKAGES_GLUON_REPO=https://github.com/freifunk-gluon/packages.git
PACKAGES_GLUON_COMMIT=3d08b0fee8dc5d96d8bcdb985fad1d5564de4022
PACKAGES_PACKAGES_REPO=https://github.com/openwrt/packages.git
PACKAGES_PACKAGES_BRANCH=openwrt-23.05
PACKAGES_PACKAGES_COMMIT=
ade006dc9feded81a13d0d268a2557b594f61b7e
PACKAGES_PACKAGES_COMMIT=
c9829c92e16bc64f9992cdc6647b5dd4928ef1df
PACKAGES_ROUTING_REPO=https://github.com/openwrt/routing.git
PACKAGES_ROUTING_BRANCH=openwrt-23.05
PACKAGES_ROUTING_COMMIT=
19a47976e0faeb5e560c3c4a5279a06f36f00b4d
PACKAGES_ROUTING_COMMIT=
a82e34d5e402ec77fd5facc1349352cacda2d0f8
This diff is collapsed.
Click to expand it.
patches/openwrt/0005-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch
+
37
−
64
View file @
d0226591
...
...
@@ -174,7 +174,7 @@ index 0000000000000000000000000000000000000000..077a563b6066cd1d3aee4b1e82328e8c
+
+ int system_bridge_addif(struct device *bridge, struct device *dev)
diff --git a/target/linux/generic/config-5.15 b/target/linux/generic/config-5.15
index
00977650c7ac26f1c443d684e3f5247022962b3a..2c094533933a798ae0fc36a841ef6e9cfc5df8c7
100644
index
377553433846b5cec34e5d7036b8109f954aef5a..47c2ca0409654b4bfa08f32ed2869a6d077c8913
100644
--- a/target/linux/generic/config-5.15
+++ b/target/linux/generic/config-5.15
@@ -761,6 +761,7 @@
CONFIG_BRIDGE=y
...
...
@@ -187,10 +187,10 @@ index 00977650c7ac26f1c443d684e3f5247022962b3a..2c094533933a798ae0fc36a841ef6e9c
# CONFIG_BRIDGE_NF_EBTABLES is not set
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..
84f872ddc2433514ca5c210f73b37855723e5763
index 0000000000000000000000000000000000000000..
91dd13e51549f40aa11a01d53e11be1a70f25d86
--- /dev/null
+++ b/target/linux/generic/hack-5.15/602-bridge-Implement-MLD-Querier-wake-up-calls-Android-b.patch
@@ -0,0 +1,6
90
@@
@@ -0,0 +1,6
63
@@
+From 4529dcf18d4c5e05d30cd2d6fabfbae201e6c347 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Linus=20L=C3=BCssing?= <linus.luessing@c0d3.blue>
+Date: Mon, 29 Jun 2020 19:04:05 +0200
...
...
@@ -237,8 +237,6 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ net/ipv6/mcast_snoop.c | 3 +-
+ 12 files changed, 386 insertions(+), 10 deletions(-)
+
+diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h
+index 18d3b264b754..5ee206fb5ee7 100644
+--- a/include/linux/if_bridge.h
++++ b/include/linux/if_bridge.h
+@@ -59,6 +59,7 @@ struct br_ip_list {
...
...
@@ -249,11 +247,9 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+
+ #define BR_DEFAULT_AGEING_TIME (300 * HZ)
+
+diff --git a/include/net/addrconf.h b/include/net/addrconf.h
+index 53627afab104..f31ea1726efa 100644
+--- a/include/net/addrconf.h
++++ b/include/net/addrconf.h
+@@ -2
33
,6 +2
33
,7 @@ void ipv6_mc_unmap(struct inet6_dev *ide
v);
+@@ -2
41
,6 +2
41
,7 @@ void ipv6_mc_unmap(struct inet6_dev *ide
+ 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);
...
...
@@ -261,8 +257,6 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ int ipv6_mc_check_mld(struct sk_buff *skb);
+ 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 be0ad9a79da8..baf07b15e481 100644
+--- a/include/uapi/linux/if_link.h
++++ b/include/uapi/linux/if_link.h
+@@ -537,6 +537,7 @@ enum {
...
...
@@ -273,8 +267,6 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ __IFLA_BRPORT_MAX
+ };
+ #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
+diff --git a/net/bridge/Kconfig b/net/bridge/Kconfig
+index 3c8ded7d3e84..1a11e22c7d51 100644
+--- a/net/bridge/Kconfig
++++ b/net/bridge/Kconfig
+@@ -48,6 +48,32 @@ config BRIDGE_IGMP_SNOOPING
...
...
@@ -310,11 +302,9 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ config BRIDGE_VLAN_FILTERING
+ bool "VLAN filtering"
+ depends on BRIDGE
+diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
+index 46812b659710..eec5f3770ff8 100644
+--- a/net/bridge/br_fdb.c
++++ b/net/bridge/br_fdb.c
+@@ -84,6 +84,10 @@ static void fdb_rcu_free(struct rcu_head
*head)
+@@ -84,6 +84,10 @@ static void fdb_rcu_free(struct rcu_head
+ {
+ struct net_bridge_fdb_entry *ent
+ = container_of(head, struct net_bridge_fdb_entry, rcu);
...
...
@@ -325,7 +315,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ kmem_cache_free(br_fdb_cache, ent);
+ }
+
+@@ -518,6 +522,12 @@ static struct net_bridge_fdb_entry *fdb_
create(struct net_bridge *br,
+@@ -518,6 +522,12 @@ static struct net_bridge_fdb_entry *fdb_
+ fdb->key.vlan_id = vid;
+ fdb->flags = flags;
+ fdb->updated = fdb->used = jiffies;
...
...
@@ -338,27 +328,23 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ if (rhashtable_lookup_insert_fast(&br->fdb_hash_tbl,
+ &fdb->rhnode,
+ br_fdb_rht_params)) {
+diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
+index fe80b8e4c2d7..879ae7adb845 100644
+--- a/net/bridge/br_input.c
++++ b/net/bridge/br_input.c
+@@ -16
4
,8 +16
4
,10 @@ int br_handle_frame_finish(struct net *n
et, struct sock *sk, struct sk_buff *skb
+@@ -16
9
,8 +16
9
,10 @@ int br_handle_frame_finish(struct net *n
+ 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(brmctx, pmctx, skb, vid);
+ return br_pass_frame_up(skb);
+ return br_pass_frame_up(skb
, false
);
++ }
+
+ if (now != dst->used)
+ dst->used = now;
+diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
+index db4f2641d1cd..6822dfbafa71 100644
+--- a/net/bridge/br_multicast.c
++++ b/net/bridge/br_multicast.c
+@@ -950,15 +950,16 @@ static struct sk_buff *br_ip6_multicast_
alloc_query(struct net_bridge_mcast *brm
+@@ -950,15 +950,16 @@ static struct sk_buff *br_ip6_multicast_
+ const struct in6_addr *group,
+ bool with_srcs, bool over_llqt,
+ u8 sflag, u8 *igmp_type,
...
...
@@ -377,7 +363,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ __sum16 *csum = NULL;
+ struct ipv6hdr *ip6h;
+ struct mld_msg *mldq;
+@@ -1040,9 +1041,13 @@ static struct sk_buff *br_ip6_multicast_
alloc_query(struct net_bridge_mcast *brm
+@@ -1040,9 +1041,13 @@ static struct sk_buff *br_ip6_multicast_
+
+ /* ICMPv6 */
+ skb_set_transport_header(skb, skb->len);
...
...
@@ -394,7 +380,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ *igmp_type = ICMPV6_MGM_QUERY;
+ switch (brmctx->multicast_mld_version) {
+ case 1:
+@@ -1050,7 +1055,7 @@ static struct sk_buff *br_ip6_multicast_
alloc_query(struct net_bridge_mcast *brm
+@@ -1050,7 +1055,7 @@ static struct sk_buff *br_ip6_multicast_
+ mldq->mld_type = ICMPV6_MGM_QUERY;
+ mldq->mld_code = 0;
+ mldq->mld_cksum = 0;
...
...
@@ -403,7 +389,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ mldq->mld_reserved = 0;
+ mldq->mld_mca = *group;
+ csum = &mldq->mld_cksum;
+@@ -1141,7 +1146,7 @@ static struct sk_buff *br_multicast_allo
c_query(struct net_bridge_mcast *brmctx,
+@@ -1141,7 +1146,7 @@ static struct sk_buff *br_multicast_allo
+ &ip6_dst, &group->dst.ip6,
+ with_srcs, over_lmqt,
+ sflag, igmp_type,
...
...
@@ -412,7 +398,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ }
+ #endif
+ }
+@@ -16
19
,6 +162
4
,169 @@ static void br_multicast_select_own_quer
ier(struct net_bridge_mcast *brmctx,
+@@ -16
23
,6 +162
8
,169 @@ static void br_multicast_select_own_quer
+ #endif
+ }
+
...
...
@@ -582,7 +568,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ static void __br_multicast_send_query(struct net_bridge_mcast *brmctx,
+ struct net_bridge_mcast_port *pmctx,
+ struct net_bridge_port_group *pg,
+@@ -165
1
,6 +18
19
,13 @@
static void __br_multicast_send_query(struct net_bridge_mcast *brmctx,
+@@ -165
5
,6 +18
23
,13 @@
again_under_lmqt:
+ dev_net(pmctx->port->dev), NULL, skb, NULL, skb->dev,
+ br_dev_queue_push_xmit);
+
...
...
@@ -596,7 +582,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ if (over_lmqt && with_srcs && sflag) {
+ over_lmqt = false;
+ goto again_under_lmqt;
+@@ -380
1
,6 +39
76
,99 @@ int br_multicast_rcv(struct net_bridge_m
cast **brmctx,
+@@ -380
5
,6 +39
80
,99 @@ int br_multicast_rcv(struct net_bridge_m
+ return ret;
+ }
+
...
...
@@ -696,7 +682,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ static void br_multicast_query_expired(struct net_bridge_mcast *brmctx,
+ struct bridge_mcast_own_query *query,
+ struct bridge_mcast_querier *querier)
+@@ -43
25
,6 +4
593
,15 @@ int br_multicast_set_vlan_router(struct
net_bridge_vlan *v, u8 mcast_router)
+@@ -43
33
,6 +4
601
,15 @@ int br_multicast_set_vlan_router(struct
+ return err;
+ }
+
...
...
@@ -712,21 +698,19 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ 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 ae6007309a17..09d4861b7336 100644
+--- a/net/bridge/br_netlink.c
++++ b/net/bridge/br_netlink.c
+@@ -198,6 +198,9 @@ static inline size_t br_port_info_size(void)
+ + nla_total_size_64bit(sizeof(u64)) /* IFLA_BRPORT_HOLD_TIMER */
+@@ -199,6 +199,9 @@ static inline size_t br_port_info_size(v
+ #ifdef CONFIG_BRIDGE_IGMP_SNOOPING
+ + nla_total_size(sizeof(u8)) /* IFLA_BRPORT_MULTICAST_ROUTER */
+
+
#endif
+
#endif
++#ifdef CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS
++ + nla_total_size(sizeof(u8)) /* IFLA_BRPORT_MCAST_WAKEUPCALL */
+
#endif
+
+
#endif
+ + nla_total_size(sizeof(u16)) /* IFLA_BRPORT_GROUP_FWD_MASK */
+ + nla_total_size(sizeof(u8)) /* IFLA_BRPORT_MRP_RING_OPEN */
+@@ -296,6 +299,11 @@ static int br_port_fill_attrs(struct sk_buff *skb,
+ + nla_total_size(sizeof(u8)) /* IFLA_BRPORT_MRP_IN_OPEN */
+@@ -296,6 +299,11 @@ static int br_port_fill_attrs(struct sk_
+ p->multicast_eht_hosts_cnt))
+ return -EMSGSIZE;
+ #endif
...
...
@@ -738,7 +722,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+
+ /* we might be called only with br->lock */
+ rcu_read_lock();
+@@ -823,6 +831,7 @@ static const struct nla_policy br_port_p
olicy[IFLA_BRPORT_MAX + 1] = {
+@@ -823,6 +831,7 @@ static const struct nla_policy br_port_p
+ [IFLA_BRPORT_PROXYARP_WIFI] = { .type = NLA_U8 },
+ [IFLA_BRPORT_MULTICAST_ROUTER] = { .type = NLA_U8 },
+ [IFLA_BRPORT_MCAST_TO_UCAST] = { .type = NLA_U8 },
...
...
@@ -746,10 +730,12 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ [IFLA_BRPORT_MCAST_FLOOD] = { .type = NLA_U8 },
+ [IFLA_BRPORT_BCAST_FLOOD] = { .type = NLA_U8 },
+ [IFLA_BRPORT_VLAN_TUNNEL] = { .type = NLA_U8 },
+@@ -952,6 +961,16 @@ static int br_setport(struct net_bridge_port *p, struct nlattr *tb[],
+@@ -950,6 +959,16 @@ static int br_setport(struct net_bridge_
+ if (err)
+ return err;
+ }
+
#endif
+
+
+
#endif
+
+
++#ifdef CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS
++ if (tb[IFLA_BRPORT_MCAST_WAKEUPCALL]) {
++ u8 wakeupcall = nla_get_u8(tb[IFLA_BRPORT_MCAST_WAKEUPCALL]);
...
...
@@ -758,13 +744,9 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
++ if (err)
++ return err;
++ }
++#endif
++
+ if (tb[IFLA_BRPORT_GROUP_FWD_MASK]) {
+ u16 fwd_mask = nla_get_u16(tb[IFLA_BRPORT_GROUP_FWD_MASK]);
+ #endif
+
+diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
+index bd218c2b2cd9..32191519b500 100644
+ if (tb[IFLA_BRPORT_GROUP_FWD_MASK]) {
+--- a/net/bridge/br_private.h
++++ b/net/bridge/br_private.h
+@@ -269,6 +269,10 @@ struct net_bridge_fdb_entry {
...
...
@@ -786,7 +768,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ #endif
+
+ #ifdef CONFIG_SYSFS
+@@ -141
8
,6 +142
3
,21 @@ br_multicast_ctx_options_equal(const str
uct net_bridge_mcast *brmctx1,
+@@ -141
9
,6 +142
4
,21 @@ br_multicast_ctx_options_equal(const str
+ }
+ #endif
+
...
...
@@ -808,11 +790,9 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ /* br_vlan.c */
+ #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 9ee9c60738e2..9dcd4a9204db 100644
+--- a/net/bridge/br_sysfs_if.c
++++ b/net/bridge/br_sysfs_if.c
+@@ -260,6 +260,21 @@ BRPORT_ATTR_FLAG(multicast_fast_leave, B
R_MULTICAST_FAST_LEAVE);
+@@ -260,6 +260,21 @@ BRPORT_ATTR_FLAG(multicast_fast_leave, B
+ BRPORT_ATTR_FLAG(multicast_to_unicast, BR_MULTICAST_TO_UNICAST);
+ #endif
+
...
...
@@ -834,18 +814,16 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ static const struct brport_attribute *brport_attrs[] = {
+ &brport_attr_path_cost,
+ &brport_attr_priority,
+@@ -285,6 +300,9 @@ static const struct brport_attribute *brport_attrs[] = {
+ &brport_attr_multicast_router,
+@@ -286,6 +301,9 @@ static const struct brport_attribute *br
+ &brport_attr_multicast_fast_leave,
+ &brport_attr_multicast_to_unicast,
+
+
#endif
+
#endif
++#ifdef CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS
++ &brport_attr_multicast_wakeupcall,
+
#endif
+
+
#endif
+ &brport_attr_proxyarp,
+ &brport_attr_proxyarp_wifi,
+diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
+index e0fa875832a0..caf454185dc8 100644
+ &brport_attr_multicast_flood,
+--- a/net/core/rtnetlink.c
++++ b/net/core/rtnetlink.c
+@@ -55,7 +55,7 @@
...
...
@@ -857,11 +835,9 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+
+ struct rtnl_link {
+ rtnl_doit_func doit;
+diff --git a/net/ipv6/mcast_snoop.c b/net/ipv6/mcast_snoop.c
+index 04d5fcdfa6e0..9a5061edbaf3 100644
+--- a/net/ipv6/mcast_snoop.c
++++ b/net/ipv6/mcast_snoop.c
+@@ -131,7 +131,7 @@ static inline __sum16 ipv6_mc_validate_c
hecksum(struct sk_buff *skb)
+@@ -131,7 +131,7 @@ static inline __sum16 ipv6_mc_validate_c
+ return skb_checksum_validate(skb, IPPROTO_ICMPV6, ip6_compute_pseudo);
+ }
+
...
...
@@ -870,7 +846,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+ {
+ unsigned int len = skb_transport_offset(skb) + sizeof(struct icmp6hdr);
+ unsigned int transport_len = ipv6_transport_len(skb);
+@@ -150,6 +150,7 @@ static int ipv6_mc_check_icmpv6(struct s
k_buff *skb)
+@@ -150,6 +150,7 @@ static int ipv6_mc_check_icmpv6(struct s
+
+ return 0;
+ }
...
...
@@ -878,6 +854,3 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855
+
+ /**
+ * ipv6_mc_check_mld - checks whether this is a sane MLD packet
+--
+2.40.1
+
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment