rte_fib.h(3) | DPDK | rte_fib.h(3) |
NAME¶
rte_fib.h
SYNOPSIS¶
#include <stdint.h>
Data Structures¶
struct rte_fib_conf
Macros¶
#define RTE_FIB_MAXDEPTH 32
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)
Enumerations¶
enum rte_fib_type { RTE_FIB_DUMMY,
RTE_FIB_DIR24_8 }
enum rte_fib_dir24_8_nh_sz
enum rte_fib_lookup_type { RTE_FIB_LOOKUP_DEFAULT,
RTE_FIB_LOOKUP_DIR24_8_SCALAR_MACRO,
RTE_FIB_LOOKUP_DIR24_8_SCALAR_INLINE,
RTE_FIB_LOOKUP_DIR24_8_SCALAR_UNI,
RTE_FIB_LOOKUP_DIR24_8_VECTOR_AVX512 }
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)
Detailed Description¶
RTE FIB library.
FIB (Forwarding information base) implementation for IPv4 Longest Prefix Match
Definition in file rte_fib.h.
Macro Definition Documentation¶
#define RTE_FIB_MAXDEPTH 32¶
Maximum depth value possible for IPv4 FIB.
Definition at line 29 of file rte_fib.h.
Typedef Documentation¶
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 38 of file rte_fib.h.
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 41 of file rte_fib.h.
Enumeration Type Documentation¶
enum 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 32 of file rte_fib.h.
enum rte_fib_dir24_8_nh_sz¶
Size of nexthop (1 << nh_sz) bits for DIR24_8 based FIB
Definition at line 50 of file rte_fib.h.
enum rte_fib_lookup_type¶
Type of lookup function implementation
Enumerator
- RTE_FIB_LOOKUP_DEFAULT
- Selects the best implementation based on the max simd bitwidth
- RTE_FIB_LOOKUP_DIR24_8_SCALAR_MACRO
- Macro based lookup function
- RTE_FIB_LOOKUP_DIR24_8_SCALAR_INLINE
- Lookup implementation using inlined functions for different next hop sizes
- RTE_FIB_LOOKUP_DIR24_8_SCALAR_UNI
- Unified lookup function for all next hop sizes
- RTE_FIB_LOOKUP_DIR24_8_VECTOR_AVX512
- Vector implementation using AVX512
Definition at line 58 of file rte_fib.h.
Function Documentation¶
struct rte_fib* rte_fib_create (const char * name, int socket_id, struct rte_fib_conf * conf)¶
Create FIB
Parameters:
socket_id NUMA socket ID for FIB table memory allocation
conf Structure containing the configuration
Returns:
struct rte_fib* rte_fib_find_existing (const char * name)¶
Find an existing FIB object and return a pointer to it.
Parameters:
Returns:
- •
- ENOENT - required entry not available to return.
void rte_fib_free (struct rte_fib * fib)¶
Free an FIB object.
Parameters:
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:
ip IPv4 prefix address to be added to the FIB
depth Prefix length
next_hop Next hop to be added to the FIB
Returns:
int rte_fib_delete (struct rte_fib * fib, uint32_t ip, uint8_t depth)¶
Delete a rule from the FIB.
Parameters:
ip IPv4 prefix address to be deleted from the FIB
depth Prefix length
Returns:
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:
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:
void* rte_fib_get_dp (struct rte_fib * fib)¶
Get pointer to the dataplane specific struct
Parameters:
Returns:
struct rte_rib* rte_fib_get_rib (struct rte_fib * fib)¶
Get pointer to the RIB
Parameters:
Returns:
int rte_fib_select_lookup (struct rte_fib * fib, enum rte_fib_lookup_type type)¶
Set lookup function based on type
Parameters:
type type of lookup function
Returns:
Author¶
Generated automatically by Doxygen for DPDK from the source code.
Thu May 23 2024 | Version 23.11.0 |