All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/2] net: enable udp v6 sockets receiving v4 packets with UDP GRO
@ 2021-01-11 12:38 Xin Long
  2021-01-11 12:38 ` [PATCH net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Xin Long
  2021-01-11 12:38 ` [PATCH net-next 2/2] Revert "bareudp: Fixed bareudp receive handling" Xin Long
  0 siblings, 2 replies; 7+ messages in thread
From: Xin Long @ 2021-01-11 12:38 UTC (permalink / raw)
  To: network dev, linux-sctp
  Cc: davem, Jakub Kicinski, pabeni, Willem de Bruijn, Martin Varghese

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.

Xin Long (2):
  udp: call udp_encap_enable for v6 sockets when enabling encap
  Revert "bareudp: Fixed bareudp receive handling"

 drivers/net/bareudp.c    | 6 ------
 include/net/udp_tunnel.h | 3 +--
 net/ipv6/udp.c           | 4 +++-
 3 files changed, 4 insertions(+), 9 deletions(-)

-- 
2.1.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap
  2021-01-11 12:38 [PATCH net-next 0/2] net: enable udp v6 sockets receiving v4 packets with UDP GRO Xin Long
@ 2021-01-11 12:38 ` Xin Long
  2021-01-11 18:01     ` kernel test robot
  2021-01-11 12:38 ` [PATCH net-next 2/2] Revert "bareudp: Fixed bareudp receive handling" Xin Long
  1 sibling, 1 reply; 7+ messages in thread
From: Xin Long @ 2021-01-11 12:38 UTC (permalink / raw)
  To: network dev, linux-sctp
  Cc: davem, Jakub Kicinski, pabeni, Willem de Bruijn, Martin Varghese

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().

Reported-by: Chen Yi <yiche@redhat.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
---
 include/net/udp_tunnel.h | 3 +--
 net/ipv6/udp.c           | 4 +++-
 2 files changed, 4 insertions(+), 3 deletions(-)

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/ipv6/udp.c b/net/ipv6/udp.c
index b9f3dfd..265b6a0 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);
+			static_branch_dec(&udp_encap_needed_key);
+		}
 	}
 
 	inet6_destroy_sock(sk);
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH net-next 2/2] Revert "bareudp: Fixed bareudp receive handling"
  2021-01-11 12:38 [PATCH net-next 0/2] net: enable udp v6 sockets receiving v4 packets with UDP GRO Xin Long
  2021-01-11 12:38 ` [PATCH net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Xin Long
@ 2021-01-11 12:38 ` Xin Long
  1 sibling, 0 replies; 7+ messages in thread
From: Xin Long @ 2021-01-11 12:38 UTC (permalink / raw)
  To: network dev, linux-sctp
  Cc: davem, Jakub Kicinski, pabeni, Willem de Bruijn, Martin Varghese

As udp_encap_enable() is already called in udp_tunnel_encap_enable()
since the last patch, and we don't need it any more. So remove it by
reverting commit 81f954a44567567c7d74a97b1db78fb43afc253d.
---
 drivers/net/bareudp.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c
index 85de5f9..aed5049 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;
 }
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap
  2021-01-11 12:38 ` [PATCH net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Xin Long
@ 2021-01-11 18:01     ` kernel test robot
  0 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2021-01-11 18:01 UTC (permalink / raw)
  To: Xin Long, network dev, linux-sctp
  Cc: kbuild-all, davem, Jakub Kicinski, pabeni, Willem de Bruijn,
	Martin Varghese

[-- Attachment #1: Type: text/plain, Size: 1457 bytes --]

Hi Xin,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Xin-Long/net-enable-udp-v6-sockets-receiving-v4-packets-with-UDP-GRO/20210111-205115
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 73b7a6047971aa6ce4a70fc4901964d14f077171
config: m68k-defconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/62229592b4c3e929eeafea82e758dacb2953fbde
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Xin-Long/net-enable-udp-v6-sockets-receiving-v4-packets-with-UDP-GRO/20210111-205115
        git checkout 62229592b4c3e929eeafea82e758dacb2953fbde
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>, old ones prefixed by <<):

>> ERROR: modpost: "udp_encap_needed_key" [net/ipv6/ipv6.ko] undefined!

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 17029 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap
@ 2021-01-11 18:01     ` kernel test robot
  0 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2021-01-11 18:01 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1489 bytes --]

Hi Xin,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Xin-Long/net-enable-udp-v6-sockets-receiving-v4-packets-with-UDP-GRO/20210111-205115
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 73b7a6047971aa6ce4a70fc4901964d14f077171
config: m68k-defconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/62229592b4c3e929eeafea82e758dacb2953fbde
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Xin-Long/net-enable-udp-v6-sockets-receiving-v4-packets-with-UDP-GRO/20210111-205115
        git checkout 62229592b4c3e929eeafea82e758dacb2953fbde
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>, old ones prefixed by <<):

>> ERROR: modpost: "udp_encap_needed_key" [net/ipv6/ipv6.ko] undefined!

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 17029 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap
  2021-01-11 18:01     ` kernel test robot
@ 2021-01-12  7:53       ` Xin Long
  -1 siblings, 0 replies; 7+ messages in thread
From: Xin Long @ 2021-01-12  7:53 UTC (permalink / raw)
  To: kernel test robot
  Cc: network dev, linux-sctp @ vger . kernel . org, kbuild-all, davem,
	Jakub Kicinski, Paolo Abeni, Willem de Bruijn, Martin Varghese

On Tue, Jan 12, 2021 at 2:02 AM kernel test robot <lkp@intel.com> wrote:
>
> Hi Xin,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on net-next/master]
>
> url:    https://github.com/0day-ci/linux/commits/Xin-Long/net-enable-udp-v6-sockets-receiving-v4-packets-with-UDP-GRO/20210111-205115
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 73b7a6047971aa6ce4a70fc4901964d14f077171
> config: m68k-defconfig (attached as .config)
> compiler: m68k-linux-gcc (GCC) 9.3.0
> reproduce (this is a W=1 build):
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # https://github.com/0day-ci/linux/commit/62229592b4c3e929eeafea82e758dacb2953fbde
>         git remote add linux-review https://github.com/0day-ci/linux
>         git fetch --no-tags linux-review Xin-Long/net-enable-udp-v6-sockets-receiving-v4-packets-with-UDP-GRO/20210111-205115
>         git checkout 62229592b4c3e929eeafea82e758dacb2953fbde
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>, old ones prefixed by <<):
>
> >> ERROR: modpost: "udp_encap_needed_key" [net/ipv6/ipv6.ko] undefined!
I will add udp_encap_disable() and export, thanks.
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap
@ 2021-01-12  7:53       ` Xin Long
  0 siblings, 0 replies; 7+ messages in thread
From: Xin Long @ 2021-01-12  7:53 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1668 bytes --]

On Tue, Jan 12, 2021 at 2:02 AM kernel test robot <lkp@intel.com> wrote:
>
> Hi Xin,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on net-next/master]
>
> url:    https://github.com/0day-ci/linux/commits/Xin-Long/net-enable-udp-v6-sockets-receiving-v4-packets-with-UDP-GRO/20210111-205115
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 73b7a6047971aa6ce4a70fc4901964d14f077171
> config: m68k-defconfig (attached as .config)
> compiler: m68k-linux-gcc (GCC) 9.3.0
> reproduce (this is a W=1 build):
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # https://github.com/0day-ci/linux/commit/62229592b4c3e929eeafea82e758dacb2953fbde
>         git remote add linux-review https://github.com/0day-ci/linux
>         git fetch --no-tags linux-review Xin-Long/net-enable-udp-v6-sockets-receiving-v4-packets-with-UDP-GRO/20210111-205115
>         git checkout 62229592b4c3e929eeafea82e758dacb2953fbde
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>, old ones prefixed by <<):
>
> >> ERROR: modpost: "udp_encap_needed_key" [net/ipv6/ipv6.ko] undefined!
I will add udp_encap_disable() and export, thanks.
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-01-12  7:54 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-01-11 12:38 [PATCH net-next 0/2] net: enable udp v6 sockets receiving v4 packets with UDP GRO Xin Long
2021-01-11 12:38 ` [PATCH net-next 1/2] udp: call udp_encap_enable for v6 sockets when enabling encap Xin Long
2021-01-11 18:01   ` kernel test robot
2021-01-11 18:01     ` kernel test robot
2021-01-12  7:53     ` Xin Long
2021-01-12  7:53       ` Xin Long
2021-01-11 12:38 ` [PATCH net-next 2/2] Revert "bareudp: Fixed bareudp receive handling" Xin Long

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.