FD.io VPP
v20.09-64-g4f7b92f0a
Vector Packet Processing
|
Go to the source code of this file.
Variables | |
static index_t | mpls_fib_drop_dpo_index = INDEX_INVALID |
An MPLS_FIB table;. More... | |
static vlib_cli_command_t | mpls_fib_show_command |
(constructor) VLIB_CLI_COMMAND (mpls_fib_show_command) More... | |
Definition at line 364 of file mpls_fib.c.
|
static |
Definition at line 86 of file mpls_fib.c.
|
inlinestatic |
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.
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.
|
static |
u32 mpls_fib_table_create_and_lock | ( | fib_source_t | src | ) |
Definition at line 238 of file mpls_fib.c.
void mpls_fib_table_destroy | ( | u32 | fib_index | ) |
Definition at line 244 of file mpls_fib.c.
void mpls_fib_table_entry_insert | ( | mpls_fib_t * | mf, |
mpls_label_t | label, | ||
mpls_eos_bit_t | eos, | ||
fib_node_index_t | lfei | ||
) |
Definition at line 299 of file mpls_fib.c.
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.
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.
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.
|
static |
Definition at line 376 of file mpls_fib.c.
|
static |
Definition at line 399 of file mpls_fib.c.
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.
|
static |
An MPLS_FIB table;.
The entries in the table are programmed wtih one or more MOIs. These MOIs may result in different forwarding actions for end-of-stack (EOS) and non-EOS packets. Whether the two actions are the same more often than they are different, or vice versa, is a function of the deployment in which the router is used and thus not predictable. The desgin choice to make with an MPLS_FIB table is: 1 - 20 bit key: label only. When the EOS and non-EOS actions differ the result is a 'EOS-choice' object. 2 - 21 bit key: label and EOS-bit. The result is then the specific action based on EOS-bit.
20 bit key: Advantages:
21 bit key: Advantages:
Switching between schemes based on observed/measured action similarity is not considered on the grounds of complexity and flip-flopping.
VPP mantra - favour performance over memory. We choose a 21 bit key. All lookups in an MPLS_FIB table must result in a DPO of type load-balance. This is the default result which links to drop
Definition at line 62 of file mpls_fib.c.
|
static |
(constructor) VLIB_CLI_COMMAND (mpls_fib_show_command)
Definition at line 478 of file mpls_fib.c.