diff --git a/openflow_input/bsn_get_interfaces b/openflow_input/bsn_get_interfaces
index f170d6f..d2105a2 100644
--- a/openflow_input/bsn_get_interfaces
+++ b/openflow_input/bsn_get_interfaces
@@ -38,7 +38,7 @@
 
 struct of_bsn_interface {
     of_mac_addr_t hw_addr;
-    uint16_t pad;
+    pad(2);
     of_port_name_t name;
     uint32_t ipv4_addr;
     uint32_t ipv4_netmask;
diff --git a/openflow_input/bsn_ip_mask b/openflow_input/bsn_ip_mask
index f93c797..c8b3bd8 100644
--- a/openflow_input/bsn_ip_mask
+++ b/openflow_input/bsn_ip_mask
@@ -35,7 +35,7 @@
     uint32_t experimenter;  // bsn 0x005c16c7,
     uint32_t subtype;       // 0
     uint8_t index;
-    uint8_t[3] pad;
+    pad(3);
     uint32_t mask;
 };
 
@@ -47,7 +47,7 @@
     uint32_t experimenter;  // bsn 0x005c16c7,
     uint32_t subtype;       // 1
     uint8_t index;
-    uint8_t[7] pad;
+    pad(7);
 };
 
 struct of_bsn_get_ip_mask_reply {
@@ -58,6 +58,6 @@
     uint32_t experimenter;  // bsn 0x005c16c7,
     uint32_t subtype;       // 2
     uint8_t index;
-    uint8_t[3] pad;
+    pad(3);
     uint32_t mask;
 };
diff --git a/openflow_input/bsn_mirror b/openflow_input/bsn_mirror
index 2375b1c..02ea8ec 100644
--- a/openflow_input/bsn_mirror
+++ b/openflow_input/bsn_mirror
@@ -36,7 +36,7 @@
     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 
-    uint8_t[3] pad;
+    pad(3);
 };
 
 // BSN mirroring messages
@@ -48,7 +48,7 @@
     uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN
     uint32_t subtype;   // BSN_MIRRORING_SET
     uint8_t report_mirror_ports;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_bsn_get_mirroring_request {
@@ -59,7 +59,7 @@
     uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN
     uint32_t subtype;   // BSN_MIRRORING_GET_REQUEST
     uint8_t report_mirror_ports;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_bsn_get_mirroring_reply {
@@ -70,5 +70,5 @@
     uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN
     uint32_t subtype;   // BSN_MIRRORING_GET_REPLY
     uint8_t report_mirror_ports;
-    uint8_t[3] pad;
+    pad(3);
 };
diff --git a/openflow_input/bsn_pktin_suppression b/openflow_input/bsn_pktin_suppression
index faa1908..7bc32b2 100644
--- a/openflow_input/bsn_pktin_suppression
+++ b/openflow_input/bsn_pktin_suppression
@@ -63,7 +63,7 @@
     uint32_t experimenter;    // OF_EXPERIMENTER_ID_BSN
     uint32_t subtype;         // 11
     uint8_t enabled;
-    uint8_t pad;
+    pad(1);
     uint16_t idle_timeout;
     uint16_t hard_timeout;
     uint16_t priority;
diff --git a/openflow_input/bsn_table_mod b/openflow_input/bsn_table_mod
index 6161abf..fe2dd73 100644
--- a/openflow_input/bsn_table_mod
+++ b/openflow_input/bsn_table_mod
@@ -35,6 +35,6 @@
     uint16_t length;
     uint32_t xid;
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
     uint32_t config;
 };
diff --git a/openflow_input/nicira_dec_ttl b/openflow_input/nicira_dec_ttl
index 6d113fb..33a80a6 100644
--- a/openflow_input/nicira_dec_ttl
+++ b/openflow_input/nicira_dec_ttl
@@ -32,6 +32,6 @@
     uint16_t len;
     uint32_t experimenter;    // OF_EXPERIMENTER_ID_NICIRA
     uint16_t subtype;         // 18
-    uint16_t pad;
-    uint32_t pad2;
+    pad(2);
+    pad(4);
 };
diff --git a/openflow_input/standard-1.0 b/openflow_input/standard-1.0
index ecb1672..c436655 100644
--- a/openflow_input/standard-1.0
+++ b/openflow_input/standard-1.0
@@ -402,7 +402,7 @@
     uint64_t datapath_id;
     uint32_t n_buffers;
     uint8_t n_tables;
-    uint8_t[3] pad;
+    pad(3);
     uint32_t capabilities;
     uint32_t actions;
     list(of_port_desc_t) ports;
@@ -414,7 +414,7 @@
     uint16_t length;
     uint32_t xid;
     uint8_t reason;
-    uint8_t[7] pad;
+    pad(7);
     of_port_desc_t desc;
 };
 
@@ -428,7 +428,7 @@
     uint32_t config;
     uint32_t mask;
     uint32_t advertise;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_packet_in {
@@ -440,7 +440,7 @@
     uint16_t total_len;
     of_port_no_t in_port;
     uint8_t reason;
-    uint8_t pad;
+    pad(1);
     of_octets_t data;
 };
 
@@ -455,34 +455,34 @@
     uint16_t type;
     uint16_t len;
     uint16_t vlan_vid;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_strip_vlan {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_set_vlan_pcp {
     uint16_t type;
     uint16_t len;
     uint8_t vlan_pcp;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_action_set_dl_src {
     uint16_t type;
     uint16_t len;
     of_mac_addr_t dl_addr;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_action_set_dl_dst {
     uint16_t type;
     uint16_t len;
     of_mac_addr_t dl_addr;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_action_set_nw_src {
@@ -501,21 +501,21 @@
     uint16_t type;
     uint16_t len;
     uint16_t tp_port;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_set_tp_dst {
     uint16_t type;
     uint16_t len;
     uint16_t tp_port;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_set_nw_tos {
     uint16_t type;
     uint16_t len;
     uint8_t nw_tos;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_action_experimenter {
@@ -529,14 +529,14 @@
     uint16_t type;
     uint16_t len;
     of_port_no_t port;
-    uint8_t[6] pad;
+    pad(6);
     uint32_t queue_id;
 };
 
 struct of_action {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_packet_out {
@@ -558,11 +558,11 @@
     of_mac_addr_t eth_dst;
     uint16_t vlan_vid;
     uint8_t vlan_pcp;
-    uint8_t[1] pad1;
+    pad(1);
     uint16_t eth_type;
     uint8_t ip_dscp;
     uint8_t ip_proto;
-    uint8_t[2] pad2;
+    pad(2);
     uint32_t ipv4_src;
     uint32_t ipv4_dst;
     uint16_t tcp_src;
@@ -663,11 +663,11 @@
     uint64_t cookie;
     uint16_t priority;
     uint8_t reason;
-    uint8_t[1] pad;
+    pad(1);
     uint32_t duration_sec;
     uint32_t duration_nsec;
     uint16_t idle_timeout;
-    uint8_t[2] pad2;
+    pad(2);
     uint64_t packet_count;
     uint64_t byte_count;
 };
@@ -686,14 +686,14 @@
 struct of_flow_stats_entry {
     uint16_t length;
     uint8_t table_id;
-    uint8_t pad;
+    pad(1);
     of_match_t match;
     uint32_t duration_sec;
     uint32_t duration_nsec;
     uint16_t priority;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
-    uint8_t[6] pad2;
+    pad(6);
     uint64_t cookie;
     uint64_t packet_count;
     uint64_t byte_count;
@@ -702,7 +702,7 @@
 
 struct of_table_stats_entry {
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
     of_table_name_t name;
     of_wc_bmap_t wildcards;
     uint32_t max_entries;
@@ -713,7 +713,7 @@
 
 struct of_port_stats_entry {
     of_port_no_t port_no;
-    uint8_t[6] pad;
+    pad(6);
     uint64_t rx_packets;
     uint64_t tx_packets;
     uint64_t rx_bytes;
@@ -730,7 +730,7 @@
 
 struct of_queue_stats_entry {
     of_port_no_t port_no;
-    uint8_t[2] pad;
+    pad(2);
     uint32_t queue_id;
     uint64_t tx_bytes;
     uint64_t tx_packets;
@@ -771,7 +771,7 @@
     uint16_t flags;
     of_match_t match;
     uint8_t table_id;
-    uint8_t pad;
+    pad(1);
     of_port_no_t out_port;
 };
 
@@ -794,7 +794,7 @@
     uint16_t flags;
     of_match_t match;
     uint8_t table_id;
-    uint8_t pad;
+    pad(1);
     of_port_no_t out_port;
 };
 
@@ -808,7 +808,7 @@
     uint64_t packet_count;
     uint64_t byte_count;
     uint32_t flow_count;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_table_stats_request {
@@ -838,7 +838,7 @@
     uint16_t stats_type;
     uint16_t flags;
     of_port_no_t port_no;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_port_stats_reply {
@@ -859,7 +859,7 @@
     uint16_t stats_type;
     uint16_t flags;
     of_port_no_t port_no;
-    uint8_t[2] pad;
+    pad(2);
     uint32_t queue_id;
 };
 
@@ -900,21 +900,21 @@
 struct of_queue_prop {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_queue_prop_min_rate {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     uint16_t rate;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_packet_queue {
     uint32_t queue_id;
     uint16_t len;
-    uint8_t[2] pad;
+    pad(2);
     list(of_queue_prop_t) properties;
 };
 
@@ -924,7 +924,7 @@
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_queue_get_config_reply {
@@ -933,6 +933,6 @@
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
-    uint8_t[6] pad;
+    pad(6);
     list(of_packet_queue_t) queues;
 };
diff --git a/openflow_input/standard-1.1 b/openflow_input/standard-1.1
index 5cd2144..644f000 100644
--- a/openflow_input/standard-1.1
+++ b/openflow_input/standard-1.1
@@ -492,15 +492,15 @@
     uint16_t length;
     uint32_t xid;
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
     uint32_t config;
 };
 
 struct of_port_desc {
     of_port_no_t port_no;
-    uint8_t[4] pad;
+    pad(4);
     of_mac_addr_t hw_addr;
-    uint8_t[2] pad2;
+    pad(2);
     of_port_name_t name;
     uint32_t config;
     uint32_t state;
@@ -527,7 +527,7 @@
     uint64_t datapath_id;
     uint32_t n_buffers;
     uint8_t n_tables;
-    uint8_t[3] pad;
+    pad(3);
     uint32_t capabilities;
     uint32_t reserved;
     list(of_port_desc_t) ports;
@@ -539,7 +539,7 @@
     uint16_t length;
     uint32_t xid;
     uint8_t reason;
-    uint8_t[7] pad;
+    pad(7);
     of_port_desc_t desc;
 };
 
@@ -549,13 +549,13 @@
     uint16_t length;
     uint32_t xid;
     of_port_no_t port_no;
-    uint8_t[4] pad;
+    pad(4);
     of_mac_addr_t hw_addr;
-    uint8_t[2] pad2;
+    pad(2);
     uint32_t config;
     uint32_t mask;
     uint32_t advertise;
-    uint8_t[4] pad3;
+    pad(4);
 };
 
 struct of_packet_in {
@@ -577,35 +577,35 @@
     uint16_t len;
     of_port_no_t port;
     uint16_t max_len;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_action_set_vlan_vid {
     uint16_t type;
     uint16_t len;
     uint16_t vlan_vid;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_set_vlan_pcp {
     uint16_t type;
     uint16_t len;
     uint8_t vlan_pcp;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_action_set_dl_src {
     uint16_t type;
     uint16_t len;
     of_mac_addr_t dl_addr;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_action_set_dl_dst {
     uint16_t type;
     uint16_t len;
     of_mac_addr_t dl_addr;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_action_set_nw_src {
@@ -624,40 +624,40 @@
     uint16_t type;
     uint16_t len;
     uint8_t nw_tos;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_action_set_nw_ecn {
     uint16_t type;
     uint16_t len;
     uint8_t nw_ecn;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_action_set_tp_src {
     uint16_t type;
     uint16_t len;
     uint16_t tp_port;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_set_tp_dst {
     uint16_t type;
     uint16_t len;
     uint16_t tp_port;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_copy_ttl_out {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_copy_ttl_in {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_set_mpls_label {
@@ -670,47 +670,47 @@
     uint16_t type;
     uint16_t len;
     uint8_t mpls_tc;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_action_set_mpls_ttl {
     uint16_t type;
     uint16_t len;
     uint8_t mpls_ttl;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_action_dec_mpls_ttl {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_push_vlan {
     uint16_t type;
     uint16_t len;
     uint16_t ethertype;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_pop_vlan {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_push_mpls {
     uint16_t type;
     uint16_t len;
     uint16_t ethertype;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_pop_mpls {
     uint16_t type;
     uint16_t len;
     uint16_t ethertype;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_set_queue {
@@ -729,13 +729,13 @@
     uint16_t type;
     uint16_t len;
     uint8_t nw_ttl;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_action_dec_nw_ttl {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_experimenter {
@@ -748,7 +748,7 @@
 struct of_action {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_packet_out {
@@ -759,7 +759,7 @@
     uint32_t buffer_id;
     of_port_no_t in_port;
     uint16_t actions_len;
-    uint8_t[6] pad;
+    pad(6);
     list(of_action_t) actions;
     of_octets_t data;
 };
@@ -775,7 +775,7 @@
     of_mac_addr_t eth_dst_mask;
     uint16_t vlan_vid;
     uint8_t vlan_pcp;
-    uint8_t[1] pad1;
+    pad(1);
     uint16_t eth_type;
     uint8_t ip_dscp;
     uint8_t ip_proto;
@@ -787,7 +787,7 @@
     uint16_t tcp_dst;
     uint32_t mpls_label;
     uint8_t mpls_tc;
-    uint8_t[3] pad2;
+    pad(3);
     uint64_t metadata;
     uint64_t metadata_mask;
 };
@@ -795,20 +795,20 @@
 struct of_instruction {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_instruction_goto_table {
     uint16_t type;
     uint16_t len;
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_instruction_write_metadata {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     uint64_t metadata;
     uint64_t metadata_mask;
 };
@@ -816,21 +816,21 @@
 struct of_instruction_write_actions {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     list(of_action_t) actions;
 };
 
 struct of_instruction_apply_actions {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     list(of_action_t) actions;
 };
 
 struct of_instruction_clear_actions {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_instruction_experimenter {
@@ -856,7 +856,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -877,7 +877,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -898,7 +898,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -919,7 +919,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -940,7 +940,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -950,7 +950,7 @@
     uint16_t weight;
     of_port_no_t watch_port;
     uint32_t watch_group;
-    uint8_t[4] pad;
+    pad(4);
     list(of_action_t) actions;
 };
 
@@ -961,7 +961,7 @@
     uint32_t xid;
     uint16_t command;
     uint8_t group_type;
-    uint8_t pad;
+    pad(1);
     uint32_t group_id;
     list(of_bucket_t) buckets;
 };
@@ -978,7 +978,7 @@
     uint32_t duration_sec;
     uint32_t duration_nsec;
     uint16_t idle_timeout;
-    uint8_t[2] pad2;
+    pad(2);
     uint64_t packet_count;
     uint64_t byte_count;
     of_match_t match;
@@ -999,13 +999,13 @@
 struct of_flow_stats_entry {
     uint16_t length;
     uint8_t table_id;
-    uint8_t pad;
+    pad(1);
     uint32_t duration_sec;
     uint32_t duration_nsec;
     uint16_t priority;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
-    uint8_t[6] pad2;
+    pad(6);
     uint64_t cookie;
     uint64_t packet_count;
     uint64_t byte_count;
@@ -1015,7 +1015,7 @@
 
 struct of_table_stats_entry {
     uint8_t table_id;
-    uint8_t[7] pad;
+    pad(7);
     of_table_name_t name;
     of_wc_bmap_t wildcards;
     of_match_bmap_t match;
@@ -1031,7 +1031,7 @@
 
 struct of_port_stats_entry {
     of_port_no_t port_no;
-    uint8_t[4] pad;
+    pad(4);
     uint64_t rx_packets;
     uint64_t tx_packets;
     uint64_t rx_bytes;
@@ -1061,10 +1061,10 @@
 
 struct of_group_stats_entry {
     uint16_t length;
-    uint8_t[2] pad;
+    pad(2);
     uint32_t group_id;
     uint32_t ref_count;
-    uint8_t[4] pad2;
+    pad(4);
     uint64_t packet_count;
     uint64_t byte_count;
     list(of_bucket_counter_t) bucket_stats;
@@ -1073,7 +1073,7 @@
 struct of_group_desc_stats_entry {
     uint16_t length;
     uint8_t type;
-    uint8_t pad;
+    pad(1);
     uint32_t group_id;
     list(of_bucket_t) buckets;
 };
@@ -1087,7 +1087,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_desc_stats_reply {
@@ -1097,7 +1097,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     of_desc_str_t mfr_desc;
     of_desc_str_t hw_desc;
     of_desc_str_t sw_desc;
@@ -1112,12 +1112,12 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
     of_port_no_t out_port;
     uint32_t out_group;
-    uint8_t[4] pad2;
+    pad(4);
     uint64_t cookie;
     uint64_t cookie_mask;
     of_match_t match;
@@ -1130,7 +1130,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_flow_stats_entry_t) entries;
 };
 
@@ -1141,12 +1141,12 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
     of_port_no_t out_port;
     uint32_t out_group;
-    uint8_t[4] pad2;
+    pad(4);
     uint64_t cookie;
     uint64_t cookie_mask;
     of_match_t match;
@@ -1159,11 +1159,11 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint64_t packet_count;
     uint64_t byte_count;
     uint32_t flow_count;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_table_stats_request {
@@ -1173,7 +1173,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_table_stats_reply {
@@ -1183,7 +1183,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_table_stats_entry_t) entries;
 };
 
@@ -1194,9 +1194,9 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     of_port_no_t port_no;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_port_stats_reply {
@@ -1206,7 +1206,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_port_stats_entry_t) entries;
 };
 
@@ -1217,7 +1217,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     of_port_no_t port_no;
     uint32_t queue_id;
 };
@@ -1229,7 +1229,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_queue_stats_entry_t) entries;
 };
 
@@ -1240,9 +1240,9 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint32_t group_id;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_group_stats_reply {
@@ -1252,7 +1252,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_group_stats_entry_t) entries;
 };
 
@@ -1263,7 +1263,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_group_desc_stats_reply {
@@ -1273,7 +1273,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_group_desc_stats_entry_t) entries;
 };
 
@@ -1284,9 +1284,9 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint32_t experimenter;
-    uint8_t[4] pad;
+    pad(4);
     of_octets_t data;
 };
 
@@ -1297,9 +1297,9 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint32_t experimenter;
-    uint8_t[4] pad;
+    pad(4);
     of_octets_t data;
 };
 
@@ -1308,21 +1308,21 @@
 struct of_queue_prop {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_queue_prop_min_rate {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     uint16_t rate;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_packet_queue {
     uint32_t queue_id;
     uint16_t len;
-    uint8_t[2] pad;
+    pad(2);
     list(of_queue_prop_t) properties;
 };
 
@@ -1332,7 +1332,7 @@
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_queue_get_config_reply {
@@ -1341,6 +1341,6 @@
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
-    uint8_t[4] pad;
+    pad(4);
     list(of_packet_queue_t) queues;
 };
diff --git a/openflow_input/standard-1.2 b/openflow_input/standard-1.2
index 99e27c8..0ada3da 100644
--- a/openflow_input/standard-1.2
+++ b/openflow_input/standard-1.2
@@ -532,15 +532,15 @@
     uint16_t length;
     uint32_t xid;
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
     uint32_t config;
 };
 
 struct of_port_desc {
     of_port_no_t port_no;
-    uint8_t[4] pad;
+    pad(4);
     of_mac_addr_t hw_addr;
-    uint8_t[2] pad2;
+    pad(2);
     of_port_name_t name;
     uint32_t config;
     uint32_t state;
@@ -567,7 +567,7 @@
     uint64_t datapath_id;
     uint32_t n_buffers;
     uint8_t n_tables;
-    uint8_t[3] pad;
+    pad(3);
     uint32_t capabilities;
     uint32_t reserved;
     list(of_port_desc_t) ports;
@@ -579,7 +579,7 @@
     uint16_t length;
     uint32_t xid;
     uint8_t reason;
-    uint8_t[7] pad;
+    pad(7);
     of_port_desc_t desc;
 };
 
@@ -589,13 +589,13 @@
     uint16_t length;
     uint32_t xid;
     of_port_no_t port_no;
-    uint8_t[4] pad;
+    pad(4);
     of_mac_addr_t hw_addr;
-    uint8_t[2] pad2;
+    pad(2);
     uint32_t config;
     uint32_t mask;
     uint32_t advertise;
-    uint8_t[4] pad3;
+    pad(4);
 };
 
 struct of_match_v3 {
@@ -615,59 +615,59 @@
     uint16_t len;
     of_port_no_t port;
     uint16_t max_len;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_action_copy_ttl_out {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_copy_ttl_in {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_set_mpls_ttl {
     uint16_t type;
     uint16_t len;
     uint8_t mpls_ttl;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_action_dec_mpls_ttl {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_push_vlan {
     uint16_t type;
     uint16_t len;
     uint16_t ethertype;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_pop_vlan {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_push_mpls {
     uint16_t type;
     uint16_t len;
     uint16_t ethertype;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_pop_mpls {
     uint16_t type;
     uint16_t len;
     uint16_t ethertype;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_set_queue {
@@ -686,13 +686,13 @@
     uint16_t type;
     uint16_t len;
     uint8_t nw_ttl;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_action_dec_nw_ttl {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_set_field {
@@ -711,26 +711,26 @@
 struct of_action {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_instruction {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_instruction_goto_table {
     uint16_t type;
     uint16_t len;
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_instruction_write_metadata {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     uint64_t metadata;
     uint64_t metadata_mask;
 };
@@ -738,21 +738,21 @@
 struct of_instruction_write_actions {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     list(of_action_t) actions;
 };
 
 struct of_instruction_apply_actions {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     list(of_action_t) actions;
 };
 
 struct of_instruction_clear_actions {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_instruction_experimenter {
@@ -778,7 +778,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -799,7 +799,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -820,7 +820,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -841,7 +841,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -862,7 +862,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -872,7 +872,7 @@
     uint16_t weight;
     of_port_no_t watch_port;
     uint32_t watch_group;
-    uint8_t[4] pad;
+    pad(4);
     list(of_action_t) actions;
 };
 
@@ -883,7 +883,7 @@
     uint32_t xid;
     uint16_t command;
     uint8_t group_type;
-    uint8_t pad;
+    pad(1);
     uint32_t group_id;
     list(of_bucket_t) buckets;
 };
@@ -896,7 +896,7 @@
     uint32_t buffer_id;
     of_port_no_t in_port;
     uint16_t actions_len;
-    uint8_t[6] pad;
+    pad(6);
     list(of_action_t) actions;
     of_octets_t data;
 };
@@ -911,7 +911,7 @@
     uint8_t reason;
     uint8_t table_id;
     of_match_t match;
-    uint8_t[2] pad;
+    pad(2);
     of_octets_t data; /* FIXME: Ensure total_len gets updated */
 };
 
@@ -960,13 +960,13 @@
 struct of_flow_stats_entry {
     uint16_t length;
     uint8_t table_id;
-    uint8_t pad;
+    pad(1);
     uint32_t duration_sec;
     uint32_t duration_nsec;
     uint16_t priority;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
-    uint8_t[6] pad2;
+    pad(6);
     uint64_t cookie;
     uint64_t packet_count;
     uint64_t byte_count;
@@ -976,7 +976,7 @@
 
 struct of_table_stats_entry {
     uint8_t table_id;
-    uint8_t[7] pad;
+    pad(7);
     of_table_name_t name;
     of_match_bmap_t match;
     of_wc_bmap_t wildcards;
@@ -996,7 +996,7 @@
 
 struct of_port_stats_entry {
     of_port_no_t port_no;
-    uint8_t[4] pad;
+    pad(4);
     uint64_t rx_packets;
     uint64_t tx_packets;
     uint64_t rx_bytes;
@@ -1026,10 +1026,10 @@
 
 struct of_group_stats_entry {
     uint16_t length;
-    uint8_t[2] pad;
+    pad(2);
     uint32_t group_id;
     uint32_t ref_count;
-    uint8_t[4] pad2;
+    pad(4);
     uint64_t packet_count;
     uint64_t byte_count;
     list(of_bucket_counter_t) bucket_stats;
@@ -1038,7 +1038,7 @@
 struct of_group_desc_stats_entry {
     uint16_t length;
     uint8_t type;
-    uint8_t pad;
+    pad(1);
     uint32_t group_id;
     list(of_bucket_t) buckets;
 };
@@ -1053,7 +1053,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_desc_stats_reply {
@@ -1063,7 +1063,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     of_desc_str_t mfr_desc;
     of_desc_str_t hw_desc;
     of_desc_str_t sw_desc;
@@ -1078,12 +1078,12 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
     of_port_no_t out_port;
     uint32_t out_group;
-    uint8_t[4] pad2;
+    pad(4);
     uint64_t cookie;
     uint64_t cookie_mask;
     of_match_t match;
@@ -1096,7 +1096,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_flow_stats_entry_t) entries;
 };
 
@@ -1107,12 +1107,12 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
     of_port_no_t out_port;
     uint32_t out_group;
-    uint8_t[4] pad2;
+    pad(4);
     uint64_t cookie;
     uint64_t cookie_mask;
     of_match_t match;
@@ -1125,11 +1125,11 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint64_t packet_count;
     uint64_t byte_count;
     uint32_t flow_count;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_table_stats_request {
@@ -1139,7 +1139,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_table_stats_reply {
@@ -1149,7 +1149,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_table_stats_entry_t) entries;
 };
 
@@ -1160,9 +1160,9 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     of_port_no_t port_no;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_port_stats_reply {
@@ -1172,7 +1172,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_port_stats_entry_t) entries;
 };
 
@@ -1183,7 +1183,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     of_port_no_t port_no;
     uint32_t queue_id;
 };
@@ -1195,7 +1195,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_queue_stats_entry_t) entries;
 };
 
@@ -1206,9 +1206,9 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint32_t group_id;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_group_stats_reply {
@@ -1218,7 +1218,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_group_stats_entry_t) entries;
 };
 
@@ -1229,7 +1229,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_group_desc_stats_reply {
@@ -1239,7 +1239,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_group_desc_stats_entry_t) entries;
 };
 
@@ -1250,7 +1250,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_group_features_stats_reply {
@@ -1260,7 +1260,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint32_t types;
     uint32_t capabilities;
     uint32_t max_groups_all;
@@ -1280,7 +1280,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint32_t experimenter;
     uint32_t subtype;
     of_octets_t data;
@@ -1293,7 +1293,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint32_t experimenter;
     uint32_t subtype;
     of_octets_t data;
@@ -1304,31 +1304,31 @@
 struct of_queue_prop {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_queue_prop_min_rate {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     uint16_t rate;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_queue_prop_max_rate {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     uint16_t rate;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_queue_prop_experimenter {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     uint32_t experimenter;
-    uint8_t[4] pad;
+    pad(4);
     of_octets_t data;
 };
 
@@ -1336,7 +1336,7 @@
     uint32_t queue_id;
     of_port_no_t port;
     uint16_t len;
-    uint8_t[6] pad;
+    pad(6);
     list(of_queue_prop_t) properties;
 };
 
@@ -1346,7 +1346,7 @@
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_queue_get_config_reply {
@@ -1355,7 +1355,7 @@
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
-    uint8_t[4] pad;
+    pad(4);
     list(of_packet_queue_t) queues;
 };
 
@@ -1365,7 +1365,7 @@
     uint16_t length;
     uint32_t xid;
     uint32_t role;
-    uint8_t[4] pad;
+    pad(4);
     uint64_t generation_id;
 };
 
diff --git a/openflow_input/standard-1.3 b/openflow_input/standard-1.3
index 300b9ec..c9410fa 100644
--- a/openflow_input/standard-1.3
+++ b/openflow_input/standard-1.3
@@ -655,15 +655,15 @@
     uint16_t length;
     uint32_t xid;
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
     uint32_t config;
 };
 
 struct of_port_desc {
     of_port_no_t port_no;
-    uint8_t[4] pad;
+    pad(4);
     of_mac_addr_t hw_addr;
-    uint8_t[2] pad2;
+    pad(2);
     of_port_name_t name;
     uint32_t config;
     uint32_t state;
@@ -691,7 +691,7 @@
     uint32_t n_buffers;
     uint8_t n_tables;
     uint8_t auxiliary_id;
-    uint8_t[2] pad;
+    pad(2);
     uint32_t capabilities;
     uint32_t reserved;
 };
@@ -702,7 +702,7 @@
     uint16_t length;
     uint32_t xid;
     uint8_t reason;
-    uint8_t[7] pad;
+    pad(7);
     of_port_desc_t desc;
 };
 
@@ -712,13 +712,13 @@
     uint16_t length;
     uint32_t xid;
     of_port_no_t port_no;
-    uint8_t[4] pad;
+    pad(4);
     of_mac_addr_t hw_addr;
-    uint8_t[2] pad2;
+    pad(2);
     uint32_t config;
     uint32_t mask;
     uint32_t advertise;
-    uint8_t[4] pad3;
+    pad(4);
 };
 
 // FIXME Does this need to be v4?
@@ -739,7 +739,7 @@
 struct of_action_id {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_output {
@@ -747,59 +747,59 @@
     uint16_t len;
     of_port_no_t port;
     uint16_t max_len;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_action_copy_ttl_out {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_copy_ttl_in {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_set_mpls_ttl {
     uint16_t type;
     uint16_t len;
     uint8_t mpls_ttl;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_action_dec_mpls_ttl {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_push_vlan {
     uint16_t type;
     uint16_t len;
     uint16_t ethertype;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_pop_vlan {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_push_mpls {
     uint16_t type;
     uint16_t len;
     uint16_t ethertype;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_pop_mpls {
     uint16_t type;
     uint16_t len;
     uint16_t ethertype;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action_set_queue {
@@ -818,13 +818,13 @@
     uint16_t type;
     uint16_t len;
     uint8_t nw_ttl;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_action_dec_nw_ttl {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_set_field {
@@ -843,20 +843,20 @@
 struct of_action_pop_pbb {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_action_push_pbb {
     uint16_t type;
     uint16_t len;
     uint16_t ethertype;
-    uint8_t[2] pad;
+    pad(2);
 };
 
 struct of_action {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_instruction {
@@ -868,13 +868,13 @@
     uint16_t type;
     uint16_t len;
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
 };
 
 struct of_instruction_write_metadata {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     uint64_t metadata;
     uint64_t metadata_mask;
 };
@@ -882,21 +882,21 @@
 struct of_instruction_write_actions {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     list(of_action_t) actions;
 };
 
 struct of_instruction_apply_actions {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     list(of_action_t) actions;
 };
 
 struct of_instruction_clear_actions {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_instruction_meter {
@@ -928,7 +928,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -949,7 +949,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -970,7 +970,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -991,7 +991,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -1012,7 +1012,7 @@
     of_port_no_t out_port;
     uint32_t out_group;
     uint16_t flags;
-    uint8_t[2] pad;
+    pad(2);
     of_match_t match;
     list(of_instruction_t) instructions;
 };
@@ -1022,7 +1022,7 @@
     uint16_t weight;
     of_port_no_t watch_port;
     uint32_t watch_group;
-    uint8_t[4] pad;
+    pad(4);
     list(of_action_t) actions;
 };
 
@@ -1033,7 +1033,7 @@
     uint32_t xid;
     uint16_t command;
     uint8_t group_type;
-    uint8_t pad;
+    pad(1);
     uint32_t group_id;
     list(of_bucket_t) buckets;
 };
@@ -1046,7 +1046,7 @@
     uint32_t buffer_id;
     of_port_no_t in_port;
     uint16_t actions_len;
-    uint8_t[6] pad;
+    pad(6);
     list(of_action_t) actions;
     of_octets_t data;
 };
@@ -1062,7 +1062,7 @@
     uint8_t table_id;
     uint64_t cookie;
     of_match_t match;
-    uint8_t[2] pad;
+    pad(2);
     of_octets_t data; /* FIXME: Ensure total_len gets updated */
 };
 
@@ -1096,7 +1096,7 @@
     uint16_t        len;
     uint32_t        rate;
     uint32_t        burst_size;
-    uint8_t[4]      pad;
+    pad(4);
 };
 
 struct of_meter_band_dscp_remark {
@@ -1105,7 +1105,7 @@
     uint32_t        rate;
     uint32_t        burst_size;
     uint8_t         prec_level;
-    uint8_t[3]      pad;
+    pad(3);
 };
 
 struct of_meter_band_experimenter {
@@ -1153,13 +1153,13 @@
 struct of_flow_stats_entry {
     uint16_t length;
     uint8_t table_id;
-    uint8_t pad;
+    pad(1);
     uint32_t duration_sec;
     uint32_t duration_nsec;
     uint16_t priority;
     uint16_t idle_timeout;
     uint16_t hard_timeout;
-    uint8_t[6] pad2;
+    pad(6);
     uint64_t cookie;
     uint64_t packet_count;
     uint64_t byte_count;
@@ -1170,7 +1170,7 @@
 
 struct of_table_stats_entry {
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
     uint32_t active_count;
     uint64_t lookup_count;
     uint64_t matched_count;
@@ -1178,7 +1178,7 @@
 
 struct of_port_stats_entry {
     of_port_no_t port_no;
-    uint8_t[4] pad;
+    pad(4);
     uint64_t rx_packets;
     uint64_t tx_packets;
     uint64_t rx_bytes;
@@ -1212,10 +1212,10 @@
 
 struct of_group_stats_entry {
     uint16_t length;
-    uint8_t[2] pad;
+    pad(2);
     uint32_t group_id;
     uint32_t ref_count;
-    uint8_t[4] pad;
+    pad(4);
     uint64_t packet_count;
     uint64_t byte_count;
     uint32_t duration_sec;
@@ -1226,7 +1226,7 @@
 struct of_group_desc_stats_entry {
     uint16_t length;
     uint8_t type;
-    uint8_t pad;
+    pad(1);
     uint32_t group_id;
     list(of_bucket_t) buckets;
 };
@@ -1241,7 +1241,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_desc_stats_reply {
@@ -1251,7 +1251,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     of_desc_str_t mfr_desc;
     of_desc_str_t hw_desc;
     of_desc_str_t sw_desc;
@@ -1266,12 +1266,12 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
     of_port_no_t out_port;
     uint32_t out_group;
-    uint8_t[4] pad2;
+    pad(4);
     uint64_t cookie;
     uint64_t cookie_mask;
     of_match_t match;
@@ -1284,7 +1284,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_flow_stats_entry_t) entries;
 };
 
@@ -1295,12 +1295,12 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint8_t table_id;
-    uint8_t[3] pad;
+    pad(3);
     of_port_no_t out_port;
     uint32_t out_group;
-    uint8_t[4] pad2;
+    pad(4);
     uint64_t cookie;
     uint64_t cookie_mask;
     of_match_t match;
@@ -1313,11 +1313,11 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint64_t packet_count;
     uint64_t byte_count;
     uint32_t flow_count;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_table_stats_request {
@@ -1327,7 +1327,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_table_stats_reply {
@@ -1337,7 +1337,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_table_stats_entry_t) entries;
 };
 
@@ -1453,7 +1453,7 @@
 struct of_table_features {
     uint16_t length;
     uint8_t table_id;
-    uint8_t[5] pad;
+    pad(5);
     of_table_name_t name;
     uint64_t metadata_match;
     uint64_t metadata_write;
@@ -1468,7 +1468,7 @@
     uint32_t    capabilities;
     uint8_t     max_bands;
     uint8_t     max_color;
-    uint8_t[2]     pad;
+    pad(2);
 };
 
 struct of_port_stats_request {
@@ -1478,9 +1478,9 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     of_port_no_t port_no;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_port_stats_reply {
@@ -1490,7 +1490,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_port_stats_entry_t) entries;
 };
 
@@ -1501,7 +1501,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     of_port_no_t port_no;
     uint32_t queue_id;
 };
@@ -1513,7 +1513,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_queue_stats_entry_t) entries;
 };
 
@@ -1524,9 +1524,9 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint32_t group_id;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_group_stats_reply {
@@ -1536,7 +1536,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_group_stats_entry_t) entries;
 };
 
@@ -1547,7 +1547,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_group_desc_stats_reply {
@@ -1557,7 +1557,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_group_desc_stats_entry_t) entries;
 };
 
@@ -1568,7 +1568,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_group_features_stats_reply {
@@ -1578,7 +1578,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint32_t types;
     uint32_t capabilities;
     uint32_t max_groups_all;
@@ -1598,9 +1598,9 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint32_t meter_id;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_meter_stats_reply {
@@ -1610,7 +1610,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_meter_stats_t) entries;
 };
 
@@ -1621,9 +1621,9 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     uint32_t meter_id;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_meter_config_stats_reply {
@@ -1633,7 +1633,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_meter_band_t) entries;
 };
 
@@ -1645,7 +1645,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 // FIXME stats added to get things working
@@ -1656,7 +1656,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     of_meter_features_t features;
 };
 
@@ -1668,7 +1668,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_table_features_t) entries;
 };
 
@@ -1680,7 +1680,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_table_features_t) entries;
 };
 
@@ -1692,7 +1692,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 // FIXME stats added to get things working
@@ -1703,7 +1703,7 @@
     uint32_t xid;
     uint16_t stats_type;
     uint16_t flags;
-    uint8_t[4] pad;
+    pad(4);
     list(of_port_desc_t) entries;
 };
 
@@ -1715,7 +1715,7 @@
 struct of_meter_stats {
     uint32_t        meter_id;
     uint16_t        len;
-    uint8_t[6]         pad;
+    pad(6);
     uint32_t        flow_count;
     uint64_t        packet_in_count;
     uint64_t        byte_in_count;
@@ -1741,31 +1741,31 @@
 struct of_queue_prop {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_queue_prop_min_rate {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     uint16_t rate;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_queue_prop_max_rate {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     uint16_t rate;
-    uint8_t[6] pad;
+    pad(6);
 };
 
 struct of_queue_prop_experimenter {
     uint16_t type;
     uint16_t len;
-    uint8_t[4] pad;
+    pad(4);
     uint32_t experimenter;
-    uint8_t[4] pad;
+    pad(4);
     of_octets_t data;
 };
 
@@ -1773,7 +1773,7 @@
     uint32_t queue_id;
     of_port_no_t port;
     uint16_t len;
-    uint8_t[6] pad;
+    pad(6);
     list(of_queue_prop_t) properties;
 };
 
@@ -1783,7 +1783,7 @@
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
-    uint8_t[4] pad;
+    pad(4);
 };
 
 struct of_queue_get_config_reply {
@@ -1792,7 +1792,7 @@
     uint16_t length;
     uint32_t xid;
     of_port_no_t port;
-    uint8_t[4] pad;
+    pad(4);
     list(of_packet_queue_t) queues;
 };
 
@@ -1802,7 +1802,7 @@
     uint16_t length;
     uint32_t xid;
     uint32_t role;
-    uint8_t[4] pad;
+    pad(4);
     uint64_t generation_id;
 };
 
