* not if we are just revalidating. */
bool may_learn;
+ /* If the caller of xlate_actions() doesn't need the flow_wildcards
+ * contained in struct xlate_out. 'skip_wildcards' can be set to true
+ * disabling the expensive wildcard computation. When true, 'wc' in struct
+ * xlate_out is undefined and should not be read. */
+ bool skip_wildcards;
+
/* The rule initiating translation or NULL. If both 'rule' and 'ofpacts'
* are NULL, xlate_actions() will do the initial rule lookup itself. */
struct rule_dpif *rule;
const struct mbridge *, const struct dpif_sflow *,
const struct dpif_ipfix *, const struct netflow *,
enum ofp_config_flags, bool forward_bpdu,
- bool has_in_band)
+ bool has_in_band, bool variable_length_userdata,
+ size_t mpls_label_stack_length)
OVS_REQ_WRLOCK(xlate_rwlock);
void xlate_remove_ofproto(struct ofproto_dpif *) OVS_REQ_WRLOCK(xlate_rwlock);
int xlate_receive(const struct dpif_backer *, struct ofpbuf *packet,
const struct nlattr *key, size_t key_len,
- struct flow *, enum odp_key_fitness *,
- struct ofproto_dpif **, struct dpif_ipfix **,
+ struct flow *, struct ofproto_dpif **, struct dpif_ipfix **,
struct dpif_sflow **, struct netflow **,
odp_port_t *odp_in_port)
OVS_EXCLUDED(xlate_rwlock);