--- openflow-2013-01-15-2.h	2015-07-23 09:54:17.264479367 -0700
+++ openflow-2013-01-09.h	2015-07-23 09:54:17.268479367 -0700
@@ -223,11 +223,6 @@
 };
 OFP_ASSERT(sizeof(struct ofp_switch_config) == 12);
 
-/* Flags to configure the table. Reserved for future use. */
-enum ofp_table_config {
-    OFPTC_DEPRECATED_MASK       = 3,  /* Deprecated bits */
-};
-
 /* Table numbering. Tables can use any number up to OFPT_MAX. */
 enum ofp_table {
     /* Last usable table number. */
@@ -238,6 +233,39 @@
                                  flow stats and flow deletes. */
 };
 
+/* Flags to configure the table. Reserved for future use. */
+enum ofp_table_config {
+    OFPTC_DEPRECATED_MASK       = 3,  /* Deprecated bits */
+};
+
+/* Table Mod property types.
+ */
+enum ofp_table_mod_prop_type {
+    OFPTMPT_EXPERIMENTER           = 0xFFFF, /* Experimenter property. */
+};
+
+/* Common header for all Table Mod Properties */
+struct ofp_table_mod_prop_header {
+    uint16_t         type;    /* One of OFPTMPT_*. */
+    uint16_t         length;  /* Length in bytes of this property. */
+};
+OFP_ASSERT(sizeof(struct ofp_table_mod_prop_header) == 4);
+
+/* Experimenter table mod property */
+struct ofp_table_mod_prop_experimenter {
+    uint16_t         type;    /* One of OFPTMPT_EXPERIMENTER. */
+    uint16_t         length;  /* Length in bytes of this property. */
+    uint32_t         experimenter;  /* Experimenter ID which takes the same
+                                       form as in struct
+                                       ofp_experimenter_header. */
+    uint32_t         exp_type;      /* Experimenter defined. */
+    /* Followed by:
+     *   - Exactly (length - 12) bytes containing the experimenter data, then
+     *   - Exactly (length + 7)/8*8 - (length) (between 0 and 7)
+     *     bytes of all-zero bytes */
+    uint32_t         experimenter_data[0];
+};
+OFP_ASSERT(sizeof(struct ofp_table_mod_prop_experimenter) == 12);
 
 /* Configure/Modify behavior of a flow table */
 struct ofp_table_mod {
@@ -245,6 +273,9 @@
     uint8_t table_id;       /* ID of the table, OFPTT_ALL indicates all tables */
     uint8_t pad[3];         /* Pad to 32 bits */
     uint32_t config;        /* Bitmap of OFPTC_* flags */
+
+    /* Table Mod Property list */
+    struct ofp_table_mod_prop_header properties[0];
 };
 OFP_ASSERT(sizeof(struct ofp_table_mod) == 16);
 
