aboutsummaryrefslogtreecommitdiff
path: root/lib/ofp-msgs.h
diff options
context:
space:
mode:
authorJarno Rajahalme <jarno.rajahalme@nsn.com>2012-11-27 17:44:22 +0200
committerBen Pfaff <blp@nicira.com>2012-11-27 09:37:50 -0800
commit2e1ae2005ed347d2dfebd23fff40c54a1a2a6716 (patch)
treee8bfc3b61bd60017b5da871dfd0a0a62f7f8690d /lib/ofp-msgs.h
parent6ed3b860fe806fce26dfc760cb428a9a5432d329 (diff)
Initial OpenFlow 1.3 support
Initial OpenFlow 1.3 support with new include/openflow/openflow-1.3.h. Most of the messages that differ from 1.2 are implemented. OFPT_SET_ASYNC is implemented via NX_SET_ASYNC_CONFIG, other new message types are yet to be implemented. Stats replies that add duration fields are implemented at encode/decode level only. Test cases for implemented features are included. Remaining FIXME:s should not cause runtime aborts. Make check comes out clean. Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'lib/ofp-msgs.h')
-rw-r--r--lib/ofp-msgs.h135
1 files changed, 122 insertions, 13 deletions
diff --git a/lib/ofp-msgs.h b/lib/ofp-msgs.h
index 557524dc..496d120a 100644
--- a/lib/ofp-msgs.h
+++ b/lib/ofp-msgs.h
@@ -128,8 +128,10 @@ enum ofpraw {
/* OFPT 1.0 (6): struct ofp_switch_features, struct ofp10_phy_port[]. */
OFPRAW_OFPT10_FEATURES_REPLY,
- /* OFPT 1.1+ (6): struct ofp_switch_features, struct ofp11_port[]. */
+ /* OFPT 1.1-1.2 (6): struct ofp_switch_features, struct ofp11_port[]. */
OFPRAW_OFPT11_FEATURES_REPLY,
+ /* OFPT 1.3+ (6): struct ofp_switch_features. */
+ OFPRAW_OFPT13_FEATURES_REPLY,
/* OFPT 1.0+ (7): void. */
OFPRAW_OFPT_GET_CONFIG_REQUEST,
@@ -146,6 +148,8 @@ enum ofpraw {
OFPRAW_OFPT11_PACKET_IN,
/* OFPT 1.2 (10): struct ofp12_packet_in, uint8_t[]. */
OFPRAW_OFPT12_PACKET_IN,
+ /* OFPT 1.3 (10): struct ofp13_packet_in, uint8_t[]. */
+ OFPRAW_OFPT13_PACKET_IN,
/* NXT 1.0+ (17): struct nx_packet_in, uint8_t[]. */
OFPRAW_NXT_PACKET_IN,
@@ -188,6 +192,18 @@ enum ofpraw {
/* OFPT 1.1+ (21): void. */
OFPRAW_OFPT11_BARRIER_REPLY,
+ /* OFPT 1.3+ (26): void. */
+ OFPRAW_OFPT13_GET_ASYNC_REQUEST,
+ /* OFPT 1.3+ (27): struct ofp13_async_config. */
+ OFPRAW_OFPT13_GET_ASYNC_REPLY,
+ /* OFPT 1.3+ (28): struct ofp13_async_config. */
+ OFPRAW_OFPT13_SET_ASYNC,
+ /* NXT 1.0+ (19): struct nx_async_config. */
+ OFPRAW_NXT_SET_ASYNC_CONFIG,
+
+ /* OFPT 1.3+ (29): struct ofp13_meter_mod. */
+ OFPRAW_OFPT13_METER_MOD,
+
/* Standard statistics. */
/* OFPST 1.0+ (0): void. */
@@ -205,8 +221,10 @@ enum ofpraw {
/* OFPST 1.0 (1): uint8_t[]. */
OFPRAW_OFPST10_FLOW_REPLY,
- /* OFPST 1.1+ (1): uint8_t[]. */
+ /* OFPST 1.1-1.2 (1): uint8_t[]. */
OFPRAW_OFPST11_FLOW_REPLY,
+ /* OFPST 1.3+ (1): uint8_t[]. */
+ OFPRAW_OFPST13_FLOW_REPLY,
/* NXST 1.0 (0): uint8_t[]. */
OFPRAW_NXST_FLOW_REPLY,
@@ -222,7 +240,7 @@ enum ofpraw {
/* NXST 1.0 (1): struct ofp_aggregate_stats_reply. */
OFPRAW_NXST_AGGREGATE_REPLY,
- /* OFPST 1.0-1.2 (3): void. */
+ /* OFPST 1.0+ (3): void. */
OFPRAW_OFPST_TABLE_REQUEST,
/* OFPST 1.0 (3): struct ofp10_table_stats[]. */
@@ -231,6 +249,8 @@ enum ofpraw {
OFPRAW_OFPST11_TABLE_REPLY,
/* OFPST 1.2 (3): struct ofp12_table_stats[]. */
OFPRAW_OFPST12_TABLE_REPLY,
+ /* OFPST 1.3 (3): struct ofp13_table_stats[]. */
+ OFPRAW_OFPST13_TABLE_REPLY,
/* OFPST 1.0 (4): struct ofp10_port_stats_request. */
OFPRAW_OFPST10_PORT_REQUEST,
@@ -239,8 +259,10 @@ enum ofpraw {
/* OFPST 1.0 (4): struct ofp10_port_stats[]. */
OFPRAW_OFPST10_PORT_REPLY,
- /* OFPST 1.1+ (4): struct ofp11_port_stats[]. */
+ /* OFPST 1.1-1.2 (4): struct ofp11_port_stats[]. */
OFPRAW_OFPST11_PORT_REPLY,
+ /* OFPST 1.3+ (4): struct ofp13_port_stats[]. */
+ OFPRAW_OFPST13_PORT_REPLY,
/* OFPST 1.0 (5): struct ofp10_queue_stats_request. */
OFPRAW_OFPST10_QUEUE_REQUEST,
@@ -249,8 +271,54 @@ enum ofpraw {
/* OFPST 1.0 (5): struct ofp10_queue_stats[]. */
OFPRAW_OFPST10_QUEUE_REPLY,
- /* OFPST 1.1+ (5): struct ofp11_queue_stats[]. */
+ /* OFPST 1.1-1.2 (5): struct ofp11_queue_stats[]. */
OFPRAW_OFPST11_QUEUE_REPLY,
+ /* OFPST 1.3+ (5): struct ofp13_queue_stats[]. */
+ OFPRAW_OFPST13_QUEUE_REPLY,
+
+ /* OFPST 1.1+ (6): struct ofp11_group_stats_request. */
+ OFPRAW_OFPST11_GROUP_REQUEST,
+
+ /* OFPST 1.1-1.2 (6): struct ofp11_group_stats[]. */
+ OFPRAW_OFPST11_GROUP_REPLY,
+ /* OFPST 1.3 (6): struct ofp13_group_stats[]. */
+ OFPRAW_OFPST13_GROUP_REPLY,
+
+ /* OFPST 1.1+ (7): void. */
+ OFPRAW_OFPST11_GROUP_DESC_REQUEST,
+
+ /* OFPST 1.1+ (7): struct ofp11_group_desc_stats[]. */
+ OFPRAW_OFPST11_GROUP_DESC_REPLY,
+
+ /* OFPST 1.2+ (8): void. */
+ OFPRAW_OFPST12_GROUP_FEATURES_REQUEST,
+
+ /* OFPST 1.2+ (8): struct ofp12_group_features_stats. */
+ OFPRAW_OFPST12_GROUP_FEATURES_REPLY,
+
+ /* OFPST 1.3+ (9): struct ofp13_meter_multipart_request. */
+ OFPRAW_OFPST13_METER_REQUEST,
+
+ /* OFPST 1.3+ (9): struct ofp13_meter_stats[]. */
+ OFPRAW_OFPST13_METER_REPLY,
+
+ /* OFPST 1.3+ (10): struct ofp13_meter_multipart_request. */
+ OFPRAW_OFPST13_METER_CONFIG_REQUEST,
+
+ /* OFPST 1.3+ (10): struct ofp13_meter_config[]. */
+ OFPRAW_OFPST13_METER_CONFIG_REPLY,
+
+ /* OFPST 1.3+ (11): void. */
+ OFPRAW_OFPST13_METER_FEATURES_REQUEST,
+
+ /* OFPST 1.3+ (11): struct ofp13_meter_features. */
+ OFPRAW_OFPST13_METER_FEATURES_REPLY,
+
+ /* OFPST 1.3+ (12): struct ofp13_table_features[]. */
+ OFPRAW_OFPST13_TABLE_FEATURES_REQUEST,
+
+ /* OFPST 1.3+ (12): struct ofp13_table_features[]. */
+ OFPRAW_OFPST13_TABLE_FEATURES_REPLY,
/* OFPST 1.0+ (13): void. */
OFPRAW_OFPST_PORT_DESC_REQUEST,
@@ -283,9 +351,6 @@ enum ofpraw {
/* NXT 1.0+ (18): void. */
OFPRAW_NXT_FLOW_AGE,
- /* NXT 1.0+ (19): struct nx_async_config. */
- OFPRAW_NXT_SET_ASYNC_CONFIG,
-
/* NXT 1.0+ (20): struct nx_controller_id. */
OFPRAW_NXT_SET_CONTROLLER_ID,
@@ -360,7 +425,8 @@ enum ofptype {
/* Switch configuration messages. */
OFPTYPE_FEATURES_REQUEST, /* OFPRAW_OFPT_FEATURES_REQUEST. */
OFPTYPE_FEATURES_REPLY, /* OFPRAW_OFPT10_FEATURES_REPLY.
- * OFPRAW_OFPT11_FEATURES_REPLY. */
+ * OFPRAW_OFPT11_FEATURES_REPLY.
+ * OFPRAW_OFPT13_FEATURES_REPLY. */
OFPTYPE_GET_CONFIG_REQUEST, /* OFPRAW_OFPT_GET_CONFIG_REQUEST. */
OFPTYPE_GET_CONFIG_REPLY, /* OFPRAW_OFPT_GET_CONFIG_REPLY. */
OFPTYPE_SET_CONFIG, /* OFPRAW_OFPT_SET_CONFIG. */
@@ -369,6 +435,7 @@ enum ofptype {
OFPTYPE_PACKET_IN, /* OFPRAW_OFPT10_PACKET_IN.
* OFPRAW_OFPT11_PACKET_IN.
* OFPRAW_OFPT12_PACKET_IN.
+ * OFPRAW_OFPT13_PACKET_IN.
* OFPRAW_NXT_PACKET_IN. */
OFPTYPE_FLOW_REMOVED, /* OFPRAW_OFPT10_FLOW_REMOVED.
* OFPRAW_OFPT11_FLOW_REMOVED.
@@ -391,6 +458,15 @@ enum ofptype {
OFPTYPE_BARRIER_REPLY, /* OFPRAW_OFPT10_BARRIER_REPLY.
* OFPRAW_OFPT11_BARRIER_REPLY. */
+ /* Asynchronous message configuration. */
+ OFPTYPE_GET_ASYNC_REQUEST, /* OFPRAW_OFPT13_GET_ASYNC_REQUEST. */
+ OFPTYPE_GET_ASYNC_REPLY, /* OFPRAW_OFPT13_GET_ASYNC_REPLY. */
+ OFPTYPE_SET_ASYNC_CONFIG, /* OFPRAW_NXT_SET_ASYNC_CONFIG.
+ * OFPRAW_OFPT13_SET_ASYNC. */
+
+ /* Meters and rate limiters configuration messages. */
+ OFPTYPE_METER_MOD, /* OFPRAW_OFPT13_METER_MOD. */
+
/* Statistics. */
OFPTYPE_DESC_STATS_REQUEST, /* OFPRAW_OFPST_DESC_REQUEST. */
OFPTYPE_DESC_STATS_REPLY, /* OFPRAW_OFPST_DESC_REPLY. */
@@ -399,6 +475,7 @@ enum ofptype {
* OFPRAW_NXST_FLOW_REQUEST. */
OFPTYPE_FLOW_STATS_REPLY, /* OFPRAW_OFPST10_FLOW_REPLY.
* OFPRAW_OFPST11_FLOW_REPLY.
+ * OFPRAW_OFPST13_FLOW_REPLY.
* OFPRAW_NXST_FLOW_REPLY. */
OFPTYPE_AGGREGATE_STATS_REQUEST, /* OFPRAW_OFPST10_AGGREGATE_REQUEST.
* OFPRAW_OFPST11_AGGREGATE_REQUEST.
@@ -408,15 +485,48 @@ enum ofptype {
OFPTYPE_TABLE_STATS_REQUEST, /* OFPRAW_OFPST_TABLE_REQUEST. */
OFPTYPE_TABLE_STATS_REPLY, /* OFPRAW_OFPST10_TABLE_REPLY.
* OFPRAW_OFPST11_TABLE_REPLY.
- * OFPRAW_OFPST12_TABLE_REPLY. */
+ * OFPRAW_OFPST12_TABLE_REPLY.
+ * OFPRAW_OFPST13_TABLE_REPLY. */
OFPTYPE_PORT_STATS_REQUEST, /* OFPRAW_OFPST10_PORT_REQUEST.
* OFPRAW_OFPST11_PORT_REQUEST. */
OFPTYPE_PORT_STATS_REPLY, /* OFPRAW_OFPST10_PORT_REPLY.
- * OFPRAW_OFPST11_PORT_REPLY. */
+ * OFPRAW_OFPST11_PORT_REPLY.
+ * OFPRAW_OFPST13_PORT_REPLY. */
OFPTYPE_QUEUE_STATS_REQUEST, /* OFPRAW_OFPST10_QUEUE_REQUEST.
* OFPRAW_OFPST11_QUEUE_REQUEST. */
OFPTYPE_QUEUE_STATS_REPLY, /* OFPRAW_OFPST10_QUEUE_REPLY.
- * OFPRAW_OFPST11_QUEUE_REPLY. */
+ * OFPRAW_OFPST11_QUEUE_REPLY.
+ * OFPRAW_OFPST13_QUEUE_REPLY. */
+
+ OFPTYPE_GROUP_REQUEST, /* OFPRAW_OFPST11_GROUP_REQUEST. */
+
+ OFPTYPE_GROUP_REPLY, /* OFPRAW_OFPST11_GROUP_REPLY.
+ * OFPRAW_OFPST13_GROUP_REPLY. */
+
+ OFPTYPE_GROUP_DESC_REQUEST, /* OFPRAW_OFPST11_GROUP_DESC_REQUEST. */
+
+ OFPTYPE_GROUP_DESC_REPLY, /* OFPRAW_OFPST11_GROUP_DESC_REPLY. */
+
+ OFPTYPE_GROUP_FEATURES_REQUEST, /* OFPRAW_OFPST12_GROUP_FEATURES_REQUEST. */
+
+ OFPTYPE_GROUP_FEATURES_REPLY, /* OFPRAW_OFPST12_GROUP_FEATURES_REPLY. */
+
+ OFPTYPE_METER_REQUEST, /* OFPRAW_OFPST13_METER_REQUEST. */
+
+ OFPTYPE_METER_REPLY, /* OFPRAW_OFPST13_METER_REPLY. */
+
+ OFPTYPE_METER_CONFIG_REQUEST, /* OFPRAW_OFPST13_METER_CONFIG_REQUEST. */
+
+ OFPTYPE_METER_CONFIG_REPLY, /* OFPRAW_OFPST13_METER_CONFIG_REPLY. */
+
+ OFPTYPE_METER_FEATURES_REQUEST, /* OFPRAW_OFPST13_METER_FEATURES_REQUEST. */
+
+ OFPTYPE_METER_FEATURES_REPLY, /* OFPRAW_OFPST13_METER_FEATURES_REPLY. */
+
+ OFPTYPE_TABLE_FEATURES_REQUEST, /* OFPRAW_OFPST13_TABLE_FEATURES_REQUEST. */
+
+ OFPTYPE_TABLE_FEATURES_REPLY, /* OFPRAW_OFPST13_TABLE_FEATURES_REPLY. */
+
OFPTYPE_PORT_DESC_STATS_REQUEST, /* OFPRAW_OFPST_PORT_DESC_REQUEST. */
OFPTYPE_PORT_DESC_STATS_REPLY, /* OFPRAW_OFPST10_PORT_DESC_REPLY.
@@ -429,7 +539,6 @@ enum ofptype {
OFPTYPE_FLOW_MOD_TABLE_ID, /* OFPRAW_NXT_FLOW_MOD_TABLE_ID. */
OFPTYPE_SET_PACKET_IN_FORMAT, /* OFPRAW_NXT_SET_PACKET_IN_FORMAT. */
OFPTYPE_FLOW_AGE, /* OFPRAW_NXT_FLOW_AGE. */
- OFPTYPE_SET_ASYNC_CONFIG, /* OFPRAW_NXT_SET_ASYNC_CONFIG. */
OFPTYPE_SET_CONTROLLER_ID, /* OFPRAW_NXT_SET_CONTROLLER_ID. */
/* Flow monitor extension. */