summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/vnet/lisp-gpe/lisp_gpe_fwd_entry.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/vnet/lisp-gpe/lisp_gpe_fwd_entry.c b/src/vnet/lisp-gpe/lisp_gpe_fwd_entry.c
index 0a8dc039909..dbbea418fa6 100644
--- a/src/vnet/lisp-gpe/lisp_gpe_fwd_entry.c
+++ b/src/vnet/lisp-gpe/lisp_gpe_fwd_entry.c
@@ -354,11 +354,12 @@ create_fib_entries (lisp_gpe_fwd_entry_t * lfe)
if (vec_len (lgm->native_fwd_rpath[ip_version]))
{
ip_prefix_to_fib_prefix (&lfe->key->rmt.ippref, &fib_prefix);
- fib_table_entry_update (lfe->eid_fib_index, &fib_prefix,
- FIB_SOURCE_LISP, FIB_ENTRY_FLAG_NONE,
- lgm->native_fwd_rpath[ip_version]);
+ fi = fib_table_entry_update (lfe->eid_fib_index, &fib_prefix,
+ FIB_SOURCE_LISP,
+ FIB_ENTRY_FLAG_NONE,
+ lgm->native_fwd_rpath[ip_version]);
gpe_native_fwd_add_del_lfe (lfe, 1);
- break;
+ goto done;
}
case LISP_NO_ACTION:
/* TODO update timers? */
@@ -378,6 +379,7 @@ create_fib_entries (lisp_gpe_fwd_entry_t * lfe)
{
fi = ip_src_fib_add_route (lfe->src_fib_index, &ippref, lfe->paths);
}
+done:
fe = fib_entry_get (fi);
return fe->fe_lb.dpoi_index;
}