dpdk/lib/flow_classify/rte_flow_classify_parse.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: BSD-3-Clause
   2 * Copyright(c) 2017 Intel Corporation
   3 */
   4
   5#ifndef _RTE_FLOW_CLASSIFY_PARSE_H_
   6#define _RTE_FLOW_CLASSIFY_PARSE_H_
   7
   8#include <rte_ethdev.h>
   9#include <rte_flow.h>
  10#include <stdbool.h>
  11
  12#ifdef __cplusplus
  13extern "C" {
  14#endif
  15
  16extern enum rte_flow_classify_table_type table_type;
  17
  18struct classify_action {
  19        /* Flow action mask */
  20        uint64_t action_mask;
  21
  22        struct action {
  23                /** Integer value to return with packets */
  24                struct rte_flow_action_mark mark;
  25                /** Flow rule counter */
  26                struct rte_flow_query_count counter;
  27        } act;
  28};
  29
  30typedef int (*parse_filter_t)(const struct rte_flow_attr *attr,
  31                              const struct rte_flow_item pattern[],
  32                              const struct rte_flow_action actions[],
  33                              struct rte_eth_ntuple_filter *filter,
  34                              struct rte_flow_error *error);
  35
  36/* Skip all VOID items of the pattern */
  37void
  38classify_pattern_skip_void_item(struct rte_flow_item *items,
  39                            const struct rte_flow_item *pattern);
  40
  41/* Find the first VOID or non-VOID item pointer */
  42const struct rte_flow_item *
  43classify_find_first_item(const struct rte_flow_item *item, bool is_void);
  44
  45
  46/* Find if there's parse filter function matched */
  47parse_filter_t
  48classify_find_parse_filter_func(struct rte_flow_item *pattern);
  49
  50/* get action data */
  51struct classify_action *
  52classify_get_flow_action(void);
  53
  54#ifdef __cplusplus
  55}
  56#endif
  57
  58#endif /* _RTE_FLOW_CLASSIFY_PARSE_H_ */
  59