X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Facl%2Facl.h;h=b994b8506b7ba5c9bb33464da70042733abf8460;hb=2e0798f90d9672b1c8dc702a2bdae485a6771ff8;hp=9d333da40590560d49d8c261bf60f347bee1e9a5;hpb=aa2f59bbd356c1165745703cfddb5ccd21e887eb;p=vpp.git diff --git a/src/plugins/acl/acl.h b/src/plugins/acl/acl.h index 9d333da4059..b994b8506b7 100644 --- a/src/plugins/acl/acl.h +++ b/src/plugins/acl/acl.h @@ -28,6 +28,7 @@ #include #include +#include "types.h" #include "fa_node.h" #include "hash_lookup_types.h" #include "lookup_context.h" @@ -72,26 +73,6 @@ typedef struct } addr; } address_t; -/* - * ACL rules - */ -typedef struct -{ - u8 is_permit; - u8 is_ipv6; - ip46_address_t src; - u8 src_prefixlen; - ip46_address_t dst; - u8 dst_prefixlen; - u8 proto; - u16 src_port_or_type_first; - u16 src_port_or_type_last; - u16 dst_port_or_code_first; - u16 dst_port_or_code_last; - u8 tcp_flags_value; - u8 tcp_flags_mask; -} acl_rule_t; - typedef struct { u8 is_permit; @@ -213,9 +194,19 @@ typedef struct { /* Do we use hash-based ACL matching or linear */ int use_hash_acl_matching; + /* Do we use the TupleMerge for hash ACLs or not */ + int use_tuple_merge; + + /* Max collision vector length before splitting the tuple */ +#define TM_SPLIT_THRESHOLD 39 + int tuple_merge_split_threshold; + /* a pool of all mask types present in all ACEs */ ace_mask_type_entry_t *ace_mask_type_pool; + /* vec of vectors of all info of all mask types present in ACEs contained in each lc_index */ + hash_applied_mask_info_t **hash_applied_mask_info_vec_by_lc_index; + /* * Classify tables used to grab the packets for the ACL check, * and serving as the 5-tuple session tables at the same time @@ -390,15 +381,7 @@ AH has a special treatment of its length, it is in 32-bit words, not 64-bit word extern acl_main_t acl_main; -/* - * pointer to the above. - * Needed for some gymnastics to be able to provide - * the inline functions from this plugin to other plugins. - */ - -extern acl_main_t *p_acl_main; void *acl_plugin_set_heap(); - #endif