--- openflow-2011-10-11-4.h	2015-07-23 09:54:16.712479344 -0700
+++ openflow-2011-10-12-4.h	2015-07-23 09:54:16.716479344 -0700
@@ -1140,15 +1140,14 @@
     struct ofp_header header;
     uint32_t buffer_id;     /* ID assigned by datapath. */
     uint16_t total_len;     /* Full length of frame. */
-    uint16_t match_type;    /* OFPMT_OXM. */
-    uint16_t match_len;     /* Length of OXM TLVs. */
     uint8_t reason;         /* Reason packet is being sent (one of OFPR_*) */
     uint8_t table_id;       /* ID of the table that was looked up */
-    uint8_t pad[4];         /* Pad to 64 bits. */
     /* Followed by:
-     *   - Exactly match_len bytes containing OXM TLVs, then
+     *   - Exactly match_len bytes containing ofp_match + OXM TLVs, then
      *   - Exactly (match_len + 7)/8*8 - match_len (between 0 and 7) bytes of
-     *     all-zero bytes, then
+     *     all-zero bytes */
+    struct ofp_match match; /* Fields to match. Variable size. */
+    /* Followed by:
      *   - Exactly 2 all-zero padding bytes, then
      *   - An Ethernet frame whose length is inferred from header.length.
      * The padding bytes preceding the Ethernet frame ensure that the IP
