linux/include/net
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
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
tipc [TIPC]: Corrected potential misuse of tipc_media_addr structure. 2006-06-25 23:38:29 -07:00
act_api.h
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
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
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h
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
gen_stats.h
genetlink.h
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
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
inet6_connection_sock.h
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
inet_connection_sock.h
inet_ecn.h
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
lapb.h
llc.h
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
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
timewait_sock.h
transp_v6.h
udp.h
x25.h
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