summaryrefslogtreecommitdiffstats
path: root/src/vnet
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2020-05-26 08:52:55 +0000
committerAndrew Yourtchenko <ayourtch@gmail.com>2020-08-18 19:47:21 +0000
commit915c3d9058531c1de0243857c876c29c037c327e (patch)
tree284eaf192f69c96f9127afb59446995f6eeb2cd0 /src/vnet
parent8149d3427db7a8f99e2f56efd9f3862d1c474292 (diff)
fib: Fix interpose source reactivate
Type: fix when the interpose is on an adj-fib and the cover is removed the adj source will not install. this lead to no path list being found for the interpose source and a crash. pick a drop path list in this case. Signed-off-by: Neale Ranns <nranns@cisco.com> Change-Id: Ied217da043926c913657080f5ffb151201225d23 (cherry picked from commit 1bf6df4ff9c83bac1fc329a4b5c4d7061f13720a)
Diffstat (limited to 'src/vnet')
-rw-r--r--src/vnet/fib/fib_entry_src_interpose.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/vnet/fib/fib_entry_src_interpose.c b/src/vnet/fib/fib_entry_src_interpose.c
index 2220fa4debd..15accac5533 100644
--- a/src/vnet/fib/fib_entry_src_interpose.c
+++ b/src/vnet/fib/fib_entry_src_interpose.c
@@ -115,6 +115,20 @@ fib_entry_src_interpose_activate (fib_entry_src_t *src,
*/
src->fes_pl = best_src->fes_pl;
}
+ else
+ {
+ /*
+ * the best source won't install so will use a drop
+ */
+ dpo_proto_t dproto;
+
+ dproto = fib_proto_to_dpo(fib_entry->fe_prefix.fp_proto);
+
+ src->fes_pl =
+ fib_path_list_create_special(dproto,
+ FIB_PATH_LIST_FLAG_DROP,
+ drop_dpo_get(dproto));
+ }
}
else
{