]>
Commit | Line | Data |
---|---|---|
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 | */ | |
18 | struct 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 | ||
24 | struct 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 | ||
31 | TAILQ_HEAD(port_in_action_profile_list, port_in_action_profile); | |
32 | ||
33 | int | |
34 | port_in_action_profile_init(void); | |
35 | ||
36 | struct port_in_action_profile * | |
37 | port_in_action_profile_find(const char *name); | |
38 | ||
39 | struct port_in_action_profile * | |
40 | port_in_action_profile_create(const char *name, | |
41 | struct port_in_action_profile_params *params); | |
42 | ||
43 | /** | |
44 | * Table action | |
45 | */ | |
46 | struct 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 | ||
59 | struct 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 | ||
66 | TAILQ_HEAD(table_action_profile_list, table_action_profile); | |
67 | ||
68 | int | |
69 | table_action_profile_init(void); | |
70 | ||
71 | struct table_action_profile * | |
72 | table_action_profile_find(const char *name); | |
73 | ||
74 | struct table_action_profile * | |
75 | table_action_profile_create(const char *name, | |
76 | struct table_action_profile_params *params); | |
77 | ||
78 | #endif /* _INCLUDE_ACTION_H_ */ |