summaryrefslogtreecommitdiffstats
path: root/src/vnet/fib/fib_entry_src_special.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vnet/fib/fib_entry_src_special.c')
-rw-r--r--src/vnet/fib/fib_entry_src_special.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/vnet/fib/fib_entry_src_special.c b/src/vnet/fib/fib_entry_src_special.c
index a2899161c8f..c976da9327a 100644
--- a/src/vnet/fib/fib_entry_src_special.c
+++ b/src/vnet/fib/fib_entry_src_special.c
@@ -52,11 +52,22 @@ fib_entry_src_special_add (fib_entry_src_t *src,
dpo);
}
+static void
+fib_entry_src_special_path_swap (fib_entry_src_t *src,
+ const fib_entry_t *entry,
+ fib_path_list_flags_t pl_flags,
+ const fib_route_path_t *rpaths)
+{
+ src->fes_pl = fib_path_list_create((FIB_PATH_LIST_FLAG_SHARED | pl_flags),
+ rpaths);
+}
+
const static fib_entry_src_vft_t special_src_vft = {
.fesv_init = fib_entry_src_special_init,
.fesv_deinit = fib_entry_src_special_deinit,
.fesv_add = fib_entry_src_special_add,
.fesv_remove = fib_entry_src_special_remove,
+ .fesv_path_swap = fib_entry_src_special_path_swap,
};
void