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

Reply via email to