[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