aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/vnet/l2/l2_fib.c11
-rw-r--r--test/test_l2_fib.py3
2 files changed, 10 insertions, 4 deletions
diff --git a/src/vnet/l2/l2_fib.c b/src/vnet/l2/l2_fib.c
index d4207e351a3..f17eee2acf9 100644
--- a/src/vnet/l2/l2_fib.c
+++ b/src/vnet/l2/l2_fib.c
@@ -62,10 +62,13 @@ format_vnet_sw_if_index_name_with_NA (u8 * s, va_list * args)
u32 sw_if_index = va_arg (*args, u32);
if (sw_if_index == ~0)
return format (s, "N/A");
- else
- return format (s, "%U",
- format_vnet_sw_interface_name, vnm,
- vnet_get_sw_interface (vnm, sw_if_index));
+
+ vnet_sw_interface_t *swif = vnet_get_sw_interface_safe (vnm, sw_if_index);
+ if (!swif)
+ return format (s, "Deleted");
+
+ return format (s, "%U", format_vnet_sw_interface_name, vnm,
+ vnet_get_sw_interface_safe (vnm, sw_if_index));
}
void
diff --git a/test/test_l2_fib.py b/test/test_l2_fib.py
index 9249a2ced23..f9a78efce0f 100644
--- a/test/test_l2_fib.py
+++ b/test/test_l2_fib.py
@@ -490,6 +490,7 @@ class TestL2fib(VppTestCase):
self.config_l2_fib_entries(bd_id=1, n_hosts_per_if=10)
self.config_l2_fib_entries(bd_id=2, n_hosts_per_if=10)
flushed = self.flush_int(self.pg_interfaces[0].sw_if_index)
+ self.sleep(1)
self.run_verify_test(bd_id=1, dst_hosts=self.learned_hosts)
self.run_verify_negat_test(bd_id=1, dst_hosts=flushed)
@@ -503,6 +504,7 @@ class TestL2fib(VppTestCase):
self.config_l2_fib_entries(bd_id=1, n_hosts_per_if=10)
self.config_l2_fib_entries(bd_id=2, n_hosts_per_if=10)
flushed = self.flush_bd(bd_id=1)
+ self.sleep(1)
self.run_verify_negat_test(bd_id=1, dst_hosts=flushed)
self.run_verify_test(bd_id=2, dst_hosts=self.learned_hosts)
@@ -516,6 +518,7 @@ class TestL2fib(VppTestCase):
self.config_l2_fib_entries(bd_id=1, n_hosts_per_if=10)
self.config_l2_fib_entries(bd_id=2, n_hosts_per_if=10)
flushed = self.flush_all()
+ self.sleep(2)
self.run_verify_negat_test(bd_id=1, dst_hosts=flushed)
self.run_verify_negat_test(bd_id=2, dst_hosts=flushed)