ofproto: Fix potential leak during flow mods.
[sliver-openvswitch.git] / include / openflow / openflow-common.h
index ef9409f..33df02b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2008, 2011, 2012, 2013 The Board of Trustees of The Leland Stanford
+/* Copyright (c) 2008, 2011, 2012, 2013, 2014 The Board of Trustees of The Leland Stanford
  * Junior University
  *
  * We are making the OpenFlow specification and associated documentation
@@ -32,7 +32,7 @@
  */
 
 /*
- * Copyright (c) 2008, 2009, 2010, 2011 Nicira, Inc.
+ * Copyright (c) 2008-2014 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -75,7 +75,13 @@ enum ofp_version {
     OFP10_VERSION = 0x01,
     OFP11_VERSION = 0x02,
     OFP12_VERSION = 0x03,
-    OFP13_VERSION = 0x04
+    OFP13_VERSION = 0x04,
+    OFP14_VERSION = 0x05
+
+    /* When we add real support for these versions, add them to the enum so
+     * that we get compiler warnings everywhere we might forget to provide
+     * support.  Until then, keep them as macros to avoid those warnings. */
+#define OFP15_VERSION 0x06
 };
 
 /* Vendor (aka experimenter) IDs.
@@ -476,11 +482,17 @@ enum ofp_table {
 };
 
 enum ofp_table_config {
-    OFPTC_TABLE_MISS_CONTROLLER = 0 << 0, /* Send to controller. */
-    OFPTC_TABLE_MISS_CONTINUE = 1 << 0, /* Continue to the next table in the
-                                           pipeline (OpenFlow 1.0 behavior). */
-    OFPTC_TABLE_MISS_DROP = 2 << 0, /* Drop the packet. */
-    OFPTC_TABLE_MISS_MASK = 3 << 0
+    /* OpenFlow 1.1 and 1.2 defined this field as shown.
+     * OpenFlow 1.3 and later mark this field as deprecated, but have not
+     * reused it for any new purpose. */
+    OFPTC11_TABLE_MISS_CONTROLLER = 0 << 0, /* Send to controller. */
+    OFPTC11_TABLE_MISS_CONTINUE   = 1 << 0, /* Go to next table, like OF1.0. */
+    OFPTC11_TABLE_MISS_DROP       = 2 << 0, /* Drop the packet. */
+    OFPTC11_TABLE_MISS_MASK       = 3 << 0,
+
+    /* OpenFlow 1.4. */
+    OFPTC14_EVICTION              = 1 << 2, /* Allow table to evict flows. */
+    OFPTC14_VACANCY_EVENTS        = 1 << 3, /* Enable vacancy events. */
 };
 
 #endif /* openflow/openflow-common.h */