|
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Go to the documentation of this file.
16 #ifndef included_ip_vtep_h
17 #define included_ip_vtep_h
82 k4->as_u64 = ~((
u64) 0);
89 k6->fib_index = (
u32) ~ 0;
101 vtep4_key_t * last_k4)
110 last_k4->as_u64 = k4.as_u64;
114 #ifdef CLIB_HAVE_VEC512
117 vtep4_key_t vtep4_cache[8];
123 vtep4_key_t * last_k4, vtep4_cache_t * vtep4_u512)
132 u64x8 k4_u64x8 = u64x8_splat (k4.as_u64);
133 u64x8 cache = u64x8_load_unaligned (vtep4_u512->vtep4_cache);
134 u8 result = u64x8_is_equal_mask (cache, k4_u64x8);
145 vtep4_u512->vtep4_cache[vtep4_u512->idx].as_u64 = k4.as_u64;
146 vtep4_u512->idx = (vtep4_u512->idx + 1) & 0x7;
148 last_k4->as_u64 = k4.as_u64;
156 vtep6_key_t * last_k6)
161 && ip60->
dst_address.as_u64[0] == last_k6->addr.as_u64[0]
163 last_k6->addr.as_u64[1]))
static vtep_table_t vtep_table_create()
#define count_trailing_zeros(x)
static void vtep4_key_init(vtep4_key_t *k4)
#define hash_create_mem(elts, key_bytes, value_bytes)
typedef CLIB_PACKED(struct { union { struct { ip4_address_t addr;u32 fib_index;};u64 as_u64;};}) vtep4_key_t
Tunnel endpoint key (IPv4)
static u32 vlib_buffer_get_ip6_fib_index(vlib_buffer_t *b)
#define hash_get_mem(h, key)
uword vtep_addr_unref(vtep_table_t *t, u32 fib_index, ip46_address_t *ip)
static u8 vtep6_check(vtep_table_t *t, vlib_buffer_t *b0, ip6_header_t *ip60, vtep6_key_t *last_k6)
static void ip6_address_set_zero(ip6_address_t *a)
static u8 vtep4_check(vtep_table_t *t, vlib_buffer_t *b0, ip4_header_t *ip40, vtep4_key_t *last_k4)
@ VTEP_CHECK_PASS_UNCHANGED
uword vtep_addr_ref(vtep_table_t *t, u32 fib_index, ip46_address_t *ip)
static u32 vlib_buffer_get_ip4_fib_index(vlib_buffer_t *b)
static void vtep6_key_init(vtep6_key_t *k6)
VLIB buffer representation.