570 .classification = 0xffff,
718 .reserved = 0x3fffffff,
719 .offset = 0xffffffff,
755 .src.addr_bytes =
"\xff\xff\xff\xff\xff\xff",
756 .type = RTE_BE16(0x0000),
786 .
tci = RTE_BE16(0x0fff),
787 .inner_type = RTE_BE16(0x0000),
807 .dst_addr = RTE_BE32(0xffffffff),
848 "\xff\xff\xff\xff\xff\xff\xff\xff"
849 "\xff\xff\xff\xff\xff\xff\xff\xff",
851 "\xff\xff\xff\xff\xff\xff\xff\xff"
852 "\xff\xff\xff\xff\xff\xff\xff\xff",
890 .dst_port = RTE_BE16(0xffff),
909 .dst_port = RTE_BE16(0xffff),
928 .dst_port = RTE_BE16(0xffff),
948 .
vni =
"\xff\xff\xff",
1001 .
tni =
"\xff\xff\xff",
1095 .
teid = RTE_BE32(0xffffffff),
1112 .
spi = RTE_BE32(0xffffffff),
1136 .
vni =
"\xff\xff\xff",
1156 .
vni =
"\xff\xff\xff",
1182 .spa = RTE_BE32(0xffffffff),
1183 .tha.addr_bytes =
"\xff\xff\xff\xff\xff\xff",
1184 .tpa = RTE_BE32(0xffffffff),
1221 struct rte_ipv6_fragment_ext hdr;
1261 "\xff\xff\xff\xff\xff\xff\xff\xff"
1262 "\xff\xff\xff\xff\xff\xff\xff\xff",
1288 "\xff\xff\xff\xff\xff\xff\xff\xff"
1289 "\xff\xff\xff\xff\xff\xff\xff\xff",
1524 uint32_t reserved:1;
1527 uint32_t reserved1:4;
1529 uint32_t next_proto:8;
1555 uint32_t max_resp_time:8;
1556 uint32_t checksum:16;
1557 uint32_t group_addr;
1563 .group_addr = 0xffffffff,
1577 uint32_t next_hdr:8;
1578 uint32_t payload_len:8;
1579 uint32_t reserved:16;
1610 .seid = RTE_BE64(UINT64_C(0xffffffffffffffff)),
1644 uint8_t option_type;
1653 .option_type = 0xff,
2367 RTE_ETH_HASH_FUNCTION_DEFAULT = 0,
2376 RTE_ETH_HASH_FUNCTION_MAX,
2732 uint8_t ipv6_addr[16];
2829 struct rte_flow_shared_action;
2836 RTE_FLOW_FIELD_MAC_DST,
2837 RTE_FLOW_FIELD_MAC_SRC,
2838 RTE_FLOW_FIELD_VLAN_TYPE,
2839 RTE_FLOW_FIELD_VLAN_ID,
2840 RTE_FLOW_FIELD_MAC_TYPE,
2841 RTE_FLOW_FIELD_IPV4_DSCP,
2842 RTE_FLOW_FIELD_IPV4_TTL,
2843 RTE_FLOW_FIELD_IPV4_SRC,
2844 RTE_FLOW_FIELD_IPV4_DST,
2845 RTE_FLOW_FIELD_IPV6_DSCP,
2846 RTE_FLOW_FIELD_IPV6_HOPLIMIT,
2847 RTE_FLOW_FIELD_IPV6_SRC,
2848 RTE_FLOW_FIELD_IPV6_DST,
2849 RTE_FLOW_FIELD_TCP_PORT_SRC,
2850 RTE_FLOW_FIELD_TCP_PORT_DST,
2851 RTE_FLOW_FIELD_TCP_SEQ_NUM,
2852 RTE_FLOW_FIELD_TCP_ACK_NUM,
2853 RTE_FLOW_FIELD_TCP_FLAGS,
2854 RTE_FLOW_FIELD_UDP_PORT_SRC,
2855 RTE_FLOW_FIELD_UDP_PORT_DST,
2856 RTE_FLOW_FIELD_VXLAN_VNI,
2857 RTE_FLOW_FIELD_GENEVE_VNI,
2858 RTE_FLOW_FIELD_GTP_TEID,
2860 RTE_FLOW_FIELD_MARK,
2861 RTE_FLOW_FIELD_META,
2914 extern int32_t rte_flow_dynf_metadata_offs;
2917 extern uint64_t rte_flow_dynf_metadata_mask;
2920 #define RTE_FLOW_DYNF_METADATA(m) \
2921 RTE_MBUF_DYNFIELD((m), rte_flow_dynf_metadata_offs, uint32_t *)
2924 #define PKT_RX_DYNF_METADATA (rte_flow_dynf_metadata_mask)
2925 #define PKT_TX_DYNF_METADATA (rte_flow_dynf_metadata_mask)
2928 static inline uint32_t
2929 rte_flow_dynf_metadata_get(
struct rte_mbuf *m)
2931 return *RTE_FLOW_DYNF_METADATA(m);
2936 rte_flow_dynf_metadata_set(
struct rte_mbuf *m, uint32_t v)
2938 *RTE_FLOW_DYNF_METADATA(m) = v;
2948 struct rte_flow_action {
3226 return !!rte_flow_dynf_metadata_mask;
3299 const struct rte_flow_action actions[],
3326 const struct rte_flow_action actions[],
3351 struct rte_flow *flow,
3400 struct rte_flow *flow,
3401 const struct rte_flow_action *action,
3471 const char *message);
3516 const struct rte_flow_action *actions);
3650 struct rte_flow_shared_action *
3653 const struct rte_flow_action *action,
3681 struct rte_flow_shared_action *action,
3717 struct rte_flow_shared_action *action,
3718 const struct rte_flow_action *update,
3749 const struct rte_flow_shared_action *action,
3754 struct rte_flow_tunnel {
3769 uint8_t src_addr[16];
3770 uint8_t dst_addr[16];
3791 #define RTE_FLOW_RESTORE_INFO_TUNNEL (1ULL << 0)
3796 #define RTE_FLOW_RESTORE_INFO_ENCAPSULATED (1ULL << 1)
3801 #define RTE_FLOW_RESTORE_INFO_GROUP_ID (1ULL << 2)
3844 struct rte_flow_tunnel *tunnel,
3845 struct rte_flow_action **actions,
3846 uint32_t *num_of_actions,
3875 struct rte_flow_tunnel *tunnel,
3877 uint32_t *num_of_items,
3922 struct rte_flow_action *actions,
3923 uint32_t num_of_actions,
3946 uint32_t num_of_items,
static const struct rte_flow_item_icmp6_nd_opt_sla_eth rte_flow_item_icmp6_nd_opt_sla_eth_mask
rte_be16_t ver_opt_len_o_c_rsvd0
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_action * actions
static const struct rte_flow_item_icmp6_nd_na rte_flow_item_icmp6_nd_na_mask
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
rte_be16_t epcp_edei_in_ecid_b
static const struct rte_flow_item_pfcp rte_flow_item_pfcp_mask
struct rte_flow_attr * attr
__rte_experimental struct rte_flow_shared_action * rte_flow_shared_action_create(uint16_t port_id, const struct rte_flow_shared_action_conf *conf, const struct rte_flow_action *action, struct rte_flow_error *error)
uint32_t sec_since_last_hit
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)
struct rte_flow_item * definition
static const struct rte_flow_item_gre rte_flow_item_gre_mask
struct rte_flow_attr attr
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
#define RTE_ETHER_ADDR_LEN
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
const struct rte_flow_attr * attr_ro
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
int rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error)
static const struct rte_flow_item_any rte_flow_item_any_mask
static const struct rte_flow_item_meta rte_flow_item_meta_mask
static const struct rte_flow_item_esp rte_flow_item_esp_mask
__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_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)
struct rte_ether_addr tla
static const struct rte_flow_item_geneve_opt rte_flow_item_geneve_opt_mask
static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask
struct rte_flow_action * actions
struct rte_ether_addr tha
static const struct rte_flow_item_mark rte_flow_item_mark_mask
static const struct rte_flow_item_icmp6_nd_opt rte_flow_item_icmp6_nd_opt_mask
static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
static const struct rte_flow_item_port_id rte_flow_item_port_id_mask
static const struct rte_flow_item_higig2_hdr rte_flow_item_higig2_hdr_mask
static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask
struct rte_flow_item * pattern
enum rte_flow_error_type type
__rte_experimental int rte_flow_shared_action_destroy(uint16_t port_id, struct rte_flow_shared_action *action, struct rte_flow_error *error)
enum rte_flow_field_id field
static const struct rte_flow_item_udp rte_flow_item_udp_mask
__rte_experimental int rte_flow_shared_action_update(uint16_t port_id, struct rte_flow_shared_action *action, const struct rte_flow_action *update, struct rte_flow_error *error)
rte_be16_t rsvd_grp_ecid_b
static const struct rte_flow_item_raw rte_flow_item_raw_mask
int rte_flow_flush(uint16_t port_id, struct rte_flow_error *error)
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
static const struct rte_flow_item_icmp6_nd_ns rte_flow_item_icmp6_nd_ns_mask
struct rte_flow_action_modify_data src
int rte_flow_error_set(struct rte_flow_error *error, int code, enum rte_flow_error_type type, const void *cause, const char *message)
static const struct rte_flow_item_icmp6_nd_opt_tla_eth rte_flow_item_icmp6_nd_opt_tla_eth_mask
int rte_flow_destroy(uint16_t port_id, struct rte_flow *flow, struct rte_flow_error *error)
enum rte_flow_item_type type
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
rte_be16_t c_k_s_rsvd0_ver
static const struct rte_flow_item_gtp_psc rte_flow_item_gtp_psc_mask
const struct rte_flow_action * actions_ro
struct rte_flow_item * items
enum rte_flow_modify_op operation
__rte_experimental int rte_flow_get_aged_flows(uint16_t port_id, void **contexts, uint32_t nb_contexts, struct rte_flow_error *error)
struct rte_ether_addr sla
struct rte_flow_action_modify_data dst
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)
struct rte_ether_addr dst
static const struct rte_flow_item_l2tpv3oip rte_flow_item_l2tpv3oip_mask
static const struct rte_flow_item_igmp rte_flow_item_igmp_mask
__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)
static const struct rte_flow_item_arp_eth_ipv4 rte_flow_item_arp_eth_ipv4_mask
const struct rte_flow_action * actions
uint32_t sec_since_last_hit_valid
struct rte_ether_addr sha
static const struct rte_flow_item_eth rte_flow_item_eth_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)
__rte_experimental int rte_flow_dynf_metadata_register(void)
static const struct rte_flow_item_ah rte_flow_item_ah_mask
static const struct rte_flow_item_tag rte_flow_item_tag_mask
struct rte_ether_addr src
static const struct rte_flow_item_ipv6_ext rte_flow_item_ipv6_ext_mask
static const struct rte_flow_item_vf rte_flow_item_vf_mask
__rte_experimental int rte_flow_shared_action_query(uint16_t port_id, const struct rte_flow_shared_action *action, void *data, struct rte_flow_error *error)
static const struct rte_flow_item_ecpri rte_flow_item_ecpri_mask
static const struct rte_flow_item_pppoe_proto_id rte_flow_item_pppoe_proto_id_mask
__rte_experimental int rte_flow_dev_dump(uint16_t port_id, FILE *file, struct rte_flow_error *error)
struct rte_flow_item * definition
static const struct rte_flow_item_vlan rte_flow_item_vlan_mask
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
static __rte_experimental int rte_flow_dynf_metadata_avail(void)
__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)
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask
uint8_t addr_bytes[RTE_ETHER_ADDR_LEN]
__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)
struct rte_flow_tunnel tunnel
__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)
const struct rte_flow_item * pattern_ro
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
static const struct rte_flow_item_nsh rte_flow_item_nsh_mask