DPDK  21.02.0
Data Fields
rte_flow_ops Struct Reference

#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, 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)
 
struct rte_flow_shared_action *(* shared_action_create )(struct rte_eth_dev *dev, const struct rte_flow_shared_action_conf *conf, const struct rte_flow_action *action, struct rte_flow_error *error)
 
int(* shared_action_destroy )(struct rte_eth_dev *dev, struct rte_flow_shared_action *shared_action, struct rte_flow_error *error)
 
int(* shared_action_update )(struct rte_eth_dev *dev, struct rte_flow_shared_action *shared_action, const struct rte_flow_action *update, struct rte_flow_error *error)
 
int(* shared_action_query )(struct rte_eth_dev *dev, const struct rte_flow_shared_action *shared_action, void *data, 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)
 

Detailed Description

Generic flow operations structure implemented and returned by PMDs.

To implement this API, PMDs must handle the RTE_ETH_FILTER_GENERIC filter type in their .filter_ctrl callback function (struct eth_dev_ops) as well as the RTE_ETH_FILTER_GET filter operation.

If successful, this operation must result in a pointer to a PMD-specific struct rte_flow_ops written to the argument address as described below:

// PMD filter_ctrl callback
static const struct rte_flow_ops pmd_flow_ops = { ... };
switch (filter_type) {
case RTE_ETH_FILTER_GENERIC:
if (filter_op != RTE_ETH_FILTER_GET)
return -EINVAL;
*(const void **)arg = &pmd_flow_ops;
return 0;
}

See also rte_flow_ops_get().

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 64 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 67 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 74 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 81 of file rte_flow_driver.h.

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

See rte_flow_flush().

Definition at line 86 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 90 of file rte_flow_driver.h.

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

See rte_flow_isolate().

Definition at line 97 of file rte_flow_driver.h.

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

See rte_flow_dev_dump().

Definition at line 102 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 107 of file rte_flow_driver.h.

struct rte_flow_shared_action*(* shared_action_create) (struct rte_eth_dev *dev, const struct rte_flow_shared_action_conf *conf, const struct rte_flow_action *action, struct rte_flow_error *error)

See rte_flow_shared_action_create()

Definition at line 113 of file rte_flow_driver.h.

int(* shared_action_destroy) (struct rte_eth_dev *dev, struct rte_flow_shared_action *shared_action, struct rte_flow_error *error)

See rte_flow_shared_action_destroy()

Definition at line 119 of file rte_flow_driver.h.

int(* shared_action_update) (struct rte_eth_dev *dev, struct rte_flow_shared_action *shared_action, const struct rte_flow_action *update, struct rte_flow_error *error)

See rte_flow_shared_action_update()

Definition at line 124 of file rte_flow_driver.h.

int(* shared_action_query) (struct rte_eth_dev *dev, const struct rte_flow_shared_action *shared_action, void *data, struct rte_flow_error *error)

See rte_flow_shared_action_query()

Definition at line 130 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 136 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 143 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 150 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 156 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 162 of file rte_flow_driver.h.


The documentation for this struct was generated from the following file: