[ovs-dev] [PATCH] nicira-ext: Renumber NXT_FLOW_MOD_TABLE_ID.

Ben Pfaff blp at nicira.com
Fri Jun 10 16:04:12 UTC 2011


Pushed.

I would have done this easier if I'd guessed that you would consider
it so horrible.

On Fri, Jun 10, 2011 at 12:34:22AM -0700, Justin Pettit wrote:
> Thank you, thank you, thank you for removing this horrible wart.
> 
> --Justin
> 
> 
> On Jun 9, 2011, at 3:21 PM, Ben Pfaff wrote:
> 
> > We don't know of anyone using this command in production yet, so it seems
> > reasonable to give it a new number instead of coping with it having a
> > conflicting number.
> > ---
> > include/openflow/nicira-ext.h |   18 +++++++-----------
> > lib/ofp-util.c                |   19 ++++---------------
> > 2 files changed, 11 insertions(+), 26 deletions(-)
> > 
> > diff --git a/include/openflow/nicira-ext.h b/include/openflow/nicira-ext.h
> > index 738fd90..3730376 100644
> > --- a/include/openflow/nicira-ext.h
> > +++ b/include/openflow/nicira-ext.h
> > @@ -141,19 +141,15 @@ enum nicira_type {
> >     NXT_ROLE_REQUEST,
> >     NXT_ROLE_REPLY,
> > 
> > -    /* Use the upper 8 bits of the 'command' member in struct ofp_flow_mod to
> > -     * designate the table to which a flow is to be added?  See the big comment
> > -     * on struct nxt_flow_mod_table_id for more information.
> > -     *
> > -     * A screwup caused this extension to be assigned the same value as
> > -     * NXT_SET_FLOW_FORMAT (see below).  The two extensions do have different
> > -     * lengths, so they can still be distinguished. */
> > -    NXT_FLOW_MOD_TABLE_ID,
> > -
> >     /* Flexible flow specification (aka NXM = Nicira Extended Match). */
> > -    NXT_SET_FLOW_FORMAT = NXT_FLOW_MOD_TABLE_ID, /* Set flow format. */
> > +    NXT_SET_FLOW_FORMAT,        /* Set flow format. */
> >     NXT_FLOW_MOD,               /* Analogous to OFPT_FLOW_MOD. */
> > -    NXT_FLOW_REMOVED            /* Analogous to OFPT_FLOW_REMOVED. */
> > +    NXT_FLOW_REMOVED,           /* Analogous to OFPT_FLOW_REMOVED. */
> > +
> > +    /* Use the upper 8 bits of the 'command' member in struct ofp_flow_mod to
> > +     * designate the table to which a flow is to be added?  See the big comment
> > +     * on struct nxt_flow_mod_table_id for more information. */
> > +    NXT_FLOW_MOD_TABLE_ID
> > };
> > 
> > /* Header for Nicira vendor stats request and reply messages. */
> > diff --git a/lib/ofp-util.c b/lib/ofp-util.c
> > index e21831f..06e3de0 100644
> > --- a/lib/ofp-util.c
> > +++ b/lib/ofp-util.c
> > @@ -373,6 +373,10 @@ ofputil_decode_vendor(const struct ofp_header *oh,
> >         { OFPUTIL_NXT_FLOW_REMOVED,
> >           NXT_FLOW_REMOVED, "NXT_FLOW_REMOVED",
> >           sizeof(struct nx_flow_removed), 8 },
> > +
> > +        { OFPUTIL_NXT_FLOW_MOD_TABLE_ID,
> > +          NXT_FLOW_MOD_TABLE_ID, "NXT_FLOW_MOD_TABLE_ID",
> > +          sizeof(struct nxt_flow_mod_table_id), 0 },
> >     };
> > 
> >     static const struct ofputil_msg_category nxt_category = {
> > @@ -399,21 +403,6 @@ ofputil_decode_vendor(const struct ofp_header *oh,
> >     }
> > 
> >     nh = (const struct nicira_header *) oh;
> > -
> > -    if (nh->subtype == htonl(NXT_FLOW_MOD_TABLE_ID)
> > -        && oh->length == htons(sizeof(struct nxt_flow_mod_table_id))) {
> > -        /* NXT_SET_FLOW_FORMAT and NXT_FLOW_MOD_TABLE_ID accidentally have the
> > -         * same value but different lengths.  ofputil_lookup_openflow_message()
> > -         * doesn't support this case, so special case it here. */
> > -        static const struct ofputil_msg_type nxt_flow_mod_table_id =
> > -            { OFPUTIL_NXT_FLOW_MOD_TABLE_ID,
> > -              NXT_FLOW_MOD_TABLE_ID, "NXT_FLOW_MOD_TABLE_ID",
> > -              sizeof(struct nxt_flow_mod_table_id), 0 };
> > -
> > -        *typep = &nxt_flow_mod_table_id;
> > -        return 0;
> > -    }
> > -
> >     return ofputil_lookup_openflow_message(&nxt_category, ntohl(nh->subtype),
> >                                            ntohs(oh->length), typep);
> > }
> > -- 
> > 1.7.4.4
> > 
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
> 



More information about the dev mailing list