X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fopenflow%2Fopenflow-common.h;h=0bca0d26ba9cf3333c956a608fe8f40d0d98428e;hb=c824c8a39854199a4221256281b1322cfae33469;hp=3c456ba14b8228fb7ab7e73036eeb8cf2311b9f7;hpb=e2b9ac44c82590c2a9a27bff79ae43899277f703;p=openvswitch diff --git a/include/openflow/openflow-common.h b/include/openflow/openflow-common.h index 3c456ba1..0bca0d26 100644 --- a/include/openflow/openflow-common.h +++ b/include/openflow/openflow-common.h @@ -71,9 +71,11 @@ /* 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 @@ -195,6 +197,20 @@ enum ofp_packet_in_reason { 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. */ @@ -308,4 +324,14 @@ enum ofp_match_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 */