--- openflow-2012-10-09-3.h	2015-07-23 09:54:17.360479371 -0700
+++ openflow-2013-01-15-5.h	2015-07-23 09:54:17.368479371 -0700
@@ -1554,6 +1554,7 @@
     OFPET_METER_MOD_FAILED     = 12, /* Error in meter. */
     OFPET_TABLE_FEATURES_FAILED = 13, /* Setting table features failed. */
     OFPET_BAD_PROPERTY         = 14, /* Some property is invalid. */
+    OFPET_FLOW_MONITOR_FAILED  = 16, /* Setting flow monitor failed. */
     OFPET_EXPERIMENTER = 0xffff      /* Experimenter error messages. */
 };
 
@@ -1786,6 +1787,23 @@
     OFPBPC_EPERM              = 8,  /* Permissions error. */
 };
 
+/* ofp_error_msg 'code' values for OFPET_FLOW_MONITOR_FAILED.  'data' contains
+ * at least the first 64 bytes of the failed request. */
+enum ofp_flow_monitor_failed_code {
+    OFPMMFC_UNKNOWN       = 0,  /* Unspecified error. */
+    OFPMMFC_MONITOR_EXISTS = 1, /* Monitor not added because a Monitor ADD
+                                 * attempted to replace an existing Monitor. */
+    OFPMMFC_INVALID_MONITOR = 2, /* Monitor not added because Monitor specified
+                                 * is invalid. */
+    OFPMMFC_UNKNOWN_MONITOR = 3, /* Meter not modified because a Meter
+                                   MODIFY attempted to modify a non-existent
+                                   Monitor. */
+    OFPMMFC_BAD_COMMAND   = 4,  /* Unsupported or unknown command. */
+    OFPMMFC_BAD_FLAGS     = 5,  /* Flag configuration unsupported. */
+    OFPTMFC_BAD_TABLE_ID  = 6,  /* Specified table does not exist. */
+    OFPGMFC_BAD_OUT       = 7,  /* Error in output port/group. */
+};
+
 /* OFPT_ERROR: Error message (datapath -> controller). */
 struct ofp_error_msg {
     struct ofp_header header;
