fib_table_entry_delete (src_fib_index, &src_fib_prefix, FIB_SOURCE_LISP);
- if (0 == fib_table_get_num_entries (src_fib_index,
+ /* check if only default left */
+ if (1 == fib_table_get_num_entries (src_fib_index,
src_fib_prefix.fp_proto,
FIB_SOURCE_LISP))
{
/*
- * there's nothing left, unlock the source FIB and the
+ * remove src FIB default route
+ */
+ fib_prefix_t prefix = {
+ .fp_proto = dst_fib_prefix.fp_proto,
+ };
+ fib_table_entry_special_remove (src_fib_index, &prefix,
+ FIB_SOURCE_LISP);
+
+ /*
+ * there's nothing left now, unlock the source FIB and the
* destination route
*/
fib_table_entry_special_remove (dst_fib_index,