From d0a59722135ec77e637097ef99edb6865bc38929 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Sun, 15 Oct 2017 17:41:21 +0000 Subject: Revert "Enforce FIB table creation before use" This reverts commit f9342023c19887da656133e2688a90d70383b0c5. Reverting to unblock master. No idea why jjb +1ed this patch! On closer inspection it looks like it -1ed it and subsequently changed opinion. CSIT tests should be fixed before re-merging. Change-Id: I26608912a962c52083073e16c7c9d2cc44a3cc8d Signed-off-by: Florin Coras --- src/vnet/interface_api.c | 43 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) (limited to 'src/vnet/interface_api.c') diff --git a/src/vnet/interface_api.c b/src/vnet/interface_api.c index ee13135f086..c19f0a84297 100644 --- a/src/vnet/interface_api.c +++ b/src/vnet/interface_api.c @@ -365,14 +365,6 @@ ip_table_bind (fib_protocol_t fproto, fib_source_t src; mfib_source_t msrc; - fib_index = fib_table_find (fproto, table_id); - mfib_index = mfib_table_find (fproto, table_id); - - if (~0 == fib_index || ~0 == mfib_index) - { - return (VNET_API_ERROR_NO_SUCH_FIB); - } - if (is_api) { src = FIB_SOURCE_API; @@ -384,6 +376,32 @@ ip_table_bind (fib_protocol_t fproto, msrc = MFIB_SOURCE_CLI; } + /* + * This is temporary whilst I do the song and dance with the CSIT version + */ + if (0 != table_id) + { + fib_index = fib_table_find_or_create_and_lock (fproto, table_id, src); + mfib_index = + mfib_table_find_or_create_and_lock (fproto, table_id, msrc); + } + else + { + fib_index = 0; + mfib_index = 0; + } + + /* + * This if table does not exist = error is what we want in the end. + */ + /* fib_index = fib_table_find (fproto, table_id); */ + /* mfib_index = mfib_table_find (fproto, table_id); */ + + /* if (~0 == fib_index || ~0 == mfib_index) */ + /* { */ + /* return (VNET_API_ERROR_NO_SUCH_FIB); */ + /* } */ + if (FIB_PROTOCOL_IP6 == fproto) { /* @@ -490,6 +508,15 @@ ip_table_bind (fib_protocol_t fproto, ip4_main.mfib_index_by_sw_if_index[sw_if_index] = mfib_index; } + /* + * Temporary. undo the locks from the find and create at the staart + */ + if (0 != table_id) + { + fib_table_unlock (fib_index, fproto, src); + mfib_table_unlock (mfib_index, fproto, msrc); + } + return (0); } -- cgit 1.2.3-korg