ipv6: sit: add GSO/TSO support
authorEric Dumazet <edumazet@google.com>
Mon, 21 Oct 2013 03:47:30 +0000 (20:47 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 21 Oct 2013 22:49:39 +0000 (18:49 -0400)
commit61c1db7fae21ed33c614356a43bf6580c5e53118
tree74e9756895dcf0006f57791684f6435d29c226ab
parentd3e5e0062de5f2c6444455b5708a62a50c93a50c
ipv6: sit: add GSO/TSO support

Now ipv6_gso_segment() is stackable, its relatively easy to
implement GSO/TSO support for SIT tunnels

Performance results, when segmentation is done after tunnel
device (as no NIC is yet enabled for TSO SIT support) :

Before patch :

lpq84:~# ./netperf -H 2002:af6:1153:: -Cc
MIGRATED TCP STREAM TEST from ::0 (::) port 0 AF_INET6 to 2002:af6:1153:: () port 0 AF_INET6
Recv   Send    Send                          Utilization       Service Demand
Socket Socket  Message  Elapsed              Send     Recv     Send    Recv
Size   Size    Size     Time     Throughput  local    remote   local   remote
bytes  bytes   bytes    secs.    10^6bits/s  % S      % S      us/KB   us/KB

 87380  16384  16384    10.00      3168.31   4.81     4.64     2.988   2.877

After patch :

lpq84:~# ./netperf -H 2002:af6:1153:: -Cc
MIGRATED TCP STREAM TEST from ::0 (::) port 0 AF_INET6 to 2002:af6:1153:: () port 0 AF_INET6
Recv   Send    Send                          Utilization       Service Demand
Socket Socket  Message  Elapsed              Send     Recv     Send    Recv
Size   Size    Size     Time     Throughput  local    remote   local   remote
bytes  bytes   bytes    secs.    10^6bits/s  % S      % S      us/KB   us/KB

 87380  16384  16384    10.00      5525.00   7.76     5.17     2.763   1.840

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdev_features.h
include/linux/skbuff.h
net/core/ethtool.c
net/ipv4/af_inet.c
net/ipv4/tcp_offload.c
net/ipv6/ip6_offload.c
net/ipv6/sit.c
net/ipv6/udp_offload.c