-/* 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
*/
/*
- * 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.
OFP11_VERSION = 0x02,
OFP12_VERSION = 0x03,
OFP13_VERSION = 0x04
+
+ /* 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 OFP14_VERSION 0x05
+#define OFP15_VERSION 0x06
};
/* Vendor (aka experimenter) IDs.
OFPG_ANY = 0xffffffff /* Wildcard, for flow stats requests. */
};
+/* Group configuration flags */
+enum ofp_group_capabilities {
+ OFPGFC_SELECT_WEIGHT = 1 << 0, /* Support weight for select groups */
+ OFPGFC_SELECT_LIVENESS = 1 << 1, /* Support liveness for select groups */
+ OFPGFC_CHAINING = 1 << 2, /* Support chaining groups */
+ OFPGFC_CHAINING_CHECKS = 1 << 3, /* Check chaining for loops and delete */
+};
+
enum ofp_hello_elem_type {
OFPHET_VERSIONBITMAP = 1, /* Bitmap of version supported. */
};
};
OFP_ASSERT(sizeof(struct ofp_vendor_header) == 12);
+/* Table numbering. Tables can use any number up to OFPT_MAX. */
+enum ofp_table {
+ /* Last usable table number. */
+ OFPTT_MAX = 0xfe,
+
+ /* Fake tables. */
+ OFPTT_ALL = 0xff /* Wildcard table used for table config,
+ flow stats and flow deletes. */
+};
+
+enum ofp_table_config {
+ /* 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 */