X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fice%2Fice_ethdev.h;h=978909603d6a266d8f80a17d13c86be982cf2511;hb=d647871c50ab3ac7dffc0b13959491027b210659;hp=758caa8b46594292751f5b8448373945b969500d;hpb=6982f1848f985f89ecc4b16b3a09a504da3fec5b;p=dpdk.git diff --git a/drivers/net/ice/ice_ethdev.h b/drivers/net/ice/ice_ethdev.h index 758caa8b46..978909603d 100644 --- a/drivers/net/ice/ice_ethdev.h +++ b/drivers/net/ice/ice_ethdev.h @@ -136,6 +136,9 @@ #define ICE_RXTX_BYTES_HIGH(bytes) ((bytes) & ~ICE_40_BIT_MASK) #define ICE_RXTX_BYTES_LOW(bytes) ((bytes) & ICE_40_BIT_MASK) +/* Max number of flexible descriptor rxdid */ +#define ICE_FLEX_DESC_RXDID_MAX_NUM 64 + /* DDP package type */ enum ice_pkg_type { ICE_PKG_TYPE_UNKNOWN, @@ -287,6 +290,8 @@ struct ice_fdir_filter_conf { struct rte_flow_action_count act_count; uint64_t input_set; + uint64_t outer_input_set; /* only for tunnel packets outer fields */ + uint32_t mark_flag; }; #define ICE_MAX_FDIR_FILTER_NUM (1024 * 16) @@ -360,37 +365,37 @@ struct ice_fdir_info { struct ice_fdir_counter_pool_container counter; }; -#define ICE_HASH_CFG_VALID(p) \ - ((p)->hash_fld != 0 && (p)->pkt_hdr != 0) - -#define ICE_HASH_CFG_RESET(p) do { \ - (p)->hash_fld = 0; \ - (p)->pkt_hdr = 0; \ -} while (0) - -#define ICE_HASH_CFG_IS_ROTATING(p) \ - ((p)->rotate == true) - -#define ICE_HASH_CFG_ROTATE_START(p) \ - ((p)->rotate = true) - -#define ICE_HASH_CFG_ROTATE_STOP(p) \ - ((p)->rotate = false) +#define ICE_HASH_GTPU_CTX_EH_IP 0 +#define ICE_HASH_GTPU_CTX_EH_IP_UDP 1 +#define ICE_HASH_GTPU_CTX_EH_IP_TCP 2 +#define ICE_HASH_GTPU_CTX_UP_IP 3 +#define ICE_HASH_GTPU_CTX_UP_IP_UDP 4 +#define ICE_HASH_GTPU_CTX_UP_IP_TCP 5 +#define ICE_HASH_GTPU_CTX_DW_IP 6 +#define ICE_HASH_GTPU_CTX_DW_IP_UDP 7 +#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_hash_cfg { - uint32_t pkt_hdr; - uint64_t hash_fld; - bool rotate; /* rotate l3 rule after l4 rule. */ - bool symm; +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_hash_cfg ipv4; - struct ice_hash_cfg ipv6; - struct ice_hash_cfg ipv4_udp; - struct ice_hash_cfg ipv6_udp; - struct ice_hash_cfg ipv4_tcp; - struct ice_hash_cfg ipv6_tcp; + struct ice_rss_hash_cfg ctx[ICE_HASH_GTPU_CTX_MAX]; +}; + +struct ice_hash_ctx { + struct ice_hash_gtpu_ctx gtpu4; + struct ice_hash_gtpu_ctx gtpu6; }; struct ice_pf { @@ -416,7 +421,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_hash_gtpu_ctx gtpu_hash_ctx; + 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]; struct ice_hw_port_stats stats_offset; @@ -434,6 +439,7 @@ struct ice_pf { bool init_link_up; uint64_t old_rx_bytes; uint64_t old_tx_bytes; + uint64_t supported_rxdid; /* bitmap for supported RXDID */ }; #define ICE_MAX_QUEUE_NUM 2048 @@ -445,7 +451,6 @@ struct ice_devargs { int safe_mode_support; uint8_t proto_xtr_dflt; int pipe_mode_support; - int flow_mark_support; uint8_t proto_xtr[ICE_MAX_QUEUE_NUM]; }; @@ -466,6 +471,7 @@ struct ice_adapter { bool is_safe_mode; struct ice_devargs devargs; enum ice_pkg_type active_pkg_type; /* loaded ddp package type */ + uint16_t fdir_ref_cnt; }; struct ice_vsi_vlan_pvid_info {