net/ixgbe: fix Rx LRO capability offload for x550
[dpdk.git] / drivers / net / atlantic / atl_types.h
index af24da3..3d90f6c 100644 (file)
@@ -9,7 +9,7 @@
 #include <inttypes.h>
 #include <string.h>
 #include <stdbool.h>
-
+#include <netinet/in.h>
 
 typedef uint8_t                u8;
 typedef int8_t         s8;
@@ -22,6 +22,7 @@ typedef uint64_t      u64;
 #define min(a, b)      RTE_MIN(a, b)
 #define max(a, b)      RTE_MAX(a, b)
 
+#include "hw_atl/hw_atl_b0_internal.h"
 #include "hw_atl/hw_atl_utils.h"
 
 struct aq_hw_link_status_s {
@@ -50,8 +51,18 @@ struct aq_stats_s {
        u64 dma_oct_tc;
 };
 
+struct aq_rss_parameters {
+       u16 base_cpu_number;
+       u16 indirection_table_size;
+       u16 hash_secret_key_size;
+       u32 hash_secret_key[HW_ATL_B0_RSS_HASHKEY_BITS / 8];
+       u8 indirection_table[HW_ATL_B0_RSS_REDIRECTION_MAX];
+};
+
 struct aq_hw_cfg_s {
        bool is_lro;
+       bool is_rss;
+       unsigned int num_rss_queues;
        int wol;
 
        int link_speed_msk;
@@ -59,21 +70,31 @@ struct aq_hw_cfg_s {
        int irq_mask;
        unsigned int vecs;
 
+       bool vlan_strip;
+       uint32_t vlan_filter[HW_ATL_B0_MAX_VLAN_IDS];
        uint32_t flow_control;
+
+       struct aq_rss_parameters aq_rss;
 };
 
 struct aq_hw_s {
+       u16 device_id;
+       u16 vendor_id;
+       bool adapter_stopped;
+
        u8 rbl_enabled:1;
        struct aq_hw_cfg_s *aq_nic_cfg;
        const struct aq_fw_ops *aq_fw_ops;
        void *mmio;
 
        struct aq_hw_link_status_s aq_link_status;
+       bool is_autoneg;
 
        struct hw_aq_atl_utils_mbox mbox;
        struct hw_atl_stats_s last_stats;
        struct aq_stats_s curr_stats;
 
+       u64 speed;
        unsigned int chip_features;
        u32 fw_ver_actual;
        u32 mbox_addr;
@@ -121,4 +142,45 @@ struct aq_fw_ops {
        int (*set_eeprom)(struct aq_hw_s *self, u32 *data, u32 len);
 };
 
+struct atl_sw_stats {
+       u64 crcerrs;
+       u64 errbc;
+       u64 mspdc;
+       u64 mpctotal;
+       u64 mpc[8];
+       u64 mlfc;
+       u64 mrfc;
+       u64 rlec;
+       u64 lxontxc;
+       u64 lxonrxc;
+       u64 lxofftxc;
+       u64 lxoffrxc;
+       u64 pxontxc[8];
+       u64 pxonrxc[8];
+       u64 pxofftxc[8];
+       u64 pxoffrxc[8];
+       u64 gprc;
+       u64 bprc;
+       u64 mprc;
+       u64 gptc;
+       u64 gorc;
+       u64 gotc;
+       u64 tor;
+       u64 tpr;
+       u64 tpt;
+       u64 mptc;
+       u64 bptc;
+       u64 xec;
+       u64 fccrc;
+       u64 ldpcec;
+       u64 pcrc8ec;
+
+       u64 rx_nombuf;
+       u64 q_ipackets[RTE_ETHDEV_QUEUE_STAT_CNTRS];
+       u64 q_opackets[RTE_ETHDEV_QUEUE_STAT_CNTRS];
+       u64 q_ibytes[RTE_ETHDEV_QUEUE_STAT_CNTRS];
+       u64 q_obytes[RTE_ETHDEV_QUEUE_STAT_CNTRS];
+       u64 q_errors[RTE_ETHDEV_QUEUE_STAT_CNTRS];
+};
+
 #endif