-always_inline int
-dpdk_mbuf_is_vlan (struct rte_mbuf *mb)
-{
- return (mb->packet_type & RTE_PTYPE_L2_ETHER_VLAN) ==
- RTE_PTYPE_L2_ETHER_VLAN;
-}
-
-always_inline int
-dpdk_mbuf_is_ip4 (struct rte_mbuf *mb)
-{
- return RTE_ETH_IS_IPV4_HDR (mb->packet_type) != 0;
-}
-
-always_inline int
-dpdk_mbuf_is_ip6 (struct rte_mbuf *mb)
-{
- return RTE_ETH_IS_IPV6_HDR (mb->packet_type) != 0;
-}
-
-always_inline u32
-dpdk_rx_next_from_mb (struct rte_mbuf * mb, vlib_buffer_t * b0)
-{
- if (PREDICT_FALSE (dpdk_mbuf_is_vlan (mb)))
- return VNET_DEVICE_INPUT_NEXT_ETHERNET_INPUT;
- else if (PREDICT_TRUE (dpdk_mbuf_is_ip4 (mb)))
- return VNET_DEVICE_INPUT_NEXT_IP4_NCS_INPUT;
- else if (PREDICT_TRUE (dpdk_mbuf_is_ip6 (mb)))
- return VNET_DEVICE_INPUT_NEXT_IP6_INPUT;
- else if (PREDICT_TRUE (vlib_buffer_is_mpls (b0)))
- return VNET_DEVICE_INPUT_NEXT_MPLS_INPUT;
- else
- return dpdk_rx_next_from_etype (mb, b0);
-}
-