Herbert Xu
f83ef8c0b5
[IPV6]: Added GSO support for TCPv6
...
This patch adds GSO support for IPv6 and TCPv6. This is based on a patch
by Ananda Raju <Ananda.Raju@neterion.com>. His original description is:
This patch enables TSO over IPv6. Currently Linux network stacks
restricts TSO over IPv6 by clearing of the NETIF_F_TSO bit from
"dev->features". This patch will remove this restriction.
This patch will introduce a new flag NETIF_F_TSO6 which will be used
to check whether device supports TSO over IPv6. If device support TSO
over IPv6 then we don't clear of NETIF_F_TSO and which will make the
TCP layer to create TSO packets. Any device supporting TSO over IPv6
will set NETIF_F_TSO6 flag in "dev->features" along with NETIF_F_TSO.
In case when user disables TSO using ethtool, NETIF_F_TSO will get
cleared from "dev->features". So even if we have NETIF_F_TSO6 we don't
get TSO packets created by TCP layer.
SKB_GSO_TCPV4 renamed to SKB_GSO_TCP to make it generic GSO packet.
SKB_GSO_UDPV4 renamed to SKB_GSO_UDP as UFO is not a IPv4 feature.
UFO is supported over IPv6 also
The following table shows there is significant improvement in
throughput with normal frames and CPU usage for both normal and jumbo.
--------------------------------------------------
| | 1500 | 9600 |
| ------------------|-------------------|
| | thru CPU | thru CPU |
--------------------------------------------------
| TSO OFF | 2.00 5.5% id | 5.66 20.0% id |
--------------------------------------------------
| TSO ON | 2.63 78.0 id | 5.67 39.0% id |
--------------------------------------------------
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-06-30 14:12:10 -07:00
..
bluetooth
[Bluetooth] Reduce L2CAP MTU for RFCOMM connections
2006-02-13 11:39:57 +01:00
irda
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
2006-05-24 09:22:21 +01:00
netfilter
Merge git://git.infradead.org/hdrcleanup-2.6
2006-06-20 15:10:08 -07:00
sctp
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2006-06-20 17:39:53 -07:00
tc_act
[NETFILTER]: futher {ip,ip6,arp}_tables unification
2006-03-22 13:56:56 -08:00
tipc
[TIPC]: Corrected potential misuse of tipc_media_addr structure.
2006-06-25 23:38:29 -07:00
act_api.h
[PKT_SCHED]: Convert tc action functions to single skb pointers
2006-01-09 14:16:08 -08:00
act_generic.h
addrconf.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
af_unix.h
[AF_UNIX]: Datagram getpeersec
2006-06-29 16:58:06 -07:00
ah.h
arp.h
[IPV4]: Possible cleanups.
2006-04-14 15:00:20 -07:00
atmclip.h
[INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h
2006-01-03 13:11:21 -08:00
ax25.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
2006-05-06 19:59:18 +01:00
checksum.h
compat.h
Merge git://git.infradead.org/hdrcleanup-2.6
2006-06-20 15:10:08 -07:00
datalink.h
dn.h
[DECnet]: Endian annotation and fixes for DECnet.
2006-03-20 22:42:39 -08:00
dn_dev.h
[DECnet]: Endian annotation and fixes for DECnet.
2006-03-20 22:42:39 -08:00
dn_fib.h
[DECnet]: Endian annotation and fixes for DECnet.
2006-03-20 22:42:39 -08:00
dn_neigh.h
[DECnet]: Endian annotation and fixes for DECnet.
2006-03-20 22:42:39 -08:00
dn_nsp.h
[DECnet]: Endian annotation and fixes for DECnet.
2006-03-20 22:42:39 -08:00
dn_route.h
[DECnet]: Endian annotation and fixes for DECnet.
2006-03-20 22:42:39 -08:00
dsfield.h
dst.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
esp.h
flow.h
[DECnet]: Endian annotation and fixes for DECnet.
2006-03-20 22:42:39 -08:00
gen_stats.h
genetlink.h
[PATCH] genetlink: don't touch module ref count
2006-01-13 13:06:40 -08:00
icmp.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
ieee80211.h
[PATCH] wireless: Changes to ieee80211.h for user space regulatory daemon
2006-06-15 15:48:13 -04:00
ieee80211_crypt.h
[PATCH] ieee80211: Add TKIP crypt->build_iv
2006-01-27 17:08:07 -05:00
ieee80211_radiotap.h
ieee80211softmac.h
[PATCH] softmac: Fix handling of authentication failure
2006-06-05 15:51:30 -04:00
ieee80211softmac_wx.h
[PATCH] softmac: add SIOCSIWMLME
2006-04-24 16:15:58 -04:00
if_inet6.h
[IPV6]: ADDRCONF: Use our standard algorithm for randomized ifid.
2006-03-20 16:54:09 -08:00
inet6_connection_sock.h
[IPV6]: Generalise some functions
2006-01-03 13:10:46 -08:00
inet6_hashtables.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
inet_common.h
[NET]: move struct proto_ops to const
2006-01-03 13:11:15 -08:00
inet_connection_sock.h
[ICSK] compat: Introduce inet_csk_compat_[gs]etsockopt
2006-03-20 22:46:16 -08:00
inet_ecn.h
[INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h
2006-01-03 13:11:21 -08:00
inet_hashtables.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
inet_sock.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
inet_timewait_sock.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
2006-05-06 19:59:18 +01:00
inetpeer.h
ip.h
Merge git://git.infradead.org/hdrcleanup-2.6
2006-06-20 15:10:08 -07:00
ip6_checksum.h
ip6_fib.h
ip6_route.h
[IPV6]: Added GSO support for TCPv6
2006-06-30 14:12:10 -07:00
ip6_tunnel.h
ip_fib.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
ip_mp_alg.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
ip_vs.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
ipcomp.h
ipconfig.h
ipip.h
ipv6.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
ipx.h
iw_handler.h
[PATCH] WE-20 for kernel 2.6.16
2006-03-23 07:12:57 -05:00
lapb.h
llc.h
[LLC]: llc_mac_hdr_init const arguments
2006-03-20 22:59:36 -08:00
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
[LLC]: add multicast support for datagrams
2006-06-17 21:26:08 -07:00
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
ndisc.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
neighbour.h
[NEIGH]: Fix IP-over-ATM and ARP interaction.
2006-05-12 14:56:08 -07:00
netdma.h
[I/OAT]: Utility functions for offloading sk_buff to iovec copies
2006-06-17 21:25:46 -07:00
netlink.h
netrom.h
[NETROM]: Eleminate HZ from NET/ROM kernel interfaces
2006-05-03 23:27:47 -07:00
p8022.h
pkt_act.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
pkt_cls.h
pkt_sched.h
[PKT_SCHED]: PSCHED_TADD() and PSCHED_TADD2() can result,tv_usec >= 1000000
2006-06-29 16:58:01 -07:00
protocol.h
[IPV6]: Added GSO support for TCPv6
2006-06-30 14:12:06 -07:00
psnap.h
raw.h
Merge git://git.infradead.org/hdrcleanup-2.6
2006-06-20 15:10:08 -07:00
rawv6.h
red.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
request_sock.h
[NET]: drop duplicate assignment in request_sock
2006-03-26 17:39:55 -08:00
rose.h
[ROSE]: Eleminate HZ from ROSE kernel interfaces
2006-05-03 23:28:20 -07:00
route.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
sch_generic.h
Don't include linux/config.h from anywhere else in include/
2006-04-26 12:56:16 +01:00
scm.h
[AF_UNIX]: Datagram getpeersec
2006-06-29 16:58:06 -07:00
slhc_vj.h
snmp.h
sock.h
[NET]: Generalise TSO-specific bits from skb_setup_caps
2006-06-30 14:12:08 -07:00
syncppp.h
tcp.h
[NET]: Generalise TSO-specific bits from skb_setup_caps
2006-06-30 14:12:08 -07:00
tcp_ecn.h
[IPV6]: Added GSO support for TCPv6
2006-06-30 14:12:10 -07:00
tcp_states.h
[TCP]: Move the TCPF_ enum to tcp_states.h
2006-01-03 13:10:57 -08:00
timewait_sock.h
[TWSK]: Introduce struct timewait_sock_ops
2006-01-03 13:10:54 -08:00
transp_v6.h
[ICSK]: Rename struct tcp_func to struct inet_connection_sock_af_ops
2006-01-03 13:10:38 -08:00
udp.h
[INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h
2006-01-03 13:11:21 -08:00
x25.h
[X25]: allow ITU-T DTE facilities for x25
2006-03-22 00:01:31 -08:00
x25device.h
[X25]: Restore skb->dev setting in x25_type_trans().
2006-04-09 22:37:18 -07:00
xfrm.h
[IPSEC] xfrm: Use IPPROTO_MAX instead of 256
2006-06-17 21:28:43 -07:00