On Tue, Feb 25, 2014 at 03:25:35PM -0800, Ben Pfaff wrote:
> On Tue, Feb 11, 2014 at 01:55:34PM -0800, Joe Stringer wrote:
> > This splits out functions for re-use by later patches, and compacts the
> > udump revalidation code.
> >
> > Co-authored-by: Ethan Jackson <[email protected]>
> > Signed-off-by: Joe Stringer <[email protected]>
>
> I have this queued up to apply, thanks!
It looks like we can avoid more code duplication in the following
patch by folding in the following. I'm tentatively doing that.
diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c
index b576729..1bced67 100644
--- a/ofproto/ofproto-dpif-upcall.c
+++ b/ofproto/ofproto-dpif-upcall.c
@@ -1414,8 +1414,15 @@ dump_op_init(struct dump_op *op, const struct nlattr
*key, size_t key_len,
static void
push_dump_ops(struct udpif *udpif, struct dump_op *ops, size_t n_ops)
{
+ struct dpif_op *opsp[REVALIDATE_MAX_BATCH];
size_t i;
+ ovs_assert(n_ops <= REVALIDATE_MAX_BATCH);
+ for (i = 0; i < n_ops; i++) {
+ opsp[i] = &ops[i].op;
+ }
+ dpif_operate(udpif->dpif, opsp, n_ops);
+
for (i = 0; i < n_ops; i++) {
struct dump_op *op = &ops[i];
struct dpif_flow_stats *push, *stats, push_buf;
@@ -1464,7 +1471,6 @@ revalidate_udumps(struct revalidator *revalidator, struct
list *udumps)
struct udpif *udpif = revalidator->udpif;
struct dump_op ops[REVALIDATE_MAX_BATCH];
- struct dpif_op *opsp[REVALIDATE_MAX_BATCH];
struct udpif_flow_dump *udump, *next_udump;
size_t n_ops, i, n_flows;
unsigned int flow_limit;
@@ -1518,10 +1524,6 @@ revalidate_udumps(struct revalidator *revalidator,
struct list *udumps)
free(udump);
}
- for (i = 0; i < n_ops; i++) {
- opsp[i] = &ops[i].op;
- }
- dpif_operate(udpif->dpif, opsp, n_ops);
push_dump_ops(udpif, ops, n_ops);
for (i = 0; i < n_ops; i++) {
struct udpif_key *ukey = ops[i].ukey;
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev