5 #ifndef __OF1X_FLOW_ENTRY_H__
6 #define __OF1X_FLOW_ENTRY_H__
12 #include "../../../common/ternary_fields.h"
47 OF1X_FLOW_REMOVE_IDLE_TIMEOUT=0,
48 OF1X_FLOW_REMOVE_HARD_TIMEOUT=1,
49 OF1X_FLOW_REMOVE_DELETE=2,
50 OF1X_FLOW_REMOVE_GROUP_DELETE=3,
52 OF1X_FLOW_REMOVE_NO_REASON = 0xFF
62 #define OF10_NON_WILDCARDED_PRIORITY_FLAG 0x10000
65 #define OF1X_DO_NOT_CHECK_COOKIE 0xffffffffffffffffULL
112 platform_rwlock_t* rwlock;
166 #endif //OF1X_FLOW_ENTRY
ROFL_BEGIN_DECLS of1x_flow_entry_t * of1x_init_flow_entry(bool notify_removal)
Create an empty flow entry.
OpenFlow v1.0, 1.2 and 1.3.2 flow entry structure.
enum of1x_flow_remove_reason of1x_flow_remove_reason_t
Flow remove reasons (enum ofp_flow_removed_reason)
void of1x_flow_entry_platform_state_t
Platform dependent opaque state.
OpenFlow v1.X instructions.
void of1x_dump_flow_entry(of1x_flow_entry_t *entry, bool raw_nbo)
Dumps the flow entry for debugging purposes.
OpenFlow v1.0, 1.2 and 1.3.2 flow table abstraction.
of1x_flow_removal_strictness
Flow removal operations strictness.
bool __of1x_flow_entry_check_contained(of1x_flow_entry_t *const original, of1x_flow_entry_t *const subentry, bool check_priority, bool check_cookie, uint32_t out_port, uint32_t out_group, bool reverse_out_check)
Checks whether an entry is contained in the other.
struct of1x_flow_entry of1x_flow_entry_t
OpenFlow v1.0, 1.2 and 1.3.2 flow entry structure.
bool __of1x_flow_entry_check_overlap(of1x_flow_entry_t *const original, of1x_flow_entry_t *const entry, bool check_priority, bool check_cookie, uint32_t out_port, uint32_t out_group)
Checks whether two entries overlap overlapping.
OpenFlow v1.0, 1.2 and 1.3.2 timers subsystem.
of1x_flow_remove_reason
Flow remove reasons (enum ofp_flow_removed_reason)
rofl_result_t of1x_add_match_to_entry(of1x_flow_entry_t *entry, of1x_match_t *match)
Adds a match to the flow_entry.
OpenFlow v1.0, 1.2 and 1.3.2 matches.
rofl_result_t of1x_destroy_flow_entry(of1x_flow_entry_t *entry)
Destroy the flow entry, including stats, instructions and actions.
enum of1x_flow_removal_strictness of1x_flow_removal_strictness_t
Flow removal operations strictness.
OpenFlow v1.0, 1.2 and 1.3.2 pipeline abstraction data structure.
bool __of1x_flow_entry_check_equal(of1x_flow_entry_t *const original, of1x_flow_entry_t *const entry, uint32_t out_port, uint32_t out_group, bool check_cookie)
Checks if entry is identical to another one out_port and out_grouap are ALWAYS checked against origin...
OpenFlow v1.0, 1.2 and 1.3.2 statistics subsystem.
rofl_result_t __of1x_validate_flow_entry(of1x_flow_entry_t *entry, struct of1x_pipeline *pipeline, unsigned int table_id)
Check if the entry(matches, actions and instructions is valid for insertion)