On Wed, Jul 02, 2014 at 08:14:14PM +1200, Joe Stringer wrote:
> This patch adds support for batching flow_get operations to the dpif. As
> part of this, it also now allows fetching the mask (this was previously
> not possible using a 'get' operation).
> 
> Signed-off-by: Joe Stringer <joestrin...@nicira.com>

This approach makes sense.

The comments on dpif_flow_get() don't match the parameters.  (Possibly
we could just remove that function.  It has no callers.)

I think it might be time to make the dpif_class 'operate' function
non-optional.  At that point, we can delete 'flow_get', 'flow_put',
'execute', and 'flow_del' from the dpif_class interface.  (This
doesn't have to be done in this patch or this series, it's just a
note.)

In dpif_linux_operate__(), I think that it is unnecessary to put
NLM_F_ECHO in the message flags.

I do not think that the code in dpif_linux_operate__() is safe.  It
looks to me like the reply is constructed in a stub on the stack (in
the local auxes[] array) and then the caller's get->buffer points into
that stub.  If so, then I think it would be better to require the
caller to not just supply a pointer to an ofpbuf but actually an
initialized ofpbuf that includes storage (probably a stub in most
cases) that dpif_operate() can use.

I don't think the comment on 'buffer' in the definition of
dpif_flow_get() describes the semantics well enough.  As is, I think
that any programmer who tries to use the interface will have to read
code a couple of layers deep, into dpif-linux or dpif-netdev, to use
it correctly.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to