On Wed, Mar 2, 2011 at 2:31 PM, Ben Pfaff <b...@nicira.com> wrote:
> diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
> index 486ba48..daa260d 100644
> --- a/lib/dpif-netdev.c
> +++ b/lib/dpif-netdev.c
> @@ -944,6 +944,7 @@ dpif_netdev_flow_dump_done(const struct dpif *dpif 
> OVS_UNUSED, void *state_)
>
>  static int
>  dpif_netdev_execute(struct dpif *dpif,
> +                    const struct nlattr *k OVS_UNUSED, size_t k_len 
> OVS_UNUSED,

We could use the key here, rather than having to parse the packet
again.  There's no danger of flow definitions getting out of sync
here.  It doesn't make much of a difference in practice but it seems a
little cleaner.

> diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
> index aac9edd..6ba0030 100644
> --- a/ofproto/ofproto.c
> +++ b/ofproto/ofproto.c
> @@ -1464,17 +1464,22 @@ ofproto_send_packet(struct ofproto *p, const struct 
> flow *flow,
>                     const union ofp_action *actions, size_t n_actions,
>                     const struct ofpbuf *packet)
>  {
> +    struct ofpbuf key, *odp_actions;
> +    struct odputil_keybuf keybuf;
>     struct action_xlate_ctx ctx;
> -    struct ofpbuf *odp_actions;
>
>     action_xlate_ctx_init(&ctx, p, flow, packet);
>     /* Always xlate packets originated in this function. */
>     ctx.check_special = false;
>     odp_actions = xlate_actions(&ctx, actions, n_actions);
>
> +    ofpbuf_use_stack(&key, &keybuf, sizeof keybuf);
> +    odp_flow_key_from_flow(&key, flow);

It looks like this function and some other ones in ofproto will need
to be updated but I trust you can do that without me looking at it
again.

I was concerned about the implications of this on user/kernel flow
mismatch and in some ways both tighter and looser coupling of the flow
structure seemed preferable.  However, in the end both had serious
problems, so I guess this is the best compromise.

Acked-by: Jesse Gross <je...@nicira.com>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to