From: Ben Pfaff Date: Thu, 9 Jun 2011 22:18:21 +0000 (-0700) Subject: nicira-ext: Renumber NXT_FLOW_MOD_TABLE_ID. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d1e9b9bf30de1cdcac4d4da74d2a5c017f41519d;p=openvswitch nicira-ext: Renumber NXT_FLOW_MOD_TABLE_ID. 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. --- diff --git a/include/openflow/nicira-ext.h b/include/openflow/nicira-ext.h index 4270c165..c516b9f2 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 750918d8..dfbbf1b6 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); }