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

FreeBSD Manual Pages

  
 
  

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

NAME
       rte_rib.h

SYNOPSIS
       #include	<stdlib.h>
       #include	<stdint.h>
       #include	<rte_common.h>

   Data	Structures
       struct rte_rib_conf

   Enumerations
       enum { RTE_RIB_GET_NXT_ALL, RTE_RIB_GET_NXT_COVER }

   Functions
       static uint32_t rte_rib_depth_to_mask (uint8_t depth)
       struct rte_rib_node * rte_rib_lookup (struct rte_rib *rib, uint32_t ip)
       struct rte_rib_node * rte_rib_lookup_parent (struct rte_rib_node	*ent)
       struct rte_rib_node * rte_rib_lookup_exact (struct rte_rib *rib,
	   uint32_t ip,	uint8_t	depth)
       struct rte_rib_node * rte_rib_get_nxt (struct rte_rib *rib, uint32_t
	   ip, uint8_t depth, struct rte_rib_node *last, int flag)
       void rte_rib_remove (struct rte_rib *rib, uint32_t ip, uint8_t depth)
       struct rte_rib_node * rte_rib_insert (struct rte_rib *rib, uint32_t ip,
	   uint8_t depth)
       int rte_rib_get_ip (const struct	rte_rib_node *node, uint32_t *ip)
       int rte_rib_get_depth (const struct rte_rib_node	*node, uint8_t *depth)
       void * rte_rib_get_ext (struct rte_rib_node *node)
       int rte_rib_get_nh (const struct	rte_rib_node *node, uint64_t *nh)
       int rte_rib_set_nh (struct rte_rib_node *node, uint64_t nh)
       void rte_rib_free (struct rte_rib *rib)
       struct rte_rib *	rte_rib_create (const char *name, int socket_id, const
	   struct rte_rib_conf *conf) __rte_malloc __rte_dealloc(rte_rib_free
       struct rte_rib struct rte_rib * rte_rib_find_existing (const char
	   *name)

Detailed Description
       RTE RIB library.

       Level compressed	tree implementation for	IPv4 Longest Prefix Match

       Definition in file rte_rib.h.

Enumeration Type Documentation
   anonymous enum
       rte_rib_get_nxt() flags

       Enumerator

       RTE_RIB_GET_NXT_ALL
	      flag to get all subroutes	in a RIB tree

       RTE_RIB_GET_NXT_COVER
	      flag to get first	matched	subroutes in a RIB tree

       Definition at line 29 of	file rte_rib.h.

Function Documentation
   static uint32_t rte_rib_depth_to_mask (uint8_t depth) [inline],  [static]
       Get an IPv4 mask	from prefix length It is caller	responsibility to make
       sure depth is not bigger	than 32

       Parameters
	   depth prefix	length

       Returns
	   IPv4	mask

       Definition at line 61 of	file rte_rib.h.

   struct rte_rib_node * rte_rib_lookup	(struct	rte_rib	* rib, uint32_t	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_rib_node on success NULL otherwise

   struct rte_rib_node * rte_rib_lookup_parent (struct rte_rib_node * ent)
       Lookup less specific route into the RIB structure

       Parameters
	   ent Pointer to struct rte_rib_node that represents target route

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

   struct rte_rib_node * rte_rib_lookup_exact (struct rte_rib *	rib,  uint32_t
       ip, uint8_t depth)
       Lookup 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_rib_node on success NULL otherwise

   struct  rte_rib_node	 * rte_rib_get_nxt (struct rte_rib * rib, uint32_t ip,
       uint8_t depth, struct rte_rib_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_RIB_GET_NXT_ALL	 get   all   prefixes	from   subtrie
	   -RTE_RIB_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_rib_remove (struct rte_rib * rib, uint32_t 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_rib_node	 *  rte_rib_insert (struct rte_rib * rib, uint32_t 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_rib_node on success NULL otherwise

   int rte_rib_get_ip (const struct rte_rib_node * node, uint32_t * ip)
       Get an ip from rte_rib_node

       Parameters
	   node	pointer	to the rib node
	   ip pointer to the ip	to save

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

   int rte_rib_get_depth (const	struct rte_rib_node * node, uint8_t * depth)
       Get a depth from	rte_rib_node

       Parameters
	   node	pointer	to the rib node
	   depth pointer to the	depth to save

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

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

       Parameters
	   node	pointer	to the rib node

       Returns
	   pointer to the ext

   int rte_rib_get_nh (const struct rte_rib_node * node, uint64_t * nh)
       Get nexthop from	the rib	node

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

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

   int rte_rib_set_nh (struct rte_rib_node * node, uint64_t nh)
       Set nexthop into	the rib	node

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

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

   void	rte_rib_free (struct rte_rib * rib)
       Free an RIB object.

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

   struct rte_rib * rte_rib_create (const char * name,	int  socket_id,	 const
       struct rte_rib_conf * conf)
       Create RIB

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

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

   struct rte_rib struct rte_rib * rte_rib_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_rib_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_rib.h(3)

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

home | help