} __attribute__((__packed__));
/** Create IPv4 address */
-#define RTE_IPv4(a, b, c, d) ((uint32_t)(((a) & 0xff) << 24) | \
+#define RTE_IPV4(a, b, c, d) ((uint32_t)(((a) & 0xff) << 24) | \
(((b) & 0xff) << 16) | \
(((c) & 0xff) << 8) | \
((d) & 0xff))
*/
#define RTE_IPV4_IHL_MULTIPLIER (4)
+/* Type of Service fields */
+#define RTE_IPV4_HDR_DSCP_MASK (0xfc)
+#define RTE_IPV4_HDR_ECN_MASK (0x03)
+
/* Fragment Offset * Flags. */
#define RTE_IPV4_HDR_DF_SHIFT 14
#define RTE_IPV4_HDR_MF_SHIFT 13
* IPv4 Multicast-related macros
*/
#define RTE_IPV4_MIN_MCAST \
- RTE_IPv4(224, 0, 0, 0) /**< Minimal IPv4-multicast address */
+ RTE_IPV4(224, 0, 0, 0) /**< Minimal IPv4-multicast address */
#define RTE_IPV4_MAX_MCAST \
- RTE_IPv4(239, 255, 255, 255) /**< Maximum IPv4 multicast address */
+ RTE_IPV4(239, 255, 255, 255) /**< Maximum IPv4 multicast address */
#define RTE_IS_IPV4_MCAST(x) \
((x) >= RTE_IPV4_MIN_MCAST && (x) <= RTE_IPV4_MAX_MCAST)
/* IPv6 vtc_flow: IPv / TC / flow_label */
#define RTE_IPV6_HDR_FL_SHIFT 0
#define RTE_IPV6_HDR_TC_SHIFT 20
-#define RTE_IPV6_HDR_FL_MASK ((1u << RTE_IPV6_HDR_TC_SHIFT) - 1)
-#define RTE_IPV6_HDR_TC_MASK (0xf << RTE_IPV6_HDR_TC_SHIFT)
+#define RTE_IPV6_HDR_FL_MASK ((1u << RTE_IPV6_HDR_TC_SHIFT) - 1)
+#define RTE_IPV6_HDR_TC_MASK (0xff << RTE_IPV6_HDR_TC_SHIFT)
+#define RTE_IPV6_HDR_DSCP_MASK (0xfc << RTE_IPV6_HDR_TC_SHIFT)
+#define RTE_IPV6_HDR_ECN_MASK (0x03 << RTE_IPV6_HDR_TC_SHIFT)
/**
* Process the pseudo-header checksum of an IPv6 header.