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

Ben Pfaff blp at nicira.com
Thu Jun 9 22:21:20 UTC 2011


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




More information about the dev mailing list