--- openflow-2014-01-22.h	2015-07-23 09:54:17.720479385 -0700
+++ openflow-2013-11-18.h	2015-07-23 09:54:17.728479386 -0700
@@ -707,6 +707,15 @@
     OFPXMT_OFB_IPV6_EXTHDR    = 39, /* IPv6 Extension Header pseudo-field */
     OFPXMT_OFB_PBB_UCA        = 41, /* PBB UCA header field. */
     OFPXMT_OFB_TCP_FLAGS      = 42, /* TCP flags. */
+
+    OFPXMT_OFB_PKT_REG_0      = 128, /* Packet register 0 (scratch space). */
+    OFPXMT_OFB_PKT_REG_1      = 129, /* Packet register 1 (scratch space). */
+    OFPXMT_OFB_PKT_REG_2      = 130, /* Packet register 2 (scratch space). */
+    OFPXMT_OFB_PKT_REG_3      = 131, /* Packet register 3 (scratch space). */
+    OFPXMT_OFB_PKT_REG_4      = 132, /* Packet register 4 (scratch space). */
+    OFPXMT_OFB_PKT_REG_5      = 133, /* Packet register 5 (scratch space). */
+    OFPXMT_OFB_PKT_REG_6      = 134, /* Packet register 6 (scratch space). */
+    OFPXMT_OFB_PKT_REG_7      = 135, /* Packet register 7 (scratch space). */
 };
 
 #define OFPXMT_OFB_ALL    ((UINT64_C(1) << 42) - 1)
@@ -1168,6 +1177,37 @@
 };
 OFP_ASSERT(sizeof(struct ofp_oxm_experimenter_header) == 8);
 
+/* Packet registers (scratch space).
+ *
+ * Storage registers associated with a packet.
+ * Set to zero when packet enters the pipeline.
+ * May be used to stored values through the pipeline.
+ * Usually not usable as a match field.
+ * Switch may not implement all those registers.
+ *
+ * Prereqs: None.
+ *
+ * Format: 64-bit integer in network byte order.
+ *
+ * Masking: Arbitrary masks.
+ */
+#define OXM_OF_PKT_REG_0    OXM_HEADER  (0x8000, OFPXMT_OFB_PKT_REG_0, 8)
+#define OXM_OF_PKT_REG_0_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_PKT_REG_0, 8)
+#define OXM_OF_PKT_REG_1    OXM_HEADER  (0x8000, OFPXMT_OFB_PKT_REG_1, 8)
+#define OXM_OF_PKT_REG_1_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_PKT_REG_1, 8)
+#define OXM_OF_PKT_REG_2    OXM_HEADER  (0x8000, OFPXMT_OFB_PKT_REG_2, 8)
+#define OXM_OF_PKT_REG_2_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_PKT_REG_2, 8)
+#define OXM_OF_PKT_REG_3    OXM_HEADER  (0x8000, OFPXMT_OFB_PKT_REG_3, 8)
+#define OXM_OF_PKT_REG_3_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_PKT_REG_3, 8)
+#define OXM_OF_PKT_REG_4    OXM_HEADER  (0x8000, OFPXMT_OFB_PKT_REG_4, 8)
+#define OXM_OF_PKT_REG_4_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_PKT_REG_4, 8)
+#define OXM_OF_PKT_REG_5    OXM_HEADER  (0x8000, OFPXMT_OFB_PKT_REG_5, 8)
+#define OXM_OF_PKT_REG_5_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_PKT_REG_5, 8)
+#define OXM_OF_PKT_REG_6    OXM_HEADER  (0x8000, OFPXMT_OFB_PKT_REG_6, 8)
+#define OXM_OF_PKT_REG_6_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_PKT_REG_6, 8)
+#define OXM_OF_PKT_REG_7    OXM_HEADER  (0x8000, OFPXMT_OFB_PKT_REG_7, 8)
+#define OXM_OF_PKT_REG_7_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_PKT_REG_7, 8)
+
 /* ## -------------------------- ## */
 /* ## OpenFlow Extensible Stats. ## */
 /* ## -------------------------- ## */
