--- openflow-2014-01-13.h	2015-07-23 09:54:18.012479397 -0700
+++ openflow-2014-03-17.h	2015-07-23 09:54:18.016479397 -0700
@@ -607,6 +607,31 @@
 };
 OFP_ASSERT(sizeof(struct ofp_port_mod) == 32);
 
+/* ## ---------------------- ## */
+/* ## OpenFlow Header Types. ## */
+/* ## ---------------------- ## */
+
+/* Header type structure. */
+struct ofp_header_type {
+    uint16_t    namespace;    /* One of OFPHTN_*. */
+    uint16_t    ns_type;      /* Type within namespace. */
+};
+OFP_ASSERT(sizeof(struct ofp_header_type) == 4);
+
+enum ofp_header_type_namespaces {
+    OFPHTN_ONF              = 0,  /* ONF namespace. */
+    OFPHTN_ETHERTYPE        = 1,  /* ns_type is an Ethertype. */
+    OFPHTN_IP_PROTO         = 2,  /* ns_type is a IP protocol number. */
+    OFPHTN_UDP_TCP_PORT     = 3,  /* ns_type is a TCP or UDP port. */
+    OFPHTN_IPV4_OPTION      = 4,  /* ns_type is an IPv4 option number. */
+};
+
+enum ofp_header_type_onf {
+    OFPHTO_ETHERNET         = 0,  /* Ethernet (DIX or IEEE 802.3) - default. */
+    OFPHTO_NO_HEADER        = 1,  /* No header, ex. circuit switch. */
+    OFPHTO_OXM_EXPERIMENTER = 0xFFFF, /* Use Experimenter OXM. */
+};
+
 /* ## -------------------------- ## */
 /* ## OpenFlow Extensible Match. ## */
 /* ## -------------------------- ## */
