• Sridhar Samudrala's avatar
    packet: Add GSO/csum offload support. · bfd5f4a3
    Sridhar Samudrala authored
    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: 's avatarSridhar Samudrala <sri@us.ibm.com>
    Signed-off-by: 's avatarDavid S. Miller <davem@davemloft.net>
af_packet.c 58.8 KB