net: add gro_cells infrastructure
authorEric Dumazet <edumazet@google.com>
Thu, 27 Sep 2012 19:29:05 +0000 (19:29 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 1 Oct 2012 21:01:46 +0000 (17:01 -0400)
commitc9e6bc644e557338221e75c242ab12c275a67d1b
treedea44a1edd85dccafc2d0973280d3a608d69eb02
parent861b650101eb0c627d171eb18de81dddb93d395e
net: add gro_cells infrastructure

This adds a new include file (include/net/gro_cells.h), to bring GRO
(Generic Receive Offload) capability to tunnels, in a modular way.

Because tunnels receive path is lockless, and GRO adds a serialization
using a napi_struct, I chose to add an array of up to
DEFAULT_MAX_NUM_RSS_QUEUES cells, so that multi queue devices wont be
slowed down because of GRO layer.

skb_get_rx_queue() is used as selector.

In the future, we might add optional fanout capabilities, using rxhash
for example.

With help from Ben Hutchings who reminded me
netif_get_num_default_rss_queues() function.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/gro_cells.h [new file with mode: 0644]
net/core/dev.c