DPDK
25.11.0
Toggle main menu visibility
Loading...
Searching...
No Matches
rte_swx_table_learner.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-3-Clause
2
* Copyright(c) 2021 Intel Corporation
3
*/
4
#ifndef __INCLUDE_RTE_SWX_TABLE_LEARNER_H__
5
#define __INCLUDE_RTE_SWX_TABLE_LEARNER_H__
6
44
45
#include <stdint.h>
46
#include <sys/types.h>
47
48
#include <rte_compat.h>
49
50
#include "
rte_swx_hash_func.h
"
51
52
#ifdef __cplusplus
53
extern
"C"
{
54
#endif
55
57
#ifndef RTE_SWX_TABLE_LEARNER_N_KEY_TIMEOUTS_MAX
58
#define RTE_SWX_TABLE_LEARNER_N_KEY_TIMEOUTS_MAX 16
59
#endif
60
62
struct
rte_swx_table_learner_params
{
64
uint32_t
key_size
;
65
67
uint32_t
key_offset
;
68
76
uint8_t *
key_mask0
;
77
81
uint32_t
action_data_size
;
82
85
rte_swx_hash_func_t
hash_func
;
86
88
uint32_t
n_keys_max
;
89
94
uint32_t *
key_timeout
;
95
99
uint32_t
n_key_timeouts
;
100
};
101
110
__rte_experimental
111
uint64_t
112
rte_swx_table_learner_footprint_get
(
struct
rte_swx_table_learner_params
*params);
113
124
__rte_experimental
125
uint64_t
126
rte_swx_table_learner_mailbox_size_get
(
void
);
127
138
__rte_experimental
139
void
*
140
rte_swx_table_learner_create
(
struct
rte_swx_table_learner_params
*params,
int
numa_node);
141
155
__rte_experimental
156
int
157
rte_swx_table_learner_timeout_update
(
void
*table,
158
uint32_t key_timeout_id,
159
uint32_t key_timeout);
160
209
__rte_experimental
210
int
211
rte_swx_table_learner_lookup
(
void
*table,
212
void
*mailbox,
213
uint64_t time,
214
uint8_t **key,
215
uint64_t *action_id,
216
uint8_t **action_data,
217
size_t
*entry_id,
218
int
*hit);
219
242
__rte_experimental
243
uint32_t
244
rte_swx_table_learner_add
(
void
*table,
245
void
*mailbox,
246
uint64_t time,
247
uint64_t action_id,
248
uint8_t *action_data,
249
uint32_t key_timeout_id);
250
264
__rte_experimental
265
void
266
rte_swx_table_learner_rearm
(
void
*table,
267
void
*mailbox,
268
uint64_t time);
269
285
__rte_experimental
286
void
287
rte_swx_table_learner_rearm_new
(
void
*table,
288
void
*mailbox,
289
uint64_t time,
290
uint32_t key_timeout_id);
291
304
__rte_experimental
305
void
306
rte_swx_table_learner_delete
(
void
*table,
307
void
*mailbox);
308
315
__rte_experimental
316
void
317
rte_swx_table_learner_free
(
void
*table);
318
319
#ifdef __cplusplus
320
}
321
#endif
322
323
#endif
rte_swx_hash_func.h
rte_swx_hash_func_t
uint32_t(* rte_swx_hash_func_t)(const void *key, uint32_t length, uint32_t seed)
Definition
rte_swx_hash_func.h:27
rte_swx_table_learner_create
__rte_experimental void * rte_swx_table_learner_create(struct rte_swx_table_learner_params *params, int numa_node)
rte_swx_table_learner_add
__rte_experimental uint32_t rte_swx_table_learner_add(void *table, void *mailbox, uint64_t time, uint64_t action_id, uint8_t *action_data, uint32_t key_timeout_id)
rte_swx_table_learner_footprint_get
__rte_experimental uint64_t rte_swx_table_learner_footprint_get(struct rte_swx_table_learner_params *params)
rte_swx_table_learner_lookup
__rte_experimental int rte_swx_table_learner_lookup(void *table, void *mailbox, uint64_t time, uint8_t **key, uint64_t *action_id, uint8_t **action_data, size_t *entry_id, int *hit)
rte_swx_table_learner_rearm_new
__rte_experimental void rte_swx_table_learner_rearm_new(void *table, void *mailbox, uint64_t time, uint32_t key_timeout_id)
rte_swx_table_learner_free
__rte_experimental void rte_swx_table_learner_free(void *table)
rte_swx_table_learner_delete
__rte_experimental void rte_swx_table_learner_delete(void *table, void *mailbox)
rte_swx_table_learner_mailbox_size_get
__rte_experimental uint64_t rte_swx_table_learner_mailbox_size_get(void)
rte_swx_table_learner_timeout_update
__rte_experimental int rte_swx_table_learner_timeout_update(void *table, uint32_t key_timeout_id, uint32_t key_timeout)
rte_swx_table_learner_rearm
__rte_experimental void rte_swx_table_learner_rearm(void *table, void *mailbox, uint64_t time)
rte_swx_table_learner_params
Definition
rte_swx_table_learner.h:62
rte_swx_table_learner_params::action_data_size
uint32_t action_data_size
Definition
rte_swx_table_learner.h:81
rte_swx_table_learner_params::key_timeout
uint32_t * key_timeout
Definition
rte_swx_table_learner.h:94
rte_swx_table_learner_params::n_keys_max
uint32_t n_keys_max
Definition
rte_swx_table_learner.h:88
rte_swx_table_learner_params::key_size
uint32_t key_size
Definition
rte_swx_table_learner.h:64
rte_swx_table_learner_params::n_key_timeouts
uint32_t n_key_timeouts
Definition
rte_swx_table_learner.h:99
rte_swx_table_learner_params::hash_func
rte_swx_hash_func_t hash_func
Definition
rte_swx_table_learner.h:85
rte_swx_table_learner_params::key_offset
uint32_t key_offset
Definition
rte_swx_table_learner.h:67
rte_swx_table_learner_params::key_mask0
uint8_t * key_mask0
Definition
rte_swx_table_learner.h:76
lib
table
rte_swx_table_learner.h
Generated by
1.17.0