--- openflow-2011-10-12-4.h	2015-07-23 09:54:16.716479344 -0700
+++ openflow-2011-10-13-2.h	2015-07-23 09:54:16.724479345 -0700
@@ -468,6 +468,9 @@
  * virtual port, OFPXMT_OF_IN_PORT and OFPXMT_OF_IN_PHY_PORT have the same
  * value.
  *
+ * This field is usually not available in a regular match and only available
+ * in ofp_packet_in messages when it's different from OXM_OF_IN_PORT.
+ *
  * Prereqs: None.
  *
  * Format: 32-bit integer in network byte order.
@@ -1142,17 +1145,15 @@
     uint16_t total_len;     /* Full length of frame. */
     uint8_t reason;         /* Reason packet is being sent (one of OFPR_*) */
     uint8_t table_id;       /* ID of the table that was looked up */
-    /* Followed by:
-     *   - 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 */
-    struct ofp_match match; /* Fields to match. Variable size. */
+    struct ofp_match match; /* Packet metadata. 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
      * header (if any) following the Ethernet header is 32-bit aligned.
      */
+    //uint8_t pad[2];       /* Align to 64 bit + 16 bit */
+    //uint8_t data[0];      /* Ethernet frame */
 };
 OFP_ASSERT(sizeof(struct ofp_packet_in) == 24);
 
