Scroll to navigation

rte_flow_ops(3) DPDK rte_flow_ops(3)

NAME

rte_flow_ops

SYNOPSIS

#include <rte_flow_driver.h>

Data Fields


int(* validate )(struct rte_eth_dev *, const struct rte_flow_attr *, const struct rte_flow_item [], const struct rte_flow_action [], struct rte_flow_error *)
struct rte_flow *(* create )(struct rte_eth_dev *, const struct rte_flow_attr *, const struct rte_flow_item [], const struct rte_flow_action [], struct rte_flow_error *)
int(* destroy )(struct rte_eth_dev *, struct rte_flow *, struct rte_flow_error *)
int(* flush )(struct rte_eth_dev *, struct rte_flow_error *)
int(* query )(struct rte_eth_dev *, struct rte_flow *, const struct rte_flow_action *, void *, struct rte_flow_error *)
int(* isolate )(struct rte_eth_dev *, int, struct rte_flow_error *)
int(* dev_dump )(struct rte_eth_dev *dev, struct rte_flow *flow, FILE *file, struct rte_flow_error *error)
int(* get_aged_flows )(struct rte_eth_dev *dev, void **context, uint32_t nb_contexts, struct rte_flow_error *err)
int(* get_q_aged_flows )(struct rte_eth_dev *dev, uint32_t queue_id, void **contexts, uint32_t nb_contexts, struct rte_flow_error *error)
struct rte_flow_action_handle *(* action_handle_create )(struct rte_eth_dev *dev, const struct rte_flow_indir_action_conf *conf, const struct rte_flow_action *action, struct rte_flow_error *error)
int(* action_handle_destroy )(struct rte_eth_dev *dev, struct rte_flow_action_handle *handle, struct rte_flow_error *error)
int(* action_handle_update )(struct rte_eth_dev *dev, struct rte_flow_action_handle *handle, const void *update, struct rte_flow_error *error)
int(* action_handle_query )(struct rte_eth_dev *dev, const struct rte_flow_action_handle *handle, void *data, struct rte_flow_error *error)
int(* action_handle_query_update )(struct rte_eth_dev *dev, struct rte_flow_action_handle *handle, const void *update, void *query, enum rte_flow_query_update_mode qu_mode, struct rte_flow_error *error)
struct rte_flow_action_list_handle *(* action_list_handle_create )(struct rte_eth_dev *dev, const struct rte_flow_indir_action_conf *conf, const struct rte_flow_action actions[], struct rte_flow_error *error)
int(* action_list_handle_destroy )(struct rte_eth_dev *dev, struct rte_flow_action_list_handle *handle, struct rte_flow_error *error)
int(* tunnel_decap_set )(struct rte_eth_dev *dev, struct rte_flow_tunnel *tunnel, struct rte_flow_action **pmd_actions, uint32_t *num_of_actions, struct rte_flow_error *err)
int(* tunnel_match )(struct rte_eth_dev *dev, struct rte_flow_tunnel *tunnel, struct rte_flow_item **pmd_items, uint32_t *num_of_items, struct rte_flow_error *err)
int(* get_restore_info )(struct rte_eth_dev *dev, struct rte_mbuf *m, struct rte_flow_restore_info *info, struct rte_flow_error *err)
int(* tunnel_action_decap_release )(struct rte_eth_dev *dev, struct rte_flow_action *pmd_actions, uint32_t num_of_actions, struct rte_flow_error *err)
int(* tunnel_item_release )(struct rte_eth_dev *dev, struct rte_flow_item *pmd_items, uint32_t num_of_items, struct rte_flow_error *err)
int(* pick_transfer_proxy )(struct rte_eth_dev *dev, uint16_t *proxy_port_id, struct rte_flow_error *error)
int(* info_get )(struct rte_eth_dev *dev, struct rte_flow_port_info *port_info, struct rte_flow_queue_info *queue_info, struct rte_flow_error *err)
int(* configure )(struct rte_eth_dev *dev, const struct rte_flow_port_attr *port_attr, uint16_t nb_queue, const struct rte_flow_queue_attr *queue_attr[], struct rte_flow_error *err)
struct rte_flow_pattern_template *(* pattern_template_create )(struct rte_eth_dev *dev, const struct rte_flow_pattern_template_attr *template_attr, const struct rte_flow_item pattern[], struct rte_flow_error *err)
int(* pattern_template_destroy )(struct rte_eth_dev *dev, struct rte_flow_pattern_template *pattern_template, struct rte_flow_error *err)
struct rte_flow_actions_template *(* actions_template_create )(struct rte_eth_dev *dev, 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 *err)
int(* actions_template_destroy )(struct rte_eth_dev *dev, struct rte_flow_actions_template *actions_template, struct rte_flow_error *err)
struct rte_flow_template_table *(* template_table_create )(struct rte_eth_dev *dev, 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 *err)
int(* template_table_destroy )(struct rte_eth_dev *dev, struct rte_flow_template_table *template_table, struct rte_flow_error *err)
int(* group_set_miss_actions )(struct rte_eth_dev *dev, uint32_t group_id, const struct rte_flow_group_attr *attr, const struct rte_flow_action actions[], struct rte_flow_error *err)
struct rte_flow *(* async_create )(struct rte_eth_dev *dev, 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 *err)
struct rte_flow *(* async_create_by_index )(struct rte_eth_dev *dev, 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 *err)
int(* async_destroy )(struct rte_eth_dev *dev, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow *flow, void *user_data, struct rte_flow_error *err)
int(* push )(struct rte_eth_dev *dev, uint32_t queue_id, struct rte_flow_error *err)
int(* pull )(struct rte_eth_dev *dev, uint32_t queue_id, struct rte_flow_op_result res[], uint16_t n_res, struct rte_flow_error *error)
struct rte_flow_action_handle *(* async_action_handle_create )(struct rte_eth_dev *dev, 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 *err)
int(* async_action_handle_destroy )(struct rte_eth_dev *dev, 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)
int(* async_action_handle_update )(struct rte_eth_dev *dev, 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)
int(* async_action_handle_query )(struct rte_eth_dev *dev, 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)
int(* async_action_handle_query_update )(struct rte_eth_dev *dev, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_action_handle *action_handle, const void *update, void *query, enum rte_flow_query_update_mode qu_mode, void *user_data, struct rte_flow_error *error)
int(* actions_update )(struct rte_eth_dev *dev, struct rte_flow *flow, const struct rte_flow_action actions[], struct rte_flow_error *error)
int(* async_actions_update )(struct rte_eth_dev *dev, 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)
struct rte_flow_action_list_handle *(* async_action_list_handle_create )(struct rte_eth_dev *dev, 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)
int(* async_action_list_handle_destroy )(struct rte_eth_dev *dev, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_action_list_handle *action_handle, void *user_data, struct rte_flow_error *error)
int(* action_list_handle_query_update )(struct rte_eth_dev *dev, 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)
int(* async_action_list_handle_query_update )(struct rte_eth_dev *dev, 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)
int(* flow_calc_table_hash )(struct rte_eth_dev *dev, 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)

Detailed Description

Generic flow operations structure implemented and returned by PMDs.

These callback functions are not supposed to be used by applications directly, which must rely on the API defined in rte_flow.h.

Public-facing wrapper functions perform a few consistency checks so that unimplemented (i.e. NULL) callbacks simply return -ENOTSUP. These callbacks otherwise only differ by their first argument (with port ID already resolved to a pointer to struct rte_eth_dev).

Definition at line 39 of file rte_flow_driver.h.

Field Documentation

int(* validate) (struct rte_eth_dev *, const struct rte_flow_attr *, const struct rte_flow_item [], const struct rte_flow_action [], struct rte_flow_error *)

See rte_flow_validate().

Definition at line 42 of file rte_flow_driver.h.

struct rte_flow*(* create) (struct rte_eth_dev *, const struct rte_flow_attr *, const struct rte_flow_item [], const struct rte_flow_action [], struct rte_flow_error *)

See rte_flow_create().

Definition at line 49 of file rte_flow_driver.h.

int(* destroy) (struct rte_eth_dev *, struct rte_flow *, struct rte_flow_error *)

See rte_flow_destroy().

Definition at line 56 of file rte_flow_driver.h.

int(* flush) (struct rte_eth_dev *, struct rte_flow_error *)

See rte_flow_flush().

Definition at line 61 of file rte_flow_driver.h.

int(* query) (struct rte_eth_dev *, struct rte_flow *, const struct rte_flow_action *, void *, struct rte_flow_error *)

See rte_flow_query().

Definition at line 65 of file rte_flow_driver.h.

int(* isolate) (struct rte_eth_dev *, int, struct rte_flow_error *)

See rte_flow_isolate().

Definition at line 72 of file rte_flow_driver.h.

int(* dev_dump) (struct rte_eth_dev *dev, struct rte_flow *flow, FILE *file, struct rte_flow_error *error)

See rte_flow_dev_dump().

Definition at line 77 of file rte_flow_driver.h.

int(* get_aged_flows) (struct rte_eth_dev *dev, void **context, uint32_t nb_contexts, struct rte_flow_error *err)

See rte_flow_get_aged_flows()

Definition at line 83 of file rte_flow_driver.h.

int(* get_q_aged_flows) (struct rte_eth_dev *dev, uint32_t queue_id, void **contexts, uint32_t nb_contexts, struct rte_flow_error *error)

See rte_flow_get_q_aged_flows()

Definition at line 89 of file rte_flow_driver.h.

struct rte_flow_action_handle*(* action_handle_create) (struct rte_eth_dev *dev, const struct rte_flow_indir_action_conf *conf, const struct rte_flow_action *action, struct rte_flow_error *error)

See rte_flow_action_handle_create()

Definition at line 96 of file rte_flow_driver.h.

int(* action_handle_destroy) (struct rte_eth_dev *dev, struct rte_flow_action_handle *handle, struct rte_flow_error *error)

See rte_flow_action_handle_destroy()

Definition at line 102 of file rte_flow_driver.h.

int(* action_handle_update) (struct rte_eth_dev *dev, struct rte_flow_action_handle *handle, const void *update, struct rte_flow_error *error)

See rte_flow_action_handle_update()

Definition at line 107 of file rte_flow_driver.h.

int(* action_handle_query) (struct rte_eth_dev *dev, const struct rte_flow_action_handle *handle, void *data, struct rte_flow_error *error)

See rte_flow_action_handle_query()

Definition at line 113 of file rte_flow_driver.h.

int(* action_handle_query_update) (struct rte_eth_dev *dev, struct rte_flow_action_handle *handle, const void *update, void *query, enum rte_flow_query_update_mode qu_mode, struct rte_flow_error *error)

See rte_flow_action_handle_query_update()

Definition at line 119 of file rte_flow_driver.h.

struct rte_flow_action_list_handle*(* action_list_handle_create) (struct rte_eth_dev *dev, const struct rte_flow_indir_action_conf *conf, const struct rte_flow_action actions[], struct rte_flow_error *error)

See also:

rte_flow_action_list_handle_create()

Definition at line 126 of file rte_flow_driver.h.

int(* action_list_handle_destroy) (struct rte_eth_dev *dev, struct rte_flow_action_list_handle *handle, struct rte_flow_error *error)

See also:

rte_flow_action_list_handle_destroy()

Definition at line 132 of file rte_flow_driver.h.

int(* tunnel_decap_set) (struct rte_eth_dev *dev, struct rte_flow_tunnel *tunnel, struct rte_flow_action **pmd_actions, uint32_t *num_of_actions, struct rte_flow_error *err)

See rte_flow_tunnel_decap_set()

Definition at line 137 of file rte_flow_driver.h.

int(* tunnel_match) (struct rte_eth_dev *dev, struct rte_flow_tunnel *tunnel, struct rte_flow_item **pmd_items, uint32_t *num_of_items, struct rte_flow_error *err)

See rte_flow_tunnel_match()

Definition at line 144 of file rte_flow_driver.h.

int(* get_restore_info) (struct rte_eth_dev *dev, struct rte_mbuf *m, struct rte_flow_restore_info *info, struct rte_flow_error *err)

See rte_flow_get_rte_flow_restore_info()

Definition at line 151 of file rte_flow_driver.h.

int(* tunnel_action_decap_release) (struct rte_eth_dev *dev, struct rte_flow_action *pmd_actions, uint32_t num_of_actions, struct rte_flow_error *err)

See rte_flow_action_tunnel_decap_release()

Definition at line 157 of file rte_flow_driver.h.

int(* tunnel_item_release) (struct rte_eth_dev *dev, struct rte_flow_item *pmd_items, uint32_t num_of_items, struct rte_flow_error *err)

See rte_flow_item_release()

Definition at line 163 of file rte_flow_driver.h.

int(* pick_transfer_proxy) (struct rte_eth_dev *dev, uint16_t *proxy_port_id, struct rte_flow_error *error)

See rte_flow_pick_transfer_proxy()

Definition at line 169 of file rte_flow_driver.h.

int(* info_get) (struct rte_eth_dev *dev, struct rte_flow_port_info *port_info, struct rte_flow_queue_info *queue_info, struct rte_flow_error *err)

See rte_flow_info_get()

Definition at line 182 of file rte_flow_driver.h.

int(* configure) (struct rte_eth_dev *dev, const struct rte_flow_port_attr *port_attr, uint16_t nb_queue, const struct rte_flow_queue_attr *queue_attr[], struct rte_flow_error *err)

See rte_flow_configure()

Definition at line 188 of file rte_flow_driver.h.

struct rte_flow_pattern_template*(* pattern_template_create) (struct rte_eth_dev *dev, const struct rte_flow_pattern_template_attr *template_attr, const struct rte_flow_item pattern[], struct rte_flow_error *err)

See rte_flow_pattern_template_create()

Definition at line 195 of file rte_flow_driver.h.

int(* pattern_template_destroy) (struct rte_eth_dev *dev, struct rte_flow_pattern_template *pattern_template, struct rte_flow_error *err)

See rte_flow_pattern_template_destroy()

Definition at line 201 of file rte_flow_driver.h.

struct rte_flow_actions_template*(* actions_template_create) (struct rte_eth_dev *dev, 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 *err)

See rte_flow_actions_template_create()

Definition at line 206 of file rte_flow_driver.h.

int(* actions_template_destroy) (struct rte_eth_dev *dev, struct rte_flow_actions_template *actions_template, struct rte_flow_error *err)

See rte_flow_actions_template_destroy()

Definition at line 213 of file rte_flow_driver.h.

struct rte_flow_template_table*(* template_table_create) (struct rte_eth_dev *dev, 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 *err)

See rte_flow_template_table_create()

Definition at line 218 of file rte_flow_driver.h.

int(* template_table_destroy) (struct rte_eth_dev *dev, struct rte_flow_template_table *template_table, struct rte_flow_error *err)

See rte_flow_template_table_destroy()

Definition at line 227 of file rte_flow_driver.h.

int(* group_set_miss_actions) (struct rte_eth_dev *dev, uint32_t group_id, const struct rte_flow_group_attr *attr, const struct rte_flow_action actions[], struct rte_flow_error *err)

See rte_flow_group_set_miss_actions()

Definition at line 232 of file rte_flow_driver.h.

struct rte_flow*(* async_create) (struct rte_eth_dev *dev, 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 *err)

See rte_flow_async_create()

Definition at line 239 of file rte_flow_driver.h.

struct rte_flow*(* async_create_by_index) (struct rte_eth_dev *dev, 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 *err)

See rte_flow_async_create_by_index()

Definition at line 251 of file rte_flow_driver.h.

int(* async_destroy) (struct rte_eth_dev *dev, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow *flow, void *user_data, struct rte_flow_error *err)

See rte_flow_async_destroy()

Definition at line 262 of file rte_flow_driver.h.

int(* push) (struct rte_eth_dev *dev, uint32_t queue_id, struct rte_flow_error *err)

See rte_flow_push()

Definition at line 270 of file rte_flow_driver.h.

int(* pull) (struct rte_eth_dev *dev, uint32_t queue_id, struct rte_flow_op_result res[], uint16_t n_res, struct rte_flow_error *error)

See rte_flow_pull()

Definition at line 275 of file rte_flow_driver.h.

struct rte_flow_action_handle*(* async_action_handle_create) (struct rte_eth_dev *dev, 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 *err)

See rte_flow_async_action_handle_create()

Definition at line 282 of file rte_flow_driver.h.

int(* async_action_handle_destroy) (struct rte_eth_dev *dev, 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)

See rte_flow_async_action_handle_destroy()

Definition at line 291 of file rte_flow_driver.h.

int(* async_action_handle_update) (struct rte_eth_dev *dev, 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)

See rte_flow_async_action_handle_update()

Definition at line 299 of file rte_flow_driver.h.

int(* async_action_handle_query) (struct rte_eth_dev *dev, 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)

See rte_flow_async_action_handle_query()

Definition at line 308 of file rte_flow_driver.h.

int(* async_action_handle_query_update) (struct rte_eth_dev *dev, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_action_handle *action_handle, const void *update, void *query, enum rte_flow_query_update_mode qu_mode, void *user_data, struct rte_flow_error *error)

See rte_flow_async_action_handle_query_update

Definition at line 317 of file rte_flow_driver.h.

int(* actions_update) (struct rte_eth_dev *dev, struct rte_flow *flow, const struct rte_flow_action actions[], struct rte_flow_error *error)

See rte_flow_actions_update().

Definition at line 325 of file rte_flow_driver.h.

int(* async_actions_update) (struct rte_eth_dev *dev, 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)

See rte_flow_async_actions_update()

Definition at line 331 of file rte_flow_driver.h.

struct rte_flow_action_list_handle*(* async_action_list_handle_create) (struct rte_eth_dev *dev, 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)

See also:

rte_flow_async_action_list_handle_create()

Definition at line 342 of file rte_flow_driver.h.

int(* async_action_list_handle_destroy) (struct rte_eth_dev *dev, uint32_t queue_id, const struct rte_flow_op_attr *op_attr, struct rte_flow_action_list_handle *action_handle, void *user_data, struct rte_flow_error *error)

See also:

rte_flow_async_action_list_handle_destroy()

Definition at line 349 of file rte_flow_driver.h.

int(* action_list_handle_query_update) (struct rte_eth_dev *dev, 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)

See also:

rte_flow_action_list_handle_query_update()

Definition at line 355 of file rte_flow_driver.h.

int(* async_action_list_handle_query_update) (struct rte_eth_dev *dev, 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)

See also:

rte_flow_async_action_list_handle_query_update()

Definition at line 362 of file rte_flow_driver.h.

int(* flow_calc_table_hash) (struct rte_eth_dev *dev, 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)

See also:

rte_flow_calc_table_hash()

Definition at line 370 of file rte_flow_driver.h.

Author

Generated automatically by Doxygen for DPDK from the source code.

Thu May 23 2024 Version 23.11.0