netfilter: nat: skip checksum on offload SCTP packets
authorDavide Caratti <dcaratti@redhat.com>
Mon, 5 Dec 2016 14:33:57 +0000 (15:33 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 7 Dec 2016 12:22:50 +0000 (13:22 +0100)
commit3189a290f98d3d3b76536ab61e9ff95751ed8124
treeb1879d66182cab9d3ee67f70da3b14ed5e8e33d8
parent3b760dcb0fd304873dfde9ff072a49f893c6f5c4
netfilter: nat: skip checksum on offload SCTP packets

SCTP GSO and hardware can do CRC32c computation after netfilter processing,
so we can avoid calling sctp_compute_checksum() on skb if skb->ip_summed
is equal to CHECKSUM_PARTIAL. Moreover, set skb->ip_summed to CHECKSUM_NONE
when the NAT code computes the CRC, to prevent offloaders from computing
it again (on ixgbe this resulted in a transmission with wrong L4 checksum).

Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_nat_proto_sctp.c