CNDP
22.08.0
|
Go to the source code of this file.
Data Structures | |
struct | cne_fib_conf |
Macros | |
#define | CNE_FIB_MAXDEPTH 32 |
Typedefs | |
typedef int(* | cne_fib_modify_fn_t) (struct cne_fib *fib, uint32_t ip, uint8_t depth, uint64_t next_hop, int op) |
typedef void(* | cne_fib_lookup_fn_t) (void *fib, const uint32_t *ips, uint64_t *next_hops, const unsigned int n) |
Functions | |
struct cne_fib * | cne_fib_create (const char *name, struct cne_fib_conf *conf) |
void | cne_fib_free (struct cne_fib *fib) |
int | cne_fib_add (struct cne_fib *fib, uint32_t ip, uint8_t depth, uint64_t next_hop) |
int | cne_fib_delete (struct cne_fib *fib, uint32_t ip, uint8_t depth) |
int | cne_fib_lookup_bulk (struct cne_fib *fib, uint32_t *ips, uint64_t *next_hops, int n) |
void * | cne_fib_get_dp (struct cne_fib *fib) |
struct cne_rib * | cne_fib_get_rib (struct cne_fib *fib) |
int | cne_fib_select_lookup (struct cne_fib *fib, enum cne_fib_lookup_type type) |
CNE FIB library.
FIB (Forwarding information base) implementation for IPv4 Longest Prefix Match
Definition in file cne_fib.h.
#define CNE_FIB_MAXDEPTH 32 |
typedef int(* cne_fib_modify_fn_t) (struct cne_fib *fib, uint32_t ip, uint8_t depth, uint64_t next_hop, int op) |
typedef void(* cne_fib_lookup_fn_t) (void *fib, const uint32_t *ips, uint64_t *next_hops, const unsigned int n) |
enum cne_fib_type |
enum cne_fib_lookup_type |
Type of lookup function implementation
struct cne_fib* cne_fib_create | ( | const char * | name, |
struct cne_fib_conf * | conf | ||
) |
Create a FIB structure using the configuration specified.
name | FIB name |
conf | Structure containing the configuration |
void cne_fib_free | ( | struct cne_fib * | fib | ) |
Free an FIB object.
fib | FIB object handle |
int cne_fib_add | ( | struct cne_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 cne_fib_delete | ( | struct cne_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 cne_fib_lookup_bulk | ( | struct cne_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* cne_fib_get_dp | ( | struct cne_fib * | fib | ) |
Get pointer to the dataplane specific struct
fib | FIB object handle |
struct cne_rib* cne_fib_get_rib | ( | struct cne_fib * | fib | ) |
Get pointer to the RIB
fib | FIB object handle |
int cne_fib_select_lookup | ( | struct cne_fib * | fib, |
enum cne_fib_lookup_type | type | ||
) |
Set lookup function based on type
fib | FIB object handle |
type | type of lookup function |