16 #ifndef included_vnet_handoff_h 17 #define included_vnet_handoff_h 48 #define MPLS_BOTTOM_OF_STACK_BIT_MASK 0x00000100U 49 #define MPLS_LABEL_MASK 0xFFFFF000U 62 goto bottom_lbl_found;
69 goto bottom_lbl_found;
76 goto bottom_lbl_found;
83 goto bottom_lbl_found;
90 goto bottom_lbl_found;
100 ip_ver = (*((
u8 *) m) >> 4);
134 else if (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_IP6))
142 else if (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_MPLS))
148 ((h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_VLAN))
149 || (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_DOT1AD))))
153 outer = (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_VLAN)) ?
156 clib_host_to_net_u16 (ETHERNET_TYPE_IP4))
163 else if (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_IP6))
171 else if (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_MPLS))
177 hash_key = outer->
type;
197 else if (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_IP6))
201 else if (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_MPLS))
205 else if ((h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_VLAN)) ||
206 (h0->
type == clib_host_to_net_u16 (ETHERNET_TYPE_DOT1AD)))
210 outer = (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_VLAN)) ?
213 clib_host_to_net_u16 (ETHERNET_TYPE_IP4))
217 else if (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_IP6))
221 else if (outer->
type == clib_host_to_net_u16 (ETHERNET_TYPE_MPLS))
227 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)