DPDK
25.11.0
Toggle main menu visibility
Loading...
Searching...
No Matches
rte_swx_table.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-3-Clause
2
* Copyright(c) 2020 Intel Corporation
3
*/
4
#ifndef __INCLUDE_RTE_SWX_TABLE_H__
5
#define __INCLUDE_RTE_SWX_TABLE_H__
6
13
14
#include <stdint.h>
15
16
#include <rte_os.h>
17
18
#include "
rte_swx_hash_func.h
"
19
21
enum
rte_swx_table_match_type
{
23
RTE_SWX_TABLE_MATCH_WILDCARD
,
24
26
RTE_SWX_TABLE_MATCH_LPM
,
27
29
RTE_SWX_TABLE_MATCH_EXACT
,
30
};
31
33
struct
rte_swx_table_params
{
35
enum
rte_swx_table_match_type
match_type
;
36
38
uint32_t
key_size
;
39
41
uint32_t
key_offset
;
42
51
uint8_t *
key_mask0
;
52
57
uint32_t
action_data_size
;
58
63
rte_swx_hash_func_t
hash_func
;
64
68
uint32_t
n_keys_max
;
69
};
70
72
struct
rte_swx_table_entry
{
76
RTE_TAILQ_ENTRY
(
rte_swx_table_entry
) node;
77
81
uint8_t *
key
;
82
88
uint8_t *
key_mask
;
89
95
uint64_t
key_signature
;
96
104
uint32_t
key_priority
;
105
107
uint64_t
action_id
;
108
115
uint8_t *
action_data
;
116
};
117
119
RTE_TAILQ_HEAD
(rte_swx_table_entry_list,
rte_swx_table_entry
);
120
133
typedef
uint64_t
134
(*
rte_swx_table_footprint_get_t
)(
struct
rte_swx_table_params
*params,
135
struct
rte_swx_table_entry_list *entries,
136
const
char
*args);
137
148
typedef
uint64_t
149
(*
rte_swx_table_mailbox_size_get_t
)(void);
150
165
typedef
void
*
166
(*rte_swx_table_create_t)(
struct
rte_swx_table_params
*params,
167
struct
rte_swx_table_entry_list *entries,
168
const
char
*args,
169
int
numa_node);
170
183
typedef
int
184
(*
rte_swx_table_add_t
)(
void
*table,
185
struct
rte_swx_table_entry
*entry);
186
200
typedef
int
201
(*
rte_swx_table_delete_t
)(
void
*table,
202
struct
rte_swx_table_entry
*entry);
203
265
typedef
int
266
(*
rte_swx_table_lookup_t
)(
void
*table,
267
void
*mailbox,
268
uint8_t **
key
,
269
uint64_t *
action_id
,
270
uint8_t **
action_data
,
271
size_t
*entry_id,
272
int
*hit);
273
280
typedef
void
281
(*
rte_swx_table_free_t
)(
void
*table);
282
284
struct
rte_swx_table_ops
{
286
rte_swx_table_footprint_get_t
footprint_get
;
287
289
rte_swx_table_mailbox_size_get_t
mailbox_size_get
;
290
292
rte_swx_table_create_t
create
;
293
298
rte_swx_table_add_t
add
;
299
304
rte_swx_table_delete_t
del
;
305
307
rte_swx_table_lookup_t
lkp
;
308
310
rte_swx_table_free_t
free
;
311
};
312
313
#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_match_type
rte_swx_table_match_type
Definition
rte_swx_table.h:21
RTE_SWX_TABLE_MATCH_WILDCARD
@ RTE_SWX_TABLE_MATCH_WILDCARD
Definition
rte_swx_table.h:23
RTE_SWX_TABLE_MATCH_EXACT
@ RTE_SWX_TABLE_MATCH_EXACT
Definition
rte_swx_table.h:29
RTE_SWX_TABLE_MATCH_LPM
@ RTE_SWX_TABLE_MATCH_LPM
Definition
rte_swx_table.h:26
rte_swx_table_lookup_t
int(* rte_swx_table_lookup_t)(void *table, void *mailbox, uint8_t **key, uint64_t *action_id, uint8_t **action_data, size_t *entry_id, int *hit)
Definition
rte_swx_table.h:266
rte_swx_table_add_t
int(* rte_swx_table_add_t)(void *table, struct rte_swx_table_entry *entry)
Definition
rte_swx_table.h:184
rte_swx_table_free_t
void(* rte_swx_table_free_t)(void *table)
Definition
rte_swx_table.h:281
rte_swx_table_delete_t
int(* rte_swx_table_delete_t)(void *table, struct rte_swx_table_entry *entry)
Definition
rte_swx_table.h:201
rte_swx_table_create_t
void *(* rte_swx_table_create_t)(struct rte_swx_table_params *params, struct rte_swx_table_entry_list *entries, const char *args, int numa_node)
Definition
rte_swx_table.h:166
rte_swx_table_mailbox_size_get_t
uint64_t(* rte_swx_table_mailbox_size_get_t)(void)
Definition
rte_swx_table.h:149
RTE_TAILQ_HEAD
RTE_TAILQ_HEAD(rte_swx_table_entry_list, rte_swx_table_entry)
rte_swx_table_footprint_get_t
uint64_t(* rte_swx_table_footprint_get_t)(struct rte_swx_table_params *params, struct rte_swx_table_entry_list *entries, const char *args)
Definition
rte_swx_table.h:134
rte_swx_table_entry
Definition
rte_swx_table.h:72
rte_swx_table_entry::key_priority
uint32_t key_priority
Definition
rte_swx_table.h:104
rte_swx_table_entry::key
uint8_t * key
Definition
rte_swx_table.h:81
rte_swx_table_entry::key_mask
uint8_t * key_mask
Definition
rte_swx_table.h:88
rte_swx_table_entry::action_data
uint8_t * action_data
Definition
rte_swx_table.h:115
rte_swx_table_entry::key_signature
uint64_t key_signature
Definition
rte_swx_table.h:95
rte_swx_table_entry::RTE_TAILQ_ENTRY
RTE_TAILQ_ENTRY(rte_swx_table_entry) node
rte_swx_table_entry::action_id
uint64_t action_id
Definition
rte_swx_table.h:107
rte_swx_table_ops
Definition
rte_swx_table.h:284
rte_swx_table_ops::lkp
rte_swx_table_lookup_t lkp
Definition
rte_swx_table.h:307
rte_swx_table_ops::del
rte_swx_table_delete_t del
Definition
rte_swx_table.h:304
rte_swx_table_ops::mailbox_size_get
rte_swx_table_mailbox_size_get_t mailbox_size_get
Definition
rte_swx_table.h:289
rte_swx_table_ops::footprint_get
rte_swx_table_footprint_get_t footprint_get
Definition
rte_swx_table.h:286
rte_swx_table_ops::add
rte_swx_table_add_t add
Definition
rte_swx_table.h:298
rte_swx_table_ops::free
rte_swx_table_free_t free
Definition
rte_swx_table.h:310
rte_swx_table_ops::create
rte_swx_table_create_t create
Definition
rte_swx_table.h:292
rte_swx_table_params
Definition
rte_swx_table.h:33
rte_swx_table_params::action_data_size
uint32_t action_data_size
Definition
rte_swx_table.h:57
rte_swx_table_params::n_keys_max
uint32_t n_keys_max
Definition
rte_swx_table.h:68
rte_swx_table_params::match_type
enum rte_swx_table_match_type match_type
Definition
rte_swx_table.h:35
rte_swx_table_params::key_size
uint32_t key_size
Definition
rte_swx_table.h:38
rte_swx_table_params::hash_func
rte_swx_hash_func_t hash_func
Definition
rte_swx_table.h:63
rte_swx_table_params::key_offset
uint32_t key_offset
Definition
rte_swx_table.h:41
rte_swx_table_params::key_mask0
uint8_t * key_mask0
Definition
rte_swx_table.h:51
lib
table
rte_swx_table.h
Generated by
1.17.0