struct sfc_flow_item {
enum rte_flow_item_type type; /* Type of item */
+ const char *name; /* Item name */
enum sfc_flow_item_layers layer; /* Layer of item */
enum sfc_flow_item_layers prev_layer; /* Previous layer of item */
enum sfc_flow_parse_ctx_type ctx_type; /* Parse context type */
sfc_flow_item_parse *parse; /* Parsing function */
};
-int sfc_flow_parse_pattern(const struct sfc_flow_item *flow_items,
+struct sfc_adapter;
+
+int sfc_flow_parse_pattern(struct sfc_adapter *sa,
+ const struct sfc_flow_item *flow_items,
unsigned int nb_flow_items,
const struct rte_flow_item pattern[],
struct sfc_flow_parse_ctx *parse_ctx,
unsigned int size,
struct rte_flow_error *error);
-struct sfc_adapter;
-
void sfc_flow_init(struct sfc_adapter *sa);
void sfc_flow_fini(struct sfc_adapter *sa);
int sfc_flow_start(struct sfc_adapter *sa);
typedef int (sfc_flow_remove_cb_t)(struct sfc_adapter *sa,
struct rte_flow *flow);
+typedef int (sfc_flow_query_cb_t)(struct rte_eth_dev *dev,
+ struct rte_flow *flow,
+ const struct rte_flow_action *action,
+ void *data,
+ struct rte_flow_error *error);
+
#ifdef __cplusplus
}
#endif