openflow_input: fixup standard-1.4
- Add "== ?" syntax to discriminators.
- Add inheritance.
- Use of_octets_t for opaque data.
- Remove _header suffix from inheritance roots.
- Change 'ofp_' to 'of_' in struct definitions.
diff --git a/openflow_input/standard-1.4 b/openflow_input/standard-1.4
index db0854b..d7e38eb 100644
--- a/openflow_input/standard-1.4
+++ b/openflow_input/standard-1.4
@@ -751,8 +751,8 @@
uint16_t miss_send_len;
};
-struct ofp_table_mod_prop_header {
- uint16_t type; /* One of OFPTMPT_*. */
+struct of_table_mod_prop {
+ uint16_t type == ?; /* One of OFPTMPT_*. */
uint16_t length; /* Length in bytes of this property. */
};
@@ -764,11 +764,11 @@
uint8_t table_id;
pad(3);
uint32_t config;
- list(of_table_mod_prop_header_t) properties;
+ list(of_table_mod_prop_t) properties;
};
-struct ofp_port_desc_prop_header {
- uint16_t type; /* One of OFPPDPT_*. */
+struct of_port_desc_prop {
+ uint16_t type == ?; /* One of OFPPDPT_*. */
uint16_t length; /* Length in bytes of this property. */
};
@@ -781,7 +781,7 @@
of_port_name_t name;
enum ofp_port_config config; /* Bitmap of OFPPC_* flags. */
enum ofp_port_state state; /* Bitmap of OFPPS_* flags. */
- list(of_port_desc_prop_header_t) properties;
+ list(of_port_desc_prop_t) properties;
};
struct of_features_request : of_header {
@@ -815,8 +815,8 @@
of_port_desc_t desc;
};
-struct of_port_mod_prop_header {
- uint16_t type; /* One of OFPPMPT_*. */
+struct of_port_mod_prop {
+ uint16_t type == ?; /* One of OFPPMPT_*. */
uint16_t length; /* Length in bytes of this property. */
};
@@ -831,7 +831,7 @@
pad(2);
uint32_t config;
uint32_t mask;
- list(of_port_mod_prop_header_t) properties;
+ list(of_port_mod_prop_t) properties;
};
// FIXME Does this need to be v4?
@@ -846,7 +846,7 @@
struct of_action_id {
uint16_t type;
uint16_t len;
- list(uint8_t) exp_data;
+ of_octets_t exp_data;
};
struct of_action_output : of_action {
@@ -979,7 +979,7 @@
struct of_instruction_goto_table : of_instruction {
uint16_t type == 1;
uint16_t len;
- list(uint8_t) exp_data;
+ of_octets_t exp_data;
};
struct of_instruction_write_metadata : of_instruction {
@@ -1485,14 +1485,14 @@
};
/* Common header for all port stats properties. */
-struct ofp_port_stats_prop_header {
- uint16_t type; /* One of OFPPSPT_*. */
+struct of_port_stats_prop {
+ uint16_t type == ?; /* One of OFPPSPT_*. */
uint16_t length; /* Length in bytes of this property. */
};
/* Ethernet port stats property. */
-struct ofp_port_stats_prop_ethernet {
- uint16_t type; /* OFPPSPT_ETHERNET. */
+struct of_port_stats_prop_ethernet : of_port_stats_prop {
+ uint16_t type == 0; /* OFPPSPT_ETHERNET. */
uint16_t length; /* Length in bytes of this property. */
pad(4);
@@ -1503,8 +1503,8 @@
};
/* Optical port stats property. */
-struct ofp_port_stats_prop_optical {
- uint16_t type;
+struct of_port_stats_prop_optical : of_port_stats_prop {
+ uint16_t type == 1;
uint16_t length;
pad(4);
@@ -1522,12 +1522,12 @@
};
/* Experimenter port stats property. */
-struct ofp_port_stats_prop_experimenter {
- uint16_t type;
+struct of_port_stats_prop_experimenter : of_port_stats_prop {
+ uint16_t type == 0xffff;
uint16_t length;
- uint32_t experimenter;
+ uint32_t experimenter == ?;
uint32_t exp_type;
- list(uint32_t) experimenter_data;
+ of_octets_t experimenter_data;
};
struct of_port_stats_entry {
@@ -1544,11 +1544,11 @@
uint64_t tx_errors;
uint32_t duration_sec;
uint32_t duration_nsec;
- list(of_port_desc_prop_header_t) properties;
+ list(of_port_stats_prop_t) properties;
};
-struct of_queue_stats_prop_header {
- uint16_t type;
+struct of_queue_stats_prop {
+ uint16_t type == ?;
uint16_t length;
};
@@ -1564,7 +1564,7 @@
uint32_t duration_nsec;
- list(of_queue_stats_prop_header_t) properties;
+ list(of_queue_stats_prop_t) properties;
};
struct of_bucket_counter {
@@ -1842,7 +1842,7 @@
struct of_table_feature_prop_experimenter : of_table_feature_prop {
uint16_t type == 65534;
uint16_t length;
- uint32_t experimenter;
+ uint32_t experimenter == ?;
uint32_t subtype;
of_octets_t experimenter_data;
};
@@ -1850,7 +1850,7 @@
struct of_table_feature_prop_experimenter_miss : of_table_feature_prop {
uint16_t type == 65535;
uint16_t length;
- uint32_t experimenter;
+ uint32_t experimenter == ?;
uint32_t subtype;
of_octets_t experimenter_data;
};