ROFL-pipeline
v0.6.0dev
|
OpenFlow v1.X instructions. More...
#include <inttypes.h>
#include <stdbool.h>
#include "rofl.h"
#include "of1x_action.h"
#include "../../../common/datapacket.h"
Go to the source code of this file.
Data Structures | |
struct | of1x_write_metadata |
struct | of1x_instruction |
struct | of1x_instruction_group |
Macros | |
#define | OF1X_IT_MAX OF1X_IT_GOTO_TABLE+1 |
Typedefs | |
typedef struct of1x_write_metadata | of1x_write_metadata_t |
typedef struct of1x_instruction | of1x_instruction_t |
typedef struct of1x_instruction_group | of1x_instruction_group_t |
Enumerations | |
enum | of1x_instruction_type_t { OF1X_IT_NO_INSTRUCTION = 0, OF1X_IT_APPLY_ACTIONS = 1, OF1X_IT_CLEAR_ACTIONS = 2, OF1X_IT_WRITE_ACTIONS = 3, OF1X_IT_WRITE_METADATA = 4, OF1X_IT_EXPERIMENTER = 5, OF1X_IT_METER = 6, OF1X_IT_GOTO_TABLE = 7 } |
Instruction type. More... | |
Functions | |
ROFL_BEGIN_DECLS void | __of1x_init_instruction_group (of1x_instruction_group_t *group) |
void | __of1x_destroy_instruction_group (of1x_instruction_group_t *group) |
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. More... | |
void | of1x_remove_instruction_from_the_group (of1x_instruction_group_t *group, of1x_instruction_type_t type) |
Remove an instruction of the group. More... | |
rofl_result_t | __of1x_update_instructions (of1x_instruction_group_t *group, of1x_instruction_group_t *new_group) |
bool | __of1x_instructions_contain_group (struct of1x_flow_entry *const entry, const unsigned int group_id) |
void | __of1x_copy_instruction_group (of1x_instruction_group_t *origin, of1x_instruction_group_t *dest) |
bool | __of1x_instruction_has (of1x_instruction_group_t *inst_grp, of1x_packet_action_type_t type, uint64_t value) |
rofl_result_t | __of1x_validate_instructions (of1x_instruction_group_t *inst_grp, struct of1x_pipeline *pipeline, unsigned int table_id) |
void | __of1x_dump_instructions (of1x_instruction_group_t group, bool raw_nbo) |
OpenFlow v1.X instructions.
Instructions should never be used directly. Instructions are arleady part of the of1x_flow_entry.
How to add and remove instructions (pseudo-code):
Definition in file of1x_instruction.h.
bool __of1x_instruction_has | ( | of1x_instruction_group_t * | inst_grp, |
of1x_packet_action_type_t | type, | ||
uint64_t | value | ||
) |
returns true if the action type with the specific value is in the set of instructions.
Definition at line 210 of file of1x_instruction.c.