X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fvxlan%2Fvxlan.h;h=0f226aa3e72c174b67659b4bfadfeb81941c2fcd;hb=af86a48;hp=f428ee54d78ab519c5444432904ba73ebcf8e7f7;hpb=71612d61930e57e7c8ebf9e5647b15a4b23720b2;p=vpp.git diff --git a/src/vnet/vxlan/vxlan.h b/src/vnet/vxlan/vxlan.h index f428ee54d78..0f226aa3e72 100644 --- a/src/vnet/vxlan/vxlan.h +++ b/src/vnet/vxlan/vxlan.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,12 @@ typedef struct { * The tunnels sibling index on the FIB entry's dependency list. */ u32 sibling_index; + + u32 flow_index; /* infra flow 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,15 +153,16 @@ 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; + u32 flow_id_start; } vxlan_main_t; extern vxlan_main_t vxlan_main; @@ -164,6 +171,7 @@ extern vlib_node_registration_t vxlan4_input_node; extern vlib_node_registration_t vxlan6_input_node; extern vlib_node_registration_t vxlan4_encap_node; extern vlib_node_registration_t vxlan6_encap_node; +extern vlib_node_registration_t vxlan4_flow_input_node; u8 * format_vxlan_encap_trace (u8 * s, va_list * args); @@ -173,6 +181,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; @@ -185,4 +194,15 @@ int vnet_vxlan_add_del_tunnel void vnet_int_vxlan_bypass_mode (u32 sw_if_index, u8 is_ip6, u8 is_enable); + +int vnet_vxlan_add_del_rx_flow +(u32 hw_if_index, u32 t_imdex, int is_add); + +u32 vnet_vxlan_get_tunnel_index (u32 sw_if_index); #endif /* included_vnet_vxlan_h */ + +/* + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */