#include <vnet/ip/format.h>
#include <vnet/adj/adj_types.h>
#include <vnet/tunnel/tunnel.h>
+#include <vnet/nhrp/nhrp.h>
extern vnet_hw_interface_class_t gre_hw_interface_class;
extern vnet_hw_interface_class_t mgre_hw_interface_class;
u32 sw_if_index;
gre_tunnel_type_t type;
tunnel_mode_t mode;
+ tunnel_encap_decap_flags_t flags;
/**
* an L2 tunnel always rquires an L2 midchain. cache here for DP.
extern void gre_update_adj (vnet_main_t * vnm,
u32 sw_if_index, adj_index_t ai);
+typedef struct mgre_walk_ctx_t_
+{
+ const gre_tunnel_t *t;
+ const nhrp_entry_t *ne;
+} mgre_walk_ctx_t;
+
+adj_walk_rc_t mgre_mk_complete_walk (adj_index_t ai, void *data);
+adj_walk_rc_t mgre_mk_incomplete_walk (adj_index_t ai, void *data);
+
format_function_t format_gre_protocol;
format_function_t format_gre_header;
format_function_t format_gre_header_with_length;
ip46_address_t src, dst;
u32 outer_table_id;
u16 session_id;
+ tunnel_encap_decap_flags_t flags;
} vnet_gre_tunnel_add_del_args_t;
extern int vnet_gre_tunnel_add_del (vnet_gre_tunnel_add_del_args_t * a,