diff --git a/openflow_input/bsn_get_interfaces b/openflow_input/bsn_get_interfaces
index d2105a2..ba1508c 100644
--- a/openflow_input/bsn_get_interfaces
+++ b/openflow_input/bsn_get_interfaces
@@ -29,11 +29,11 @@
 
 struct of_bsn_get_interfaces_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN
-    uint32_t subtype;   // BSN_GET_INTERFACES_REQUEST
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 9;
 };
 
 struct of_bsn_interface {
@@ -46,10 +46,10 @@
 
 struct of_bsn_get_interfaces_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN
-    uint32_t subtype;   // BSN_GET_INTERFACES_REQUEST
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 10;
     list(of_bsn_interface_t) interfaces;
 };
diff --git a/openflow_input/bsn_ip_mask b/openflow_input/bsn_ip_mask
index c8b3bd8..b6d517b 100644
--- a/openflow_input/bsn_ip_mask
+++ b/openflow_input/bsn_ip_mask
@@ -29,11 +29,11 @@
 
 struct of_bsn_set_ip_mask {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter;  // bsn 0x005c16c7,
-    uint32_t subtype;       // 0
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 0;
     uint8_t index;
     pad(3);
     uint32_t mask;
@@ -41,22 +41,22 @@
 
 struct of_bsn_get_ip_mask_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter;  // bsn 0x005c16c7,
-    uint32_t subtype;       // 1
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 1;
     uint8_t index;
     pad(7);
 };
 
 struct of_bsn_get_ip_mask_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter;  // bsn 0x005c16c7,
-    uint32_t subtype;       // 2
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 2;
     uint8_t index;
     pad(3);
     uint32_t mask;
diff --git a/openflow_input/bsn_mirror b/openflow_input/bsn_mirror
index 02ea8ec..cc9e4c3 100644
--- a/openflow_input/bsn_mirror
+++ b/openflow_input/bsn_mirror
@@ -29,10 +29,10 @@
 
 // BSN mirror action
 struct of_action_bsn_mirror {
-    uint16_t type;      // OF_ACTION_TYPE_EXPERIMENTER
+    uint16_t type == 65535;
     uint16_t len;
-    uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN 
-    uint32_t subtype;   // ACTION_BSN_MIRROR 
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 1;
     uint32_t dest_port; // mirror destination port
     uint32_t vlan_tag;  // VLAN tag for mirrored packet (TPID+TCI) (0 == none)
     uint8_t copy_stage; // 0 == ingress, 1 == egress 
@@ -42,33 +42,33 @@
 // BSN mirroring messages
 struct of_bsn_set_mirroring {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN
-    uint32_t subtype;   // BSN_MIRRORING_SET
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 3;
     uint8_t report_mirror_ports;
     pad(3);
 };
 
 struct of_bsn_get_mirroring_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN
-    uint32_t subtype;   // BSN_MIRRORING_GET_REQUEST
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 4;
     uint8_t report_mirror_ports;
     pad(3);
 };
 
 struct of_bsn_get_mirroring_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN
-    uint32_t subtype;   // BSN_MIRRORING_GET_REPLY
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 5;
     uint8_t report_mirror_ports;
     pad(3);
 };
diff --git a/openflow_input/bsn_pktin_suppression b/openflow_input/bsn_pktin_suppression
index 7bc32b2..4dcf71d 100644
--- a/openflow_input/bsn_pktin_suppression
+++ b/openflow_input/bsn_pktin_suppression
@@ -57,11 +57,11 @@
 
 struct of_bsn_set_pktin_suppression {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN
-    uint32_t subtype;         // 11
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 11;
     uint8_t enabled;
     pad(1);
     uint16_t idle_timeout;
diff --git a/openflow_input/bsn_set_tunnel_dst b/openflow_input/bsn_set_tunnel_dst
index 79e57b3..74757f6 100644
--- a/openflow_input/bsn_set_tunnel_dst
+++ b/openflow_input/bsn_set_tunnel_dst
@@ -29,9 +29,9 @@
 
 // BSN set tunnel destination IP action
 struct of_action_bsn_set_tunnel_dst {
-    uint16_t type;      // OF_ACTION_TYPE_EXPERIMENTER
+    uint16_t type == 65535;
     uint16_t len;
-    uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN 
-    uint32_t subtype;   // ACTION_BSN_SET_TUNNEL_DST
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 2;
     uint32_t dst; // tunnel destination IP
 };
diff --git a/openflow_input/bsn_shell b/openflow_input/bsn_shell
index a65905d..805b7e9 100644
--- a/openflow_input/bsn_shell
+++ b/openflow_input/bsn_shell
@@ -29,31 +29,31 @@
 
 struct of_bsn_shell_command {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN
-    uint32_t subtype;   // BSN_SHELL_COMMAND
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 6;
     uint32_t service;
     of_octets_t data;
 };
 
 struct of_bsn_shell_output {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN
-    uint32_t subtype;   // BSN_SHELL_OUTPUT
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 7;
     of_octets_t data;
 };
 
 struct of_bsn_shell_status {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN
-    uint32_t subtype;   // BSN_SHELL_STATUS
+    uint32_t experimenter == 0x5c16c7;
+    uint32_t subtype == 8;
     uint32_t status;
 };
diff --git a/openflow_input/bsn_table_mod b/openflow_input/bsn_table_mod
index fe2dd73..cc5e723 100644
--- a/openflow_input/bsn_table_mod
+++ b/openflow_input/bsn_table_mod
@@ -31,7 +31,7 @@
 // for use inside components
 struct of_table_mod {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 22;
     uint16_t length;
     uint32_t xid;
     uint8_t table_id;
diff --git a/openflow_input/nicira_dec_ttl b/openflow_input/nicira_dec_ttl
index 33a80a6..77649af 100644
--- a/openflow_input/nicira_dec_ttl
+++ b/openflow_input/nicira_dec_ttl
@@ -28,10 +28,10 @@
 #version any
 
 struct of_action_nicira_dec_ttl {
-    uint16_t type;      // OF_ACTION_TYPE_EXPERIMENTER
+    uint16_t type == 65535;
     uint16_t len;
-    uint32_t experimenter;    // OF_EXPERIMENTER_ID_NICIRA
-    uint16_t subtype;         // 18
+    uint32_t experimenter == 0x2320;
+    uint16_t subtype == 18;
     pad(2);
     pad(4);
 };
diff --git a/openflow_input/nicira_role b/openflow_input/nicira_role
index fdb37f0..5747d45 100644
--- a/openflow_input/nicira_role
+++ b/openflow_input/nicira_role
@@ -35,20 +35,20 @@
 
 struct of_nicira_controller_role_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter; // OF_EXPERIMENTER_ID_NICIRA 0x00002320
-    uint32_t subtype;      // 10
+    uint32_t experimenter == 0x2320;
+    uint32_t subtype == 10;
     uint32_t role;         // 0 other, 1 master, 2 slave
 };
 
 struct of_nicira_controller_role_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
-    uint32_t experimenter; // OF_EXPERIMENTER_ID_NICIRA 0x00002320
-    uint32_t subtype;      // 11
+    uint32_t experimenter == 0x2320;
+    uint32_t subtype == 11;
     uint32_t role;         // 0 other, 1 master, 2 slave
 };
diff --git a/openflow_input/oxm-1.2 b/openflow_input/oxm-1.2
index a28d88b..b18c6fb 100644
--- a/openflow_input/oxm-1.2
+++ b/openflow_input/oxm-1.2
@@ -39,397 +39,397 @@
 
 
 struct of_oxm_arp_op {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002a02;
     uint16_t value;
 };
 
 struct of_oxm_arp_op_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002b04;
     uint16_t value;
     uint16_t value_mask;
 };
 
 struct of_oxm_arp_sha {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003006;
     of_mac_addr_t value;
 };
 
 struct of_oxm_arp_sha_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x8000310c;
     of_mac_addr_t value;
     of_mac_addr_t value_mask;
 };
 
 struct of_oxm_arp_spa {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002c04;
     uint32_t value;
 };
 
 struct of_oxm_arp_spa_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002d08;
     uint32_t value;
     uint32_t value_mask;
 };
 
 struct of_oxm_arp_tha {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003206;
     of_mac_addr_t value;
 };
 
 struct of_oxm_arp_tha_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x8000330c;
     of_mac_addr_t value;
     of_mac_addr_t value_mask;
 };
 
 struct of_oxm_arp_tpa {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002e04;
     uint32_t value;
 };
 
 struct of_oxm_arp_tpa_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002f08;
     uint32_t value;
     uint32_t value_mask;
 };
 
 struct of_oxm_eth_dst {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000606;
     of_mac_addr_t value;
 };
 
 struct of_oxm_eth_dst_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x8000070c;
     of_mac_addr_t value;
     of_mac_addr_t value_mask;
 };
 
 struct of_oxm_eth_src {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000806;
     of_mac_addr_t value;
 };
 
 struct of_oxm_eth_src_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x8000090c;
     of_mac_addr_t value;
     of_mac_addr_t value_mask;
 };
 
 struct of_oxm_eth_type {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000a02;
     uint16_t value;
 };
 
 struct of_oxm_eth_type_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000b04;
     uint16_t value;
     uint16_t value_mask;
 };
 
 struct of_oxm_icmpv4_code {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002801;
     uint8_t value;
 };
 
 struct of_oxm_icmpv4_code_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002902;
     uint8_t value;
     uint8_t value_mask;
 };
 
 struct of_oxm_icmpv4_type {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002601;
     uint8_t value;
 };
 
 struct of_oxm_icmpv4_type_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002702;
     uint8_t value;
     uint8_t value_mask;
 };
 
 struct of_oxm_icmpv6_code {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003c01;
     uint8_t value;
 };
 
 struct of_oxm_icmpv6_code_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003d02;
     uint8_t value;
     uint8_t value_mask;
 };
 
 struct of_oxm_icmpv6_type {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003a01;
     uint8_t value;
 };
 
 struct of_oxm_icmpv6_type_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003b02;
     uint8_t value;
     uint8_t value_mask;
 };
 
 struct of_oxm_in_phy_port {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000204;
     of_port_no_t value;
 };
 
 struct of_oxm_in_phy_port_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000308;
     of_port_no_t value;
     of_port_no_t value_mask;
 };
 
 struct of_oxm_in_port {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000004;
     of_port_no_t value;
 };
 
 struct of_oxm_in_port_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000108;
     of_port_no_t value;
     of_port_no_t value_mask;
 };
 
 struct of_oxm_ip_dscp {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001001;
     uint8_t value;
 };
 
 struct of_oxm_ip_dscp_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001102;
     uint8_t value;
     uint8_t value_mask;
 };
 
 struct of_oxm_ip_ecn {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001201;
     uint8_t value;
 };
 
 struct of_oxm_ip_ecn_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001302;
     uint8_t value;
     uint8_t value_mask;
 };
 
 struct of_oxm_ip_proto {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001401;
     uint8_t value;
 };
 
 struct of_oxm_ip_proto_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001502;
     uint8_t value;
     uint8_t value_mask;
 };
 
 struct of_oxm_ipv4_dst {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001804;
     uint32_t value;
 };
 
 struct of_oxm_ipv4_dst_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001908;
     uint32_t value;
     uint32_t value_mask;
 };
 
 struct of_oxm_ipv4_src {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001604;
     uint32_t value;
 };
 
 struct of_oxm_ipv4_src_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001708;
     uint32_t value;
     uint32_t value_mask;
 };
 
 struct of_oxm_ipv6_dst {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003610;
     of_ipv6_t value;
 };
 
 struct of_oxm_ipv6_dst_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003720;
     of_ipv6_t value;
     of_ipv6_t value_mask;
 };
 
 struct of_oxm_ipv6_flabel {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003804;
     uint32_t value;
 };
 
 struct of_oxm_ipv6_flabel_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003908;
     uint32_t value;
     uint32_t value_mask;
 };
 
 struct of_oxm_ipv6_nd_sll {
-    uint32_t type_len;
+    uint32_t type_len == 0x80004006;
     of_mac_addr_t value;
 };
 
 struct of_oxm_ipv6_nd_sll_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x8000410c;
     of_mac_addr_t value;
     of_mac_addr_t value_mask;
 };
 
 struct of_oxm_ipv6_nd_target {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003e10;
     of_ipv6_t value;
 };
 
 struct of_oxm_ipv6_nd_target_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003f20;
     of_ipv6_t value;
     of_ipv6_t value_mask;
 };
 
 struct of_oxm_ipv6_nd_tll {
-    uint32_t type_len;
+    uint32_t type_len == 0x80004206;
     of_mac_addr_t value;
 };
 
 struct of_oxm_ipv6_nd_tll_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x8000430c;
     of_mac_addr_t value;
     of_mac_addr_t value_mask;
 };
 
 struct of_oxm_ipv6_src {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003410;
     of_ipv6_t value;
 };
 
 struct of_oxm_ipv6_src_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80003520;
     of_ipv6_t value;
     of_ipv6_t value_mask;
 };
 
 struct of_oxm_metadata {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000408;
     uint64_t value;
 };
 
 struct of_oxm_metadata_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000510;
     uint64_t value;
     uint64_t value_mask;
 };
 
 struct of_oxm_mpls_label {
-    uint32_t type_len;
+    uint32_t type_len == 0x80004404;
     uint32_t value;
 };
 
 struct of_oxm_mpls_label_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80004508;
     uint32_t value;
     uint32_t value_mask;
 };
 
 struct of_oxm_mpls_tc {
-    uint32_t type_len;
+    uint32_t type_len == 0x80004601;
     uint8_t value;
 };
 
 struct of_oxm_mpls_tc_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80004702;
     uint8_t value;
     uint8_t value_mask;
 };
 
 struct of_oxm_sctp_dst {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002402;
     uint16_t value;
 };
 
 struct of_oxm_sctp_dst_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002504;
     uint16_t value;
     uint16_t value_mask;
 };
 
 struct of_oxm_sctp_src {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002202;
     uint16_t value;
 };
 
 struct of_oxm_sctp_src_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002304;
     uint16_t value;
     uint16_t value_mask;
 };
 
 struct of_oxm_tcp_dst {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001c02;
     uint16_t value;
 };
 
 struct of_oxm_tcp_dst_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001d04;
     uint16_t value;
     uint16_t value_mask;
 };
 
 struct of_oxm_tcp_src {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001a02;
     uint16_t value;
 };
 
 struct of_oxm_tcp_src_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001b04;
     uint16_t value;
     uint16_t value_mask;
 };
 
 struct of_oxm_udp_dst {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002002;
     uint16_t value;
 };
 
 struct of_oxm_udp_dst_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80002104;
     uint16_t value;
     uint16_t value_mask;
 };
 
 struct of_oxm_udp_src {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001e02;
     uint16_t value;
 };
 
 struct of_oxm_udp_src_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80001f04;
     uint16_t value;
     uint16_t value_mask;
 };
 
 struct of_oxm_vlan_pcp {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000e01;
     uint8_t value;
 };
 
 struct of_oxm_vlan_pcp_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000f02;
     uint8_t value;
     uint8_t value_mask;
 };
 
 struct of_oxm_vlan_vid {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000c02;
     uint16_t value;
 };
 
 struct of_oxm_vlan_vid_masked {
-    uint32_t type_len;
+    uint32_t type_len == 0x80000d04;
     uint16_t value;
     uint16_t value_mask;
 };
diff --git a/openflow_input/standard-1.0 b/openflow_input/standard-1.0
index c436655..5d4405c 100644
--- a/openflow_input/standard-1.0
+++ b/openflow_input/standard-1.0
@@ -305,14 +305,14 @@
 
 struct of_hello {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 0;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_echo_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 2;
     uint16_t length;
     uint32_t xid;
     of_octets_t data;
@@ -320,7 +320,7 @@
 
 struct of_echo_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 3;
     uint16_t length;
     uint32_t xid;
     of_octets_t data;
@@ -328,7 +328,7 @@
 
 struct of_experimenter {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
     uint32_t experimenter;
@@ -338,28 +338,28 @@
 
 struct of_barrier_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_barrier_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_get_config_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 7;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_get_config_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 8;
     uint16_t length;
     uint32_t xid;
     uint16_t flags;
@@ -368,7 +368,7 @@
 
 struct of_set_config {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 9;
     uint16_t length;
     uint32_t xid;
     uint16_t flags;
@@ -389,14 +389,14 @@
 
 struct of_features_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 5;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_features_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 6;
     uint16_t length;
     uint32_t xid;
     uint64_t datapath_id;
@@ -410,7 +410,7 @@
 
 struct of_port_status {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 12;
     uint16_t length;
     uint32_t xid;
     uint8_t reason;
@@ -420,7 +420,7 @@
 
 struct of_port_mod {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 15;
     uint16_t length;
     uint32_t xid;
     of_port_no_t port_no;
@@ -433,7 +433,7 @@
 
 struct of_packet_in {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 10;
     uint16_t length;
     uint32_t xid;
     uint32_t buffer_id;
@@ -445,88 +445,88 @@
 };
 
 struct of_action_output {
-    uint16_t type;
+    uint16_t type == 0;
     uint16_t len;
     of_port_no_t port;
     uint16_t max_len;
 };
 
 struct of_action_set_vlan_vid {
-    uint16_t type;
+    uint16_t type == 1;
     uint16_t len;
     uint16_t vlan_vid;
     pad(2);
 };
 
 struct of_action_strip_vlan {
-    uint16_t type;
+    uint16_t type == 3;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_set_vlan_pcp {
-    uint16_t type;
+    uint16_t type == 2;
     uint16_t len;
     uint8_t vlan_pcp;
     pad(3);
 };
 
 struct of_action_set_dl_src {
-    uint16_t type;
+    uint16_t type == 4;
     uint16_t len;
     of_mac_addr_t dl_addr;
     pad(6);
 };
 
 struct of_action_set_dl_dst {
-    uint16_t type;
+    uint16_t type == 5;
     uint16_t len;
     of_mac_addr_t dl_addr;
     pad(6);
 };
 
 struct of_action_set_nw_src {
-    uint16_t type;
+    uint16_t type == 6;
     uint16_t len;
     uint32_t nw_addr;
 };
 
 struct of_action_set_nw_dst {
-    uint16_t type;
+    uint16_t type == 7;
     uint16_t len;
     uint32_t nw_addr;
 };
 
 struct of_action_set_tp_src {
-    uint16_t type;
+    uint16_t type == 9;
     uint16_t len;
     uint16_t tp_port;
     pad(2);
 };
 
 struct of_action_set_tp_dst {
-    uint16_t type;
+    uint16_t type == 10;
     uint16_t len;
     uint16_t tp_port;
     pad(2);
 };
 
 struct of_action_set_nw_tos {
-    uint16_t type;
+    uint16_t type == 8;
     uint16_t len;
     uint8_t nw_tos;
     pad(3);
 };
 
 struct of_action_experimenter {
-    uint16_t type;
+    uint16_t type == 65535;
     uint16_t len;
     uint32_t experimenter;
     of_octets_t data;
 };
 
 struct of_action_enqueue {
-    uint16_t type;
+    uint16_t type == 11;
     uint16_t len;
     of_port_no_t port;
     pad(6);
@@ -541,7 +541,7 @@
 
 struct of_packet_out {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 13;
     uint16_t length;
     uint32_t xid;
     uint32_t buffer_id;
@@ -571,12 +571,12 @@
 
 struct of_flow_add {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     of_match_t match;
     uint64_t cookie;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 0;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -588,12 +588,12 @@
 
 struct of_flow_modify {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     of_match_t match;
     uint64_t cookie;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 1;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -605,12 +605,12 @@
 
 struct of_flow_modify_strict {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     of_match_t match;
     uint64_t cookie;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 2;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -622,12 +622,12 @@
 
 struct of_flow_delete {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     of_match_t match;
     uint64_t cookie;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 3;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -639,12 +639,12 @@
 
 struct of_flow_delete_strict {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     of_match_t match;
     uint64_t cookie;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 4;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -656,7 +656,7 @@
 
 struct of_flow_removed {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 11;
     uint16_t length;
     uint32_t xid;
     of_match_t match;
@@ -674,7 +674,7 @@
 
 struct of_error_msg {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 1;
     uint16_t length;
     uint32_t xid;
     uint16_t err_type;
@@ -741,19 +741,19 @@
 
 struct of_desc_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 16;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0;
     uint16_t flags;
 };
 
 struct of_desc_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 17;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0;
     uint16_t flags;
     of_desc_str_t mfr_desc;
     of_desc_str_t hw_desc;
@@ -764,10 +764,10 @@
 
 struct of_flow_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 16;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 1;
     uint16_t flags;
     of_match_t match;
     uint8_t table_id;
@@ -777,20 +777,20 @@
 
 struct of_flow_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 17;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 1;
     uint16_t flags;
     list(of_flow_stats_entry_t) entries;
 };
 
 struct of_aggregate_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 16;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 2;
     uint16_t flags;
     of_match_t match;
     uint8_t table_id;
@@ -800,10 +800,10 @@
 
 struct of_aggregate_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 17;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 2;
     uint16_t flags;
     uint64_t packet_count;
     uint64_t byte_count;
@@ -813,29 +813,29 @@
 
 struct of_table_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 16;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 3;
     uint16_t flags;
 };
 
 struct of_table_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 17;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 3;
     uint16_t flags;
     list(of_table_stats_entry_t) entries;
 };
 
 struct of_port_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 16;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 4;
     uint16_t flags;
     of_port_no_t port_no;
     pad(6);
@@ -843,20 +843,20 @@
 
 struct of_port_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 17;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 4;
     uint16_t flags;
     list(of_port_stats_entry_t) entries;
 };
 
 struct of_queue_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 16;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 5;
     uint16_t flags;
     of_port_no_t port_no;
     pad(2);
@@ -865,20 +865,20 @@
 
 struct of_queue_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 17;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 5;
     uint16_t flags;
     list(of_queue_stats_entry_t) entries;
 };
 
 struct of_experimenter_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 16;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0xffff;
     uint16_t flags;
     uint32_t experimenter;
     of_octets_t data;
@@ -886,10 +886,10 @@
 
 struct of_experimenter_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 17;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0xffff;
     uint16_t flags;
     uint32_t experimenter;
     of_octets_t data;
@@ -904,7 +904,7 @@
 };
 
 struct of_queue_prop_min_rate {
-    uint16_t type;
+    uint16_t type == 1;
     uint16_t len;
     pad(4);
     uint16_t rate;
@@ -920,7 +920,7 @@
 
 struct of_queue_get_config_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 20;
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
@@ -929,7 +929,7 @@
 
 struct of_queue_get_config_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 21;
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
diff --git a/openflow_input/standard-1.1 b/openflow_input/standard-1.1
index 644f000..a477d55 100644
--- a/openflow_input/standard-1.1
+++ b/openflow_input/standard-1.1
@@ -416,14 +416,14 @@
 
 struct of_hello {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 0;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_echo_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 2;
     uint16_t length;
     uint32_t xid;
     of_octets_t data;
@@ -431,7 +431,7 @@
 
 struct of_echo_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 3;
     uint16_t length;
     uint32_t xid;
     of_octets_t data;
@@ -439,7 +439,7 @@
 
 struct of_experimenter {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
     uint32_t experimenter;
@@ -449,28 +449,28 @@
 
 struct of_barrier_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 20;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_barrier_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 21;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_get_config_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 7;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_get_config_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 8;
     uint16_t length;
     uint32_t xid;
     uint16_t flags;
@@ -479,7 +479,7 @@
 
 struct of_set_config {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 9;
     uint16_t length;
     uint32_t xid;
     uint16_t flags;
@@ -488,7 +488,7 @@
 
 struct of_table_mod {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 17;
     uint16_t length;
     uint32_t xid;
     uint8_t table_id;
@@ -514,14 +514,14 @@
 
 struct of_features_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 5;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_features_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 6;
     uint16_t length;
     uint32_t xid;
     uint64_t datapath_id;
@@ -535,7 +535,7 @@
 
 struct of_port_status {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 12;
     uint16_t length;
     uint32_t xid;
     uint8_t reason;
@@ -545,7 +545,7 @@
 
 struct of_port_mod {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 16;
     uint16_t length;
     uint32_t xid;
     of_port_no_t port_no;
@@ -560,7 +560,7 @@
 
 struct of_packet_in {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 10;
     uint16_t length;
     uint32_t xid;
     uint32_t buffer_id;
@@ -573,7 +573,7 @@
 };
 
 struct of_action_output {
-    uint16_t type;
+    uint16_t type == 0;
     uint16_t len;
     of_port_no_t port;
     uint16_t max_len;
@@ -581,165 +581,165 @@
 };
 
 struct of_action_set_vlan_vid {
-    uint16_t type;
+    uint16_t type == 1;
     uint16_t len;
     uint16_t vlan_vid;
     pad(2);
 };
 
 struct of_action_set_vlan_pcp {
-    uint16_t type;
+    uint16_t type == 2;
     uint16_t len;
     uint8_t vlan_pcp;
     pad(3);
 };
 
 struct of_action_set_dl_src {
-    uint16_t type;
+    uint16_t type == 3;
     uint16_t len;
     of_mac_addr_t dl_addr;
     pad(6);
 };
 
 struct of_action_set_dl_dst {
-    uint16_t type;
+    uint16_t type == 4;
     uint16_t len;
     of_mac_addr_t dl_addr;
     pad(6);
 };
 
 struct of_action_set_nw_src {
-    uint16_t type;
+    uint16_t type == 5;
     uint16_t len;
     uint32_t nw_addr;
 };
 
 struct of_action_set_nw_dst {
-    uint16_t type;
+    uint16_t type == 6;
     uint16_t len;
     uint32_t nw_addr;
 };
 
 struct of_action_set_nw_tos {
-    uint16_t type;
+    uint16_t type == 7;
     uint16_t len;
     uint8_t nw_tos;
     pad(3);
 };
 
 struct of_action_set_nw_ecn {
-    uint16_t type;
+    uint16_t type == 8;
     uint16_t len;
     uint8_t nw_ecn;
     pad(3);
 };
 
 struct of_action_set_tp_src {
-    uint16_t type;
+    uint16_t type == 9;
     uint16_t len;
     uint16_t tp_port;
     pad(2);
 };
 
 struct of_action_set_tp_dst {
-    uint16_t type;
+    uint16_t type == 10;
     uint16_t len;
     uint16_t tp_port;
     pad(2);
 };
 
 struct of_action_copy_ttl_out {
-    uint16_t type;
+    uint16_t type == 11;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_copy_ttl_in {
-    uint16_t type;
+    uint16_t type == 12;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_set_mpls_label {
-    uint16_t type;
+    uint16_t type == 13;
     uint16_t len;
     uint32_t mpls_label;
 };
 
 struct of_action_set_mpls_tc {
-    uint16_t type;
+    uint16_t type == 14;
     uint16_t len;
     uint8_t mpls_tc;
     pad(3);
 };
 
 struct of_action_set_mpls_ttl {
-    uint16_t type;
+    uint16_t type == 15;
     uint16_t len;
     uint8_t mpls_ttl;
     pad(3);
 };
 
 struct of_action_dec_mpls_ttl {
-    uint16_t type;
+    uint16_t type == 16;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_push_vlan {
-    uint16_t type;
+    uint16_t type == 17;
     uint16_t len;
     uint16_t ethertype;
     pad(2);
 };
 
 struct of_action_pop_vlan {
-    uint16_t type;
+    uint16_t type == 18;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_push_mpls {
-    uint16_t type;
+    uint16_t type == 19;
     uint16_t len;
     uint16_t ethertype;
     pad(2);
 };
 
 struct of_action_pop_mpls {
-    uint16_t type;
+    uint16_t type == 20;
     uint16_t len;
     uint16_t ethertype;
     pad(2);
 };
 
 struct of_action_set_queue {
-    uint16_t type;
+    uint16_t type == 21;
     uint16_t len;
     uint32_t queue_id;
 };
 
 struct of_action_group {
-    uint16_t type;
+    uint16_t type == 22;
     uint16_t len;
     uint32_t group_id;
 };
 
 struct of_action_set_nw_ttl {
-    uint16_t type;
+    uint16_t type == 23;
     uint16_t len;
     uint8_t nw_ttl;
     pad(3);
 };
 
 struct of_action_dec_nw_ttl {
-    uint16_t type;
+    uint16_t type == 24;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_experimenter {
-    uint16_t type;
+    uint16_t type == 65535;
     uint16_t len;
     uint32_t experimenter;
     of_octets_t data;
@@ -753,7 +753,7 @@
 
 struct of_packet_out {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 13;
     uint16_t length;
     uint32_t xid;
     uint32_t buffer_id;
@@ -765,7 +765,7 @@
 };
 
 struct of_match_v2 {
-    uint16_t type;
+    uint16_t type == 0;
     uint16_t length;
     of_port_no_t in_port;
     of_wc_bmap_t wildcards;
@@ -799,14 +799,14 @@
 };
 
 struct of_instruction_goto_table {
-    uint16_t type;
+    uint16_t type == 1;
     uint16_t len;
     uint8_t table_id;
     pad(3);
 };
 
 struct of_instruction_write_metadata {
-    uint16_t type;
+    uint16_t type == 2;
     uint16_t len;
     pad(4);
     uint64_t metadata;
@@ -814,27 +814,27 @@
 };
 
 struct of_instruction_write_actions {
-    uint16_t type;
+    uint16_t type == 3;
     uint16_t len;
     pad(4);
     list(of_action_t) actions;
 };
 
 struct of_instruction_apply_actions {
-    uint16_t type;
+    uint16_t type == 4;
     uint16_t len;
     pad(4);
     list(of_action_t) actions;
 };
 
 struct of_instruction_clear_actions {
-    uint16_t type;
+    uint16_t type == 5;
     uint16_t len;
     pad(4);
 };
 
 struct of_instruction_experimenter {
-    uint16_t type;		
+    uint16_t type == 65535;
     uint16_t len;
     uint32_t experimenter;
     of_octets_t data;
@@ -842,13 +842,13 @@
 
 struct of_flow_add {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 0;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -863,13 +863,13 @@
 
 struct of_flow_modify {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 1;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -884,13 +884,13 @@
 
 struct of_flow_modify_strict {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 2;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -905,13 +905,13 @@
 
 struct of_flow_delete {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 3;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -926,13 +926,13 @@
 
 struct of_flow_delete_strict {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 4;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -956,7 +956,7 @@
 
 struct of_group_mod {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 15;
     uint16_t length;
     uint32_t xid;
     uint16_t command;
@@ -968,7 +968,7 @@
 
 struct of_flow_removed {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 11;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
@@ -986,7 +986,7 @@
 
 struct of_error_msg {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 1;
     uint16_t length;
     uint32_t xid;
     uint16_t err_type;
@@ -1082,20 +1082,20 @@
 
 struct of_desc_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0;
     uint16_t flags;
     pad(4);
 };
 
 struct of_desc_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0;
     uint16_t flags;
     pad(4);
     of_desc_str_t mfr_desc;
@@ -1107,10 +1107,10 @@
 
 struct of_flow_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 1;
     uint16_t flags;
     pad(4);
     uint8_t table_id;
@@ -1125,10 +1125,10 @@
 
 struct of_flow_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 1;
     uint16_t flags;
     pad(4);
     list(of_flow_stats_entry_t) entries;
@@ -1136,10 +1136,10 @@
 
 struct of_aggregate_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 2;
     uint16_t flags;
     pad(4);
     uint8_t table_id;
@@ -1154,10 +1154,10 @@
 
 struct of_aggregate_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 2;
     uint16_t flags;
     pad(4);
     uint64_t packet_count;
@@ -1168,20 +1168,20 @@
 
 struct of_table_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 3;
     uint16_t flags;
     pad(4);
 };
 
 struct of_table_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 3;
     uint16_t flags;
     pad(4);
     list(of_table_stats_entry_t) entries;
@@ -1189,10 +1189,10 @@
 
 struct of_port_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 4;
     uint16_t flags;
     pad(4);
     of_port_no_t port_no;
@@ -1201,10 +1201,10 @@
 
 struct of_port_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 4;
     uint16_t flags;
     pad(4);
     list(of_port_stats_entry_t) entries;
@@ -1212,10 +1212,10 @@
 
 struct of_queue_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 5;
     uint16_t flags;
     pad(4);
     of_port_no_t port_no;
@@ -1224,10 +1224,10 @@
 
 struct of_queue_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 5;
     uint16_t flags;
     pad(4);
     list(of_queue_stats_entry_t) entries;
@@ -1235,10 +1235,10 @@
 
 struct of_group_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 6;
     uint16_t flags;
     pad(4);
     uint32_t group_id;
@@ -1247,10 +1247,10 @@
 
 struct of_group_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 6;
     uint16_t flags;
     pad(4);
     list(of_group_stats_entry_t) entries;
@@ -1258,20 +1258,20 @@
 
 struct of_group_desc_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 7;
     uint16_t flags;
     pad(4);
 };
 
 struct of_group_desc_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 7;
     uint16_t flags;
     pad(4);
     list(of_group_desc_stats_entry_t) entries;
@@ -1279,10 +1279,10 @@
 
 struct of_experimenter_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0xffff;
     uint16_t flags;
     pad(4);
     uint32_t experimenter;
@@ -1292,10 +1292,10 @@
 
 struct of_experimenter_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0xffff;
     uint16_t flags;
     pad(4);
     uint32_t experimenter;
@@ -1312,7 +1312,7 @@
 };
 
 struct of_queue_prop_min_rate {
-    uint16_t type;
+    uint16_t type == 1;
     uint16_t len;
     pad(4);
     uint16_t rate;
@@ -1328,7 +1328,7 @@
 
 struct of_queue_get_config_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 22;
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
@@ -1337,7 +1337,7 @@
 
 struct of_queue_get_config_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 23;
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
diff --git a/openflow_input/standard-1.2 b/openflow_input/standard-1.2
index 0ada3da..50bb042 100644
--- a/openflow_input/standard-1.2
+++ b/openflow_input/standard-1.2
@@ -456,14 +456,14 @@
 
 struct of_hello {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 0;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_echo_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 2;
     uint16_t length;
     uint32_t xid;
     of_octets_t data;
@@ -471,7 +471,7 @@
 
 struct of_echo_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 3;
     uint16_t length;
     uint32_t xid;
     of_octets_t data;
@@ -479,7 +479,7 @@
 
 struct of_experimenter {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
     uint32_t experimenter;
@@ -489,28 +489,28 @@
 
 struct of_barrier_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 20;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_barrier_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 21;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_get_config_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 7;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_get_config_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 8;
     uint16_t length;
     uint32_t xid;
     uint16_t flags;
@@ -519,7 +519,7 @@
 
 struct of_set_config {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 9;
     uint16_t length;
     uint32_t xid;
     uint16_t flags;
@@ -528,7 +528,7 @@
 
 struct of_table_mod {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 17;
     uint16_t length;
     uint32_t xid;
     uint8_t table_id;
@@ -554,14 +554,14 @@
 
 struct of_features_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 5;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_features_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 6;
     uint16_t length;
     uint32_t xid;
     uint64_t datapath_id;
@@ -575,7 +575,7 @@
 
 struct of_port_status {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 12;
     uint16_t length;
     uint32_t xid;
     uint8_t reason;
@@ -585,7 +585,7 @@
 
 struct of_port_mod {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 16;
     uint16_t length;
     uint32_t xid;
     of_port_no_t port_no;
@@ -599,7 +599,7 @@
 };
 
 struct of_match_v3 {
-    uint16_t type;
+    uint16_t type == 1;
     uint16_t length;
     list(of_oxm_t) oxm_list;
 };
@@ -611,7 +611,7 @@
 };
 
 struct of_action_output {
-    uint16_t type;
+    uint16_t type == 0;
     uint16_t len;
     of_port_no_t port;
     uint16_t max_len;
@@ -619,90 +619,90 @@
 };
 
 struct of_action_copy_ttl_out {
-    uint16_t type;
+    uint16_t type == 11;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_copy_ttl_in {
-    uint16_t type;
+    uint16_t type == 12;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_set_mpls_ttl {
-    uint16_t type;
+    uint16_t type == 15;
     uint16_t len;
     uint8_t mpls_ttl;
     pad(3);
 };
 
 struct of_action_dec_mpls_ttl {
-    uint16_t type;
+    uint16_t type == 16;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_push_vlan {
-    uint16_t type;
+    uint16_t type == 17;
     uint16_t len;
     uint16_t ethertype;
     pad(2);
 };
 
 struct of_action_pop_vlan {
-    uint16_t type;
+    uint16_t type == 18;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_push_mpls {
-    uint16_t type;
+    uint16_t type == 19;
     uint16_t len;
     uint16_t ethertype;
     pad(2);
 };
 
 struct of_action_pop_mpls {
-    uint16_t type;
+    uint16_t type == 20;
     uint16_t len;
     uint16_t ethertype;
     pad(2);
 };
 
 struct of_action_set_queue {
-    uint16_t type;
+    uint16_t type == 21;
     uint16_t len;
     uint32_t queue_id;
 };
 
 struct of_action_group {
-    uint16_t type;
+    uint16_t type == 22;
     uint16_t len;
     uint32_t group_id;
 };
 
 struct of_action_set_nw_ttl {
-    uint16_t type;
+    uint16_t type == 23;
     uint16_t len;
     uint8_t nw_ttl;
     pad(3);
 };
 
 struct of_action_dec_nw_ttl {
-    uint16_t type;
+    uint16_t type == 24;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_set_field {
-    uint16_t type;
+    uint16_t type == 25;
     uint16_t len;
     of_octets_t field;
 };
 
 struct of_action_experimenter {
-    uint16_t type;
+    uint16_t type == 65535;
     uint16_t len;
     uint32_t experimenter;
     of_octets_t data;
@@ -721,14 +721,14 @@
 };
 
 struct of_instruction_goto_table {
-    uint16_t type;
+    uint16_t type == 1;
     uint16_t len;
     uint8_t table_id;
     pad(3);
 };
 
 struct of_instruction_write_metadata {
-    uint16_t type;
+    uint16_t type == 2;
     uint16_t len;
     pad(4);
     uint64_t metadata;
@@ -736,27 +736,27 @@
 };
 
 struct of_instruction_write_actions {
-    uint16_t type;
+    uint16_t type == 3;
     uint16_t len;
     pad(4);
     list(of_action_t) actions;
 };
 
 struct of_instruction_apply_actions {
-    uint16_t type;
+    uint16_t type == 4;
     uint16_t len;
     pad(4);
     list(of_action_t) actions;
 };
 
 struct of_instruction_clear_actions {
-    uint16_t type;
+    uint16_t type == 5;
     uint16_t len;
     pad(4);
 };
 
 struct of_instruction_experimenter {
-    uint16_t type;		
+    uint16_t type == 65535;
     uint16_t len;
     uint32_t experimenter;
     of_octets_t data;
@@ -764,13 +764,13 @@
 
 struct of_flow_add {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 0;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -785,13 +785,13 @@
 
 struct of_flow_modify {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 1;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -806,13 +806,13 @@
 
 struct of_flow_modify_strict {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 2;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -827,13 +827,13 @@
 
 struct of_flow_delete {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 3;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -848,13 +848,13 @@
 
 struct of_flow_delete_strict {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 4;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -878,7 +878,7 @@
 
 struct of_group_mod {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 15;
     uint16_t length;
     uint32_t xid;
     uint16_t command;
@@ -890,7 +890,7 @@
 
 struct of_packet_out {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 13;
     uint16_t length;
     uint32_t xid;
     uint32_t buffer_id;
@@ -903,7 +903,7 @@
 
 struct of_packet_in {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 10;
     uint16_t length;
     uint32_t xid;
     uint32_t buffer_id;
@@ -917,7 +917,7 @@
 
 struct of_flow_removed {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 11;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
@@ -935,7 +935,7 @@
 
 struct of_error_msg {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 1;
     uint16_t length;
     uint32_t xid;
     uint16_t err_type;
@@ -1048,20 +1048,20 @@
 
 struct of_desc_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0;
     uint16_t flags;
     pad(4);
 };
 
 struct of_desc_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0;
     uint16_t flags;
     pad(4);
     of_desc_str_t mfr_desc;
@@ -1073,10 +1073,10 @@
 
 struct of_flow_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 1;
     uint16_t flags;
     pad(4);
     uint8_t table_id;
@@ -1091,10 +1091,10 @@
 
 struct of_flow_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 1;
     uint16_t flags;
     pad(4);
     list(of_flow_stats_entry_t) entries;
@@ -1102,10 +1102,10 @@
 
 struct of_aggregate_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 2;
     uint16_t flags;
     pad(4);
     uint8_t table_id;
@@ -1120,10 +1120,10 @@
 
 struct of_aggregate_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 2;
     uint16_t flags;
     pad(4);
     uint64_t packet_count;
@@ -1134,20 +1134,20 @@
 
 struct of_table_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 3;
     uint16_t flags;
     pad(4);
 };
 
 struct of_table_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 3;
     uint16_t flags;
     pad(4);
     list(of_table_stats_entry_t) entries;
@@ -1155,10 +1155,10 @@
 
 struct of_port_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 4;
     uint16_t flags;
     pad(4);
     of_port_no_t port_no;
@@ -1167,10 +1167,10 @@
 
 struct of_port_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 4;
     uint16_t flags;
     pad(4);
     list(of_port_stats_entry_t) entries;
@@ -1178,10 +1178,10 @@
 
 struct of_queue_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 5;
     uint16_t flags;
     pad(4);
     of_port_no_t port_no;
@@ -1190,10 +1190,10 @@
 
 struct of_queue_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 5;
     uint16_t flags;
     pad(4);
     list(of_queue_stats_entry_t) entries;
@@ -1201,10 +1201,10 @@
 
 struct of_group_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 6;
     uint16_t flags;
     pad(4);
     uint32_t group_id;
@@ -1213,10 +1213,10 @@
 
 struct of_group_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 6;
     uint16_t flags;
     pad(4);
     list(of_group_stats_entry_t) entries;
@@ -1224,20 +1224,20 @@
 
 struct of_group_desc_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 7;
     uint16_t flags;
     pad(4);
 };
 
 struct of_group_desc_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 7;
     uint16_t flags;
     pad(4);
     list(of_group_desc_stats_entry_t) entries;
@@ -1245,20 +1245,20 @@
 
 struct of_group_features_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 8;
     uint16_t flags;
     pad(4);
 };
 
 struct of_group_features_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 8;
     uint16_t flags;
     pad(4);
     uint32_t types;
@@ -1275,10 +1275,10 @@
 
 struct of_experimenter_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0xffff;
     uint16_t flags;
     pad(4);
     uint32_t experimenter;
@@ -1288,10 +1288,10 @@
 
 struct of_experimenter_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0xffff;
     uint16_t flags;
     pad(4);
     uint32_t experimenter;
@@ -1308,7 +1308,7 @@
 };
 
 struct of_queue_prop_min_rate {
-    uint16_t type;
+    uint16_t type == 1;
     uint16_t len;
     pad(4);
     uint16_t rate;
@@ -1316,7 +1316,7 @@
 };
 
 struct of_queue_prop_max_rate {
-    uint16_t type;
+    uint16_t type == 2;
     uint16_t len;
     pad(4);
     uint16_t rate;
@@ -1324,7 +1324,7 @@
 };
 
 struct of_queue_prop_experimenter {
-    uint16_t type;
+    uint16_t type == 65535;
     uint16_t len;
     pad(4);
     uint32_t experimenter;
@@ -1342,7 +1342,7 @@
 
 struct of_queue_get_config_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 22;
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
@@ -1351,7 +1351,7 @@
 
 struct of_queue_get_config_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 23;
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
@@ -1361,7 +1361,7 @@
 
 struct of_role_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 24;
     uint16_t length;
     uint32_t xid;
     uint32_t role;
@@ -1371,7 +1371,7 @@
 
 struct of_role_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 25;
     uint16_t length;
     uint32_t xid;
     of_octets_t data;
diff --git a/openflow_input/standard-1.3 b/openflow_input/standard-1.3
index c9410fa..bc6c524 100644
--- a/openflow_input/standard-1.3
+++ b/openflow_input/standard-1.3
@@ -571,14 +571,14 @@
 };
 
 struct of_hello_elem_versionbitmap {
-    uint16_t type;
+    uint16_t type == 1;
     uint16_t length;
     list(of_uint32_t) bitmaps;
 };
 
 struct of_hello {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 0;
     uint16_t length;
     uint32_t xid;
     list(of_hello_elem_t) elements;
@@ -586,7 +586,7 @@
 
 struct of_echo_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 2;
     uint16_t length;
     uint32_t xid;
     of_octets_t data;
@@ -594,7 +594,7 @@
 
 struct of_echo_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 3;
     uint16_t length;
     uint32_t xid;
     of_octets_t data;
@@ -602,7 +602,7 @@
 
 struct of_experimenter {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 4;
     uint16_t length;
     uint32_t xid;
     uint32_t experimenter;
@@ -612,28 +612,28 @@
 
 struct of_barrier_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 20;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_barrier_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 21;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_get_config_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 7;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_get_config_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 8;
     uint16_t length;
     uint32_t xid;
     uint16_t flags;
@@ -642,7 +642,7 @@
 
 struct of_set_config {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 9;
     uint16_t length;
     uint32_t xid;
     uint16_t flags;
@@ -651,7 +651,7 @@
 
 struct of_table_mod {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 17;
     uint16_t length;
     uint32_t xid;
     uint8_t table_id;
@@ -677,14 +677,14 @@
 
 struct of_features_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 5;
     uint16_t length;
     uint32_t xid;
 };
 
 struct of_features_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 6;
     uint16_t length;
     uint32_t xid;
     uint64_t datapath_id;
@@ -698,7 +698,7 @@
 
 struct of_port_status {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 12;
     uint16_t length;
     uint32_t xid;
     uint8_t reason;
@@ -708,7 +708,7 @@
 
 struct of_port_mod {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 16;
     uint16_t length;
     uint32_t xid;
     of_port_no_t port_no;
@@ -723,7 +723,7 @@
 
 // FIXME Does this need to be v4?
 struct of_match_v3 {
-    uint16_t type;
+    uint16_t type == 1;
     uint16_t length;
     list(of_oxm_t) oxm_list;
 };
@@ -743,7 +743,7 @@
 };
 
 struct of_action_output {
-    uint16_t type;
+    uint16_t type == 0;
     uint16_t len;
     of_port_no_t port;
     uint16_t max_len;
@@ -751,103 +751,103 @@
 };
 
 struct of_action_copy_ttl_out {
-    uint16_t type;
+    uint16_t type == 11;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_copy_ttl_in {
-    uint16_t type;
+    uint16_t type == 12;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_set_mpls_ttl {
-    uint16_t type;
+    uint16_t type == 15;
     uint16_t len;
     uint8_t mpls_ttl;
     pad(3);
 };
 
 struct of_action_dec_mpls_ttl {
-    uint16_t type;
+    uint16_t type == 16;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_push_vlan {
-    uint16_t type;
+    uint16_t type == 17;
     uint16_t len;
     uint16_t ethertype;
     pad(2);
 };
 
 struct of_action_pop_vlan {
-    uint16_t type;
+    uint16_t type == 18;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_push_mpls {
-    uint16_t type;
+    uint16_t type == 19;
     uint16_t len;
     uint16_t ethertype;
     pad(2);
 };
 
 struct of_action_pop_mpls {
-    uint16_t type;
+    uint16_t type == 20;
     uint16_t len;
     uint16_t ethertype;
     pad(2);
 };
 
 struct of_action_set_queue {
-    uint16_t type;
+    uint16_t type == 21;
     uint16_t len;
     uint32_t queue_id;
 };
 
 struct of_action_group {
-    uint16_t type;
+    uint16_t type == 22;
     uint16_t len;
     uint32_t group_id;
 };
 
 struct of_action_set_nw_ttl {
-    uint16_t type;
+    uint16_t type == 23;
     uint16_t len;
     uint8_t nw_ttl;
     pad(3);
 };
 
 struct of_action_dec_nw_ttl {
-    uint16_t type;
+    uint16_t type == 24;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_set_field {
-    uint16_t type;
+    uint16_t type == 25;
     uint16_t len;
     of_octets_t field;
 };
 
 struct of_action_experimenter {
-    uint16_t type;
+    uint16_t type == 65535;
     uint16_t len;
     uint32_t experimenter;
     of_octets_t data;
 };
 
 struct of_action_pop_pbb {
-    uint16_t type;
+    uint16_t type == 27;
     uint16_t len;
     pad(4);
 };
 
 struct of_action_push_pbb {
-    uint16_t type;
+    uint16_t type == 26;
     uint16_t len;
     uint16_t ethertype;
     pad(2);
@@ -865,14 +865,14 @@
 };
 
 struct of_instruction_goto_table {
-    uint16_t type;
+    uint16_t type == 1;
     uint16_t len;
     uint8_t table_id;
     pad(3);
 };
 
 struct of_instruction_write_metadata {
-    uint16_t type;
+    uint16_t type == 2;
     uint16_t len;
     pad(4);
     uint64_t metadata;
@@ -880,33 +880,33 @@
 };
 
 struct of_instruction_write_actions {
-    uint16_t type;
+    uint16_t type == 3;
     uint16_t len;
     pad(4);
     list(of_action_t) actions;
 };
 
 struct of_instruction_apply_actions {
-    uint16_t type;
+    uint16_t type == 4;
     uint16_t len;
     pad(4);
     list(of_action_t) actions;
 };
 
 struct of_instruction_clear_actions {
-    uint16_t type;
+    uint16_t type == 5;
     uint16_t len;
     pad(4);
 };
 
 struct of_instruction_meter {
-    uint16_t type;
+    uint16_t type == 6;
     uint16_t len;
     uint32_t meter_id;
 };
 
 struct of_instruction_experimenter {
-    uint16_t type;		
+    uint16_t type == 65535;
     uint16_t len;
     uint32_t experimenter;
     of_octets_t data;
@@ -914,13 +914,13 @@
 
 struct of_flow_add {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 0;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -935,13 +935,13 @@
 
 struct of_flow_modify {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 1;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -956,13 +956,13 @@
 
 struct of_flow_modify_strict {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 2;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -977,13 +977,13 @@
 
 struct of_flow_delete {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 3;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -998,13 +998,13 @@
 
 struct of_flow_delete_strict {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 14;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
     uint64_t cookie_mask;
     uint8_t table_id;
-    of_fm_cmd_t _command;
+    of_fm_cmd_t _command == 4;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
@@ -1028,7 +1028,7 @@
 
 struct of_group_mod {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 15;
     uint16_t length;
     uint32_t xid;
     uint16_t command;
@@ -1040,7 +1040,7 @@
 
 struct of_packet_out {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 13;
     uint16_t length;
     uint32_t xid;
     uint32_t buffer_id;
@@ -1053,7 +1053,7 @@
 
 struct of_packet_in {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 10;
     uint16_t length;
     uint32_t xid;
     uint32_t buffer_id;
@@ -1068,7 +1068,7 @@
 
 struct of_flow_removed {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 11;
     uint16_t length;
     uint32_t xid;
     uint64_t cookie;
@@ -1092,7 +1092,7 @@
 };
 
 struct of_meter_band_drop {
-    uint16_t        type;
+    uint16_t        type == 1;
     uint16_t        len;
     uint32_t        rate;
     uint32_t        burst_size;
@@ -1100,7 +1100,7 @@
 };
 
 struct of_meter_band_dscp_remark {
-    uint16_t        type;
+    uint16_t        type == 2;
     uint16_t        len;
     uint32_t        rate;
     uint32_t        burst_size;
@@ -1109,7 +1109,7 @@
 };
 
 struct of_meter_band_experimenter {
-    uint16_t        type;
+    uint16_t        type == 65535;
     uint16_t        len;
     uint32_t        rate;
     uint32_t        burst_size;
@@ -1118,7 +1118,7 @@
 
 struct of_meter_mod {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 29;
     uint16_t length;
     uint32_t xid;
     uint16_t command;
@@ -1129,7 +1129,7 @@
 
 struct of_error_msg {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 1;
     uint16_t length;
     uint32_t xid;
     uint16_t err_type;
@@ -1236,20 +1236,20 @@
 
 struct of_desc_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0;
     uint16_t flags;
     pad(4);
 };
 
 struct of_desc_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 0;
     uint16_t flags;
     pad(4);
     of_desc_str_t mfr_desc;
@@ -1261,10 +1261,10 @@
 
 struct of_flow_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 1;
     uint16_t flags;
     pad(4);
     uint8_t table_id;
@@ -1279,10 +1279,10 @@
 
 struct of_flow_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 1;
     uint16_t flags;
     pad(4);
     list(of_flow_stats_entry_t) entries;
@@ -1290,10 +1290,10 @@
 
 struct of_aggregate_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 2;
     uint16_t flags;
     pad(4);
     uint8_t table_id;
@@ -1308,10 +1308,10 @@
 
 struct of_aggregate_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 2;
     uint16_t flags;
     pad(4);
     uint64_t packet_count;
@@ -1322,20 +1322,20 @@
 
 struct of_table_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 3;
     uint16_t flags;
     pad(4);
 };
 
 struct of_table_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 3;
     uint16_t flags;
     pad(4);
     list(of_table_stats_entry_t) entries;
@@ -1349,92 +1349,92 @@
 };
 
 struct of_table_feature_prop_instructions {
-    uint16_t         type;
+    uint16_t         type == 0;
     uint16_t         length;
     // FIXME Check if instruction_t is right for ids here
     list(of_instruction_t)   instruction_ids;
 };
 
 struct of_table_feature_prop_instructions_miss {
-    uint16_t         type;
+    uint16_t         type == 1;
     uint16_t         length;
     list(of_instruction_t)   instruction_ids;
 };
 
 struct of_table_feature_prop_next_tables {
-    uint16_t         type;
+    uint16_t         type == 2;
     uint16_t         length;
     list(of_uint8_t) next_table_ids;
 };
 
 struct of_table_feature_prop_next_tables_miss {
-    uint16_t         type;
+    uint16_t         type == 3;
     uint16_t         length;
     list(of_uint8_t) next_table_ids;
 };
 
 struct of_table_feature_prop_write_actions {
-    uint16_t         type;
+    uint16_t         type == 4;
     uint16_t         length;
     list(of_action_id_t) action_ids;
 };
 
 struct of_table_feature_prop_write_actions_miss {
-    uint16_t         type;
+    uint16_t         type == 5;
     uint16_t         length;
     list(of_action_id_t) action_ids;
 };
 
 struct of_table_feature_prop_apply_actions {
-    uint16_t         type;
+    uint16_t         type == 6;
     uint16_t         length;
     list(of_action_id_t) action_ids;
 };
 
 struct of_table_feature_prop_apply_actions_miss {
-    uint16_t         type;
+    uint16_t         type == 7;
     uint16_t         length;
     list(of_action_id_t) action_ids;
 };
 
 struct of_table_feature_prop_match {
-    uint16_t         type;
+    uint16_t         type == 8;
     uint16_t         length;
     list(of_uint32_t) oxm_ids;
 };
 
 struct of_table_feature_prop_wildcards {
-    uint16_t         type;
+    uint16_t         type == 10;
     uint16_t         length;
     list(of_uint32_t) oxm_ids;
 };
 
 struct of_table_feature_prop_write_setfield {
-    uint16_t         type;
+    uint16_t         type == 12;
     uint16_t         length;
     list(of_uint32_t) oxm_ids;
 };
 
 struct of_table_feature_prop_write_setfield_miss {
-    uint16_t         type;
+    uint16_t         type == 13;
     uint16_t         length;
     list(of_uint32_t) oxm_ids;
 };
 
 struct of_table_feature_prop_apply_setfield {
-    uint16_t         type;
+    uint16_t         type == 14;
     uint16_t         length;
     list(of_uint32_t) oxm_ids;
 };
 
 struct of_table_feature_prop_apply_setfield_miss {
-    uint16_t         type;
+    uint16_t         type == 15;
     uint16_t         length;
     list(of_uint32_t) oxm_ids;
 };
 
 struct of_table_feature_prop_experimenter {
-    uint16_t         type;
+    uint16_t         type == 65535;
     uint16_t         length;
     uint32_t         experimenter;
     uint32_t         subtype;
@@ -1473,10 +1473,10 @@
 
 struct of_port_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 4;
     uint16_t flags;
     pad(4);
     of_port_no_t port_no;
@@ -1485,10 +1485,10 @@
 
 struct of_port_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 4;
     uint16_t flags;
     pad(4);
     list(of_port_stats_entry_t) entries;
@@ -1496,10 +1496,10 @@
 
 struct of_queue_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 5;
     uint16_t flags;
     pad(4);
     of_port_no_t port_no;
@@ -1508,10 +1508,10 @@
 
 struct of_queue_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 5;
     uint16_t flags;
     pad(4);
     list(of_queue_stats_entry_t) entries;
@@ -1519,10 +1519,10 @@
 
 struct of_group_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 6;
     uint16_t flags;
     pad(4);
     uint32_t group_id;
@@ -1531,10 +1531,10 @@
 
 struct of_group_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 6;
     uint16_t flags;
     pad(4);
     list(of_group_stats_entry_t) entries;
@@ -1542,20 +1542,20 @@
 
 struct of_group_desc_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 7;
     uint16_t flags;
     pad(4);
 };
 
 struct of_group_desc_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 7;
     uint16_t flags;
     pad(4);
     list(of_group_desc_stats_entry_t) entries;
@@ -1563,20 +1563,20 @@
 
 struct of_group_features_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 8;
     uint16_t flags;
     pad(4);
 };
 
 struct of_group_features_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 8;
     uint16_t flags;
     pad(4);
     uint32_t types;
@@ -1593,10 +1593,10 @@
 
 struct of_meter_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 9;
     uint16_t flags;
     pad(4);
     uint32_t meter_id;
@@ -1605,10 +1605,10 @@
 
 struct of_meter_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 9;
     uint16_t flags;
     pad(4);
     list(of_meter_stats_t) entries;
@@ -1616,10 +1616,10 @@
 
 struct of_meter_config_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 10;
     uint16_t flags;
     pad(4);
     uint32_t meter_id;
@@ -1628,10 +1628,10 @@
 
 struct of_meter_config_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 10;
     uint16_t flags;
     pad(4);
     list(of_meter_band_t) entries;
@@ -1640,10 +1640,10 @@
 // FIXME stats added to get things working
 struct of_meter_features_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 11;
     uint16_t flags;
     pad(4);
 };
@@ -1651,10 +1651,10 @@
 // FIXME stats added to get things working
 struct of_meter_features_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 11;
     uint16_t flags;
     pad(4);
     of_meter_features_t features;
@@ -1663,10 +1663,10 @@
 // FIXME stats added to get things working
 struct of_table_features_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 12;
     uint16_t flags;
     pad(4);
     list(of_table_features_t) entries;
@@ -1675,10 +1675,10 @@
 // FIXME stats added to get things working
 struct of_table_features_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 12;
     uint16_t flags;
     pad(4);
     list(of_table_features_t) entries;
@@ -1687,10 +1687,10 @@
 // FIXME stats added to get things working
 struct of_port_desc_stats_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 13;
     uint16_t flags;
     pad(4);
 };
@@ -1698,10 +1698,10 @@
 // FIXME stats added to get things working
 struct of_port_desc_stats_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type;
+    uint16_t stats_type == 13;
     uint16_t flags;
     pad(4);
     list(of_port_desc_t) entries;
@@ -1745,7 +1745,7 @@
 };
 
 struct of_queue_prop_min_rate {
-    uint16_t type;
+    uint16_t type == 1;
     uint16_t len;
     pad(4);
     uint16_t rate;
@@ -1753,7 +1753,7 @@
 };
 
 struct of_queue_prop_max_rate {
-    uint16_t type;
+    uint16_t type == 2;
     uint16_t len;
     pad(4);
     uint16_t rate;
@@ -1761,7 +1761,7 @@
 };
 
 struct of_queue_prop_experimenter {
-    uint16_t type;
+    uint16_t type == 65535;
     uint16_t len;
     pad(4);
     uint32_t experimenter;
@@ -1779,7 +1779,7 @@
 
 struct of_queue_get_config_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 22;
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
@@ -1788,7 +1788,7 @@
 
 struct of_queue_get_config_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 23;
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
@@ -1798,7 +1798,7 @@
 
 struct of_role_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 24;
     uint16_t length;
     uint32_t xid;
     uint32_t role;
@@ -1808,7 +1808,7 @@
 
 struct of_role_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 25;
     uint16_t length;
     uint32_t xid;
     of_octets_t data;
@@ -1823,7 +1823,7 @@
 
 struct of_async_get_request {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 26;
     uint16_t length;
     uint32_t xid;
     uint32_t packet_in_mask_equal_master;
@@ -1836,7 +1836,7 @@
 
 struct of_async_get_reply {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 27;
     uint16_t length;
     uint32_t xid;
     uint32_t packet_in_mask_equal_master;
@@ -1849,7 +1849,7 @@
 
 struct of_async_set {
     uint8_t version;
-    uint8_t type;
+    uint8_t type == 28;
     uint16_t length;
     uint32_t xid;
     uint32_t packet_in_mask_equal_master;
