table of contents
rte_rib.h(3) | DPDK | rte_rib.h(3) |
NAME¶
rte_rib.h
SYNOPSIS¶
#include <stdlib.h>
#include <stdint.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)
struct rte_rib * rte_rib_create (const char *name, int socket_id, const
struct rte_rib_conf *conf)
struct rte_rib * rte_rib_find_existing (const char *name)
void rte_rib_free (struct rte_rib *rib)
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 28 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
Returns
Definition at line 60 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
ip IP to be looked up in the RIB
Returns
struct rte_rib_node* rte_rib_lookup_parent (struct rte_rib_node * ent)¶
Lookup less specific route into the RIB structure
Parameters
Returns
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
ip net to be looked up in the RIB
depth prefix length
Returns
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
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
void rte_rib_remove (struct rte_rib * rib, uint32_t ip, uint8_t depth)¶
Remove prefix from the RIB
Parameters
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
ip net to be inserted to the RIB
depth prefix length
Returns
int rte_rib_get_ip (const struct rte_rib_node * node, uint32_t * ip)¶
Get an ip from rte_rib_node
Parameters
ip pointer to the ip to save
Returns
int rte_rib_get_depth (const struct rte_rib_node * node, uint8_t * depth)¶
Get a depth from rte_rib_node
Parameters
depth pointer to the depth to save
Returns
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
Returns
int rte_rib_get_nh (const struct rte_rib_node * node, uint64_t * nh)¶
Get nexthop from the rib node
Parameters
nh pointer to the nexthop to save
Returns
int rte_rib_set_nh (struct rte_rib_node * node, uint64_t nh)¶
Set nexthop into the rib node
Parameters
nh nexthop value to set to the rib node
Returns
struct rte_rib* rte_rib_create (const char * name, int socket_id, const struct rte_rib_conf * conf)¶
Create RIB
Parameters
socket_id NUMA socket ID for RIB table memory allocation
conf Structure containing the configuration
Returns
struct rte_rib* rte_rib_find_existing (const char * name)¶
Find an existing RIB object and return a pointer to it.
Parameters
Returns
void rte_rib_free (struct rte_rib * rib)¶
Free an RIB object.
Parameters
Author¶
Generated automatically by Doxygen for DPDK from the source code.
Fri Dec 15 2023 | Version 23.11.0 |