Harmonize vec/pool_get_aligned object sizes and alignment requests
[vpp.git] / src / vnet / vxlan / vxlan.h
index ab9b233..3c74bfd 100644 (file)
@@ -26,7 +26,7 @@
 #include <vnet/vxlan/vxlan_packet.h>
 #include <vnet/ip/ip4_packet.h>
 #include <vnet/ip/ip6_packet.h>
-#include <vnet/ip/udp.h>
+#include <vnet/udp/udp.h>
 #include <vnet/dpo/dpo.h>
 #include <vnet/adj/adj_types.h>
 
@@ -66,8 +66,8 @@ typedef CLIB_PACKED(struct {
 }) vxlan6_tunnel_key_t;
 
 typedef struct {
-  /* Rewrite string. $$$$ embed vnet_rewrite header */
-  u8 * rewrite;
+  /* Required for pool_get_aligned */
+  CLIB_CACHE_LINE_ALIGN_MARK(cacheline0);
 
   /* FIB DPO for IP forwarding of VXLAN encap packet */
   dpo_id_t next_dpo;  
@@ -111,6 +111,11 @@ typedef struct {
    * The tunnels sibling index on the FIB entry's dependency list.
    */
   u32 sibling_index;
+
+  u32 dev_instance;    /* Real device instance in tunnel vector */
+  u32 user_instance;   /* Instance name being shown to user */
+
+  vnet_declare_rewrite (VLIB_BUFFER_PRE_DATA_SIZE);
 } vxlan_tunnel_t;
 
 #define foreach_vxlan_input_next        \
@@ -147,18 +152,18 @@ typedef struct {
   /* mcast shared info */
   uword * mcast_shared; /* keyed on mcast ip46 addr */
 
-  /* 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;
+
+  /* Record used instances */
+  uword *instance_used;
 } vxlan_main_t;
 
-vxlan_main_t vxlan_main;
+extern vxlan_main_t vxlan_main;
 
 extern vlib_node_registration_t vxlan4_input_node;
 extern vlib_node_registration_t vxlan6_input_node;
@@ -173,6 +178,7 @@ typedef struct {
   /* we normally use is_ip4, but since this adds to the
    * structure, this seems less of abreaking change */
   u8 is_ip6;
+  u32 instance;
   ip46_address_t src, dst;
   u32 mcast_sw_if_index;
   u32 encap_fib_index;
@@ -183,4 +189,12 @@ typedef struct {
 int vnet_vxlan_add_del_tunnel 
 (vnet_vxlan_add_del_tunnel_args_t *a, u32 * sw_if_indexp);
 
+void vnet_int_vxlan_bypass_mode
+(u32 sw_if_index, u8 is_ip6, u8 is_enable);
 #endif /* included_vnet_vxlan_h */
+
+/*
+ * Local Variables:
+ * eval: (c-set-style "gnu")
+ * End:
+ */