lm->fib_result_n_bytes = sizeof (uword);
lm->is_ip6 = is_ip6;
+ mhash_init (&lm->prefix_to_if_prefix_index, sizeof (uword),
+ sizeof (ip_interface_prefix_key_t));
if (is_ip6)
{
lm->format_address_and_length = format_ip6_address_and_length;
u32 adj_index = va_arg (*args, u32);
u8 *packet_data = va_arg (*args, u8 *);
u32 n_packet_data_bytes = va_arg (*args, u32);
- ip_adjacency_t *adj = adj_get (adj_index);
+ ip_adjacency_t *adj;
+
+ if (!adj_is_valid (adj_index))
+ return format (s, "<invalid adjacency>");
+
+ adj = adj_get (adj_index);
switch (adj->lookup_next_index)
{
*/
rpath.frp_proto = fib_proto_to_dpo (pfx.fp_proto);
rpath.frp_mitf_flags = MFIB_ITF_FLAG_FORWARD;
+
+ vec_add1 (rpaths, rpath);
}
else if (unformat (line_input, "via %U",
unformat_fib_route_path, &rpath, &payload_proto))