From 3a97a456ab27d21d7b25bb5505d93b0d96ab4cab Mon Sep 17 00:00:00 2001 From: Matthew Smith Date: Mon, 12 Oct 2020 15:04:39 -0500 Subject: l2: mark l2 fib uninitialized after clearing Type: fix After clearing the l2fib with 'vppctl clear l2fib', a SEGV occurs the next time a MAC address is learned. In l2fib_clear_table(), the l2fib bihash is freed and then l2fib_table_init() is called to reinitialize it. l2fib_table_init() will not do anything if l2fib_main.mac_table_initialized is set to 1. Reset the value of l2fib_main.mac_table_initialized to 0 before calling l2fib_table_init(). Change-Id: I87f1a3f9a46c951f36c1c0a5ab795b0ec08c81a8 Signed-off-by: Matthew Smith --- src/vnet/l2/l2_fib.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/vnet/l2/l2_fib.c') diff --git a/src/vnet/l2/l2_fib.c b/src/vnet/l2/l2_fib.c index bb4d61404a2..c28c23bc41c 100644 --- a/src/vnet/l2/l2_fib.c +++ b/src/vnet/l2/l2_fib.c @@ -388,6 +388,8 @@ l2fib_clear_table (void) if (mp->mac_table_initialized == 0) return; + mp->mac_table_initialized = 0; + /* Remove all entries */ BV (clib_bihash_free) (&mp->mac_table); l2fib_table_init (); -- cgit 1.2.3-korg