*/
typedef struct mfib_table_t_
{
+ /**
+ * Required for pool_get_aligned
+ */
+ CLIB_CACHE_LINE_ALIGN_MARK(cacheline0);
+
/**
* A union of the protocol specific FIBs that provide the
* underlying LPM mechanism.
* @brief
* Format the description/name of the table
*/
-extern u8* format_mfib_table_name(u8* s, va_list ap);
+extern u8* format_mfib_table_name(u8* s, va_list *ap);
/**
* @brief
extern u32 mfib_table_get_index_for_sw_if_index(fib_protocol_t proto,
u32 sw_if_index);
+/**
+ * @brief
+ * Get the Table-ID of the FIB from protocol and index
+ *
+ * @param fib_index
+ * The FIB index
+ *
+ * @paran proto
+ * The protocol of the FIB (and thus the entries therein)
+ *
+ * @return fib_index
+ * The tableID of the FIB
+ */
+extern u32 mfib_table_get_table_id(u32 fib_index, fib_protocol_t proto);
+
/**
* @brief
* Get the index of the FIB for a Table-ID. This DOES NOT create the
extern u32 mfib_table_get_num_entries(u32 fib_index,
fib_protocol_t proto);
+/**
+ * @brief
+ * Get the less specific (covering) prefix
+ *
+ * @param fib_index
+ * The index of the FIB
+ *
+ * @param prefix
+ * The prefix to lookup
+ *
+ * @return
+ * The index of the less specific fib_entry_t.
+ */
+extern fib_node_index_t mfib_table_get_less_specific(u32 fib_index,
+ const mfib_prefix_t *prefix);
+
/**
* @brief
* Get a pointer to a FIB table
fib_protocol_t proto,
mfib_table_walk_fn_t fn,
void *ctx);
+/**
+ * @brief format (display) the memory usage for mfibs
+ */
+extern u8 * format_mfib_table_memory(u8 * s, va_list * args);
+
+/**
+ * To assit UT
+ */
+extern u32 mfib_table_get_n_routes(fib_node_index_t index,
+ fib_protocol_t proto);
+
#endif