action.output.port = htons(OFPP_NORMAL);
memset(&flow, 0, sizeof flow);
ofproto_add_flow(fo->ofproto, &flow, OFPFW_ALL, 70000,
- &action, 1, NULL, 0);
+ &action, 1, 0);
}
}
action.output.port = htons(out_port);
action.output.max_len = htons(0);
ofproto_add_flow(in_band->ofproto, &rule->flow, rule->wildcards,
- rule->priority, &action, 1, NULL, 0);
+ rule->priority, &action, 1, 0);
}
}
ofproto_add_flow(struct ofproto *p,
const flow_t *flow, uint32_t wildcards, unsigned int priority,
const union ofp_action *actions, size_t n_actions,
- const struct ofpbuf *packet, int idle_timeout)
+ int idle_timeout)
{
struct rule *rule, *displaced_rule;
}
if (!wildcards) {
- rule_make_actions(p, rule, packet);
- if (packet
- && !dpif_execute(&p->dpif, flow->in_port,
- rule->odp_actions, rule->n_odp_actions, packet)) {
- rule->byte_count = packet->size;
- rule->packet_count++;
- }
+ rule_make_actions(p, rule, NULL);
rule_install(p, rule, NULL);
} else {
- assert(!packet);
-
/* We might need to change the rules for arbitrary subrules. */
p->need_revalidate = true;
}
void ofproto_add_flow(struct ofproto *, const flow_t *, uint32_t wildcards,
unsigned int priority,
const union ofp_action *, size_t n_actions,
- const struct ofpbuf *, int idle_timeout);
+ int idle_timeout);
void ofproto_delete_flow(struct ofproto *, const flow_t *, uint32_t wildcards,
unsigned int priority);
void ofproto_flush_flows(struct ofproto *);
action.output.port = htons(OFPP_NORMAL);
memset(&flow, 0, sizeof flow);
ofproto_add_flow(br->ofproto, &flow, OFPFW_ALL, 0,
- &action, 1, NULL, 0);
+ &action, 1, 0);
ofproto_set_in_band(br->ofproto, false);
ofproto_set_max_backoff(br->ofproto, 1);