ibmveth: Set CHECKSUM_PARTIAL if NULL TCP CSUM.
authorDavid Wilder <dwilder@us.ibm.com>
Tue, 22 Jun 2021 21:52:15 +0000 (14:52 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 23 Jun 2021 19:54:11 +0000 (12:54 -0700)
commit7525de2516fba8661bdea409718708c711c5d5e1
tree44f8fac170183c3911f2b859f325203971945b59
parentfe87797bf245946e9d07e4a9ca1cd92f48a410d6
ibmveth: Set CHECKSUM_PARTIAL if NULL TCP CSUM.

TCP checksums on received packets may be set to NULL by the sender if CSO
is enabled. The hypervisor flags these packets as check-sum-ok and the
skb is then flagged CHECKSUM_UNNECESSARY. If these packets are then
forwarded the sender will not request CSO due to the CHECKSUM_UNNECESSARY
flag. The result is a TCP packet sent with a bad checksum. This change
sets up CHECKSUM_PARTIAL on these packets causing the sender to correctly
request CSUM offload.

Signed-off-by: David Wilder <dwilder@us.ibm.com>
Reviewed-by: Pradeep Satyanarayana <pradeeps@linux.vnet.ibm.com>
Tested-by: Cristobal Forno <cforno12@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ibm/ibmveth.c