|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
55 desc =
format (NULL,
"IP6-link-local:%U",
136 return (ip6_ll_entry_index);
211 u64 count_by_prefix_length[129];
221 return (BIHASH_WALK_CONTINUE);
227 return (BIHASH_WALK_CONTINUE);
236 int verbose, matching;
237 ip6_address_t matching_address;
285 s =
format (s,
"%U, fib_index:%d, locks:[",
290 if (0 != fib_table->
ft_locks[source])
303 clib_bihash_24_8_t *
h =
312 clib_bihash_foreach_key_value_pair_24_8
350 .path =
"show ip6-ll",
351 .short_help =
"show ip6-ll [summary] [interface] [<ip6-addr>[/<width>]] [detail]",
u32 * ilt_fibs
A vector, indexed by sw_if_index, of unicast IPv6 FIBs.
@ FIB_SOURCE_IP6_ND
IPv6 ND (seen in the link-local tables)
fib_node_index_t * entries
fib_node_index_t fib_table_entry_update_one_path(u32 fib_index, const fib_prefix_t *prefix, fib_source_t source, fib_entry_flag_t flags, dpo_proto_t next_hop_proto, const ip46_address_t *next_hop, u32 next_hop_sw_if_index, u32 next_hop_fib_index, u32 next_hop_weight, fib_mpls_label_t *next_hop_labels, fib_route_path_flags_t path_flags)
Update the entry to have just one path.
static clib_error_t * ip6_ll_module_init(vlib_main_t *vm)
int fib_entry_cmp_for_sort(void *i1, void *i2)
#define FIB_ENTRY_FORMAT_DETAIL
fib_node_index_t ip6_fib_table_lookup_exact_match(u32 fib_index, const ip6_address_t *addr, u32 len)
#define FIB_ENTRY_FORMAT_DETAIL2
@ IP6_FIB_TABLE_NON_FWDING
The table that stores ALL routes learned by the DP.
u64 count_by_prefix_length[129]
u8 * format_fib_table_name(u8 *s, va_list *ap)
Format the description/name of the table.
@ FIB_ENTRY_FLAG_ATTACHED
#define FIB_NODE_INDEX_INVALID
u32 fib_table_get_num_entries(u32 fib_index, fib_protocol_t proto, fib_source_t source)
Return the number of entries in the FIB added by a given source.
u16 fp_len
The mask length.
#define vlib_call_init_function(vm, x)
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
A protocol Independent IP multicast FIB table.
fib_node_index_t ip6_ll_table_lookup_exact_match(const ip6_ll_prefix_t *prefix)
Perfom an exact match in the non-forwarding table.
static vnet_sw_interface_t * vnet_get_sw_interface(vnet_main_t *vnm, u32 sw_if_index)
u32 ilp_sw_if_index
The interface.
void fib_table_walk(u32 fib_index, fib_protocol_t proto, fib_table_walk_fn_t fn, void *ctx)
Walk all entries in a FIB table N.B: This is NOT safe to deletes.
void ip6_ll_table_entry_delete(const ip6_ll_prefix_t *ilp)
Delete a IP6 link-local entry.
fib_node_index_t ip6_ll_table_entry_update(const ip6_ll_prefix_t *ilp, fib_route_path_flags_t flags)
Update an entry in the table.
static void ip6_ll_fib_create(u32 sw_if_index)
A protocol Independent FIB table.
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
#define vec_add1(V, E)
Add 1 element to end of vector (unspecified alignment).
vnet_main_t * vnet_get_main(void)
u32 * ft_locks
per-source number of locks on the table
u8 * format_fib_source(u8 *s, va_list *args)
static void ip6_ll_prefix_to_fib(const ip6_ll_prefix_t *ilp, fib_prefix_t *fp)
u32 fib_node_index_t
A typedef of a node index.
#define vec_foreach_index(var, v)
Iterate over vector indices.
static ip6_ll_table_t ip6_ll_table
There's only one IP6 link local table.
static vlib_cli_command_t ip6_show_fib_command
(constructor) VLIB_CLI_COMMAND (ip6_show_fib_command)
fib_table_flags_t ft_flags
Table flags.
#define vec_validate(V, I)
Make sure vector is long enough for given index (no header, unspecified alignment)
#define VLIB_CLI_COMMAND(x,...)
ip6_fib_table_instance_t ip6_fib_table[IP6_FIB_NUM_TABLES]
The two FIB tables; fwding and non-fwding.
Aggregate type for a prefix in the IPv6 Link-local table.
static clib_error_t * ip6_lookup_init(vlib_main_t *vm)
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)
ip46_address_t fp_addr
The address type is not deriveable from the fp_addr member.
static fib_table_walk_rc_t ip6_ll_table_show_walk(fib_node_index_t fib_entry_index, void *arg)
#define vec_free(V)
Free vector's memory (no header).
struct ip6_ll_show_ctx_t_ ip6_ll_show_ctx_t
u32 ip6_fib_table_create_and_lock(fib_source_t src, fib_table_flags_t flags, u8 *desc)
fib_route_path_flags_t frp_flags
flags on the path
unformat_function_t unformat_vnet_sw_interface
description fragment has unexpected format
fib_table_t * fib_table_get(fib_node_index_t index, fib_protocol_t proto)
Get a pointer to a FIB table.
@ FIB_ROUTE_PATH_FLAG_NONE
#define VLIB_INIT_FUNCTION(x)
enum fib_table_walk_rc_t_ fib_table_walk_rc_t
return code controlling how a table walk proceeds
fib_node_index_t ip6_ll_table_lookup(const ip6_ll_prefix_t *prefix)
Perfom a longest prefix match in the non-forwarding table.
A representation of a path as described by a route producer.
static int count_routes_in_fib_at_prefix_length(clib_bihash_kv_24_8_t *kvp, void *arg)
#define vec_foreach(var, vec)
Vector iterator.
#define FIB_ENTRY_FORMAT_BRIEF
fib_protocol_t fp_proto
protocol type
@ FIB_SOURCE_SPECIAL
Special sources.
#define vec_sort_with_function(vec, f)
Sort a vector using the supplied element comparison function.
@ FIB_TABLE_WALK_CONTINUE
Continue on to the next entry.
clib_memset(h->entries, 0, sizeof(h->entries[0]) *entries)
static void ip6_ll_table_show_all(vlib_main_t *vm, u32 fib_index)
fib_node_index_t ip6_fib_table_lookup(u32 fib_index, const ip6_address_t *addr, u32 len)
static clib_error_t * ip6_ll_show_fib(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
clib_error_t *() vlib_init_function_t(struct vlib_main_t *vm)
void fib_table_unlock(u32 fib_index, fib_protocol_t proto, fib_source_t source)
Take a reference counting lock on the table.
u32 ip6_ll_fib_get(u32 sw_if_index)
For use in the data plane.
static void ip6_ll_table_show_one(vlib_main_t *vm, ip6_ll_prefix_t *ilp, int detail)
ip6_address_t ilp_addr
the IP6 address
enum fib_route_path_flags_t_ fib_route_path_flags_t
Path flags from the control plane.
enum fib_source_t_ fib_source_t
The different sources that can create a route.
void fib_table_entry_delete_index(fib_node_index_t fib_entry_index, fib_source_t source)
Delete a FIB entry.
vl_api_interface_index_t sw_if_index
Aggregate type for a prefix.
@ FIB_ROUTE_PATH_LOCAL
A for-us/local path.
fib_node_index_t fib_table_entry_update(u32 fib_index, const fib_prefix_t *prefix, fib_source_t source, fib_entry_flag_t flags, fib_route_path_t *paths)
Update an entry to have a new set of paths.
format_function_t format_vnet_sw_interface_name
clib_bihash_24_8_t ip6_hash
vl_api_wireguard_peer_flags_t flags
@ FIB_ENTRY_FLAG_NO_ATTACHED_EXPORT
u8 * format_fib_entry(u8 *s, va_list *args)