/* The most significant bit being set in the version field indicates an
* experimental OpenFlow version.
*/
-#define OFP10_VERSION 0x01
-#define OFP11_VERSION 0x02
-#define OFP12_VERSION 0x03
+enum ofp_version {
+ OFP10_VERSION = 0x01,
+ OFP11_VERSION = 0x02,
+ OFP12_VERSION = 0x03,
+};
#define OFP_MAX_TABLE_NAME_LEN 32
#define OFP_MAX_PORT_NAME_LEN 16
OFPR_N_REASONS
};
+enum ofp_flow_mod_command {
+ OFPFC_ADD, /* New flow. */
+ OFPFC_MODIFY, /* Modify all matching flows. */
+ OFPFC_MODIFY_STRICT, /* Modify entry strictly matching wildcards */
+ OFPFC_DELETE, /* Delete all matching flows. */
+ OFPFC_DELETE_STRICT /* Strictly match wildcards and priority. */
+};
+
+enum ofp_flow_mod_flags {
+ OFPFF_SEND_FLOW_REM = 1 << 0, /* Send flow removed message when flow
+ * expires or is deleted. */
+ OFPFF_CHECK_OVERLAP = 1 << 1, /* Check for overlapping entries first. */
+};
+
/* Action structure for OFPAT10_SET_VLAN_VID and OFPAT11_SET_VLAN_VID. */
struct ofp_action_vlan_vid {
ovs_be16 type; /* Type. */
OFPMT_OXM = 1, /* OpenFlow Extensible Match */
};
+/* Group numbering. Groups can use any number up to OFPG_MAX. */
+enum ofp_group {
+ /* Last usable group number. */
+ OFPG_MAX = 0xffffff00,
+
+ /* Fake groups. */
+ OFPG_ALL = 0xfffffffc, /* All groups, for group delete commands. */
+ OFPG_ANY = 0xffffffff /* Wildcard, for flow stats requests. */
+};
+
#endif /* openflow/openflow-common.h */