5#ifndef __INCLUDE_RTE_TABLE_ACTION_H__
6#define __INCLUDE_RTE_TABLE_ACTION_H__
61#include <rte_compat.h>
136#define RTE_TABLE_ACTION_LB_KEY_SIZE_MIN 8
139#define RTE_TABLE_ACTION_LB_KEY_SIZE_MAX 64
142#define RTE_TABLE_ACTION_LB_TABLE_SIZE 8
184#define RTE_TABLE_ACTION_TC_MAX 16
187#define RTE_TABLE_ACTION_TC_QUEUE_MAX 16
460#ifndef RTE_TABLE_ACTION_MPLS_LABELS_MAX
461#define RTE_TABLE_ACTION_MPLS_LABELS_MAX 4
711#ifndef RTE_TABLE_ACTION_SYM_CRYPTO_IV_SIZE_MAX
712#define RTE_TABLE_ACTION_SYM_CRYPTO_IV_SIZE_MAX (16)
715#ifndef RTE_TABLE_ACTION_SYM_CRYPTO_AAD_SIZE_MAX
716#define RTE_TABLE_ACTION_SYM_CRYPTO_AAD_SIZE_MAX (16)
719#ifndef RTE_TABLE_ACTION_SYM_CRYPTO_IV_OFFSET
720#define RTE_TABLE_ACTION_SYM_CRYPTO_IV_OFFSET \
721 (sizeof(struct rte_crypto_op) + sizeof(struct rte_crypto_sym_op))
816struct rte_table_action_profile;
827struct rte_table_action_profile *
861 void *action_config);
885struct rte_table_action;
903struct rte_table_action *
957 void *action_params);
995 uint32_t meter_profile_id,
1012 uint32_t meter_profile_id);
1119 uint64_t *timestamp);
1132struct rte_cryptodev_sym_session *
__rte_experimental int rte_table_action_table_params_get(struct rte_table_action *action, struct rte_pipeline_table_params *params)
__rte_experimental int rte_table_action_apply(struct rte_table_action *action, void *data, enum rte_table_action_type type, void *action_params)
__rte_experimental int rte_table_action_meter_profile_delete(struct rte_table_action *action, uint32_t meter_profile_id)
#define RTE_TABLE_ACTION_LB_KEY_SIZE_MAX
__rte_experimental int rte_table_action_free(struct rte_table_action *action)
__rte_experimental int rte_table_action_meter_profile_add(struct rte_table_action *action, uint32_t meter_profile_id, struct rte_table_action_meter_profile *profile)
@ RTE_TABLE_ACTION_POLICER_COLOR_RED
@ RTE_TABLE_ACTION_POLICER_COLOR_GREEN
@ RTE_TABLE_ACTION_POLICER_COLOR_YELLOW
@ RTE_TABLE_ACTION_POLICER_MAX
@ RTE_TABLE_ACTION_POLICER_DROP
__rte_experimental struct rte_table_action_profile * rte_table_action_profile_create(struct rte_table_action_common_config *common)
__rte_experimental int rte_table_action_stats_read(struct rte_table_action *action, void *data, struct rte_table_action_stats_counters *stats, int clear)
__rte_experimental struct rte_cryptodev_sym_session * rte_table_action_crypto_sym_session_get(struct rte_table_action *action, void *data)
__rte_experimental int rte_table_action_profile_action_register(struct rte_table_action_profile *profile, enum rte_table_action_type type, void *action_config)
__rte_experimental int rte_table_action_dscp_table_update(struct rte_table_action *action, uint64_t dscp_mask, struct rte_table_action_dscp_table *table)
__rte_experimental int rte_table_action_meter_read(struct rte_table_action *action, void *data, uint32_t tc_mask, struct rte_table_action_mtr_counters *stats, int clear)
__rte_experimental int rte_table_action_ttl_read(struct rte_table_action *action, void *data, struct rte_table_action_ttl_counters *stats, int clear)
#define RTE_TABLE_ACTION_MPLS_LABELS_MAX
__rte_experimental int rte_table_action_time_read(struct rte_table_action *action, void *data, uint64_t *timestamp)
rte_table_action_encap_type
@ RTE_TABLE_ACTION_ENCAP_VLAN
@ RTE_TABLE_ACTION_ENCAP_QINQ_PPPOE
@ RTE_TABLE_ACTION_ENCAP_MPLS
@ RTE_TABLE_ACTION_ENCAP_VXLAN
@ RTE_TABLE_ACTION_ENCAP_QINQ
@ RTE_TABLE_ACTION_ENCAP_PPPOE
@ RTE_TABLE_ACTION_ENCAP_ETHER
@ RTE_TABLE_ACTION_SYM_CRYPTO
__rte_experimental int rte_table_action_profile_free(struct rte_table_action_profile *profile)
#define RTE_TABLE_ACTION_TC_MAX
rte_table_action_meter_algorithm
@ RTE_TABLE_ACTION_METER_TRTCM
@ RTE_TABLE_ACTION_METER_SRTCM
__rte_experimental struct rte_table_action * rte_table_action_create(struct rte_table_action_profile *profile, uint32_t socket_id)
#define RTE_TABLE_ACTION_LB_TABLE_SIZE
__rte_experimental int rte_table_action_profile_freeze(struct rte_table_action_profile *profile)
uint64_t(* rte_table_hash_op_hash)(void *key, void *key_mask, uint32_t key_size, uint64_t seed)
struct rte_table_action_dscp_table_entry entry[64]
struct rte_table_action_encap_config::@298::@300 vxlan
struct rte_table_action_ether_hdr ether
struct rte_table_action_mpls_hdr mpls[RTE_TABLE_ACTION_MPLS_LABELS_MAX]
struct rte_table_action_ether_hdr ether
struct rte_table_action_encap_vlan_params vlan
struct rte_table_action_encap_pppoe_params pppoe
enum rte_table_action_encap_type type
struct rte_table_action_encap_vxlan_params vxlan
struct rte_table_action_encap_qinq_params qinq
struct rte_table_action_encap_mpls_params mpls
struct rte_table_encap_ether_qinq_pppoe qinq_pppoe
struct rte_table_action_encap_ether_params ether
struct rte_table_action_pppoe_hdr pppoe
struct rte_table_action_ether_hdr ether
struct rte_table_action_ether_hdr ether
struct rte_table_action_vlan_hdr svlan
struct rte_table_action_vlan_hdr cvlan
struct rte_table_action_vlan_hdr vlan
struct rte_table_action_ether_hdr ether
struct rte_table_action_udp_header udp
struct rte_table_action_vxlan_hdr vxlan
struct rte_table_action_vlan_hdr vlan
struct rte_table_action_ipv4_header ipv4
struct rte_table_action_ether_hdr ether
struct rte_table_action_ipv6_header ipv6
enum rte_pipeline_action action
rte_table_hash_op_hash f_hash
uint8_t key_mask[RTE_TABLE_ACTION_LB_KEY_SIZE_MAX]
uint32_t out[RTE_TABLE_ACTION_LB_TABLE_SIZE]
struct rte_meter_srtcm_params srtcm
struct rte_meter_trtcm_params trtcm
enum rte_table_action_meter_algorithm alg
enum rte_table_action_meter_algorithm alg
uint64_t n_bytes[RTE_COLORS]
uint64_t n_packets[RTE_COLORS]
struct rte_table_action_mtr_counters_tc stats[RTE_TABLE_ACTION_TC_MAX]
struct rte_table_action_mtr_tc_params mtr[RTE_TABLE_ACTION_TC_MAX]
uint32_t meter_profile_id
enum rte_table_action_policer policer[RTE_COLORS]
union rte_table_action_nat_params::@303 addr
struct rte_mempool * mp_create
struct rte_mempool * mp_init
struct rte_table_action_vlo aad_update
struct rte_table_action_vlo aad
struct rte_table_action_vlo cipher_iv_update
struct rte_table_action_vlo cipher_iv
struct rte_table_action_vlo iv
struct rte_table_action_vlo auth_iv_update
struct rte_crypto_sym_xform * xform
struct rte_table_action_vlo auth_iv
struct rte_table_action_vlo iv_update
uint32_t n_subports_per_port
uint32_t n_pipes_per_subport
struct rte_table_action_pppoe_hdr pppoe
struct rte_table_action_ether_hdr ether
struct rte_table_action_vlan_hdr svlan
struct rte_table_action_vlan_hdr cvlan