FD.io VPP
v17.04.2-2-ga8f93f8
Vector Packet Processing
|
Go to the source code of this file.
Macros | |
#define | MPLS_FLOW_HASH_DEFAULT 0 |
FIXME. More... | |
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... | |
#define MPLS_FLOW_HASH_DEFAULT 0 |
FIXME.
Definition at line 67 of file mpls_fib.c.
Definition at line 91 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 328 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 313 of file mpls_fib.c.
|
static |
u32 mpls_fib_table_create_and_lock | ( | void | ) |
Definition at line 238 of file mpls_fib.c.
void mpls_fib_table_destroy | ( | mpls_fib_t * | mf | ) |
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 296 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 305 of file mpls_fib.c.
Definition at line 225 of file mpls_fib.c.
flow_hash_config_t mpls_fib_table_get_flow_hash_config | ( | u32 | fib_index | ) |
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 281 of file mpls_fib.c.
|
static |
|
static |
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 347 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 450 of file mpls_fib.c.