git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/sfc/base: use proper MCDI command for encap filters
[dpdk.git]
/
lib
/
librte_table
/
rte_table_lpm.c
diff --git
a/lib/librte_table/rte_table_lpm.c
b/lib/librte_table/rte_table_lpm.c
index
cdeb0f5
..
2f472b9
100644
(file)
--- a/
lib/librte_table/rte_table_lpm.c
+++ b/
lib/librte_table/rte_table_lpm.c
@@
-44,7
+44,9
@@
#include "rte_table_lpm.h"
#include "rte_table_lpm.h"
-#define RTE_TABLE_LPM_MAX_NEXT_HOPS 256
+#ifndef RTE_TABLE_LPM_MAX_NEXT_HOPS
+#define RTE_TABLE_LPM_MAX_NEXT_HOPS 65536
+#endif
#ifdef RTE_TABLE_STATS_COLLECT
#ifdef RTE_TABLE_STATS_COLLECT
@@
-74,13
+76,13
@@
struct rte_table_lpm {
/* Next Hop Table (NHT) */
uint32_t nht_users[RTE_TABLE_LPM_MAX_NEXT_HOPS];
/* Next Hop Table (NHT) */
uint32_t nht_users[RTE_TABLE_LPM_MAX_NEXT_HOPS];
- uint
32
_t nht[0] __rte_cache_aligned;
+ uint
8
_t nht[0] __rte_cache_aligned;
};
static void *
rte_table_lpm_create(void *params, int socket_id, uint32_t entry_size)
{
};
static void *
rte_table_lpm_create(void *params, int socket_id, uint32_t entry_size)
{
- struct rte_table_lpm_params *p =
(struct rte_table_lpm_params *)
params;
+ struct rte_table_lpm_params *p = params;
struct rte_table_lpm *lpm;
struct rte_lpm_config lpm_config;
struct rte_table_lpm *lpm;
struct rte_lpm_config lpm_config;
@@
-152,7
+154,7
@@
rte_table_lpm_create(void *params, int socket_id, uint32_t entry_size)
static int
rte_table_lpm_free(void *table)
{
static int
rte_table_lpm_free(void *table)
{
- struct rte_table_lpm *lpm =
(struct rte_table_lpm *)
table;
+ struct rte_table_lpm *lpm = table;
/* Check input parameters */
if (lpm == NULL) {
/* Check input parameters */
if (lpm == NULL) {
@@
-188,7
+190,7
@@
nht_find_existing(struct rte_table_lpm *lpm, void *entry, uint32_t *pos)
uint32_t i;
for (i = 0; i < RTE_TABLE_LPM_MAX_NEXT_HOPS; i++) {
uint32_t i;
for (i = 0; i < RTE_TABLE_LPM_MAX_NEXT_HOPS; i++) {
- uint
32
_t *nht_entry = &lpm->nht[i * lpm->entry_size];
+ uint
8
_t *nht_entry = &lpm->nht[i * lpm->entry_size];
if ((lpm->nht_users[i] > 0) && (memcmp(nht_entry, entry,
lpm->entry_unique_size) == 0)) {
if ((lpm->nht_users[i] > 0) && (memcmp(nht_entry, entry,
lpm->entry_unique_size) == 0)) {
@@
-208,8
+210,8
@@
rte_table_lpm_entry_add(
int *key_found,
void **entry_ptr)
{
int *key_found,
void **entry_ptr)
{
- struct rte_table_lpm *lpm =
(struct rte_table_lpm *)
table;
- struct rte_table_lpm_key *ip_prefix =
(struct rte_table_lpm_key *)
key;
+ struct rte_table_lpm *lpm = table;
+ struct rte_table_lpm_key *ip_prefix = key;
uint32_t nht_pos, nht_pos0_valid;
int status;
uint32_t nht_pos0 = 0;
uint32_t nht_pos, nht_pos0_valid;
int status;
uint32_t nht_pos0 = 0;
@@
-242,7
+244,7
@@
rte_table_lpm_entry_add(
/* Find existing or free NHT entry */
if (nht_find_existing(lpm, entry, &nht_pos) == 0) {
/* Find existing or free NHT entry */
if (nht_find_existing(lpm, entry, &nht_pos) == 0) {
- uint
32
_t *nht_entry;
+ uint
8
_t *nht_entry;
if (nht_find_free(lpm, &nht_pos) == 0) {
RTE_LOG(ERR, TABLE, "%s: NHT full\n", __func__);
if (nht_find_free(lpm, &nht_pos) == 0) {
RTE_LOG(ERR, TABLE, "%s: NHT full\n", __func__);
@@
-275,8
+277,8
@@
rte_table_lpm_entry_delete(
int *key_found,
void *entry)
{
int *key_found,
void *entry)
{
- struct rte_table_lpm *lpm =
(struct rte_table_lpm *)
table;
- struct rte_table_lpm_key *ip_prefix =
(struct rte_table_lpm_key *)
key;
+ struct rte_table_lpm *lpm = table;
+ struct rte_table_lpm_key *ip_prefix = key;
uint32_t nht_pos;
int status;
uint32_t nht_pos;
int status;
@@
-370,7
+372,7
@@
rte_table_lpm_lookup(
static int
rte_table_lpm_stats_read(void *table, struct rte_table_stats *stats, int clear)
{
static int
rte_table_lpm_stats_read(void *table, struct rte_table_stats *stats, int clear)
{
- struct rte_table_lpm *t =
(struct rte_table_lpm *)
table;
+ struct rte_table_lpm *t = table;
if (stats != NULL)
memcpy(stats, &t->stats, sizeof(t->stats));
if (stats != NULL)
memcpy(stats, &t->stats, sizeof(t->stats));