--- openflow-2013-01-15-3.h	2015-07-23 09:54:17.284479368 -0700
+++ openflow-2013-01-15-4.h	2015-07-23 09:54:17.292479368 -0700
@@ -1543,6 +1543,7 @@
     OFPET_ROLE_REQUEST_FAILED  = 11, /* Controller Role request failed. */
     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_EXPERIMENTER = 0xffff      /* Experimenter error messages. */
 };
 
@@ -1758,12 +1759,22 @@
 enum ofp_table_features_failed_code {
     OFPTFFC_BAD_TABLE    = 0,      /* Specified table does not exist. */
     OFPTFFC_BAD_METADATA = 1,      /* Invalid metadata mask. */
-    OFPTFFC_BAD_TYPE     = 2,      /* Unknown property type. */
-    OFPTFFC_BAD_LEN      = 3,      /* Length problem in properties. */
-    OFPTFFC_BAD_ARGUMENT = 4,      /* Unsupported property value. */
     OFPTFFC_EPERM        = 5,      /* Permissions error. */
 };
 
+/* ofp_error_msg 'code' values for OFPET_BAD_PROPERTY. 'data' contains at least
+ * the first 64 bytes of the failed request. */
+enum ofp_bad_property_code {
+    OFPBPC_BAD_TYPE           = 0,  /* Unknown property type. */
+    OFPBPC_BAD_LEN            = 1,  /* Length problem in property. */
+    OFPBPC_BAD_VALUE          = 2,  /* Unsupported property value. */
+    OFPBPC_TOO_MANY           = 3,  /* Can't handle this many properties. */
+    OFPBPC_DUP_TYPE           = 4,  /* A property type was duplicated. */
+    OFPBPC_BAD_EXPERIMENTER   = 5,  /* Unknown experimenter id specified. */
+    OFPBPC_BAD_EXP_TYPE       = 6,  /* Unknown action for experimenter id. */
+    OFPBPC_BAD_EXP_VALUE      = 7,  /* Unknown action for experimenter id. */
+};
+
 /* OFPT_ERROR: Error message (datapath -> controller). */
 struct ofp_error_msg {
     struct ofp_header header;
