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