--- openflow-2011-10-10-2.h	2015-07-23 09:54:16.952479354 -0700
+++ openflow-2011-10-10-3.h	2015-07-23 09:54:16.956479354 -0700
@@ -1324,6 +1324,13 @@
 };
 OFP_ASSERT(sizeof(struct ofp_meter_prop_experimenter) == 12);
 
+/* Meter commands */
+enum ofp_meter_mod_command {
+    OFPMC_ADD,              /* New meter. */
+    OFPMC_MODIFY,           /* Modify specified meter. */
+    OFPMC_DELETE,           /* Delete specified meter. */
+};
+
 /* Meter configuration flags */
 enum ofp_meter_flags {
     OFPMF_KBPS    = 1 << 0,     /* Rate value in kb/s (kilo-bit per second) */
@@ -1362,7 +1369,7 @@
     OFPET_QUEUE_OP_FAILED      = 9,  /* Queue operation failed. */
     OFPET_SWITCH_CONFIG_FAILED = 10, /* Switch config request failed. */
     OFPET_ROLE_REQUEST_FAILED  = 11, /* Controller Role request failed. */
-    OFPET_BAD_METER            = 12, /* Error in meter. */
+    OFPET_METER_MOD_FAILED     = 12, /* Error in meter. */
     OFPET_EXPERIMENTER = 0xffff      /* Experimenter error messages. */
 };
 
@@ -1546,17 +1553,25 @@
     OFPRRFC_BAD_ROLE   = 2,      /* Invalid role. */
 };
 
-/* ofp_error_msg 'code' values for OFPET_BAD_METER.  'data' contains at least
- * the first 64 bytes of the failed request. */
-enum ofp_bad_meter_code {
-    OFPBMRC_UNKNOWN      = 0,   /* Unspecified error. */
-    OFPBMRC_BAD_METER_ID = 1,   /* Meter does not exist, or already exist. */
-    OFPBMRC_BAD_COMMAND  = 2,   /* Unsupported or unknown command. */
-    OFPBMRC_BAD_FLAGS    = 3,   /* Flag configuration unsupported. */
-    OFPBMRC_BAD_RATE     = 4,   /* Rate unsupported. */
-    OFPBMRC_BAD_BURST    = 5,   /* Burst size unsupported. */
-    OFPBMRC_BAD_PROPERTY,       /* Property unsupported. */
-    OFPBMRC_TOO_MANY,           /* Can't handle this many properties. */
+/* ofp_error_msg 'code' values for OFPET_METER_MOD_FAILED.  'data' contains
+ * at least the first 64 bytes of the failed request. */
+enum ofp_meter_mod_failed_code {
+    OFPMMFC_UNKNOWN       = 0,  /* Unspecified error. */
+    OFPMMFC_METER_EXISTS  = 1,  /* Meter not added because a Meter ADD
+                                 * attempted to replace an existing Meter. */
+    OFPMMFC_INVALID_METER = 2,      /* Meter not added because Meter specified
+                                 * is invalid. */
+    OFPMMFC_UNKNOWN_METER = 3,  /* Meter not modified because a Meter
+                                   MODIFY attempted to modify a non-existent
+                                   Meter. */
+    OFPMMFC_BAD_COMMAND   = 4,  /* Unsupported or unknown command. */
+    OFPMMFC_BAD_FLAGS     = 5,  /* Flag configuration unsupported. */
+    OFPMMFC_BAD_RATE      = 6,  /* Rate unsupported. */
+    OFPMMFC_BAD_BURST     = 7,  /* Burst size unsupported. */
+    OFPMMFC_BAD_PROPERTY  = 8,  /* Property unsupported. */
+    OFPGMFC_OUT_OF_METERS = 9,  /* No more meters available. */
+    OFPGMFC_OUT_OF_PROPERTIES = 10,  /* The maximum number of properties
+                                      * for a meter has been exceeded. */
 };
 
 /* OFPT_ERROR: Error message (datapath -> controller). */
