#version 4

// Here we define the experimental actions supported by OFDPA pipeline

// Push l2 header action. This action push an other ethernet
// header on top of the previous one.
struct of_action_ofdpa_push_l2_header : of_action_ofdpa {
    uint16_t type == 65535;
    uint16_t len;
    uint32_t experimenter == 0x1018;
    uint16_t exp_type == 1;
    pad(6);
};

// Pop l2 header action. This action pop the outer ethernet
// header.
struct of_action_ofdpa_pop_l2_header : of_action_ofdpa {
    uint16_t type == 65535;
    uint16_t len;
    uint32_t experimenter == 0x1018;
    uint16_t exp_type == 2;
    pad(6);
};

// Push MPLS-TP PW Control Word. The Control Word is initialized to zero.
struct of_action_ofdpa_push_cw : of_action_ofdpa {
    uint16_t type == 65535;
    uint16_t len;
    uint32_t experimenter == 0x1018;
    uint16_t exp_type == 3;
    pad(6);
};

// Pop MPLS-TP PW Control Word or Associated Channel Header.
// Used in MPLS bottom of stack label match actions.
struct of_action_ofdpa_pop_cw : of_action_ofdpa {
    uint16_t type == 65535;
    uint16_t len;
    uint32_t experimenter == 0x1018;
    uint16_t exp_type == 4;
    pad(6);
};

// Sets the allow vlan translation in l2 unfiltered group
// Used in configuring groups that use the egress vlan tables
struct of_action_ofdpa_set_vlan_translation : of_action_ofdpa {
    uint16_t type == 65535;
    uint16_t len;
    uint32_t experimenter == 0x04EA;
    uint16_t exp_type == 24;
    pad(6);
};

// utilizes the copy_field action which is used in
// the egress tpid table for change the tpid of outgoing packets
struct of_action_onf_copy_field : of_action_onf {
    uint16_t type == 65535;
    uint16_t len;
    uint32_t experimenter == 0x4f4e4600;
    uint16_t exp_type == 3200;
    uint16_t n_bits;
    uint16_t src_offset;
    uint16_t dst_offset;
    uint32_t src;
    uint32_t dst;
};

