X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fmfib%2Fmfib_entry.c;h=bc7f7dec4069ecc959e7c20d255b6c02280b7818;hb=756cd9441752fc8f84104c9ee19099506ba89f85;hp=b37f88254bc53049c46084236da6c2c3e6396bb5;hpb=da78f957e46c686434149d332a477d7ea055d76a;p=vpp.git diff --git a/src/vnet/mfib/mfib_entry.c b/src/vnet/mfib/mfib_entry.c index b37f88254bc..bc7f7dec406 100644 --- a/src/vnet/mfib/mfib_entry.c +++ b/src/vnet/mfib/mfib_entry.c @@ -238,9 +238,7 @@ format_mfib_entry (u8 * s, va_list * args) static mfib_entry_t* mfib_entry_from_fib_node (fib_node_t *node) { -#if CLIB_DEBUG > 0 ASSERT(FIB_NODE_TYPE_MFIB_ENTRY == node->fn_type); -#endif return ((mfib_entry_t*)node); } @@ -300,7 +298,7 @@ mfib_entry_src_find (const mfib_entry_t *mfib_entry, static mfib_entry_src_t * mfib_entry_src_find_or_create (mfib_entry_t *mfib_entry, - mfib_source_t source) + mfib_source_t source) { mfib_entry_src_t *esrc; @@ -334,6 +332,17 @@ mfib_entry_get_best_src (const mfib_entry_t *mfib_entry) return (bsrc); } +int +mfib_entry_is_sourced (fib_node_index_t mfib_entry_index, + mfib_source_t source) +{ + mfib_entry_t *mfib_entry; + + mfib_entry = mfib_entry_get(mfib_entry_index); + + return (NULL != mfib_entry_src_find(mfib_entry, source, NULL)); +} + static void mfib_entry_src_flush (mfib_entry_src_t *msrc) { @@ -393,7 +402,7 @@ mfib_entry_alloc (u32 fib_index, { mfib_entry_t *mfib_entry; - pool_get(mfib_entry_pool, mfib_entry); + pool_get_aligned(mfib_entry_pool, mfib_entry, CLIB_CACHE_LINE_BYTES); fib_node_init(&mfib_entry->mfe_node, FIB_NODE_TYPE_MFIB_ENTRY); @@ -524,6 +533,7 @@ mfib_entry_src_collect_forwarding (fib_node_index_t pl_index, case FIB_FORW_CHAIN_TYPE_MPLS_EOS: case FIB_FORW_CHAIN_TYPE_ETHERNET: case FIB_FORW_CHAIN_TYPE_NSH: + case FIB_FORW_CHAIN_TYPE_BIER: ASSERT(0); break; } @@ -1216,6 +1226,16 @@ mfib_entry_get_fib_index (fib_node_index_t mfib_entry_index) return (mfib_entry->mfe_fib_index); } +const dpo_id_t* +mfib_entry_contribute_ip_forwarding (fib_node_index_t mfib_entry_index) +{ + mfib_entry_t *mfib_entry; + + mfib_entry = mfib_entry_get(mfib_entry_index); + + return (&mfib_entry->mfe_rep); +} + void mfib_entry_contribute_forwarding (fib_node_index_t mfib_entry_index, fib_forward_chain_type_t type,