* [PATCHv5 net-next 0/2] net: enable udp v6 sockets receiving v4 packets with UDP
@ 2021-02-03 8:54 Xin Long
2021-02-03 8:54 ` [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Xin Long
2021-02-05 3:00 ` [PATCHv5 net-next 0/2] net: enable udp v6 sockets receiving v4 packets with UDP patchwork-bot+netdevbpf
0 siblings, 2 replies; 9+ messages in thread
From: Xin Long @ 2021-02-03 8:54 UTC (permalink / raw)
To: network dev
Cc: davem, Jakub Kicinski, pabeni, Willem de Bruijn, Martin Varghese,
Alexander Duyck, David Howells
Currently, udp v6 socket can not process v4 packets with UDP GRO, as
udp_encap_needed_key is not increased when udp_tunnel_encap_enable()
is called for v6 socket.
This patchset is to increase it and remove the unnecessary code in
bareudp in Patch 1/2, and improve rxrpc encap_enable by calling
udp_tunnel_encap_enable().
v1->v4:
- See patch 1/2.
v4->v5:
- See patch 2/2.
Xin Long (2):
udp: call udp_encap_enable for v6 sockets when enabling encap
rxrpc: call udp_tunnel_encap_enable in rxrpc_open_socket
drivers/net/bareudp.c | 6 ------
include/net/udp.h | 1 +
include/net/udp_tunnel.h | 3 +--
net/ipv4/udp.c | 6 ++++++
net/ipv6/udp.c | 4 +++-
net/rxrpc/local_object.c | 7 ++-----
6 files changed, 13 insertions(+), 14 deletions(-)
--
2.1.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap
2021-02-03 8:54 [PATCHv5 net-next 0/2] net: enable udp v6 sockets receiving v4 packets with UDP Xin Long
@ 2021-02-03 8:54 ` Xin Long
2021-02-03 8:54 ` [PATCHv5 net-next 2/2] rxrpc: call udp_tunnel_encap_enable in rxrpc_open_socket Xin Long
` (2 more replies)
2021-02-05 3:00 ` [PATCHv5 net-next 0/2] net: enable udp v6 sockets receiving v4 packets with UDP patchwork-bot+netdevbpf
1 sibling, 3 replies; 9+ messages in thread
From: Xin Long @ 2021-02-03 8:54 UTC (permalink / raw)
To: network dev
Cc: davem, Jakub Kicinski, pabeni, Willem de Bruijn, Martin Varghese,
Alexander Duyck, David Howells
When enabling encap for a ipv6 socket without udp_encap_needed_key
increased, UDP GRO won't work for v4 mapped v6 address packets as
sk will be NULL in udp4_gro_receive().
This patch is to enable it by increasing udp_encap_needed_key for
v6 sockets in udp_tunnel_encap_enable(), and correspondingly
decrease udp_encap_needed_key in udpv6_destroy_sock().
v1->v2:
- add udp_encap_disable() and export it.
v2->v3:
- add the change for rxrpc and bareudp into one patch, as Alex
suggested.
v3->v4:
- move rxrpc part to another patch.
Acked-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
---
drivers/net/bareudp.c | 6 ------
include/net/udp.h | 1 +
include/net/udp_tunnel.h | 3 +--
net/ipv4/udp.c | 6 ++++++
net/ipv6/udp.c | 4 +++-
5 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c
index 1b8f597..7511bca 100644
--- a/drivers/net/bareudp.c
+++ b/drivers/net/bareudp.c
@@ -240,12 +240,6 @@ static int bareudp_socket_create(struct bareudp_dev *bareudp, __be16 port)
tunnel_cfg.encap_destroy = NULL;
setup_udp_tunnel_sock(bareudp->net, sock, &tunnel_cfg);
- /* As the setup_udp_tunnel_sock does not call udp_encap_enable if the
- * socket type is v6 an explicit call to udp_encap_enable is needed.
- */
- if (sock->sk->sk_family == AF_INET6)
- udp_encap_enable();
-
rcu_assign_pointer(bareudp->sock, sock);
return 0;
}
diff --git a/include/net/udp.h b/include/net/udp.h
index 01351ba..5ddbb42 100644
--- a/include/net/udp.h
+++ b/include/net/udp.h
@@ -467,6 +467,7 @@ void udp_init(void);
DECLARE_STATIC_KEY_FALSE(udp_encap_needed_key);
void udp_encap_enable(void);
+void udp_encap_disable(void);
#if IS_ENABLED(CONFIG_IPV6)
DECLARE_STATIC_KEY_FALSE(udpv6_encap_needed_key);
void udpv6_encap_enable(void);
diff --git a/include/net/udp_tunnel.h b/include/net/udp_tunnel.h
index 282d10e..afc7ce7 100644
--- a/include/net/udp_tunnel.h
+++ b/include/net/udp_tunnel.h
@@ -181,9 +181,8 @@ static inline void udp_tunnel_encap_enable(struct socket *sock)
#if IS_ENABLED(CONFIG_IPV6)
if (sock->sk->sk_family == PF_INET6)
ipv6_stub->udpv6_encap_enable();
- else
#endif
- udp_encap_enable();
+ udp_encap_enable();
}
#define UDP_TUNNEL_NIC_MAX_TABLES 4
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index 69ea765..48208fb 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -596,6 +596,12 @@ void udp_encap_enable(void)
}
EXPORT_SYMBOL(udp_encap_enable);
+void udp_encap_disable(void)
+{
+ static_branch_dec(&udp_encap_needed_key);
+}
+EXPORT_SYMBOL(udp_encap_disable);
+
/* Handler for tunnels with arbitrary destination ports: no socket lookup, go
* through error handlers in encapsulations looking for a match.
*/
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index b9f3dfd..d754292 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -1608,8 +1608,10 @@ void udpv6_destroy_sock(struct sock *sk)
if (encap_destroy)
encap_destroy(sk);
}
- if (up->encap_enabled)
+ if (up->encap_enabled) {
static_branch_dec(&udpv6_encap_needed_key);
+ udp_encap_disable();
+ }
}
inet6_destroy_sock(sk);
--
2.1.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCHv5 net-next 2/2] rxrpc: call udp_tunnel_encap_enable in rxrpc_open_socket
2021-02-03 8:54 ` [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Xin Long
@ 2021-02-03 8:54 ` Xin Long
2021-02-03 9:50 ` David Howells
2022-03-29 13:24 ` [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Antonio Quartulli
2 siblings, 0 replies; 9+ messages in thread
From: Xin Long @ 2021-02-03 8:54 UTC (permalink / raw)
To: network dev
Cc: davem, Jakub Kicinski, pabeni, Willem de Bruijn, Martin Varghese,
Alexander Duyck, David Howells
When doing encap_enable/increasing encap_needed_key, up->encap_enabled
is not set in rxrpc_open_socket(), and it will cause encap_needed_key
not being decreased in udpv6_destroy_sock().
This patch is to improve it by just calling udp_tunnel_encap_enable()
where it increases both UDP and UDPv6 encap_needed_key and sets
up->encap_enabled.
v4->v5:
- add the missing '#include <net/udp_tunnel.h>', as David Howells
noticed.
Acked-and-tested-by: David Howells <dhowells@redhat.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
---
net/rxrpc/local_object.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/net/rxrpc/local_object.c b/net/rxrpc/local_object.c
index 8c28810..33b4936 100644
--- a/net/rxrpc/local_object.c
+++ b/net/rxrpc/local_object.c
@@ -16,6 +16,7 @@
#include <linux/hashtable.h>
#include <net/sock.h>
#include <net/udp.h>
+#include <net/udp_tunnel.h>
#include <net/af_rxrpc.h>
#include "ar-internal.h"
@@ -135,11 +136,7 @@ static int rxrpc_open_socket(struct rxrpc_local *local, struct net *net)
udp_sk(usk)->gro_receive = NULL;
udp_sk(usk)->gro_complete = NULL;
- udp_encap_enable();
-#if IS_ENABLED(CONFIG_AF_RXRPC_IPV6)
- if (local->srx.transport.family == AF_INET6)
- udpv6_encap_enable();
-#endif
+ udp_tunnel_encap_enable(local->socket);
usk->sk_error_report = rxrpc_error_report;
/* if a local address was supplied then bind it */
--
2.1.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCHv5 net-next 2/2] rxrpc: call udp_tunnel_encap_enable in rxrpc_open_socket
2021-02-03 8:54 ` [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Xin Long
2021-02-03 8:54 ` [PATCHv5 net-next 2/2] rxrpc: call udp_tunnel_encap_enable in rxrpc_open_socket Xin Long
@ 2021-02-03 9:50 ` David Howells
2022-03-29 13:24 ` [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Antonio Quartulli
2 siblings, 0 replies; 9+ messages in thread
From: David Howells @ 2021-02-03 9:50 UTC (permalink / raw)
To: Xin Long
Cc: dhowells, network dev, davem, Jakub Kicinski, pabeni,
Willem de Bruijn, Martin Varghese, Alexander Duyck
Xin Long <lucien.xin@gmail.com> wrote:
> When doing encap_enable/increasing encap_needed_key, up->encap_enabled
> is not set in rxrpc_open_socket(), and it will cause encap_needed_key
> not being decreased in udpv6_destroy_sock().
>
> This patch is to improve it by just calling udp_tunnel_encap_enable()
> where it increases both UDP and UDPv6 encap_needed_key and sets
> up->encap_enabled.
>
> v4->v5:
> - add the missing '#include <net/udp_tunnel.h>', as David Howells
> noticed.
>
> Acked-and-tested-by: David Howells <dhowells@redhat.com>
> Signed-off-by: Xin Long <lucien.xin@gmail.com>
Looks good.
David
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCHv5 net-next 0/2] net: enable udp v6 sockets receiving v4 packets with UDP
2021-02-03 8:54 [PATCHv5 net-next 0/2] net: enable udp v6 sockets receiving v4 packets with UDP Xin Long
2021-02-03 8:54 ` [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Xin Long
@ 2021-02-05 3:00 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 9+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-02-05 3:00 UTC (permalink / raw)
To: Xin Long
Cc: netdev, davem, kuba, pabeni, willemb, martin.varghese,
alexander.duyck, dhowells
Hello:
This series was applied to netdev/net-next.git (refs/heads/master):
On Wed, 3 Feb 2021 16:54:21 +0800 you wrote:
> Currently, udp v6 socket can not process v4 packets with UDP GRO, as
> udp_encap_needed_key is not increased when udp_tunnel_encap_enable()
> is called for v6 socket.
>
> This patchset is to increase it and remove the unnecessary code in
> bareudp in Patch 1/2, and improve rxrpc encap_enable by calling
> udp_tunnel_encap_enable().
>
> [...]
Here is the summary with links:
- [PATCHv5,net-next,1/2] udp: call udp_encap_enable for v6 sockets when enabling encap
https://git.kernel.org/netdev/net-next/c/a4a600dd301c
- [PATCHv5,net-next,2/2] rxrpc: call udp_tunnel_encap_enable in rxrpc_open_socket
https://git.kernel.org/netdev/net-next/c/5d30c626b67e
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap
2021-02-03 8:54 ` [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Xin Long
2021-02-03 8:54 ` [PATCHv5 net-next 2/2] rxrpc: call udp_tunnel_encap_enable in rxrpc_open_socket Xin Long
2021-02-03 9:50 ` David Howells
@ 2022-03-29 13:24 ` Antonio Quartulli
2022-03-29 13:30 ` Greg Kroah-Hartman
2 siblings, 1 reply; 9+ messages in thread
From: Antonio Quartulli @ 2022-03-29 13:24 UTC (permalink / raw)
To: Xin Long, Greg Kroah-Hartman
Cc: davem, Jakub Kicinski, network dev, Willem de Bruijn
Hi all,
On 03/02/2021 09:54, Xin Long wrote:
> When enabling encap for a ipv6 socket without udp_encap_needed_key
> increased, UDP GRO won't work for v4 mapped v6 address packets as
> sk will be NULL in udp4_gro_receive().
>
> This patch is to enable it by increasing udp_encap_needed_key for
> v6 sockets in udp_tunnel_encap_enable(), and correspondingly
> decrease udp_encap_needed_key in udpv6_destroy_sock().
>
This is a non-negligible issue that other users (in or out of tree) may
hit as well.
At OpenVPN we are developing a kernel device driver that has the same
problem as UDP GRO. So far the only workaround is to let users upgrade
to v5.12+.
I would like to propose to take this patch in stable releases.
Greg, is this an option?
Commit in the linux kernel is:
a4a600dd301ccde6ea239804ec1f19364a39d643
Thanks a lot.
Best Regards,
> v1->v2:
> - add udp_encap_disable() and export it.
> v2->v3:
> - add the change for rxrpc and bareudp into one patch, as Alex
> suggested.
> v3->v4:
> - move rxrpc part to another patch.
>
> Acked-by: Willem de Bruijn <willemb@google.com>
> Signed-off-by: Xin Long <lucien.xin@gmail.com>
> ---
> drivers/net/bareudp.c | 6 ------
> include/net/udp.h | 1 +
> include/net/udp_tunnel.h | 3 +--
> net/ipv4/udp.c | 6 ++++++
> net/ipv6/udp.c | 4 +++-
> 5 files changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c
> index 1b8f597..7511bca 100644
> --- a/drivers/net/bareudp.c
> +++ b/drivers/net/bareudp.c
> @@ -240,12 +240,6 @@ static int bareudp_socket_create(struct bareudp_dev *bareudp, __be16 port)
> tunnel_cfg.encap_destroy = NULL;
> setup_udp_tunnel_sock(bareudp->net, sock, &tunnel_cfg);
>
> - /* As the setup_udp_tunnel_sock does not call udp_encap_enable if the
> - * socket type is v6 an explicit call to udp_encap_enable is needed.
> - */
> - if (sock->sk->sk_family == AF_INET6)
> - udp_encap_enable();
> -
> rcu_assign_pointer(bareudp->sock, sock);
> return 0;
> }
> diff --git a/include/net/udp.h b/include/net/udp.h
> index 01351ba..5ddbb42 100644
> --- a/include/net/udp.h
> +++ b/include/net/udp.h
> @@ -467,6 +467,7 @@ void udp_init(void);
>
> DECLARE_STATIC_KEY_FALSE(udp_encap_needed_key);
> void udp_encap_enable(void);
> +void udp_encap_disable(void);
> #if IS_ENABLED(CONFIG_IPV6)
> DECLARE_STATIC_KEY_FALSE(udpv6_encap_needed_key);
> void udpv6_encap_enable(void);
> diff --git a/include/net/udp_tunnel.h b/include/net/udp_tunnel.h
> index 282d10e..afc7ce7 100644
> --- a/include/net/udp_tunnel.h
> +++ b/include/net/udp_tunnel.h
> @@ -181,9 +181,8 @@ static inline void udp_tunnel_encap_enable(struct socket *sock)
> #if IS_ENABLED(CONFIG_IPV6)
> if (sock->sk->sk_family == PF_INET6)
> ipv6_stub->udpv6_encap_enable();
> - else
> #endif
> - udp_encap_enable();
> + udp_encap_enable();
> }
>
> #define UDP_TUNNEL_NIC_MAX_TABLES 4
> diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
> index 69ea765..48208fb 100644
> --- a/net/ipv4/udp.c
> +++ b/net/ipv4/udp.c
> @@ -596,6 +596,12 @@ void udp_encap_enable(void)
> }
> EXPORT_SYMBOL(udp_encap_enable);
>
> +void udp_encap_disable(void)
> +{
> + static_branch_dec(&udp_encap_needed_key);
> +}
> +EXPORT_SYMBOL(udp_encap_disable);
> +
> /* Handler for tunnels with arbitrary destination ports: no socket lookup, go
> * through error handlers in encapsulations looking for a match.
> */
> diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
> index b9f3dfd..d754292 100644
> --- a/net/ipv6/udp.c
> +++ b/net/ipv6/udp.c
> @@ -1608,8 +1608,10 @@ void udpv6_destroy_sock(struct sock *sk)
> if (encap_destroy)
> encap_destroy(sk);
> }
> - if (up->encap_enabled)
> + if (up->encap_enabled) {
> static_branch_dec(&udpv6_encap_needed_key);
> + udp_encap_disable();
> + }
> }
>
> inet6_destroy_sock(sk);
--
Antonio Quartulli
OpenVPN Inc.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap
2022-03-29 13:24 ` [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Antonio Quartulli
@ 2022-03-29 13:30 ` Greg Kroah-Hartman
2022-03-31 13:06 ` Antonio Quartulli
0 siblings, 1 reply; 9+ messages in thread
From: Greg Kroah-Hartman @ 2022-03-29 13:30 UTC (permalink / raw)
To: Antonio Quartulli
Cc: Xin Long, davem, Jakub Kicinski, network dev, Willem de Bruijn
On Tue, Mar 29, 2022 at 03:24:49PM +0200, Antonio Quartulli wrote:
> Hi all,
>
> On 03/02/2021 09:54, Xin Long wrote:
> > When enabling encap for a ipv6 socket without udp_encap_needed_key
> > increased, UDP GRO won't work for v4 mapped v6 address packets as
> > sk will be NULL in udp4_gro_receive().
> >
> > This patch is to enable it by increasing udp_encap_needed_key for
> > v6 sockets in udp_tunnel_encap_enable(), and correspondingly
> > decrease udp_encap_needed_key in udpv6_destroy_sock().
> >
>
> This is a non-negligible issue that other users (in or out of tree) may hit
> as well.
>
> At OpenVPN we are developing a kernel device driver that has the same
> problem as UDP GRO. So far the only workaround is to let users upgrade to
> v5.12+.
>
> I would like to propose to take this patch in stable releases.
> Greg, is this an option?
>
> Commit in the linux kernel is:
> a4a600dd301ccde6ea239804ec1f19364a39d643
What stable tree(s) should this apply to, and where have you tested it?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap
2022-03-29 13:30 ` Greg Kroah-Hartman
@ 2022-03-31 13:06 ` Antonio Quartulli
2022-04-02 11:28 ` Greg Kroah-Hartman
0 siblings, 1 reply; 9+ messages in thread
From: Antonio Quartulli @ 2022-03-31 13:06 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Xin Long, davem, Jakub Kicinski, network dev, Willem de Bruijn
Hi,
On 29/03/2022 15:30, Greg Kroah-Hartman wrote:
>> I would like to propose to take this patch in stable releases.
>> Greg, is this an option?
>>
>> Commit in the linux kernel is:
>> a4a600dd301ccde6ea239804ec1f19364a39d643
>
>
> What stable tree(s) should this apply to, and where have you tested it?
Sorry for the delay, Greg, but I wanted to run some extra tests on the
various longterm kernel releases.
This bug exists since "ever", therefore ideally it could/should be
applied to all stable trees.
However, this patch applies as-is only to v5.10 and v5.4 (you need to
ignore the hunk for 'drivers/net/bareudp.c' on the latter).
Older trees require a different code change.
My tests on v5.10 and v5.4 show that the patch works as expected.
Therefore, could it be backported to these 2 trees?
It can get my
Tested-by: Antonio Quartulli <antonio@openvpn.net>
Thanks a lot,
--
Antonio Quartulli
OpenVPN Inc.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap
2022-03-31 13:06 ` Antonio Quartulli
@ 2022-04-02 11:28 ` Greg Kroah-Hartman
0 siblings, 0 replies; 9+ messages in thread
From: Greg Kroah-Hartman @ 2022-04-02 11:28 UTC (permalink / raw)
To: Antonio Quartulli
Cc: Xin Long, davem, Jakub Kicinski, network dev, Willem de Bruijn
On Thu, Mar 31, 2022 at 03:06:41PM +0200, Antonio Quartulli wrote:
> Hi,
>
> On 29/03/2022 15:30, Greg Kroah-Hartman wrote:
> > > I would like to propose to take this patch in stable releases.
> > > Greg, is this an option?
> > >
> > > Commit in the linux kernel is:
> > > a4a600dd301ccde6ea239804ec1f19364a39d643
> >
> >
> > What stable tree(s) should this apply to, and where have you tested it?
>
> Sorry for the delay, Greg, but I wanted to run some extra tests on the
> various longterm kernel releases.
>
> This bug exists since "ever", therefore ideally it could/should be applied
> to all stable trees.
>
> However, this patch applies as-is only to v5.10 and v5.4 (you need to ignore
> the hunk for 'drivers/net/bareudp.c' on the latter).
>
> Older trees require a different code change.
>
> My tests on v5.10 and v5.4 show that the patch works as expected.
>
> Therefore, could it be backported to these 2 trees?
> It can get my
>
> Tested-by: Antonio Quartulli <antonio@openvpn.net>
Now queued up, thanks.
greg k-h
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-04-02 11:28 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-03 8:54 [PATCHv5 net-next 0/2] net: enable udp v6 sockets receiving v4 packets with UDP Xin Long
2021-02-03 8:54 ` [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Xin Long
2021-02-03 8:54 ` [PATCHv5 net-next 2/2] rxrpc: call udp_tunnel_encap_enable in rxrpc_open_socket Xin Long
2021-02-03 9:50 ` David Howells
2022-03-29 13:24 ` [PATCHv5 net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Antonio Quartulli
2022-03-29 13:30 ` Greg Kroah-Hartman
2022-03-31 13:06 ` Antonio Quartulli
2022-04-02 11:28 ` Greg Kroah-Hartman
2021-02-05 3:00 ` [PATCHv5 net-next 0/2] net: enable udp v6 sockets receiving v4 packets with UDP patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).