--- openflow-2011-08-31.h	2015-07-23 09:54:16.544479337 -0700
+++ openflow-2011-08-31-2.h	2015-07-23 09:54:16.548479338 -0700
@@ -908,7 +908,7 @@
     OFPBRC_BAD_EXPERIMENTER,    /* Experimenter id not supported
                                  * (in ofp_experimenter_header
                                  * or ofp_stats_request or ofp_stats_reply). */
-    OFPBRC_BAD_SUBTYPE,         /* Experimenter subtype not supported. */
+    OFPBRC_BAD_EXP_TYPE,        /* Experimenter type not supported. */
     OFPBRC_EPERM,               /* Permissions error. */
     OFPBRC_BAD_LEN,             /* Wrong request length for type. */
     OFPBRC_BUFFER_EMPTY,        /* Specified buffer has already been used. */
@@ -923,7 +923,7 @@
     OFPBAC_BAD_TYPE,           /* Unknown action type. */
     OFPBAC_BAD_LEN,            /* Length problem in actions. */
     OFPBAC_BAD_EXPERIMENTER,   /* Unknown experimenter id specified. */
-    OFPBAC_BAD_EXPERIMENTER_TYPE, /* Unknown action type for experimenter id. */
+    OFPBAC_BAD_EXP_TYPE,       /* Unknown action type for experimenter id. */
     OFPBAC_BAD_OUT_PORT,       /* Problem validating output port. */
     OFPBAC_BAD_ARGUMENT,       /* Bad action argument. */
     OFPBAC_EPERM,              /* Permissions error. */
@@ -947,8 +947,8 @@
     OFPBIC_UNSUP_METADATA,     /* Metadata value unsupported by datapath. */
     OFPBIC_UNSUP_METADATA_MASK,/* Metadata mask value unsupported by
                                   datapath. */
-    OFPBIC_UNSUP_EXP_INST,     /* Specific experimenter instruction
-                                  unsupported. */
+    OFPBIC_BAD_EXPERIMENTER,   /* Unknown experimenter id specified. */
+    OFPBIC_BAD_EXP_TYPE,       /* Unknown instruction for experimenter id. */
 };
 
 /* ofp_error_msg 'code' values for OFPET_BAD_MATCH.  'data' contains at least
@@ -1105,8 +1105,8 @@
     OFPST_GROUP_DESC,
 
     /* Experimenter extension.
-     * The request and reply bodies begin with a 32-bit experimenter ID,
-     * which takes the same form as in "struct ofp_experimenter_header".
+     * The request and reply bodies begin with
+     * struct ofp_experimenter_stats_header.
      * The request and reply bodies are otherwise experimenter-defined. */
     OFPST_EXPERIMENTER = 0xffff
 };
@@ -1338,6 +1338,15 @@
 };
 OFP_ASSERT(sizeof(struct ofp_group_desc_stats) == 8);
 
+/* Body for ofp_stats_request/reply of type OFPST_EXPERIMENTER. */
+struct ofp_experimenter_stats_header {
+    uint32_t experimenter;    /* Experimenter ID which takes the same form
+                                 as in struct ofp_experimenter_header. */
+    uint32_t exp_type;        /* Experimenter defined. */
+    /* Experimenter-defined arbitrary additional data. */
+};
+OFP_ASSERT(sizeof(struct ofp_experimenter_stats_header) == 16);
+
 /* Experimenter extension. */
 struct ofp_experimenter_header {
     struct ofp_header header;   /* Type OFPT_EXPERIMENTER. */
@@ -1345,7 +1354,7 @@
                                  * - MSB 0: low-order bytes are IEEE OUI.
                                  * - MSB != 0: defined by OpenFlow
                                  *   consortium. */
-    uint8_t pad[4];
+    uint32_t exp_type;          /* Experimenter defined. */
     /* Experimenter-defined arbitrary additional data. */
 };
 OFP_ASSERT(sizeof(struct ofp_experimenter_header) == 16);
