|
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Go to the documentation of this file.
92 index_t *fedi1 = v1, *fedi2 = v2;
125 if (NULL == delegate)
200 s =
format(s,
"%U-chain\n %U",
215 s =
format(s,
"covered:[");
301 fedi = va_arg (*args,
index_t);
348 .path =
"show fib entry-delegate",
350 .short_help =
"show fib entry delegate",
static fib_entry_delegate_t * fib_entry_delegate_find_i(const fib_entry_t *fib_entry, fib_entry_delegate_type_t type, u32 *index)
u8 * fib_ae_export_format(fib_node_index_t expi, u8 *s)
@ FIB_ENTRY_DELEGATE_ATTACHED_EXPORT
@ FIB_ENTRY_DELEGATE_CHAIN_UNICAST_IP6
@ FIB_ENTRY_DELEGATE_ATTACHED_IMPORT
Attached import/export functionality.
fib_node_index_t fib_entry_delegate_get_index(const fib_entry_delegate_t *fed)
void fib_entry_delegate_remove(fib_entry_t *fib_entry, fib_entry_delegate_type_t type)
fib_forward_chain_type_t fib_entry_delegate_type_to_chain_type(fib_entry_delegate_type_t fdt)
u8 * fib_ae_import_format(fib_node_index_t impi, u8 *s)
u8 * format_fib_forw_chain_type(u8 *s, va_list *args)
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
fib_entry_delegate_t * fib_entry_delegate_get(index_t fedi)
@ FIB_ENTRY_DELEGATE_CHAIN_ETHERNET
@ FIB_FORW_CHAIN_TYPE_MPLS_EOS
Contribute an object that is to be used to forward end-of-stack MPLS packets.
static clib_error_t * show_fib_entry_delegate_command(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
fib_node_list_t fn_children
Vector of nodes that depend upon/use/share this node.
@ FIB_FORW_CHAIN_TYPE_MCAST_IP4
Contribute an object that is to be used to forward IP4 packets.
@ FIB_FORW_CHAIN_TYPE_ETHERNET
Contribute an object that is to be used to forward Ethernet packets.
#define pool_put(P, E)
Free an object E in pool P.
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
u8 * fib_node_children_format(fib_node_list_t list, u8 *s)
fib_entry_delegate_t * fib_entry_delegate_find(const fib_entry_t *fib_entry, fib_entry_delegate_type_t type)
static fib_entry_delegate_format_t fed_formatters[]
A delegate type to formatter map.
@ FIB_FORW_CHAIN_TYPE_NSH
Contribute an object that is to be used to forward NSH packets.
#define pool_is_free_index(P, I)
Use free bitmap to query whether given index is free.
@ FIB_FORW_CHAIN_TYPE_UNICAST_IP4
Contribute an object that is to be used to forward IP4 packets.
fib_entry_delegate_type_t fib_entry_chain_type_to_delegate_type(fib_forward_chain_type_t fct)
static void fib_entry_delegate_init(fib_entry_t *fib_entry, fib_entry_delegate_type_t type)
#define vec_add1(V, E)
Add 1 element to end of vector (unspecified alignment).
static vlib_cli_command_t show_fib_entry
(constructor) VLIB_CLI_COMMAND (show_fib_entry)
enum fib_forward_chain_type_t_ fib_forward_chain_type_t
FIB output chain type.
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
u32 fib_node_index_t
A typedef of a node index.
fib_node_index_t fib_entry_get_index(const fib_entry_t *fib_entry)
static u8 * fib_entry_delegate_fmt_export(const fib_entry_delegate_t *fed, u8 *s)
Print a delegate that represents attached-export tracking.
index_t * fe_delegates
A vector of delegate indices.
static u8 * fib_entry_delegate_fmt_covered(const fib_entry_delegate_t *fed, u8 *s)
Print a delegate that represents cover tracking.
fib_entry_delegate_t * fib_entry_delegate_find_or_add(fib_entry_t *fib_entry, fib_entry_delegate_type_t fdt)
fib_node_index_t fd_entry_index
The FIB entry object to which the delagate is attached.
fib_node_index_t fd_index
Valid for the attached import cases.
fib_bfd_state_t fd_bfd_state
BFD state.
#define VLIB_CLI_COMMAND(x,...)
@ FIB_ENTRY_DELEGATE_CHAIN_NSH
static fib_entry_delegate_t * fib_entry_delegate_pool
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)
u8 * format_dpo_id(u8 *s, va_list *args)
Format a DPO_id_t oject.
@ FIB_ENTRY_DELEGATE_CHAIN_MPLS_EOS
@ FIB_ENTRY_DELEGATE_BFD
BFD session state.
static int fib_entry_delegate_cmp_for_sort(void *v1, void *v2)
enum fib_entry_delegate_type_t_ fib_entry_delegate_type_t
Delegate types.
static u8 * fib_entry_delegate_fmt_track(const fib_entry_delegate_t *fed, u8 *s)
Print a delegate that represents tracking.
@ FIB_ENTRY_DELEGATE_COVERED
Dependency list of covered entries.
@ FIB_FORW_CHAIN_TYPE_MPLS_NON_EOS
Contribute an object that is to be used to forward non-end-of-stack MPLS packets.
fib_node_list_t fd_list
For the cover tracking.
#define pool_foreach_index(i, v)
fib_entry_delegate_track_t fd_track
tracker state
@ FIB_ENTRY_DELEGATE_CHAIN_MPLS_NON_EOS
description fragment has unexpected format
static u8 * fib_entry_delegate_fmt_import(const fib_entry_delegate_t *fed, u8 *s)
Print a delegate that represents attached-import tracking.
#define vec_foreach(var, vec)
Vector iterator.
@ FIB_ENTRY_DELEGATE_CHAIN_UNICAST_IP4
Forwarding chain types: for the vast majority of FIB entries only one chain is required - the one tha...
@ FIB_FORW_CHAIN_TYPE_BIER
Contribute an object that is to be used to forward BIER packets.
@ FIB_FORW_CHAIN_TYPE_MCAST_IP6
Contribute an object that is to be used to forward IP6 packets.
#define vec_sort_with_function(vec, f)
Sort a vector using the supplied element comparison function.
#define pool_get_zero(P, E)
Allocate an object E from a pool P and zero it.
u8 *(* fib_entry_delegate_format_t)(const fib_entry_delegate_t *fed, u8 *s)
typedef for printing a delegate
u8 * format_fib_entry_delegate(u8 *s, va_list *args)
static u8 * fib_entry_delegate_fmt_fwd_chain(const fib_entry_delegate_t *fed, u8 *s)
Print a delegate that represents a forwarding chain.
fib_entry_delegate_type_t fd_type
The delagate type.
@ FIB_FORW_CHAIN_TYPE_UNICAST_IP6
Contribute an object that is to be used to forward IP6 packets.
A Delagate is a means to implmenet the Delagation design pattern; the extension of an objects functio...
static u8 * fib_entry_delegate_fmt_bfd(const fib_entry_delegate_t *fed, u8 *s)
Print a delegate that represents BFD tracking.
@ FIB_ENTRY_DELEGATE_TRACK
Tracker.
vl_api_fib_path_type_t type
dpo_id_t fd_dpo
Valid for the forwarding chain delegates.
#define vec_del1(v, i)
Delete the element at index I.