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

FreeBSD Manual Pages

  
 
  

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
	   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)

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

home | help