--- openflow-2013-11-22-2.h	2015-07-23 09:54:17.996479397 -0700
+++ openflow-2013-12-04.h	2015-07-23 09:54:18.000479397 -0700
@@ -715,11 +715,12 @@
     OFPXMT_OFB_PBB_UCA        = 41, /* PBB UCA header field. */
     OFPXMT_OFB_TCP_FLAGS      = 42, /* TCP flags. */
     OFPXMT_OFB_ACTSET_OUTPUT  = 43, /* Output port from action set metadata. */
-    OFPXMT_OFB_IP_VERSION     = 44, /* IP version, root type for IP packet. */
-    OFPXMT_OFB_NO_PACKET      = 45, /* Root type for circuit switches. */
+    OFPXMT_OFB_ETHERNET       = 44, /* Root type for Ethernet packets. */
+    OFPXMT_OFB_IP_VERSION     = 45, /* IP version, root type for IP packet. */
+    OFPXMT_OFB_NO_PACKET      = 46, /* Root type for circuit switches. */
 };
 
-#define OFPXMT_OFB_ALL    ((UINT64_C(1) << 46) - 1)
+#define OFPXMT_OFB_ALL    ((UINT64_C(1) << 47) - 1)
 
 /* OpenFlow port on which the packet was received.
  * May be a physical port, a logical port, or the reserved port OFPP_LOCAL
@@ -1204,11 +1205,27 @@
  * Masking: Not maskable. */
 #define OXM_OF_ACTSET_OUTPUT OXM_HEADER  (0x8000, OFPXMT_OFB_ACTSET_OUTPUT, 4)
 
+/* Ethernet root type.
+ *
+ * Root type for Ethernet packets, the most common packet type for OpenFlow.
+ * Includes the Ethernet headers, the Ethernet payload and Ethernet CRC of
+ * an Ethernet frame.
+ * Does not include the preamble, the start of frame and the interframe gap.
+ * This root type is optional as it is the default.
+ *
+ * Prereqs: None.
+ *
+ * Format: No payload - 0 bits.
+ *
+ * Masking: Not maskable. */
+#define OXM_OF_ETHERNET   OXM_HEADER  (0x8000, OFPXMT_OFB_ETHERNET, 0)
+
 /* IP version.
  *
  * IP version header, 0x4 for IPv4 packets, 0x6 for IPv6 packets.
- * Root type for IP packets, only used for pure IP packets, with
+ * Root type for IP packets, only used for bare IP packets, with
  * no header in front of the IP header.
+ * Include the IP header and the IP payload of an IP datagram.
  *
  * Prereqs: None.
  *
