packet: Add GSO/csum offload support.
authorSridhar Samudrala <sri@us.ibm.com>
Fri, 5 Feb 2010 04:24:10 +0000 (20:24 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 5 Feb 2010 04:24:10 +0000 (20:24 -0800)
commitbfd5f4a3d605e0f6054df0b59fe0907ff7e696d3
tree63d19326b491b507f246ea4c3ef410d62602e794
parent746079dabcf74be2a16dc983ac597156e3d2e051
packet: Add GSO/csum offload support.

This patch adds GSO/checksum offload to af_packet sockets using
virtio_net_hdr. Based on Rusty's patch to add this support to tun.
It allows GSO/checksum offload to be enabled when using raw socket
backend with virtio_net.
Adds PACKET_VNET_HDR socket option to prepend virtio_net_hdr in the
receive path and process/skip virtio_net_hdr in the send path. This
option is only allowed with SOCK_RAW sockets attached to ethernet
type devices.

v2 updates
----------
Michael's Comments
- Perform length check in packet_snd() when GSO is off even when
  vnet_hdr is present.
- Check for SKB_GSO_FCOE type and return -EINVAL
- don't allow tx/rx ring when vnet_hdr is enabled.
Herbert's Comments
- Removed ethernet specific code.
- protocol value is assumed to be passed in by the caller.

Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/if_packet.h
net/packet/af_packet.c