]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/cxgb3/adapter.h
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
[linux-2.6-omap-h63xx.git] / drivers / net / cxgb3 / adapter.h
index 263e4faf45e5f806b6a1edb06b86c4a223fc9ebd..271140433b09a68eaa7219873185e21cb3bd27b0 100644 (file)
@@ -42,6 +42,7 @@
 #include <linux/cache.h>
 #include <linux/mutex.h>
 #include <linux/bitops.h>
+#include <linux/inet_lro.h>
 #include "t3cdev.h"
 #include <asm/io.h>
 
@@ -173,16 +174,29 @@ enum {                            /* per port SGE statistics */
        SGE_PSTAT_TX_CSUM,      /* # of TX checksum offloads */
        SGE_PSTAT_VLANEX,       /* # of VLAN tag extractions */
        SGE_PSTAT_VLANINS,      /* # of VLAN tag insertions */
+       SGE_PSTAT_LRO_AGGR,     /* # of page chunks added to LRO sessions */
+       SGE_PSTAT_LRO_FLUSHED,  /* # of flushed LRO sessions */
+       SGE_PSTAT_LRO_NO_DESC,  /* # of overflown LRO sessions */
 
        SGE_PSTAT_MAX           /* must be last */
 };
 
+#define T3_MAX_LRO_SES 8
+#define T3_MAX_LRO_MAX_PKTS 64
+
 struct sge_qset {              /* an SGE queue set */
        struct adapter *adap;
        struct napi_struct napi;
        struct sge_rspq rspq;
        struct sge_fl fl[SGE_RXQ_PER_SET];
        struct sge_txq txq[SGE_TXQ_PER_SET];
+       struct net_lro_mgr lro_mgr;
+       struct net_lro_desc lro_desc[T3_MAX_LRO_SES];
+       struct skb_frag_struct *lro_frag_tbl;
+       int lro_nfrags;
+       int lro_enabled;
+       int lro_frag_len;
+       void *lro_va;
        struct net_device *netdev;
        unsigned long txq_stopped;      /* which Tx queues are stopped */
        struct timer_list tx_reclaim_timer;     /* reclaims TX buffers */