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

  
 
  

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

NAME
     rte_lpm6.h

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

   Data Structures
     struct rte_lpm6_config

   Macros
     #define RTE_LPM6_NAMESIZE	 32

   Functions
     void rte_lpm6_free (struct rte_lpm6 *lpm)
     struct  rte_lpm6  * rte_lpm6_create (const char *name, int socket_id, const
	 struct    rte_lpm6_config     *config)     __rte_malloc     __rte_deal-
	 loc(rte_lpm6_free
     struct rte_lpm6 struct rte_lpm6 * rte_lpm6_find_existing (const char *name)
     int  rte_lpm6_add	(struct  rte_lpm6  *lpm, const struct rte_ipv6_addr *ip,
	 uint8_t depth, uint32_t next_hop)
     int  rte_lpm6_is_rule_present   (struct   rte_lpm6   *lpm,   const   struct
	 rte_ipv6_addr *ip, uint8_t depth, uint32_t *next_hop)
     int  rte_lpm6_delete (struct rte_lpm6 *lpm, const struct rte_ipv6_addr *ip,
	 uint8_t depth)
     int rte_lpm6_delete_bulk_func (struct rte_lpm6 *lpm,  struct  rte_ipv6_addr
	 *ips, uint8_t *depths, unsigned int n)
     void rte_lpm6_delete_all (struct rte_lpm6 *lpm)
     int rte_lpm6_lookup (const struct rte_lpm6 *lpm, const struct rte_ipv6_addr
	 *ip, uint32_t *next_hop)
     int   rte_lpm6_lookup_bulk_func   (const	struct	 rte_lpm6  *lpm,  struct
	 rte_ipv6_addr *ips, int32_t *next_hops, unsigned int n)

Detailed Description
     RTE Longest Prefix Match for IPv6 (LPM6)

     Definition in file rte_lpm6.h.

Macro Definition Documentation
   #define RTE_LPM6_NAMESIZE   32
     Max number of characters in LPM name.

     Definition at line 25 of file rte_lpm6.h.

Function Documentation
   void rte_lpm6_free (struct rte_lpm6 * lpm)
     Free an LPM object.

     Parameters
	 lpm LPM object handle If lpm is NULL, no operation is performed.

   struct rte_lpm6 * rte_lpm6_create (const char * name,  int  socket_id,  const
     struct rte_lpm6_config * config)
     Create an LPM object.

     Parameters
	 name LPM object name
	 socket_id NUMA socket ID for LPM table memory allocation
	 config Structure containing the configuration

     Returns
	 Handle  to  LPM object on success, NULL otherwise with rte_errno set to
	 an appropriate values. Possible rte_errno values include:

	 * E_RTE_NO_CONFIG - function could not get pointer to rte_config struc-
	   ture

	 * E_RTE_SECONDARY - function was called from a  secondary  process  in-
	   stance

	 * EINVAL - invalid parameter passed to function

	 * ENOSPC - the maximum number of memzones has already been allocated

	 * EEXIST - a memzone with the same name already exists

	 * ENOMEM - no appropriate memory area found in which to create memzone

   struct rte_lpm6 struct rte_lpm6 * rte_lpm6_find_existing (const char * name)
     Find an existing LPM object and return a pointer to it.

     Parameters
	 name Name of the lpm object as passed to rte_lpm6_create()

     Returns
	 Pointer  to  lpm  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_lpm6_add (struct rte_lpm6 * lpm, const  struct  rte_ipv6_addr  *  ip,
     uint8_t depth, uint32_t next_hop)
     Add a rule to the LPM table.

     Parameters
	 lpm LPM object handle
	 ip IP of the rule to be added to the LPM table
	 depth Depth of the rule to be added to the LPM table
	 next_hop Next hop of the rule to be added to the LPM table

     Returns
	 0 on success, negative value otherwise

   int	 rte_lpm6_is_rule_present   (struct   rte_lpm6	 *   lpm,  const  struct
     rte_ipv6_addr * ip, uint8_t depth, uint32_t * next_hop)
     Check if a rule is present in the LPM table, and provide its next hop if it
     is.

     Parameters
	 lpm LPM object handle
	 ip IP of the rule to be searched
	 depth Depth of the rule to searched
	 next_hop Next hop of the rule (valid only if it is found)

     Returns
	 1 if the rule exists, 0 if it does not, a negative value on failure

   int rte_lpm6_delete (struct rte_lpm6 * lpm, const struct rte_ipv6_addr *  ip,
     uint8_t depth)
     Delete a rule from the LPM table.

     Parameters
	 lpm LPM object handle
	 ip IP of the rule to be deleted from the LPM table
	 depth Depth of the rule to be deleted from the LPM table

     Returns
	 0 on success, negative value otherwise

   int	rte_lpm6_delete_bulk_func (struct rte_lpm6 * lpm, struct rte_ipv6_addr *
     ips, uint8_t * depths, unsigned int n)
     Delete a rule from the LPM table.

     Parameters
	 lpm LPM object handle
	 ips Array of IPs to be deleted from the LPM table
	 depths Array of depths of the rules to be deleted from the LPM table
	 n Number of rules to be deleted from the LPM table

     Returns
	 0 on success, negative value otherwise.

   void rte_lpm6_delete_all (struct rte_lpm6 * lpm)
     Delete all rules from the LPM table.

     Parameters
	 lpm LPM object handle

   int rte_lpm6_lookup (const struct rte_lpm6 * lpm, const struct  rte_ipv6_addr
     * ip, uint32_t * next_hop)
     Lookup an IP into the LPM table.

     Parameters
	 lpm LPM object handle
	 ip IP to be looked up in the LPM table
	 next_hop  Next  hop  of  the  most specific rule found for IP (valid on
	 lookup hit only)

     Returns
	 -EINVAL for incorrect arguments, -ENOENT on lookup miss,  0  on  lookup
	 hit

   int	 rte_lpm6_lookup_bulk_func   (const   struct   rte_lpm6  *  lpm,  struct
     rte_ipv6_addr * ips, int32_t * next_hops, unsigned int n)
     Lookup multiple IP addresses in an LPM table.

     Parameters
	 lpm LPM object handle
	 ips Array of IPs to be looked up in the LPM table
	 next_hops Next hop of the most specific rule found  for  IP  (valid  on
	 lookup  hit  only).  This  is an array of two byte values. The next hop
	 will be stored on each position on success; otherwise the position will
	 be set to -1.
	 n Number of elements in ips (and next_hops) array to lookup.

     Returns
	 -EINVAL for incorrect arguments, otherwise 0

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

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

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

home | help