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

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)
       struct rte_rib6 * rte_rib6_create (const char *name, int socket_id, const struct rte_rib6_conf *conf)
       struct rte_rib6 * rte_rib6_find_existing (const char *name)
       void rte_rib6_free (struct rte_rib6 *rib)

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.

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

   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.

Author

       Generated automatically by Doxygen for DPDK from the source code.

DPDK                                             Version 24.11.2                                   rte_rib6.h(3)