1*d30ea906Sjfb8856606 /* SPDX-License-Identifier: BSD-3-Clause
2*d30ea906Sjfb8856606  * Copyright(c) 2010-2014 Intel Corporation
3a9643ea8Slogwang  */
4a9643ea8Slogwang 
5a9643ea8Slogwang #ifndef __INCLUDE_RTE_TABLE_ARRAY_H__
6a9643ea8Slogwang #define __INCLUDE_RTE_TABLE_ARRAY_H__
7a9643ea8Slogwang 
8a9643ea8Slogwang #ifdef __cplusplus
9a9643ea8Slogwang extern "C" {
10a9643ea8Slogwang #endif
11a9643ea8Slogwang 
12a9643ea8Slogwang /**
13a9643ea8Slogwang  * @file
14a9643ea8Slogwang  * RTE Table Array
15a9643ea8Slogwang  *
16a9643ea8Slogwang  * Simple array indexing. Lookup key is the array entry index.
17a9643ea8Slogwang  *
18a9643ea8Slogwang  ***/
19a9643ea8Slogwang 
20a9643ea8Slogwang #include <stdint.h>
21a9643ea8Slogwang 
22a9643ea8Slogwang #include "rte_table.h"
23a9643ea8Slogwang 
24a9643ea8Slogwang /** Array table parameters */
25a9643ea8Slogwang struct rte_table_array_params {
26a9643ea8Slogwang 	/** Number of array entries. Has to be a power of two. */
27a9643ea8Slogwang 	uint32_t n_entries;
28a9643ea8Slogwang 
29a9643ea8Slogwang 	/** Byte offset within input packet meta-data where lookup key (i.e. the
30a9643ea8Slogwang 	    array entry index) is located. */
31a9643ea8Slogwang 	uint32_t offset;
32a9643ea8Slogwang };
33a9643ea8Slogwang 
34a9643ea8Slogwang /** Array table key format */
35a9643ea8Slogwang struct rte_table_array_key {
36a9643ea8Slogwang 	/** Array entry index */
37a9643ea8Slogwang 	uint32_t pos;
38a9643ea8Slogwang };
39a9643ea8Slogwang 
40a9643ea8Slogwang /** Array table operations */
41a9643ea8Slogwang extern struct rte_table_ops rte_table_array_ops;
42a9643ea8Slogwang 
43a9643ea8Slogwang #ifdef __cplusplus
44a9643ea8Slogwang }
45a9643ea8Slogwang #endif
46a9643ea8Slogwang 
47a9643ea8Slogwang #endif
48