linux/drivers/net
Tom Herbert 26c4f7da3e net: Fix remcsum in GRO path to not change packet
Remote checksum offload processing is currently the same for both
the GRO and non-GRO path. When the remote checksum offload option
is encountered, the checksum field referred to is modified in
the packet. So in the GRO case, the packet is modified in the
GRO path and then the operation is skipped when the packet goes
through the normal path based on skb->remcsum_offload. There is
a problem in that the packet may be modified in the GRO path, but
then forwarded off host still containing the remote checksum option.
A remote host will again perform RCO but now the checksum verification
will fail since GRO RCO already modified the checksum.

To fix this, we ensure that GRO restores a packet to it's original
state before returning. In this model, when GRO processes a remote
checksum option it still changes the checksum per the algorithm
but on return from lower layer processing the checksum is restored
to its original value.

In this patch we add define gro_remcsum structure which is passed
to skb_gro_remcsum_process to save offset and delta for the checksum
being changed. After lower layer processing, skb_gro_remcsum_cleanup
is called to restore the checksum before returning from GRO.

Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-02-11 15:12:09 -08:00
..
appletalk
arcnet ARCNET: Add missing error check for devm_kzalloc 2015-02-05 15:53:34 -08:00
bonding net/bonding: Fix potential bad memory access during bonding events 2015-02-09 14:03:53 -08:00
caif caif: remove wrong dev_net_set() call 2015-01-29 14:20:02 -08:00
can can: kvaser_usb: Ignore spurious error events after a busoff 2015-02-04 14:07:03 +01:00
cris
dsa Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-02-09 14:35:57 -08:00
ethernet treewide: Remove unnecessary SSB_DEVTABLE_END macro 2015-02-11 14:38:29 -08:00
fddi
hamradio
hippi
hyperv hyperv: fix sparse warnings 2015-02-05 16:03:27 -08:00
ieee802154 ieee802154: cc2520: Fix space before , coding style issue 2015-02-02 06:09:35 +01:00
ipvlan net: mark some potential candidates __read_mostly 2015-01-30 17:58:39 -08:00
irda
phy net: phy: Invalidate LP advertising flags when restarting or disabling AN 2015-01-27 00:27:08 -08:00
plip
ppp ppp: deflate: never return len larger than output buffer 2015-01-29 14:50:01 -08:00
slip
team team: handle NETIF_F_HW_SWITCH_OFFLOAD flag and add ndo_bridge_setlink/dellink handlers 2015-02-01 23:16:34 -08:00
usb r8152: use BIT macro 2015-02-07 22:46:25 -08:00
vmxnet3 Driver: Vmxnet3: Change the hex constant to its decimal equivalent 2015-02-08 16:55:01 -08:00
wan net: wan: add missing virt_to_bus dependencies 2015-01-29 15:08:21 -08:00
wimax
wireless treewide: Remove unnecessary SSB_DEVTABLE_END macro 2015-02-11 14:38:29 -08:00
xen-netback Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2015-02-10 20:01:30 -08:00
dummy.c
eql.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macvlan.c macvlan: advertise link netns via netlink 2015-01-23 17:51:15 -08:00
macvtap.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-02-05 14:33:28 -08:00
Makefile
mdio.c
mii.c mii: Handle link state changes for forced modes in mii_check_media() 2015-01-19 15:43:42 -05:00
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c net: rfs: add hash collision detection 2015-02-08 16:53:57 -08:00
veth.c veth: advertise link netns via netlink 2015-01-23 17:51:15 -08:00
virtio_net.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-02-05 14:33:28 -08:00
vxlan.c net: Fix remcsum in GRO path to not change packet 2015-02-11 15:12:09 -08:00
xen-netfront.c xen-netfront: Use static attribute groups for sysfs entries 2015-02-05 00:31:12 -08:00