Thanks. I pushed these first four patches.
On Thu, Jul 05, 2012 at 04:34:12PM -0700, Justin Pettit wrote: > Looks good. > > --Justin > > > On Jun 29, 2012, at 10:40 PM, Ben Pfaff wrote: > > > This seems like sensible return value semantics to me, even though the new > > operation is also available through rule->pending. > > > > This is a code cleanup only that should not affect behavior. > > > > Signed-off-by: Ben Pfaff <b...@nicira.com> > > --- > > ofproto/ofproto.c | 27 ++++++++++++++++++--------- > > 1 files changed, 18 insertions(+), 9 deletions(-) > > > > diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c > > index 5221318..0e3009a 100644 > > --- a/ofproto/ofproto.c > > +++ b/ofproto/ofproto.c > > @@ -123,8 +123,9 @@ struct ofoperation { > > ovs_be64 flow_cookie; /* Rule's old flow cookie. */ > > }; > > > > -static void ofoperation_create(struct ofopgroup *, struct rule *, > > - enum ofoperation_type); > > +static struct ofoperation *ofoperation_create(struct ofopgroup *, > > + struct rule *, > > + enum ofoperation_type); > > static void ofoperation_destroy(struct ofoperation *); > > > > /* oftable. */ > > @@ -2851,6 +2852,7 @@ add_flow(struct ofproto *ofproto, struct ofconn > > *ofconn, > > } else if (victim && victim->pending) { > > error = OFPROTO_POSTPONE; > > } else { > > + struct ofoperation *op; > > struct rule *evict; > > > > if (classifier_count(&table->cls) > table->max_flows) { > > @@ -2873,8 +2875,8 @@ add_flow(struct ofproto *ofproto, struct ofconn > > *ofconn, > > } > > > > group = ofopgroup_create(ofproto, ofconn, request, fm->buffer_id); > > - ofoperation_create(group, rule, OFOPERATION_ADD); > > - rule->pending->victim = victim; > > + op = ofoperation_create(group, rule, OFOPERATION_ADD); > > + op->victim = victim; > > > > error = ofproto->ofproto_class->rule_construct(rule); > > if (error) { > > @@ -2924,9 +2926,11 @@ modify_flows__(struct ofproto *ofproto, struct > > ofconn *ofconn, > > > > if (!ofputil_actions_equal(fm->actions, fm->n_actions, > > rule->actions, rule->n_actions)) { > > - ofoperation_create(group, rule, OFOPERATION_MODIFY); > > - rule->pending->actions = rule->actions; > > - rule->pending->n_actions = rule->n_actions; > > + struct ofoperation *op; > > + > > + op = ofoperation_create(group, rule, OFOPERATION_MODIFY); > > + op->actions = rule->actions; > > + op->n_actions = rule->n_actions; > > rule->actions = ofputil_actions_clone(fm->actions, > > fm->n_actions); > > rule->n_actions = fm->n_actions; > > ofproto->ofproto_class->rule_modify_actions(rule); > > @@ -3580,8 +3584,11 @@ ofopgroup_destroy(struct ofopgroup *group) > > } > > > > /* Initiates a new operation on 'rule', of the specified 'type', within > > - * 'group'. Prior to calling, 'rule' must not have any pending operation. > > */ > > -static void > > + * 'group'. Prior to calling, 'rule' must not have any pending operation. > > + * > > + * Returns the newly created ofoperation (which is also available as > > + * rule->pending). */ > > +static struct ofoperation * > > ofoperation_create(struct ofopgroup *group, struct rule *rule, > > enum ofoperation_type type) > > { > > @@ -3601,6 +3608,8 @@ ofoperation_create(struct ofopgroup *group, struct > > rule *rule, > > hmap_insert(&ofproto->deletions, &op->hmap_node, > > cls_rule_hash(&rule->cr, rule->table_id)); > > } > > + > > + return op; > > } > > > > static void > > -- > > 1.7.2.5 > > > > _______________________________________________ > > dev mailing list > > dev@openvswitch.org > > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev