FD.io VPP  v19.04.4-rc0-5-ge88582fac
Vector Packet Processing
radix.h File Reference
+ Include dependency graph for radix.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  radix_node
 
struct  radix_mask
 
struct  radix_node_head
 

Macros

#define RNF_NORMAL   1 /* leaf contains normal route */
 
#define RNF_ROOT   2 /* leaf is root leaf for tree */
 
#define RNF_ACTIVE   4 /* This node is alive (for rtfree) */
 
#define rn_dupedkey   rn_u.rn_leaf.rn_Dupedkey
 
#define rn_key   rn_u.rn_leaf.rn_Key
 
#define rn_mask   rn_u.rn_leaf.rn_Mask
 
#define rn_off   rn_u.rn_node.rn_Off
 
#define rn_l   rn_u.rn_node.rn_L
 
#define rn_r   rn_u.rn_node.rn_R
 
#define rm_mask   rm_rmu.rmu_mask
 
#define rm_leaf   rm_rmu.rmu_leaf /* extra field would make 32 bytes */
 

Functions

void rn_init (void)
 
int rn_inithead (void **, int)
 
void rn_delayedinit (void **, int)
 
int rn_inithead0 (struct radix_node_head *, int)
 
int rn_refines (const void *, const void *)
 
int rn_walktree (struct radix_node_head *, int(*)(struct radix_node *, void *), void *)
 
struct radix_nodern_search_matched (struct radix_node_head *, int(*)(struct radix_node *, void *), void *)
 
struct radix_nodern_addmask (const void *, int, int)
 
struct radix_nodern_addroute (const void *, const void *, struct radix_node_head *, struct radix_node [2])
 
struct radix_nodern_delete1 (const void *, const void *, struct radix_node_head *, struct radix_node *)
 
struct radix_nodern_delete (const void *, const void *, struct radix_node_head *)
 
struct radix_nodern_insert (const void *, struct radix_node_head *, int *, struct radix_node [2])
 
struct radix_nodern_lookup (const void *, const void *, struct radix_node_head *)
 
struct radix_nodern_match (const void *, struct radix_node_head *)
 
struct radix_nodern_newpair (const void *, int, struct radix_node[2])
 
struct radix_nodern_search (const void *, struct radix_node *)
 
struct radix_nodern_search_m (const void *, struct radix_node *, const void *)
 

Macro Definition Documentation

◆ rm_leaf

#define rm_leaf   rm_rmu.rmu_leaf /* extra field would make 32 bytes */

Definition at line 95 of file radix.h.

◆ rm_mask

#define rm_mask   rm_rmu.rmu_mask

Definition at line 94 of file radix.h.

◆ rn_dupedkey

#define rn_dupedkey   rn_u.rn_leaf.rn_Dupedkey

Definition at line 71 of file radix.h.

◆ rn_key

#define rn_key   rn_u.rn_leaf.rn_Key

Definition at line 72 of file radix.h.

◆ rn_l

#define rn_l   rn_u.rn_node.rn_L

Definition at line 75 of file radix.h.

◆ rn_mask

#define rn_mask   rn_u.rn_leaf.rn_Mask

Definition at line 73 of file radix.h.

◆ rn_off

#define rn_off   rn_u.rn_node.rn_Off

Definition at line 74 of file radix.h.

◆ rn_r

#define rn_r   rn_u.rn_node.rn_R

Definition at line 76 of file radix.h.

◆ RNF_ACTIVE

#define RNF_ACTIVE   4 /* This node is alive (for rtfree) */

Definition at line 51 of file radix.h.

◆ RNF_NORMAL

#define RNF_NORMAL   1 /* leaf contains normal route */

Definition at line 49 of file radix.h.

◆ RNF_ROOT

#define RNF_ROOT   2 /* leaf is root leaf for tree */

Definition at line 50 of file radix.h.

Function Documentation

◆ rn_addmask()

struct radix_node* rn_addmask ( const void *  ,
int  ,
int   
)

◆ rn_addroute()

struct radix_node * rn_addroute ( const void *  ,
const void *  ,
struct radix_node_head ,
struct radix_node  [2] 
)

◆ rn_delayedinit()

void rn_delayedinit ( void **  ,
int   
)

◆ rn_delete()

struct radix_node * rn_delete ( const void *  ,
const void *  ,
struct radix_node_head  
)

◆ rn_delete1()

struct radix_node * rn_delete1 ( const void *  ,
const void *  ,
struct radix_node_head ,
struct radix_node  
)

◆ rn_init()

void rn_init ( void  )

◆ rn_inithead()

int rn_inithead ( void **  ,
int   
)

Definition at line 1046 of file radix.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ rn_inithead0()

int rn_inithead0 ( struct radix_node_head ,
int   
)

Definition at line 1060 of file radix.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ rn_insert()

struct radix_node * rn_insert ( const void *  ,
struct radix_node_head ,
int *  ,
struct radix_node  [2] 
)

◆ rn_lookup()

struct radix_node * rn_lookup ( const void *  ,
const void *  ,
struct radix_node_head  
)

◆ rn_match()

struct radix_node * rn_match ( const void *  ,
struct radix_node_head  
)

◆ rn_newpair()

struct radix_node * rn_newpair ( const void *  ,
int  ,
struct radix_node  [2] 
)

◆ rn_refines()

int rn_refines ( const void *  ,
const void *   
)

Definition at line 169 of file radix.c.

+ Here is the caller graph for this function:

◆ rn_search()

struct radix_node * rn_search ( const void *  ,
struct radix_node  
)

◆ rn_search_m()

struct radix_node * rn_search_m ( const void *  ,
struct radix_node ,
const void *   
)

Definition at line 149 of file radix.c.

+ Here is the caller graph for this function:

◆ rn_search_matched()

struct radix_node* rn_search_matched ( struct radix_node_head ,
int(*)(struct radix_node *, void *)  ,
void *   
)

Definition at line 1015 of file radix.c.

+ Here is the call graph for this function:

◆ rn_walktree()

int rn_walktree ( struct radix_node_head ,
int(*)(struct radix_node *, void *)  ,
void *   
)

Definition at line 985 of file radix.c.

+ Here is the call graph for this function: