DPDK  20.08.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 
187 __rte_experimental
188 int
189 rte_port_in_action_profile_free(struct rte_port_in_action_profile *profile);
190 
206 __rte_experimental
207 int
209  struct rte_port_in_action_profile *profile,
210  enum rte_port_in_action_type type,
211  void *action_config);
212 
229 __rte_experimental
230 int
231 rte_port_in_action_profile_freeze(struct rte_port_in_action_profile *profile);
232 
236 struct rte_port_in_action;
237 
252 __rte_experimental
253 struct rte_port_in_action *
254 rte_port_in_action_create(struct rte_port_in_action_profile *profile,
255  uint32_t socket_id);
256 
265 __rte_experimental
266 int
267 rte_port_in_action_free(struct rte_port_in_action *action);
268 
279 __rte_experimental
280 int
281 rte_port_in_action_params_get(struct rte_port_in_action *action,
282  struct rte_pipeline_port_in_params *params);
283 
299 __rte_experimental
300 int
301 rte_port_in_action_apply(struct rte_port_in_action *action,
302  enum rte_port_in_action_type type,
303  void *action_params);
304 
305 #ifdef __cplusplus
306 }
307 #endif
308 
309 #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
uint8_t key_mask[RTE_PORT_IN_ACTION_LB_KEY_SIZE_MAX]
__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)
uint32_t port_id[RTE_PORT_IN_ACTION_LB_TABLE_SIZE]
uint32_t port_id[RTE_PORT_IN_ACTION_LB_TABLE_SIZE]
rte_port_in_action_type
#define RTE_PORT_IN_ACTION_FLTR_KEY_SIZE