diff mbox series

[net-next] udp: not remove the CRC flag from dev features when need_csum is false

Message ID 1e81b700642498546eaa3f298e023fd7ad394f85.1610776757.git.lucien.xin@gmail.com
State New
Headers show
Series [net-next] udp: not remove the CRC flag from dev features when need_csum is false | expand

Commit Message

Xin Long Jan. 16, 2021, 5:59 a.m. UTC
In __skb_udp_tunnel_segment(), when it's a SCTP over VxLAN/GENEVE
packet and need_csum is false, which means the outer udp checksum
doesn't need to be computed, csum_start and csum_offset could be
used by the inner SCTP CRC CSUM for SCTP HW CRC offload.

So this patch is to not remove the CRC flag from dev features when
need_csum is false.

Signed-off-by: Xin Long <lucien.xin@gmail.com>
---
 net/ipv4/udp_offload.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Jan. 21, 2021, 6:20 a.m. UTC | #1
Hello:

This patch was applied to netdev/net-next.git (refs/heads/master):

On Sat, 16 Jan 2021 13:59:17 +0800 you wrote:
> In __skb_udp_tunnel_segment(), when it's a SCTP over VxLAN/GENEVE

> packet and need_csum is false, which means the outer udp checksum

> doesn't need to be computed, csum_start and csum_offset could be

> used by the inner SCTP CRC CSUM for SCTP HW CRC offload.

> 

> So this patch is to not remove the CRC flag from dev features when

> need_csum is false.

> 

> [...]


Here is the summary with links:
  - [net-next] udp: not remove the CRC flag from dev features when need_csum is false
    https://git.kernel.org/netdev/net-next/c/4eb5d4a5b4d6

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
diff mbox series

Patch

diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c
index ff39e94..1168d18 100644
--- a/net/ipv4/udp_offload.c
+++ b/net/ipv4/udp_offload.c
@@ -68,8 +68,8 @@  static struct sk_buff *__skb_udp_tunnel_segment(struct sk_buff *skb,
 				      (NETIF_F_HW_CSUM | NETIF_F_IP_CSUM))));
 
 	features &= skb->dev->hw_enc_features;
-	/* CRC checksum can't be handled by HW when it's a UDP tunneling packet. */
-	features &= ~NETIF_F_SCTP_CRC;
+	if (need_csum)
+		features &= ~NETIF_F_SCTP_CRC;
 
 	/* The only checksum offload we care about from here on out is the
 	 * outer one so strip the existing checksum feature flags and