X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fatlantic%2Fatl_types.h;h=c200a1fadb7951442667e392caaf05792470cc36;hb=62f2d75e88d1a0f52b1cf2f254935009add78bd8;hp=e636464955e3d063b04f4797f358e4c93ceded37;hpb=7943ba05f67cf4a5c61adf6c244df47240c01e1e;p=dpdk.git diff --git a/drivers/net/atlantic/atl_types.h b/drivers/net/atlantic/atl_types.h index e636464955..c200a1fadb 100644 --- a/drivers/net/atlantic/atl_types.h +++ b/drivers/net/atlantic/atl_types.h @@ -10,6 +10,7 @@ #include #include #include +#include typedef uint8_t u8; typedef int8_t s8; @@ -59,6 +60,39 @@ struct aq_rss_parameters { u8 indirection_table[HW_ATL_B0_RSS_REDIRECTION_MAX]; }; +/* Macsec stuff */ +struct aq_macsec_config { + struct { + u32 macsec_enabled; + u32 encryption_enabled; + u32 replay_protection_enabled; + } common; + + struct { + u32 idx; + u32 mac[2]; /* 6 bytes */ + } txsc; + + struct { + u32 idx; + u32 an; /* association number on the local side */ + u32 pn; /* packet number on the local side */ + u32 key[4]; /* 128 bit key */ + } txsa; + + struct { + u32 mac[2]; /* 6 bytes */ + u32 pi; + } rxsc; + + struct { + u32 idx; + u32 an; /* association number on the remote side */ + u32 pn; /* packet number on the remote side */ + u32 key[4]; /* 128 bit key */ + } rxsa; +}; + struct aq_hw_cfg_s { bool is_lro; bool is_rss; @@ -70,9 +104,12 @@ 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_macsec_config aq_macsec; }; struct aq_hw_s { @@ -92,6 +129,8 @@ struct aq_hw_s { struct hw_atl_stats_s last_stats; struct aq_stats_s curr_stats; + u32 caps_lo; + u64 speed; unsigned int chip_features; u32 fw_ver_actual; @@ -99,6 +138,8 @@ struct aq_hw_s { u32 rpc_addr; u32 rpc_tid; struct hw_aq_atl_utils_fw_rpc rpc; + + pthread_mutex_t mbox_mutex; }; struct aq_fw_ops { @@ -131,13 +172,61 @@ struct aq_fw_ops { int (*get_eee_rate)(struct aq_hw_s *self, u32 *rate, u32 *supported_rates); + int (*get_flow_control)(struct aq_hw_s *self, u32 *fc); int (*set_flow_control)(struct aq_hw_s *self); int (*led_control)(struct aq_hw_s *self, u32 mode); - int (*get_eeprom)(struct aq_hw_s *self, u32 *data, u32 len); + int (*get_eeprom)(struct aq_hw_s *self, int dev_addr, + u32 *data, u32 len, u32 offset); + + int (*set_eeprom)(struct aq_hw_s *self, int dev_addr, + u32 *data, u32 len, u32 offset); - int (*set_eeprom)(struct aq_hw_s *self, u32 *data, u32 len); + int (*send_macsec_req)(struct aq_hw_s *self, + struct macsec_msg_fw_request *req, + struct macsec_msg_fw_response *response); +}; + +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