numam-dpdk/lib/table/rte_table_stub.c
Bruce Richardson 99a2dd955f lib: remove librte_ prefix from directory names
There is no reason for the DPDK libraries to all have 'librte_' prefix on
the directory names. This prefix makes the directory names longer and also
makes it awkward to add features referring to individual libraries in the
build - should the lib names be specified with or without the prefix.
Therefore, we can just remove the library prefix and use the library's
unique name as the directory name, i.e. 'eal' rather than 'librte_eal'

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2021-04-21 14:04:09 +02:00

93 lines
2.0 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2010-2014 Intel Corporation
*/
#include <string.h>
#include <rte_mbuf.h>
#include <rte_malloc.h>
#include "rte_table_stub.h"
#ifdef RTE_TABLE_STATS_COLLECT
#define RTE_TABLE_LPM_STATS_PKTS_IN_ADD(table, val) \
table->stats.n_pkts_in += val
#define RTE_TABLE_LPM_STATS_PKTS_LOOKUP_MISS(table, val) \
table->stats.n_pkts_lookup_miss += val
#else
#define RTE_TABLE_LPM_STATS_PKTS_IN_ADD(table, val)
#define RTE_TABLE_LPM_STATS_PKTS_LOOKUP_MISS(table, val)
#endif
struct rte_table_stub {
struct rte_table_stats stats;
};
static void *
rte_table_stub_create(__rte_unused void *params,
__rte_unused int socket_id,
__rte_unused uint32_t entry_size)
{
struct rte_table_stub *stub;
uint32_t size;
size = sizeof(struct rte_table_stub);
stub = rte_zmalloc_socket("TABLE", size, RTE_CACHE_LINE_SIZE,
socket_id);
if (stub == NULL) {
RTE_LOG(ERR, TABLE,
"%s: Cannot allocate %u bytes for stub table\n",
__func__, size);
return NULL;
}
return stub;
}
static int
rte_table_stub_lookup(
__rte_unused void *table,
__rte_unused struct rte_mbuf **pkts,
__rte_unused uint64_t pkts_mask,
uint64_t *lookup_hit_mask,
__rte_unused void **entries)
{
__rte_unused struct rte_table_stub *stub = (struct rte_table_stub *) table;
__rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
RTE_TABLE_LPM_STATS_PKTS_IN_ADD(stub, n_pkts_in);
*lookup_hit_mask = 0;
RTE_TABLE_LPM_STATS_PKTS_LOOKUP_MISS(stub, n_pkts_in);
return 0;
}
static int
rte_table_stub_stats_read(void *table, struct rte_table_stats *stats, int clear)
{
struct rte_table_stub *t = table;
if (stats != NULL)
memcpy(stats, &t->stats, sizeof(t->stats));
if (clear)
memset(&t->stats, 0, sizeof(t->stats));
return 0;
}
struct rte_table_ops rte_table_stub_ops = {
.f_create = rte_table_stub_create,
.f_free = NULL,
.f_add = NULL,
.f_delete = NULL,
.f_add_bulk = NULL,
.f_delete_bulk = NULL,
.f_lookup = rte_table_stub_lookup,
.f_stats = rte_table_stub_stats_read,
};