21#include <rte_compat.h>
50 RTE_PMD_I40E_PKG_OP_UNDEFINED = 0,
54 RTE_PMD_I40E_PKG_OP_MAX = 32
61 RTE_PMD_I40E_PKG_INFO_UNDEFINED = 0,
62 RTE_PMD_I40E_PKG_INFO_GLOBAL_HEADER,
63 RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES_SIZE,
64 RTE_PMD_I40E_PKG_INFO_GLOBAL_NOTES,
65 RTE_PMD_I40E_PKG_INFO_GLOBAL_MAX = 1024,
66 RTE_PMD_I40E_PKG_INFO_HEADER,
67 RTE_PMD_I40E_PKG_INFO_DEVID_NUM,
68 RTE_PMD_I40E_PKG_INFO_DEVID_LIST,
69 RTE_PMD_I40E_PKG_INFO_PROTOCOL_NUM,
70 RTE_PMD_I40E_PKG_INFO_PROTOCOL_LIST,
71 RTE_PMD_I40E_PKG_INFO_PCTYPE_NUM,
72 RTE_PMD_I40E_PKG_INFO_PCTYPE_LIST,
73 RTE_PMD_I40E_PKG_INFO_PTYPE_NUM,
74 RTE_PMD_I40E_PKG_INFO_PTYPE_LIST,
75 RTE_PMD_I40E_PKG_INFO_MAX = (int)0xFFFFFFFF
82 RTE_PMD_I40E_RSS_QUEUE_REGION_UNDEFINED,
103 RTE_PMD_I40E_RSS_QUEUE_REGION_INFO_GET,
104 RTE_PMD_I40E_RSS_QUEUE_REGION_OP_MAX
107#define RTE_PMD_I40E_DDP_NAME_SIZE 32
108#define RTE_PMD_I40E_PCTYPE_MAX 64
109#define RTE_PMD_I40E_REGION_MAX_NUM 8
110#define RTE_PMD_I40E_MAX_USER_PRIORITY 8
127 uint32_t vendor_dev_id;
128 uint32_t sub_vendor_dev_id;
139 uint8_t name[RTE_PMD_I40E_DDP_NAME_SIZE];
142#define RTE_PMD_I40E_DDP_OWNER_UNKNOWN 0xFF
152#define RTE_PMD_I40E_PROTO_NUM 6
153#define RTE_PMD_I40E_PROTO_UNUSED 0xFF
160 char name[RTE_PMD_I40E_DDP_NAME_SIZE];
168 uint8_t protocols[RTE_PMD_I40E_PROTO_NUM];
176#define RTE_PMD_I40E_PTYPE_USER_DEFINE_MASK 0x80000000
178struct rte_pmd_i40e_ptype_mapping {
203struct rte_pmd_i40e_queue_region_info {
207 uint8_t queue_start_index;
211 uint8_t user_priority_num;
213 uint8_t user_priority[RTE_PMD_I40E_MAX_USER_PRIORITY];
215 uint8_t flowtype_num;
221 uint8_t hw_flowtype[RTE_PMD_I40E_PCTYPE_MAX];
224struct rte_pmd_i40e_queue_regions {
226 uint16_t queue_region_number;
227 struct rte_pmd_i40e_queue_region_info
228 region[RTE_PMD_I40E_REGION_MAX_NUM];
235 RTE_PMD_I40E_PKT_TEMPLATE_ACCEPT,
236 RTE_PMD_I40E_PKT_TEMPLATE_REJECT,
237 RTE_PMD_I40E_PKT_TEMPLATE_PASSTHRU,
298enum rte_pmd_i40e_inset_type {
305struct rte_pmd_i40e_inset_mask {
310struct rte_pmd_i40e_inset {
312 struct rte_pmd_i40e_inset_mask mask[2];
577 uint64_t vf_mask, uint8_t on);
753 uint8_t *info, uint32_t size,
790 struct rte_pmd_i40e_ptype_mapping *mapping_items,
821 struct rte_pmd_i40e_ptype_mapping *mapping_items,
865#define RTE_PMD_I40E_PCTYPE_MAX 64
866#define RTE_PMD_I40E_FLOW_TYPE_MAX 64
868struct rte_pmd_i40e_flow_type_mapping {
892 struct rte_pmd_i40e_flow_type_mapping *mapping_items,
909 struct rte_pmd_i40e_flow_type_mapping *mapping_items);
949int rte_pmd_i40e_cfg_hash_inset(uint16_t port,
950 uint64_t pctype, uint64_t inset);
970 struct rte_pmd_i40e_inset *inset,
971 enum rte_pmd_i40e_inset_type inset_type);
991 struct rte_pmd_i40e_inset *inset,
992 enum rte_pmd_i40e_inset_type inset_type);
1013 bit_idx = 63 - field_idx;
1014 if (inset & (1ULL << bit_idx))
1039 bit_idx = 63 - field_idx;
1040 *inset = *inset | (1ULL << bit_idx);
1064 bit_idx = 63 - field_idx;
1065 *inset = *inset & ~(1ULL << bit_idx);
__rte_experimental int rte_pmd_i40e_set_gre_key_len(uint16_t port, uint8_t len)
int rte_pmd_i40e_set_vf_vlan_insert(uint16_t port, uint16_t vf_id, uint16_t vlan_id)
int rte_pmd_i40e_get_ddp_list(uint16_t port, uint8_t *buff, uint32_t size)
rte_pmd_i40e_queue_region_op
@ RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_OFF
@ RTE_PMD_I40E_RSS_QUEUE_REGION_FLOWTYPE_SET
@ RTE_PMD_I40E_RSS_QUEUE_REGION_ALL_FLUSH_ON
@ RTE_PMD_I40E_RSS_QUEUE_REGION_SET
@ RTE_PMD_I40E_RSS_QUEUE_REGION_USER_PRIORITY_SET
int rte_pmd_i40e_remove_vf_mac_addr(uint16_t port, uint16_t vf_id, struct rte_ether_addr *mac_addr)
int rte_pmd_i40e_set_vf_unicast_promisc(uint16_t port, uint16_t vf_id, uint8_t on)
int rte_pmd_i40e_flow_type_mapping_get(uint16_t port, struct rte_pmd_i40e_flow_type_mapping *mapping_items)
int rte_pmd_i40e_flow_type_mapping_reset(uint16_t port)
__rte_experimental int rte_pmd_i40e_set_switch_dev(uint16_t port_id, struct rte_eth_dev *switch_dev)
int rte_pmd_i40e_ptype_mapping_update(uint16_t port, struct rte_pmd_i40e_ptype_mapping *mapping_items, uint16_t count, uint8_t exclusive)
@ RTE_PMD_I40E_PKG_OP_WR_ONLY
@ RTE_PMD_I40E_PKG_OP_WR_ADD
@ RTE_PMD_I40E_PKG_OP_WR_DEL
int rte_pmd_i40e_set_vf_tc_max_bw(uint16_t port, uint16_t vf_id, uint8_t tc_no, uint32_t bw)
int rte_pmd_i40e_get_ddp_info(uint8_t *pkg, uint32_t pkg_size, uint8_t *info, uint32_t size, enum rte_pmd_i40e_package_info type)
int rte_pmd_i40e_get_vf_stats(uint16_t port, uint16_t vf_id, struct rte_eth_stats *stats)
int rte_pmd_i40e_process_ddp_package(uint16_t port, uint8_t *buff, uint32_t size, enum rte_pmd_i40e_package_op op)
int rte_pmd_i40e_add_vf_mac_addr(uint16_t port, uint16_t vf_id, struct rte_ether_addr *mac_addr)
static int rte_pmd_i40e_inset_field_set(uint64_t *inset, uint8_t field_idx)
rte_pmd_i40e_mb_event_rsp
@ RTE_PMD_I40E_MB_EVENT_NOOP_ACK
@ RTE_PMD_I40E_MB_EVENT_PROCEED
@ RTE_PMD_I40E_MB_EVENT_MAX
@ RTE_PMD_I40E_MB_EVENT_NOOP_NACK
int rte_pmd_i40e_set_vf_tc_bw_alloc(uint16_t port, uint16_t vf_id, uint8_t tc_num, uint8_t *bw_weight)
int rte_pmd_i40e_set_vf_mac_anti_spoof(uint16_t port, uint16_t vf_id, uint8_t on)
int rte_pmd_i40e_set_vf_vlan_tag(uint16_t port, uint16_t vf_id, uint8_t on)
int rte_pmd_i40e_inset_set(uint16_t port, uint8_t pctype, struct rte_pmd_i40e_inset *inset, enum rte_pmd_i40e_inset_type inset_type)
rte_pmd_i40e_pkt_template_status
@ RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID
@ RTE_PMD_I40E_PKT_TEMPLATE_NO_REPORT_STATUS
@ RTE_PMD_I40E_PKT_TEMPLATE_REPORT_FLEX_8
@ RTE_PMD_I40E_PKT_TEMPLATE_REPORT_ID_FLEX_4
int rte_pmd_i40e_ping_vfs(uint16_t port, uint16_t vf)
int rte_pmd_i40e_set_tx_loopback(uint16_t port, uint8_t on)
int rte_pmd_i40e_ptype_mapping_replace(uint16_t port, uint32_t target, uint8_t mask, uint32_t pkt_type)
int rte_pmd_i40e_set_vf_vlan_filter(uint16_t port, uint16_t vlan_id, uint64_t vf_mask, uint8_t on)
int rte_pmd_i40e_flow_add_del_packet_template(uint16_t port, const struct rte_pmd_i40e_pkt_template_conf *conf, uint8_t add)
__rte_experimental int rte_pmd_i40e_get_fdir_stats(uint16_t port, struct rte_eth_fdir_stats *fdir_stat)
int rte_pmd_i40e_set_tc_strict_prio(uint16_t port, uint8_t tc_map)
int rte_pmd_i40e_ptype_mapping_reset(uint16_t port)
int rte_pmd_i40e_reset_vf_stats(uint16_t port, uint16_t vf_id)
int rte_pmd_i40e_set_vf_max_bw(uint16_t port, uint16_t vf_id, uint32_t bw)
int rte_pmd_i40e_set_vf_broadcast(uint16_t port, uint16_t vf_id, uint8_t on)
int rte_pmd_i40e_set_vf_mac_addr(uint16_t port, uint16_t vf_id, struct rte_ether_addr *mac_addr)
int rte_pmd_i40e_set_vf_multicast_promisc(uint16_t port, uint16_t vf_id, uint8_t on)
int rte_pmd_i40e_ptype_mapping_get(uint16_t port, struct rte_pmd_i40e_ptype_mapping *mapping_items, uint16_t size, uint16_t *count, uint8_t valid_only)
__rte_experimental int rte_pmd_i40e_get_fdir_info(uint16_t port, struct rte_eth_fdir_info *fdir_info)
int rte_pmd_i40e_set_vf_vlan_anti_spoof(uint16_t port, uint16_t vf_id, uint8_t on)
static int rte_pmd_i40e_inset_field_clear(uint64_t *inset, uint8_t field_idx)
rte_pmd_i40e_pkt_template_behavior
rte_pmd_i40e_package_info
int rte_pmd_i40e_inset_get(uint16_t port, uint8_t pctype, struct rte_pmd_i40e_inset *inset, enum rte_pmd_i40e_inset_type inset_type)
int rte_pmd_i40e_flow_type_mapping_update(uint16_t port, struct rte_pmd_i40e_flow_type_mapping *mapping_items, uint16_t count, uint8_t exclusive)
int rte_pmd_i40e_query_vfid_by_mac(uint16_t port, const struct rte_ether_addr *vf_mac)
int rte_pmd_i40e_rss_queue_region_conf(uint16_t port_id, enum rte_pmd_i40e_queue_region_op op_type, void *arg)
int rte_pmd_i40e_set_vf_vlan_stripq(uint16_t port, uint16_t vf, uint8_t on)
static int rte_pmd_i40e_inset_field_get(uint64_t inset, uint8_t field_idx)
enum rte_pmd_i40e_pkt_template_status report_status
enum rte_pmd_i40e_pkt_template_behavior behavior
struct rte_pmd_i40e_pkt_template_input input
struct rte_pmd_i40e_pkt_template_action action
uint8_t queue_start_index