| rte_table_action.h(3) | Library Functions Manual | rte_table_action.h(3) |
rte_table_action.h
#include <stdint.h>
#include <rte_compat.h>
#include <rte_ether.h>
#include <rte_ip6.h>
#include <rte_meter.h>
#include <rte_table_hash.h>
#include 'rte_pipeline.h'
struct rte_table_action_common_config
struct rte_table_action_fwd_params
struct rte_table_action_lb_config
struct rte_table_action_lb_params
struct rte_table_action_dscp_table_entry
struct rte_table_action_dscp_table
struct rte_table_action_meter_profile
struct rte_table_action_mtr_tc_params
struct rte_table_action_mtr_counters_tc
struct rte_table_action_mtr_config
struct rte_table_action_mtr_params
struct rte_table_action_mtr_counters
struct rte_table_action_tm_config
struct rte_table_action_tm_params
struct rte_table_action_ether_hdr
struct rte_table_action_vlan_hdr
struct rte_table_action_mpls_hdr
struct rte_table_action_pppoe_hdr
struct rte_table_action_ipv4_header
struct rte_table_action_ipv6_header
struct rte_table_action_udp_header
struct rte_table_action_vxlan_hdr
struct rte_table_action_encap_ether_params
struct rte_table_action_encap_vlan_params
struct rte_table_action_encap_qinq_params
struct rte_table_action_encap_mpls_params
struct rte_table_action_encap_pppoe_params
struct rte_table_action_encap_vxlan_params
struct rte_table_action_encap_config
struct rte_table_encap_ether_qinq_pppoe
struct rte_table_action_encap_params
struct rte_table_action_nat_config
struct rte_table_action_nat_params
struct rte_table_action_ttl_config
struct rte_table_action_ttl_params
struct rte_table_action_ttl_counters
struct rte_table_action_stats_config
struct rte_table_action_stats_params
struct rte_table_action_stats_counters
struct rte_table_action_time_params
struct rte_table_action_vlo
struct rte_table_action_sym_crypto_config
struct rte_table_action_sym_crypto_params
struct rte_table_action_tag_params
struct rte_table_action_decap_params
#define RTE_TABLE_ACTION_LB_KEY_SIZE_MIN 8
#define RTE_TABLE_ACTION_LB_KEY_SIZE_MAX 64
#define RTE_TABLE_ACTION_LB_TABLE_SIZE 8
#define RTE_TABLE_ACTION_TC_MAX 16
#define RTE_TABLE_ACTION_TC_QUEUE_MAX 16
#define RTE_TABLE_ACTION_MPLS_LABELS_MAX 4
#define RTE_TABLE_ACTION_SYM_CRYPTO_IV_SIZE_MAX (16)
enum rte_table_action_type { RTE_TABLE_ACTION_FWD =
0, RTE_TABLE_ACTION_LB, RTE_TABLE_ACTION_MTR,
RTE_TABLE_ACTION_TM, RTE_TABLE_ACTION_ENCAP,
RTE_TABLE_ACTION_NAT, RTE_TABLE_ACTION_TTL,
RTE_TABLE_ACTION_STATS, RTE_TABLE_ACTION_TIME,
RTE_TABLE_ACTION_SYM_CRYPTO, RTE_TABLE_ACTION_TAG,
RTE_TABLE_ACTION_DECAP }
enum rte_table_action_meter_algorithm {
RTE_TABLE_ACTION_METER_SRTCM, RTE_TABLE_ACTION_METER_TRTCM }
enum rte_table_action_policer {
RTE_TABLE_ACTION_POLICER_COLOR_GREEN = 0,
RTE_TABLE_ACTION_POLICER_COLOR_YELLOW,
RTE_TABLE_ACTION_POLICER_COLOR_RED,
RTE_TABLE_ACTION_POLICER_DROP, RTE_TABLE_ACTION_POLICER_MAX }
enum rte_table_action_encap_type { RTE_TABLE_ACTION_ENCAP_ETHER
= 0, RTE_TABLE_ACTION_ENCAP_VLAN, RTE_TABLE_ACTION_ENCAP_QINQ,
RTE_TABLE_ACTION_ENCAP_MPLS, RTE_TABLE_ACTION_ENCAP_PPPOE,
RTE_TABLE_ACTION_ENCAP_VXLAN,
RTE_TABLE_ACTION_ENCAP_QINQ_PPPOE }
__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_profile_free (struct
rte_table_action_profile *profile)
__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_profile_freeze (struct
rte_table_action_profile *profile)
__rte_experimental struct rte_table_action * rte_table_action_create
(struct rte_table_action_profile *profile, uint32_t socket_id)
__rte_experimental int rte_table_action_free (struct rte_table_action
*action)
__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_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_profile_add (struct
rte_table_action *action, uint32_t meter_profile_id, struct
rte_table_action_meter_profile *profile)
__rte_experimental int rte_table_action_meter_profile_delete (struct
rte_table_action *action, uint32_t meter_profile_id)
__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)
__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 int rte_table_action_time_read (struct
rte_table_action *action, void *data, uint64_t *timestamp)
__rte_experimental struct rte_cryptodev_sym_session *
rte_table_action_crypto_sym_session_get (struct rte_table_action
*action, void *data)
RTE Pipeline Table Actions
This API provides a common set of actions for pipeline tables to speed up application development.
Each match-action rule added to a pipeline table has associated data that stores the action context. This data is input to the table action handler called for every input packet that hits the rule as part of the table lookup during the pipeline execution. The pipeline library allows the user to define his own table actions by providing customized table action handlers (table lookup) and complete freedom of setting the rules and their data (table rule add/delete). While the user can still follow this process, this API is intended to provide a quicker development alternative for a set of predefined actions.
The typical steps to use this API are:
Warning
Definition in file rte_table_action.h.
RTE_TABLE_ACTION_LB Load balance key size min (number of bytes).
Definition at line 137 of file rte_table_action.h.
Load balance key size max (number of bytes).
Definition at line 140 of file rte_table_action.h.
Load balance table size.
Definition at line 143 of file rte_table_action.h.
RTE_TABLE_ACTION_MTR Max number of traffic classes (TCs).
Definition at line 185 of file rte_table_action.h.
Max number of queues per traffic class.
Definition at line 188 of file rte_table_action.h.
Max number of MPLS labels per output packet for MPLS encapsulation.
Definition at line 461 of file rte_table_action.h.
RTE_TABLE_ACTION_CRYPTO
Definition at line 709 of file rte_table_action.h.
Table actions.
Enumerator
Definition at line 70 of file rte_table_action.h.
Supported traffic metering algorithms.
Enumerator
Definition at line 216 of file rte_table_action.h.
Policer actions.
Enumerator
Definition at line 239 of file rte_table_action.h.
RTE_TABLE_ACTION_ENCAP Supported packet encapsulation types.
Enumerator
Definition at line 363 of file rte_table_action.h.
Table action profile create.
Parameters
Returns
Table action profile free.
Parameters
Returns
Table action profile action register.
Parameters
Returns
Table action profile freeze.
Once this function is called successfully, the given profile enters the frozen state with the following immediate effects: no more actions can be registered for this profile, so the profile can be instantiated to create table action objects.
Parameters
Returns
See also
Table action create.
Instantiates the given table action profile to create a table action object.
Parameters
Returns
See also
Table action free.
Parameters
Returns
Table action table params get.
Parameters
Returns
Table action apply.
Parameters
Returns
Table action DSCP table update.
Parameters
Returns
Table action meter profile add.
Parameters
Returns
Table action meter profile delete.
Parameters
Returns
Table action meter read.
Parameters
Returns
Table action TTL read.
Parameters
Returns
Table action stats read.
Parameters
Returns
Table action timestamp read.
Parameters
Returns
Table action cryptodev symmetric session get.
Parameters
Returns
Generated automatically by Doxygen for DPDK from the source code.
| Version 24.11.3 | DPDK |