Provided by: dpdk-doc_24.11.2-2_all bug

NAME

       rte_fib6.h

SYNOPSIS

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

   Data Structures
       struct rte_fib6_conf

   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_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
       struct rte_fib6 * rte_fib6_create (const char *name, int socket_id, struct rte_fib6_conf *conf)
       struct rte_fib6 * rte_fib6_find_existing (const char *name)
       void rte_fib6_free (struct rte_fib6 *fib)
       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)

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 29 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 41 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 45 of file rte_fib6.h.

Enumeration Type Documentation

   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 35 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 55 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 62 of file rte_fib6.h.

Function Documentation

   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 * 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.

   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.

   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

Author

       Generated automatically by Doxygen for DPDK from the source code.

DPDK                                             Version 24.11.2                                   rte_fib6.h(3)