net/mlx4_en: Add support for inner IPv6 checksum offloads and TSO
authorAlexander Duyck <aduyck@mirantis.com>
Mon, 2 May 2016 16:38:37 +0000 (09:38 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 May 2016 17:32:27 +0000 (13:32 -0400)
commit09067122db3b7fb9cd329fcc16cee12e8f6babcf
tree6e4eedc96b00cc568d178eae51ab7d1dc143e317
parent3c9346b24001523a763c28478b49064589d1c8ab
net/mlx4_en: Add support for inner IPv6 checksum offloads and TSO

>From what I can tell the ConnectX-3 will support an inner IPv6 checksum and
segmentation offload, however it cannot support outer IPv6 headers.  This
assumption is based on the fact that I could see the checksum being
offloaded for inner header on IPv4 tunnels, but not on IPv6 tunnels.

For this reason I am adding the feature to the hw_enc_features and adding
an extra check to the features_check call that will disable GSO and
checksum offload in the case that the encapsulated frame has an outer IP
version of that is not 4.  The check in mlx4_en_features_check could be
removed if at some point in the future a fix is found that allows the
hardware to offload segmentation/checksum on tunnels with an outer IPv6
header.

Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
drivers/net/ethernet/mellanox/mlx4/en_tx.c