const ip6_address_t * dst)
{
u32 fib_index = vec_elt (im->fib_index_by_sw_if_index, sw_if_index);
- return ip6_fib_table_fwding_lookup(im, fib_index, dst);
+ return ip6_fib_table_fwding_lookup(fib_index, dst);
}
u32
{
uword bytes_inuse;
- bytes_inuse =
- alloc_arena_next
- (&(ip6_main.ip6_table[IP6_FIB_TABLE_NON_FWDING].ip6_hash))
- - alloc_arena (&(ip6_main.ip6_table[IP6_FIB_TABLE_NON_FWDING].ip6_hash));
+ bytes_inuse = (alloc_arena_next(&(ip6_main.ip6_table[IP6_FIB_TABLE_NON_FWDING].ip6_hash)) +
+ alloc_arena_next(&(ip6_main.ip6_table[IP6_FIB_TABLE_FWDING].ip6_hash)));
- bytes_inuse +=
- alloc_arena_next(&(ip6_main.ip6_table[IP6_FIB_TABLE_FWDING].ip6_hash))
- - alloc_arena(&(ip6_main.ip6_table[IP6_FIB_TABLE_FWDING].ip6_hash));
-
- s = format(s, "%=30s %=6d %=8ld\n",
+ s = format(s, "%=30s %=6d %=12ld\n",
"IPv6 unicast",
pool_elts(ip6_main.fibs),
bytes_inuse);
u32 mask_len = 128;
int table_id = -1, fib_index = ~0;
int detail = 0;
+ int hash = 0;
verbose = 1;
matching = 0;
unformat (input, "det"))
detail = 1;
+ else if (unformat (input, "hash") ||
+ unformat (input, "mem") ||
+ unformat (input, "memory"))
+ hash = 1;
+
else if (unformat (input, "%U/%d",
unformat_ip6_address, &matching_address, &mask_len))
matching = 1;
break;
}
+ if (hash)
+ {
+ vlib_cli_output (vm, "IPv6 Non-Forwarding Hash Table:\n%U\n",
+ BV (format_bihash),
+ &im6->ip6_table[IP6_FIB_TABLE_NON_FWDING].ip6_hash,
+ detail);
+ vlib_cli_output (vm, "IPv6 Forwarding Hash Table:\n%U\n",
+ BV (format_bihash),
+ &im6->ip6_table[IP6_FIB_TABLE_FWDING].ip6_hash,
+ detail);
+ return (NULL);
+ }
+
pool_foreach (fib_table, im6->fibs,
({
fib_source_t source;
if (fib_table->ft_flags & FIB_TABLE_FLAG_IP6_LL)
continue;
- s = format(s, "%U, fib_index:%d, flow hash:[%U] locks:[",
+ s = format(s, "%U, fib_index:%d, flow hash:[%U] epoch:%d flags:%U locks:[",
format_fib_table_name, fib->index,
FIB_PROTOCOL_IP6,
fib->index,
format_ip_flow_hash_config,
- fib_table->ft_flow_hash_config);
+ fib_table->ft_flow_hash_config,
+ fib_table->ft_epoch,
+ format_fib_table_flags, fib_table->ft_flags);
+
FOR_EACH_FIB_SOURCE(source)
{
if (0 != fib_table->ft_locks[source])