46 return (mfib_itf - mfib_itf_pool);
59 combined_flags |= flags;
62 return (combined_flags);
103 vec_add1(all, path_index);
134 return (
format(s,
" %U: %U",
143 return (
format(s,
" local: %U",
194 .path =
"show mfib interface",
196 .short_help =
"show mfib interface",
int mfib_itf_update(mfib_itf_t *mfib_itf, fib_node_index_t path_index, mfib_itf_flags_t mfi_flags)
update an interface from a path.
#define hash_set(h, key, value)
#define hash_unset(h, key)
vnet_main_t * vnet_get_main(void)
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
static vnet_sw_interface_t * vnet_get_sw_interface(vnet_main_t *vnm, u32 sw_if_index)
static clib_error_t * show_mfib_itf_command(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
static mfib_itf_flags_t mfib_itf_mk_flags(const mfib_itf_t *mfib_itf)
#define hash_foreach(key_var, value_var, h, body)
mfib_itf_t * mfib_itf_pool
uword * mfi_hash
A hash table of path-inidices that are contributing flags to this interface.
static void mfib_itf_hash_flush(mfib_itf_t *mfi)
format_function_t format_vnet_sw_interface_name
static mfib_itf_t * mfib_itf_get(index_t mi)
Get the MFIB interface representation.
#define pool_put(P, E)
Free an object E in pool P.
u32 mfi_si
The index of the signal in the pending list.
#define pool_get_aligned(P, E, A)
Allocate an object E from a pool P with alignment A.
void mfib_signal_remove_itf(const mfib_itf_t *mfi)
mfib_itf_flags_t mfi_flags
Forwarding Flags on the entry - checked in the data-path.
u32 fib_node_index_t
A typedef of a node index.
#define pool_is_free_index(P, I)
Use free bitmap to query whether given index is free.
#define VLIB_CLI_COMMAND(x,...)
u8 * format_mfib_itf(u8 *s, va_list *args)
An interface associated with a particular MFIB entry.
index_t mfib_itf_create(fib_node_index_t path_index, mfib_itf_flags_t mfi_flags)
u32 fib_path_get_resolving_interface(fib_node_index_t path_index)
#define INDEX_INVALID
Invalid index - used when no index is known blazoned capitals INVALID speak volumes where ~0 does not...
u8 * format_mfib_itf_flags(u8 *s, va_list *args)
enum mfib_itf_flags_t_ mfib_itf_flags_t
u32 mfi_sw_if_index
The SW IF index that this MFIB interface represents.
#define vec_foreach(var, vec)
Vector iterator.
void mfib_itf_delete(mfib_itf_t *mfi)
#define pool_foreach_index(i, v, body)
Iterate pool by index.
#define CLIB_CACHE_LINE_BYTES
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)