openflow_input: add discriminator fields
diff --git a/openflow_input/bsn b/openflow_input/bsn
index 16f3323..0aa674b 100644
--- a/openflow_input/bsn
+++ b/openflow_input/bsn
@@ -34,7 +34,7 @@
uint16_t length;
uint32_t xid;
uint32_t experimenter == 0x5c16c7;
- uint32_t subtype;
+ uint32_t subtype == ?;
};
// BSN extension action
@@ -42,7 +42,7 @@
uint16_t type == 65535;
uint16_t len;
uint32_t experimenter == 0x5c16c7;
- uint32_t subtype;
+ uint32_t subtype == ?;
pad(4);
};
diff --git a/openflow_input/nicira b/openflow_input/nicira
index f76be27..ba2048d 100644
--- a/openflow_input/nicira
+++ b/openflow_input/nicira
@@ -34,7 +34,7 @@
uint16_t length;
uint32_t xid;
uint32_t experimenter == 0x2320;
- uint32_t subtype;
+ uint32_t subtype == ?;
};
// Nicira extension action
@@ -42,7 +42,7 @@
uint16_t type == 65535;
uint16_t len;
uint32_t experimenter == 0x2320;
- uint16_t subtype;
+ uint16_t subtype == ?;
pad(2);
pad(4);
};
diff --git a/openflow_input/oxm-1.2 b/openflow_input/oxm-1.2
index e75d218..5006cff 100644
--- a/openflow_input/oxm-1.2
+++ b/openflow_input/oxm-1.2
@@ -33,7 +33,7 @@
#version 4
struct of_oxm {
- uint32_t type_len;
+ uint32_t type_len == ?;
};
struct of_oxm_arp_op : of_oxm {
diff --git a/openflow_input/standard-1.0 b/openflow_input/standard-1.0
index 6382759..d78d5bd 100644
--- a/openflow_input/standard-1.0
+++ b/openflow_input/standard-1.0
@@ -302,7 +302,7 @@
/* XXX rename to of_message */
struct of_header {
uint8_t version;
- uint8_t type;
+ uint8_t type == ?;
uint16_t length;
uint32_t xid;
};
@@ -538,7 +538,7 @@
};
struct of_action {
- uint16_t type;
+ uint16_t type == ?;
uint16_t len;
pad(4);
};
@@ -580,7 +580,7 @@
uint32_t xid;
of_match_t match;
uint64_t cookie;
- of_fm_cmd_t _command;
+ of_fm_cmd_t _command == ?;
uint16_t idle_timeout;
uint16_t hard_timeout;
uint16_t priority;
@@ -765,7 +765,7 @@
uint8_t type == 16;
uint16_t length;
uint32_t xid;
- uint16_t stats_type;
+ uint16_t stats_type == ?;
uint16_t flags;
};
@@ -774,7 +774,7 @@
uint8_t type == 17;
uint16_t length;
uint32_t xid;
- uint16_t stats_type;
+ uint16_t stats_type == ?;
uint16_t flags;
};
@@ -937,7 +937,7 @@
// END OF STATS OBJECTS
struct of_queue_prop {
- uint16_t type;
+ uint16_t type == ?;
uint16_t len;
pad(4);
};
diff --git a/openflow_input/standard-1.1 b/openflow_input/standard-1.1
index 222071a..9bf46bd 100644
--- a/openflow_input/standard-1.1
+++ b/openflow_input/standard-1.1
@@ -410,7 +410,7 @@
/* XXX rename to of_message */
struct of_header {
uint8_t version;
- uint8_t type;
+ uint8_t type == ?;
uint16_t length;
uint32_t xid;
};
@@ -747,7 +747,7 @@
};
struct of_action {
- uint16_t type;
+ uint16_t type == ?;
uint16_t len;
pad(4);
};
@@ -794,7 +794,7 @@
};
struct of_instruction {
- uint16_t type;
+ uint16_t type == ?;
uint16_t len;
pad(4);
};
@@ -849,7 +849,7 @@
uint64_t cookie;
uint64_t cookie_mask;
uint8_t table_id;
- of_fm_cmd_t _command;
+ of_fm_cmd_t _command == ?;
uint16_t idle_timeout;
uint16_t hard_timeout;
uint16_t priority;
@@ -1107,7 +1107,7 @@
uint8_t type == 18;
uint16_t length;
uint32_t xid;
- uint16_t stats_type;
+ uint16_t stats_type == ?;
uint16_t flags;
pad(4);
};
@@ -1117,7 +1117,7 @@
uint8_t type == 19;
uint16_t length;
uint32_t xid;
- uint16_t stats_type;
+ uint16_t stats_type == ?;
uint16_t flags;
pad(4);
};
@@ -1348,7 +1348,7 @@
// END OF STATS OBJECTS
struct of_queue_prop {
- uint16_t type;
+ uint16_t type == ?;
uint16_t len;
pad(4);
};
diff --git a/openflow_input/standard-1.2 b/openflow_input/standard-1.2
index 6bcebdc..440efe6 100644
--- a/openflow_input/standard-1.2
+++ b/openflow_input/standard-1.2
@@ -450,7 +450,7 @@
/* XXX rename to of_message */
struct of_header {
uint8_t version;
- uint8_t type;
+ uint8_t type == ?;
uint16_t length;
uint32_t xid;
};
@@ -704,13 +704,13 @@
};
struct of_action {
- uint16_t type;
+ uint16_t type == ?;
uint16_t len;
pad(4);
};
struct of_instruction {
- uint16_t type;
+ uint16_t type == ?;
uint16_t len;
pad(4);
};
@@ -765,7 +765,7 @@
uint64_t cookie;
uint64_t cookie_mask;
uint8_t table_id;
- of_fm_cmd_t _command;
+ of_fm_cmd_t _command == ?;
uint16_t idle_timeout;
uint16_t hard_timeout;
uint16_t priority;
@@ -1067,7 +1067,7 @@
uint8_t type == 18;
uint16_t length;
uint32_t xid;
- uint16_t stats_type;
+ uint16_t stats_type == ?;
uint16_t flags;
pad(4);
};
@@ -1077,7 +1077,7 @@
uint8_t type == 19;
uint16_t length;
uint32_t xid;
- uint16_t stats_type;
+ uint16_t stats_type == ?;
uint16_t flags;
pad(4);
};
@@ -1338,7 +1338,7 @@
// END OF STATS OBJECTS
struct of_queue_prop {
- uint16_t type;
+ uint16_t type == ?;
uint16_t len;
pad(4);
};
diff --git a/openflow_input/standard-1.3 b/openflow_input/standard-1.3
index 0a56793..87f0494 100644
--- a/openflow_input/standard-1.3
+++ b/openflow_input/standard-1.3
@@ -553,7 +553,7 @@
/* XXX rename to of_message */
struct of_header {
uint8_t version;
- uint8_t type;
+ uint8_t type == ?;
uint16_t length;
uint32_t xid;
};
@@ -851,13 +851,13 @@
};
struct of_action {
- uint16_t type;
+ uint16_t type == ?;
uint16_t len;
pad(4);
};
struct of_instruction {
- uint16_t type;
+ uint16_t type == ?;
uint16_t len;
};
@@ -917,7 +917,7 @@
uint64_t cookie;
uint64_t cookie_mask;
uint8_t table_id;
- of_fm_cmd_t _command;
+ of_fm_cmd_t _command == ?;
uint16_t idle_timeout;
uint16_t hard_timeout;
uint16_t priority;
@@ -1257,7 +1257,7 @@
uint8_t type == 18;
uint16_t length;
uint32_t xid;
- uint16_t stats_type;
+ uint16_t stats_type == ?;
uint16_t flags;
pad(4);
};
@@ -1267,7 +1267,7 @@
uint8_t type == 19;
uint16_t length;
uint32_t xid;
- uint16_t stats_type;
+ uint16_t stats_type == ?;
uint16_t flags;
pad(4);
};
@@ -1777,7 +1777,7 @@
// END OF STATS OBJECTS
struct of_queue_prop {
- uint16_t type;
+ uint16_t type == ?;
uint16_t len;
pad(4);
};