[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