FreeBSD Manual Pages
rte_fib6.h(3) DPDK rte_fib6.h(3) NAME rte_fib6.h SYNOPSIS #include <stdint.h> #include <rte_common.h> #include <rte_ip6.h> #include <rte_rcu_qsbr.h> Data Structures struct rte_fib6_conf struct rte_fib6_rcu_config Macros #define RTE_FIB6_MAXDEPTH (RTE_DEPRECATED(RTE_FIB6_MAXDEPTH) RTE_IPV6_MAX_DEPTH) Typedefs typedef int(* rte_fib6_modify_fn_t) (struct rte_fib6 *fib, const struct rte_ipv6_addr *ip, uint8_t depth, uint64_t next_hop, int op) typedef void(* rte_fib6_lookup_fn_t) (void *fib, const struct rte_ipv6_addr *ips, uint64_t *next_hops, const unsigned int n) Enumerations enum rte_fib6_qsbr_mode { RTE_FIB6_QSBR_MODE_DQ = 0, RTE_FIB6_QSBR_MODE_SYNC } 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 void rte_fib6_free (struct rte_fib6 *fib) struct rte_fib6 * rte_fib6_create (const char *name, int socket_id, struct rte_fib6_conf *conf) __rte_malloc __rte_dealloc(rte_fib6_free struct rte_fib6 struct rte_fib6 * rte_fib6_find_existing (const char *name) int rte_fib6_add (struct rte_fib6 *fib, const struct rte_ipv6_addr *ip, uint8_t depth, uint64_t next_hop) int rte_fib6_delete (struct rte_fib6 *fib, const struct rte_ipv6_addr *ip, uint8_t depth) int rte_fib6_lookup_bulk (struct rte_fib6 *fib, const struct rte_ipv6_addr *ips, 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) __rte_experimental int rte_fib6_rcu_qsbr_add (struct rte_fib6 *fib, struct rte_fib6_rcu_config *cfg) 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 (RTE_DEPRECATED(RTE_FIB6_MAXDEPTH) RTE_IPV6_MAX_DEPTH) Maximum depth value possible for IPv6 FIB. Definition at line 30 of file rte_fib6.h. Typedef Documentation typedef int(* rte_fib6_modify_fn_t) (struct rte_fib6 *fib, const struct rte_ipv6_addr *ip, uint8_t depth, uint64_t next_hop, int op) Modify FIB function Definition at line 58 of file rte_fib6.h. typedef void(* rte_fib6_lookup_fn_t) (void *fib, const struct rte_ipv6_addr *ips, uint64_t *next_hops, const unsigned int n) FIB bulk lookup function Definition at line 62 of file rte_fib6.h. Enumeration Type Documentation enum rte_fib6_qsbr_mode RCU reclamation modes Enumerator RTE_FIB6_QSBR_MODE_DQ Create defer queue for reclaim. RTE_FIB6_QSBR_MODE_SYNC Use blocking mode reclaim. No defer queue created. Definition at line 44 of file rte_fib6.h. 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 52 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 72 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 79 of file rte_fib6.h. Function Documentation void rte_fib6_free (struct rte_fib6 * fib) Free an FIB object. Parameters fib FIB object handle created by rte_fib6_create(). If fib is NULL, no operation is performed. struct rte_fib6 * rte_fib6_create (const char * name, int socket_id, struct rte_fib6_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 FIB object on success NULL otherwise with rte_errno set to an appropriate values. struct rte_fib6 struct rte_fib6 * rte_fib6_find_existing (const char * name) Find an existing FIB object and return a pointer to it. Parameters name Name of the fib object as passed to rte_fib6_create() 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. int rte_fib6_add (struct rte_fib6 * fib, const struct rte_ipv6_addr * ip, uint8_t depth, uint64_t next_hop) Add a route to the FIB. Parameters fib FIB object handle ip IPv6 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 int rte_fib6_delete (struct rte_fib6 * fib, const struct rte_ipv6_addr * ip, uint8_t depth) Delete a rule from the FIB. Parameters fib FIB object handle ip IPv6 prefix address to be deleted from the FIB depth Prefix length Returns 0 on success, negative value otherwise int rte_fib6_lookup_bulk (struct rte_fib6 * fib, const struct rte_ipv6_addr * ips, uint64_t * next_hops, int n) Lookup multiple IP addresses in the FIB. Parameters fib FIB object handle 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 -EINVAL for incorrect arguments, otherwise 0 void * rte_fib6_get_dp (struct rte_fib6 * fib) Get pointer to the dataplane specific struct Parameters fib FIB6 object handle Returns Pointer on the dataplane struct on success NULL otherwise struct rte_rib6 * rte_fib6_get_rib (struct rte_fib6 * fib) Get pointer to the RIB6 Parameters fib FIB object handle Returns Pointer on the RIB6 on success NULL otherwise int rte_fib6_select_lookup (struct rte_fib6 * fib, enum rte_fib6_lookup_type type) Set lookup function based on type Parameters fib FIB object handle type type of lookup function Returns 0 on success -EINVAL on failure __rte_experimental int rte_fib6_rcu_qsbr_add (struct rte_fib6 * fib, struct rte_fib6_rcu_config * cfg) Associate RCU QSBR variable with a FIB object. Parameters fib FIB object handle cfg RCU QSBR configuration Returns 0 on success -EINVAL - invalid pointer -EEXIST - already added QSBR -ENOMEM - memory allocation failure -ENOTSUP - not supported by configured dataplane algorithm Author Generated automatically by Doxygen for DPDK from the source code. Version 25.11.0 Thu Jun 11 2026 rte_fib6.h(3)
NAME | SYNOPSIS | Detailed Description | Macro Definition Documentation | Typedef Documentation | Enumeration Type Documentation | Function Documentation | Author
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rte_fib6_free&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
