16 #ifndef included_vnet_handoff_h 17 #define included_vnet_handoff_h 59 #define MPLS_BOTTOM_OF_STACK_BIT_MASK 0x00000100U 60 #define MPLS_LABEL_MASK 0xFFFFF000U 73 goto bottom_lbl_found;
80 goto bottom_lbl_found;
87 goto bottom_lbl_found;
94 goto bottom_lbl_found;
101 goto bottom_lbl_found;
111 ip_ver = (*((
u8 *) m) >> 4);
145 else if (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_IP6))
153 else if (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_MPLS))
159 ((h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_VLAN))
160 || (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_DOT1AD))))
164 outer = (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_VLAN)) ?
167 clib_host_to_net_u16 (ETHERNET_TYPE_IP4))
174 else if (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_IP6))
182 else if (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_MPLS))
188 hash_key = outer->
type;
208 else if (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_IP6))
212 else if (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_MPLS))
216 else if ((h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_VLAN)) ||
217 (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_DOT1AD)))
221 outer = (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_VLAN)) ?
224 clib_host_to_net_u16 (ETHERNET_TYPE_IP4))
228 else if (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_IP6))
232 else if (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_MPLS))
238 hash_key = outer->
type;
#define MPLS_BOTTOM_OF_STACK_BIT_MASK
static u64 ipv4_get_key(ip4_header_t *ip)
static u64 eth_get_sym_key(ethernet_header_t *h0)
static u64 ipv6_get_key(ip6_header_t *ip)
static u64 eth_get_key(ethernet_header_t *h0)
static u64 mpls_get_key(mpls_unicast_header_t *m)
static uword rotate_left(uword x, uword i)