linux/drivers/net/ethernet/broadcom/bnx2x
Eric Dumazet d6cb3e4138 bnx2x: fix checksum validation
bnx2x driver incorrectly sets ip_summed to CHECKSUM_UNNECESSARY on
encapsulated segments. TCP stack happily accepts frames with bad
checksums, if they are inside a GRE or IPIP encapsulation.

Our understanding is that if no IP or L4 csum validation was done by the
hardware, we should leave ip_summed as is (CHECKSUM_NONE), since
hardware doesn't provide CHECKSUM_COMPLETE support in its cqe.

Then, if IP/L4 checksumming was done by the hardware, set
CHECKSUM_UNNECESSARY if no error was flagged.

Patch based on findings and analysis from Robert Evans

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Eilon Greenstein <eilong@broadcom.com>
Cc: Yaniv Rosner <yanivr@broadcom.com>
Cc: Merav Sicron <meravs@broadcom.com>
Cc: Tom Herbert <therbert@google.com>
Cc: Robert Evans <evansr@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Acked-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-06-13 15:58:53 -07:00
..
bnx2x_cmn.c bnx2x: fix checksum validation 2012-06-13 15:58:53 -07:00
bnx2x_cmn.h bnx2x: remove some bloat 2012-04-30 21:38:17 -04:00
bnx2x_dcb.c bnx2x: added TLV_NOT_FOUND flags to the dcb 2012-03-19 16:53:07 -04:00
bnx2x_dcb.h bnx2x: Update version to 1.72.0 and copyrights 2012-01-26 13:39:52 -05:00
bnx2x_dump.h bnx2x: Update version to 1.72.0 and copyrights 2012-01-26 13:39:52 -05:00
bnx2x_ethtool.c bnx2x: remove some bloat 2012-04-30 21:38:17 -04:00
bnx2x_fw_defs.h bnx2x: add afex support 2012-04-23 22:34:03 -04:00
bnx2x_fw_file_hdr.h bnx2x: Update version to 1.72.0 and copyrights 2012-01-26 13:39:52 -05:00
bnx2x_hsi.h bnx2x: add afex support 2012-04-23 22:34:03 -04:00
bnx2x_init_ops.h bnx2x: Update version to 1.72.0 and copyrights 2012-01-26 13:39:52 -05:00
bnx2x_init.h bnx2x: add afex support 2012-04-23 22:34:03 -04:00
bnx2x_link.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-04-23 23:15:17 -04:00
bnx2x_link.h bnx2x: add afex support 2012-04-23 22:34:03 -04:00
bnx2x_main.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-07 23:35:40 -04:00
bnx2x_reg.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-04-10 14:30:45 -04:00
bnx2x_sp.c bnx2x: add afex support 2012-04-23 22:34:03 -04:00
bnx2x_sp.h bnx2x: add afex support 2012-04-23 22:34:03 -04:00
bnx2x_stats.c bnx2x: remove some bloat 2012-04-30 21:38:17 -04:00
bnx2x_stats.h bnx2x: add afex support 2012-04-23 22:34:03 -04:00
bnx2x.h bnx2x: fix checksum validation 2012-06-13 15:58:53 -07:00
Makefile