DPDK 21.11.9
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
50extern "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
165struct rte_port_in_action_profile;
166
175__rte_experimental
176struct rte_port_in_action_profile *
178
187__rte_experimental
188int
189rte_port_in_action_profile_free(struct rte_port_in_action_profile *profile);
190
206__rte_experimental
207int
209 struct rte_port_in_action_profile *profile,
210 enum rte_port_in_action_type type,
211 void *action_config);
212
229__rte_experimental
230int
231rte_port_in_action_profile_freeze(struct rte_port_in_action_profile *profile);
232
236struct rte_port_in_action;
237
252__rte_experimental
253struct rte_port_in_action *
254rte_port_in_action_create(struct rte_port_in_action_profile *profile,
255 uint32_t socket_id);
256
265__rte_experimental
266int
267rte_port_in_action_free(struct rte_port_in_action *action);
268
279__rte_experimental
280int
281rte_port_in_action_params_get(struct rte_port_in_action *action,
282 struct rte_pipeline_port_in_params *params);
283
299__rte_experimental
300int
301rte_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_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 struct rte_port_in_action_profile * rte_port_in_action_profile_create(uint32_t socket_id)
#define RTE_PORT_IN_ACTION_LB_TABLE_SIZE
__rte_experimental struct rte_port_in_action * rte_port_in_action_create(struct rte_port_in_action_profile *profile, uint32_t socket_id)
__rte_experimental int rte_port_in_action_profile_free(struct rte_port_in_action_profile *profile)
#define RTE_PORT_IN_ACTION_FLTR_KEY_SIZE
__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 int rte_port_in_action_free(struct rte_port_in_action *action)
rte_port_in_action_type
@ RTE_PORT_IN_ACTION_LB
@ RTE_PORT_IN_ACTION_FLTR
__rte_experimental int rte_port_in_action_params_get(struct rte_port_in_action *action, struct rte_pipeline_port_in_params *params)
#define RTE_PORT_IN_ACTION_LB_KEY_SIZE_MAX
uint64_t(* rte_table_hash_op_hash)(void *key, void *key_mask, uint32_t key_size, uint64_t seed)
uint8_t key_mask[RTE_PORT_IN_ACTION_FLTR_KEY_SIZE]
uint8_t key[RTE_PORT_IN_ACTION_FLTR_KEY_SIZE]
rte_table_hash_op_hash f_hash
uint8_t key_mask[RTE_PORT_IN_ACTION_LB_KEY_SIZE_MAX]
uint32_t port_id[RTE_PORT_IN_ACTION_LB_TABLE_SIZE]
uint32_t port_id[RTE_PORT_IN_ACTION_LB_TABLE_SIZE]