da3bc07171
This patch makes sfc invoke the GRO hooks instead of LRO. As GRO has a compatible external interface to LRO this is a very straightforward replacement. Everything should appear identical to the user except that the offload is now controlled by the GRO ethtool option instead of LRO. I've kept the lro module parameter as is since that's for compatibility only. I have eliminated efx_rx_mk_skb as the GRO layer can take care of all packets regardless of whether GRO is enabled or not. So the only case where we don't call GRO is if the packet checksum is absent. This is to keep the behaviour changes of the patch to a minimum. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
27 lines
996 B
C
27 lines
996 B
C
/****************************************************************************
|
|
* Driver for Solarflare Solarstorm network controllers and boards
|
|
* Copyright 2006 Solarflare Communications Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License version 2 as published
|
|
* by the Free Software Foundation, incorporated herein by reference.
|
|
*/
|
|
|
|
#ifndef EFX_RX_H
|
|
#define EFX_RX_H
|
|
|
|
#include "net_driver.h"
|
|
|
|
int efx_probe_rx_queue(struct efx_rx_queue *rx_queue);
|
|
void efx_remove_rx_queue(struct efx_rx_queue *rx_queue);
|
|
void efx_init_rx_queue(struct efx_rx_queue *rx_queue);
|
|
void efx_fini_rx_queue(struct efx_rx_queue *rx_queue);
|
|
|
|
void efx_rx_strategy(struct efx_channel *channel);
|
|
void efx_fast_push_rx_descriptors(struct efx_rx_queue *rx_queue);
|
|
void efx_rx_work(struct work_struct *data);
|
|
void __efx_rx_packet(struct efx_channel *channel,
|
|
struct efx_rx_buffer *rx_buf, bool checksummed);
|
|
|
|
#endif /* EFX_RX_H */
|