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_UNICAST))
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 ==
183 clib_host_to_net_u16 (ETHERNET_TYPE_MPLS_UNICAST))
189 hash_key = outer->
type;
209 else if (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_IP6))
213 else if (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_MPLS_UNICAST))
217 else if ((h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_VLAN)) ||
218 (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_DOT1AD)))
222 outer = (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_VLAN)) ?
225 clib_host_to_net_u16 (ETHERNET_TYPE_IP4))
229 else if (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_IP6))
233 else if (outer->
type ==
234 clib_host_to_net_u16 (ETHERNET_TYPE_MPLS_UNICAST))
240 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)