X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fvxlan%2Fvxlan.h;h=7399b19e3879dc0219039f6ea9c1a877a37c1077;hb=bdc0e6b7204ea0211d4f7881497e4306586fb9ef;hp=21b7650f454e7c136f9829095548a286a8f36846;hpb=0fa56788f71d570ce585027e2acdf19e82e6d433;p=vpp.git diff --git a/src/vnet/vxlan/vxlan.h b/src/vnet/vxlan/vxlan.h index 21b7650f454..7399b19e387 100644 --- a/src/vnet/vxlan/vxlan.h +++ b/src/vnet/vxlan/vxlan.h @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -43,27 +44,20 @@ typedef CLIB_PACKED (struct { udp_header_t udp; /* 8 bytes */ vxlan_header_t vxlan; /* 8 bytes */ }) ip6_vxlan_header_t; +/* *INDENT-ON* */ -typedef CLIB_PACKED (union { - /* - * Key fields: remote ip, vni on incoming VXLAN packet - * all fields in NET byte order - */ - struct - { - u32 src; - u32 vni; /* shifted left 8 bits */ - }; - u64 as_u64; -}) vxlan4_tunnel_key_t; +/* +* Key fields: remote ip, vni on incoming VXLAN packet +* all fields in NET byte order +*/ +typedef clib_bihash_kv_16_8_t vxlan4_tunnel_key_t; /* * Key fields: remote ip, vni and fib index on incoming VXLAN packet * ip, vni fields in NET byte order * fib index field in host byte order */ -typedef BVT (clib_bihash_kv) vxlan6_tunnel_key_t; -/* *INDENT-ON* */ +typedef clib_bihash_kv_24_8_t vxlan6_tunnel_key_t; typedef struct { @@ -84,7 +78,7 @@ typedef struct u32 mcast_sw_if_index; /* decap next index */ - u32 decap_next_index; + u16 decap_next_index; /* The FIB index for src/dst addresses */ u32 encap_fib_index; @@ -106,7 +100,7 @@ typedef struct adj_index_t mcast_adj_index; /** - * The tunnel is a child of the FIB entry for its desintion. This is + * The tunnel is a child of the FIB entry for its destination. This is * so it receives updates when the forwarding information for that entry * changes. * The tunnels sibling index on the FIB entry's dependency list. @@ -146,8 +140,8 @@ typedef struct vxlan_tunnel_t *tunnels; /* lookup tunnel by key */ - uword *vxlan4_tunnel_by_key; /* keyed on ipv4.dst + vni */ - BVT (clib_bihash) vxlan6_tunnel_by_key; /* keyed on ipv6.dst + fib + vni */ + clib_bihash_16_8_t vxlan4_tunnel_by_key; /* keyed on ipv4.dst + fib + vni */ + clib_bihash_24_8_t vxlan6_tunnel_by_key; /* keyed on ipv6.dst + fib + vni */ /* local VTEP IPs ref count used by vxlan-bypass node to check if received VXLAN packet DIP matches any local VTEP address */ @@ -184,7 +178,7 @@ typedef struct u8 is_add; /* we normally use is_ip4, but since this adds to the - * structure, this seems less of abreaking change */ + * structure, this seems less of a breaking change */ u8 is_ip6; u32 instance; ip46_address_t src, dst;