6 #ifndef MATCHING_ALGORITHMS_H_
7 #define MATCHING_ALGORITHMS_H_
28 #include "../of1x_flow_entry.h"
29 #include "../of1x_statistics.h"
30 #include "../of1x_utils.h"
31 #include "available_ma.h"
37 enum of1x_mutex_acquisition_required;
39 #define OF1X_MATCHING_ALGORITHMS_MAX_DESCRIPTION_LENGTH 256
44 #define OF1X_REGISTER_MATCHING_ALGORITHM(NAME)\
45 struct of1x_matching_algorithm_functions of1x_matching_algorithm_##NAME##_maf
162 of1x_mutex_acquisition_required_t mutex_acquired);
193 uint64_t cookie_mask,
209 uint64_t cookie_mask,
228 const unsigned int group_id);
249 char description[OF1X_MATCHING_ALGORITHMS_MAX_DESCRIPTION_LENGTH];
260 void __of1x_generate_matching_algorithm_list(
void);
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)
rofl_result_t(* get_flow_stats_hook)(struct of1x_flow_table *const table, uint64_t cookie, uint64_t cookie_mask, uint32_t out_port, uint32_t out_group, of1x_match_group_t *const matches, of1x_stats_flow_msg_t *msg)
Retrieves flow stats according to spec The operation MUST comply with the behaviour defined in the Op...
rofl_of1x_fm_result_t(* add_flow_entry_hook)(struct of1x_flow_table *const table, of1x_flow_entry_t *const entry, bool check_overlap, bool reset_counts)
Adds a flow entry to the table.
OpenFlow v1.0, 1.2 and 1.3.2 flow table abstraction.
of1x_flow_removal_strictness
Flow removal operations strictness.
struct of1x_matching_algorithm_functions of1x_matching_algorithms_functions_t
Set of functions calls to be implemented in order to extend Matching algorithms for OF versions 1...
Set of functions calls to be implemented in order to extend Matching algorithms for OF versions 1...
rofl_result_t(* remove_flow_entry_hook)(struct of1x_flow_table *const table, of1x_flow_entry_t *const entry, of1x_flow_entry_t *const specific_entry, const enum of1x_flow_removal_strictness strict, uint32_t out_port, uint32_t out_group, of1x_flow_remove_reason_t reason, of1x_mutex_acquisition_required_t mutex_acquired)
Removes one or more flow entries in the table.
rofl_result_t(* get_flow_aggregate_stats_hook)(struct of1x_flow_table *const table, uint64_t cookie, uint64_t cookie_mask, uint32_t out_port, uint32_t out_group, of1x_match_group_t *const matches, of1x_stats_flow_aggregate_msg_t *msg)
Retrieves aggregate flow stats according to spec The operation MUST comply with the behaviour defined...
rofl_result_t(* modify_flow_entry_hook)(struct of1x_flow_table *const table, of1x_flow_entry_t *const entry, const enum of1x_flow_removal_strictness strict, bool reset_counts)
Modifies a set of flow entries in the table.
Linked list containing all the individual flow stats.
enum rofl_of1x_fm_result rofl_of1x_fm_result_t
Extended flowmod return codes.
rofl_result_t(* destroy_hook)(struct of1x_flow_table *const table)
Allows to destroy matching algorithm table state.
rofl_result_t(* init_hook)(struct of1x_flow_table *const table)
Allows to initialize matching algorithm table state.
void(* dump_hook)(struct of1x_flow_table *const table, bool raw_nbo)
Dump hook.
Aggregated flow stats message.
char description[OF1X_MATCHING_ALGORITHMS_MAX_DESCRIPTION_LENGTH]
Description of the matching algorithm.