#include <stdint.h>
#include <rte_compat.h>
Go to the source code of this file.
|
typedef int(* | rte_fib_modify_fn_t) (struct rte_fib *fib, uint32_t ip, uint8_t depth, uint64_t next_hop, int op) |
|
typedef void(* | rte_fib_lookup_fn_t) (void *fib, const uint32_t *ips, uint64_t *next_hops, const unsigned int n) |
|
|
__rte_experimental struct rte_fib * | rte_fib_create (const char *name, int socket_id, struct rte_fib_conf *conf) |
|
__rte_experimental struct rte_fib * | rte_fib_find_existing (const char *name) |
|
__rte_experimental void | rte_fib_free (struct rte_fib *fib) |
|
__rte_experimental int | rte_fib_add (struct rte_fib *fib, uint32_t ip, uint8_t depth, uint64_t next_hop) |
|
__rte_experimental int | rte_fib_delete (struct rte_fib *fib, uint32_t ip, uint8_t depth) |
|
__rte_experimental int | rte_fib_lookup_bulk (struct rte_fib *fib, uint32_t *ips, uint64_t *next_hops, int n) |
|
__rte_experimental void * | rte_fib_get_dp (struct rte_fib *fib) |
|
__rte_experimental struct rte_rib * | rte_fib_get_rib (struct rte_fib *fib) |
|
RTE FIB library.
- Warning
- EXPERIMENTAL: All functions in this file may be changed or removed without prior notice.
FIB (Forwarding information base) implementation for IPv4 Longest Prefix Match
Definition in file rte_fib.h.
◆ RTE_FIB_MAXDEPTH
#define RTE_FIB_MAXDEPTH 32 |
Maximum depth value possible for IPv4 FIB.
Definition at line 34 of file rte_fib.h.
◆ rte_fib_modify_fn_t
typedef int(* rte_fib_modify_fn_t) (struct rte_fib *fib, uint32_t ip, uint8_t depth, uint64_t next_hop, int op) |
Modify FIB function
Definition at line 44 of file rte_fib.h.
◆ rte_fib_lookup_fn_t
typedef void(* rte_fib_lookup_fn_t) (void *fib, const uint32_t *ips, uint64_t *next_hops, const unsigned int n) |
FIB bulk lookup function
Definition at line 47 of file rte_fib.h.
◆ rte_fib_type
Type of FIB struct
Enumerator |
---|
RTE_FIB_DUMMY | RIB tree based FIB
|
RTE_FIB_DIR24_8 | DIR24_8 based FIB
|
Definition at line 37 of file rte_fib.h.
◆ rte_fib_dir24_8_nh_sz
Size of nexthop (1 << nh_sz) bits for DIR24_8 based FIB
Definition at line 56 of file rte_fib.h.
◆ rte_fib_create()
__rte_experimental struct rte_fib* rte_fib_create |
( |
const char * |
name, |
|
|
int |
socket_id, |
|
|
struct rte_fib_conf * |
conf |
|
) |
| |
Create FIB
- Parameters
-
name | FIB name |
socket_id | NUMA socket ID for FIB table memory allocation |
conf | Structure containing the configuration |
- Returns
- Handle to the FIB object on success NULL otherwise with rte_errno set to an appropriate values.
◆ rte_fib_find_existing()
__rte_experimental struct rte_fib* rte_fib_find_existing |
( |
const char * |
name | ) |
|
Find an existing FIB object and return a pointer to it.
- Parameters
-
- Returns
- Pointer to fib object or NULL if object not found with rte_errno set appropriately. Possible rte_errno values include:
- ENOENT - required entry not available to return.
◆ rte_fib_free()
__rte_experimental void rte_fib_free |
( |
struct rte_fib * |
fib | ) |
|
Free an FIB object.
- Parameters
-
- Returns
- None
◆ rte_fib_add()
__rte_experimental int rte_fib_add |
( |
struct rte_fib * |
fib, |
|
|
uint32_t |
ip, |
|
|
uint8_t |
depth, |
|
|
uint64_t |
next_hop |
|
) |
| |
Add a route to the FIB.
- Parameters
-
fib | FIB object handle |
ip | IPv4 prefix address to be added to the FIB |
depth | Prefix length |
next_hop | Next hop to be added to the FIB |
- Returns
- 0 on success, negative value otherwise
◆ rte_fib_delete()
__rte_experimental int rte_fib_delete |
( |
struct rte_fib * |
fib, |
|
|
uint32_t |
ip, |
|
|
uint8_t |
depth |
|
) |
| |
Delete a rule from the FIB.
- Parameters
-
fib | FIB object handle |
ip | IPv4 prefix address to be deleted from the FIB |
depth | Prefix length |
- Returns
- 0 on success, negative value otherwise
◆ rte_fib_lookup_bulk()
__rte_experimental int rte_fib_lookup_bulk |
( |
struct rte_fib * |
fib, |
|
|
uint32_t * |
ips, |
|
|
uint64_t * |
next_hops, |
|
|
int |
n |
|
) |
| |
Lookup multiple IP addresses in the FIB.
- Parameters
-
fib | FIB object handle |
ips | Array of IPs to be looked up in the FIB |
next_hops | Next hop of the most specific rule found for IP. This is an array of eight byte values. If the lookup for the given IP failed, then corresponding element would contain default nexthop value configured for a FIB. |
n | Number of elements in ips (and next_hops) array to lookup. |
- Returns
- -EINVAL for incorrect arguments, otherwise 0
◆ rte_fib_get_dp()
__rte_experimental void* rte_fib_get_dp |
( |
struct rte_fib * |
fib | ) |
|
Get pointer to the dataplane specific struct
- Parameters
-
- Returns
- Pointer on the dataplane struct on success NULL othervise
◆ rte_fib_get_rib()
__rte_experimental struct rte_rib* rte_fib_get_rib |
( |
struct rte_fib * |
fib | ) |
|
Get pointer to the RIB
- Parameters
-
- Returns
- Pointer on the RIB on success NULL othervise