openflow_input: use padding member syntax
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;
 };