DPDK  24.07.0
rte_port_in_action.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2018 Intel Corporation
3  */
4 
5 #ifndef __INCLUDE_RTE_PORT_IN_ACTION_H__
6 #define __INCLUDE_RTE_PORT_IN_ACTION_H__
7 
49 #ifdef __cplusplus
50 extern "C" {
51 #endif
52 
53 #include <stdint.h>
54 
55 #include <rte_compat.h>
56 #include <rte_table_hash.h>
57 
58 #include "rte_pipeline.h"
59 
64 
67 };
68 
73 #define RTE_PORT_IN_ACTION_FLTR_KEY_SIZE 16
74 
80  uint32_t key_offset;
81 
84 
87 
94 
100  uint32_t port_id;
101 };
102 
106  uint32_t port_id;
107 };
108 
113 #define RTE_PORT_IN_ACTION_LB_KEY_SIZE_MIN 8
114 
116 #define RTE_PORT_IN_ACTION_LB_KEY_SIZE_MAX 64
117 
119 #define RTE_PORT_IN_ACTION_LB_TABLE_SIZE 16
120 
124  uint32_t key_size;
125 
129  uint32_t key_offset;
130 
133 
136 
138  uint64_t seed;
139 
149 };
150 
160 };
161 
165 struct rte_port_in_action_profile;
166 
175 __rte_experimental
176 struct rte_port_in_action_profile *
177 rte_port_in_action_profile_create(uint32_t socket_id);
178 
188 __rte_experimental
189 int
190 rte_port_in_action_profile_free(struct rte_port_in_action_profile *profile);
191 
207 __rte_experimental
208 int
210  struct rte_port_in_action_profile *profile,
211  enum rte_port_in_action_type type,
212  void *action_config);
213 
230 __rte_experimental
231 int
232 rte_port_in_action_profile_freeze(struct rte_port_in_action_profile *profile);
233 
237 struct rte_port_in_action;
238 
253 __rte_experimental
254 struct rte_port_in_action *
255 rte_port_in_action_create(struct rte_port_in_action_profile *profile,
256  uint32_t socket_id);
257 
267 __rte_experimental
268 int
269 rte_port_in_action_free(struct rte_port_in_action *action);
270 
281 __rte_experimental
282 int
283 rte_port_in_action_params_get(struct rte_port_in_action *action,
284  struct rte_pipeline_port_in_params *params);
285 
301 __rte_experimental
302 int
303 rte_port_in_action_apply(struct rte_port_in_action *action,
304  enum rte_port_in_action_type type,
305  void *action_params);
306 
307 #ifdef __cplusplus
308 }
309 #endif
310 
311 #endif /* __INCLUDE_RTE_PORT_IN_ACTION_H__ */
__rte_experimental int rte_port_in_action_profile_free(struct rte_port_in_action_profile *profile)
uint8_t key[RTE_PORT_IN_ACTION_FLTR_KEY_SIZE]
__rte_experimental int rte_port_in_action_params_get(struct rte_port_in_action *action, struct rte_pipeline_port_in_params *params)
uint8_t key_mask[RTE_PORT_IN_ACTION_FLTR_KEY_SIZE]
__rte_experimental int rte_port_in_action_free(struct rte_port_in_action *action)
__rte_experimental struct rte_port_in_action * rte_port_in_action_create(struct rte_port_in_action_profile *profile, uint32_t socket_id)
#define RTE_PORT_IN_ACTION_LB_KEY_SIZE_MAX
rte_table_hash_op_hash f_hash
uint64_t(* rte_table_hash_op_hash)(void *key, void *key_mask, uint32_t key_size, uint64_t seed)
#define RTE_PORT_IN_ACTION_LB_TABLE_SIZE
__rte_experimental int rte_port_in_action_apply(struct rte_port_in_action *action, enum rte_port_in_action_type type, void *action_params)
__rte_experimental int rte_port_in_action_profile_freeze(struct rte_port_in_action_profile *profile)
__rte_experimental int rte_port_in_action_profile_action_register(struct rte_port_in_action_profile *profile, enum rte_port_in_action_type type, void *action_config)
__rte_experimental struct rte_port_in_action_profile * rte_port_in_action_profile_create(uint32_t socket_id)
rte_port_in_action_type
#define RTE_PORT_IN_ACTION_FLTR_KEY_SIZE