linux/drivers/net/ethernet
Alexander Duyck 6e03370088 igb: Add support for generic Tx checksums
This patch adds support for generic Tx checksums to the igb driver.  It
turns out this is actually pretty easy after going over the datasheet as we
were doing a number of steps we didn't need to.

In order to perform a Tx checksum for an L4 header we need to fill in the
following fields in the Tx descriptor:
  MACLEN (maximum of 127), retrieved from:
		skb_network_offset()
  IPLEN  (maximum of 511), retrieved from:
		skb_checksum_start_offset() - skb_network_offset()
  TUCMD.L4T indicates offset and if checksum or crc32c, based on:
		skb->csum_offset

The added advantage to doing this is that we can support inner checksum
offloads for tunnels and MPLS while still being able to transparently
insert VLAN tags.

I also took the opportunity to clean-up many of the feature flag
configuration bits to make them a bit more consistent between drivers.

Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2016-02-24 15:32:42 -08:00
..
3com 3c59x: fix another page map/single unmap imbalance 2016-01-13 14:55:18 -05:00
8390 pcnet_cs: add new id 2016-02-16 16:06:13 -05:00
adaptec
adi net: bfin_mac: Use phy_find_first() instead of open-coding it 2016-01-11 00:00:34 -05:00
aeroflex mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
agere et131x: check return value of dma_alloc_coherent 2016-02-17 23:32:05 -05:00
allwinner net: sun4i-emac: Properly free resources on probe failure and remove 2015-10-21 19:47:45 -07:00
alteon
altera phy: Add an mdio_device structure 2016-01-07 14:31:26 -05:00
amd Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-02-23 00:09:14 -05:00
apm drivers: net: xgene: Add support for multiple queues 2016-02-17 22:08:34 -05:00
apple
arc net: arc_emac: fix sk_buff leak 2016-02-16 15:26:30 -05:00
atheros ethernet/atheros/alx: sanitize buffer sizing and padding 2016-01-06 15:05:25 -05:00
aurora net: nb8800: avoid uninitialized variable warning 2016-01-29 20:33:39 -08:00
broadcom bgmac: support Ethernet device on BCM47094 SoC 2016-02-24 15:33:58 -05:00
brocade bna: fix Rx data corruption with VLAN stripping enabled and MTU > 4096 2016-01-15 21:49:25 -05:00
cadence net: macb: make magic-packet property generic 2016-02-19 15:32:24 -05:00
calxeda
cavium Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-02-23 00:09:14 -05:00
chelsio Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-02-23 00:09:14 -05:00
cirrus
cisco enic: increment devcmd2 result ring in case of timeout 2016-02-09 04:48:01 -05:00
davicom net: ethernet: davicom: fix devicetree irq resource 2016-02-21 22:40:49 -05:00
dec drivers/net: fix eisa_driver probe section mismatch 2015-12-14 00:24:22 -05:00
dlink dl2k: Implement suspend 2015-11-20 14:48:27 -05:00
emulex be2net: Fix a UE caused by passing large frames to the ASIC 2016-02-24 15:25:19 -05:00
ezchip net: Fix dependencies for !HAS_IOMEM archs 2016-01-28 16:03:19 -08:00
faraday net: ethernet: faraday: Use phy_find_first() instead of open coding it 2016-01-10 22:05:30 -05:00
freescale gianfar: Remove redundant ops for do_tstamp from xmit() 2016-02-24 16:55:58 -05:00
fujitsu fmvj18x_cs: fix incorrect indexing of dev->dev_addr[] when copying the MAC address 2016-02-21 22:08:43 -05:00
hisilicon net: hns: enet specifies a reference to dsaf 2016-01-21 12:02:31 -08:00
hp net: hp100: remove unnecessary #ifdefs 2016-01-29 20:33:38 -08:00
i825xx
ibm Driver for IBM System i/p VNIC protocol 2015-12-28 00:12:13 -05:00
intel igb: Add support for generic Tx checksums 2016-02-24 15:32:42 -08:00
marvell net: mvneta: Fix race condition during stopping 2016-02-13 06:02:19 -05:00
mellanox net/mlx5e: Add TX inner packet counters 2016-02-24 13:50:22 -05:00
micrel Merge remote-tracking branches 'spi/topic/omap-100k', 'spi/topic/omap-uwire', 'spi/topic/owner', 'spi/topic/pxa' and 'spi/topic/pxa2xx' into spi-next 2015-11-04 11:02:12 +00:00
microchip net: encx24j600: move rev announcement to probe function 2015-11-20 10:45:20 -05:00
moxa net: moxart: use correct accessors for DMA memory 2016-01-29 19:40:02 -08:00
myricom net: provide generic busy polling to all NAPI drivers 2015-11-18 16:17:42 -05:00
natsemi natsemi: add checks for dma mapping errors 2015-12-19 12:58:46 -05:00
neterion net: vxge: avoid unused function warnings 2016-01-29 20:33:39 -08:00
netronome nfp: call netif_carrier_off() during init 2015-12-18 15:31:36 -05:00
nuvoton
nvidia forcedeth: fix unilateral interrupt disabling in netpoll path 2015-10-27 19:45:23 -07:00
nxp net: lpc_eth: Remove unused variables 2016-01-10 22:50:14 -05:00
octeon drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
oki-semi net: Rename NETIF_F_ALL_CSUM to NETIF_F_CSUM_MASK 2015-12-15 16:50:08 -05:00
packetengines
pasemi pasemi_mac: Replace LRO with GRO 2016-02-17 16:15:45 -05:00
qlogic qed,qede: Bump driver versions to 8.7.0.0 2016-02-21 22:49:16 -05:00
qualcomm net: qca_spi: fix transmit queue timeout handling 2015-12-06 12:02:24 -05:00
rdc mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
realtek r8169:fix system hange problem. 2016-02-13 05:57:39 -05:00
renesas Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-02-23 00:09:14 -05:00
rocker rocker: fix rocker_world_port_obj_vlan_add() 2016-02-23 13:12:31 -05:00
samsung sxgbe: remove unused code 2016-02-10 06:10:17 -05:00
seeq
sfc net: rework setup_tc ndo op to consume general tc operand 2016-02-17 09:47:35 -05:00
sgi
silan
sis
smsc net: smc91x: propagate irq return code 2016-02-16 15:02:23 -05:00
stmicro stmmac: Don't exit mdio registration when mdio subnode is not found in the DTS 2016-01-10 18:02:33 -05:00
sun sunvnet: perf tracepoint invocations to trace LDC state machine 2016-02-07 14:13:06 -05:00
synopsys dwc_eth_qos: Reset hardware before PHY start 2016-02-06 03:38:11 -05:00
tehuti drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
ti Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-02-23 00:09:14 -05:00
tile tilepro: use to_delayed_work 2016-01-04 16:07:16 -05:00
toshiba net: tc35815: Drop unused variable 2016-01-10 23:31:25 -05:00
tundra
via via-velocity: unconditionally drop frames with bad l2 length 2015-11-17 14:37:16 -05:00
wiznet
xilinx phy: Add an mdio_device structure 2016-01-07 14:31:26 -05:00
xircom
xscale
dnet.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
dnet.h
ec_bhf.c
ethoc.c phy: Add API for {un}registering an mdio device to a bus. 2016-01-07 14:31:26 -05:00
fealnx.c
jme.c net: Rename NETIF_F_ALL_CSUM to NETIF_F_CSUM_MASK 2015-12-15 16:50:08 -05:00
jme.h
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-12-03 21:09:12 -05:00
korina.c
lantiq_etop.c net: lantiq_etop.c: Use helper to find first phy 2016-01-10 18:03:47 -05:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-12-03 21:09:12 -05:00
netx-eth.c