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

FreeBSD Manual Pages

  
 
  

home | help
rte_rib6.h(3)			     DPDK			 rte_rib6.h(3)

NAME
       rte_rib6.h

SYNOPSIS
       #include	<rte_memcpy.h>
       #include	<rte_common.h>
       #include	<rte_ip6.h>

   Data	Structures
       struct rte_rib6_conf

   Enumerations
       enum { RTE_RIB6_GET_NXT_ALL, RTE_RIB6_GET_NXT_COVER }

   Functions
       static void rte_rib6_copy_addr (uint8_t *dst, const uint8_t *src)
	   __rte_deprecated_msg('use direct struct assignment')
       static int rte_rib6_is_equal (const uint8_t *ip1, const uint8_t *ip2)
	   __rte_deprecated_msg('use rte_ipv6_addr_eq')
       static uint8_t get_msk_part (uint8_t depth, int byte) __rte_deprecated
       struct rte_rib6_node * rte_rib6_lookup (struct rte_rib6 *rib, const
	   struct rte_ipv6_addr	*ip)
       struct rte_rib6_node * rte_rib6_lookup_parent (struct rte_rib6_node
	   *ent)
       struct rte_rib6_node * rte_rib6_lookup_exact (struct rte_rib6 *rib,
	   const struct	rte_ipv6_addr *ip, uint8_t depth)
       struct rte_rib6_node * rte_rib6_get_nxt (struct rte_rib6	*rib, const
	   struct rte_ipv6_addr	*ip, uint8_t depth, struct rte_rib6_node
	   *last, int flag)
       void rte_rib6_remove (struct rte_rib6 *rib, const struct	rte_ipv6_addr
	   *ip,	uint8_t	depth)
       struct rte_rib6_node * rte_rib6_insert (struct rte_rib6 *rib, const
	   struct rte_ipv6_addr	*ip, uint8_t depth)
       int rte_rib6_get_ip (const struct rte_rib6_node *node, struct
	   rte_ipv6_addr *ip)
       int rte_rib6_get_depth (const struct rte_rib6_node *node, uint8_t
	   *depth)
       void * rte_rib6_get_ext (struct rte_rib6_node *node)
       int rte_rib6_get_nh (const struct rte_rib6_node *node, uint64_t *nh)
       int rte_rib6_set_nh (struct rte_rib6_node *node,	uint64_t nh)
       void rte_rib6_free (struct rte_rib6 *rib)
       struct rte_rib6 * rte_rib6_create (const	char *name, int	socket_id,
	   const struct	rte_rib6_conf *conf) __rte_malloc
	   __rte_dealloc(rte_rib6_free
       struct rte_rib6 struct rte_rib6 * rte_rib6_find_existing	(const char
	   *name)

Detailed Description
       RTE rib6	library.

       Level compressed	tree implementation for	IPv6 Longest Prefix Match

       Definition in file rte_rib6.h.

Enumeration Type Documentation
   anonymous enum
       rte_rib6_get_nxt() flags

       Enumerator

       RTE_RIB6_GET_NXT_ALL
	      flag to get all subroutes	in a RIB tree

       RTE_RIB6_GET_NXT_COVER
	      flag to get first	matched	subroutes in a RIB tree

       Definition at line 30 of	file rte_rib6.h.

Function Documentation
   static  void	 rte_rib6_copy_addr  (uint8_t  *  dst,	const  uint8_t	* src)
       [inline],  [static]
       Copy IPv6 address from one location to another

       Parameters
	   dst pointer to the place to copy
	   src pointer from where to copy

       Definition at line 64 of	file rte_rib6.h.

   static int rte_rib6_is_equal	(const uint8_t * ip1,  const  uint8_t  *  ip2)
       [inline],  [static]
       Compare two IPv6	addresses

       Parameters
	   ip1 pointer to the first ipv6 address
	   ip2 pointer to the second ipv6 address

       Returns
	   1 if	equal 0	otherwise

       Definition at line 87 of	file rte_rib6.h.

   static uint8_t get_msk_part (uint8_t	depth, int byte) [inline],  [static]
       Get 8-bit part of 128-bit IPv6 mask

       Parameters
	   depth ipv6 prefix length
	   byte	position of a 8-bit chunk in the 128-bit mask

       Returns
	   8-bit chunk of the 128-bit IPv6 mask

       Definition at line 113 of file rte_rib6.h.

   struct rte_rib6_node	* rte_rib6_lookup (struct rte_rib6 * rib, const	struct
       rte_ipv6_addr * ip)
       Lookup an IP into the RIB structure

       Parameters
	   rib RIB object handle
	   ip IP to be looked up in the	RIB

       Returns
	   pointer to struct rte_rib6_node on success NULL otherwise

   struct rte_rib6_node	* rte_rib6_lookup_parent (struct rte_rib6_node * ent)
       Lookup less specific route into the RIB structure

       Parameters
	   ent Pointer to struct rte_rib6_node that represents target route

       Returns
	   pointer to struct rte_rib6_node that	represents less	specific route
	   on success NULL otherwise

   struct  rte_rib6_node * rte_rib6_lookup_exact (struct rte_rib6 * rib, const
       struct rte_ipv6_addr * ip, uint8_t depth)
       Provides	exact mach lookup of the prefix	into the RIB structure

       Parameters
	   rib RIB object handle
	   ip net to be	looked up in the RIB
	   depth prefix	length

       Returns
	   pointer to struct rte_rib6_node on success NULL otherwise

   struct rte_rib6_node	*  rte_rib6_get_nxt  (struct  rte_rib6	*  rib,	 const
       struct  rte_ipv6_addr * ip, uint8_t depth, struct rte_rib6_node * last,
       int flag)
       Retrieve	next more specific prefix from the  RIB	 that  is  covered  by
       ip/depth	supernet in an ascending order

       Parameters
	   rib RIB object handle
	   ip  net  address  of	 supernet  prefix  that	 covers	 returned more
	   specific prefixes
	   depth supernet prefix length
	   last	pointer	to the last returned prefix to get next	prefix or NULL
	   to get first	more specific prefix
	   flag	 -RTE_RIB6_GET_NXT_ALL	 get   all   prefixes	from   subtrie
	   -RTE_RIB6_GET_NXT_COVER get only first more specific	prefix even if
	   it have more	specifics

       Returns
	   pointer  to	the  next  more	 specific  prefix  NULL	if there is no
	   prefixes left

   void	rte_rib6_remove	(struct	rte_rib6 * rib,	const struct  rte_ipv6_addr  *
       ip, uint8_t depth)
       Remove prefix from the RIB

       Parameters
	   rib RIB object handle
	   ip net to be	removed	from the RIB
	   depth prefix	length

   struct rte_rib6_node	* rte_rib6_insert (struct rte_rib6 * rib, const	struct
       rte_ipv6_addr * ip, uint8_t depth)
       Insert prefix into the RIB

       Parameters
	   rib RIB object handle
	   ip net to be	inserted to the	RIB
	   depth prefix	length

       Returns
	   pointer to new rte_rib6_node	on success NULL	otherwise

   int	 rte_rib6_get_ip   (const   struct   rte_rib6_node   *	 node,	struct
       rte_ipv6_addr * ip)
       Get an ip from rte_rib6_node

       Parameters
	   node	pointer	to the rib6 node
	   ip pointer to the ipv6 to save

       Returns
	   0 on	success	-1 on failure with  rte_errno  indicating  reason  for
	   failure.

   int rte_rib6_get_depth (const struct	rte_rib6_node *	node, uint8_t *	depth)

       Get a depth from	rte_rib6_node

       Parameters
	   node	pointer	to the rib6 node
	   depth pointer to the	depth to save

       Returns
	   0  on  success  -1  on failure with rte_errno indicating reason for
	   failure.

   void	* rte_rib6_get_ext (struct rte_rib6_node * node)
       Get ext field from the rte_rib6_node It	is  caller  responsibility  to
       make sure there are necessary space for the ext field inside rib6 node.

       Parameters
	   node	pointer	to the rte_rib6_node

       Returns
	   pointer to the ext

   int rte_rib6_get_nh (const struct rte_rib6_node * node, uint64_t * nh)
       Get nexthop from	the rte_rib6_node

       Parameters
	   node	pointer	to the rib6 node
	   nh pointer to the nexthop to	save

       Returns
	   0  on  success  -1 on failure, with rte_errno indicating reason for
	   failure.

   int rte_rib6_set_nh (struct rte_rib6_node * node, uint64_t nh)
       Set nexthop into	the rte_rib6_node

       Parameters
	   node	pointer	to the rib6 node
	   nh nexthop value to set to the rib6 node

       Returns
	   0 on	success	-1 on failure, with rte_errno  indicating  reason  for
	   failure.

   void	rte_rib6_free (struct rte_rib6 * rib)
       Free an RIB object.

       Parameters
	   rib	RIB  object  handle  created with rte_rib6_create(). If	rib is
	   NULL, no operation is performed.

   struct rte_rib6 * rte_rib6_create (const char * name, int socket_id,	 const
       struct rte_rib6_conf * conf)
       Create RIB

       Parameters
	   name	RIB name
	   socket_id NUMA socket ID for	RIB table memory allocation
	   conf	Structure containing the configuration

       Returns
	   Pointer  to	RIB  object  on	 success NULL otherwise	with rte_errno
	   indicating reason for failure.

   struct rte_rib6 struct rte_rib6  *  rte_rib6_find_existing  (const  char  *
       name)
       Find an existing	RIB object and return a	pointer	to it.

       Parameters
	   name	Name of	the rib	object as passed to rte_rib6_create()

       Returns
	   Pointer  to	RIB  object  on	 success NULL otherwise	with rte_errno
	   indicating reason for failure.

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

Version	25.11.0			Thu Jun	11 2026			 rte_rib6.h(3)

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

home | help