DPDK
25.11.0
Toggle main menu visibility
Loading...
Searching...
No Matches
rte_swx_table_selector.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_SELECTOR_H__
5
#define __INCLUDE_RTE_SWX_TABLE_SELECTOR_H__
6
13
14
#include <stdint.h>
15
16
#include <rte_compat.h>
17
18
#include "
rte_swx_table.h
"
19
20
#ifdef __cplusplus
21
extern
"C"
{
22
#endif
23
25
struct
rte_swx_table_selector_params
{
27
uint32_t
group_id_offset
;
28
30
uint32_t
selector_size
;
31
33
uint32_t
selector_offset
;
34
43
uint8_t *
selector_mask
;
44
46
uint32_t
member_id_offset
;
47
49
uint32_t
n_groups_max
;
50
52
uint32_t
n_members_per_group_max
;
53
};
54
56
struct
rte_swx_table_selector_member
{
58
RTE_TAILQ_ENTRY
(
rte_swx_table_selector_member
) node;
59
61
uint32_t
member_id
;
62
64
uint32_t
member_weight
;
65
};
66
68
RTE_TAILQ_HEAD
(rte_swx_table_selector_member_list,
rte_swx_table_selector_member
);
69
71
struct
rte_swx_table_selector_group
{
73
struct
rte_swx_table_selector_member_list
members
;
74
};
75
86
__rte_experimental
87
uint64_t
88
rte_swx_table_selector_footprint_get
(uint32_t n_groups_max, uint32_t n_members_per_group_max);
89
100
__rte_experimental
101
uint64_t
102
rte_swx_table_selector_mailbox_size_get
(
void
);
103
118
__rte_experimental
119
void
*
120
rte_swx_table_selector_create
(
struct
rte_swx_table_selector_params
*params,
121
struct
rte_swx_table_selector_group
**groups,
122
int
numa_node);
123
138
__rte_experimental
139
int
140
rte_swx_table_selector_group_set
(
void
*table,
141
uint32_t group_id,
142
struct
rte_swx_table_selector_group
*group);
143
180
__rte_experimental
181
int
182
rte_swx_table_selector_select
(
void
*table,
183
void
*mailbox,
184
uint8_t **group_id_buffer,
185
uint8_t **selector_buffer,
186
uint8_t **member_id_buffer);
187
194
__rte_experimental
195
void
196
rte_swx_table_selector_free
(
void
*table);
197
198
#ifdef __cplusplus
199
}
200
#endif
201
202
#endif
rte_swx_table.h
rte_swx_table_selector_create
__rte_experimental void * rte_swx_table_selector_create(struct rte_swx_table_selector_params *params, struct rte_swx_table_selector_group **groups, int numa_node)
rte_swx_table_selector_group_set
__rte_experimental int rte_swx_table_selector_group_set(void *table, uint32_t group_id, struct rte_swx_table_selector_group *group)
rte_swx_table_selector_select
__rte_experimental int rte_swx_table_selector_select(void *table, void *mailbox, uint8_t **group_id_buffer, uint8_t **selector_buffer, uint8_t **member_id_buffer)
rte_swx_table_selector_free
__rte_experimental void rte_swx_table_selector_free(void *table)
RTE_TAILQ_HEAD
RTE_TAILQ_HEAD(rte_swx_table_selector_member_list, rte_swx_table_selector_member)
rte_swx_table_selector_mailbox_size_get
__rte_experimental uint64_t rte_swx_table_selector_mailbox_size_get(void)
rte_swx_table_selector_footprint_get
__rte_experimental uint64_t rte_swx_table_selector_footprint_get(uint32_t n_groups_max, uint32_t n_members_per_group_max)
rte_swx_table_selector_group
Definition
rte_swx_table_selector.h:71
rte_swx_table_selector_group::members
struct rte_swx_table_selector_member_list members
Definition
rte_swx_table_selector.h:73
rte_swx_table_selector_member
Definition
rte_swx_table_selector.h:56
rte_swx_table_selector_member::member_id
uint32_t member_id
Definition
rte_swx_table_selector.h:61
rte_swx_table_selector_member::RTE_TAILQ_ENTRY
RTE_TAILQ_ENTRY(rte_swx_table_selector_member) node
rte_swx_table_selector_member::member_weight
uint32_t member_weight
Definition
rte_swx_table_selector.h:64
rte_swx_table_selector_params
Definition
rte_swx_table_selector.h:25
rte_swx_table_selector_params::selector_offset
uint32_t selector_offset
Definition
rte_swx_table_selector.h:33
rte_swx_table_selector_params::member_id_offset
uint32_t member_id_offset
Definition
rte_swx_table_selector.h:46
rte_swx_table_selector_params::group_id_offset
uint32_t group_id_offset
Definition
rte_swx_table_selector.h:27
rte_swx_table_selector_params::selector_size
uint32_t selector_size
Definition
rte_swx_table_selector.h:30
rte_swx_table_selector_params::selector_mask
uint8_t * selector_mask
Definition
rte_swx_table_selector.h:43
rte_swx_table_selector_params::n_groups_max
uint32_t n_groups_max
Definition
rte_swx_table_selector.h:49
rte_swx_table_selector_params::n_members_per_group_max
uint32_t n_members_per_group_max
Definition
rte_swx_table_selector.h:52
lib
table
rte_swx_table_selector.h
Generated by
1.17.0