-BUILD_ASSERT_DECL(FLOW_WC_SEQ == 1);
-#define FIELDS \
- FIELD(F_TUN_ID, "tun_id", 0) \
- FIELD(F_IN_PORT, "in_port", FWW_IN_PORT) \
- FIELD(F_DL_VLAN, "dl_vlan", 0) \
- FIELD(F_DL_VLAN_PCP, "dl_vlan_pcp", 0) \
- FIELD(F_VLAN_TCI, "vlan_tci", 0) \
- FIELD(F_DL_SRC, "dl_src", FWW_DL_SRC) \
- FIELD(F_DL_DST, "dl_dst", FWW_DL_DST | FWW_ETH_MCAST) \
- FIELD(F_DL_TYPE, "dl_type", FWW_DL_TYPE) \
- FIELD(F_NW_SRC, "nw_src", 0) \
- FIELD(F_NW_DST, "nw_dst", 0) \
- FIELD(F_NW_PROTO, "nw_proto", FWW_NW_PROTO) \
- FIELD(F_NW_TOS, "nw_tos", FWW_NW_TOS) \
- FIELD(F_TP_SRC, "tp_src", FWW_TP_SRC) \
- FIELD(F_TP_DST, "tp_dst", FWW_TP_DST) \
- FIELD(F_ICMP_TYPE, "icmp_type", FWW_TP_SRC) \
- FIELD(F_ICMP_CODE, "icmp_code", FWW_TP_DST) \
- FIELD(F_ARP_SHA, "arp_sha", FWW_ARP_SHA) \
- FIELD(F_ARP_THA, "arp_tha", FWW_ARP_THA) \
- FIELD(F_IPV6_SRC, "ipv6_src", 0) \
- FIELD(F_IPV6_DST, "ipv6_dst", 0) \
- FIELD(F_ND_TARGET, "nd_target", FWW_ND_TARGET) \
- FIELD(F_ND_SLL, "nd_sll", FWW_ARP_SHA) \
- FIELD(F_ND_TLL, "nd_tll", FWW_ARP_THA)
-
-enum field_index {
-#define FIELD(ENUM, NAME, WILDCARD) ENUM,
- FIELDS
-#undef FIELD
- N_FIELDS
-};
-
-struct field {
- enum field_index index;
- const char *name;
- flow_wildcards_t wildcard; /* FWW_* bit. */
-};
-