X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fice%2Fice_ethdev.h;h=899f446cde5f18de339fc101827cae726e9ada27;hb=68b6240ee9f0484ae7c75705c960922aa500544e;hp=978909603d6a266d8f80a17d13c86be982cf2511;hpb=eb0285967ce29187c04c75f5fd9ed4b7b53535e2;p=dpdk.git diff --git a/drivers/net/ice/ice_ethdev.h b/drivers/net/ice/ice_ethdev.h index 978909603d..899f446cde 100644 --- a/drivers/net/ice/ice_ethdev.h +++ b/drivers/net/ice/ice_ethdev.h @@ -11,6 +11,7 @@ #include "base/ice_common.h" #include "base/ice_adminq_cmd.h" +#include "base/ice_flow.h" #define ICE_VLAN_TAG_SIZE 4 @@ -49,6 +50,8 @@ #define ICE_PKG_FILE_SEARCH_PATH_UPDATES "/lib/firmware/updates/intel/ice/ddp/" #define ICE_MAX_PKG_FILENAME_SIZE 256 +#define MAX_ACL_ENTRIES 512 + /** * vlan_id is a 12 bit number. * The VFTA array is actually a 4096 bit array, 128 of 32bit elements. @@ -376,19 +379,6 @@ struct ice_fdir_info { #define ICE_HASH_GTPU_CTX_DW_IP_TCP 8 #define ICE_HASH_GTPU_CTX_MAX 9 -enum ice_rss_hash_func { - ICE_RSS_HASH_TOEPLITZ = 0, - ICE_RSS_HASH_TOEPLITZ_SYMMETRIC = 1, - ICE_RSS_HASH_XOR = 2, - ICE_RSS_HASH_JHASH = 3, -}; - -struct ice_rss_hash_cfg { - u32 addl_hdrs; - u64 hash_flds; - enum ice_rss_hash_func hash_func; -}; - struct ice_hash_gtpu_ctx { struct ice_rss_hash_cfg ctx[ICE_HASH_GTPU_CTX_MAX]; }; @@ -398,6 +388,20 @@ struct ice_hash_ctx { struct ice_hash_gtpu_ctx gtpu6; }; +struct ice_acl_conf { + struct ice_fdir_fltr input; + uint64_t input_set; +}; + +/** + * A structure used to define fields of ACL related info. + */ +struct ice_acl_info { + struct ice_acl_conf conf; + struct rte_bitmap *slots; + uint64_t hw_entry_id[MAX_ACL_ENTRIES]; +}; + struct ice_pf { struct ice_adapter *adapter; /* The adapter this PF associate to */ struct ice_vsi *main_vsi; /* pointer to main VSI structure */ @@ -421,6 +425,7 @@ struct ice_pf { uint16_t fdir_nb_qps; /* The number of queue pairs of Flow Director */ uint16_t fdir_qp_offset; struct ice_fdir_info fdir; /* flow director info */ + struct ice_acl_info acl; /* ACL info */ struct ice_hash_ctx hash_ctx; uint16_t hw_prof_cnt[ICE_FLTR_PTYPE_MAX][ICE_FD_HW_SEG_MAX]; uint16_t fdir_fltr_cnt[ICE_FLTR_PTYPE_MAX][ICE_FD_HW_SEG_MAX]; @@ -440,6 +445,7 @@ struct ice_pf { uint64_t old_rx_bytes; uint64_t old_tx_bytes; uint64_t supported_rxdid; /* bitmap for supported RXDID */ + uint64_t rss_hf; }; #define ICE_MAX_QUEUE_NUM 2048 @@ -525,9 +531,9 @@ void ice_vsi_enable_queues_intr(struct ice_vsi *vsi); void ice_vsi_disable_queues_intr(struct ice_vsi *vsi); void ice_vsi_queues_bind_intr(struct ice_vsi *vsi); int ice_add_rss_cfg_wrap(struct ice_pf *pf, uint16_t vsi_id, - uint64_t hash_fld, uint32_t pkt_hdr, bool symm); + struct ice_rss_hash_cfg *cfg); int ice_rem_rss_cfg_wrap(struct ice_pf *pf, uint16_t vsi_id, - uint64_t hash_fld, uint32_t pkt_hdr); + struct ice_rss_hash_cfg *cfg); static inline int ice_align_floor(int n)