#include <pthread.h>
#include <vlib/threads.h>
#include <vnet/fib/fib_table.h>
+#include <vnet/mfib/mfib_table.h>
#include <vlib/unix/unix.h>
#include <vlibmemory/api.h>
-#include <vlibmemory/unix_shared_memory_queue.h>
#include <vlibapi/api_helper_macros.h>
+#include <svm/queue.h>
typedef struct
{
*
*/
/* from .../vnet/vnet/ip/lookup.c. Yuck */
+/* *INDENT-OFF* */
typedef CLIB_PACKED (struct
- {
- ip4_address_t address;
-u32 address_length: 6;
-u32 index: 26;
- }) ip4_route_t;
-
-/* see interface.api */
-typedef struct
{
- u32 sw_if_index;
- u64 drop;
- u64 punt;
- u64 rx_ip4;
- u64 rx_ip6;
- u64 rx_no_buffer;
- u64 rx_miss;
- u64 rx_error;
- u64 tx_error;
- u64 rx_mpls;
-} vnet_simple_counter_t;
-
-typedef struct
-{
- u32 sw_if_index;
- u64 rx_packets; /**< packet counter */
- u64 rx_bytes; /**< byte counter */
- u64 tx_packets; /**< packet counter */
- u64 tx_bytes; /**< byte counter */
-} vnet_combined_counter_t;
+ ip4_address_t address;
+ u32 address_length: 6;
+ u32 index: 26;
+}) ip4_route_t;
+/* *INDENT-ON* */
typedef struct
{
u32 index;
} ip6_route_t;
-
typedef struct
{
ip4_route_t *ip4routes;
ip6_route_t *ip6routes;
+ mfib_prefix_t *mroutes;
fib_table_t **fibs;
+ mfib_table_t **mfibs;
hash_pair_t **pvec;
uword *results;
} do_ip46_fibs_t;
extern stats_main_t stats_main;
-void dslock (stats_main_t * sm, int release_hint, int tag);
-void dsunlock (stats_main_t * sm);
-
#endif /* __included_stats_h__ */
/*