igb: setup vlan tag replication stripping in igb_vmm_control
[deliverable/linux.git] / drivers / net / igb / igb.h
index de268620dd923c4b5d5a97b9bc5db00766062c72..2416c12af3fed1fac0b8109781e25900c0fb3f1b 100644 (file)
@@ -145,12 +145,15 @@ struct igb_buffer {
 struct igb_tx_queue_stats {
        u64 packets;
        u64 bytes;
+       u64 restart_queue;
 };
 
 struct igb_rx_queue_stats {
        u64 packets;
        u64 bytes;
        u64 drops;
+       u64 csum_err;
+       u64 alloc_failed;
 };
 
 struct igb_q_vector {
@@ -172,9 +175,10 @@ struct igb_q_vector {
 
 struct igb_ring {
        struct igb_q_vector *q_vector; /* backlink to q_vector */
-       void *desc;                    /* descriptor ring memory */
+       struct net_device *netdev;     /* back pointer to net_device */
        struct pci_dev *pdev;          /* pci device for dma mapping */
        dma_addr_t dma;                /* phys address of the ring */
+       void *desc;                    /* descriptor ring memory */
        unsigned int size;             /* length of desc. ring in bytes */
        unsigned int count;            /* number of desc. in the ring */
        u16 next_to_use;
@@ -189,6 +193,8 @@ struct igb_ring {
        unsigned int total_bytes;
        unsigned int total_packets;
 
+       u32 flags;
+
        union {
                /* TX */
                struct {
@@ -198,11 +204,18 @@ struct igb_ring {
                /* RX */
                struct {
                        struct igb_rx_queue_stats rx_stats;
-                       u64 rx_queue_drops;
+                       u32 rx_buffer_len;
                };
        };
 };
 
+#define IGB_RING_FLAG_RX_CSUM        0x00000001 /* RX CSUM enabled */
+#define IGB_RING_FLAG_RX_SCTP_CSUM   0x00000002 /* SCTP CSUM offload enabled */
+
+#define IGB_RING_FLAG_TX_CTX_IDX     0x00000001 /* HW requires context index */
+
+#define IGB_ADVTXD_DCMD (E1000_TXD_CMD_EOP | E1000_TXD_CMD_RS)
+
 #define E1000_RX_DESC_ADV(R, i)            \
        (&(((union e1000_adv_rx_desc *)((R).desc))[i]))
 #define E1000_TX_DESC_ADV(R, i)            \
@@ -218,7 +231,6 @@ struct igb_adapter {
        struct vlan_group *vlgrp;
        u16 mng_vlan_id;
        u32 bd_number;
-       u32 rx_buffer_len;
        u32 wol;
        u32 en_mng_pt;
        u16 link_speed;
@@ -242,9 +254,7 @@ struct igb_adapter {
 
        /* TX */
        struct igb_ring *tx_ring;      /* One per active queue */
-       unsigned int restart_queue;
        unsigned long tx_queue_len;
-       u32 txd_cmd;
        u32 gotc;
        u64 gotc_old;
        u64 tpt_old;
@@ -256,8 +266,6 @@ struct igb_adapter {
        int num_tx_queues;
        int num_rx_queues;
 
-       u64 hw_csum_err;
-       u32 alloc_rx_buff_failed;
        u32 gorc;
        u64 gorc_old;
        u32 max_frame_size;
@@ -304,8 +312,6 @@ struct igb_adapter {
 #define IGB_FLAG_HAS_MSI           (1 << 0)
 #define IGB_FLAG_DCA_ENABLED       (1 << 1)
 #define IGB_FLAG_QUAD_PORT_A       (1 << 2)
-#define IGB_FLAG_NEED_CTX_IDX      (1 << 3)
-#define IGB_FLAG_RX_CSUM_DISABLED  (1 << 4)
 
 enum e1000_state_t {
        __IGB_TESTING,
This page took 0.031296 seconds and 5 git commands to generate.