5 #ifndef __OF1X_INSTRUCTION_H__
6 #define __OF1X_INSTRUCTION_H__
12 #include "../../../common/datapacket.h"
59 OF1X_IT_NO_INSTRUCTION = 0,
60 OF1X_IT_APPLY_ACTIONS = 1,
61 OF1X_IT_CLEAR_ACTIONS = 2,
62 OF1X_IT_WRITE_ACTIONS = 3,
63 OF1X_IT_WRITE_METADATA = 4,
65 OF1X_IT_EXPERIMENTER = 5,
67 OF1X_IT_GOTO_TABLE = 7,
70 #define OF1X_IT_MAX OF1X_IT_GOTO_TABLE+1
75 uint64_t metadata_mask;
94 unsigned int go_to_table;
100 unsigned int num_of_instructions;
109 unsigned int num_of_outputs;
155 bool __of1x_instructions_contain_group(
struct of1x_flow_entry *
const entry,
const unsigned int group_id);
170 #endif //OF1X_INSTRUCTION
of1x_packet_action_type_t
Actions over a packet as per defined in OF10, OF12, OF13.
bool __of1x_instruction_has(of1x_instruction_group_t *inst_grp, of1x_packet_action_type_t type, uint64_t value)
OpenFlow-enabled v1.0, 1.2 and 1.3.2 switch abstraction.
OpenFlow v1.0, 1.2 and 1.3.2 flow entry structure.
void of1x_add_instruction_to_group(of1x_instruction_group_t *group, of1x_instruction_type_t type, of1x_action_group_t *apply_actions, of1x_write_actions_t *write_actions, of1x_write_metadata_t *write_metadata, unsigned int go_to_table)
Adds an instruction of the group.
OpenFlow v1.0, 1.2 and 1.3.2 actions.
Action group (apply-actions) structure.
void of1x_remove_instruction_from_the_group(of1x_instruction_group_t *group, of1x_instruction_type_t type)
Remove an instruction of the group.
OpenFlow v1.0, 1.2 and 1.3.2 pipeline abstraction data structure.
of1x_instruction_type_t
Instruction type.