20#include <rte_compat.h>
131struct rte_flow_group_attr {
774 .classification = RTE_BE16(UINT16_MAX),
775 .vid = RTE_BE16(0xfff),
861 .reserved = 0x3fffffff,
862 .offset = 0xffffffff,
893 struct rte_ether_addr
dst;
894 struct rte_ether_addr
src;
906 .hdr.
dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
907 .hdr.src_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
908 .hdr.ether_type = RTE_BE16(0x0000),
948 .hdr.eth_proto = RTE_BE16(0x0000),
967 .src_addr = RTE_BE32(0xffffffff),
968 .dst_addr = RTE_BE32(0xffffffff),
1023 struct rte_ipv6_routing_ext hdr;
1059 .dst_port = RTE_BE16(0xffff),
1078 .dst_port = RTE_BE16(0xffff),
1097 .dst_port = RTE_BE16(0xffff),
1131 .hdr.
vni = { 0xff, 0xff, 0xff },
1184 .
tni = { 0xff, 0xff, 0xff },
1307 .
hdr.
teid = RTE_BE32(UINT32_MAX),
1324 .
spi = RTE_BE32(0xffffffff),
1348 .
vni = { 0xff, 0xff, 0xff },
1385 .hdr.
vni = { 0xff, 0xff, 0xff },
1419 .
hdr.arp_data.arp_sha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
1420 .hdr.arp_data.arp_sip = RTE_BE32(UINT32_MAX),
1421 .hdr.arp_data.arp_tha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
1422 .hdr.arp_data.arp_tip = RTE_BE32(UINT32_MAX),
1459 struct rte_ipv6_fragment_ext hdr;
1582 .
sla.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
1607 .
tla.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
1767 uint32_t reserved:1;
1770 uint32_t reserved1:4;
1772 uint32_t next_proto:8;
1797 uint32_t max_resp_time:8;
1798 uint32_t checksum:16;
1799 uint32_t group_addr;
1805 .group_addr = 0xffffffff,
1818 uint32_t next_hdr:8;
1819 uint32_t payload_len:8;
1820 uint32_t reserved:16;
1851 .seid = RTE_BE64(UINT64_C(0xffffffffffffffff)),
1885 uint8_t option_type;
1894 .option_type = 0xff,
1930 uint64_t reserved:56;
1938rte_flow_item_integrity_mask = {
1947#define RTE_FLOW_CONNTRACK_PKT_STATE_VALID RTE_BIT32(0)
1951#define RTE_FLOW_CONNTRACK_PKT_STATE_CHANGED RTE_BIT32(1)
1956#define RTE_FLOW_CONNTRACK_PKT_STATE_INVALID RTE_BIT32(2)
1961#define RTE_FLOW_CONNTRACK_PKT_STATE_DISABLED RTE_BIT32(3)
1966#define RTE_FLOW_CONNTRACK_PKT_STATE_BAD RTE_BIT32(4)
1985 .flags = 0xffffffff,
2051 .proto_id = RTE_BE16(0xffff),
2070 .dst_qp = { 0xff, 0xff, 0xff },
2090 .value = UINT32_MAX,
2516 struct rte_flow_item_flex_handle *flex_handle;
2541 RTE_FLOW_ITEM_COMPARE_EQ,
2542 RTE_FLOW_ITEM_COMPARE_NE,
2543 RTE_FLOW_ITEM_COMPARE_LT,
2544 RTE_FLOW_ITEM_COMPARE_LE,
2545 RTE_FLOW_ITEM_COMPARE_GT,
2546 RTE_FLOW_ITEM_COMPARE_GE,
3948struct rte_flow_action_handle;
4162 struct rte_flow_meter_policy *policy;
4243extern int32_t rte_flow_dynf_metadata_offs;
4246extern uint64_t rte_flow_dynf_metadata_mask;
4249#define RTE_FLOW_DYNF_METADATA(m) \
4250 RTE_MBUF_DYNFIELD((m), rte_flow_dynf_metadata_offs, uint32_t *)
4253#define RTE_MBUF_DYNFLAG_RX_METADATA (rte_flow_dynf_metadata_mask)
4254#define RTE_MBUF_DYNFLAG_TX_METADATA (rte_flow_dynf_metadata_mask)
4257static inline uint32_t
4258rte_flow_dynf_metadata_get(
struct rte_mbuf *m)
4260 return *RTE_FLOW_DYNF_METADATA(m);
4265rte_flow_dynf_metadata_set(
struct rte_mbuf *m, uint32_t v)
4267 *RTE_FLOW_DYNF_METADATA(m) = v;
4280 struct rte_flow_template_table *table;
4309struct rte_flow_meter_profile;
4316struct rte_flow_meter_policy;
4598 return !!rte_flow_dynf_metadata_mask;
4723 struct rte_flow *flow,
4745 struct rte_flow *flow,
4795 struct rte_flow *flow,
4870 const char *message);
5091struct rte_flow_action_handle *
5122 struct rte_flow_action_handle *handle,
5161 struct rte_flow_action_handle *handle,
5193 const struct rte_flow_action_handle *handle,
5197struct rte_flow_tunnel {
5233#define RTE_FLOW_RESTORE_INFO_TUNNEL RTE_BIT64(0)
5238#define RTE_FLOW_RESTORE_INFO_ENCAPSULATED RTE_BIT64(1)
5243#define RTE_FLOW_RESTORE_INFO_GROUP_ID RTE_BIT64(2)
5286 struct rte_flow_tunnel *tunnel,
5288 uint32_t *num_of_actions,
5317 struct rte_flow_tunnel *tunnel,
5319 uint32_t *num_of_items,
5385 uint32_t num_of_actions,
5408 uint32_t num_of_items,
5459struct rte_flow_item_flex_handle *
5481 const struct rte_flow_item_flex_handle *handle,
5488#define RTE_FLOW_PORT_FLAG_STRICT_QUEUE RTE_BIT32(0)
5495#define RTE_FLOW_PORT_FLAG_SHARE_INDIRECT RTE_BIT32(1)
5682struct rte_flow_pattern_template;
5740struct rte_flow_pattern_template *
5769 struct rte_flow_pattern_template *pattern_template,
5776struct rte_flow_actions_template;
5834struct rte_flow_actions_template *
5864 struct rte_flow_actions_template *actions_template,
5871struct rte_flow_template_table;
5886#define RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_WIRE_ORIG RTE_BIT32(0)
5894#define RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_VPORT_ORIG RTE_BIT32(1)
5898#define RTE_FLOW_TABLE_SPECIALIZE_RESIZABLE RTE_BIT32(2)
6033struct rte_flow_template_table *
6036 struct rte_flow_pattern_template *pattern_templates[],
6037 uint8_t nb_pattern_templates,
6038 struct rte_flow_actions_template *actions_templates[],
6039 uint8_t nb_actions_templates,
6065 struct rte_flow_template_table *template_table,
6093 const struct rte_flow_group_attr *attr,
6153 struct rte_flow_template_table *template_table,
6155 uint8_t pattern_template_index,
6157 uint8_t actions_template_index,
6198 struct rte_flow_template_table *template_table,
6199 uint32_t rule_index,
6201 uint8_t actions_template_index,
6250 struct rte_flow_template_table *template_table,
6251 uint32_t rule_index,
6253 uint8_t pattern_template_index,
6255 uint8_t actions_template_index,
6293 struct rte_flow *flow,
6330 struct rte_flow *flow,
6332 uint8_t actions_template_index,
6457struct rte_flow_action_handle *
6496 struct rte_flow_action_handle *action_handle,
6535 struct rte_flow_action_handle *action_handle,
6579 const struct rte_flow_action_handle *action_handle,
6634 struct rte_flow_action_handle *handle,
6635 const void *update,
void *query,
6678 struct rte_flow_action_handle *handle,
6679 const void *update,
void *query,
6684struct rte_flow_action_list_handle;
6736struct rte_flow_action_list_handle *
6778struct rte_flow_action_list_handle *
6810 struct rte_flow_action_list_handle *handle,
6846 (uint16_t port_id, uint32_t queue_id,
6848 struct rte_flow_action_list_handle *handle,
6890 const struct rte_flow_action_list_handle *handle,
6891 const void **update,
void **query,
6942 const struct rte_flow_action_list_handle *handle,
6943 const void **update,
void **query,
6977 const struct rte_flow_item pattern[], uint8_t pattern_template_index,
7060 struct rte_flow_template_table *table,
7097 struct rte_flow *rule,
void *user_data,
7126 struct rte_flow_template_table *table,
#define RTE_ETHER_ADDR_LEN
int rte_flow_error_set(struct rte_flow_error *error, int code, enum rte_flow_error_type type, const void *cause, const char *message)
__rte_experimental int rte_flow_actions_template_destroy(uint16_t port_id, struct rte_flow_actions_template *actions_template, struct rte_flow_error *error)
static const struct rte_flow_item_port_id rte_flow_item_port_id_mask
int rte_flow_destroy(uint16_t port_id, struct rte_flow *flow, struct rte_flow_error *error)
__rte_experimental struct rte_flow_action_handle * rte_flow_async_action_handle_create(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, const struct rte_flow_indir_action_conf *indir_action_conf, const struct rte_flow_action *action, void *user_data, struct rte_flow_error *error)
static const struct rte_flow_item_aggr_affinity rte_flow_item_aggr_affinity_mask
__rte_experimental int rte_flow_conv(enum rte_flow_conv_op op, void *dst, size_t size, const void *src, struct rte_flow_error *error)
static const struct rte_flow_item_gre rte_flow_item_gre_mask
static __rte_experimental int rte_flow_dynf_metadata_avail(void)
__rte_experimental struct rte_flow_action_list_handle * rte_flow_async_action_list_handle_create(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *attr, const struct rte_flow_indir_action_conf *conf, const struct rte_flow_action *actions, void *user_data, struct rte_flow_error *error)
__rte_experimental int rte_flow_action_handle_query_update(uint16_t port_id, struct rte_flow_action_handle *handle, const void *update, void *query, enum rte_flow_query_update_mode mode, struct rte_flow_error *error)
static const struct rte_flow_item_icmp6_nd_ns rte_flow_item_icmp6_nd_ns_mask
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
static const struct rte_flow_item_meta rte_flow_item_meta_mask
__rte_experimental int rte_flow_tunnel_match(uint16_t port_id, struct rte_flow_tunnel *tunnel, struct rte_flow_item **items, uint32_t *num_of_items, struct rte_flow_error *error)
__rte_experimental struct rte_flow * rte_flow_async_create(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_template_table *template_table, const struct rte_flow_item pattern[], uint8_t pattern_template_index, const struct rte_flow_action actions[], uint8_t actions_template_index, void *user_data, struct rte_flow_error *error)
static const struct rte_flow_item_icmp6_nd_opt_sla_eth rte_flow_item_icmp6_nd_opt_sla_eth_mask
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
static const struct rte_flow_item_gtp_psc rte_flow_item_gtp_psc_mask
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
@ RTE_FLOW_QUOTA_MODE_PACKET
__rte_experimental struct rte_flow * rte_flow_async_create_by_index_with_pattern(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_template_table *template_table, uint32_t rule_index, const struct rte_flow_item pattern[], uint8_t pattern_template_index, const struct rte_flow_action actions[], uint8_t actions_template_index, void *user_data, struct rte_flow_error *error)
@ RTE_FLOW_UPDATE_QUOTA_SET
@ RTE_FLOW_UPDATE_QUOTA_ADD
__rte_experimental int rte_flow_template_table_destroy(uint16_t port_id, struct rte_flow_template_table *template_table, struct rte_flow_error *error)
__rte_experimental int rte_flow_async_update_resized(uint16_t port_id, uint32_t queue, const struct rte_flow_op_attr *attr, struct rte_flow *rule, void *user_data, struct rte_flow_error *error)
static const struct rte_flow_item_pppoe_proto_id rte_flow_item_pppoe_proto_id_mask
static const struct rte_flow_item_quota rte_flow_item_quota_mask
rte_flow_conntrack_tcp_last_index
@ RTE_FLOW_CONNTRACK_FLAG_ACK
@ RTE_FLOW_CONNTRACK_FLAG_SYNACK
@ RTE_FLOW_CONNTRACK_FLAG_FIN
@ RTE_FLOW_CONNTRACK_FLAG_SYN
@ RTE_FLOW_CONNTRACK_FLAG_RST
@ RTE_FLOW_CONNTRACK_FLAG_NONE
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
__rte_experimental int rte_flow_calc_table_hash(uint16_t port_id, const struct rte_flow_template_table *table, const struct rte_flow_item pattern[], uint8_t pattern_template_index, uint32_t *hash, struct rte_flow_error *error)
@ RTE_FLOW_CONNTRACK_STATE_ESTABLISHED
@ RTE_FLOW_CONNTRACK_STATE_SYN_RECV
@ RTE_FLOW_CONNTRACK_STATE_LAST_ACK
@ RTE_FLOW_CONNTRACK_STATE_FIN_WAIT
@ RTE_FLOW_CONNTRACK_STATE_TIME_WAIT
@ RTE_FLOW_CONNTRACK_STATE_CLOSE_WAIT
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
__rte_experimental int rte_flow_template_table_resize(uint16_t port_id, struct rte_flow_template_table *table, uint32_t nb_rules, struct rte_flow_error *error)
int rte_flow_validate(uint16_t port_id, const struct rte_flow_attr *attr, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], struct rte_flow_error *error)
__rte_experimental int rte_flow_action_handle_query(uint16_t port_id, const struct rte_flow_action_handle *handle, void *data, struct rte_flow_error *error)
__rte_experimental int rte_flow_get_aged_flows(uint16_t port_id, void **contexts, uint32_t nb_contexts, struct rte_flow_error *error)
int rte_flow_flush(uint16_t port_id, struct rte_flow_error *error)
__rte_experimental int rte_flow_action_list_handle_query_update(uint16_t port_id, const struct rte_flow_action_list_handle *handle, const void **update, void **query, enum rte_flow_query_update_mode mode, struct rte_flow_error *error)
static const struct rte_flow_item_ipv6_ext rte_flow_item_ipv6_ext_mask
__rte_experimental struct rte_flow_item_flex_handle * rte_flow_flex_item_create(uint16_t port_id, const struct rte_flow_item_flex_conf *conf, struct rte_flow_error *error)
__rte_experimental int rte_flow_tunnel_action_decap_release(uint16_t port_id, struct rte_flow_action *actions, uint32_t num_of_actions, struct rte_flow_error *error)
__rte_experimental struct rte_flow_actions_template * rte_flow_actions_template_create(uint16_t port_id, const struct rte_flow_actions_template_attr *template_attr, const struct rte_flow_action actions[], const struct rte_flow_action masks[], struct rte_flow_error *error)
rte_flow_encap_hash_field
@ RTE_FLOW_ENCAP_HASH_FIELD_SRC_PORT
@ RTE_FLOW_ENCAP_HASH_FIELD_NVGRE_FLOW_ID
__rte_experimental int rte_flow_pull(uint16_t port_id, uint32_t queue_id, struct rte_flow_op_result res[], uint16_t n_res, struct rte_flow_error *error)
__rte_experimental int rte_flow_async_destroy(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow *flow, void *user_data, struct rte_flow_error *error)
static const struct rte_flow_item_pfcp rte_flow_item_pfcp_mask
static const struct rte_flow_item_l2tpv3oip rte_flow_item_l2tpv3oip_mask
static const struct rte_flow_item_tag rte_flow_item_tag_mask
static const struct rte_flow_item_icmp6_nd_opt_tla_eth rte_flow_item_icmp6_nd_opt_tla_eth_mask
static const struct rte_flow_item_raw rte_flow_item_raw_mask
static const struct rte_flow_item_meter_color rte_flow_item_meter_color_mask
rte_flow_query_update_mode
@ RTE_FLOW_QU_UPDATE_FIRST
@ RTE_FLOW_QU_QUERY_FIRST
__rte_experimental int rte_flow_dev_dump(uint16_t port_id, struct rte_flow *flow, FILE *file, struct rte_flow_error *error)
@ RTE_FLOW_TABLE_HASH_FUNC_CRC16
@ RTE_FLOW_TABLE_HASH_FUNC_LINEAR
@ RTE_FLOW_TABLE_HASH_FUNC_DEFAULT
@ RTE_FLOW_TABLE_HASH_FUNC_CRC32
__rte_experimental struct rte_flow_template_table * rte_flow_template_table_create(uint16_t port_id, const struct rte_flow_template_table_attr *table_attr, struct rte_flow_pattern_template *pattern_templates[], uint8_t nb_pattern_templates, struct rte_flow_actions_template *actions_templates[], uint8_t nb_actions_templates, struct rte_flow_error *error)
__rte_experimental bool rte_flow_template_table_resizable(__rte_unused uint16_t port_id, const struct rte_flow_template_table_attr *tbl_attr)
static const struct rte_flow_item_vlan rte_flow_item_vlan_mask
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
int rte_flow_pick_transfer_proxy(uint16_t port_id, uint16_t *proxy_port_id, struct rte_flow_error *error)
@ RTE_FLOW_CONV_OP_ACTION_NAME_PTR
@ RTE_FLOW_CONV_OP_ACTIONS
@ RTE_FLOW_CONV_OP_ITEM_MASK
@ RTE_FLOW_CONV_OP_ACTION_NAME
@ RTE_FLOW_CONV_OP_ITEM_NAME_PTR
@ RTE_FLOW_CONV_OP_PATTERN
@ RTE_FLOW_CONV_OP_ITEM_NAME
@ RTE_FLOW_CONV_OP_ACTION
__rte_experimental int rte_flow_group_set_miss_actions(uint16_t port_id, uint32_t group_id, const struct rte_flow_group_attr *attr, const struct rte_flow_action actions[], struct rte_flow_error *error)
__rte_experimental int rte_flow_flex_item_release(uint16_t port_id, const struct rte_flow_item_flex_handle *handle, struct rte_flow_error *error)
__rte_experimental int rte_flow_get_restore_info(uint16_t port_id, struct rte_mbuf *m, struct rte_flow_restore_info *info, struct rte_flow_error *error)
__rte_experimental struct rte_flow * rte_flow_async_create_by_index(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_template_table *template_table, uint32_t rule_index, const struct rte_flow_action actions[], uint8_t actions_template_index, void *user_data, struct rte_flow_error *error)
@ RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
@ RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
@ RTE_FLOW_ACTION_TYPE_SKIP_CMAN
@ RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
@ RTE_FLOW_ACTION_TYPE_QUOTA
@ RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
@ RTE_FLOW_ACTION_TYPE_PASSTHRU
@ RTE_FLOW_ACTION_TYPE_COUNT
@ RTE_FLOW_ACTION_TYPE_SEND_TO_KERNEL
@ RTE_FLOW_ACTION_TYPE_SET_TP_DST
@ RTE_FLOW_ACTION_TYPE_INDIRECT
@ RTE_FLOW_ACTION_TYPE_RAW_ENCAP
@ RTE_FLOW_ACTION_TYPE_VF
@ RTE_FLOW_ACTION_TYPE_SET_META
@ RTE_FLOW_ACTION_TYPE_MAC_SWAP
@ RTE_FLOW_ACTION_TYPE_JUMP_TO_TABLE_INDEX
@ RTE_FLOW_ACTION_TYPE_IPV6_EXT_REMOVE
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
@ RTE_FLOW_ACTION_TYPE_NAT64
@ RTE_FLOW_ACTION_TYPE_METER_MARK
@ RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
@ RTE_FLOW_ACTION_TYPE_RAW_DECAP
@ RTE_FLOW_ACTION_TYPE_VOID
@ RTE_FLOW_ACTION_TYPE_AGE
@ RTE_FLOW_ACTION_TYPE_RSS
@ RTE_FLOW_ACTION_TYPE_MARK
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
@ RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
@ RTE_FLOW_ACTION_TYPE_IPV6_EXT_PUSH
@ RTE_FLOW_ACTION_TYPE_QUEUE
@ RTE_FLOW_ACTION_TYPE_END
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
@ RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK
@ RTE_FLOW_ACTION_TYPE_DEC_TTL
@ RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
@ RTE_FLOW_ACTION_TYPE_PROG
@ RTE_FLOW_ACTION_TYPE_SET_TP_SRC
@ RTE_FLOW_ACTION_TYPE_PORT_ID
@ RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT
@ RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
@ RTE_FLOW_ACTION_TYPE_SECURITY
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
@ RTE_FLOW_ACTION_TYPE_INDIRECT_LIST
@ RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
@ RTE_FLOW_ACTION_TYPE_FLAG
@ RTE_FLOW_ACTION_TYPE_CONNTRACK
@ RTE_FLOW_ACTION_TYPE_SET_MAC_DST
@ RTE_FLOW_ACTION_TYPE_METER_COLOR
@ RTE_FLOW_ACTION_TYPE_METER
@ RTE_FLOW_ACTION_TYPE_PF
@ RTE_FLOW_ACTION_TYPE_SET_TAG
@ RTE_FLOW_ACTION_TYPE_SHARED
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
@ RTE_FLOW_ACTION_TYPE_SET_TTL
@ RTE_FLOW_ACTION_TYPE_MODIFY_FIELD
@ RTE_FLOW_ACTION_TYPE_DROP
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
@ RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
@ RTE_FLOW_ACTION_TYPE_SAMPLE
@ RTE_FLOW_ACTION_TYPE_JUMP
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
static const struct rte_flow_item_l2tpv2 rte_flow_item_l2tpv2_mask
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
static const struct rte_flow_item_ib_bth rte_flow_item_ib_bth_mask
__rte_experimental struct rte_flow_action_handle * rte_flow_action_handle_create(uint16_t port_id, const struct rte_flow_indir_action_conf *conf, const struct rte_flow_action *action, struct rte_flow_error *error)
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
__rte_experimental int rte_flow_dynf_metadata_register(void)
static const struct rte_flow_item_ah rte_flow_item_ah_mask
rte_flow_item_flex_tunnel_mode
@ FLEX_TUNNEL_MODE_SINGLE
@ FLEX_TUNNEL_MODE_TUNNEL
__rte_experimental int rte_flow_info_get(uint16_t port_id, struct rte_flow_port_info *port_info, struct rte_flow_queue_info *queue_info, struct rte_flow_error *error)
static const struct rte_flow_item_tx_queue rte_flow_item_tx_queue_mask
static const struct rte_flow_item_higig2_hdr rte_flow_item_higig2_hdr_mask
static const struct rte_flow_item_icmp6_nd_opt rte_flow_item_icmp6_nd_opt_mask
__rte_experimental int rte_flow_push(uint16_t port_id, uint32_t queue_id, struct rte_flow_error *error)
rte_flow_table_insertion_type
@ RTE_FLOW_TABLE_INSERTION_TYPE_INDEX
@ RTE_FLOW_TABLE_INSERTION_TYPE_INDEX_WITH_PATTERN
@ RTE_FLOW_TABLE_INSERTION_TYPE_PATTERN
__rte_experimental int rte_flow_configure(uint16_t port_id, const struct rte_flow_port_attr *port_attr, uint16_t nb_queue, const struct rte_flow_queue_attr *queue_attr[], struct rte_flow_error *error)
__rte_experimental int rte_flow_tunnel_decap_set(uint16_t port_id, struct rte_flow_tunnel *tunnel, struct rte_flow_action **actions, uint32_t *num_of_actions, struct rte_flow_error *error)
rte_flow_item_flex_field_mode
static const struct rte_flow_item_arp_eth_ipv4 rte_flow_item_arp_eth_ipv4_mask
__rte_experimental int rte_flow_async_action_handle_destroy(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_action_handle *action_handle, void *user_data, struct rte_flow_error *error)
__rte_experimental int rte_flow_async_action_handle_query_update(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *attr, struct rte_flow_action_handle *handle, const void *update, void *query, enum rte_flow_query_update_mode mode, void *user_data, struct rte_flow_error *error)
__rte_experimental int rte_flow_template_table_resize_complete(uint16_t port_id, struct rte_flow_template_table *table, struct rte_flow_error *error)
static const struct rte_flow_item_udp rte_flow_item_udp_mask
static const struct rte_flow_item_nsh rte_flow_item_nsh_mask
@ RTE_FLOW_ERROR_TYPE_UNSPECIFIED
@ RTE_FLOW_ERROR_TYPE_ATTR_GROUP
@ RTE_FLOW_ERROR_TYPE_NONE
@ RTE_FLOW_ERROR_TYPE_HANDLE
@ RTE_FLOW_ERROR_TYPE_STATE
@ RTE_FLOW_ERROR_TYPE_ITEM_LAST
@ RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
@ RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
@ RTE_FLOW_ERROR_TYPE_ACTION_CONF
@ RTE_FLOW_ERROR_TYPE_ITEM_MASK
@ RTE_FLOW_ERROR_TYPE_ITEM_SPEC
@ RTE_FLOW_ERROR_TYPE_ITEM
@ RTE_FLOW_ERROR_TYPE_ACTION
@ RTE_FLOW_ERROR_TYPE_ATTR
@ RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
@ RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
@ RTE_FLOW_ERROR_TYPE_ACTION_NUM
@ RTE_FLOW_ERROR_TYPE_ITEM_NUM
static const struct rte_flow_item_icmp6_nd_na rte_flow_item_icmp6_nd_na_mask
__rte_experimental struct rte_flow_action_list_handle * rte_flow_action_list_handle_create(uint16_t port_id, const struct rte_flow_indir_action_conf *conf, const struct rte_flow_action *actions, struct rte_flow_error *error)
static const struct rte_flow_item_any rte_flow_item_any_mask
__rte_experimental int rte_flow_tunnel_item_release(uint16_t port_id, struct rte_flow_item *items, uint32_t num_of_items, struct rte_flow_error *error)
int rte_flow_query(uint16_t port_id, struct rte_flow *flow, const struct rte_flow_action *action, void *data, struct rte_flow_error *error)
static const struct rte_flow_item_ptype rte_flow_item_ptype_mask
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
__rte_experimental int rte_flow_calc_encap_hash(uint16_t port_id, const struct rte_flow_item pattern[], enum rte_flow_encap_hash_field dest_field, uint8_t hash_len, uint8_t *hash, struct rte_flow_error *error)
static const struct rte_flow_item_igmp rte_flow_item_igmp_mask
@ RTE_FLOW_QUOTA_STATE_PASS
@ RTE_FLOW_QUOTA_STATE_BLOCK
static const struct rte_flow_item_ecpri rte_flow_item_ecpri_mask
static const struct rte_flow_item_ppp rte_flow_item_ppp_mask
__rte_deprecated size_t rte_flow_copy(struct rte_flow_desc *fd, size_t len, const struct rte_flow_attr *attr, const struct rte_flow_item *items, const struct rte_flow_action *actions)
static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask
static const struct rte_flow_item_esp rte_flow_item_esp_mask
static const struct rte_flow_item_mark rte_flow_item_mark_mask
__rte_experimental int rte_flow_async_action_handle_update(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_action_handle *action_handle, const void *update, void *user_data, struct rte_flow_error *error)
__rte_experimental int rte_flow_get_q_aged_flows(uint16_t port_id, uint32_t queue_id, void **contexts, uint32_t nb_contexts, struct rte_flow_error *error)
static const struct rte_flow_item_ethdev rte_flow_item_ethdev_mask
__rte_experimental int rte_flow_async_action_list_handle_destroy(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_action_list_handle *handle, void *user_data, struct rte_flow_error *error)
static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask
static const struct rte_flow_item_geneve_opt rte_flow_item_geneve_opt_mask
int rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error)
static const struct rte_flow_item_conntrack rte_flow_item_conntrack_mask
__rte_experimental int rte_flow_action_handle_update(uint16_t port_id, struct rte_flow_action_handle *handle, const void *update, struct rte_flow_error *error)
struct rte_flow * rte_flow_create(uint16_t port_id, const struct rte_flow_attr *attr, const struct rte_flow_item pattern[], const struct rte_flow_action actions[], struct rte_flow_error *error)
__rte_experimental int rte_flow_async_action_list_handle_query_update(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *attr, const struct rte_flow_action_list_handle *handle, const void **update, void **query, enum rte_flow_query_update_mode mode, void *user_data, struct rte_flow_error *error)
__rte_experimental int rte_flow_action_handle_destroy(uint16_t port_id, struct rte_flow_action_handle *handle, struct rte_flow_error *error)
__rte_experimental struct rte_flow_pattern_template * rte_flow_pattern_template_create(uint16_t port_id, const struct rte_flow_pattern_template_attr *template_attr, const struct rte_flow_item pattern[], struct rte_flow_error *error)
@ RTE_FLOW_ITEM_TYPE_L2TPV3OIP
@ RTE_FLOW_ITEM_TYPE_ICMP6_ECHO_REPLY
@ RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID
@ RTE_FLOW_ITEM_TYPE_IPV4
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT
@ RTE_FLOW_ITEM_TYPE_METER_COLOR
@ RTE_FLOW_ITEM_TYPE_ICMP
@ RTE_FLOW_ITEM_TYPE_META
@ RTE_FLOW_ITEM_TYPE_QUOTA
@ RTE_FLOW_ITEM_TYPE_FUZZY
@ RTE_FLOW_ITEM_TYPE_ICMP6_ECHO_REQUEST
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
@ RTE_FLOW_ITEM_TYPE_GRE_KEY
@ RTE_FLOW_ITEM_TYPE_VXLAN
@ RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR
@ RTE_FLOW_ITEM_TYPE_INTEGRITY
@ RTE_FLOW_ITEM_TYPE_VXLAN_GPE
@ RTE_FLOW_ITEM_TYPE_IGMP
@ RTE_FLOW_ITEM_TYPE_MPLS
@ RTE_FLOW_ITEM_TYPE_COMPARE
@ RTE_FLOW_ITEM_TYPE_PFCP
@ RTE_FLOW_ITEM_TYPE_HIGIG2
@ RTE_FLOW_ITEM_TYPE_IPV6_ROUTING_EXT
@ RTE_FLOW_ITEM_TYPE_PTYPE
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH
@ RTE_FLOW_ITEM_TYPE_GRE_OPTION
@ RTE_FLOW_ITEM_TYPE_RANDOM
@ RTE_FLOW_ITEM_TYPE_NVGRE
@ RTE_FLOW_ITEM_TYPE_GENEVE_OPT
@ RTE_FLOW_ITEM_TYPE_IPV6_EXT
@ RTE_FLOW_ITEM_TYPE_L2TPV2
@ RTE_FLOW_ITEM_TYPE_VLAN
@ RTE_FLOW_ITEM_TYPE_GTPU
@ RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4
@ RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT
@ RTE_FLOW_ITEM_TYPE_INVERT
@ RTE_FLOW_ITEM_TYPE_CONNTRACK
@ RTE_FLOW_ITEM_TYPE_MACSEC
@ RTE_FLOW_ITEM_TYPE_FLEX
@ RTE_FLOW_ITEM_TYPE_ICMP6
@ RTE_FLOW_ITEM_TYPE_AGGR_AFFINITY
@ RTE_FLOW_ITEM_TYPE_PPPOED
@ RTE_FLOW_ITEM_TYPE_VOID
@ RTE_FLOW_ITEM_TYPE_IB_BTH
@ RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
@ RTE_FLOW_ITEM_TYPE_GENEVE
@ RTE_FLOW_ITEM_TYPE_E_TAG
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA
@ RTE_FLOW_ITEM_TYPE_MARK
@ RTE_FLOW_ITEM_TYPE_IPV6
@ RTE_FLOW_ITEM_TYPE_GTP_PSC
@ RTE_FLOW_ITEM_TYPE_SCTP
@ RTE_FLOW_ITEM_TYPE_PORT_ID
@ RTE_FLOW_ITEM_TYPE_TX_QUEUE
@ RTE_FLOW_ITEM_TYPE_ECPRI
@ RTE_FLOW_ITEM_TYPE_PPPOES
@ RTE_FLOW_ITEM_TYPE_GTPC
static const struct rte_flow_item_random rte_flow_item_random_mask
__rte_experimental int rte_flow_pattern_template_destroy(uint16_t port_id, struct rte_flow_pattern_template *pattern_template, struct rte_flow_error *error)
static const struct rte_flow_item_eth rte_flow_item_eth_mask
static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask
__rte_experimental int rte_flow_async_action_handle_query(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, const struct rte_flow_action_handle *action_handle, void *data, void *user_data, struct rte_flow_error *error)
__rte_experimental uint64_t rte_flow_restore_info_dynflag(void)
__rte_experimental int rte_flow_async_actions_update(uint16_t port_id, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow *flow, const struct rte_flow_action actions[], uint8_t actions_template_index, void *user_data, struct rte_flow_error *error)
__rte_experimental int rte_flow_actions_update(uint16_t port_id, struct rte_flow *flow, const struct rte_flow_action actions[], struct rte_flow_error *error)
@ RTE_FLOW_FIELD_IPV6_HOPLIMIT
@ RTE_FLOW_FIELD_IPV6_PROTO
@ RTE_FLOW_FIELD_METER_COLOR
@ RTE_FLOW_FIELD_GTP_TEID
@ RTE_FLOW_FIELD_IPV6_DSCP
@ RTE_FLOW_FIELD_GENEVE_OPT_CLASS
@ RTE_FLOW_FIELD_TCP_PORT_SRC
@ RTE_FLOW_FIELD_GENEVE_OPT_TYPE
@ RTE_FLOW_FIELD_IPV4_SRC
@ RTE_FLOW_FIELD_IPV4_DST
@ RTE_FLOW_FIELD_UDP_PORT_SRC
@ RTE_FLOW_FIELD_IPV6_SRC
@ RTE_FLOW_FIELD_GENEVE_OPT_DATA
@ RTE_FLOW_FIELD_GTP_PSC_QFI
@ RTE_FLOW_FIELD_FLEX_ITEM
@ RTE_FLOW_FIELD_IPV6_DST
@ RTE_FLOW_FIELD_TCP_FLAGS
@ RTE_FLOW_FIELD_UDP_PORT_DST
@ RTE_FLOW_FIELD_IPV4_IHL
@ RTE_FLOW_FIELD_IPV4_TTL
@ RTE_FLOW_FIELD_IPV6_PAYLOAD_LEN
@ RTE_FLOW_FIELD_IPV6_TRAFFIC_CLASS
@ RTE_FLOW_FIELD_ESP_PROTO
@ RTE_FLOW_FIELD_IPV4_PROTO
@ RTE_FLOW_FIELD_MAC_TYPE
@ RTE_FLOW_FIELD_GENEVE_VNI
@ RTE_FLOW_FIELD_VXLAN_LAST_RSVD
@ RTE_FLOW_FIELD_IPV6_ECN
@ RTE_FLOW_FIELD_ESP_SEQ_NUM
@ RTE_FLOW_FIELD_TCP_DATA_OFFSET
@ RTE_FLOW_FIELD_IPV4_DSCP
@ RTE_FLOW_FIELD_VXLAN_VNI
@ RTE_FLOW_FIELD_IPV6_FLOW_LABEL
@ RTE_FLOW_FIELD_VLAN_TYPE
@ RTE_FLOW_FIELD_TCP_ACK_NUM
@ RTE_FLOW_FIELD_TCP_SEQ_NUM
@ RTE_FLOW_FIELD_IPV4_TOTAL_LEN
@ RTE_FLOW_FIELD_IPV4_ECN
@ RTE_FLOW_FIELD_HASH_RESULT
@ RTE_FLOW_FIELD_TCP_PORT_DST
__rte_experimental int rte_flow_action_list_handle_destroy(uint16_t port_id, struct rte_flow_action_list_handle *handle, struct rte_flow_error *error)
#define RTE_IPV6_MASK_FULL
struct rte_ether_addr dst_addr
struct rte_flow_tcp_dir_param reply_dir
struct rte_flow_tcp_dir_param original_dir
uint8_t retransmission_limit
enum rte_flow_conntrack_state state
uint32_t challenge_ack_passed
struct rte_flow_action_list_handle * handle
struct rte_flow_meter_profile * profile
struct rte_flow_field_data dst
struct rte_flow_field_data src
enum rte_flow_modify_op operation
struct rte_flow_item * definition
const struct rte_flow_action_prog_argument * args
enum rte_flow_quota_mode mode
const struct rte_flow_action * actions
struct rte_flow_item * definition
enum rte_flow_action_type type
struct rte_flow_action * actions
struct rte_flow_attr * attr
const struct rte_flow_action * actions_ro
const struct rte_flow_item * pattern_ro
const struct rte_flow_attr * attr_ro
struct rte_flow_item * pattern
struct rte_flow_action * actions
struct rte_flow_attr attr
struct rte_flow_item * items
enum rte_flow_error_type type
enum rte_flow_field_id field
enum rte_color init_color
struct rte_ether_addr tha
struct rte_ether_addr sha
rte_be16_t epcp_edei_in_ecid_b
rte_be16_t rsvd_grp_ecid_b
struct rte_ether_addr dst
struct rte_ether_addr src
struct rte_flow_item_flex_field next_protocol
struct rte_flow_item_flex_link * output_link
enum rte_flow_item_flex_tunnel_mode tunnel
struct rte_flow_item_flex_link * input_link
struct rte_flow_item_flex_field next_header
struct rte_flow_item_flex_field * sample_data
enum rte_flow_item_flex_field_mode field_mode
struct rte_flow_item item
struct rte_flow_item_flex_handle * handle
rte_be16_t ver_opt_len_o_c_rsvd0
struct rte_gtp_psc_generic_hdr hdr
struct rte_ipv6_addr target_addr
struct rte_ipv6_addr target_addr
struct rte_ether_addr sla
struct rte_ether_addr tla
rte_be16_t c_k_s_rsvd0_ver
enum rte_flow_item_type type
struct rte_flow_action_conntrack new_ct
enum rte_flow_op_status status
uint32_t relaxed_matching
uint32_t nb_aging_objects
uint32_t max_nb_conn_tracks
uint32_t max_nb_aging_objects
uint32_t sec_since_last_hit
uint32_t sec_since_last_hit_valid
struct rte_flow_tunnel tunnel
enum rte_flow_table_insertion_type insertion_type
struct rte_flow_attr flow_attr
enum rte_flow_table_hash_func hash_func
uint32_t color_mode_valid
struct rte_flow_action_meter_mark meter_mark
enum rte_flow_update_quota_op op
struct rte_l2tpv2_common_hdr common