#undef _
};
+#if RTE_VERSION >= RTE_VERSION_NUM(16, 11, 0, 0)
+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;
+}
+#endif
+
always_inline int
dpdk_mbuf_is_ip4 (struct rte_mbuf *mb)
{
{
u32 n0;
- if (PREDICT_FALSE ((mb->ol_flags & PKT_RX_VLAN_PKT)))
+#if RTE_VERSION < RTE_VERSION_NUM(16, 11, 0, 0)
+ if (PREDICT_FALSE
+ ((mb->ol_flags & (PKT_RX_VLAN_PKT | PKT_RX_VLAN_STRIPPED)) ==
+ PKT_RX_VLAN_PKT))
+#else
+ if (PREDICT_FALSE (dpdk_mbuf_is_vlan (mb)))
+#endif
n0 = VNET_DEVICE_INPUT_NEXT_ETHERNET_INPUT;
else if (PREDICT_TRUE (dpdk_mbuf_is_ip4 (mb)))
n0 = VNET_DEVICE_INPUT_NEXT_IP4_INPUT;