FD.io VPP  v21.06
Vector Packet Processing
mpls_fib.h File Reference
+ Include dependency graph for mpls_fib.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  mpls_fib_t_
 

Macros

#define MPLS_FIB_DEFAULT_TABLE_ID   0
 
#define MPLS_FIB_KEY_SIZE   21
 Type exposure is to allow the DP fast/inlined access. More...
 
#define MPLS_FIB_DB_SIZE   (1 << (MPLS_FIB_KEY_SIZE-1))
 
#define MPLS_FLOW_HASH_DEFAULT   IP_FLOW_HASH_DEFAULT
 There are no options for controlling the MPLS flow hash, but since it mostly entails using IP data to create one, use that. More...
 

Typedefs

typedef struct mpls_fib_t_ mpls_fib_t
 

Functions

static mpls_fib_tmpls_fib_get (fib_node_index_t index)
 
u32 mpls_fib_table_find_or_create_and_lock (u32 table_id, fib_source_t src)
 
u32 mpls_fib_table_create_and_lock (fib_source_t src)
 
u32 mpls_fib_index_from_table_id (u32 table_id)
 
u8format_mpls_fib_table_name (u8 *s, va_list *args)
 
fib_node_index_t mpls_fib_table_entry_add_from_ip_fib_entry (u32 table_id, mpls_label_t label, mpls_eos_bit_t eos, fib_node_index_t fib_entry_index)
 
fib_node_index_t mpls_fib_table_lookup (const mpls_fib_t *mf, mpls_label_t label, mpls_eos_bit_t eos)
 
void mpls_fib_table_entry_remove (mpls_fib_t *mf, mpls_label_t label, mpls_eos_bit_t eos)
 
void mpls_fib_table_entry_insert (mpls_fib_t *mf, mpls_label_t label, mpls_eos_bit_t eos, fib_node_index_t fei)
 
void mpls_fib_table_destroy (u32 fib_index)
 
void mpls_fib_forwarding_table_update (mpls_fib_t *mf, mpls_label_t label, mpls_eos_bit_t eos, const dpo_id_t *dpo)
 
void mpls_fib_forwarding_table_reset (mpls_fib_t *mf, mpls_label_t label, mpls_eos_bit_t eos)
 
void mpls_fib_table_walk (mpls_fib_t *fib, fib_table_walk_fn_t fn, void *ctx)
 Walk all entries in a FIB table N.B: This is NOT safe to deletes. More...
 
u8format_mpls_fib_table_memory (u8 *s, va_list *args)
 
static index_t mpls_fib_table_forwarding_lookup (u32 mpls_fib_index, const mpls_unicast_header_t *hdr)
 Lookup a label and EOS bit in the MPLS_FIB table to retrieve the load-balance index to be used for packet forwarding. More...
 
static u32 mpls_fib_table_get_index_for_sw_if_index (u32 sw_if_index)
 

Macro Definition Documentation

◆ MPLS_FIB_DB_SIZE

#define MPLS_FIB_DB_SIZE   (1 << (MPLS_FIB_KEY_SIZE-1))

Definition at line 34 of file mpls_fib.h.

◆ MPLS_FIB_DEFAULT_TABLE_ID

#define MPLS_FIB_DEFAULT_TABLE_ID   0

Definition at line 28 of file mpls_fib.h.

◆ MPLS_FIB_KEY_SIZE

#define MPLS_FIB_KEY_SIZE   21

Type exposure is to allow the DP fast/inlined access.

Definition at line 33 of file mpls_fib.h.

◆ MPLS_FLOW_HASH_DEFAULT

#define MPLS_FLOW_HASH_DEFAULT   IP_FLOW_HASH_DEFAULT

There are no options for controlling the MPLS flow hash, but since it mostly entails using IP data to create one, use that.

Definition at line 40 of file mpls_fib.h.

Typedef Documentation

◆ mpls_fib_t

typedef struct mpls_fib_t_ mpls_fib_t

Function Documentation

◆ format_mpls_fib_table_memory()

u8* format_mpls_fib_table_memory ( u8 s,
va_list *  args 
)

Definition at line 364 of file mpls_fib.c.

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

◆ format_mpls_fib_table_name()

u8* format_mpls_fib_table_name ( u8 s,
va_list *  args 
)
+ Here is the caller graph for this function:

◆ mpls_fib_forwarding_table_reset()

void mpls_fib_forwarding_table_reset ( mpls_fib_t mf,
mpls_label_t  label,
mpls_eos_bit_t  eos 
)

Definition at line 338 of file mpls_fib.c.

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

◆ mpls_fib_forwarding_table_update()

void mpls_fib_forwarding_table_update ( mpls_fib_t mf,
mpls_label_t  label,
mpls_eos_bit_t  eos,
const dpo_id_t dpo 
)

Definition at line 316 of file mpls_fib.c.

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

◆ mpls_fib_get()

static mpls_fib_t* mpls_fib_get ( fib_node_index_t  index)
inlinestatic

Definition at line 63 of file mpls_fib.h.

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

◆ mpls_fib_index_from_table_id()

u32 mpls_fib_index_from_table_id ( u32  table_id)

Definition at line 73 of file mpls_fib.c.

+ Here is the caller graph for this function:

◆ mpls_fib_table_create_and_lock()

u32 mpls_fib_table_create_and_lock ( fib_source_t  src)

Definition at line 238 of file mpls_fib.c.

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

◆ mpls_fib_table_destroy()

void mpls_fib_table_destroy ( u32  fib_index)

Definition at line 244 of file mpls_fib.c.

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

◆ mpls_fib_table_entry_add_from_ip_fib_entry()

fib_node_index_t mpls_fib_table_entry_add_from_ip_fib_entry ( u32  table_id,
mpls_label_t  label,
mpls_eos_bit_t  eos,
fib_node_index_t  fib_entry_index 
)
+ Here is the caller graph for this function:

◆ mpls_fib_table_entry_insert()

void mpls_fib_table_entry_insert ( mpls_fib_t mf,
mpls_label_t  label,
mpls_eos_bit_t  eos,
fib_node_index_t  fei 
)

Definition at line 299 of file mpls_fib.c.

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

◆ mpls_fib_table_entry_remove()

void mpls_fib_table_entry_remove ( mpls_fib_t mf,
mpls_label_t  label,
mpls_eos_bit_t  eos 
)

Definition at line 308 of file mpls_fib.c.

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

◆ mpls_fib_table_find_or_create_and_lock()

u32 mpls_fib_table_find_or_create_and_lock ( u32  table_id,
fib_source_t  src 
)

Definition at line 224 of file mpls_fib.c.

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

◆ mpls_fib_table_forwarding_lookup()

static index_t mpls_fib_table_forwarding_lookup ( u32  mpls_fib_index,
const mpls_unicast_header_t hdr 
)
inlinestatic

Lookup a label and EOS bit in the MPLS_FIB table to retrieve the load-balance index to be used for packet forwarding.

Definition at line 122 of file mpls_fib.h.

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

◆ mpls_fib_table_get_index_for_sw_if_index()

static u32 mpls_fib_table_get_index_for_sw_if_index ( u32  sw_if_index)
inlinestatic

Definition at line 138 of file mpls_fib.h.

+ Here is the caller graph for this function:

◆ mpls_fib_table_lookup()

fib_node_index_t mpls_fib_table_lookup ( const mpls_fib_t mf,
mpls_label_t  label,
mpls_eos_bit_t  eos 
)

Definition at line 284 of file mpls_fib.c.

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

◆ mpls_fib_table_walk()

void mpls_fib_table_walk ( mpls_fib_t fib,
fib_table_walk_fn_t  fn,
void *  ctx 
)

Walk all entries in a FIB table N.B: This is NOT safe to deletes.

If you need to delete walk the whole table and store elements in a vector, then delete the elements

Definition at line 350 of file mpls_fib.c.

+ Here is the caller graph for this function: