[ovs-discuss] Question about handle_odp_miss_msg() in ofproto.c
Ethan Jackson
ethan at nicira.com
Wed Jun 6 00:24:24 UTC 2012
> /* Grab or compose the ODP actions.
> *
> * The special case for an exact-match 'rule' where 'flow' is not the
> * rule's flow is important to avoid, e.g., sending a packet out its input
> * port simply because the ODP actions were composed for the wrong
> * scenario. */
> if (rule->cr.wc.wildcards || !flow_equal(flow, &rule->cr.flow)) {
> <=== if wildcard we call xlate_actions() again, why?
I think the comment here clearly explains what's going on.
Ethan
> struct rule *super = rule->super ? rule->super : rule;
> if (xlate_actions(super->actions, super->n_actions, flow, ofproto,
> packet, &a, NULL, 0, NULL)) {
> ofpbuf_delete(packet);
> return;
> }
> actions = a.actions;
> n_actions = a.n_actions;
> } else {
> actions = rule->odp_actions;
> n_actions = rule->n_odp_actions;
> }
> _______________________________________________
> discuss mailing list
> discuss at openvswitch.org
> http://openvswitch.org/mailman/listinfo/discuss
More information about the discuss
mailing list