X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Facl%2Facl.h;h=d38c12990debaf1139581a4616488057c1bf41d5;hb=8daa80a4adfd82a19017c2c12554a8a43dddccd7;hp=b84ed7a42dc29f0f385f23cc993277e1a17470c1;hpb=22d32d916f4f3806501cf39b324be19e06b89c12;p=vpp.git diff --git a/src/plugins/acl/acl.h b/src/plugins/acl/acl.h index b84ed7a42dc..d38c12990de 100644 --- a/src/plugins/acl/acl.h +++ b/src/plugins/acl/acl.h @@ -25,7 +25,8 @@ #include #include #include -#include "bihash_40_8.h" +#include + #include "fa_node.h" #include "hash_lookup_types.h" @@ -36,6 +37,12 @@ #define TCP_SESSION_IDLE_TIMEOUT_SEC (3600*24) #define TCP_SESSION_TRANSIENT_TIMEOUT_SEC 120 +#define ACL_FA_DEFAULT_HEAP_SIZE (2 << 29) + +#define ACL_PLUGIN_HASH_LOOKUP_HEAP_SIZE (2 << 25) +#define ACL_PLUGIN_HASH_LOOKUP_HASH_BUCKETS 65536 +#define ACL_PLUGIN_HASH_LOOKUP_HASH_MEMORY (2 << 25) + extern vlib_node_registration_t acl_in_node; extern vlib_node_registration_t acl_out_node; @@ -122,12 +129,22 @@ typedef struct } ace_mask_type_entry_t; typedef struct { + /* mheap to hold all the ACL module related allocations, other than hash */ + void *acl_mheap; + u32 acl_mheap_size; + /* API message ID base */ u16 msg_id_base; acl_list_t *acls; /* Pool of ACLs */ hash_acl_info_t *hash_acl_infos; /* corresponding hash matching housekeeping info */ clib_bihash_48_8_t acl_lookup_hash; /* ACL lookup hash table. */ + u32 hash_lookup_hash_buckets; + u32 hash_lookup_hash_memory; + + /* mheap to hold all the miscellaneous allocations related to hash-based lookups */ + void *hash_lookup_mheap; + u32 hash_lookup_mheap_size; int acl_lookup_hash_initialized; applied_hash_ace_entry_t **input_hash_entry_vec_by_sw_if_index; applied_hash_ace_entry_t **output_hash_entry_vec_by_sw_if_index; @@ -162,6 +179,11 @@ typedef struct { u32 *acl_ip4_output_classify_table_by_sw_if_index; u32 *acl_ip6_output_classify_table_by_sw_if_index; + u32 *acl_dot1q_input_classify_table_by_sw_if_index; + u32 *acl_dot1ad_input_classify_table_by_sw_if_index; + u32 *acl_dot1q_output_classify_table_by_sw_if_index; + u32 *acl_dot1ad_output_classify_table_by_sw_if_index; + /* MACIP (input) ACLs associated with the interfaces */ u32 *macip_acl_by_sw_if_index; @@ -224,6 +246,8 @@ typedef struct { u64 fa_current_cleaner_timer_wait_interval; + int fa_interrupt_generation; + /* per-worker data related t conn management */ acl_fa_per_worker_data_t *per_worker_data;