diff options
author | Eyal Bari <ebari@cisco.com> | 2018-07-08 08:15:56 +0300 |
---|---|---|
committer | John Lo <loj@cisco.com> | 2018-07-09 21:08:54 +0000 |
commit | dd47ecadcf63772a6037a1bb3715772d80e87f51 (patch) | |
tree | 32b9b47118a59b18be92a9d521be5d36425fa8a5 /src/vnet/vxlan/vxlan.h | |
parent | a1ff01e5c91cadc3d95060aa1ca4b9faa6fa2f49 (diff) |
vxlan:use bihash_16_8 for ipv4 lookup
Change-Id: I0d4630c88d6caacffcd073ebaa12766dfc893f70
Signed-off-by: Eyal Bari <ebari@cisco.com>
Diffstat (limited to 'src/vnet/vxlan/vxlan.h')
-rw-r--r-- | src/vnet/vxlan/vxlan.h | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/src/vnet/vxlan/vxlan.h b/src/vnet/vxlan/vxlan.h index 21b7650f454..ce410d7df67 100644 --- a/src/vnet/vxlan/vxlan.h +++ b/src/vnet/vxlan/vxlan.h @@ -17,6 +17,7 @@ #include <vppinfra/error.h> #include <vppinfra/hash.h> +#include <vppinfra/bihash_16_8.h> #include <vppinfra/bihash_24_8.h> #include <vnet/vnet.h> #include <vnet/ip/ip.h> @@ -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 { @@ -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 */ |