LISP-GPE: add dump call for VNIs in use
[vpp.git] / src / vnet / lisp-gpe / lisp_gpe.h
index b5a50ec..d86a225 100644 (file)
@@ -90,6 +90,22 @@ typedef struct tunnel_lookup
   uword *vni_by_sw_if_index;
 } tunnel_lookup_t;
 
+typedef struct
+{
+  u32 fwd_entry_index;
+  u32 tunnel_index;
+} lisp_stats_key_t;
+
+typedef struct
+{
+  u32 vni;
+  dp_address_t deid;
+  dp_address_t seid;
+  ip_address_t loc_rloc;
+  ip_address_t rmt_rloc;
+
+  vlib_counter_t counters;
+} lisp_api_stats_t;
 
 typedef enum gpe_encap_mode_e
 {
@@ -143,6 +159,10 @@ typedef struct lisp_gpe_main
 
   gpe_encap_mode_t encap_mode;
 
+  u8 *dummy_stats_pool;
+  uword *lisp_stats_index_by_key;
+  vlib_combined_counter_main_t counters;
+
   /** convenience */
   vlib_main_t *vlib_main;
   vnet_main_t *vnet_main;
@@ -201,6 +221,8 @@ typedef enum
 /** */
 typedef struct
 {
+  u8 is_src_dst;
+
   u8 is_add;
 
   /** type of mapping */
@@ -237,7 +259,7 @@ typedef struct
     u32 table_id;
 
     /** bridge domain id */
-    u16 bd_id;
+    u32 bd_id;
 
     /** generic access */
     u32 dp_table;
@@ -249,6 +271,7 @@ typedef struct
   u32 fwd_entry_index;
   u32 dp_table;
   u32 vni;
+  u8 action;
   dp_address_t leid;
   dp_address_t reid;
 } lisp_api_gpe_fwd_entry_t;
@@ -283,6 +306,11 @@ lisp_api_gpe_fwd_entry_t *vnet_lisp_gpe_fwd_entries_get_by_vni (u32 vni);
 gpe_encap_mode_t vnet_gpe_get_encap_mode (void);
 int vnet_gpe_set_encap_mode (gpe_encap_mode_t mode);
 
+u8 vnet_lisp_stats_enable_disable_state (void);
+vnet_api_error_t vnet_lisp_stats_enable_disable (u8 enable);
+lisp_api_stats_t *vnet_lisp_get_stats (void);
+int vnet_lisp_flush_stats (void);
+
 #endif /* included_vnet_lisp_gpe_h */
 
 /*