DPDK 21.11.2
Loading...
Searching...
No Matches
rte_lpm6.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2010-2014 Intel Corporation
3 */
4#ifndef _RTE_LPM6_H_
5#define _RTE_LPM6_H_
6
12#include <stdint.h>
13#include <rte_compat.h>
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19
20#define RTE_LPM6_MAX_DEPTH 128
21#define RTE_LPM6_IPV6_ADDR_SIZE 16
23#define RTE_LPM6_NAMESIZE 32
24
26struct rte_lpm6;
27
30 uint32_t max_rules;
31 uint32_t number_tbl8s;
32 int flags;
33};
34
54struct rte_lpm6 *
55rte_lpm6_create(const char *name, int socket_id,
56 const struct rte_lpm6_config *config);
57
68struct rte_lpm6 *
69rte_lpm6_find_existing(const char *name);
70
79void
80rte_lpm6_free(struct rte_lpm6 *lpm);
81
96int
97rte_lpm6_add(struct rte_lpm6 *lpm, const uint8_t *ip, uint8_t depth,
98 uint32_t next_hop);
99
115int
116rte_lpm6_is_rule_present(struct rte_lpm6 *lpm, const uint8_t *ip, uint8_t depth,
117 uint32_t *next_hop);
118
131int
132rte_lpm6_delete(struct rte_lpm6 *lpm, const uint8_t *ip, uint8_t depth);
133
148int
149rte_lpm6_delete_bulk_func(struct rte_lpm6 *lpm,
150 uint8_t ips[][RTE_LPM6_IPV6_ADDR_SIZE], uint8_t *depths, unsigned n);
151
158void
159rte_lpm6_delete_all(struct rte_lpm6 *lpm);
160
173int
174rte_lpm6_lookup(const struct rte_lpm6 *lpm, const uint8_t *ip, uint32_t *next_hop);
175
192int
193rte_lpm6_lookup_bulk_func(const struct rte_lpm6 *lpm,
194 uint8_t ips[][RTE_LPM6_IPV6_ADDR_SIZE],
195 int32_t *next_hops, unsigned int n);
196
197#ifdef __cplusplus
198}
199#endif
200
201#endif
int rte_lpm6_add(struct rte_lpm6 *lpm, const uint8_t *ip, uint8_t depth, uint32_t next_hop)
int rte_lpm6_delete(struct rte_lpm6 *lpm, const uint8_t *ip, uint8_t depth)
struct rte_lpm6 * rte_lpm6_find_existing(const char *name)
void rte_lpm6_delete_all(struct rte_lpm6 *lpm)
void rte_lpm6_free(struct rte_lpm6 *lpm)
int rte_lpm6_lookup(const struct rte_lpm6 *lpm, const uint8_t *ip, uint32_t *next_hop)
struct rte_lpm6 * rte_lpm6_create(const char *name, int socket_id, const struct rte_lpm6_config *config)
int rte_lpm6_is_rule_present(struct rte_lpm6 *lpm, const uint8_t *ip, uint8_t depth, uint32_t *next_hop)
int rte_lpm6_lookup_bulk_func(const struct rte_lpm6 *lpm, uint8_t ips[][RTE_LPM6_IPV6_ADDR_SIZE], int32_t *next_hops, unsigned int n)
int rte_lpm6_delete_bulk_func(struct rte_lpm6 *lpm, uint8_t ips[][RTE_LPM6_IPV6_ADDR_SIZE], uint8_t *depths, unsigned n)
uint32_t number_tbl8s
Definition: rte_lpm6.h:31
uint32_t max_rules
Definition: rte_lpm6.h:30