--- openflow-2012-01-23.h	2015-07-23 09:54:16.984479355 -0700
+++ openflow-2012-01-23-2.h	2015-07-23 09:54:16.988479355 -0700
@@ -1292,35 +1292,42 @@
     uint16_t        type;    /* One of OFPMPT_*. */
     uint16_t        len;     /* Length in bytes of this property. */
     uint32_t        rate;    /* Rate for this property. */
+    uint32_t        burst_size;   /* Size of bursts */
 };
-OFP_ASSERT(sizeof(struct ofp_meter_prop_header) == 8);
+OFP_ASSERT(sizeof(struct ofp_meter_prop_header) == 12);
 
 /* OFPMPT_DROP property - drop packets */
 struct ofp_meter_prop_drop {
     uint16_t        type;    /* One of OFPMPT_DROP. */
     uint16_t        len;     /* Length in bytes of this property. */
     uint32_t        rate;    /* Rate for dropping packets. */
+    uint32_t        burst_size;   /* Size of bursts */
+    uint8_t         pad[4];
 };
-OFP_ASSERT(sizeof(struct ofp_meter_prop_drop) == 8);
+OFP_ASSERT(sizeof(struct ofp_meter_prop_drop) == 16);
 
 /* OFPMPT_DSCP_REMARK property - Remark DSCP in the IP header */
 struct ofp_meter_prop_dscp_remark {
     uint16_t        type;    /* One of OFPMPT_DSCP_REMARK. */
     uint16_t        len;     /* Length in bytes of this property. */
     uint32_t        rate;    /* Rate for dropping packets. */
+    uint32_t        burst_size;   /* Size of bursts */
+    uint8_t         prec_level;   /* Number of precendence level to remove */
+    uint8_t         pad[3];
 };
-OFP_ASSERT(sizeof(struct ofp_meter_prop_dscp_remark) == 8);
+OFP_ASSERT(sizeof(struct ofp_meter_prop_dscp_remark) == 16);
 
 /* OFPMPT_EXPERIMENTER property - Write actions in action set */
 struct ofp_meter_prop_experimenter {
     uint16_t        type;    /* One of OFPMPT_*. */
     uint16_t        len;     /* Length in bytes of this property. */
     uint32_t        rate;    /* Rate for dropping packets. */
+    uint32_t        burst_size;     /* Size of bursts */
     uint32_t        experimenter;   /* Experimenter ID which takes the same
                                        form as in struct
                                        ofp_experimenter_header. */
 };
-OFP_ASSERT(sizeof(struct ofp_meter_prop_experimenter) == 12);
+OFP_ASSERT(sizeof(struct ofp_meter_prop_experimenter) == 16);
 
 /* Meter commands */
 enum ofp_meter_mod_command {
@@ -1341,15 +1348,13 @@
 struct ofp_meter_mod {
     struct ofp_header	header;
     uint16_t            command;        /* One of OFPMC_*. */
-    uint8_t             pad[2];
+    uint16_t            flags;          /* One of OFPMF_*. */
     uint32_t            meter_id;       /* Meter instance. */
-    uint32_t            flags;          /* One of OFPMF_*. */
-    uint32_t            burst_size;     /* Size of bursts */
     struct ofp_meter_prop_header properties[0]; /* The properties length is
                                            inferred from the length field
                                            in the header. */
 };
-OFP_ASSERT(sizeof(struct ofp_meter_mod) == 24);
+OFP_ASSERT(sizeof(struct ofp_meter_mod) == 16);
 
 /* Values for 'type' in ofp_error_message.  These values are immutable: they
  * will not change in future versions of the protocol (although new values may
@@ -1921,14 +1926,12 @@
 /* Body of reply to OFPST_METER_CONFIG request. Meter configuration. */
 struct ofp_meter_config_stats {
     uint16_t        length;           /* Length of this entry. */
-    uint8_t         pad[2];
+    uint16_t        flags;            /* All OFPMC_* that apply. */
     uint32_t        meter_id;         /* Meter instance. */
-    uint32_t        flags;            /* All OFPMC_* that apply. */
-    uint32_t        burst_size;       /* Size of bursts */
     struct ofp_meter_prop_header properties[0]; /* The properties length is
 					 inferred from the length field. */
 };
-OFP_ASSERT(sizeof(struct ofp_meter_config_stats) == 16);
+OFP_ASSERT(sizeof(struct ofp_meter_config_stats) == 8);
 
 /* Body of reply to OFPST_METER_FEATURES request. Meter features. */
 struct ofp_meter_features_stats {
