orig_path = fib_path_get(path_index);
ASSERT(NULL != orig_path);
- memcpy(path, orig_path, sizeof(*path));
+ clib_memcpy(path, orig_path, sizeof(*path));
FIB_PATH_DBG(path, "create-copy:%d", path_index);
path2->attached.fp_interface);
break;
case FIB_PATH_TYPE_RECURSIVE:
- res = ip46_address_cmp(&path1->recursive.fp_nh,
- &path2->recursive.fp_nh);
+ res = ip46_address_cmp(&path1->recursive.fp_nh.fp_ip,
+ &path2->recursive.fp_nh.fp_ip);
if (0 == res)
{
}
case FIB_PATH_TYPE_ATTACHED_NEXT_HOP:
case FIB_PATH_TYPE_ATTACHED:
- if (adj_recursive_loop_detect(path->fp_dpo.dpoi_index,
+ if (dpo_is_adj(&path->fp_dpo) &&
+ adj_recursive_loop_detect(path->fp_dpo.dpoi_index,
entry_indicies))
{
FIB_PATH_DBG(path, "recursive loop formed");