aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/gre/gre.h
diff options
context:
space:
mode:
Diffstat (limited to 'vnet/vnet/gre/gre.h')
-rw-r--r--vnet/vnet/gre/gre.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/vnet/vnet/gre/gre.h b/vnet/vnet/gre/gre.h
index de9db32b..6cbe4aa1 100644
--- a/vnet/vnet/gre/gre.h
+++ b/vnet/vnet/gre/gre.h
@@ -54,6 +54,7 @@ typedef struct {
ip4_address_t tunnel_dst;
u32 outer_fib_index;
u32 hw_if_index;
+ u32 sw_if_index;
} gre_tunnel_t;
typedef struct {
@@ -67,6 +68,12 @@ typedef struct {
/* Hash mapping src/dst addr pair to tunnel */
uword * tunnel_by_key;
+ /* Free vlib hw_if_indices */
+ u32 * free_vxlan_tunnel_hw_if_indices;
+
+ /* Mapping from sw_if_index to tunnel index */
+ u32 * tunnel_index_by_sw_if_index;
+
/* convenience */
vlib_main_t * vlib_main;
vnet_main_t * vnet_main;
@@ -115,4 +122,14 @@ gre_register_input_protocol (vlib_main_t * vm,
/* manually added to the interface output node in gre.c */
#define GRE_OUTPUT_NEXT_LOOKUP 1
+typedef struct {
+ u8 is_add;
+
+ ip4_address_t src, dst;
+ u32 outer_table_id;
+} vnet_gre_add_del_tunnel_args_t;
+
+int vnet_gre_add_del_tunnel
+ (vnet_gre_add_del_tunnel_args_t *a, u32 * sw_if_indexp);
+
#endif /* included_gre_h */