rte_fib6.h(3) | DPDK | rte_fib6.h(3) |
NAME¶
rte_fib6.h
SYNOPSIS¶
#include <stdint.h>
Data Structures¶
struct rte_fib6_conf
Macros¶
#define RTE_FIB6_MAXDEPTH 128
Typedefs¶
typedef int(* rte_fib6_modify_fn_t) (struct rte_fib6
*fib, const uint8_t ip[RTE_FIB6_IPV6_ADDR_SIZE], uint8_t depth, uint64_t
next_hop, int op)
typedef void(* rte_fib6_lookup_fn_t) (void *fib, uint8_t
ips[][RTE_FIB6_IPV6_ADDR_SIZE], uint64_t *next_hops, const unsigned int n)
Enumerations¶
enum rte_fib6_type { RTE_FIB6_DUMMY,
RTE_FIB6_TRIE }
enum rte_fib_trie_nh_sz
enum rte_fib6_lookup_type { RTE_FIB6_LOOKUP_DEFAULT,
RTE_FIB6_LOOKUP_TRIE_SCALAR,
RTE_FIB6_LOOKUP_TRIE_VECTOR_AVX512 }
Functions¶
struct rte_fib6 * rte_fib6_create (const char *name, int
socket_id, struct rte_fib6_conf *conf)
struct rte_fib6 * rte_fib6_find_existing (const char *name)
void rte_fib6_free (struct rte_fib6 *fib)
int rte_fib6_add (struct rte_fib6 *fib, const uint8_t
ip[RTE_FIB6_IPV6_ADDR_SIZE], uint8_t depth, uint64_t next_hop)
int rte_fib6_delete (struct rte_fib6 *fib, const uint8_t
ip[RTE_FIB6_IPV6_ADDR_SIZE], uint8_t depth)
int rte_fib6_lookup_bulk (struct rte_fib6 *fib, uint8_t
ips[][RTE_FIB6_IPV6_ADDR_SIZE], uint64_t *next_hops, int n)
void * rte_fib6_get_dp (struct rte_fib6 *fib)
struct rte_rib6 * rte_fib6_get_rib (struct rte_fib6 *fib)
int rte_fib6_select_lookup (struct rte_fib6 *fib, enum
rte_fib6_lookup_type type)
Detailed Description¶
RTE FIB6 library.
FIB (Forwarding information base) implementation for IPv6 Longest Prefix Match
Definition in file rte_fib6.h.
Macro Definition Documentation¶
#define RTE_FIB6_MAXDEPTH 128¶
Maximum depth value possible for IPv6 FIB.
Definition at line 27 of file rte_fib6.h.
Typedef Documentation¶
typedef int(* rte_fib6_modify_fn_t) (struct rte_fib6 *fib, const uint8_t ip[RTE_FIB6_IPV6_ADDR_SIZE], uint8_t depth, uint64_t next_hop, int op)¶
Modify FIB function
Definition at line 39 of file rte_fib6.h.
typedef void(* rte_fib6_lookup_fn_t) (void *fib, uint8_t ips[][RTE_FIB6_IPV6_ADDR_SIZE], uint64_t *next_hops, const unsigned int n)¶
FIB bulk lookup function
Definition at line 43 of file rte_fib6.h.
Enumeration Type Documentation¶
enum rte_fib6_type¶
Type of FIB struct
Enumerator
- RTE_FIB6_DUMMY
- RIB6 tree based FIB
- RTE_FIB6_TRIE
- TRIE based fib
Definition at line 33 of file rte_fib6.h.
enum rte_fib_trie_nh_sz¶
Size of nexthop (1 << nh_sz) bits for TRIE based FIB
Definition at line 53 of file rte_fib6.h.
enum rte_fib6_lookup_type¶
Type of lookup function implementation
Enumerator
- RTE_FIB6_LOOKUP_DEFAULT
- Selects the best implementation based on the max simd bitwidth
- RTE_FIB6_LOOKUP_TRIE_SCALAR
- Scalar lookup function implementation
- RTE_FIB6_LOOKUP_TRIE_VECTOR_AVX512
- Vector implementation using AVX512
Definition at line 60 of file rte_fib6.h.
Function Documentation¶
struct rte_fib6* rte_fib6_create (const char * name, int socket_id, struct rte_fib6_conf * conf)¶
Create FIB
Parameters
socket_id NUMA socket ID for FIB table memory allocation
conf Structure containing the configuration
Returns
struct rte_fib6* rte_fib6_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_fib6_free (struct rte_fib6 * fib)¶
Free an FIB object.
Parameters
int rte_fib6_add (struct rte_fib6 * fib, const uint8_t ip[RTE_FIB6_IPV6_ADDR_SIZE], uint8_t depth, uint64_t next_hop)¶
Add a route to the FIB.
Parameters
ip IPv6 prefix address to be added to the FIB
depth Prefix length
next_hop Next hop to be added to the FIB
Returns
int rte_fib6_delete (struct rte_fib6 * fib, const uint8_t ip[RTE_FIB6_IPV6_ADDR_SIZE], uint8_t depth)¶
Delete a rule from the FIB.
Parameters
ip IPv6 prefix address to be deleted from the FIB
depth Prefix length
Returns
int rte_fib6_lookup_bulk (struct rte_fib6 * fib, uint8_t ips[][RTE_FIB6_IPV6_ADDR_SIZE], uint64_t * next_hops, int n)¶
Lookup multiple IP addresses in the FIB.
Parameters
ips Array of IPv6s 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_fib6_get_dp (struct rte_fib6 * fib)¶
Get pointer to the dataplane specific struct
Parameters
Returns
struct rte_rib6* rte_fib6_get_rib (struct rte_fib6 * fib)¶
Get pointer to the RIB6
Parameters
Returns
int rte_fib6_select_lookup (struct rte_fib6 * fib, enum rte_fib6_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.
Fri Dec 15 2023 | Version 23.11.0 |