Skip to content

Commit

Permalink
udp: not remove the CRC flag from dev features when need_csum is false
Browse files Browse the repository at this point in the history
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>
Link: https://lore.kernel.org/r/1e81b700642498546eaa3f298e023fd7ad394f85.1610776757.git.lucien.xin@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Xin Long authored and Jakub Kicinski committed Jan 21, 2021
1 parent 7baf242 commit 4eb5d4a
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions net/ipv4/udp_offload.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 4eb5d4a

Please sign in to comment.