/**
* Mask of inner layer 3 packet types.
*/
-#define RTE_PTYPE_INNER_INNER_L3_MASK 0x00f00000
+#define RTE_PTYPE_INNER_L3_MASK 0x00f00000
/**
* TCP (Transmission Control Protocol) packet type.
* It is used for inner packet only.
/**
* Check if the (outer) L3 header is IPv4. To avoid comparing IPv4 types one by
* one, bit 4 is selected to be used for IPv4 only. Then checking bit 4 can
- * determin if it is an IPV4 packet.
+ * determine if it is an IPV4 packet.
*/
#define RTE_ETH_IS_IPV4_HDR(ptype) ((ptype) & RTE_PTYPE_L3_IPV4)
/**
* Check if the (outer) L3 header is IPv4. To avoid comparing IPv4 types one by
* one, bit 6 is selected to be used for IPv4 only. Then checking bit 6 can
- * determin if it is an IPV4 packet.
+ * determine if it is an IPV4 packet.
*/
#define RTE_ETH_IS_IPV6_HDR(ptype) ((ptype) & RTE_PTYPE_L3_IPV6)
/* Check if it is a tunneling packet */
-#define RTE_ETH_IS_TUNNEL_PKT(ptype) ((ptype) & RTE_PTYPE_TUNNEL_MASK)
+#define RTE_ETH_IS_TUNNEL_PKT(ptype) ((ptype) & (RTE_PTYPE_TUNNEL_MASK | \
+ RTE_PTYPE_INNER_L2_MASK | \
+ RTE_PTYPE_INNER_L3_MASK | \
+ RTE_PTYPE_INNER_L4_MASK))
#endif /* RTE_NEXT_ABI */
+/** Alignment constraint of mbuf private area. */
+#define RTE_MBUF_PRIV_ALIGN 8
+
/**
* Get the name of a RX offload flag
*
* details.
* @param priv_size
* Size of application private are between the rte_mbuf structure
- * and the data buffer.
+ * and the data buffer. This value must be aligned to RTE_MBUF_PRIV_ALIGN.
* @param data_room_size
* Size of data buffer in each mbuf, including RTE_PKTMBUF_HEADROOM.
* @param socket_id
* with rte_errno set appropriately. Possible rte_errno values include:
* - E_RTE_NO_CONFIG - function could not get pointer to rte_config structure
* - E_RTE_SECONDARY - function was called from a secondary process instance
- * - EINVAL - cache size provided is too large
+ * - EINVAL - cache size provided is too large, or priv_size is not aligned.
* - ENOSPC - the maximum number of memzones has already been allocated
* - EEXIST - a memzone with the same name already exists
* - ENOMEM - no appropriate memory area found in which to create memzone