MFF_IPV6_SRC, /* ipv6 */
MFF_IPV6_DST, /* ipv6 */
+ MFF_IPV6_LABEL, /* be32 */
MFF_IP_PROTO, /* u8 (used for IPv4 or IPv6) */
- MFF_IP_TOS, /* u8 (used for IPv4 or IPv6) */
+ MFF_IP_DSCP, /* u8 (used for IPv4 or IPv6) */
+ MFF_IP_ECN, /* u8 (used for IPv4 or IPv6) */
+ MFF_IP_TTL, /* u8 (used for IPv4 or IPv6) */
MFF_IP_FRAG, /* u8 (used for IPv4 or IPv6) */
MFF_ARP_OP, /* be16 */
MFF_UDP_SRC, /* be16 (used for IPv4 or IPv6) */
MFF_UDP_DST, /* be16 (used for IPv4 or IPv6) */
- MFF_ICMP_TYPE, /* u8 (used for IPv4 or IPv6) */
- MFF_ICMP_CODE, /* u8 (used for IPv4 or IPv6) */
+ MFF_ICMPV4_TYPE, /* u8 */
+ MFF_ICMPV4_CODE, /* u8 */
+
+ MFF_ICMPV6_TYPE, /* u8 */
+ MFF_ICMPV6_CODE, /* u8 */
/* ICMPv6 Neighbor Discovery. */
MFF_ND_TARGET, /* ipv6 */
/* L2+L3 requirements. */
MFP_TCP, /* On IPv4 or IPv6. */
MFP_UDP, /* On IPv4 or IPv6. */
+ MFP_ICMPV4,
MFP_ICMPV6,
- MFP_ICMP_ANY,
/* L2+L3+L4 requirements. */
MFP_ND,
/* Size.
*
- * Most fields have n_bytes * 8 == n_bits. There are only two exceptions
- * currently: "dl_vlan" is 2 bytes but only 12 bits, and "dl_vlan_pcp" is
- * 1 byte but only 3 bits. */
+ * Most fields have n_bytes * 8 == n_bits. There are a few exceptions:
+ *
+ * - "dl_vlan" is 2 bytes but only 12 bits.
+ * - "dl_vlan_pcp" is 1 byte but only 3 bits.
+ * - "is_frag" is 1 byte but only 2 bits.
+ * - "ipv6_label" is 4 bytes but only 20 bits.
+ */
unsigned int n_bytes; /* Width of the field in bytes. */
unsigned int n_bits; /* Number of significant bits in field. */