Go to the documentation of this file.
30 #include <rte_higig.h>
530 .classification = 0xffff,
678 .reserved = 0x3fffffff,
679 .offset = 0xffffffff,
707 .src.addr_bytes =
"\xff\xff\xff\xff\xff\xff",
708 .type = RTE_BE16(0x0000),
729 .
tci = RTE_BE16(0x0fff),
730 .inner_type = RTE_BE16(0x0000),
750 .dst_addr = RTE_BE32(0xffffffff),
772 "\xff\xff\xff\xff\xff\xff\xff\xff"
773 "\xff\xff\xff\xff\xff\xff\xff\xff",
775 "\xff\xff\xff\xff\xff\xff\xff\xff"
776 "\xff\xff\xff\xff\xff\xff\xff\xff",
814 .dst_port = RTE_BE16(0xffff),
833 .dst_port = RTE_BE16(0xffff),
852 .dst_port = RTE_BE16(0xffff),
872 .
vni =
"\xff\xff\xff",
925 .
tni =
"\xff\xff\xff",
1019 .
teid = RTE_BE32(0xffffffff),
1036 .
spi = RTE_BE32(0xffffffff),
1060 .
vni =
"\xff\xff\xff",
1080 .
vni =
"\xff\xff\xff",
1106 .spa = RTE_BE32(0xffffffff),
1107 .tha.addr_bytes =
"\xff\xff\xff\xff\xff\xff",
1108 .tpa = RTE_BE32(0xffffffff),
1171 "\xff\xff\xff\xff\xff\xff\xff\xff"
1172 "\xff\xff\xff\xff\xff\xff\xff\xff",
1198 "\xff\xff\xff\xff\xff\xff\xff\xff"
1199 "\xff\xff\xff\xff\xff\xff\xff\xff",
1417 uint32_t reserved:1;
1420 uint32_t reserved1:4;
1422 uint32_t next_proto:8;
1448 uint32_t max_resp_time:8;
1449 uint32_t checksum:16;
1450 uint32_t group_addr;
1456 .group_addr = 0xffffffff,
1470 uint32_t next_hdr:8;
1471 uint32_t payload_len:8;
1472 uint32_t reserved:16;
2098 RTE_ETH_HASH_FUNCTION_DEFAULT = 0,
2107 RTE_ETH_HASH_FUNCTION_MAX,
2458 uint8_t ipv6_addr[16];
2534 extern int rte_flow_dynf_metadata_offs;
2537 extern uint64_t rte_flow_dynf_metadata_mask;
2540 #define RTE_FLOW_DYNF_METADATA(m) \
2541 RTE_MBUF_DYNFIELD((m), rte_flow_dynf_metadata_offs, uint32_t *)
2544 #define PKT_RX_DYNF_METADATA (rte_flow_dynf_metadata_mask)
2545 #define PKT_TX_DYNF_METADATA (rte_flow_dynf_metadata_mask)
2548 static inline uint32_t
2549 rte_flow_dynf_metadata_get(
struct rte_mbuf *m)
2551 return *RTE_FLOW_DYNF_METADATA(m);
2556 rte_flow_dynf_metadata_set(
struct rte_mbuf *m, uint32_t v)
2558 *RTE_FLOW_DYNF_METADATA(m) = v;
2568 struct rte_flow_action {
2803 return !!rte_flow_dynf_metadata_mask;
2876 const struct rte_flow_action actions[],
2903 const struct rte_flow_action actions[],
2928 struct rte_flow *flow,
2977 struct rte_flow *flow,
2978 const struct rte_flow_action *action,
3048 const char *message);
3093 const struct rte_flow_action *actions);
struct rte_flow_item * definition
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ
@ RTE_FLOW_ACTION_TYPE_PORT_ID
@ RTE_FLOW_ITEM_TYPE_META
@ RTE_FLOW_ERROR_TYPE_ITEM_SPEC
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
@ RTE_FLOW_ACTION_TYPE_SET_TP_DST
@ RTE_FLOW_ITEM_TYPE_SCTP
static const struct rte_flow_item_icmp rte_flow_item_icmp_mask
const struct rte_flow_action * actions_ro
@ RTE_FLOW_CONV_OP_ITEM_NAME
@ RTE_FLOW_ITEM_TYPE_IPV6_EXT
@ RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL
@ RTE_FLOW_ACTION_TYPE_OF_POP_MPLS
@ RTE_FLOW_ITEM_TYPE_FUZZY
@ RTE_FLOW_ACTION_TYPE_SET_TAG
@ RTE_FLOW_ITEM_TYPE_E_TAG
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_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)
@ RTE_FLOW_ERROR_TYPE_ATTR_GROUP
@ RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID
@ RTE_FLOW_ERROR_TYPE_ATTR_INGRESS
static const struct rte_flow_item_arp_eth_ipv4 rte_flow_item_arp_eth_ipv4_mask
@ RTE_FLOW_ACTION_TYPE_OF_POP_VLAN
@ RTE_FLOW_ERROR_TYPE_UNSPECIFIED
@ RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP
rte_be16_t rsvd_grp_ecid_b
@ RTE_FLOW_ERROR_TYPE_HANDLE
@ RTE_FLOW_ACTION_TYPE_DEC_TTL
@ RTE_FLOW_ACTION_TYPE_VXLAN_DECAP
static const struct rte_flow_item_tag rte_flow_item_tag_mask
@ RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
@ RTE_FLOW_ITEM_TYPE_ICMP
rte_be16_t ver_opt_len_o_c_rsvd0
@ RTE_FLOW_ITEM_TYPE_IGMP
@ RTE_FLOW_ACTION_TYPE_END
static const struct rte_flow_item_sctp rte_flow_item_sctp_mask
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA
static const struct rte_flow_item_vlan rte_flow_item_vlan_mask
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_flow_item * definition
struct rte_flow_item * items
@ RTE_FLOW_ERROR_TYPE_NONE
@ RTE_FLOW_ERROR_TYPE_ITEM_NUM
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS
__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)
enum rte_flow_item_type type
static const struct rte_flow_item_pppoe_proto_id rte_flow_item_pppoe_proto_id_mask
static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask
@ RTE_FLOW_ACTION_TYPE_SECURITY
@ RTE_FLOW_ACTION_TYPE_RAW_ENCAP
@ RTE_FLOW_ACTION_TYPE_SET_MAC_DST
@ RTE_FLOW_ACTION_TYPE_JUMP
enum rte_flow_error_type type
static const struct rte_flow_item_fuzzy rte_flow_item_fuzzy_mask
static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask
@ RTE_FLOW_ITEM_TYPE_MARK
@ RTE_FLOW_ITEM_TYPE_GTPU
static const struct rte_flow_item_raw rte_flow_item_raw_mask
struct rte_ether_addr dst
int rte_flow_isolate(uint16_t port_id, int set, struct rte_flow_error *error)
@ RTE_FLOW_ITEM_TYPE_IPV4
@ RTE_FLOW_CONV_OP_ACTION
@ RTE_FLOW_ITEM_TYPE_PPPOED
@ RTE_FLOW_ITEM_TYPE_GTPC
static const struct rte_flow_item_icmp6_nd_na rte_flow_item_icmp6_nd_na_mask
@ RTE_FLOW_ERROR_TYPE_ACTION_NUM
@ RTE_FLOW_ACTION_TYPE_METER
__rte_experimental int rte_flow_dynf_metadata_register(void)
@ RTE_FLOW_CONV_OP_ITEM_NAME_PTR
@ RTE_FLOW_ITEM_TYPE_ICMP6
struct rte_ether_addr tha
@ RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL
@ RTE_FLOW_ACTION_TYPE_INC_TCP_ACK
static const struct rte_flow_item_any rte_flow_item_any_mask
@ RTE_FLOW_ITEM_TYPE_GTP_PSC
@ RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT
const struct rte_flow_item * pattern_ro
static const struct rte_flow_item_igmp rte_flow_item_igmp_mask
@ RTE_FLOW_ACTION_TYPE_VF
@ RTE_FLOW_ITEM_TYPE_PORT_ID
@ RTE_FLOW_ACTION_TYPE_NVGRE_DECAP
static const struct rte_flow_item_udp rte_flow_item_udp_mask
static __rte_experimental int rte_flow_dynf_metadata_avail(void)
struct rte_ether_addr sla
@ RTE_FLOW_ACTION_TYPE_SET_META
static const struct rte_flow_item_mpls rte_flow_item_mpls_mask
static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask
@ RTE_FLOW_ITEM_TYPE_GENEVE
static const struct rte_flow_item_mark rte_flow_item_mark_mask
struct rte_flow_attr attr
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH
@ RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY
@ RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL
@ RTE_ETH_HASH_FUNCTION_SIMPLE_XOR
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)
@ RTE_FLOW_ACTION_TYPE_SET_TTL
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT
static const struct rte_flow_item_port_id rte_flow_item_port_id_mask
static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask
@ RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ
@ RTE_FLOW_ITEM_TYPE_GRE_KEY
@ RTE_FLOW_CONV_OP_ACTION_NAME_PTR
@ RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN
static const struct rte_flow_item_esp rte_flow_item_esp_mask
@ RTE_FLOW_ACTION_TYPE_COUNT
@ RTE_FLOW_ITEM_TYPE_IPV6
static const struct rte_flow_item_vf rte_flow_item_vf_mask
static const struct rte_flow_item_nsh rte_flow_item_nsh_mask
@ RTE_FLOW_ITEM_TYPE_HIGIG2
struct rte_flow_action * actions
static const struct rte_flow_item_meta rte_flow_item_meta_mask
@ RTE_FLOW_ACTION_TYPE_VOID
@ RTE_FLOW_ACTION_TYPE_RAW_DECAP
@ RTE_FLOW_ACTION_TYPE_QUEUE
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_be16_t c_k_s_rsvd0_ver
@ RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
struct rte_flow_attr * attr
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH
@ RTE_FLOW_ERROR_TYPE_ACTION_CONF
const struct rte_flow_attr * attr_ro
static const struct rte_flow_item_tcp rte_flow_item_tcp_mask
static const struct rte_flow_item_icmp6_nd_opt_sla_eth rte_flow_item_icmp6_nd_opt_sla_eth_mask
@ RTE_FLOW_CONV_OP_PATTERN
struct rte_ether_addr src
@ RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP
static const struct rte_flow_item_icmp6_nd_opt rte_flow_item_icmp6_nd_opt_mask
@ RTE_FLOW_ERROR_TYPE_ATTR_EGRESS
@ RTE_FLOW_ERROR_TYPE_ITEM_LAST
@ RTE_FLOW_ITEM_TYPE_PPPOES
@ RTE_FLOW_ITEM_TYPE_VXLAN
@ RTE_FLOW_ITEM_TYPE_MPLS
@ RTE_FLOW_ERROR_TYPE_ITEM
@ RTE_FLOW_ACTION_TYPE_DROP
int rte_flow_destroy(uint16_t port_id, struct rte_flow *flow, struct rte_flow_error *error)
@ RTE_FLOW_ACTION_TYPE_MARK
@ RTE_FLOW_ACTION_TYPE_PF
__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_higig2_hdr rte_flow_item_higig2_hdr_mask
@ RTE_FLOW_CONV_OP_ACTIONS
@ RTE_FLOW_CONV_OP_ACTION_NAME
static const struct rte_flow_item_gre rte_flow_item_gre_mask
static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask
@ RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN
@ RTE_FLOW_ACTION_TYPE_MAC_SWAP
@ RTE_FLOW_ACTION_TYPE_PHY_PORT
@ RTE_FLOW_ACTION_TYPE_FLAG
struct rte_flow_action * actions
static const struct rte_flow_item_geneve rte_flow_item_geneve_mask
@ RTE_FLOW_ERROR_TYPE_ATTR
@ RTE_FLOW_ERROR_TYPE_ITEM_MASK
#define RTE_ETHER_ADDR_LEN
@ RTE_FLOW_ITEM_TYPE_VLAN
struct rte_flow_item * pattern
static const struct rte_flow_item_ah rte_flow_item_ah_mask
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID
static const struct rte_flow_item_ipv6_ext rte_flow_item_ipv6_ext_mask
@ RTE_FLOW_ACTION_TYPE_SET_TP_SRC
@ RTE_FLOW_ITEM_TYPE_INVERT
@ RTE_FLOW_ITEM_TYPE_VOID
static const struct rte_flow_item_e_tag rte_flow_item_e_tag_mask
@ RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP
int rte_flow_flush(uint16_t port_id, struct rte_flow_error *error)
static const struct rte_flow_item_phy_port rte_flow_item_phy_port_mask
static const struct rte_flow_item_icmp6_nd_ns rte_flow_item_icmp6_nd_ns_mask
@ RTE_FLOW_ACTION_TYPE_PASSTHRU
@ RTE_FLOW_ITEM_TYPE_PHY_PORT
@ RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL
@ RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS
@ RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK
static const struct rte_flow_item_eth rte_flow_item_eth_mask
struct rte_ether_addr sha
uint8_t addr_bytes[RTE_ETHER_ADDR_LEN]
@ RTE_FLOW_ITEM_TYPE_NVGRE
@ RTE_ETH_HASH_FUNCTION_TOEPLITZ
static const struct rte_flow_item_gtp rte_flow_item_gtp_mask
static const struct rte_flow_item_icmp6_nd_opt_tla_eth rte_flow_item_icmp6_nd_opt_tla_eth_mask
@ RTE_FLOW_ERROR_TYPE_ATTR_TRANSFER
@ RTE_FLOW_ITEM_TYPE_VXLAN_GPE
rte_be16_t epcp_edei_in_ecid_b
@ RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
@ RTE_FLOW_ACTION_TYPE_RSS
struct rte_ether_addr tla
static const struct rte_flow_item_gtp_psc rte_flow_item_gtp_psc_mask
@ RTE_ETH_HASH_FUNCTION_SYMMETRIC_TOEPLITZ
@ RTE_FLOW_ERROR_TYPE_ACTION
@ RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4
static const struct rte_flow_item_icmp6 rte_flow_item_icmp6_mask