DPDK  22.11.7
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 
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 
49 #include <stdint.h>
50 #include <sys/types.h>
51 
52 #include <rte_compat.h>
53 
54 #include "rte_swx_hash_func.h"
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 
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 
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
113 
124 __rte_experimental
125 uint64_t
127 
138 __rte_experimental
139 void *
141 
155 __rte_experimental
156 int
158  uint32_t key_timeout_id,
159  uint32_t key_timeout);
160 
209 __rte_experimental
210 int
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
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
267  void *mailbox,
268  uint64_t time);
269 
285 __rte_experimental
286 void
288  void *mailbox,
289  uint64_t time,
290  uint32_t key_timeout_id);
291 
304 __rte_experimental
305 void
307  void *mailbox);
308 
315 __rte_experimental
316 void
318 
319 #ifdef __cplusplus
320 }
321 #endif
322 
323 #endif
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
rte_swx_table_learner_mailbox_size_get
__rte_experimental uint64_t rte_swx_table_learner_mailbox_size_get(void)
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_delete
__rte_experimental void rte_swx_table_learner_delete(void *table, void *mailbox)
rte_swx_table_learner_params::key_timeout
uint32_t * key_timeout
Definition: rte_swx_table_learner.h:94
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
Definition: rte_swx_table_learner.h:62
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:31
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_params::n_keys_max
uint32_t n_keys_max
Definition: rte_swx_table_learner.h:88
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_params::hash_func
rte_swx_hash_func_t hash_func
Definition: rte_swx_table_learner.h:85
rte_swx_table_learner_params::key_size
uint32_t key_size
Definition: rte_swx_table_learner.h:64
rte_swx_hash_func.h
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_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_params::action_data_size
uint32_t action_data_size
Definition: rte_swx_table_learner.h:81
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_free
__rte_experimental void rte_swx_table_learner_free(void *table)
rte_swx_table_learner_rearm
__rte_experimental void rte_swx_table_learner_rearm(void *table, void *mailbox, uint64_t time)