+void flow_wildcards_init_catchall(struct flow_wildcards *);
+void flow_wildcards_init_exact(struct flow_wildcards *);
+
+bool flow_wildcards_is_exact(const struct flow_wildcards *);
+
+bool flow_wildcards_set_nw_src_mask(struct flow_wildcards *, ovs_be32);
+bool flow_wildcards_set_nw_dst_mask(struct flow_wildcards *, ovs_be32);
+bool flow_wildcards_set_ipv6_src_mask(struct flow_wildcards *,
+ const struct in6_addr *);
+bool flow_wildcards_set_ipv6_dst_mask(struct flow_wildcards *,
+ const struct in6_addr *);
+void flow_wildcards_set_reg_mask(struct flow_wildcards *,
+ int idx, uint32_t mask);
+
+void flow_wildcards_combine(struct flow_wildcards *dst,
+ const struct flow_wildcards *src1,
+ const struct flow_wildcards *src2);
+bool flow_wildcards_has_extra(const struct flow_wildcards *,
+ const struct flow_wildcards *);
+
+uint32_t flow_wildcards_hash(const struct flow_wildcards *, uint32_t basis);
+bool flow_wildcards_equal(const struct flow_wildcards *,
+ const struct flow_wildcards *);
+uint32_t flow_hash_symmetric_l4(const struct flow *flow, uint32_t basis);
+
+const uint8_t *flow_wildcards_to_dl_dst_mask(flow_wildcards_t);
+bool flow_wildcards_is_dl_dst_mask_valid(const uint8_t[6]);
+flow_wildcards_t flow_wildcards_set_dl_dst_mask(flow_wildcards_t,
+ const uint8_t mask[6]);
+uint32_t flow_hash_fields(const struct flow *, enum nx_hash_fields,
+ uint16_t basis);
+const char *flow_hash_fields_to_str(enum nx_hash_fields);
+bool flow_hash_fields_valid(enum nx_hash_fields);