Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
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 config-
	 ured dataplane algorithm

Author
     Generated automatically by Doxygen for DPDK from the source code.

Version 25.11.0 		 Thu Aug 27 2026		   rte_fib6.h(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rte_fib6_get_rib&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help