DPDK
24.11.0-rc3
|
Go to the source code of this file.
Data Structures | |
struct | rte_fib_conf |
struct | rte_fib_rcu_config |
Macros | |
#define | RTE_FIB_MAXDEPTH 32 |
#define | RTE_FIB_F_NETWORK_ORDER 1 |
Typedefs | |
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) |
Functions | |
struct rte_fib * | rte_fib_create (const char *name, int socket_id, struct rte_fib_conf *conf) |
struct rte_fib * | rte_fib_find_existing (const char *name) |
void | rte_fib_free (struct rte_fib *fib) |
int | rte_fib_add (struct rte_fib *fib, uint32_t ip, uint8_t depth, uint64_t next_hop) |
int | rte_fib_delete (struct rte_fib *fib, uint32_t ip, uint8_t depth) |
int | rte_fib_lookup_bulk (struct rte_fib *fib, uint32_t *ips, uint64_t *next_hops, int n) |
void * | rte_fib_get_dp (struct rte_fib *fib) |
struct rte_rib * | rte_fib_get_rib (struct rte_fib *fib) |
int | rte_fib_select_lookup (struct rte_fib *fib, enum rte_fib_lookup_type type) |
__rte_experimental int | rte_fib_rcu_qsbr_add (struct rte_fib *fib, struct rte_fib_rcu_config *cfg) |
RTE FIB library.
FIB (Forwarding information base) implementation for IPv4 Longest Prefix Match
Definition in file rte_fib.h.
#define RTE_FIB_MAXDEPTH 32 |
#define RTE_FIB_F_NETWORK_ORDER 1 |
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) |
enum rte_fib_qsbr_mode |
enum rte_fib_type |
enum rte_fib_lookup_type |
Type of lookup function implementation
struct rte_fib* rte_fib_create | ( | const char * | name, |
int | socket_id, | ||
struct rte_fib_conf * | conf | ||
) |
Create FIB
name | FIB name |
socket_id | NUMA socket ID for FIB table memory allocation |
conf | Structure containing the configuration |
struct rte_fib* rte_fib_find_existing | ( | const char * | name | ) |
Find an existing FIB object and return a pointer to it.
name | Name of the fib object as passed to rte_fib_create() |
void rte_fib_free | ( | struct rte_fib * | fib | ) |
Free an FIB object.
fib | FIB object handle created by rte_fib_create(). If fib is NULL, no operation is performed. |
int rte_fib_add | ( | struct rte_fib * | fib, |
uint32_t | ip, | ||
uint8_t | depth, | ||
uint64_t | next_hop | ||
) |
Add a route to the FIB.
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 |
int rte_fib_delete | ( | struct rte_fib * | fib, |
uint32_t | ip, | ||
uint8_t | depth | ||
) |
Delete a rule from the FIB.
fib | FIB object handle |
ip | IPv4 prefix address to be deleted from the FIB |
depth | Prefix length |
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.
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. |
void* rte_fib_get_dp | ( | struct rte_fib * | fib | ) |
Get pointer to the dataplane specific struct
fib | FIB object handle |
struct rte_rib* rte_fib_get_rib | ( | struct rte_fib * | fib | ) |
Get pointer to the RIB
fib | FIB object handle |
int rte_fib_select_lookup | ( | struct rte_fib * | fib, |
enum rte_fib_lookup_type | type | ||
) |
Set lookup function based on type
fib | FIB object handle |
type | type of lookup function |
__rte_experimental int rte_fib_rcu_qsbr_add | ( | struct rte_fib * | fib, |
struct rte_fib_rcu_config * | cfg | ||
) |
Associate RCU QSBR variable with a FIB object.
fib | FIB object handle |
cfg | RCU QSBR configuration |