linux/net
Herbert Xu 5d38a079ce gro: Add page frag support
This patch allows GRO to merge page frags (skb_shinfo(skb)->frags)
in one skb, rather than using the less efficient frag_list.

It also adds a new interface, napi_gro_frags to allow drivers
to inject page frags directly into the stack without allocating
an skb.  This is intended to be the GRO equivalent for LRO's
lro_receive_frags interface.

The existing GSO interface can already handle page frags with
or without an appended frag_list so nothing needs to be changed
there.

The merging itself is rather simple.  We store any new frag entries
after the last existing entry, without checking whether the first
new entry can be merged with the last existing entry.  Making this
check would actually be easy but since no existing driver can
produce contiguous frags anyway it would just be mental masturbation.

If the total number of entries would exceed the capacity of a
single skb, we simply resort to using frag_list as we do now.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-01-04 16:13:40 -08:00
..
9p Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2008-12-28 12:49:40 -08:00
802
8021q vlan: fix convertion to net_device_ops 2008-12-25 16:45:19 -08:00
appletalk net/appletalk: Remove redundant test 2008-12-25 18:04:51 -08:00
atm netdevice: Kill netdev->priv 2008-12-08 01:14:16 -08:00
ax25 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2008-12-28 12:49:40 -08:00
bluetooth Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-23 17:56:23 -08:00
bridge
can can: merge error paths 2008-12-14 23:16:58 -08:00
core gro: Add page frag support 2009-01-04 16:13:40 -08:00
dcb net: add DCNA attribute to the BCN interface for DCB 2008-12-21 20:10:29 -08:00
dccp net: Fix percpu counters deadlock 2008-12-29 23:04:08 -08:00
decnet net: Make static 2008-12-10 15:18:31 -08:00
dsa net: Make static 2008-12-10 15:18:31 -08:00
econet
ethernet
ipv4 gro: Use gso_size to store MSS 2009-01-04 16:13:19 -08:00
ipv6 ipv6: Fix sporadic sendmsg -EINVAL when sending to multicast groups. 2009-01-04 16:04:39 -08:00
ipx
irda irda: merge exit paths 2008-12-14 23:18:30 -08:00
iucv [S390] convert iucv printks to dev_xxx and pr_xxx macros. 2008-12-25 13:39:24 +01:00
key
lapb
llc
mac80211 mac80211: implement dynamic power save 2008-12-19 15:24:00 -05:00
netfilter cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits: net 2008-12-29 22:44:47 -08:00
netlabel Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-15 20:03:50 -08:00
netlink
netrom Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2008-12-28 12:49:40 -08:00
packet
phonet Phonet: get rid of deferred work on the transmission path 2008-12-17 15:48:50 -08:00
rfkill rfkill: strip pointless notifier chain 2008-12-12 14:45:25 -05:00
rose Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2008-12-28 12:49:40 -08:00
rxrpc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2008-12-28 12:49:40 -08:00
sched cls_cgroup: clean up Kconfig 2008-12-29 19:40:46 -08:00
sctp sctp: Add validity check for SCTP_PARTIAL_DELIVERY_POINT socket option 2008-12-25 16:59:03 -08:00
sunrpc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2008-12-28 12:49:40 -08:00
tipc
unix Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2008-12-28 12:49:40 -08:00
wanrouter
wireless mac80211: Fix HT channel selection 2008-12-19 15:22:54 -05:00
x25
xfrm net: make xfrm_statistics_seq_show use generic snmp_fold_field 2008-12-29 18:20:06 -08:00
Kconfig
Makefile
TUNABLE
compat.c
nonet.c
socket.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2008-12-28 12:49:40 -08:00
sysctl_net.c