| rte_flow.h(3) | Library Functions Manual | rte_flow.h(3) |
rte_flow.h
#include <stddef.h>
#include <stdint.h>
#include <rte_compat.h>
#include <rte_common.h>
#include <rte_ether.h>
#include <rte_arp.h>
#include <rte_icmp.h>
#include <rte_ip.h>
#include <rte_sctp.h>
#include <rte_tcp.h>
#include <rte_udp.h>
#include <rte_vxlan.h>
#include <rte_esp.h>
#include <rte_higig.h>
#include <rte_ecpri.h>
#include <rte_bitops.h>
#include <rte_mbuf_dyn.h>
#include <rte_meter.h>
#include <rte_gtp.h>
#include <rte_l2tpv2.h>
#include <rte_ppp.h>
#include <rte_gre.h>
#include <rte_macsec.h>
#include <rte_ib.h>
#include 'rte_ethdev.h'
struct rte_flow_attr
struct rte_flow_item_quota
struct rte_flow_item_higig2_hdr
struct rte_flow_item_any
struct rte_flow_item_port_id
struct rte_flow_item_raw
struct rte_flow_item_eth
struct rte_flow_item_vlan
struct rte_flow_item_ipv4
struct rte_flow_item_ipv6
struct rte_flow_item_ipv6_routing_ext
struct rte_flow_item_icmp
struct rte_flow_item_udp
struct rte_flow_item_tcp
struct rte_flow_item_sctp
struct rte_flow_item_vxlan
struct rte_flow_item_e_tag
struct rte_flow_item_nvgre
struct rte_flow_item_mpls
struct rte_flow_item_gre
struct rte_flow_item_gre_opt
struct rte_flow_item_macsec
struct rte_flow_item_fuzzy
struct rte_flow_item_gtp
struct rte_flow_item_esp
struct rte_flow_item_geneve
struct rte_flow_item_vxlan_gpe
struct rte_flow_item_arp_eth_ipv4
struct rte_flow_item_ipv6_ext
struct rte_flow_item_ipv6_frag_ext
struct rte_flow_item_icmp6
struct rte_flow_item_icmp6_echo
struct rte_flow_item_icmp6_nd_ns
struct rte_flow_item_icmp6_nd_na
struct rte_flow_item_icmp6_nd_opt
struct rte_flow_item_icmp6_nd_opt_sla_eth
struct rte_flow_item_icmp6_nd_opt_tla_eth
struct rte_flow_item_meta
struct rte_flow_item_gtp_psc
struct rte_flow_item_pppoe
struct rte_flow_item_pppoe_proto_id
struct rte_flow_item_tag
struct rte_flow_item_l2tpv3oip
struct rte_flow_item_mark
struct rte_flow_item_nsh
struct rte_flow_item_igmp
struct rte_flow_item_ah
struct rte_flow_item_pfcp
struct rte_flow_item_ecpri
struct rte_flow_item_geneve_opt
struct rte_flow_item_integrity
struct rte_flow_item_conntrack
struct rte_flow_item_ethdev
struct rte_flow_item_l2tpv2
struct rte_flow_item_ppp
struct rte_flow_item_ib_bth
struct rte_flow_item_random
struct rte_flow_item
struct rte_flow_item_flex
struct rte_flow_item_flex_field
struct rte_flow_item_flex_link
struct rte_flow_item_flex_conf
struct rte_flow_item_meter_color
struct rte_flow_item_aggr_affinity
struct rte_flow_item_tx_queue
struct rte_flow_item_ptype
struct rte_flow_field_data
struct rte_flow_item_compare
struct rte_flow_action_quota
struct rte_flow_query_quota
struct rte_flow_update_quota
struct rte_flow_action_mark
struct rte_flow_action_jump
struct rte_flow_action_queue
struct rte_flow_action_age
struct rte_flow_query_age
struct rte_flow_update_age
struct rte_flow_action_count
struct rte_flow_query_count
struct rte_flow_action_rss
struct rte_flow_action_vf
struct rte_flow_action_port_id
struct rte_flow_action_meter
struct rte_flow_action_security
struct rte_flow_action_nat64
struct rte_flow_action_of_push_vlan
struct rte_flow_action_of_set_vlan_vid
struct rte_flow_action_of_set_vlan_pcp
struct rte_flow_action_of_pop_mpls
struct rte_flow_action_of_push_mpls
struct rte_flow_action_vxlan_encap
struct rte_flow_action_nvgre_encap
struct rte_flow_action_raw_encap
struct rte_flow_action_raw_decap
struct rte_flow_action_set_ipv4
struct rte_flow_action_set_ipv6
struct rte_flow_action_ipv6_ext_push
struct rte_flow_action_ipv6_ext_remove
struct rte_flow_action_set_tp
struct rte_flow_action_set_ttl
struct rte_flow_action_set_mac
struct rte_flow_action_set_tag
struct rte_flow_action_set_meta
struct rte_flow_action_set_dscp
struct rte_flow_tcp_dir_param
struct rte_flow_action_conntrack
struct rte_flow_modify_conntrack
struct rte_flow_action_meter_color
struct rte_flow_action_ethdev
struct rte_flow_action_modify_field
struct rte_flow_action_meter_mark
struct rte_flow_update_meter_mark
struct rte_flow_indirect_update_flow_meter_mark
struct rte_flow_action_prog_argument
struct rte_flow_action_prog
struct rte_flow_action_jump_to_table_index
struct rte_flow_action
struct rte_flow_action_sample
struct rte_flow_error
struct rte_flow_conv_rule
struct rte_flow_desc
struct rte_flow_indir_action_conf
struct rte_flow_restore_info
struct rte_flow_port_info
struct rte_flow_queue_info
struct rte_flow_port_attr
struct rte_flow_queue_attr
struct rte_flow_pattern_template_attr
struct rte_flow_actions_template_attr
struct rte_flow_template_table_attr
struct rte_flow_op_attr
struct rte_flow_op_result
struct rte_flow_action_indirect_list
#define RTE_FLOW_CONNTRACK_PKT_STATE_VALID
RTE_BIT32(0)
#define RTE_FLOW_CONNTRACK_PKT_STATE_CHANGED RTE_BIT32(1)
#define RTE_FLOW_CONNTRACK_PKT_STATE_INVALID RTE_BIT32(2)
#define RTE_FLOW_CONNTRACK_PKT_STATE_DISABLED RTE_BIT32(3)
#define RTE_FLOW_CONNTRACK_PKT_STATE_BAD RTE_BIT32(4)
#define RTE_FLOW_RESTORE_INFO_TUNNEL RTE_BIT64(0)
#define RTE_FLOW_RESTORE_INFO_ENCAPSULATED RTE_BIT64(1)
#define RTE_FLOW_RESTORE_INFO_GROUP_ID RTE_BIT64(2)
#define RTE_FLOW_PORT_FLAG_STRICT_QUEUE RTE_BIT32(0)
#define RTE_FLOW_PORT_FLAG_SHARE_INDIRECT RTE_BIT32(1)
Flags for template table attribute.
Each bit is an optional hint for table specialization, offering a potential
optimization at driver layer. The driver can ignore the hints silently. The
hints do not replace any matching criteria.
#define RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_WIRE_ORIG
RTE_BIT32(0)
#define RTE_FLOW_TABLE_SPECIALIZE_TRANSFER_VPORT_ORIG
RTE_BIT32(1)
#define RTE_FLOW_TABLE_SPECIALIZE_RESIZABLE RTE_BIT32(2)
enum rte_flow_item_type { RTE_FLOW_ITEM_TYPE_END,
RTE_FLOW_ITEM_TYPE_VOID, RTE_FLOW_ITEM_TYPE_INVERT,
RTE_FLOW_ITEM_TYPE_ANY, RTE_FLOW_ITEM_TYPE_PORT_ID,
RTE_FLOW_ITEM_TYPE_RAW, RTE_FLOW_ITEM_TYPE_ETH,
RTE_FLOW_ITEM_TYPE_VLAN, RTE_FLOW_ITEM_TYPE_IPV4,
RTE_FLOW_ITEM_TYPE_IPV6, RTE_FLOW_ITEM_TYPE_ICMP,
RTE_FLOW_ITEM_TYPE_UDP, RTE_FLOW_ITEM_TYPE_TCP,
RTE_FLOW_ITEM_TYPE_SCTP, RTE_FLOW_ITEM_TYPE_VXLAN,
RTE_FLOW_ITEM_TYPE_E_TAG, RTE_FLOW_ITEM_TYPE_NVGRE,
RTE_FLOW_ITEM_TYPE_MPLS, RTE_FLOW_ITEM_TYPE_GRE,
RTE_FLOW_ITEM_TYPE_FUZZY, RTE_FLOW_ITEM_TYPE_GTP,
RTE_FLOW_ITEM_TYPE_GTPC, RTE_FLOW_ITEM_TYPE_GTPU,
RTE_FLOW_ITEM_TYPE_ESP, RTE_FLOW_ITEM_TYPE_GENEVE,
RTE_FLOW_ITEM_TYPE_VXLAN_GPE, RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4,
RTE_FLOW_ITEM_TYPE_IPV6_EXT, RTE_FLOW_ITEM_TYPE_ICMP6,
RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS,
RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA,
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT,
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH,
RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH,
RTE_FLOW_ITEM_TYPE_MARK, RTE_FLOW_ITEM_TYPE_META,
RTE_FLOW_ITEM_TYPE_GRE_KEY, RTE_FLOW_ITEM_TYPE_GTP_PSC,
RTE_FLOW_ITEM_TYPE_PPPOES, RTE_FLOW_ITEM_TYPE_PPPOED,
RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID, RTE_FLOW_ITEM_TYPE_NSH,
RTE_FLOW_ITEM_TYPE_IGMP, RTE_FLOW_ITEM_TYPE_AH,
RTE_FLOW_ITEM_TYPE_HIGIG2, RTE_FLOW_ITEM_TYPE_TAG,
RTE_FLOW_ITEM_TYPE_L2TPV3OIP, RTE_FLOW_ITEM_TYPE_PFCP,
RTE_FLOW_ITEM_TYPE_ECPRI, RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT,
RTE_FLOW_ITEM_TYPE_GENEVE_OPT, RTE_FLOW_ITEM_TYPE_INTEGRITY,
RTE_FLOW_ITEM_TYPE_CONNTRACK,
RTE_FLOW_ITEM_TYPE_PORT_REPRESENTOR,
RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT, RTE_FLOW_ITEM_TYPE_FLEX,
RTE_FLOW_ITEM_TYPE_L2TPV2, RTE_FLOW_ITEM_TYPE_PPP,
RTE_FLOW_ITEM_TYPE_GRE_OPTION, RTE_FLOW_ITEM_TYPE_MACSEC,
RTE_FLOW_ITEM_TYPE_METER_COLOR,
RTE_FLOW_ITEM_TYPE_IPV6_ROUTING_EXT,
RTE_FLOW_ITEM_TYPE_ICMP6_ECHO_REQUEST,
RTE_FLOW_ITEM_TYPE_ICMP6_ECHO_REPLY, RTE_FLOW_ITEM_TYPE_QUOTA,
RTE_FLOW_ITEM_TYPE_AGGR_AFFINITY, RTE_FLOW_ITEM_TYPE_TX_QUEUE,
RTE_FLOW_ITEM_TYPE_IB_BTH, RTE_FLOW_ITEM_TYPE_PTYPE,
RTE_FLOW_ITEM_TYPE_RANDOM, RTE_FLOW_ITEM_TYPE_COMPARE }
enum rte_flow_quota_state { RTE_FLOW_QUOTA_STATE_PASS,
RTE_FLOW_QUOTA_STATE_BLOCK }
enum rte_flow_item_flex_field_mode { FIELD_MODE_DUMMY = 0,
FIELD_MODE_FIXED, FIELD_MODE_OFFSET, FIELD_MODE_BITMASK
}
enum rte_flow_item_flex_tunnel_mode { FLEX_TUNNEL_MODE_SINGLE =
0, FLEX_TUNNEL_MODE_OUTER, FLEX_TUNNEL_MODE_INNER,
FLEX_TUNNEL_MODE_MULTI, FLEX_TUNNEL_MODE_TUNNEL }
enum rte_flow_field_id { RTE_FLOW_FIELD_START = 0,
RTE_FLOW_FIELD_MAC_DST, RTE_FLOW_FIELD_MAC_SRC,
RTE_FLOW_FIELD_VLAN_TYPE, RTE_FLOW_FIELD_VLAN_ID,
RTE_FLOW_FIELD_MAC_TYPE, RTE_FLOW_FIELD_IPV4_DSCP,
RTE_FLOW_FIELD_IPV4_TTL, RTE_FLOW_FIELD_IPV4_SRC,
RTE_FLOW_FIELD_IPV4_DST, RTE_FLOW_FIELD_IPV6_DSCP,
RTE_FLOW_FIELD_IPV6_HOPLIMIT, RTE_FLOW_FIELD_IPV6_SRC,
RTE_FLOW_FIELD_IPV6_DST, RTE_FLOW_FIELD_TCP_PORT_SRC,
RTE_FLOW_FIELD_TCP_PORT_DST, RTE_FLOW_FIELD_TCP_SEQ_NUM,
RTE_FLOW_FIELD_TCP_ACK_NUM, RTE_FLOW_FIELD_TCP_FLAGS,
RTE_FLOW_FIELD_UDP_PORT_SRC, RTE_FLOW_FIELD_UDP_PORT_DST,
RTE_FLOW_FIELD_VXLAN_VNI, RTE_FLOW_FIELD_GENEVE_VNI,
RTE_FLOW_FIELD_GTP_TEID, RTE_FLOW_FIELD_TAG,
RTE_FLOW_FIELD_MARK, RTE_FLOW_FIELD_META,
RTE_FLOW_FIELD_POINTER, RTE_FLOW_FIELD_VALUE,
RTE_FLOW_FIELD_IPV4_ECN, RTE_FLOW_FIELD_IPV6_ECN,
RTE_FLOW_FIELD_GTP_PSC_QFI, RTE_FLOW_FIELD_METER_COLOR,
RTE_FLOW_FIELD_IPV6_PROTO, RTE_FLOW_FIELD_FLEX_ITEM,
RTE_FLOW_FIELD_HASH_RESULT, RTE_FLOW_FIELD_GENEVE_OPT_TYPE,
RTE_FLOW_FIELD_GENEVE_OPT_CLASS,
RTE_FLOW_FIELD_GENEVE_OPT_DATA, RTE_FLOW_FIELD_MPLS,
RTE_FLOW_FIELD_TCP_DATA_OFFSET, RTE_FLOW_FIELD_IPV4_IHL,
RTE_FLOW_FIELD_IPV4_TOTAL_LEN,
RTE_FLOW_FIELD_IPV6_PAYLOAD_LEN, RTE_FLOW_FIELD_IPV4_PROTO,
RTE_FLOW_FIELD_IPV6_FLOW_LABEL,
RTE_FLOW_FIELD_IPV6_TRAFFIC_CLASS, RTE_FLOW_FIELD_ESP_SPI,
RTE_FLOW_FIELD_ESP_SEQ_NUM, RTE_FLOW_FIELD_ESP_PROTO,
RTE_FLOW_FIELD_RANDOM, RTE_FLOW_FIELD_VXLAN_LAST_RSVD }
enum rte_flow_item_compare_op
enum rte_flow_action_type { RTE_FLOW_ACTION_TYPE_END,
RTE_FLOW_ACTION_TYPE_VOID, RTE_FLOW_ACTION_TYPE_PASSTHRU,
RTE_FLOW_ACTION_TYPE_JUMP, RTE_FLOW_ACTION_TYPE_MARK,
RTE_FLOW_ACTION_TYPE_FLAG, RTE_FLOW_ACTION_TYPE_QUEUE,
RTE_FLOW_ACTION_TYPE_DROP, RTE_FLOW_ACTION_TYPE_COUNT,
RTE_FLOW_ACTION_TYPE_RSS, RTE_FLOW_ACTION_TYPE_PF,
RTE_FLOW_ACTION_TYPE_VF, RTE_FLOW_ACTION_TYPE_PORT_ID,
RTE_FLOW_ACTION_TYPE_METER, RTE_FLOW_ACTION_TYPE_SECURITY,
RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL,
RTE_FLOW_ACTION_TYPE_OF_POP_VLAN,
RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN,
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID,
RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP,
RTE_FLOW_ACTION_TYPE_OF_POP_MPLS,
RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS,
RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP,
RTE_FLOW_ACTION_TYPE_VXLAN_DECAP,
RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP,
RTE_FLOW_ACTION_TYPE_NVGRE_DECAP,
RTE_FLOW_ACTION_TYPE_RAW_ENCAP,
RTE_FLOW_ACTION_TYPE_RAW_DECAP,
RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC,
RTE_FLOW_ACTION_TYPE_SET_IPV4_DST,
RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC,
RTE_FLOW_ACTION_TYPE_SET_IPV6_DST,
RTE_FLOW_ACTION_TYPE_SET_TP_SRC,
RTE_FLOW_ACTION_TYPE_SET_TP_DST,
RTE_FLOW_ACTION_TYPE_MAC_SWAP, RTE_FLOW_ACTION_TYPE_DEC_TTL,
RTE_FLOW_ACTION_TYPE_SET_TTL,
RTE_FLOW_ACTION_TYPE_SET_MAC_SRC,
RTE_FLOW_ACTION_TYPE_SET_MAC_DST,
RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ,
RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ,
RTE_FLOW_ACTION_TYPE_INC_TCP_ACK,
RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK,
RTE_FLOW_ACTION_TYPE_SET_TAG, RTE_FLOW_ACTION_TYPE_SET_META,
RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP,
RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP, RTE_FLOW_ACTION_TYPE_AGE,
RTE_FLOW_ACTION_TYPE_SAMPLE, RTE_FLOW_ACTION_TYPE_SHARED,
RTE_FLOW_ACTION_TYPE_MODIFY_FIELD,
RTE_FLOW_ACTION_TYPE_INDIRECT, RTE_FLOW_ACTION_TYPE_CONNTRACK,
RTE_FLOW_ACTION_TYPE_METER_COLOR,
RTE_FLOW_ACTION_TYPE_PORT_REPRESENTOR,
RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT,
RTE_FLOW_ACTION_TYPE_METER_MARK,
RTE_FLOW_ACTION_TYPE_SEND_TO_KERNEL,
RTE_FLOW_ACTION_TYPE_QUOTA, RTE_FLOW_ACTION_TYPE_SKIP_CMAN,
RTE_FLOW_ACTION_TYPE_IPV6_EXT_PUSH,
RTE_FLOW_ACTION_TYPE_IPV6_EXT_REMOVE,
RTE_FLOW_ACTION_TYPE_INDIRECT_LIST, RTE_FLOW_ACTION_TYPE_PROG,
RTE_FLOW_ACTION_TYPE_NAT64,
RTE_FLOW_ACTION_TYPE_JUMP_TO_TABLE_INDEX }
enum rte_flow_quota_mode { RTE_FLOW_QUOTA_MODE_PACKET = 1,
RTE_FLOW_QUOTA_MODE_L2 = 2, RTE_FLOW_QUOTA_MODE_L3 = 3 }
enum rte_flow_update_quota_op { RTE_FLOW_UPDATE_QUOTA_SET,
RTE_FLOW_UPDATE_QUOTA_ADD }
enum rte_flow_nat64_type { RTE_FLOW_NAT64_6TO4 = 0,
RTE_FLOW_NAT64_4TO6 = 1 }
enum rte_flow_conntrack_state {
RTE_FLOW_CONNTRACK_STATE_SYN_RECV,
RTE_FLOW_CONNTRACK_STATE_ESTABLISHED,
RTE_FLOW_CONNTRACK_STATE_FIN_WAIT,
RTE_FLOW_CONNTRACK_STATE_CLOSE_WAIT,
RTE_FLOW_CONNTRACK_STATE_LAST_ACK,
RTE_FLOW_CONNTRACK_STATE_TIME_WAIT }
enum rte_flow_conntrack_tcp_last_index {
RTE_FLOW_CONNTRACK_FLAG_NONE = 0, RTE_FLOW_CONNTRACK_FLAG_SYN
= RTE_BIT32(0), RTE_FLOW_CONNTRACK_FLAG_SYNACK = RTE_BIT32(1),
RTE_FLOW_CONNTRACK_FLAG_FIN = RTE_BIT32(2),
RTE_FLOW_CONNTRACK_FLAG_ACK = RTE_BIT32(3),
RTE_FLOW_CONNTRACK_FLAG_RST = RTE_BIT32(4) }
enum rte_flow_modify_op { RTE_FLOW_MODIFY_SET = 0,
RTE_FLOW_MODIFY_ADD, RTE_FLOW_MODIFY_SUB }
enum rte_flow_error_type { RTE_FLOW_ERROR_TYPE_NONE,
RTE_FLOW_ERROR_TYPE_UNSPECIFIED, RTE_FLOW_ERROR_TYPE_HANDLE,
RTE_FLOW_ERROR_TYPE_ATTR_GROUP,
RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY,
RTE_FLOW_ERROR_TYPE_ATTR_INGRESS,
RTE_FLOW_ERROR_TYPE_ATTR_EGRESS,
RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER, RTE_FLOW_ERROR_TYPE_ATTR,
RTE_FLOW_ERROR_TYPE_ITEM_NUM, RTE_FLOW_ERROR_TYPE_ITEM_SPEC,
RTE_FLOW_ERROR_TYPE_ITEM_LAST, RTE_FLOW_ERROR_TYPE_ITEM_MASK,
RTE_FLOW_ERROR_TYPE_ITEM, RTE_FLOW_ERROR_TYPE_ACTION_NUM,
RTE_FLOW_ERROR_TYPE_ACTION_CONF, RTE_FLOW_ERROR_TYPE_ACTION,
RTE_FLOW_ERROR_TYPE_STATE }
enum rte_flow_conv_op { RTE_FLOW_CONV_OP_NONE,
RTE_FLOW_CONV_OP_ATTR, RTE_FLOW_CONV_OP_ITEM,
RTE_FLOW_CONV_OP_ITEM_MASK, RTE_FLOW_CONV_OP_ACTION,
RTE_FLOW_CONV_OP_PATTERN, RTE_FLOW_CONV_OP_ACTIONS,
RTE_FLOW_CONV_OP_RULE, RTE_FLOW_CONV_OP_ITEM_NAME,
RTE_FLOW_CONV_OP_ACTION_NAME, RTE_FLOW_CONV_OP_ITEM_NAME_PTR,
RTE_FLOW_CONV_OP_ACTION_NAME_PTR }
enum rte_flow_table_insertion_type {
RTE_FLOW_TABLE_INSERTION_TYPE_PATTERN,
RTE_FLOW_TABLE_INSERTION_TYPE_INDEX,
RTE_FLOW_TABLE_INSERTION_TYPE_INDEX_WITH_PATTERN }
enum rte_flow_table_hash_func {
RTE_FLOW_TABLE_HASH_FUNC_DEFAULT,
RTE_FLOW_TABLE_HASH_FUNC_LINEAR,
RTE_FLOW_TABLE_HASH_FUNC_CRC32, RTE_FLOW_TABLE_HASH_FUNC_CRC16
}
enum rte_flow_op_status { RTE_FLOW_OP_SUCCESS,
RTE_FLOW_OP_ERROR }
enum rte_flow_query_update_mode { RTE_FLOW_QU_QUERY_FIRST = 1,
RTE_FLOW_QU_UPDATE_FIRST }
enum 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_dev_dump (uint16_t port_id,
struct rte_flow *flow, FILE *file, struct rte_flow_error *error)
static __rte_experimental int rte_flow_dynf_metadata_avail (void)
__rte_experimental int rte_flow_dynf_metadata_register (void)
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)
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)
int rte_flow_destroy (uint16_t port_id, struct rte_flow *flow, 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)
int rte_flow_flush (uint16_t port_id, 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)
int rte_flow_isolate (uint16_t port_id, int set, struct
rte_flow_error *error)
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_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)
__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)
__rte_experimental int rte_flow_get_aged_flows (uint16_t port_id, void
**contexts, uint32_t nb_contexts, 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)
__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)
__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 int rte_flow_action_handle_update (uint16_t port_id,
struct rte_flow_action_handle *handle, const void *update, 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_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_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 uint64_t rte_flow_restore_info_dynflag (void)
__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 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 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_pick_transfer_proxy (uint16_t port_id, uint16_t
*proxy_port_id, struct rte_flow_error *error)
__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_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_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)
__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 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_experimental int rte_flow_pattern_template_destroy (uint16_t
port_id, struct rte_flow_pattern_template *pattern_template, 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_experimental int rte_flow_actions_template_destroy (uint16_t
port_id, struct rte_flow_actions_template *actions_template, 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)
__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 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_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 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)
__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_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_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)
__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_push (uint16_t port_id, uint32_t
queue_id, struct rte_flow_error *error)
__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 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)
__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_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_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 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)
__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 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)
__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_list_handle_destroy (uint16_t
port_id, struct rte_flow_action_list_handle *handle, struct
rte_flow_error *error)
__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)
__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)
__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_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_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)
__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)
__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)
__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_quota
rte_flow_item_quota_mask
static const struct rte_flow_item_higig2_hdr
rte_flow_item_higig2_hdr_mask
static const struct rte_flow_item_any rte_flow_item_any_mask
static const struct rte_flow_item_port_id
rte_flow_item_port_id_mask
static const struct rte_flow_item_raw rte_flow_item_raw_mask
static const struct rte_flow_item_eth rte_flow_item_eth_mask
static const struct rte_flow_item_vlan rte_flow_item_vlan_mask
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
static const struct rte_flow_item_udp rte_flow_item_udp_mask
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
static const struct rte_flow_item_gre rte_flow_item_gre_mask
static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
static const struct rte_flow_item_esp rte_flow_item_esp_mask
static const struct rte_flow_item_geneve
rte_flow_item_geneve_mask
static const struct rte_flow_item_vxlan_gpe
rte_flow_item_vxlan_gpe_mask
static const struct rte_flow_item_arp_eth_ipv4
rte_flow_item_arp_eth_ipv4_mask
static const struct rte_flow_item_ipv6_ext
rte_flow_item_ipv6_ext_mask
static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask
static const struct rte_flow_item_icmp6_nd_ns
rte_flow_item_icmp6_nd_ns_mask
static const struct rte_flow_item_icmp6_nd_na
rte_flow_item_icmp6_nd_na_mask
static const struct rte_flow_item_icmp6_nd_opt
rte_flow_item_icmp6_nd_opt_mask
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_icmp6_nd_opt_tla_eth
rte_flow_item_icmp6_nd_opt_tla_eth_mask
static const struct rte_flow_item_meta rte_flow_item_meta_mask
static const struct rte_flow_item_gtp_psc
rte_flow_item_gtp_psc_mask
static const struct rte_flow_item_pppoe_proto_id
rte_flow_item_pppoe_proto_id_mask
static const struct rte_flow_item_tag rte_flow_item_tag_mask
static const struct rte_flow_item_l2tpv3oip
rte_flow_item_l2tpv3oip_mask
static const struct rte_flow_item_mark rte_flow_item_mark_mask
static const struct rte_flow_item_nsh rte_flow_item_nsh_mask
static const struct rte_flow_item_igmp rte_flow_item_igmp_mask
static const struct rte_flow_item_ah rte_flow_item_ah_mask
static const struct rte_flow_item_pfcp rte_flow_item_pfcp_mask
static const struct rte_flow_item_ecpri rte_flow_item_ecpri_mask
static const struct rte_flow_item_geneve_opt
rte_flow_item_geneve_opt_mask
static const struct rte_flow_item_conntrack
rte_flow_item_conntrack_mask
static const struct rte_flow_item_ethdev
rte_flow_item_ethdev_mask
static const struct rte_flow_item_l2tpv2
rte_flow_item_l2tpv2_mask
static const struct rte_flow_item_ppp rte_flow_item_ppp_mask
static const struct rte_flow_item_ib_bth
rte_flow_item_ib_bth_mask
static const struct rte_flow_item_random
rte_flow_item_random_mask
static const struct rte_flow_item_meter_color
rte_flow_item_meter_color_mask
static const struct rte_flow_item_aggr_affinity
rte_flow_item_aggr_affinity_mask
static const struct rte_flow_item_tx_queue
rte_flow_item_tx_queue_mask
static const struct rte_flow_item_ptype rte_flow_item_ptype_mask
RTE generic flow API
This interface provides the ability to program packet matching and associated actions in hardware through flow rules.
Definition in file rte_flow.h.
The packet is valid after conntrack checking.
Definition at line 1947 of file rte_flow.h.
The state of the connection is changed.
Definition at line 1951 of file rte_flow.h.
Error is detected on this packet for this connection and an invalid state is set.
Definition at line 1956 of file rte_flow.h.
The HW connection tracking module is disabled. It can be due to application command or an invalid state.
Definition at line 1961 of file rte_flow.h.
The packet contains some bad field(s) and cannot continue with the conntrack module checking.
Definition at line 1966 of file rte_flow.h.
Indicate that the packet has a tunnel.
Definition at line 5233 of file rte_flow.h.
Indicate that the packet has a non decapsulated tunnel header.
Definition at line 5238 of file rte_flow.h.
Indicate that the packet has a group_id.
Definition at line 5243 of file rte_flow.h.
Indicate all operations for a given flow rule will strictly happen on the same queue (create/destroy/query/update).
Definition at line 5488 of file rte_flow.h.
Indicate all steering objects should be created on contexts of the host port, providing indirect object sharing between ports.
Definition at line 5495 of file rte_flow.h.
Specialize table for transfer flows which come only from wire. It allows PMD not to allocate resources for non-wire originated traffic. This bit is not a matching criteria, just an optimization hint. Flow rules which match non-wire originated traffic will be missed if the hint is supported.
Definition at line 5886 of file rte_flow.h.
Specialize table for transfer flows which come only from vport (e.g. VF, SF). It allows PMD not to allocate resources for non-vport originated traffic. This bit is not a matching criteria, just an optimization hint. Flow rules which match non-vport originated traffic will be missed if the hint is supported.
Definition at line 5894 of file rte_flow.h.
Specialize table for resize.
Definition at line 5898 of file rte_flow.h.
Matching pattern item types.
Pattern items fall in two categories:
See the description of individual types for more information. Those marked with [META] fall into the second category.
Enumerator
End marker for item lists. Prevents further processing of items, thereby ending the pattern.
No associated specification structure.
Used as a placeholder for convenience. It is ignored and simply discarded by PMDs.
No associated specification structure.
Inverted matching, i.e. process packets that do not match the pattern.
No associated specification structure.
See struct rte_flow_item_any.
Deprecated
See also
RTE_FLOW_ITEM_TYPE_REPRESENTED_PORT
[META]
Matches traffic originating from (ingress) or going to (egress) a given DPDK port ID.
See struct rte_flow_item_port_id.
See struct rte_flow_item_raw.
See struct rte_flow_item_eth.
See struct rte_flow_item_vlan.
See struct rte_flow_item_ipv4.
See struct rte_flow_item_ipv6.
See struct rte_flow_item_icmp.
See struct rte_flow_item_udp.
See struct rte_flow_item_tcp.
See struct rte_flow_item_sctp.
See struct rte_flow_item_vxlan.
See struct rte_flow_item_e_tag.
See struct rte_flow_item_nvgre.
See struct rte_flow_item_mpls.
See struct rte_flow_item_gre.
Fuzzy pattern match, expect faster than default.
This is for device that support fuzzy matching option. Usually a fuzzy matching is fast but the cost is accuracy.
See struct rte_flow_item_fuzzy.
Configure flow for GTP packets.
See struct rte_flow_item_gtp.
Configure flow for GTP-C packets.
See struct rte_flow_item_gtp.
Configure flow for GTP-U packets.
See struct rte_flow_item_gtp.
See struct rte_flow_item_esp.
See struct rte_flow_item_geneve.
Deprecated
See also
Matches a VXLAN-GPE header.
See struct rte_flow_item_vxlan_gpe.
See struct rte_flow_item_arp_eth_ipv4.
See struct rte_flow_item_ipv6_ext.
See struct rte_flow_item_icmp6.
See struct rte_flow_item_icmp6_nd_ns.
See struct rte_flow_item_icmp6_nd_na.
See struct rte_flow_item_icmp6_nd_opt.
See struct rte_flow_item_icmp6_nd_opt_sla_eth.
See struct rte_flow_item_icmp6_nd_opt_tla_eth.
See struct rte_flow_item_mark.
Matches a metadata value.
See struct rte_flow_item_meta.
The value should a big-endian 32bit integer.
When this item present the K bit is implicitly matched as '1' in the default mask.
spec/mask type:
rte_be32_t *
Configure flow for GTP packets with extension header type 0x85.
See struct rte_flow_item_gtp_psc.
Configure flow for PPPoE session packets.
See struct rte_flow_item_pppoe.
Configure flow for PPPoE discovery packets.
See struct rte_flow_item_pppoe.
It only applies to PPPoE session packets.
See struct rte_flow_item_pppoe_proto_id.
Matches a tag value.
See struct rte_flow_item_tag.
Configure flow for L2TPv3 over IP packets.
See struct rte_flow_item_l2tpv3oip.
Configure flow for eCPRI over ETH or UDP packets.
See struct rte_flow_item_ecpri.
See struct rte_flow_item_ipv6_frag_ext.
See struct rte_flow_item_geneve_opt
Matches on packet integrity. For some devices application needs to enable integration checks in HW before using this item.
See also
Matches conntrack state.
See also
Matches traffic entering the embedded switch from the given ethdev.
See also
Matches traffic entering the embedded switch from the entity represented by the given ethdev.
See also
See also
See struct rte_flow_item_l2tpv2.
See struct rte_flow_item_ppp.
See struct rte_flow_item_gre_opt.
See struct rte_flow_item_macsec.
See struct rte_flow_item_meter_color.
See also
See also
See also
See also
See also
See also
See also
See struct rte_flow_item_ptype.
Matches a random value.
This value is not based on the packet data/headers. The application shouldn't assume that this value is kept during the lifetime of the packet.
See also
See struct rte_flow_item_compare.
Definition at line 153 of file rte_flow.h.
Warning
QUOTA state.
See also
Enumerator
Definition at line 737 of file rte_flow.h.
Field bit offset calculation mode.
Enumerator
field_base + (*offset_base & offset_mask) << offset_shift
field_base + bitcount(*offset_base & offset_mask) << offset_shift
Definition at line 2158 of file rte_flow.h.
Flex item field tunnel mode
Enumerator
Definition at line 2191 of file rte_flow.h.
Packet header field IDs, used by RTE_FLOW_ACTION_TYPE_MODIFY_FIELD and RTE_FLOW_ITEM_TYPE_COMPARE.
Enumerator
Definition at line 2387 of file rte_flow.h.
Expected operation types for compare item.
Definition at line 2540 of file rte_flow.h.
Action types.
Each possible action is represented by a type. An action can have an associated configuration object. Several actions combined in a list can be assigned to a flow rule and are performed in order.
They fall in three categories:
Flow rules being terminating by default, not specifying any action of the fate kind results in undefined behavior. This applies to both ingress and egress.
PASSTHRU, when supported, makes a flow rule non-terminating.
Enumerator
No associated configuration structure.
No associated configuration structure.
No associated configuration structure.
Redirects packets to a group on the current device.
See struct rte_flow_action_jump.
See struct rte_flow_action_mark.
One should negotiate mark delivery from the NIC to the PMD.
See also
RTE_ETH_RX_METADATA_USER_MARK
No associated configuration structure.
One should negotiate flag delivery from the NIC to the PMD.
See also
RTE_ETH_RX_METADATA_USER_FLAG
See struct rte_flow_action_queue.
PASSTHRU overrides this action if both are specified.
No associated configuration structure.
These counters can be retrieved and reset through rte_flow_query() or rte_flow_action_handle_query() if the action provided via handle, see struct rte_flow_query_count.
See struct rte_flow_action_count.
See struct rte_flow_action_rss.
Deprecated
See also
RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT
Directs matching traffic to the physical function (PF) of the current device.
No associated configuration structure.
Deprecated
See also
RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT
Directs matching traffic to a given virtual function of the current device.
See struct rte_flow_action_vf.
Deprecated
See also
RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT
Directs matching traffic to a given DPDK port ID.
See struct rte_flow_action_port_id.
See struct rte_flow_action_meter. See file rte_mtr.h for MTR object configuration.
See struct rte_flow_action_security.
Warning
See also
Implements OFPAT_DEC_NW_TTL ('decrement IP TTL') as defined by the OpenFlow Switch Specification.
No associated configuration structure.
No associated configuration structure.
See struct rte_flow_action_of_push_vlan.
See struct rte_flow_action_of_set_vlan_vid.
See struct rte_flow_action_of_set_vlan_pcp.
See struct rte_flow_action_of_pop_mpls.
See struct rte_flow_action_of_push_mpls.
See struct rte_flow_action_vxlan_encap.
If flow pattern does not define a valid VXLAN tunnel (as specified by RFC7348) then the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
See struct rte_flow_action_nvgre_encap.
If flow pattern does not define a valid NVGRE tunnel (as specified by RFC7637) then the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
See struct rte_flow_action_raw_encap.
See struct rte_flow_action_raw_decap
Warning
See also
Modify IPv4 source address in the outermost IPv4 header.
If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_IPV4, then the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
See struct rte_flow_action_set_ipv4.
Warning
See also
Modify IPv4 destination address in the outermost IPv4 header.
If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_IPV4, then the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
See struct rte_flow_action_set_ipv4.
Warning
See also
Modify IPv6 source address in the outermost IPv6 header.
If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_IPV6, then the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
See struct rte_flow_action_set_ipv6.
Warning
See also
Modify IPv6 destination address in the outermost IPv6 header.
If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_IPV6, then the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
See struct rte_flow_action_set_ipv6.
Warning
See also
Modify source port number in the outermost TCP/UDP header.
If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_TCP or RTE_FLOW_ITEM_TYPE_UDP, then the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
See struct rte_flow_action_set_tp.
Warning
See also
Modify destination port number in the outermost TCP/UDP header.
If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_TCP or RTE_FLOW_ITEM_TYPE_UDP, then the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
See struct rte_flow_action_set_tp.
If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_ETH, then the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
No associated configuration structure.
Warning
See also
Decrease TTL value directly
No associated configuration structure.
Warning
See also
Set TTL value
See struct rte_flow_action_set_ttl
Warning
See also
Set source MAC address from matched flow.
If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_ETH, the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
See struct rte_flow_action_set_mac.
Warning
See also
Set destination MAC address from matched flow.
If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_ETH, the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
See struct rte_flow_action_set_mac.
Warning
See also
Increase sequence number in the outermost TCP header.
Action configuration specifies the value to increase TCP sequence number as a big-endian 32 bit integer.
conf type:
rte_be32_t *
Using this action on non-matching traffic will result in undefined behavior.
Warning
See also
Decrease sequence number in the outermost TCP header.
Action configuration specifies the value to decrease TCP sequence number as a big-endian 32 bit integer.
conf type:
rte_be32_t *
Using this action on non-matching traffic will result in undefined behavior.
Warning
See also
Increase acknowledgment number in the outermost TCP header.
Action configuration specifies the value to increase TCP acknowledgment number as a big-endian 32 bit integer.
conf type:
rte_be32_t *
Using this action on non-matching traffic will result in undefined behavior.
Warning
See also
Decrease acknowledgment number in the outermost TCP header.
Action configuration specifies the value to decrease TCP acknowledgment number as a big-endian 32 bit integer.
conf type:
rte_be32_t *
Using this action on non-matching traffic will result in undefined behavior.
Warning
See also
Set Tag.
Tag is for internal flow usage only and is not delivered to the application.
See struct rte_flow_action_set_tag.
Warning
See also
Set metadata on ingress or egress path.
See struct rte_flow_action_set_meta.
Warning
See also
Modify IPv4 DSCP in the outermost IP header.
If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_IPV4, then the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
See struct rte_flow_action_set_dscp.
Warning
See also
Modify IPv6 DSCP in the outermost IP header.
If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_IPV6, then the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error.
See struct rte_flow_action_set_dscp.
See struct rte_flow_action_age. See function rte_flow_get_q_aged_flows See function rte_flow_get_aged_flows see enum RTE_ETH_EVENT_FLOW_AGED See struct rte_flow_query_age See struct rte_flow_update_age
See struct rte_flow_action_sample.
Deprecated
See also
Describe action shared across multiple flow rules.
Allow multiple rules reference the same action by handle (see struct rte_flow_shared_action).
Allow the modification of an arbitrary header field via set, add and sub operations or copying its content into tag, meta or mark for future processing.
See struct rte_flow_action_modify_field.
The same action handle may be used in multiple rules for the same or different ethdev ports.
Enable tracking a TCP connection state.
See also
See struct rte_flow_action_meter_color.
See also
See also
See also
No associated configuration structure.
See also
struct rte_flow_query_quota
struct rte_flow_update_quota
Using rte_eth_cman_config_set(), the application can configure ethdev Rx queue's congestion mechanism. This flow action allows to skip the congestion configuration applied to the given ethdev Rx queue.
Push IPv6 extension into IPv6 packet.
See also
Remove IPv6 extension from IPv6 packet whose type is provided in its configuration buffer.
See also
See also
See also
See also
Redirects packets to a particular index in a flow table.
See also
Definition at line 2590 of file rte_flow.h.
Warning
QUOTA operational mode.
See also
Enumerator
Definition at line 3276 of file rte_flow.h.
Warning
Indirect QUOTA update operations.
See also
Enumerator
Definition at line 3315 of file rte_flow.h.
NAT64 translation type for IP headers.
Enumerator
Definition at line 3607 of file rte_flow.h.
The state of a TCP connection.
Enumerator
Definition at line 3953 of file rte_flow.h.
The last passed TCP packet flags of a connection.
Enumerator
Definition at line 3971 of file rte_flow.h.
Operation types for MODIFY_FIELD action.
Enumerator
Definition at line 4123 of file rte_flow.h.
Verbose error types.
Most of them provide the type of the object referenced by struct rte_flow_error.cause.
Enumerator
Definition at line 4346 of file rte_flow.h.
Conversion operations for flow API objects.
See also
Enumerator
rte_flow_conv() simply returns 0.
This is a basic copy of an attributes structure.
const struct rte_flow_attr *
struct rte_flow_attr *
Duplicates spec, last and mask but not outside objects.
const struct rte_flow_item *
struct rte_flow_item *
Duplicates only mask.
const struct rte_flow_item *
struct rte_flow_item *
Duplicates conf but not outside objects.
const struct rte_flow_action *
struct rte_flow_action *
Duplicates all pattern items at once with the same constraints as RTE_FLOW_CONV_OP_ITEM.
const struct rte_flow_item *
struct rte_flow_item *
Duplicates the entire list of actions at once with the same constraints as RTE_FLOW_CONV_OP_ACTION.
const struct rte_flow_action *
struct rte_flow_action *
Comprises attributes, pattern and actions together at once with the usual constraints.
const struct rte_flow_conv_rule *
struct rte_flow_conv_rule *
Writes a NUL-terminated string to dst. Like snprintf(), the returned value excludes the terminator which is always written nonetheless.
(const void *)enum rte_flow_item_type
char *
Writes a NUL-terminated string to dst. Like snprintf(), the returned value excludes the terminator which is always written nonetheless.
(const void *)enum rte_flow_action_type
char *
Retrieves item name pointer from its type. The string itself is not copied; instead, a unique pointer to an internal static constant storage is written to dst.
(const void *)enum rte_flow_item_type
const char **
Retrieves action name pointer from its type. The string itself is not copied; instead, a unique pointer to an internal static constant storage is written to dst.
(const void *)enum rte_flow_action_type
const char **
Definition at line 4412 of file rte_flow.h.
Warning
Template table flow rules insertion type.
Enumerator
Definition at line 5907 of file rte_flow.h.
Warning
Template table hash index calculation function.
Enumerator
Definition at line 5928 of file rte_flow.h.
Warning
Asynchronous operation status.
Enumerator
Definition at line 6368 of file rte_flow.h.
Warning
Query and update operational mode.
See also
rte_flow_async_action_handle_query_update()
Enumerator
Definition at line 6593 of file rte_flow.h.
Warning
Destination field type for the hash calculation, when encap action is used. The encap field implies the size, meaning XXX_SRC_PORT hash len is 2 bytes, while XXX_NVGRE_FLOW_ID hash len is 1 byte.
See also
Enumerator
Definition at line 6990 of file rte_flow.h.
Warning
Dump hardware internal representation information of rte flow to file.
Parameters
Returns
Check if mbuf dynamic field for metadata is registered.
Returns
Definition at line 4596 of file rte_flow.h.
Register mbuf dynamic field and flag for metadata.
This function must be called prior to use SET_META action in order to register the dynamic mbuf field. Otherwise, the data cannot be delivered to application.
Returns
Check whether a flow rule can be created on a given port.
The flow rule is validated for correctness and whether it could be accepted by the device given sufficient resources. The rule is checked against the current device mode and queue configuration. The flow rule may also optionally be validated against existing flow rules and device resources. This function has no effect on the target device.
The returned value is guaranteed to remain valid only as long as no successful calls to rte_flow_create() or rte_flow_destroy() are made in the meantime and no device parameter affecting flow rules in any way are modified, due to possible collisions or resource limitations (although in such cases EINVAL should not be returned).
Parameters
Returns
-ENOSYS: underlying device does not support this functionality.
-EIO: underlying device is removed.
-EINVAL: unknown or invalid rule specification.
-ENOTSUP: valid but unsupported rule specification (e.g. partial bit-masks are unsupported).
-EEXIST: collision with an existing rule. Only returned if device supports flow rule collision checking and there was a flow rule collision. Not receiving this return code is no guarantee that creating the rule will not fail due to a collision.
-ENOMEM: not enough memory to execute the function, or if the device supports resource validation, resource limitation on the device.
-EBUSY: action cannot be performed due to busy device resources, may succeed if the affected queues or even the entire port are in a stopped state (see rte_eth_dev_rx_queue_stop() and rte_eth_dev_stop()).
Create a flow rule on a given port.
Parameters
Returns
Destroy a flow rule on a given port.
Failure to destroy a flow rule handle may occur when other flow rules depend on it, and destroying it would result in an inconsistent state.
This function is only guaranteed to succeed if handles are destroyed in reverse order of their creation.
Parameters
Returns
Update a flow rule with new actions on a given port.
Parameters
Returns
Destroy all flow rules associated with a port.
In the unlikely event of failure, handles are still considered destroyed and no longer valid but the port must be assumed to be in an inconsistent state.
Parameters
Returns
Query an existing flow rule.
This function allows retrieving flow-specific data such as counters. Data is gathered by special actions which must be present in the flow rule definition.
See also
Parameters
Returns
Restrict ingress traffic to the defined flow rules.
Isolated mode guarantees that all ingress traffic comes from defined flow rules only (current and future). When enabled with a bifurcated driver, non-matched packets are routed to the kernel driver interface. When disabled (the default), there may be some default rules routing traffic to the DPDK port.
Besides making ingress more deterministic, it allows PMDs to safely reuse resources otherwise assigned to handle the remaining traffic, such as global RSS configuration settings, VLAN filters, MAC address entries, legacy filter API rules and so on in order to expand the set of possible flow rule types.
Calling this function as soon as possible after device initialization, ideally before the first call to rte_eth_dev_configure(), is recommended to avoid possible failures due to conflicting settings.
Once effective, leaving isolated mode may not be possible depending on PMD implementation.
Additionally, the following functionality has no effect on the underlying port and may return errors such as ENOTSUP ('not supported'):
Parameters
Returns
Initialize flow error structure.
Parameters
Returns
Deprecated
This interface is kept for compatibility with older applications but is implemented as a wrapper to rte_flow_conv(). It is deprecated due to its lack of flexibility and reliance on a type unusable with C++ programs (struct rte_flow_desc).
Parameters
Returns
Flow object conversion helper.
This function performs conversion of various flow API objects to a pre-allocated destination buffer. See enum rte_flow_conv_op for possible operations and details about each of them.
Since destination buffer must be large enough, it works in a manner reminiscent of snprintf():
Parameters
Returns
See also
Get aged-out flows of a given port.
RTE_ETH_EVENT_FLOW_AGED event will be triggered when at least one new aged out flow was detected after the last call to rte_flow_get_aged_flows. This function can be called to get the aged flows asynchronously from the event callback or synchronously regardless the event. This is not safe to call rte_flow_get_aged_flows function with other flow functions from multiple threads simultaneously.
Parameters
Returns
See also
RTE_ETH_EVENT_FLOW_AGED
Warning
Get aged-out flows of a given port on the given flow queue.
If application configure port attribute with RTE_FLOW_PORT_FLAG_STRICT_QUEUE, there is no RTE_ETH_EVENT_FLOW_AGED event and this function must be called to get the aged flows synchronously.
If application configure port attribute without RTE_FLOW_PORT_FLAG_STRICT_QUEUE, RTE_ETH_EVENT_FLOW_AGED event will be triggered at least one new aged out flow was detected on any flow queue after the last call to rte_flow_get_q_aged_flows. In addition, the queue_id will be ignored. This function can be called to get the aged flows asynchronously from the event callback or synchronously regardless the event.
Parameters
Returns
See also
RTE_ETH_EVENT_FLOW_AGED
rte_flow_port_flag
Warning
Create an indirect action object that can be used in flow rules via its handle. The created object handle has single state and configuration across all the flow rules using it.
Parameters
Returns
Warning
Destroy indirect action by handle.
Parameters
Returns
Warning
Update in-place the action configuration and / or state pointed by action handle with the configuration provided as update argument. The update of the action configuration effects all flow rules reusing the action via handle. The update general pointer provides the ability of partial updating.
Parameters
Returns
Warning
Query the direct action by corresponding indirect action object handle.
Retrieve action-specific data such as counters. Data is gathered by special action which may be present/referenced in more than one flow rule definition.
See also
Parameters
Returns
Allocate an array of actions to be used in rte_flow_create, to implement tunnel-decap-set for the given tunnel. Sample usage: actions vxlan_decap / tunnel-decap-set(tunnel properties) / jump group 0 / end
Parameters
Returns
Allocate an array of items to be used in rte_flow_create, to implement tunnel-match for the given tunnel. Sample usage: pattern tunnel-match(tunnel properties) / outer-header-matches / inner-header-matches / end
Parameters
Returns
On reception of a mbuf from HW, a call to rte_flow_get_restore_info() may be required to retrieve some metadata. This function returns the associated mbuf ol_flags.
Note: the dynamic flag is registered during a call to rte_eth_rx_metadata_negotiate() with RTE_ETH_RX_METADATA_TUNNEL_ID.
Returns
If a mbuf contains the rte_flow_restore_info_dynflag() flag in ol_flags, populate the current packet processing state.
One should negotiate tunnel metadata delivery from the NIC to the HW.
See also
RTE_ETH_RX_METADATA_TUNNEL_ID
Parameters
Returns
Release the action array as allocated by rte_flow_tunnel_decap_set.
Parameters
Returns
Release the item array as allocated by rte_flow_tunnel_match.
Parameters
Returns
Get a proxy port to manage 'transfer' flows.
Managing 'transfer' flows requires that the user communicate them via a port which has the privilege to control the embedded switch. For some vendors, all ports in a given switching domain have this privilege. For other vendors, it's only one port.
This API indicates such a privileged port (a 'proxy') for a given port in the same switching domain.
Note
Parameters
Returns
Warning
Create the flex item with specified configuration over the Ethernet device.
Parameters
Returns
Release the flex item on the specified Ethernet device.
Parameters
Returns
Warning
Get information about flow engine resources.
Parameters
Returns
Warning
Configure the port's flow API engine.
This API can only be invoked before the application starts using the rest of the flow library functions.
The API can be invoked multiple times to change the settings. The port, however, may reject changes and keep the old config.
Parameters in configuration attributes must not exceed numbers of resources returned by the rte_flow_info_get API.
Parameters
Returns
Warning
Create flow pattern template.
The pattern template defines common matching fields without values. For example, matching on 5 tuple TCP flow, the template will be eth(null) + IPv4(source + dest) + TCP(s_port + d_port), while values for each rule will be set during the flow rule creation. The number and order of items in the template must be the same at the rule creation.
Parameters
Returns
Warning
Destroy flow pattern template.
This function may be called only when there are no more tables referencing this template.
Parameters
Returns
Warning
Create flow actions template.
The actions template holds a list of action types without values. For example, the template to change TCP ports is TCP(s_port + d_port), while values for each rule will be set during the flow rule creation. The number and order of actions in the template must be the same at the rule creation.
Parameters
Returns
Warning
Destroy flow actions template.
This function may be called only when there are no more tables referencing this template.
Parameters
Returns
Warning
Query whether a table can be resized.
Parameters
Returns
Warning
Create flow template table.
A template table consists of multiple pattern templates and actions templates associated with a single set of rule attributes (group ID, priority and traffic direction).
Each rule is free to use any combination of pattern and actions templates and specify particular values for items and actions it would like to change.
Parameters
Returns
Warning
Destroy flow template table.
This function may be called only when there are no more flow rules referencing this table.
Parameters
Returns
Warning
Set group miss actions.
Parameters
Returns
Warning
Enqueue rule creation operation.
Parameters
Returns
Warning
Enqueue rule creation operation.
Parameters
Returns
Warning
Enqueue rule creation by index with pattern operation. Packets are only matched if there is a rule inserted at the index.
Parameters
Returns
Warning
Enqueue rule destruction operation.
This function enqueues a destruction operation on the queue. Application should assume that after calling this function the rule handle is not valid anymore. Completion indicates the full removal of the rule from the HW.
Parameters
Returns
Warning
Enqueue rule update operation.
Parameters
Returns
Warning
Push all internally stored rules to the HW. Postponed rules are rules that were inserted with the postpone flag set. Can be used to notify the HW about batch of rules prepared by the SW to reduce the number of communications between the HW and SW.
Parameters
Returns
Warning
Pull a rte flow operation. The application must invoke this function in order to complete the flow rule offloading and to retrieve the flow rule operation status.
Parameters
Returns
Warning
Enqueue indirect action creation operation.
See also
Parameters
Returns
Warning
Enqueue indirect action destruction operation. The destroy queue must be the same as the queue on which the action was created.
Parameters
Returns
Warning
Enqueue indirect action update operation.
See also
Parameters
Returns
Warning
Enqueue indirect action query operation.
Retrieve action-specific data such as counters. Data is gathered by special action which may be present/referenced in more than one flow rule definition. Data will be available only when completion event returns.
See also
Parameters
Returns
Warning
Query and/or update indirect flow action. If both query and update not NULL, the function atomically queries and updates indirect action. Query and update are carried in order specified in the mode parameter. If ether query or update is NULL, the function executes complementing operation.
Parameters
Returns
Warning
Enqueue async indirect flow action query and/or update
Parameters
Returns
Warning
Create an indirect flow action object from flow actions list. The object is identified by a unique handle. The handle has single state and configuration across all the flow rules using it.
Parameters
Returns
Warning
Async function call to create an indirect flow action object from flow actions list. The object is identified by a unique handle. The handle has single state and configuration across all the flow rules using it.
Parameters
Returns
Warning
Destroy indirect actions list by handle.
Parameters
Returns
Warning
Enqueue indirect action list destruction operation. The destroy queue must be the same as the queue on which the action was created.
Parameters
Returns
Warning
Query and/or update indirect flow actions list. If both query and update not NULL, the function atomically queries and updates indirect action. Query and update are carried in order specified in the mode parameter. If ether query or update is NULL, the function executes complementing operation.
Parameters
Returns
Warning
Enqueue async indirect flow actions list query and/or update If both query and update not NULL, the function atomically queries and updates indirect action. Query and update are carried in order specified in the mode parameter. If ether query or update is NULL, the function executes complementing operation.
Parameters
Returns
Warning
Calculate the hash for a given pattern in a given table as calculated by the HW.
Parameters
Returns
Warning
Simulate HW hash calculation that is done when an encap action is being used. This hash can be stored in tunnel outer header to improve packet distribution.
Parameters
Returns
Warning
Update template table for new flow rules capacity.
Parameters
Returns
Warning
Update rule for the new table configuration after table resize. Must be called for each rule created before table resize. If called for rule created after table resize returns success.
Parameters
Returns
Warning
Resume normal operational mode after table was resized and table rules were updated for the new table configuration.
Parameters
Returns
Initial value:.PP
= {
.state = (enum rte_flow_quota_state)0xff
}
Default mask for RTE_FLOW_ITEM_TYPE_QUOTA
Definition at line 755 of file rte_flow.h.
Initial value:.PP
= {
.hdr = {
.ppt1 = {
.classification = RTE_BE16(UINT16_MAX),
.vid = RTE_BE16(0xfff),
},
},
}
Default mask for RTE_FLOW_ITEM_TYPE_HIGIG2.
Definition at line 771 of file rte_flow.h.
Initial value:.PP
= {
.num = 0x00000000,
}
Default mask for RTE_FLOW_ITEM_TYPE_ANY.
Definition at line 798 of file rte_flow.h.
Initial value:.PP
= {
.id = 0xffffffff,
}
Default mask for RTE_FLOW_ITEM_TYPE_PORT_ID.
Definition at line 823 of file rte_flow.h.
Initial value:.PP
= {
.relative = 1,
.search = 1,
.reserved = 0x3fffffff,
.offset = 0xffffffff,
.limit = 0xffff,
.length = 0xffff,
.pattern = NULL,
}
Default mask for RTE_FLOW_ITEM_TYPE_RAW.
Definition at line 858 of file rte_flow.h.
Initial value:.PP
= {
.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
.hdr.src_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
.hdr.ether_type = RTE_BE16(0x0000),
}
Default mask for RTE_FLOW_ITEM_TYPE_ETH.
Definition at line 905 of file rte_flow.h.
Initial value:.PP
= {
.hdr.vlan_tci = RTE_BE16(0x0fff),
.hdr.eth_proto = RTE_BE16(0x0000),
}
Default mask for RTE_FLOW_ITEM_TYPE_VLAN.
Definition at line 946 of file rte_flow.h.
Initial value:.PP
= {
.hdr = {
.src_addr = RTE_BE32(0xffffffff),
.dst_addr = RTE_BE32(0xffffffff),
},
}
Default mask for RTE_FLOW_ITEM_TYPE_IPV4.
Definition at line 965 of file rte_flow.h.
Initial value:.PP
= {
.hdr = {
.src_addr = RTE_IPV6_MASK_FULL,
.dst_addr = RTE_IPV6_MASK_FULL,
},
}
Default mask for RTE_FLOW_ITEM_TYPE_IPV6.
Definition at line 1006 of file rte_flow.h.
Initial value:.PP
= {
.hdr = {
.icmp_type = 0xff,
.icmp_code = 0xff,
},
}
Default mask for RTE_FLOW_ITEM_TYPE_ICMP.
Definition at line 1037 of file rte_flow.h.
Initial value:.PP
= {
.hdr = {
.src_port = RTE_BE16(0xffff),
.dst_port = RTE_BE16(0xffff),
},
}
Default mask for RTE_FLOW_ITEM_TYPE_UDP.
Definition at line 1056 of file rte_flow.h.
Initial value:.PP
= {
.hdr = {
.src_port = RTE_BE16(0xffff),
.dst_port = RTE_BE16(0xffff),
},
}
Default mask for RTE_FLOW_ITEM_TYPE_TCP.
Definition at line 1075 of file rte_flow.h.
Initial value:.PP
= {
.hdr = {
.src_port = RTE_BE16(0xffff),
.dst_port = RTE_BE16(0xffff),
},
}
Default mask for RTE_FLOW_ITEM_TYPE_SCTP.
Definition at line 1094 of file rte_flow.h.
Initial value:.PP
= {
.hdr.vni = { 0xff, 0xff, 0xff },
}
Default mask for RTE_FLOW_ITEM_TYPE_VXLAN.
Definition at line 1130 of file rte_flow.h.
Initial value:.PP
= {
.rsvd_grp_ecid_b = RTE_BE16(0x3fff),
}
Default mask for RTE_FLOW_ITEM_TYPE_E_TAG.
Definition at line 1158 of file rte_flow.h.
Initial value:.PP
= {
.tni = { 0xff, 0xff, 0xff },
}
Default mask for RTE_FLOW_ITEM_TYPE_NVGRE.
Definition at line 1183 of file rte_flow.h.
Initial value:.PP
= {
.label_tc_s = { 0xff, 0xff, 0xf0 },
}
Default mask for RTE_FLOW_ITEM_TYPE_MPLS.
Definition at line 1203 of file rte_flow.h.
Initial value:.PP
= {
.protocol = RTE_BE16(0xffff),
}
Default mask for RTE_FLOW_ITEM_TYPE_GRE.
Definition at line 1224 of file rte_flow.h.
Initial value:.PP
= {
.thresh = 0xffffffff,
}
Default mask for RTE_FLOW_ITEM_TYPE_FUZZY.
Definition at line 1272 of file rte_flow.h.
Initial value:.PP
= {
.hdr.teid = RTE_BE32(UINT32_MAX),
}
Default mask for RTE_FLOW_ITEM_TYPE_GTP.
Definition at line 1306 of file rte_flow.h.
Initial value:.PP
= {
.hdr = {
.spi = RTE_BE32(0xffffffff),
},
}
Default mask for RTE_FLOW_ITEM_TYPE_ESP.
Definition at line 1322 of file rte_flow.h.
Initial value:.PP
= {
.vni = { 0xff, 0xff, 0xff },
}
Default mask for RTE_FLOW_ITEM_TYPE_GENEVE.
Definition at line 1347 of file rte_flow.h.
Initial value:.PP
= {
.hdr.vni = { 0xff, 0xff, 0xff },
}
Deprecated
See also
Default mask for RTE_FLOW_ITEM_TYPE_VXLAN_GPE.
Definition at line 1384 of file rte_flow.h.
Initial value:.PP
= {
.hdr.arp_data.arp_sha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
.hdr.arp_data.arp_sip = RTE_BE32(UINT32_MAX),
.hdr.arp_data.arp_tha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
.hdr.arp_data.arp_tip = RTE_BE32(UINT32_MAX),
}
Default mask for RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4.
Definition at line 1418 of file rte_flow.h.
Initial value:.PP
= {
.next_hdr = 0xff,
}
Default mask for RTE_FLOW_ITEM_TYPE_IPV6_EXT.
Definition at line 1443 of file rte_flow.h.
Initial value:.PP
= {
.type = 0xff,
.code = 0xff,
}
Default mask for RTE_FLOW_ITEM_TYPE_ICMP6.
Definition at line 1475 of file rte_flow.h.
Initial value:.PP
= {
.target_addr = RTE_IPV6_MASK_FULL,
}
Default mask for RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS.
Definition at line 1507 of file rte_flow.h.
Initial value:.PP
= {
.target_addr = RTE_IPV6_MASK_FULL,
}
Default mask for RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA.
Definition at line 1532 of file rte_flow.h.
Initial value:.PP
= {
.type = 0xff,
}
Default mask for RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT.
Definition at line 1556 of file rte_flow.h.
Initial value:.PP
= {
.sla.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
}
Default mask for RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH.
Definition at line 1581 of file rte_flow.h.
Initial value:.PP
= {
.tla.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
}
Default mask for RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH.
Definition at line 1606 of file rte_flow.h.
Initial value:.PP
= {
.data = UINT32_MAX,
}
Default mask for RTE_FLOW_ITEM_TYPE_META.
Definition at line 1628 of file rte_flow.h.
Initial value:.PP
= {
.hdr.qfi = 0x3f,
}
Default mask for RTE_FLOW_ITEM_TYPE_GTP_PSC.
Definition at line 1645 of file rte_flow.h.
Initial value:.PP
= {
.proto_id = RTE_BE16(0xffff),
}
Default mask for RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID.
Definition at line 1684 of file rte_flow.h.
Initial value:.PP
= {
.data = 0xffffffff,
.index = 0xff,
}
Default mask for RTE_FLOW_ITEM_TYPE_TAG.
Definition at line 1704 of file rte_flow.h.
Initial value:.PP
= {
.session_id = RTE_BE32(UINT32_MAX),
}
Default mask for RTE_FLOW_ITEM_TYPE_L2TPV3OIP.
Definition at line 1721 of file rte_flow.h.
Initial value:.PP
= {
.id = 0xffffffff,
}
Default mask for RTE_FLOW_ITEM_TYPE_MARK.
Definition at line 1751 of file rte_flow.h.
Initial value:.PP
= {
.mdtype = 0xf,
.next_proto = 0xff,
.spi = 0xffffff,
.sindex = 0xff,
}
Default mask for RTE_FLOW_ITEM_TYPE_NSH.
Definition at line 1779 of file rte_flow.h.
Initial value:.PP
= {
.group_addr = 0xffffffff,
}
Default mask for RTE_FLOW_ITEM_TYPE_IGMP.
Definition at line 1804 of file rte_flow.h.
Initial value:.PP
= {
.spi = 0xffffffff,
}
Default mask for RTE_FLOW_ITEM_TYPE_AH.
Definition at line 1827 of file rte_flow.h.
Initial value:.PP
= {
.s_field = 0x01,
.seid = RTE_BE64(UINT64_C(0xffffffffffffffff)),
}
Default mask for RTE_FLOW_ITEM_TYPE_PFCP.
Definition at line 1849 of file rte_flow.h.
Initial value:.PP
= {
.hdr = {
.common = {
.u32 = 0x0,
},
},
}
Default mask for RTE_FLOW_ITEM_TYPE_ECPRI.
Definition at line 1869 of file rte_flow.h.
Initial value:.PP
= {
.option_type = 0xff,
}
Default mask for RTE_FLOW_ITEM_TYPE_GENEVE_OPT.
Definition at line 1893 of file rte_flow.h.
Initial value:.PP
= {
.flags = 0xffffffff,
}
Default mask for RTE_FLOW_ITEM_TYPE_CONNTRACK.
Definition at line 1984 of file rte_flow.h.
Initial value:.PP
= {
.port_id = 0xffff,
}
Default mask for items based on struct rte_flow_item_ethdev
Definition at line 2000 of file rte_flow.h.
Initial value:.PP
= {
.hdr = {
.common = {
.flags_version = RTE_BE16(0xcb0f),
},
},
}
Default mask for RTE_FLOW_ITEM_TYPE_L2TPV2.
Definition at line 2019 of file rte_flow.h.
Initial value:.PP
= {
.hdr = {
.addr = 0xff,
.ctrl = 0xff,
.proto_id = RTE_BE16(0xffff),
}
}
Default mask for RTE_FLOW_ITEM_TYPE_PPP.
Definition at line 2047 of file rte_flow.h.
Initial value:.PP
= {
.hdr = {
.opcode = 0xff,
.dst_qp = { 0xff, 0xff, 0xff },
},
}
Default mask for RTE_FLOW_ITEM_TYPE_IB_BTH.
Definition at line 2067 of file rte_flow.h.
Initial value:.PP
= {
.value = UINT32_MAX,
}
Default mask for RTE_FLOW_ITEM_TYPE_RANDOM.
Definition at line 2089 of file rte_flow.h.
Initial value:.PP
= {
.color = RTE_COLORS,
}
Default mask for RTE_FLOW_ITEM_TYPE_METER_COLOR.
Definition at line 2316 of file rte_flow.h.
Initial value:.PP
= {
.affinity = 0xff,
}
Default mask for RTE_FLOW_ITEM_TYPE_AGGR_AFFINITY.
Definition at line 2342 of file rte_flow.h.
Initial value:.PP
= {
.tx_queue = 0xffff,
}
Default mask for RTE_FLOW_ITEM_TX_QUEUE.
Definition at line 2361 of file rte_flow.h.
Initial value:.PP
= {
.packet_type = 0xffffffff,
}
Default mask for RTE_FLOW_ITEM_TYPE_PTYPE.
Definition at line 2378 of file rte_flow.h.
Generated automatically by Doxygen for DPDK from the source code.
| Version 24.11.3 | DPDK |