]> git.proxmox.com Git - ceph.git/blame - ceph/src/spdk/dpdk/examples/ip_pipeline/action.h
import 15.2.0 Octopus source
[ceph.git] / ceph / src / spdk / dpdk / examples / ip_pipeline / action.h
CommitLineData
11fdf7f2
TL
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2010-2018 Intel Corporation
3 */
4
5#ifndef _INCLUDE_ACTION_H_
6#define _INCLUDE_ACTION_H_
7
8#include <sys/queue.h>
9
10#include <rte_port_in_action.h>
11#include <rte_table_action.h>
12
13#include "common.h"
14
15/**
16 * Input port action
17 */
18struct port_in_action_profile_params {
19 uint64_t action_mask;
20 struct rte_port_in_action_fltr_config fltr;
21 struct rte_port_in_action_lb_config lb;
22};
23
24struct port_in_action_profile {
25 TAILQ_ENTRY(port_in_action_profile) node;
26 char name[NAME_SIZE];
27 struct port_in_action_profile_params params;
28 struct rte_port_in_action_profile *ap;
29};
30
31TAILQ_HEAD(port_in_action_profile_list, port_in_action_profile);
32
33int
34port_in_action_profile_init(void);
35
36struct port_in_action_profile *
37port_in_action_profile_find(const char *name);
38
39struct port_in_action_profile *
40port_in_action_profile_create(const char *name,
41 struct port_in_action_profile_params *params);
42
43/**
44 * Table action
45 */
46struct table_action_profile_params {
47 uint64_t action_mask;
48 struct rte_table_action_common_config common;
49 struct rte_table_action_lb_config lb;
50 struct rte_table_action_mtr_config mtr;
51 struct rte_table_action_tm_config tm;
52 struct rte_table_action_encap_config encap;
53 struct rte_table_action_nat_config nat;
54 struct rte_table_action_ttl_config ttl;
55 struct rte_table_action_stats_config stats;
9f95a23c 56 struct rte_table_action_sym_crypto_config sym_crypto;
11fdf7f2
TL
57};
58
59struct table_action_profile {
60 TAILQ_ENTRY(table_action_profile) node;
61 char name[NAME_SIZE];
62 struct table_action_profile_params params;
63 struct rte_table_action_profile *ap;
64};
65
66TAILQ_HEAD(table_action_profile_list, table_action_profile);
67
68int
69table_action_profile_init(void);
70
71struct table_action_profile *
72table_action_profile_find(const char *name);
73
74struct table_action_profile *
75table_action_profile_create(const char *name,
76 struct table_action_profile_params *params);
77
78#endif /* _INCLUDE_ACTION_H_ */