From 8e2b1b129815d3e631aa425ed37899c78ea24e65 Mon Sep 17 00:00:00 2001 From: Paul Atkins Date: Tue, 12 Oct 2021 14:32:11 +0100 Subject: fib: respect mfib entry flags on create with paths When an mfib entry was created with both paths and entry_flags then the entry flags were being ignored. If there are no paths then the flags were passed into mfib_table_entry_update, but in the case where the entry didn't exist and there were paths and flags, the entry was created within mfib_table_entry_paths_update() which used a default of MFIB_ENTRY_FLAG_NONE. Pass the flags through into the mfib_table_entry_paths_update fn. All existing callers other than the create case will now pass in MFIB_ENTRY_FLAG_NONE. Type: fix Signed-off-by: Paul Atkins Change-Id: I256375ba2fa863a62a88474ce1ea6bf2accdd456 --- src/vnet/ip/ip_api.c | 5 ++--- src/vnet/ip/lookup.c | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'src/vnet/ip') diff --git a/src/vnet/ip/ip_api.c b/src/vnet/ip/ip_api.c index 79c9dd61e11..e197057d8c5 100644 --- a/src/vnet/ip/ip_api.c +++ b/src/vnet/ip/ip_api.c @@ -979,9 +979,8 @@ mroute_add_del_handler (u8 is_add, { if (is_add) { - mfib_entry_index = - mfib_table_entry_paths_update (fib_index, prefix, - MFIB_SOURCE_API, rpaths); + mfib_entry_index = mfib_table_entry_paths_update ( + fib_index, prefix, MFIB_SOURCE_API, entry_flags, rpaths); } else { diff --git a/src/vnet/ip/lookup.c b/src/vnet/ip/lookup.c index 2bb667bc65a..b678ce330c3 100644 --- a/src/vnet/ip/lookup.c +++ b/src/vnet/ip/lookup.c @@ -882,8 +882,8 @@ vnet_ip_mroute_cmd (vlib_main_t * vm, mfib_table_entry_path_remove (fib_index, &pfx, MFIB_SOURCE_CLI, rpaths); else - mfib_table_entry_path_update (fib_index, - &pfx, MFIB_SOURCE_CLI, rpaths); + mfib_table_entry_path_update (fib_index, &pfx, MFIB_SOURCE_CLI, + MFIB_ENTRY_FLAG_NONE, rpaths); } if (FIB_PROTOCOL_IP4 == pfx.fp_proto) -- cgit 1.2.3-korg