enum ofp_raw_action_type {
/* ## ----------------- ## */
/* ## Standard actions. ## */
/* ## ----------------- ## */
?
????/* OF1.0(0): struct ofp10_action_output. */
????OFPAT_RAW10_OUTPUT,
????/* OF1.1+(0): struct ofp11_action_output. */
????OFPAT_RAW11_OUTPUT,
?
????/* OF1.0(1): uint16_t. */
????OFPAT_RAW10_SET_VLAN_VID,
????/* OF1.0(2): uint8_t. */
????OFPAT_RAW10_SET_VLAN_PCP,
?
????/* OF1.1(1), OF1.2+(1) is deprecated (use Set-Field): uint16_t.
?????*
?????* [Semantics differ slightly between the 1.0 and 1.1 versions of the VLAN
?????* modification actions: the 1.0 versions push a VLAN header if none is
?????* present, but the 1.1 versions do not. That is the only reason that we
?????* distinguish their raw action types.] */
????OFPAT_RAW11_SET_VLAN_VID,
????/* OF1.1(2), OF1.2+(2) is deprecated (use Set-Field): uint8_t. */
????OFPAT_RAW11_SET_VLAN_PCP,
?
????/* OF1.1+(17): ovs_be16.
?????*
?????* [The argument is the Ethertype, e.g. ETH_TYPE_VLAN_8021Q, not the VID or
?????* TCI.] */
????OFPAT_RAW11_PUSH_VLAN,
?
????/* OF1.0(3): void. */
????OFPAT_RAW10_STRIP_VLAN,
????/* OF1.1+(18): void. */
????OFPAT_RAW11_POP_VLAN,
?
????/* OF1.0(4), OF1.1(3), OF1.2+(3) is deprecated (use Set-Field): struct
?????* ofp_action_dl_addr. */
????OFPAT_RAW_SET_DL_SRC,
?
????/* OF1.0(5), OF1.1(4), OF1.2+(4) is deprecated (use Set-Field): struct
?????* ofp_action_dl_addr. */
????OFPAT_RAW_SET_DL_DST,
?
????/* OF1.0(6), OF1.1(5), OF1.2+(5) is deprecated (use Set-Field):
?????* ovs_be32. */
????OFPAT_RAW_SET_NW_SRC,
?
????/* OF1.0(7), OF1.1(6), OF1.2+(6) is deprecated (use Set-Field):
?????* ovs_be32. */
????OFPAT_RAW_SET_NW_DST,
?
????/* OF1.0(8), OF1.1(7), OF1.2+(7) is deprecated (use Set-Field): uint8_t. */
????OFPAT_RAW_SET_NW_TOS,
?
????/* OF1.1(8), OF1.2+(8) is deprecated (use Set-Field): uint8_t. */
????OFPAT_RAW11_SET_NW_ECN,
?
????/* OF1.0(9), OF1.1(9), OF1.2+(9) is deprecated (use Set-Field):
?????* ovs_be16. */
????OFPAT_RAW_SET_TP_SRC,
?
????/* OF1.0(10), OF1.1(10), OF1.2+(10) is deprecated (use Set-Field):
?????* ovs_be16. */
????OFPAT_RAW_SET_TP_DST,
?
????/* OF1.0(11): struct ofp10_action_enqueue. */
????OFPAT_RAW10_ENQUEUE,
?
????/* NX1.0(30), OF1.1(13), OF1.2+(13) is deprecated (use Set-Field):
?????* ovs_be32. */
????OFPAT_RAW_SET_MPLS_LABEL,
?
????/* NX1.0(31), OF1.1(14), OF1.2+(14) is deprecated (use Set-Field):
?????* uint8_t. */
????OFPAT_RAW_SET_MPLS_TC,
?
????/* NX1.0(25), OF1.1(15), OF1.2+(15) is deprecated (use Set-Field):
?????* uint8_t. */
????OFPAT_RAW_SET_MPLS_TTL,
?
????/* NX1.0(26), OF1.1+(16): void. */
????OFPAT_RAW_DEC_MPLS_TTL,
?
????/* NX1.0(23), OF1.1+(19): ovs_be16.
?????*
?????* [The argument is the Ethertype, e.g. ETH_TYPE_MPLS, not the label.] */
????OFPAT_RAW_PUSH_MPLS,
?
????/* NX1.0(24), OF1.1+(20): ovs_be16.
?????*
?????* [The argument is the Ethertype, e.g. ETH_TYPE_IPV4 if at BoS or
?????* ETH_TYPE_MPLS otherwise, not the label.] */
????OFPAT_RAW_POP_MPLS,
?
????/* NX1.0(4), OF1.1+(21): uint32_t. */
????OFPAT_RAW_SET_QUEUE,
?
????/* OF1.1+(22): uint32_t. */
????OFPAT_RAW11_GROUP,
?
????/* OF1.1+(23): uint8_t. */
????OFPAT_RAW11_SET_NW_TTL,
?
????/* NX1.0(18), OF1.1+(24): void. */
????OFPAT_RAW_DEC_NW_TTL,
????/* NX1.0+(21): struct nx_action_cnt_ids, ... */
????NXAST_RAW_DEC_TTL_CNT_IDS,
?
????/* OF1.2-1.4(25): struct ofp12_action_set_field, ... */
????OFPAT_RAW12_SET_FIELD,
????/* OF1.5+(25): struct ofp12_action_set_field, ... */
????OFPAT_RAW15_SET_FIELD,
?
????/* OF1.0(28): void. */
????OFPAT_RAW10_HANDLE_EXAMPLE,
?
????/* OF1.1(28): void. */
????OFPAT_RAW11_HANDLE_EXAMPLE,
?
????/* OF1.2-1.4(28): void. */
????OFPAT_RAW12_HANDLE_EXAMPLE,
?
????/* NX1.0-1.4(7): struct nx_action_reg_load.
?????*
?????* [In OpenFlow 1.5, set_field is a superset of reg_load functionality, so
?????* we drop reg_load.] */
????NXAST_RAW_REG_LOAD,
????/* NX1.0-1.4(33): struct nx_action_reg_load2, ...
?????*
?????* [In OpenFlow 1.5, set_field is a superset of reg_load2 functionality, so
?????* we drop reg_load2.] */
????NXAST_RAW_REG_LOAD2,
?
????/* OF1.5+(28): struct ofp15_action_copy_field, ... */
????OFPAT_RAW15_COPY_FIELD,
????/* ONF1.3-1.4(3200): struct onf_action_copy_field, ... */
????ONFACT_RAW13_COPY_FIELD,
????/* NX1.0-1.4(6): struct nx_action_reg_move, ... */
????NXAST_RAW_REG_MOVE,
?
/* ## ------------------------- ## */
/* ## Nicira extension actions. ## */
/* ## ------------------------- ## */
?
/* Actions similar to standard actions are listed with the standard actions. */
?
????/* NX1.0+(1): uint16_t. */
????NXAST_RAW_RESUBMIT,
????/* NX1.0+(14): struct nx_action_resubmit. */
????NXAST_RAW_RESUBMIT_TABLE,
?
????/* NX1.0+(2): uint32_t. */
????NXAST_RAW_SET_TUNNEL,
????/* NX1.0+(9): uint64_t. */
????NXAST_RAW_SET_TUNNEL64,
?
????/* NX1.0+(5): void. */
????NXAST_RAW_POP_QUEUE,
?
????/* NX1.0+(8): struct nx_action_note, ... */
????NXAST_RAW_NOTE,
?
????/* NX1.0+(10): struct nx_action_multipath. */
????NXAST_RAW_MULTIPATH,
?
????/* NX1.0+(12): struct nx_action_bundle, ... */
????NXAST_RAW_BUNDLE,
????/* NX1.0+(13): struct nx_action_bundle, ... */
????NXAST_RAW_BUNDLE_LOAD,
?
????/* NX1.0+(15): struct nx_action_output_reg. */
????NXAST_RAW_OUTPUT_REG,
????/* NX1.0+(32): struct nx_action_output_reg2. */
????NXAST_RAW_OUTPUT_REG2,
?
????/* NX1.0+(16): struct nx_action_learn, ... */
????NXAST_RAW_LEARN,
?
????/* NX1.0+(17): void. */
????NXAST_RAW_EXIT,
?
????/* NX1.0+(19): struct nx_action_fin_timeout. */
????NXAST_RAW_FIN_TIMEOUT,
?
????/* NX1.0+(20): struct nx_action_controller. */
????NXAST_RAW_CONTROLLER,
?
????/* NX1.0+(22): struct nx_action_write_metadata. */
????NXAST_RAW_WRITE_METADATA,
?
????/* NX1.0+(27): struct nx_action_stack. */
????NXAST_RAW_STACK_PUSH,
?
????/* NX1.0+(28): struct nx_action_stack. */
????NXAST_RAW_STACK_POP,
?
????/* NX1.0+(29): struct nx_action_sample. */
????NXAST_RAW_SAMPLE,
?
????/* NX1.0+(34): struct nx_action_conjunction. */
????NXAST_RAW_CONJUNCTION,
?
????/* NX1.0+(35): struct nx_action_conntrack, ... */
????NXAST_RAW_CT,
?
/* ## ------------------ ## */
/* ## Debugging actions. ## */
/* ## ------------------ ## */
?
/* These are intentionally undocumented, subject to change, and ovs-vswitchd */
/* accepts them only if started with --enable-dummy. */
?
????/* NX1.0+(255): void. */
????NXAST_RAW_DEBUG_RECIRC,
};